Imported Upstream version 1.5.0.1+git20150316
diff --git a/ChangeLog b/ChangeLog
index 6a62659..95c21b1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,9 +1,522 @@
-=== release 1.3.3 ===
+=== release 1.4.0 ===
 
-2014-06-22  Sebastian Dröge <slomo@coaxion.net>
+2014-07-19  Sebastian Dröge <slomo@coaxion.net>
 
 	* configure.ac:
-	  releasing 1.3.3
+	  releasing 1.4.0
+
+2014-07-18 21:19:03 -0400  Youness Alaoui <kakaroto@kakaroto.homelinux.net>
+
+	* gst-libs/gst/app/gstappsrc.c:
+	  appsrc: Fix memory leak with callback notify not being called in dispose
+	  https://bugzilla.gnome.org/show_bug.cgi?id=733386
+
+2014-07-19 12:29:56 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* po/af.po:
+	* po/az.po:
+	* po/bg.po:
+	* po/ca.po:
+	* po/cs.po:
+	* po/da.po:
+	* po/de.po:
+	* po/el.po:
+	* po/en_GB.po:
+	* po/eo.po:
+	* po/es.po:
+	* po/eu.po:
+	* po/fi.po:
+	* po/fr.po:
+	* po/gl.po:
+	* po/hr.po:
+	* po/hu.po:
+	* po/id.po:
+	* po/it.po:
+	* po/ja.po:
+	* po/lt.po:
+	* po/lv.po:
+	* po/nb.po:
+	* po/nl.po:
+	* po/or.po:
+	* po/pl.po:
+	* po/pt_BR.po:
+	* po/ro.po:
+	* po/ru.po:
+	* po/sk.po:
+	* po/sl.po:
+	* po/sq.po:
+	* po/sr.po:
+	* po/sv.po:
+	* po/tr.po:
+	* po/uk.po:
+	* po/vi.po:
+	* po/zh_CN.po:
+	  po: Update translations
+
+2014-07-18 16:01:23 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+	* gst-libs/gst/pbutils/encoding-profile.c:
+	  encoding-profile: Add example for using encoder presets with profiles
+	  https://bugzilla.gnome.org/show_bug.cgi?id=733349
+
+2014-07-18 15:46:05 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+	* gst-libs/gst/pbutils/encoding-profile.c:
+	  encoding-profile: Fix typos and old API in docs
+	  https://bugzilla.gnome.org/show_bug.cgi?id=733349
+
+2014-07-17 14:36:16 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* sys/xvimage/xvimagesink.c:
+	  xvimagesink: fix property description string
+	  Spotted by Josep Torra.
+
+2014-07-15 16:56:30 +0200  Piotr Drąg <piotrdrag@gmail.com>
+
+	* po/POTFILES.in:
+	  po: update POTFILES
+	  https://bugzilla.gnome.org/show_bug.cgi?id=733207
+
+2014-07-12 10:33:30 +0530  Arun Raghavan <arun@accosted.net>
+
+	* gst/playback/gstplaysink.c:
+	  playsink: Fix filter property getter
+	  The switch-case set was incomplete.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=733012
+
+=== release 1.3.91 ===
+
+2014-07-11 11:21:29 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* ChangeLog:
+	* NEWS:
+	* RELEASE:
+	* configure.ac:
+	* docs/plugins/inspect/plugin-adder.xml:
+	* docs/plugins/inspect/plugin-alsa.xml:
+	* docs/plugins/inspect/plugin-app.xml:
+	* docs/plugins/inspect/plugin-audioconvert.xml:
+	* docs/plugins/inspect/plugin-audiorate.xml:
+	* docs/plugins/inspect/plugin-audioresample.xml:
+	* docs/plugins/inspect/plugin-audiotestsrc.xml:
+	* docs/plugins/inspect/plugin-cdparanoia.xml:
+	* docs/plugins/inspect/plugin-encoding.xml:
+	* docs/plugins/inspect/plugin-gio.xml:
+	* docs/plugins/inspect/plugin-ivorbisdec.xml:
+	* docs/plugins/inspect/plugin-libvisual.xml:
+	* docs/plugins/inspect/plugin-ogg.xml:
+	* docs/plugins/inspect/plugin-pango.xml:
+	* docs/plugins/inspect/plugin-playback.xml:
+	* docs/plugins/inspect/plugin-subparse.xml:
+	* docs/plugins/inspect/plugin-tcp.xml:
+	* docs/plugins/inspect/plugin-theora.xml:
+	* docs/plugins/inspect/plugin-typefindfunctions.xml:
+	* docs/plugins/inspect/plugin-videoconvert.xml:
+	* docs/plugins/inspect/plugin-videorate.xml:
+	* docs/plugins/inspect/plugin-videoscale.xml:
+	* docs/plugins/inspect/plugin-videotestsrc.xml:
+	* docs/plugins/inspect/plugin-volume.xml:
+	* docs/plugins/inspect/plugin-vorbis.xml:
+	* docs/plugins/inspect/plugin-ximagesink.xml:
+	* docs/plugins/inspect/plugin-xvimagesink.xml:
+	* gst-plugins-base.doap:
+	* win32/common/_stdint.h:
+	* win32/common/config.h:
+	  Release 1.3.91
+
+2014-07-11 11:21:05 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* po/af.po:
+	* po/az.po:
+	* po/bg.po:
+	* po/ca.po:
+	* po/cs.po:
+	* po/da.po:
+	* po/de.po:
+	* po/el.po:
+	* po/en_GB.po:
+	* po/eo.po:
+	* po/es.po:
+	* po/eu.po:
+	* po/fi.po:
+	* po/fr.po:
+	* po/gl.po:
+	* po/hr.po:
+	* po/hu.po:
+	* po/id.po:
+	* po/it.po:
+	* po/ja.po:
+	* po/lt.po:
+	* po/lv.po:
+	* po/nb.po:
+	* po/nl.po:
+	* po/or.po:
+	* po/pl.po:
+	* po/pt_BR.po:
+	* po/ro.po:
+	* po/ru.po:
+	* po/sk.po:
+	* po/sl.po:
+	* po/sq.po:
+	* po/sr.po:
+	* po/sv.po:
+	* po/tr.po:
+	* po/uk.po:
+	* po/vi.po:
+	* po/zh_CN.po:
+	  Update .po files
+
+2014-07-11 10:13:03 +0200  Edward Hervey <bilboed@bilboed.com>
+
+	* configure.ac:
+	* ext/libvisual/plugin.c:
+	* ext/libvisual/visual.c:
+	  libvisual: Remove < 0.4 support
+	  And remove the version guards that went along with it
+	  https://bugzilla.gnome.org/show_bug.cgi?id=733046
+
+2014-07-10 18:17:47 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* gst-libs/gst/allocators/gstdmabuf.c:
+	  dmabuf: Ensure _get_fd() works even for shared memory
+	  Fixes regression introduced by:
+	  commit b60888fd4bcacd42bb4e27fa938272d6e72c5c32
+	  Author: Michael Olbrich <m.olbrich@pengutronix.de>
+	  Date:   Tue May 20 11:18:56 2014 +0200
+	  dmabuf: share the mapping with shared copies of the memory
+	  https://bugzilla.gnome.org/show_bug.cgi?id=730441
+
+2014-07-11 08:51:58 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* po/vi.po:
+	  po: Update translations
+
+2014-07-03 13:46:08 -0700  Evan Nemerson <evan@nemerson.com>
+
+	* gst-libs/gst/sdp/sdp.h:
+	  sdp: add gstmikey.h to sdp.h
+	  https://bugzilla.gnome.org/show_bug.cgi?id=732709
+
+2014-07-03 18:32:02 +0200  Sebastian Rasmussen <sebrn@axis.com>
+
+	* gst-libs/gst/riff/riff-read.c:
+	  riff: Print invalid fourcc in error message in hex
+	  Previously this was printed as characters which caused later processing
+	  of the error message to sometimes warn about non-UTF-8 characters.
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=732697
+
+2014-06-20 18:02:31 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+	* gst-libs/gst/video/gstvideodecoder.c:
+	  videodecoder: parse any source data that is still available.
+	  Fix gst_video_decoder_parse_available() to really parse any pending
+	  source data that is still available in the adapter. This is a memory
+	  optimization to avoid expansion of video packed added to the adapter,
+	  but also a fix to EOS condition when the subclass parse() function
+	  ultimately only needed to call into gvd_have_frame() and no additional
+	  source bytes were consumed, i.e. gvd_add_to_frame() is not called.
+	  This situation can occur when decoding H.264 streams in byte-stream/nal
+	  mode for instance. A decoder always requires the next NAL unit to be
+	  parsed so that to determine picture boundaries. When a new picture is
+	  found, no byte is consumed (i.e. gvd_add_to_frame() is not called)
+	  but gvd_have_frame() is called (i.e. priv->current_frame is gone).
+	  Also make sure to avoid infinite loops caused by incorrect subclass
+	  parse() implementations. This can occur when no byte gets consumed
+	  and no appropriate indication (GST_VIDEO_DECODER_FLOW_NEED_DATA) is
+	  returned.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=731974
+	  Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+2014-07-02 15:50:23 +0200  Wim Taymans <wtaymans@redhat.com>
+
+	* tests/examples/dynamic/codec-select.c:
+	  tests: codec-select: fix compilation
+
+2014-07-02 15:49:38 +0200  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/sdp/gstmikey.h:
+	  mikey: add more Since markers for new methods
+
+2014-07-02 15:38:41 +0200  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/sdp/gstmikey.c:
+	* gst-libs/gst/sdp/gstmikey.h:
+	* tests/check/libs/mikey.c:
+	* win32/common/libgstsdp.def:
+	  mikey: make message and payload mini-objects
+	  Make the MIKEY message and payload objects miniobjects so that they have
+	  a GType and are refcounted.
+	  We can reuse the dispose method to clear our payload objects.
+	  Add some annotations.
+	  Implement a copy function for the MIKEY message.
+	  Fix the unit test.
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=732589
+
+2014-07-02 00:21:00 +0200  Sebastian Rasmussen <sebras@hotmail.com>
+
+	* tests/examples/dynamic/codec-select.c:
+	  tests: codec-select: Plug element name memory leak
+	  https://bugzilla.gnome.org/show_bug.cgi?id=732593
+
+2014-07-01 16:14:43 -0700  Evan Nemerson <evan@nemerson.com>
+
+	* gst-libs/gst/pbutils/gstdiscoverer-types.c:
+	* gst-libs/gst/rtsp/gstrtspconnection.c:
+	* gst-libs/gst/rtsp/gstrtsptransport.c:
+	* gst-libs/gst/sdp/gstmikey.c:
+	* gst-libs/gst/video/gstvideodecoder.c:
+	* gst-libs/gst/video/video-tile.c:
+	  docs: Assorted documentation and introspection fixes for new 1.4 API
+	  https://bugzilla.gnome.org/show_bug.cgi?id=732595
+
+2014-07-01 16:19:22 +0200  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/rtsp/gstrtspconnection.c:
+	* tests/check/libs/rtspconnection.c:
+	  rtspconnection: also allow POST before GET
+	  Don't only allow GET and then POST request to setup tunneling over HTTP
+	  but also allow POST and then GET.
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=732459
+
+2014-06-28 17:08:06 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* ext/libvisual/gstaudiovisualizer.c:
+	* ext/libvisual/gstaudiovisualizer.h:
+	  libvisual: Rename get_type() function to prevent conflicts with static linking
+	  https://bugzilla.gnome.org/show_bug.cgi?id=728443
+
+=== release 1.3.90 ===
+
+2014-06-28 11:01:13 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* ChangeLog:
+	* NEWS:
+	* RELEASE:
+	* configure.ac:
+	* docs/plugins/gst-plugins-base-plugins.hierarchy:
+	* docs/plugins/inspect/plugin-adder.xml:
+	* docs/plugins/inspect/plugin-alsa.xml:
+	* docs/plugins/inspect/plugin-app.xml:
+	* docs/plugins/inspect/plugin-audioconvert.xml:
+	* docs/plugins/inspect/plugin-audiorate.xml:
+	* docs/plugins/inspect/plugin-audioresample.xml:
+	* docs/plugins/inspect/plugin-audiotestsrc.xml:
+	* docs/plugins/inspect/plugin-cdparanoia.xml:
+	* docs/plugins/inspect/plugin-encoding.xml:
+	* docs/plugins/inspect/plugin-gio.xml:
+	* docs/plugins/inspect/plugin-ivorbisdec.xml:
+	* docs/plugins/inspect/plugin-libvisual.xml:
+	* docs/plugins/inspect/plugin-ogg.xml:
+	* docs/plugins/inspect/plugin-pango.xml:
+	* docs/plugins/inspect/plugin-playback.xml:
+	* docs/plugins/inspect/plugin-subparse.xml:
+	* docs/plugins/inspect/plugin-tcp.xml:
+	* docs/plugins/inspect/plugin-theora.xml:
+	* docs/plugins/inspect/plugin-typefindfunctions.xml:
+	* docs/plugins/inspect/plugin-videoconvert.xml:
+	* docs/plugins/inspect/plugin-videorate.xml:
+	* docs/plugins/inspect/plugin-videoscale.xml:
+	* docs/plugins/inspect/plugin-videotestsrc.xml:
+	* docs/plugins/inspect/plugin-volume.xml:
+	* docs/plugins/inspect/plugin-vorbis.xml:
+	* docs/plugins/inspect/plugin-ximagesink.xml:
+	* docs/plugins/inspect/plugin-xvimagesink.xml:
+	* gst-plugins-base.doap:
+	* win32/common/_stdint.h:
+	* win32/common/config.h:
+	  Release 1.3.90
+
+2014-06-28 10:56:36 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* po/af.po:
+	* po/az.po:
+	* po/bg.po:
+	* po/ca.po:
+	* po/cs.po:
+	* po/da.po:
+	* po/de.po:
+	* po/el.po:
+	* po/en_GB.po:
+	* po/eo.po:
+	* po/es.po:
+	* po/eu.po:
+	* po/fi.po:
+	* po/fr.po:
+	* po/gl.po:
+	* po/hr.po:
+	* po/hu.po:
+	* po/id.po:
+	* po/it.po:
+	* po/ja.po:
+	* po/lt.po:
+	* po/lv.po:
+	* po/nb.po:
+	* po/nl.po:
+	* po/or.po:
+	* po/pl.po:
+	* po/pt_BR.po:
+	* po/ro.po:
+	* po/ru.po:
+	* po/sk.po:
+	* po/sl.po:
+	* po/sq.po:
+	* po/sr.po:
+	* po/sv.po:
+	* po/tr.po:
+	* po/uk.po:
+	* po/vi.po:
+	* po/zh_CN.po:
+	  Update .po files
+
+2014-06-27 14:24:10 -0300  Thiago Santos <ts.santos@sisa.samsung.com>
+
+	* gst/playback/gstplaysinkconvertbin.c:
+	  playsinkconvertbin: fix caps leak
+	  Let go the reference to the converter caps after using it
+
+2014-06-27 10:41:55 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* tools/.gitignore:
+	* tools/Makefile.am:
+	* tools/gst-device-monitor-1.0.1:
+	* tools/gst-device-monitor.c:
+	  tools: add gst-device-monitor-1.0 utility
+	  Just shows devices with basic info and exits. Or will
+	  wait for more devices to show up or be removed with
+	  the --follow option. It's also possible to pass filters
+	  as command line arguments in the form DEVICE_CLASSES
+	  or DEVICE_CLASSES:CAPS.
+
+2014-06-26 16:18:05 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst-libs/gst/audio/streamvolume.h:
+	* gst-libs/gst/tag/xmpwriter.h:
+	  libs: There is no G_TYPE_CHECK_INTERFACE_TYPE and G_TYPE_CHECK_INTERFACE_CAST
+	  Remove the macros that used them, nobody could've used them anyway.
+
+2014-06-26 11:35:43 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+	* gst-libs/gst/pbutils/codec-utils.c:
+	  pbutils: handle more H.264 profiles and levels.
+	  Recognize H.264 Level 5.2, as exposed by modern 2160p30+ streams,
+	  i.e. commonly known as 4K. Also add initial support for handling
+	  Annex.G (SVC) profiles.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=732269
+	  Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+
+2014-06-26 04:27:31 +1000  Jan Schmidt <jan@centricular.com>
+
+	* gst/typefind/gsttypefindfunctions.c:
+	  typefind: Bump iso mp4 typefinder to PRIMARY. Add mp4 extension hint.
+	  Fixes a problem with at least one file being detected incorrectly as
+	  DTS because there's DTS packets early enough in the file.
+
+2014-06-23 01:02:22 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* tests/check/libs/rtpbasedepayload.c:
+	  tests: fix vararg handling in rtpbasedepayload unit test
+	  Makes it pass on 32-bit systems.
+
+2014-06-23 00:33:18 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* tests/check/libs/rtpbasepayload.c:
+	  tests: fix vararg handling in rtpbasepayload unit test
+	  Makes it pass on 32-bit systems.
+
+2014-06-22 20:42:13 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/playback/gstplaysinkconvertbin.c:
+	  playsinkconvertbin: Filter out ANY capsfeatures from the converter caps
+	  We can't convert to ANY capsfeatures, they are only there so that we
+	  can passthrough whatever downstream can support... but we definitely
+	  don't want to return them to upstream.
+
+2014-06-22 19:36:14 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* configure.ac:
+	  Back to development
+
+=== release 1.3.3 ===
+
+2014-06-22 18:07:57 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* ChangeLog:
+	* NEWS:
+	* RELEASE:
+	* configure.ac:
+	* docs/plugins/inspect/plugin-adder.xml:
+	* docs/plugins/inspect/plugin-alsa.xml:
+	* docs/plugins/inspect/plugin-app.xml:
+	* docs/plugins/inspect/plugin-audioconvert.xml:
+	* docs/plugins/inspect/plugin-audiorate.xml:
+	* docs/plugins/inspect/plugin-audioresample.xml:
+	* docs/plugins/inspect/plugin-audiotestsrc.xml:
+	* docs/plugins/inspect/plugin-cdparanoia.xml:
+	* docs/plugins/inspect/plugin-encoding.xml:
+	* docs/plugins/inspect/plugin-gio.xml:
+	* docs/plugins/inspect/plugin-ivorbisdec.xml:
+	* docs/plugins/inspect/plugin-libvisual.xml:
+	* docs/plugins/inspect/plugin-ogg.xml:
+	* docs/plugins/inspect/plugin-pango.xml:
+	* docs/plugins/inspect/plugin-playback.xml:
+	* docs/plugins/inspect/plugin-subparse.xml:
+	* docs/plugins/inspect/plugin-tcp.xml:
+	* docs/plugins/inspect/plugin-theora.xml:
+	* docs/plugins/inspect/plugin-typefindfunctions.xml:
+	* docs/plugins/inspect/plugin-videoconvert.xml:
+	* docs/plugins/inspect/plugin-videorate.xml:
+	* docs/plugins/inspect/plugin-videoscale.xml:
+	* docs/plugins/inspect/plugin-videotestsrc.xml:
+	* docs/plugins/inspect/plugin-volume.xml:
+	* docs/plugins/inspect/plugin-vorbis.xml:
+	* docs/plugins/inspect/plugin-ximagesink.xml:
+	* docs/plugins/inspect/plugin-xvimagesink.xml:
+	* gst-plugins-base.doap:
+	* win32/common/_stdint.h:
+	* win32/common/config.h:
+	  Release 1.3.3
+
+2014-06-22 17:25:42 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* po/af.po:
+	* po/az.po:
+	* po/bg.po:
+	* po/ca.po:
+	* po/cs.po:
+	* po/da.po:
+	* po/de.po:
+	* po/el.po:
+	* po/en_GB.po:
+	* po/eo.po:
+	* po/es.po:
+	* po/eu.po:
+	* po/fi.po:
+	* po/fr.po:
+	* po/gl.po:
+	* po/hr.po:
+	* po/hu.po:
+	* po/id.po:
+	* po/it.po:
+	* po/ja.po:
+	* po/lt.po:
+	* po/lv.po:
+	* po/nb.po:
+	* po/nl.po:
+	* po/or.po:
+	* po/pl.po:
+	* po/pt_BR.po:
+	* po/ro.po:
+	* po/ru.po:
+	* po/sk.po:
+	* po/sl.po:
+	* po/sq.po:
+	* po/sr.po:
+	* po/sv.po:
+	* po/tr.po:
+	* po/uk.po:
+	* po/vi.po:
+	* po/zh_CN.po:
+	  Update .po files
 
 2014-06-22 14:23:32 +0200  Sebastian Dröge <sebastian@centricular.com>
 
diff --git a/Makefile.am b/Makefile.am
index 8cb3333..ad5930c 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -44,14 +44,18 @@
 include $(top_srcdir)/common/po.mak
 
 check-valgrind:
-	cd tests/check && make check-valgrind
+	$(MAKE) -C tests/check check-valgrind
 
 if HAVE_GST_CHECK
 check-torture:
-	cd tests/check && make torture
+	$(MAKE) -C tests/check torture
+build-checks:
+	$(MAKE) -C tests/check build-checks
 else
 check-torture:
 	true
+build-checks:
+	true
 endif
 
 WIN32_COPY = \
diff --git a/Makefile.in b/Makefile.in
index e1eec36..58bea2a 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -119,7 +119,6 @@
 	$(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-x11.m4 \
 	$(top_srcdir)/common/m4/gst.m4 \
 	$(top_srcdir)/common/m4/gtk-doc.m4 \
 	$(top_srcdir)/common/m4/introspection.m4 \
@@ -299,6 +298,8 @@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_2_0_CFLAGS = @GIO_UNIX_2_0_CFLAGS@
+GIO_UNIX_2_0_LIBS = @GIO_UNIX_2_0_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
@@ -328,6 +329,8 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
+GST_NET_CFLAGS = @GST_NET_CFLAGS@
+GST_NET_LIBS = @GST_NET_LIBS@
 GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
 GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
@@ -355,7 +358,6 @@
 GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
 GTK_X11_LIBS = @GTK_X11_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
-HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -459,13 +461,12 @@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-XMKMF = @XMKMF@
+XSHM_CFLAGS = @XSHM_CFLAGS@
 XSHM_LIBS = @XSHM_LIBS@
+XVIDEO_CFLAGS = @XVIDEO_CFLAGS@
 XVIDEO_LIBS = @XVIDEO_LIBS@
 X_CFLAGS = @X_CFLAGS@
-X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
-X_PRE_LIBS = @X_PRE_LIBS@
 ZLIB_CFLAGS = @ZLIB_CFLAGS@
 ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
@@ -1187,12 +1188,16 @@
 	$(top_srcdir)/common/download-translations $(PACKAGE)
 
 check-valgrind:
-	cd tests/check && make check-valgrind
+	$(MAKE) -C tests/check check-valgrind
 
 @HAVE_GST_CHECK_TRUE@check-torture:
-@HAVE_GST_CHECK_TRUE@	cd tests/check && make torture
+@HAVE_GST_CHECK_TRUE@	$(MAKE) -C tests/check torture
+@HAVE_GST_CHECK_TRUE@build-checks:
+@HAVE_GST_CHECK_TRUE@	$(MAKE) -C tests/check build-checks
 @HAVE_GST_CHECK_FALSE@check-torture:
 @HAVE_GST_CHECK_FALSE@	true
+@HAVE_GST_CHECK_FALSE@build-checks:
+@HAVE_GST_CHECK_FALSE@	true
 
 win32-update:
 	for f in $(WIN32_COPY); do cp -v $$f win32/common; done; \
diff --git a/NEWS b/NEWS
index efca995..14b25e8 100644
--- a/NEWS
+++ b/NEWS
@@ -1,8 +1,7 @@
-This is GStreamer Base Plugins 1.3.3
+This is GStreamer Base Plugins 1.4.0
 
 Changes since 1.2:
 
-
 New API:
  • GstMessageType has GST_MESSAGE_EXTENDED added. All types before
    that can be used together as a flags type as before, but from
@@ -98,7 +97,7 @@
      are available on OS X and iOS now.
 
  • Other changes:
-   ∘ gst-libav now uses libav 10.1, and gained support for H265/HEVC.
+   ∘ gst-libav now uses libav 10.2, and gained support for H265/HEVC.
    ∘ Support for hardware codecs and special memory types has been
      improved with bugfixes and feature additions in various plugins
      and base classes.
@@ -130,7 +129,7 @@
      with downstream via caps.
    ∘ Lots of fixes for coverity warnings all over the place.
    ∘ Negotiation related performance improvements.
-   ∘ 500+ fixed bug reports, and many other bug fixes and other
+   ∘ 800+ fixed bug reports, and many other bug fixes and other
      improvements everywhere that had no bug report.
 
 Things to look out for:
@@ -138,5 +137,9 @@
    element.
  • The mfcdec element was removed and replaced by v4l2videodec.
  • osxvideosink is only available in OS X 10.6 or newer.
- • The GstDeviceMonitor API will likely change slightly before the
-   1.4.0 release.
+ • On Android the namespace of the automatically generated Java class
+   for initialization of GStreamer has changed from com.gstreamer to
+   org.freedesktop.gstreamer to prevent namespace pollution.
+ • On iOS you have to update your gst_ios_init.h and gst_ios_init.m in
+   your projects from the one included in the binaries if you used the
+   GnuTLS GIO module before. The loading mechanism has slightly changed.
diff --git a/README b/README
index da0cab4..f175b1b 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-GStreamer 1.3.x development series
+GStreamer 1.5.x development series
 
 WHAT IT IS
 ----------
diff --git a/RELEASE b/RELEASE
index caab143..86eeaf6 100644
--- a/RELEASE
+++ b/RELEASE
@@ -1,22 +1,24 @@
 
-Release notes for GStreamer Base Plugins 1.3.3
+Release notes for GStreamer Base Plugins 1.4.0
 
 
-The GStreamer team is pleased to announce the third release of the unstable
-1.3 release series. The 1.3 release series is adding new features on top of
-the 1.0 and 1.2 series and is part of the API and ABI-stable 1.x release
-series of the GStreamer multimedia framework. The unstable 1.3 release series
-will lead to the stable 1.4 release series in the next weeks, and newly added
-API can still change until that point.
+The GStreamer team is pleased to announce the first release of
+the stable 1.4 release series. The 1.4 release series is adding new
+features on top of the 1.0 and 1.2 series and is part of the API and
+ABI-stable 1.x release series of the GStreamer multimedia framework.
 
 
-This is hopefully the last 1.3 development release and will be followed by
-the first 1.4.0 release candidate (1.3.90) in 1-2 weeks. Which then hopefully
-is followed by 1.4.0 soonish in early July.
+
+Binaries for Android, iOS, Mac OS X and Windows are provided together
+with this release.
 
 
-Binaries for Android, iOS, Mac OS X and Windows will be provided separately
-during the unstable 1.3 release series.
+
+The stable 1.4 release series is API and ABI compatible with 1.0.x,
+1.2.x and any other 1.x release series in the future. Compared to 1.2.x
+it contains some new features and more intrusive changes that were
+considered too risky as a bugfix.
+
 
 
 This module contains a set of reference plugins, base classes for other
@@ -65,15 +67,10 @@
 
 Bugs fixed in this release
      
-      * 709868 : Keep still meaningfull pending events on FLUSH_STOP
-      * 724231 : appsrc: handle flushing from send_event
-      * 730559 : dmabuf: fix checking mmap flags
-      * 730749 : Failed to determine keyframeness of audio/x-opus packet
-      * 730868 : uridecodebin: Does not handle RTSP streams where one of the payload formats is not supported properly
-      * 730874 : audio: Add a missing precondition to gst_audio_format_from_string()
-      * 731121 : alsasink: Race condition causes alsasink to use invalid caps when a pipeline fails to start
-      * 731566 : tcpserversrc: close the server socket after accepting a connection
-      * 731567 : tcpserversrc: return GST_FLOW_FLUSHING instead of GST_FLOW_ERROR when accept is canceled
+      * 733012 : playbin: *-filter properties are settable, but not gettable
+      * 733207 : POTFILES.in is out of date
+      * 733349 : encodebin: Documentation fixes and updates for GstEncodingProfile
+      * 733386 : appsrc: Leaking callback user data
 
 ==== Download ====
 
@@ -110,12 +107,10 @@
         
 Contributors to this release
     
-      * Edward Hervey
-      * Michael Olbrich
-      * Philip Withnall
+      * Arun Raghavan
+      * Nirbheek Chauhan
+      * Piotr Drąg
       * Sebastian Dröge
-      * Thiago Santos
-      * Thibault Saunier
       * Tim-Philipp Müller
-      * Vincent Penquerc'h
+      * Youness Alaoui
  
\ No newline at end of file
diff --git a/aclocal.m4 b/aclocal.m4
index 71af660..5bb944e 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -103,10 +103,9 @@
 # configured tree to be moved without reconfiguration.
 
 AC_DEFUN([AM_AUX_DIR_EXPAND],
-[dnl Rely on autoconf to set up CDPATH properly.
-AC_PREREQ([2.50])dnl
-# expand $ac_aux_dir to an absolute path
-am_aux_dir=`cd $ac_aux_dir && pwd`
+[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
+# Expand $ac_aux_dir to an absolute path.
+am_aux_dir=`cd "$ac_aux_dir" && pwd`
 ])
 
 # AM_CONDITIONAL                                            -*- Autoconf -*-
@@ -1470,7 +1469,6 @@
 m4_include([common/m4/gst-platform.m4])
 m4_include([common/m4/gst-plugin-docs.m4])
 m4_include([common/m4/gst-plugindir.m4])
-m4_include([common/m4/gst-x11.m4])
 m4_include([common/m4/gst.m4])
 m4_include([common/m4/gtk-doc.m4])
 m4_include([common/m4/introspection.m4])
diff --git a/common/Makefile.in b/common/Makefile.in
index 1c01776..c10c513 100644
--- a/common/Makefile.in
+++ b/common/Makefile.in
@@ -101,7 +101,6 @@
 	$(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-x11.m4 \
 	$(top_srcdir)/common/m4/gst.m4 \
 	$(top_srcdir)/common/m4/gtk-doc.m4 \
 	$(top_srcdir)/common/m4/introspection.m4 \
@@ -262,6 +261,8 @@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_2_0_CFLAGS = @GIO_UNIX_2_0_CFLAGS@
+GIO_UNIX_2_0_LIBS = @GIO_UNIX_2_0_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
@@ -291,6 +292,8 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
+GST_NET_CFLAGS = @GST_NET_CFLAGS@
+GST_NET_LIBS = @GST_NET_LIBS@
 GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
 GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
@@ -318,7 +321,6 @@
 GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
 GTK_X11_LIBS = @GTK_X11_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
-HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -422,13 +424,12 @@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-XMKMF = @XMKMF@
+XSHM_CFLAGS = @XSHM_CFLAGS@
 XSHM_LIBS = @XSHM_LIBS@
+XVIDEO_CFLAGS = @XVIDEO_CFLAGS@
 XVIDEO_LIBS = @XVIDEO_LIBS@
 X_CFLAGS = @X_CFLAGS@
-X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
-X_PRE_LIBS = @X_PRE_LIBS@
 ZLIB_CFLAGS = @ZLIB_CFLAGS@
 ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
diff --git a/common/check.mak b/common/check.mak
index 611546a..efd5458 100644
--- a/common/check.mak
+++ b/common/check.mak
@@ -46,7 +46,8 @@
 
 # valgrind any given test by running make test.valgrind
 %.valgrind: %
-	@$(TESTS_ENVIRONMENT)					\
+	@valgrind_log=$(subst /,-,$*-valgrind.log);		\
+	$(TESTS_ENVIRONMENT)					\
 	CK_DEFAULT_TIMEOUT=360					\
 	G_SLICE=always-malloc					\
 	$(LIBTOOL) --mode=execute				\
@@ -55,12 +56,12 @@
 	--tool=memcheck --leak-check=full --trace-children=yes	\
 	--show-possibly-lost=no                                 \
 	--leak-resolution=high --num-callers=20			\
-	./$* 2>&1 | tee valgrind.log
-	@if grep "==" valgrind.log > /dev/null 2>&1; then	\
-	    rm valgrind.log;					\
+	./$* 2>&1 | tee $$valgrind_log ;			\
+	if grep "==" $$valgrind_log > /dev/null 2>&1; then	\
+	    rm $$valgrind_log;					\
 	    exit 1;						\
-	fi
-	@rm valgrind.log
+	fi ;							\
+	rm $$valgrind_log
 
 # valgrind any given test and generate suppressions for it
 %.valgrind.gen-suppressions: %
@@ -150,19 +151,13 @@
 # valgrind all tests
 valgrind: $(TESTS)
 	@echo "Valgrinding tests ..."
-	@failed=0;							\
+	@failed=0; valgrind_targets="";					\
 	for t in $(filter-out $(VALGRIND_TESTS_DISABLE),$(TESTS)); do	\
-		$(MAKE) $$t.valgrind;					\
-		if test "$$?" -ne 0; then                               \
-			echo "Valgrind error for test $$t";		\
-			failed=`expr $$failed + 1`;			\
-			whicht="$$whicht $$t";				\
-		fi;							\
+	  valgrind_targets="$$valgrind_targets $$t.valgrind";		\
 	done;								\
-	if test "$$failed" -ne 0; then					\
-		echo "$$failed tests had leaks or errors under valgrind:";	\
-		echo "$$whicht";					\
-		false;							\
+	if ! $(MAKE) $$valgrind_targets ; then				\
+	  echo "Some tests had leaks or errors under valgrind";		\
+	  false;							\
 	fi
 
 # valgrind all tests until failure
@@ -215,6 +210,9 @@
 	  do echo Inspecting $$e;					\
 	     $(GST_INSPECT) $$e > /dev/null 2>&1; done
 
+# build all tests
+build-checks: $(TESTS)
+
 help:
 	@echo
 	@echo "make check                         -- run all checks"
@@ -237,6 +235,7 @@
 	@echo "make (dir)/(test).valgrind.gen-suppressions -- generate suppressions"
 	@echo "                                               and save to suppressions.log"
 	@echo "make inspect                       -- inspect all plugin features"
+	@echo "make build-checks                  -- build all checks (but don't run them)"
 	@echo
 	@echo
 	@echo "Additionally, you can use the GST_CHECKS environment variable to"
diff --git a/common/gst-indent b/common/gst-indent
index 732b2ba..b5e808f 100755
--- a/common/gst-indent
+++ b/common/gst-indent
@@ -9,13 +9,19 @@
 
 version=`gnuindent --version 2>/dev/null`
 if test "x$version" = "x"; then
-  version=`indent --version 2>/dev/null`
+  version=`gindent --version 2>/dev/null`
   if test "x$version" = "x"; then
-    echo "GStreamer git pre-commit hook:"
-    echo "Did not find GNU indent, please install it before continuing."
-    exit 1
+    version=`indent --version 2>/dev/null`
+    if test "x$version" = "x"; then
+      echo "GStreamer git pre-commit hook:"
+      echo "Did not find GNU indent, please install it before continuing."
+      exit 1
+    else
+      INDENT=indent
+    fi
+  else
+    INDENT=gindent
   fi
-  INDENT=indent
 else
   INDENT=gnuindent
 fi
diff --git a/common/gst.supp b/common/gst.supp
index 2c60392..c08f660 100644
--- a/common/gst.supp
+++ b/common/gst.supp
@@ -3965,3 +3965,10 @@
    ...
    fun:g_quark_from*_string
 }
+
+{
+  <timer_create suppressions for earlier valgrind versions that complain>
+  Memcheck:Param
+  timer_create(evp)
+  fun:timer_create@@GLIBC_2.3.3
+}
diff --git a/common/m4/Makefile.am b/common/m4/Makefile.am
index 3d387ee..cdcec8c 100644
--- a/common/m4/Makefile.am
+++ b/common/m4/Makefile.am
@@ -11,6 +11,7 @@
 	as-python.m4 \
 	as-version.m4 \
 	ax_create_stdint_h.m4 \
+	ax_pthread.m4 \
 	glib-gettext.m4 \
 	gst-arch.m4 \
 	gst-args.m4 \
diff --git a/common/m4/Makefile.in b/common/m4/Makefile.in
index d372908..cd685f2 100644
--- a/common/m4/Makefile.in
+++ b/common/m4/Makefile.in
@@ -100,7 +100,6 @@
 	$(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-x11.m4 \
 	$(top_srcdir)/common/m4/gst.m4 \
 	$(top_srcdir)/common/m4/gtk-doc.m4 \
 	$(top_srcdir)/common/m4/introspection.m4 \
@@ -201,6 +200,8 @@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_2_0_CFLAGS = @GIO_UNIX_2_0_CFLAGS@
+GIO_UNIX_2_0_LIBS = @GIO_UNIX_2_0_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
@@ -230,6 +231,8 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
+GST_NET_CFLAGS = @GST_NET_CFLAGS@
+GST_NET_LIBS = @GST_NET_LIBS@
 GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
 GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
@@ -257,7 +260,6 @@
 GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
 GTK_X11_LIBS = @GTK_X11_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
-HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -361,13 +363,12 @@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-XMKMF = @XMKMF@
+XSHM_CFLAGS = @XSHM_CFLAGS@
 XSHM_LIBS = @XSHM_LIBS@
+XVIDEO_CFLAGS = @XVIDEO_CFLAGS@
 XVIDEO_LIBS = @XVIDEO_LIBS@
 X_CFLAGS = @X_CFLAGS@
-X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
-X_PRE_LIBS = @X_PRE_LIBS@
 ZLIB_CFLAGS = @ZLIB_CFLAGS@
 ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
@@ -445,6 +446,7 @@
 	as-python.m4 \
 	as-version.m4 \
 	ax_create_stdint_h.m4 \
+	ax_pthread.m4 \
 	glib-gettext.m4 \
 	gst-arch.m4 \
 	gst-args.m4 \
diff --git a/common/m4/ax_pthread.m4 b/common/m4/ax_pthread.m4
new file mode 100644
index 0000000..d383ad5
--- /dev/null
+++ b/common/m4/ax_pthread.m4
@@ -0,0 +1,332 @@
+# ===========================================================================
+#        http://www.gnu.org/software/autoconf-archive/ax_pthread.html
+# ===========================================================================
+#
+# SYNOPSIS
+#
+#   AX_PTHREAD([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]])
+#
+# DESCRIPTION
+#
+#   This macro figures out how to build C programs using POSIX threads. It
+#   sets the PTHREAD_LIBS output variable to the threads library and linker
+#   flags, and the PTHREAD_CFLAGS output variable to any special C compiler
+#   flags that are needed. (The user can also force certain compiler
+#   flags/libs to be tested by setting these environment variables.)
+#
+#   Also sets PTHREAD_CC to any special C compiler that is needed for
+#   multi-threaded programs (defaults to the value of CC otherwise). (This
+#   is necessary on AIX to use the special cc_r compiler alias.)
+#
+#   NOTE: You are assumed to not only compile your program with these flags,
+#   but also link it with them as well. e.g. you should link with
+#   $PTHREAD_CC $CFLAGS $PTHREAD_CFLAGS $LDFLAGS ... $PTHREAD_LIBS $LIBS
+#
+#   If you are only building threads programs, you may wish to use these
+#   variables in your default LIBS, CFLAGS, and CC:
+#
+#     LIBS="$PTHREAD_LIBS $LIBS"
+#     CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
+#     CC="$PTHREAD_CC"
+#
+#   In addition, if the PTHREAD_CREATE_JOINABLE thread-attribute constant
+#   has a nonstandard name, defines PTHREAD_CREATE_JOINABLE to that name
+#   (e.g. PTHREAD_CREATE_UNDETACHED on AIX).
+#
+#   Also HAVE_PTHREAD_PRIO_INHERIT is defined if pthread is found and the
+#   PTHREAD_PRIO_INHERIT symbol is defined when compiling with
+#   PTHREAD_CFLAGS.
+#
+#   ACTION-IF-FOUND is a list of shell commands to run if a threads library
+#   is found, and ACTION-IF-NOT-FOUND is a list of commands to run it if it
+#   is not found. If ACTION-IF-FOUND is not specified, the default action
+#   will define HAVE_PTHREAD.
+#
+#   Please let the authors know if this macro fails on any platform, or if
+#   you have any other suggestions or comments. This macro was based on work
+#   by SGJ on autoconf scripts for FFTW (http://www.fftw.org/) (with help
+#   from M. Frigo), as well as ac_pthread and hb_pthread macros posted by
+#   Alejandro Forero Cuervo to the autoconf macro repository. We are also
+#   grateful for the helpful feedback of numerous users.
+#
+#   Updated for Autoconf 2.68 by Daniel Richard G.
+#
+# LICENSE
+#
+#   Copyright (c) 2008 Steven G. Johnson <stevenj@alum.mit.edu>
+#   Copyright (c) 2011 Daniel Richard G. <skunk@iSKUNK.ORG>
+#
+#   This program is free software: you can redistribute it and/or modify it
+#   under the terms of the GNU General Public License as published by the
+#   Free Software Foundation, either version 3 of the License, or (at your
+#   option) any later version.
+#
+#   This program is distributed in the hope that it will be useful, but
+#   WITHOUT ANY WARRANTY; without even the implied warranty of
+#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+#   Public License for more details.
+#
+#   You should have received a copy of the GNU General Public License along
+#   with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+#   As a special exception, the respective Autoconf Macro's copyright owner
+#   gives unlimited permission to copy, distribute and modify the configure
+#   scripts that are the output of Autoconf when processing the Macro. You
+#   need not follow the terms of the GNU General Public License when using
+#   or distributing such scripts, even though portions of the text of the
+#   Macro appear in them. The GNU General Public License (GPL) does govern
+#   all other use of the material that constitutes the Autoconf Macro.
+#
+#   This special exception to the GPL applies to versions of the Autoconf
+#   Macro released by the Autoconf Archive. When you make and distribute a
+#   modified version of the Autoconf Macro, you may extend this special
+#   exception to the GPL to apply to your modified version as well.
+
+#serial 21
+
+AU_ALIAS([ACX_PTHREAD], [AX_PTHREAD])
+AC_DEFUN([AX_PTHREAD], [
+AC_REQUIRE([AC_CANONICAL_HOST])
+AC_LANG_PUSH([C])
+ax_pthread_ok=no
+
+# We used to check for pthread.h first, but this fails if pthread.h
+# requires special compiler flags (e.g. on True64 or Sequent).
+# It gets checked for in the link test anyway.
+
+# First of all, check if the user has set any of the PTHREAD_LIBS,
+# etcetera environment variables, and if threads linking works using
+# them:
+if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then
+        save_CFLAGS="$CFLAGS"
+        CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
+        save_LIBS="$LIBS"
+        LIBS="$PTHREAD_LIBS $LIBS"
+        AC_MSG_CHECKING([for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS])
+        AC_TRY_LINK_FUNC([pthread_join], [ax_pthread_ok=yes])
+        AC_MSG_RESULT([$ax_pthread_ok])
+        if test x"$ax_pthread_ok" = xno; then
+                PTHREAD_LIBS=""
+                PTHREAD_CFLAGS=""
+        fi
+        LIBS="$save_LIBS"
+        CFLAGS="$save_CFLAGS"
+fi
+
+# We must check for the threads library under a number of different
+# names; the ordering is very important because some systems
+# (e.g. DEC) have both -lpthread and -lpthreads, where one of the
+# libraries is broken (non-POSIX).
+
+# Create a list of thread flags to try.  Items starting with a "-" are
+# C compiler flags, and other items are library names, except for "none"
+# which indicates that we try without any flags at all, and "pthread-config"
+# which is a program returning the flags for the Pth emulation library.
+
+ax_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config"
+
+# The ordering *is* (sometimes) important.  Some notes on the
+# individual items follow:
+
+# pthreads: AIX (must check this before -lpthread)
+# none: in case threads are in libc; should be tried before -Kthread and
+#       other compiler flags to prevent continual compiler warnings
+# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h)
+# -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able)
+# lthread: LinuxThreads port on FreeBSD (also preferred to -pthread)
+# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads)
+# -pthreads: Solaris/gcc
+# -mthreads: Mingw32/gcc, Lynx/gcc
+# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it
+#      doesn't hurt to check since this sometimes defines pthreads too;
+#      also defines -D_REENTRANT)
+#      ... -mt is also the pthreads flag for HP/aCC
+# pthread: Linux, etcetera
+# --thread-safe: KAI C++
+# pthread-config: use pthread-config program (for GNU Pth library)
+
+case ${host_os} in
+        solaris*)
+
+        # On Solaris (at least, for some versions), libc contains stubbed
+        # (non-functional) versions of the pthreads routines, so link-based
+        # tests will erroneously succeed.  (We need to link with -pthreads/-mt/
+        # -lpthread.)  (The stubs are missing pthread_cleanup_push, or rather
+        # a function called by this macro, so we could check for that, but
+        # who knows whether they'll stub that too in a future libc.)  So,
+        # we'll just look for -pthreads and -lpthread first:
+
+        ax_pthread_flags="-pthreads pthread -mt -pthread $ax_pthread_flags"
+        ;;
+
+        darwin*)
+        ax_pthread_flags="-pthread $ax_pthread_flags"
+        ;;
+esac
+
+# Clang doesn't consider unrecognized options an error unless we specify
+# -Werror. We throw in some extra Clang-specific options to ensure that
+# this doesn't happen for GCC, which also accepts -Werror.
+
+AC_MSG_CHECKING([if compiler needs -Werror to reject unknown flags])
+save_CFLAGS="$CFLAGS"
+ax_pthread_extra_flags="-Werror"
+CFLAGS="$CFLAGS $ax_pthread_extra_flags -Wunknown-warning-option -Wsizeof-array-argument"
+AC_COMPILE_IFELSE([AC_LANG_PROGRAM([int foo(void);],[foo()])],
+                  [AC_MSG_RESULT([yes])],
+                  [ax_pthread_extra_flags=
+                   AC_MSG_RESULT([no])])
+CFLAGS="$save_CFLAGS"
+
+if test x"$ax_pthread_ok" = xno; then
+for flag in $ax_pthread_flags; do
+
+        case $flag in
+                none)
+                AC_MSG_CHECKING([whether pthreads work without any flags])
+                ;;
+
+                -*)
+                AC_MSG_CHECKING([whether pthreads work with $flag])
+                PTHREAD_CFLAGS="$flag"
+                ;;
+
+                pthread-config)
+                AC_CHECK_PROG([ax_pthread_config], [pthread-config], [yes], [no])
+                if test x"$ax_pthread_config" = xno; then continue; fi
+                PTHREAD_CFLAGS="`pthread-config --cflags`"
+                PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`"
+                ;;
+
+                *)
+                AC_MSG_CHECKING([for the pthreads library -l$flag])
+                PTHREAD_LIBS="-l$flag"
+                ;;
+        esac
+
+        save_LIBS="$LIBS"
+        save_CFLAGS="$CFLAGS"
+        LIBS="$PTHREAD_LIBS $LIBS"
+        CFLAGS="$CFLAGS $PTHREAD_CFLAGS $ax_pthread_extra_flags"
+
+        # Check for various functions.  We must include pthread.h,
+        # since some functions may be macros.  (On the Sequent, we
+        # need a special flag -Kthread to make this header compile.)
+        # We check for pthread_join because it is in -lpthread on IRIX
+        # while pthread_create is in libc.  We check for pthread_attr_init
+        # due to DEC craziness with -lpthreads.  We check for
+        # pthread_cleanup_push because it is one of the few pthread
+        # functions on Solaris that doesn't have a non-functional libc stub.
+        # We try pthread_create on general principles.
+        AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <pthread.h>
+                        static void routine(void *a) { a = 0; }
+                        static void *start_routine(void *a) { return a; }],
+                       [pthread_t th; pthread_attr_t attr;
+                        pthread_create(&th, 0, start_routine, 0);
+                        pthread_join(th, 0);
+                        pthread_attr_init(&attr);
+                        pthread_cleanup_push(routine, 0);
+                        pthread_cleanup_pop(0) /* ; */])],
+                [ax_pthread_ok=yes],
+                [])
+
+        LIBS="$save_LIBS"
+        CFLAGS="$save_CFLAGS"
+
+        AC_MSG_RESULT([$ax_pthread_ok])
+        if test "x$ax_pthread_ok" = xyes; then
+                break;
+        fi
+
+        PTHREAD_LIBS=""
+        PTHREAD_CFLAGS=""
+done
+fi
+
+# Various other checks:
+if test "x$ax_pthread_ok" = xyes; then
+        save_LIBS="$LIBS"
+        LIBS="$PTHREAD_LIBS $LIBS"
+        save_CFLAGS="$CFLAGS"
+        CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
+
+        # Detect AIX lossage: JOINABLE attribute is called UNDETACHED.
+        AC_MSG_CHECKING([for joinable pthread attribute])
+        attr_name=unknown
+        for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do
+            AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <pthread.h>],
+                           [int attr = $attr; return attr /* ; */])],
+                [attr_name=$attr; break],
+                [])
+        done
+        AC_MSG_RESULT([$attr_name])
+        if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then
+            AC_DEFINE_UNQUOTED([PTHREAD_CREATE_JOINABLE], [$attr_name],
+                               [Define to necessary symbol if this constant
+                                uses a non-standard name on your system.])
+        fi
+
+        AC_MSG_CHECKING([if more special flags are required for pthreads])
+        flag=no
+        case ${host_os} in
+            aix* | freebsd* | darwin*) flag="-D_THREAD_SAFE";;
+            osf* | hpux*) flag="-D_REENTRANT";;
+            solaris*)
+            if test "$GCC" = "yes"; then
+                flag="-D_REENTRANT"
+            else
+                # TODO: What about Clang on Solaris?
+                flag="-mt -D_REENTRANT"
+            fi
+            ;;
+        esac
+        AC_MSG_RESULT([$flag])
+        if test "x$flag" != xno; then
+            PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS"
+        fi
+
+        AC_CACHE_CHECK([for PTHREAD_PRIO_INHERIT],
+            [ax_cv_PTHREAD_PRIO_INHERIT], [
+                AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <pthread.h>]],
+                                                [[int i = PTHREAD_PRIO_INHERIT;]])],
+                    [ax_cv_PTHREAD_PRIO_INHERIT=yes],
+                    [ax_cv_PTHREAD_PRIO_INHERIT=no])
+            ])
+        AS_IF([test "x$ax_cv_PTHREAD_PRIO_INHERIT" = "xyes"],
+            [AC_DEFINE([HAVE_PTHREAD_PRIO_INHERIT], [1], [Have PTHREAD_PRIO_INHERIT.])])
+
+        LIBS="$save_LIBS"
+        CFLAGS="$save_CFLAGS"
+
+        # More AIX lossage: compile with *_r variant
+        if test "x$GCC" != xyes; then
+            case $host_os in
+                aix*)
+                AS_CASE(["x/$CC"],
+                  [x*/c89|x*/c89_128|x*/c99|x*/c99_128|x*/cc|x*/cc128|x*/xlc|x*/xlc_v6|x*/xlc128|x*/xlc128_v6],
+                  [#handle absolute path differently from PATH based program lookup
+                   AS_CASE(["x$CC"],
+                     [x/*],
+                     [AS_IF([AS_EXECUTABLE_P([${CC}_r])],[PTHREAD_CC="${CC}_r"])],
+                     [AC_CHECK_PROGS([PTHREAD_CC],[${CC}_r],[$CC])])])
+                ;;
+            esac
+        fi
+fi
+
+test -n "$PTHREAD_CC" || PTHREAD_CC="$CC"
+
+AC_SUBST([PTHREAD_LIBS])
+AC_SUBST([PTHREAD_CFLAGS])
+AC_SUBST([PTHREAD_CC])
+
+# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:
+if test x"$ax_pthread_ok" = xyes; then
+        ifelse([$1],,[AC_DEFINE([HAVE_PTHREAD],[1],[Define if you have POSIX threads libraries and header files.])],[$1])
+        :
+else
+        ax_pthread_ok=no
+        $2
+fi
+AC_LANG_POP
+])dnl AX_PTHREAD
diff --git a/common/m4/gst-arch.m4 b/common/m4/gst-arch.m4
index 077a20b..4ad7680 100644
--- a/common/m4/gst-arch.m4
+++ b/common/m4/gst-arch.m4
@@ -45,9 +45,15 @@
     xalpha*)
       HAVE_CPU_ALPHA=yes
       AC_DEFINE(HAVE_CPU_ALPHA, 1, [Define if the target CPU is an Alpha]) ;;
+    xarc*)
+      HAVE_CPU_ARC=yes
+      AC_DEFINE(HAVE_CPU_ARC, 1, [Define if the target CPU is an ARC]) ;;
     xarm*)
       HAVE_CPU_ARM=yes
       AC_DEFINE(HAVE_CPU_ARM, 1, [Define if the target CPU is an ARM]) ;;
+    xaarch64*)
+      HAVE_CPU_AARCH64=yes
+      AC_DEFINE(HAVE_CPU_AARCH64, 1, [Define if the target CPU is AARCH64]) ;;
     xsparc*)
       HAVE_CPU_SPARC=yes
       AC_DEFINE(HAVE_CPU_SPARC, 1, [Define if the target CPU is a SPARC]) ;;
@@ -84,6 +90,7 @@
   AM_CONDITIONAL(HAVE_CPU_PPC,        test "x$HAVE_CPU_PPC" = "xyes")
   AM_CONDITIONAL(HAVE_CPU_PPC64,      test "x$HAVE_CPU_PPC64" = "xyes")
   AM_CONDITIONAL(HAVE_CPU_ALPHA,      test "x$HAVE_CPU_ALPHA" = "xyes")
+  AM_CONDITIONAL(HAVE_CPU_ARC,        test "x$HAVE_CPU_ARC" = "xyes")
   AM_CONDITIONAL(HAVE_CPU_ARM,        test "x$HAVE_CPU_ARM" = "xyes")
   AM_CONDITIONAL(HAVE_CPU_SPARC,      test "x$HAVE_CPU_SPARC" = "xyes")
   AM_CONDITIONAL(HAVE_CPU_HPPA,       test "x$HAVE_CPU_HPPA" = "xyes")
@@ -104,7 +111,7 @@
   AC_MSG_CHECKING([if unaligned memory access works correctly])
   if test x"$as_cv_unaligned_access" = x ; then
     case $host in
-      alpha*|arm*|hp*|mips*|sh*|sparc*|ia64*)
+      alpha*|arc*|arm*|aarch64*|hp*|mips*|sh*|sparc*|ia64*)
         _AS_ECHO_N([(blacklisted) ])
         as_cv_unaligned_access=no
 	;;
diff --git a/common/m4/gst-error.m4 b/common/m4/gst-error.m4
index bce80d2..d6487cc 100644
--- a/common/m4/gst-error.m4
+++ b/common/m4/gst-error.m4
@@ -76,14 +76,6 @@
             ])
           done
       ])
-    else
-      dnl Add -fno-strict-aliasing for GLib versions before 2.19.8
-      dnl as before G_LOCK and friends caused strict aliasing compiler
-      dnl warnings.
-      PKG_CHECK_EXISTS([glib-2.0 < 2.19.8], [
-        AS_COMPILER_FLAG(-fno-strict-aliasing,
-            ERROR_CFLAGS="$ERROR_CFLAGS -fno-strict-aliasing")
-	])
     fi
   fi
 
diff --git a/common/m4/gst-parser.m4 b/common/m4/gst-parser.m4
index b002047..382ef72 100644
--- a/common/m4/gst-parser.m4
+++ b/common/m4/gst-parser.m4
@@ -15,7 +15,7 @@
   bison_version=`$BISON_PATH --version | head -n 1 |  sed 's/^[[^0-9]]*//' | sed 's/[[^0-9]]*$//' | cut -d' ' -f1`
   AC_MSG_CHECKING([bison version $bison_version >= $bison_min_version])
 
-  if perl -we "exit ((v$bison_version ge v$bison_min_version) ? 0 : 1)"; then
+  if perl -we "exit (('v$bison_version' ge 'v$bison_min_version') ? 0 : 1)"; then
     AC_MSG_RESULT([yes])
   else
     AC_MSG_ERROR([no])
diff --git a/common/m4/gst-x11.m4 b/common/m4/gst-x11.m4
index d3baf2d..c41ddff 100644
--- a/common/m4/gst-x11.m4
+++ b/common/m4/gst-x11.m4
@@ -9,7 +9,11 @@
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
 
   dnl now try to find the HEADER
-  AC_CHECK_HEADER(X11/Xlib.h, HAVE_X="yes", HAVE_X="no")
+  HAVE_X="no"
+  AC_CHECK_HEADER([X11/Xlib.h], [
+    dnl and then the library with the most uniquitous function
+    AC_CHECK_LIB(X11, [XSync], [HAVE_X="yes"], [], [$X_LIBS $X_PRE_LIBS $X_EXTRA_LIBS])
+  ], [], [AC_INCLUDES_DEFAULT])
 
   if test "x$HAVE_X" = "xno"
   then
diff --git a/common/scangobj-merge.py b/common/scangobj-merge.py
index 4a9f1fc..46736b4 100755
--- a/common/scangobj-merge.py
+++ b/common/scangobj-merge.py
@@ -8,8 +8,9 @@
 
 from __future__ import print_function, unicode_literals
 
-import sys
+import codecs
 import os
+import sys
 
 def debug(*args):
     pass
@@ -105,10 +106,12 @@
 class GDoc:
     def load_file(self, filename):
         try:
-            lines = open(filename).readlines()
+            lines = codecs.open(filename, encoding='utf-8').readlines()
             self.load_data("".join(lines))
         except IOError:
             print ("WARNING - could not read from %s" % filename)
+        except UnicodeDecodeError as e:
+            print ("WARNING - could not parse %s: %s" % (filename, e))
 
     def save_file(self, filename, backup=False):
         """
@@ -116,7 +119,7 @@
         """
         olddata = None
         try:
-            lines = open(filename).readlines()
+            lines = codecs.open(filename, encoding='utf-8').readlines()
             olddata = "".join(lines)
         except IOError:
             print ("WARNING - could not read from %s" % filename)
@@ -128,7 +131,7 @@
             if backup:
                 os.rename(filename, filename + '.bak')
 
-        handle = open(filename, "w")
+        handle = codecs.open(filename, "w", encoding='utf-8')
         handle.write(newdata)
         handle.close()
 
diff --git a/compile b/compile
index b1f4749..531136b 100755
--- a/compile
+++ b/compile
@@ -1,10 +1,9 @@
 #! /bin/sh
 # Wrapper for compilers which do not understand '-c -o'.
 
-scriptversion=2012-01-04.17; # UTC
+scriptversion=2012-10-14.11; # UTC
 
-# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2009, 2010, 2012 Free
-# Software Foundation, Inc.
+# Copyright (C) 1999-2013 Free Software Foundation, Inc.
 # Written by Tom Tromey <tromey@cygnus.com>.
 #
 # This program is free software; you can redistribute it and/or modify
@@ -79,6 +78,53 @@
   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
+    if test -f "$dir/lib$lib.a"; then
+      found=yes
+      lib=$dir/lib$lib.a
+      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 +155,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.guess b/config.guess
index d622a44..1f5c50c 100755
--- a/config.guess
+++ b/config.guess
@@ -1,14 +1,12 @@
 #! /bin/sh
 # Attempt to guess a canonical system name.
-#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
-#   2011, 2012 Free Software Foundation, Inc.
+#   Copyright 1992-2014 Free Software Foundation, Inc.
 
-timestamp='2012-02-10'
+timestamp='2014-03-23'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
+# the Free Software Foundation; either version 3 of the License, or
 # (at your option) any later version.
 #
 # This program is distributed in the hope that it will be useful, but
@@ -22,19 +20,17 @@
 # As a special exception to the GNU General Public License, if you
 # distribute this file as part of a program that contains a
 # configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-
-# Originally written by Per Bothner.  Please send patches (context
-# diff format) to <config-patches@gnu.org> and include a ChangeLog
-# entry.
+# the same distribution terms that you use for the rest of that
+# program.  This Exception is an additional permission under section 7
+# of the GNU General Public License, version 3 ("GPLv3").
 #
-# This script attempts to guess a canonical system name similar to
-# config.sub.  If it succeeds, it prints the system name on stdout, and
-# exits with 0.  Otherwise, it exits with 1.
+# Originally written by Per Bothner.
 #
 # You can get the latest version of this script from:
 # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
+#
+# Please send patches with a ChangeLog entry to config-patches@gnu.org.
+
 
 me=`echo "$0" | sed -e 's,.*/,,'`
 
@@ -54,9 +50,7 @@
 GNU config.guess ($timestamp)
 
 Originally written by Per Bothner.
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
-Free Software Foundation, Inc.
+Copyright 1992-2014 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -138,6 +132,27 @@
 UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
 UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
 
+case "${UNAME_SYSTEM}" in
+Linux|GNU|GNU/*)
+	# If the system lacks a compiler, then just pick glibc.
+	# We could probably try harder.
+	LIBC=gnu
+
+	eval $set_cc_for_build
+	cat <<-EOF > $dummy.c
+	#include <features.h>
+	#if defined(__UCLIBC__)
+	LIBC=uclibc
+	#elif defined(__dietlibc__)
+	LIBC=dietlibc
+	#else
+	LIBC=gnu
+	#endif
+	EOF
+	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`
+	;;
+esac
+
 # Note: order is significant - the case branches are not exclusive.
 
 case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
@@ -200,6 +215,10 @@
 	# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
 	echo "${machine}-${os}${release}"
 	exit ;;
+    *:Bitrig:*:*)
+	UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
+	echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE}
+	exit ;;
     *:OpenBSD:*:*)
 	UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
 	echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
@@ -302,7 +321,7 @@
     arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
 	echo arm-acorn-riscix${UNAME_RELEASE}
 	exit ;;
-    arm:riscos:*:*|arm:RISCOS:*:*)
+    arm*:riscos:*:*|arm*:RISCOS:*:*)
 	echo arm-unknown-riscos
 	exit ;;
     SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
@@ -801,10 +820,13 @@
     i*:CYGWIN*:*)
 	echo ${UNAME_MACHINE}-pc-cygwin
 	exit ;;
+    *:MINGW64*:*)
+	echo ${UNAME_MACHINE}-pc-mingw64
+	exit ;;
     *:MINGW*:*)
 	echo ${UNAME_MACHINE}-pc-mingw32
 	exit ;;
-    i*:MSYS*:*)
+    *:MSYS*:*)
 	echo ${UNAME_MACHINE}-pc-msys
 	exit ;;
     i*:windows32*:*)
@@ -852,21 +874,21 @@
 	exit ;;
     *:GNU:*:*)
 	# the GNU system
-	echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
+	echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
 	exit ;;
     *:GNU/*:*:*)
 	# other systems with GNU libc and userland
-	echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
+	echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC}
 	exit ;;
     i*86:Minix:*:*)
 	echo ${UNAME_MACHINE}-pc-minix
 	exit ;;
     aarch64:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     aarch64_be:Linux:*:*)
 	UNAME_MACHINE=aarch64_be
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     alpha:Linux:*:*)
 	case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
@@ -879,59 +901,54 @@
 	  EV68*) UNAME_MACHINE=alphaev68 ;;
 	esac
 	objdump --private-headers /bin/sh | grep -q ld.so.1
-	if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
-	echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
+	if test "$?" = 0 ; then LIBC="gnulibc1" ; fi
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+	exit ;;
+    arc:Linux:*:* | arceb:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     arm*:Linux:*:*)
 	eval $set_cc_for_build
 	if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
 	    | grep -q __ARM_EABI__
 	then
-	    echo ${UNAME_MACHINE}-unknown-linux-gnu
+	    echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	else
 	    if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
 		| grep -q __ARM_PCS_VFP
 	    then
-		echo ${UNAME_MACHINE}-unknown-linux-gnueabi
+		echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi
 	    else
-		echo ${UNAME_MACHINE}-unknown-linux-gnueabihf
+		echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf
 	    fi
 	fi
 	exit ;;
     avr32*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     cris:Linux:*:*)
-	echo ${UNAME_MACHINE}-axis-linux-gnu
+	echo ${UNAME_MACHINE}-axis-linux-${LIBC}
 	exit ;;
     crisv32:Linux:*:*)
-	echo ${UNAME_MACHINE}-axis-linux-gnu
+	echo ${UNAME_MACHINE}-axis-linux-${LIBC}
 	exit ;;
     frv:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     hexagon:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     i*86:Linux:*:*)
-	LIBC=gnu
-	eval $set_cc_for_build
-	sed 's/^	//' << EOF >$dummy.c
-	#ifdef __dietlibc__
-	LIBC=dietlibc
-	#endif
-EOF
-	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
-	echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
+	echo ${UNAME_MACHINE}-pc-linux-${LIBC}
 	exit ;;
     ia64:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     m32r*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     m68*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     mips:Linux:*:* | mips64:Linux:*:*)
 	eval $set_cc_for_build
@@ -950,54 +967,63 @@
 	#endif
 EOF
 	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
-	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
+	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }
 	;;
-    or32:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+    openrisc*:Linux:*:*)
+	echo or1k-unknown-linux-${LIBC}
+	exit ;;
+    or32:Linux:*:* | or1k*:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     padre:Linux:*:*)
-	echo sparc-unknown-linux-gnu
+	echo sparc-unknown-linux-${LIBC}
 	exit ;;
     parisc64:Linux:*:* | hppa64:Linux:*:*)
-	echo hppa64-unknown-linux-gnu
+	echo hppa64-unknown-linux-${LIBC}
 	exit ;;
     parisc:Linux:*:* | hppa:Linux:*:*)
 	# Look for CPU level
 	case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
-	  PA7*) echo hppa1.1-unknown-linux-gnu ;;
-	  PA8*) echo hppa2.0-unknown-linux-gnu ;;
-	  *)    echo hppa-unknown-linux-gnu ;;
+	  PA7*) echo hppa1.1-unknown-linux-${LIBC} ;;
+	  PA8*) echo hppa2.0-unknown-linux-${LIBC} ;;
+	  *)    echo hppa-unknown-linux-${LIBC} ;;
 	esac
 	exit ;;
     ppc64:Linux:*:*)
-	echo powerpc64-unknown-linux-gnu
+	echo powerpc64-unknown-linux-${LIBC}
 	exit ;;
     ppc:Linux:*:*)
-	echo powerpc-unknown-linux-gnu
+	echo powerpc-unknown-linux-${LIBC}
+	exit ;;
+    ppc64le:Linux:*:*)
+	echo powerpc64le-unknown-linux-${LIBC}
+	exit ;;
+    ppcle:Linux:*:*)
+	echo powerpcle-unknown-linux-${LIBC}
 	exit ;;
     s390:Linux:*:* | s390x:Linux:*:*)
-	echo ${UNAME_MACHINE}-ibm-linux
+	echo ${UNAME_MACHINE}-ibm-linux-${LIBC}
 	exit ;;
     sh64*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     sh*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     sparc:Linux:*:* | sparc64:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     tile*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     vax:Linux:*:*)
-	echo ${UNAME_MACHINE}-dec-linux-gnu
+	echo ${UNAME_MACHINE}-dec-linux-${LIBC}
 	exit ;;
     x86_64:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     xtensa*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     i*86:DYNIX/ptx:4*:*)
 	# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
@@ -1201,6 +1227,9 @@
     BePC:Haiku:*:*)	# Haiku running on Intel PC compatible.
 	echo i586-pc-haiku
 	exit ;;
+    x86_64:Haiku:*:*)
+	echo x86_64-unknown-haiku
+	exit ;;
     SX-4:SUPER-UX:*:*)
 	echo sx4-nec-superux${UNAME_RELEASE}
 	exit ;;
@@ -1227,19 +1256,31 @@
 	exit ;;
     *:Darwin:*:*)
 	UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
-	case $UNAME_PROCESSOR in
-	    i386)
-		eval $set_cc_for_build
-		if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
-		  if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
-		      (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
-		      grep IS_64BIT_ARCH >/dev/null
-		  then
-		      UNAME_PROCESSOR="x86_64"
-		  fi
-		fi ;;
-	    unknown) UNAME_PROCESSOR=powerpc ;;
-	esac
+	eval $set_cc_for_build
+	if test "$UNAME_PROCESSOR" = unknown ; then
+	    UNAME_PROCESSOR=powerpc
+	fi
+	if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then
+	    if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+		if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
+		    (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+		    grep IS_64BIT_ARCH >/dev/null
+		then
+		    case $UNAME_PROCESSOR in
+			i386) UNAME_PROCESSOR=x86_64 ;;
+			powerpc) UNAME_PROCESSOR=powerpc64 ;;
+		    esac
+		fi
+	    fi
+	elif test "$UNAME_PROCESSOR" = i386 ; then
+	    # Avoid executing cc on OS X 10.9, as it ships with a stub
+	    # that puts up a graphical alert prompting to install
+	    # developer tools.  Any system running Mac OS X 10.7 or
+	    # later (Darwin 11 and later) is required to have a 64-bit
+	    # processor. This is not true of the ARM version of Darwin
+	    # that Apple uses in portable devices.
+	    UNAME_PROCESSOR=x86_64
+	fi
 	echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
 	exit ;;
     *:procnto*:*:* | *:QNX:[0123456789]*:*)
@@ -1256,7 +1297,7 @@
     NEO-?:NONSTOP_KERNEL:*:*)
 	echo neo-tandem-nsk${UNAME_RELEASE}
 	exit ;;
-    NSE-?:NONSTOP_KERNEL:*:*)
+    NSE-*:NONSTOP_KERNEL:*:*)
 	echo nse-tandem-nsk${UNAME_RELEASE}
 	exit ;;
     NSR-?:NONSTOP_KERNEL:*:*)
@@ -1330,157 +1371,6 @@
 	exit ;;
 esac
 
-#echo '(No uname command or uname output not recognized.)' 1>&2
-#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
-
-eval $set_cc_for_build
-cat >$dummy.c <<EOF
-#ifdef _SEQUENT_
-# include <sys/types.h>
-# include <sys/utsname.h>
-#endif
-main ()
-{
-#if defined (sony)
-#if defined (MIPSEB)
-  /* BFD wants "bsd" instead of "newsos".  Perhaps BFD should be changed,
-     I don't know....  */
-  printf ("mips-sony-bsd\n"); exit (0);
-#else
-#include <sys/param.h>
-  printf ("m68k-sony-newsos%s\n",
-#ifdef NEWSOS4
-	"4"
-#else
-	""
-#endif
-	); exit (0);
-#endif
-#endif
-
-#if defined (__arm) && defined (__acorn) && defined (__unix)
-  printf ("arm-acorn-riscix\n"); exit (0);
-#endif
-
-#if defined (hp300) && !defined (hpux)
-  printf ("m68k-hp-bsd\n"); exit (0);
-#endif
-
-#if defined (NeXT)
-#if !defined (__ARCHITECTURE__)
-#define __ARCHITECTURE__ "m68k"
-#endif
-  int version;
-  version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
-  if (version < 4)
-    printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
-  else
-    printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
-  exit (0);
-#endif
-
-#if defined (MULTIMAX) || defined (n16)
-#if defined (UMAXV)
-  printf ("ns32k-encore-sysv\n"); exit (0);
-#else
-#if defined (CMU)
-  printf ("ns32k-encore-mach\n"); exit (0);
-#else
-  printf ("ns32k-encore-bsd\n"); exit (0);
-#endif
-#endif
-#endif
-
-#if defined (__386BSD__)
-  printf ("i386-pc-bsd\n"); exit (0);
-#endif
-
-#if defined (sequent)
-#if defined (i386)
-  printf ("i386-sequent-dynix\n"); exit (0);
-#endif
-#if defined (ns32000)
-  printf ("ns32k-sequent-dynix\n"); exit (0);
-#endif
-#endif
-
-#if defined (_SEQUENT_)
-    struct utsname un;
-
-    uname(&un);
-
-    if (strncmp(un.version, "V2", 2) == 0) {
-	printf ("i386-sequent-ptx2\n"); exit (0);
-    }
-    if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
-	printf ("i386-sequent-ptx1\n"); exit (0);
-    }
-    printf ("i386-sequent-ptx\n"); exit (0);
-
-#endif
-
-#if defined (vax)
-# if !defined (ultrix)
-#  include <sys/param.h>
-#  if defined (BSD)
-#   if BSD == 43
-      printf ("vax-dec-bsd4.3\n"); exit (0);
-#   else
-#    if BSD == 199006
-      printf ("vax-dec-bsd4.3reno\n"); exit (0);
-#    else
-      printf ("vax-dec-bsd\n"); exit (0);
-#    endif
-#   endif
-#  else
-    printf ("vax-dec-bsd\n"); exit (0);
-#  endif
-# else
-    printf ("vax-dec-ultrix\n"); exit (0);
-# endif
-#endif
-
-#if defined (alliant) && defined (i860)
-  printf ("i860-alliant-bsd\n"); exit (0);
-#endif
-
-  exit (1);
-}
-EOF
-
-$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
-	{ echo "$SYSTEM_NAME"; exit; }
-
-# Apollos put the system type in the environment.
-
-test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
-
-# Convex versions that predate uname can use getsysinfo(1)
-
-if [ -x /usr/convex/getsysinfo ]
-then
-    case `getsysinfo -f cpu_type` in
-    c1*)
-	echo c1-convex-bsd
-	exit ;;
-    c2*)
-	if getsysinfo -f scalar_acc
-	then echo c32-convex-bsd
-	else echo c2-convex-bsd
-	fi
-	exit ;;
-    c34*)
-	echo c34-convex-bsd
-	exit ;;
-    c38*)
-	echo c38-convex-bsd
-	exit ;;
-    c4*)
-	echo c4-convex-bsd
-	exit ;;
-    esac
-fi
-
 cat >&2 <<EOF
 $0: unable to guess system type
 
diff --git a/config.h.in b/config.h.in
index ea710f1..8cf04d4 100644
--- a/config.h.in
+++ b/config.h.in
@@ -103,9 +103,15 @@
    the CoreFoundation framework. */
 #undef HAVE_CFPREFERENCESCOPYAPPVALUE
 
+/* Define if the target CPU is AARCH64 */
+#undef HAVE_CPU_AARCH64
+
 /* Define if the target CPU is an Alpha */
 #undef HAVE_CPU_ALPHA
 
+/* Define if the target CPU is an ARC */
+#undef HAVE_CPU_ARC
+
 /* Define if the target CPU is an ARM */
 #undef HAVE_CPU_ARM
 
@@ -173,6 +179,9 @@
 /* Define if the GNU gettext() function is already present or preinstalled. */
 #undef HAVE_GETTEXT
 
+/* Define to enable glib GIO unix (used by gio-unix-2.0). */
+#undef HAVE_GIO_UNIX_2_0
+
 /* Define to 1 if you have the `gmtime_r' function. */
 #undef HAVE_GMTIME_R
 
@@ -375,9 +384,6 @@
 # endif
 #endif
 
-/* Define to 1 if the X Window System is missing or not being used. */
-#undef X_DISPLAY_MISSING
-
 /* Enable large inode numbers on Mac OS X 10.5.  */
 #ifndef _DARWIN_USE_64_BIT_INODE
 # define _DARWIN_USE_64_BIT_INODE 1
diff --git a/config.sub b/config.sub
index c894da4..bba4efb 100755
--- a/config.sub
+++ b/config.sub
@@ -1,24 +1,18 @@
 #! /bin/sh
 # Configuration validation subroutine script.
-#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
-#   2011, 2012 Free Software Foundation, Inc.
+#   Copyright 1992-2014 Free Software Foundation, Inc.
 
-timestamp='2012-02-10'
+timestamp='2014-09-11'
 
-# This file is (in principle) common to ALL GNU software.
-# The presence of a machine in this file suggests that SOME GNU software
-# can handle that machine.  It does not imply ALL GNU software can.
-#
-# This file is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
+# This file is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
 # (at your option) any later version.
 #
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, see <http://www.gnu.org/licenses/>.
@@ -26,11 +20,12 @@
 # As a special exception to the GNU General Public License, if you
 # distribute this file as part of a program that contains a
 # configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
+# the same distribution terms that you use for the rest of that
+# program.  This Exception is an additional permission under section 7
+# of the GNU General Public License, version 3 ("GPLv3").
 
 
-# Please send patches to <config-patches@gnu.org>.  Submit a context
-# diff and a properly formatted GNU ChangeLog entry.
+# Please send patches with a ChangeLog entry to config-patches@gnu.org.
 #
 # Configuration subroutine to validate and canonicalize a configuration type.
 # Supply the specified configuration type as an argument.
@@ -73,9 +68,7 @@
 version="\
 GNU config.sub ($timestamp)
 
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
-Free Software Foundation, Inc.
+Copyright 1992-2014 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -123,7 +116,7 @@
 maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
 case $maybe_os in
   nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
-  linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
+  linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
   knetbsd*-gnu* | netbsd*-gnu* | \
   kopensolaris*-gnu* | \
   storm-chaos* | os2-emx* | rtmk-nova*)
@@ -156,7 +149,7 @@
 	-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
 	-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
 	-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
-	-apple | -axis | -knuth | -cray | -microblaze)
+	-apple | -axis | -knuth | -cray | -microblaze*)
 		os=
 		basic_machine=$1
 		;;
@@ -225,6 +218,12 @@
 	-isc*)
 		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
 		;;
+	-lynx*178)
+		os=-lynxos178
+		;;
+	-lynx*5)
+		os=-lynxos5
+		;;
 	-lynx*)
 		os=-lynxos
 		;;
@@ -253,10 +252,12 @@
 	| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
 	| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
 	| am33_2.0 \
-	| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
-        | be32 | be64 \
+	| arc | arceb \
+	| arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \
+	| avr | avr32 \
+	| be32 | be64 \
 	| bfin \
-	| c4x | clipper \
+	| c4x | c8051 | clipper \
 	| d10v | d30v | dlx | dsp16xx \
 	| epiphany \
 	| fido | fr30 | frv \
@@ -264,10 +265,11 @@
 	| hexagon \
 	| i370 | i860 | i960 | ia64 \
 	| ip2k | iq2000 \
+	| k1om \
 	| le32 | le64 \
 	| lm32 \
 	| m32c | m32r | m32rle | m68000 | m68k | m88k \
-	| maxq | mb | microblaze | mcore | mep | metag \
+	| maxq | mb | microblaze | microblazeel | mcore | mep | metag \
 	| mips | mipsbe | mipseb | mipsel | mipsle \
 	| mips16 \
 	| mips64 | mips64el \
@@ -281,23 +283,26 @@
 	| mips64vr5900 | mips64vr5900el \
 	| mipsisa32 | mipsisa32el \
 	| mipsisa32r2 | mipsisa32r2el \
+	| mipsisa32r6 | mipsisa32r6el \
 	| mipsisa64 | mipsisa64el \
 	| mipsisa64r2 | mipsisa64r2el \
+	| mipsisa64r6 | mipsisa64r6el \
 	| mipsisa64sb1 | mipsisa64sb1el \
 	| mipsisa64sr71k | mipsisa64sr71kel \
+	| mipsr5900 | mipsr5900el \
 	| mipstx39 | mipstx39el \
 	| mn10200 | mn10300 \
 	| moxie \
 	| mt \
 	| msp430 \
 	| nds32 | nds32le | nds32be \
-	| nios | nios2 \
+	| nios | nios2 | nios2eb | nios2el \
 	| ns16k | ns32k \
-	| open8 \
-	| or32 \
+	| open8 | or1k | or1knd | or32 \
 	| pdp10 | pdp11 | pj | pjl \
 	| powerpc | powerpc64 | powerpc64le | powerpcle \
 	| pyramid \
+	| riscv32 | riscv64 \
 	| rl78 | rx \
 	| score \
 	| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
@@ -322,7 +327,7 @@
 	c6x)
 		basic_machine=tic6x-unknown
 		;;
-	m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip)
+	m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)
 		basic_machine=$basic_machine-unknown
 		os=-none
 		;;
@@ -364,13 +369,13 @@
 	| aarch64-* | aarch64_be-* \
 	| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
 	| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
-	| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
+	| alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \
 	| arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
 	| avr-* | avr32-* \
 	| be32-* | be64-* \
 	| bfin-* | bs2000-* \
 	| c[123]* | c30-* | [cjt]90-* | c4x-* \
-	| clipper-* | craynv-* | cydra-* \
+	| c8051-* | clipper-* | craynv-* | cydra-* \
 	| d10v-* | d30v-* | dlx-* \
 	| elxsi-* \
 	| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
@@ -379,11 +384,13 @@
 	| hexagon-* \
 	| i*86-* | i860-* | i960-* | ia64-* \
 	| ip2k-* | iq2000-* \
+	| k1om-* \
 	| le32-* | le64-* \
 	| lm32-* \
 	| m32c-* | m32r-* | m32rle-* \
 	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
-	| m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \
+	| m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
+	| microblaze-* | microblazeel-* \
 	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
 	| mips16-* \
 	| mips64-* | mips64el-* \
@@ -397,18 +404,22 @@
 	| mips64vr5900-* | mips64vr5900el-* \
 	| mipsisa32-* | mipsisa32el-* \
 	| mipsisa32r2-* | mipsisa32r2el-* \
+	| mipsisa32r6-* | mipsisa32r6el-* \
 	| mipsisa64-* | mipsisa64el-* \
 	| mipsisa64r2-* | mipsisa64r2el-* \
+	| mipsisa64r6-* | mipsisa64r6el-* \
 	| mipsisa64sb1-* | mipsisa64sb1el-* \
 	| mipsisa64sr71k-* | mipsisa64sr71kel-* \
+	| mipsr5900-* | mipsr5900el-* \
 	| mipstx39-* | mipstx39el-* \
 	| mmix-* \
 	| mt-* \
 	| msp430-* \
 	| nds32-* | nds32le-* | nds32be-* \
-	| nios-* | nios2-* \
+	| nios-* | nios2-* | nios2eb-* | nios2el-* \
 	| none-* | np1-* | ns16k-* | ns32k-* \
 	| open8-* \
+	| or1k*-* \
 	| orion-* \
 	| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
 	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
@@ -782,11 +793,15 @@
 		basic_machine=ns32k-utek
 		os=-sysv
 		;;
-	microblaze)
+	microblaze*)
 		basic_machine=microblaze-xilinx
 		;;
+	mingw64)
+		basic_machine=x86_64-pc
+		os=-mingw64
+		;;
 	mingw32)
-		basic_machine=i386-pc
+		basic_machine=i686-pc
 		os=-mingw32
 		;;
 	mingw32ce)
@@ -814,6 +829,10 @@
 		basic_machine=powerpc-unknown
 		os=-morphos
 		;;
+	moxiebox)
+		basic_machine=moxie-unknown
+		os=-moxiebox
+		;;
 	msdos)
 		basic_machine=i386-pc
 		os=-msdos
@@ -822,7 +841,7 @@
 		basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
 		;;
 	msys)
-		basic_machine=i386-pc
+		basic_machine=i686-pc
 		os=-msys
 		;;
 	mvs)
@@ -1013,7 +1032,11 @@
 		basic_machine=i586-unknown
 		os=-pw32
 		;;
-	rdos)
+	rdos | rdos64)
+		basic_machine=x86_64-pc
+		os=-rdos
+		;;
+	rdos32)
 		basic_machine=i386-pc
 		os=-rdos
 		;;
@@ -1340,29 +1363,29 @@
 	-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
 	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
 	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
-	      | -sym* | -kopensolaris* \
+	      | -sym* | -kopensolaris* | -plan9* \
 	      | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
 	      | -aos* | -aros* \
 	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
 	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
 	      | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
-	      | -openbsd* | -solidbsd* \
+	      | -bitrig* | -openbsd* | -solidbsd* \
 	      | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
 	      | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
 	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
 	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
 	      | -chorusos* | -chorusrdb* | -cegcc* \
 	      | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
-	      | -mingw32* | -linux-gnu* | -linux-android* \
-	      | -linux-newlib* | -linux-uclibc* \
-	      | -uxpv* | -beos* | -mpeix* | -udk* \
+	      | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
+	      | -linux-newlib* | -linux-musl* | -linux-uclibc* \
+	      | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \
 	      | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
 	      | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
 	      | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
 	      | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
 	      | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
 	      | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
-	      | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*)
+	      | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* | -tirtos*)
 	# Remember, each alternative MUST END IN *, to match a version number.
 		;;
 	-qnx*)
@@ -1486,9 +1509,6 @@
 	-aros*)
 		os=-aros
 		;;
-	-kaos*)
-		os=-kaos
-		;;
 	-zvmoe)
 		os=-zvmoe
 		;;
@@ -1537,6 +1557,12 @@
 	c4x-* | tic4x-*)
 		os=-coff
 		;;
+	c8051-*)
+		os=-elf
+		;;
+	hexagon-*)
+		os=-elf
+		;;
 	tic54x-*)
 		os=-coff
 		;;
diff --git a/configure b/configure
index b746738..0712f16 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for GStreamer Base Plug-ins 1.3.3.
+# Generated by GNU Autoconf 2.69 for GStreamer Base Plug-ins 1.5.0.1.
 #
 # Report bugs to <http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer>.
 #
@@ -591,8 +591,8 @@
 # Identity of this package.
 PACKAGE_NAME='GStreamer Base Plug-ins'
 PACKAGE_TARNAME='gst-plugins-base'
-PACKAGE_VERSION='1.3.3'
-PACKAGE_STRING='GStreamer Base Plug-ins 1.3.3'
+PACKAGE_VERSION='1.5.0.1'
+PACKAGE_STRING='GStreamer Base Plug-ins 1.5.0.1'
 PACKAGE_BUGREPORT='http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer'
 PACKAGE_URL=''
 
@@ -652,6 +652,10 @@
 FT2_CONFIG
 FT2_LIBS
 FT2_CFLAGS
+USE_GIO_UNIX_2_0_FALSE
+USE_GIO_UNIX_2_0_TRUE
+GIO_UNIX_2_0_LIBS
+GIO_UNIX_2_0_CFLAGS
 USE_VORBIS_FALSE
 USE_VORBIS_TRUE
 VORBIS_LIBS
@@ -687,19 +691,17 @@
 ALSA_CFLAGS
 USE_XSHM_FALSE
 USE_XSHM_TRUE
-XSHM_LIBS
 HAVE_XSHM
+XSHM_LIBS
+XSHM_CFLAGS
 USE_XVIDEO_FALSE
 USE_XVIDEO_TRUE
 XVIDEO_LIBS
+XVIDEO_CFLAGS
 USE_X_FALSE
 USE_X_TRUE
-HAVE_X
-X_EXTRA_LIBS
 X_LIBS
-X_PRE_LIBS
 X_CFLAGS
-XMKMF
 USE_ZLIB_FALSE
 USE_ZLIB_TRUE
 HAVE_ZLIB
@@ -792,6 +794,8 @@
 GST_CONTROLLER_CFLAGS
 GST_BASE_LIBS
 GST_BASE_CFLAGS
+GST_NET_LIBS
+GST_NET_CFLAGS
 GST_PLUGINS_DIR
 GST_TOOLS_DIR
 GST_LIBS
@@ -885,6 +889,8 @@
 HAVE_CPU_SPARC_TRUE
 HAVE_CPU_ARM_FALSE
 HAVE_CPU_ARM_TRUE
+HAVE_CPU_ARC_FALSE
+HAVE_CPU_ARC_TRUE
 HAVE_CPU_ALPHA_FALSE
 HAVE_CPU_ALPHA_TRUE
 HAVE_CPU_PPC64_FALSE
@@ -1143,7 +1149,6 @@
 enable_iso_codes
 enable_zlib
 enable_x
-with_x
 enable_xvideo
 enable_xshm
 enable_alsa
@@ -1156,6 +1161,7 @@
 enable_pango
 enable_theora
 enable_vorbis
+enable_gio_unix_2_0
 with_ft_prefix
 with_ft_exec_prefix
 enable_freetypetest
@@ -1187,6 +1193,8 @@
 ORC_LIBS
 GST_CFLAGS
 GST_LIBS
+GST_NET_CFLAGS
+GST_NET_LIBS
 GST_BASE_CFLAGS
 GST_BASE_LIBS
 GST_CONTROLLER_CFLAGS
@@ -1203,7 +1211,12 @@
 QT_LIBS
 ZLIB_CFLAGS
 ZLIB_LIBS
-XMKMF
+X_CFLAGS
+X_LIBS
+XVIDEO_CFLAGS
+XVIDEO_LIBS
+XSHM_CFLAGS
+XSHM_LIBS
 ALSA_CFLAGS
 ALSA_LIBS
 CDPARANOIA_CFLAGS
@@ -1220,6 +1233,8 @@
 THEORA_LIBS
 VORBIS_CFLAGS
 VORBIS_LIBS
+GIO_UNIX_2_0_CFLAGS
+GIO_UNIX_2_0_LIBS
 FT2_CFLAGS
 FT2_LIBS'
 
@@ -1762,7 +1777,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures GStreamer Base Plug-ins 1.3.3 to adapt to many kinds of systems.
+\`configure' configures GStreamer Base Plug-ins 1.5.0.1 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1825,10 +1840,6 @@
   --program-suffix=SUFFIX            append SUFFIX to installed program names
   --program-transform-name=PROGRAM   run sed PROGRAM on installed program names
 
-X features:
-  --x-includes=DIR    X include files are in DIR
-  --x-libraries=DIR   X library files are in DIR
-
 System types:
   --build=BUILD     configure for building on BUILD [guessed]
   --host=HOST       cross-compile to build programs to run on HOST [BUILD]
@@ -1838,7 +1849,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of GStreamer Base Plug-ins 1.3.3:";;
+     short | recursive ) echo "Configuration of GStreamer Base Plug-ins 1.5.0.1:";;
    esac
   cat <<\_ACEOF
 
@@ -1906,7 +1917,7 @@
   --disable-zlib               disable zlib support for ID3 parsing in libgsttag
   --disable-x                  disable X libraries and plugins: ximagesink
   --disable-xvideo             disable X11 XVideo extensions: xvimagesink
-  --disable-xshm               disable X Shared Memory extension
+  --disable-xshm               disable X Shared Memory extension:
   --disable-alsa               disable ALSA: alsa
   --disable-cdparanoia         disable CDParanoia: cdparanoia
   --disable-ivorbis            disable integer vorbis plug-in: ivorbisdec
@@ -1915,6 +1926,7 @@
   --disable-pango              disable Pango font rendering: pango
   --disable-theora             disable Xiph Theora video codec: theora
   --disable-vorbis             disable Xiph Vorbis audio codec: vorbis
+  --disable-gio_unix_2_0       disable glib GIO unix: gio-unix-2.0
   --disable-freetypetest  Do not try to compile and run
                           a test FreeType program
 
@@ -1959,7 +1971,6 @@
   --with-audioresample-format
                           Which implementation should be used for integer
                           audio resampling, int/float/auto, (default is auto)
-  --with-x                use the X Window System
   --with-alsa-prefix=PFX  prefix where Alsa library is installed(optional)
   --with-alsa-inc-prefix=PFX
                           prefix where include libraries are (optional)
@@ -1998,6 +2009,10 @@
   ORC_LIBS    linker flags for ORC, overriding pkg-config
   GST_CFLAGS  C compiler flags for GST, overriding pkg-config
   GST_LIBS    linker flags for GST, overriding pkg-config
+  GST_NET_CFLAGS
+              C compiler flags for GST_NET, overriding pkg-config
+  GST_NET_LIBS
+              linker flags for GST_NET, overriding pkg-config
   GST_BASE_CFLAGS
               C compiler flags for GST_BASE, overriding pkg-config
   GST_BASE_LIBS
@@ -2024,7 +2039,13 @@
   QT_LIBS     linker flags for QT, overriding pkg-config
   ZLIB_CFLAGS C compiler flags for ZLIB, overriding pkg-config
   ZLIB_LIBS   linker flags for ZLIB, overriding pkg-config
-  XMKMF       Path to xmkmf, Makefile generator for X Window System
+  X_CFLAGS    C compiler flags for X, overriding pkg-config
+  X_LIBS      linker flags for X, overriding pkg-config
+  XVIDEO_CFLAGS
+              C compiler flags for XVIDEO, overriding pkg-config
+  XVIDEO_LIBS linker flags for XVIDEO, overriding pkg-config
+  XSHM_CFLAGS C compiler flags for XSHM, overriding pkg-config
+  XSHM_LIBS   linker flags for XSHM, overriding pkg-config
   ALSA_CFLAGS C compiler flags for ALSA, overriding pkg-config
   ALSA_LIBS   linker flags for ALSA, overriding pkg-config
   CDPARANOIA_CFLAGS
@@ -2050,6 +2071,10 @@
   VORBIS_CFLAGS
               C compiler flags for VORBIS, overriding pkg-config
   VORBIS_LIBS linker flags for VORBIS, overriding pkg-config
+  GIO_UNIX_2_0_CFLAGS
+              C compiler flags for GIO_UNIX_2_0, overriding pkg-config
+  GIO_UNIX_2_0_LIBS
+              linker flags for GIO_UNIX_2_0, overriding pkg-config
   FT2_CFLAGS  C compiler flags for FT2, overriding pkg-config
   FT2_LIBS    linker flags for FT2, overriding pkg-config
 
@@ -2119,7 +2144,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-GStreamer Base Plug-ins configure 1.3.3
+GStreamer Base Plug-ins configure 1.5.0.1
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2892,7 +2917,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by GStreamer Base Plug-ins $as_me 1.3.3, which was
+It was created by GStreamer Base Plug-ins $as_me 1.5.0.1, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -3557,8 +3582,8 @@
 ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
 program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
 
-# expand $ac_aux_dir to an absolute path
-am_aux_dir=`cd $ac_aux_dir && pwd`
+# Expand $ac_aux_dir to an absolute path.
+am_aux_dir=`cd "$ac_aux_dir" && pwd`
 
 if test x"${MISSING+set}" != xset; then
   case $am_aux_dir in
@@ -3871,7 +3896,7 @@
 
 # Define the identity of the package.
  PACKAGE='gst-plugins-base'
- VERSION='1.3.3'
+ VERSION='1.5.0.1'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -4082,9 +4107,9 @@
 
 
 
-  PACKAGE_VERSION_MAJOR=$(echo 1.3.3 | cut -d'.' -f1)
-  PACKAGE_VERSION_MINOR=$(echo 1.3.3 | cut -d'.' -f2)
-  PACKAGE_VERSION_MICRO=$(echo 1.3.3 | cut -d'.' -f3)
+  PACKAGE_VERSION_MAJOR=$(echo 1.5.0.1 | cut -d'.' -f1)
+  PACKAGE_VERSION_MINOR=$(echo 1.5.0.1 | cut -d'.' -f2)
+  PACKAGE_VERSION_MICRO=$(echo 1.5.0.1 | cut -d'.' -f3)
 
 
 
@@ -4095,7 +4120,7 @@
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking nano version" >&5
 $as_echo_n "checking nano version... " >&6; }
 
-  NANO=$(echo 1.3.3 | cut -d'.' -f4)
+  NANO=$(echo 1.5.0.1 | cut -d'.' -f4)
 
   if test x"$NANO" = x || test "x$NANO" = "x0" ; then
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: 0 (release)" >&5
@@ -8744,10 +8769,10 @@
 done
 
 
-  GST_CURRENT=303
+  GST_CURRENT=501
   GST_REVISION=0
-  GST_AGE=303
-  GST_LIBVERSION=303:0:303
+  GST_AGE=501
+  GST_LIBVERSION=501:0:501
 
 
 
@@ -13072,7 +13097,7 @@
 
 
 
-GST_REQ=1.3.3
+GST_REQ=1.5.0.1
 
 
 
@@ -16039,11 +16064,21 @@
 
 $as_echo "#define HAVE_CPU_ALPHA 1" >>confdefs.h
  ;;
+    xarc*)
+      HAVE_CPU_ARC=yes
+
+$as_echo "#define HAVE_CPU_ARC 1" >>confdefs.h
+ ;;
     xarm*)
       HAVE_CPU_ARM=yes
 
 $as_echo "#define HAVE_CPU_ARM 1" >>confdefs.h
  ;;
+    xaarch64*)
+      HAVE_CPU_AARCH64=yes
+
+$as_echo "#define HAVE_CPU_AARCH64 1" >>confdefs.h
+ ;;
     xsparc*)
       HAVE_CPU_SPARC=yes
 
@@ -16348,6 +16383,14 @@
   HAVE_CPU_ALPHA_FALSE=
 fi
 
+   if test "x$HAVE_CPU_ARC" = "xyes"; then
+  HAVE_CPU_ARC_TRUE=
+  HAVE_CPU_ARC_FALSE='#'
+else
+  HAVE_CPU_ARC_TRUE='#'
+  HAVE_CPU_ARC_FALSE=
+fi
+
    if test "x$HAVE_CPU_ARM" = "xyes"; then
   HAVE_CPU_ARM_TRUE=
   HAVE_CPU_ARM_FALSE='#'
@@ -23537,7 +23580,7 @@
 
 
 
-  ORC_REQ=0.4.18
+  ORC_REQ=0.4.23
 
   # Check whether --enable-orc was given.
 if test "${enable_orc+set}" = set; then :
@@ -23816,6 +23859,108 @@
 
 
 
+  module=gstreamer-net-$GST_API_VERSION
+  minver=$GST_REQ
+  name="GStreamer Network Library"
+  required=yes
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GST_NET" >&5
+$as_echo_n "checking for GST_NET... " >&6; }
+
+if test -n "$PKG_CONFIG"; then
+    if test -n "$GST_NET_CFLAGS"; then
+        pkg_cv_GST_NET_CFLAGS="$GST_NET_CFLAGS"
+    else
+        if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$module >= \$minver\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "$module >= $minver") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_GST_NET_CFLAGS=`$PKG_CONFIG --cflags "$module >= $minver" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+    fi
+else
+	pkg_failed=untried
+fi
+if test -n "$PKG_CONFIG"; then
+    if test -n "$GST_NET_LIBS"; then
+        pkg_cv_GST_NET_LIBS="$GST_NET_LIBS"
+    else
+        if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$module >= \$minver\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "$module >= $minver") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_GST_NET_LIBS=`$PKG_CONFIG --libs "$module >= $minver" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+    fi
+else
+	pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
+else
+        _pkg_short_errors_supported=no
+fi
+        if test $_pkg_short_errors_supported = yes; then
+	        GST_NET_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$module >= $minver"`
+        else
+	        GST_NET_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$module >= $minver"`
+        fi
+	# Put the nasty error message in config.log where it belongs
+	echo "$GST_NET_PKG_ERRORS" >&5
+
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+      HAVE_GST_NET="no"
+      { $as_echo "$as_me:${as_lineno-$LINENO}: $GST_NET_PKG_ERRORS" >&5
+$as_echo "$as_me: $GST_NET_PKG_ERRORS" >&6;}
+      if test "x$required" = "xyes"; then
+        as_fn_error $? "no $module >= $minver ($name) found" "$LINENO" 5
+      else
+        { $as_echo "$as_me:${as_lineno-$LINENO}: no $module >= $minver ($name) found" >&5
+$as_echo "$as_me: no $module >= $minver ($name) found" >&6;}
+      fi
+
+elif test $pkg_failed = untried; then
+
+      HAVE_GST_NET="no"
+      { $as_echo "$as_me:${as_lineno-$LINENO}: $GST_NET_PKG_ERRORS" >&5
+$as_echo "$as_me: $GST_NET_PKG_ERRORS" >&6;}
+      if test "x$required" = "xyes"; then
+        as_fn_error $? "no $module >= $minver ($name) found" "$LINENO" 5
+      else
+        { $as_echo "$as_me:${as_lineno-$LINENO}: no $module >= $minver ($name) found" >&5
+$as_echo "$as_me: no $module >= $minver ($name) found" >&6;}
+      fi
+
+else
+	GST_NET_CFLAGS=$pkg_cv_GST_NET_CFLAGS
+	GST_NET_LIBS=$pkg_cv_GST_NET_LIBS
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+      HAVE_GST_NET="yes"
+
+fi
+
+
+
+
+
   module=gstreamer-base-$GST_API_VERSION
   minver=$GST_REQ
   name="GStreamer Base Libraries"
@@ -25356,52 +25501,6 @@
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $flag_ok" >&5
 $as_echo "$flag_ok" >&6; }
 
-    else
-                        if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 < 2.19.8\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "glib-2.0 < 2.19.8") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking to see if compiler understands -fno-strict-aliasing" >&5
-$as_echo_n "checking to see if compiler understands -fno-strict-aliasing... " >&6; }
-
-  save_CFLAGS="$CFLAGS"
-  CFLAGS="$CFLAGS -fno-strict-aliasing"
-
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  flag_ok=yes
-else
-  flag_ok=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  CFLAGS="$save_CFLAGS"
-
-  if test "X$flag_ok" = Xyes ; then
-    ERROR_CFLAGS="$ERROR_CFLAGS -fno-strict-aliasing"
-    true
-  else
-
-    true
-  fi
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $flag_ok" >&5
-$as_echo "$flag_ok" >&6; }
-
-
-fi
     fi
   fi
 
@@ -27290,199 +27389,6 @@
 $as_echo "$as_me: Checking libraries for plugins in sys/" >&6;}
 echo
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for X" >&5
-$as_echo_n "checking for X... " >&6; }
-
-
-# Check whether --with-x was given.
-if test "${with_x+set}" = set; then :
-  withval=$with_x;
-fi
-
-# $have_x is `yes', `no', `disabled', or empty when we do not yet know.
-if test "x$with_x" = xno; then
-  # The user explicitly disabled X.
-  have_x=disabled
-else
-  case $x_includes,$x_libraries in #(
-    *\'*) as_fn_error $? "cannot use X directory names containing '" "$LINENO" 5;; #(
-    *,NONE | NONE,*) if ${ac_cv_have_x+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  # One or both of the vars are not set, and there is no cached value.
-ac_x_includes=no ac_x_libraries=no
-rm -f -r conftest.dir
-if mkdir conftest.dir; then
-  cd conftest.dir
-  cat >Imakefile <<'_ACEOF'
-incroot:
-	@echo incroot='${INCROOT}'
-usrlibdir:
-	@echo usrlibdir='${USRLIBDIR}'
-libdir:
-	@echo libdir='${LIBDIR}'
-_ACEOF
-  if (export CC; ${XMKMF-xmkmf}) >/dev/null 2>/dev/null && test -f Makefile; then
-    # GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
-    for ac_var in incroot usrlibdir libdir; do
-      eval "ac_im_$ac_var=\`\${MAKE-make} $ac_var 2>/dev/null | sed -n 's/^$ac_var=//p'\`"
-    done
-    # Open Windows xmkmf reportedly sets LIBDIR instead of USRLIBDIR.
-    for ac_extension in a so sl dylib la dll; do
-      if test ! -f "$ac_im_usrlibdir/libX11.$ac_extension" &&
-	 test -f "$ac_im_libdir/libX11.$ac_extension"; then
-	ac_im_usrlibdir=$ac_im_libdir; break
-      fi
-    done
-    # Screen out bogus values from the imake configuration.  They are
-    # bogus both because they are the default anyway, and because
-    # using them would break gcc on systems where it needs fixed includes.
-    case $ac_im_incroot in
-	/usr/include) ac_x_includes= ;;
-	*) test -f "$ac_im_incroot/X11/Xos.h" && ac_x_includes=$ac_im_incroot;;
-    esac
-    case $ac_im_usrlibdir in
-	/usr/lib | /usr/lib64 | /lib | /lib64) ;;
-	*) test -d "$ac_im_usrlibdir" && ac_x_libraries=$ac_im_usrlibdir ;;
-    esac
-  fi
-  cd ..
-  rm -f -r conftest.dir
-fi
-
-# Standard set of common directories for X headers.
-# Check X11 before X11Rn because it is often a symlink to the current release.
-ac_x_header_dirs='
-/usr/X11/include
-/usr/X11R7/include
-/usr/X11R6/include
-/usr/X11R5/include
-/usr/X11R4/include
-
-/usr/include/X11
-/usr/include/X11R7
-/usr/include/X11R6
-/usr/include/X11R5
-/usr/include/X11R4
-
-/usr/local/X11/include
-/usr/local/X11R7/include
-/usr/local/X11R6/include
-/usr/local/X11R5/include
-/usr/local/X11R4/include
-
-/usr/local/include/X11
-/usr/local/include/X11R7
-/usr/local/include/X11R6
-/usr/local/include/X11R5
-/usr/local/include/X11R4
-
-/usr/X386/include
-/usr/x386/include
-/usr/XFree86/include/X11
-
-/usr/include
-/usr/local/include
-/usr/unsupported/include
-/usr/athena/include
-/usr/local/x11r5/include
-/usr/lpp/Xamples/include
-
-/usr/openwin/include
-/usr/openwin/share/include'
-
-if test "$ac_x_includes" = no; then
-  # Guess where to find include files, by looking for Xlib.h.
-  # First, try using that file with no special directory specified.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <X11/Xlib.h>
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
-  # We can compile using X headers with no special include directory.
-ac_x_includes=
-else
-  for ac_dir in $ac_x_header_dirs; do
-  if test -r "$ac_dir/X11/Xlib.h"; then
-    ac_x_includes=$ac_dir
-    break
-  fi
-done
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-fi # $ac_x_includes = no
-
-if test "$ac_x_libraries" = no; then
-  # Check for the libraries.
-  # See if we find them without any special options.
-  # Don't add to $LIBS permanently.
-  ac_save_LIBS=$LIBS
-  LIBS="-lX11 $LIBS"
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <X11/Xlib.h>
-int
-main ()
-{
-XrmInitialize ()
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  LIBS=$ac_save_LIBS
-# We can link X programs with no special library path.
-ac_x_libraries=
-else
-  LIBS=$ac_save_LIBS
-for ac_dir in `$as_echo "$ac_x_includes $ac_x_header_dirs" | sed s/include/lib/g`
-do
-  # Don't even attempt the hair of trying to link an X program!
-  for ac_extension in a so sl dylib la dll; do
-    if test -r "$ac_dir/libX11.$ac_extension"; then
-      ac_x_libraries=$ac_dir
-      break 2
-    fi
-  done
-done
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-fi # $ac_x_libraries = no
-
-case $ac_x_includes,$ac_x_libraries in #(
-  no,* | *,no | *\'*)
-    # Didn't find X, or a directory has "'" in its name.
-    ac_cv_have_x="have_x=no";; #(
-  *)
-    # Record where we found X for the cache.
-    ac_cv_have_x="have_x=yes\
-	ac_x_includes='$ac_x_includes'\
-	ac_x_libraries='$ac_x_libraries'"
-esac
-fi
-;; #(
-    *) have_x=yes;;
-  esac
-  eval "$ac_cv_have_x"
-fi # $with_x != no
-
-if test "$have_x" != yes; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_x" >&5
-$as_echo "$have_x" >&6; }
-  no_x=yes
-else
-  # If each of the values was on the command line, it overrides each guess.
-  test "x$x_includes" = xNONE && x_includes=$ac_x_includes
-  test "x$x_libraries" = xNONE && x_libraries=$ac_x_libraries
-  # Update the cache value to reflect the command line values.
-  ac_cv_have_x="have_x=yes\
-	ac_x_includes='$x_includes'\
-	ac_x_libraries='$x_libraries'"
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: libraries $x_libraries, headers $x_includes" >&5
-$as_echo "libraries $x_libraries, headers $x_includes" >&6; }
-fi
-
 echo
 { $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: X libraries and plugins ***" >&5
 $as_echo "$as_me: *** checking feature: X libraries and plugins ***" >&6;}
@@ -27531,524 +27437,99 @@
   HAVE_X=no
 
 
-  if test "$no_x" = yes; then
-  # Not all programs may use this symbol, but it does not hurt to define it.
+  which="x11"
+    required="no"
 
-$as_echo "#define X_DISPLAY_MISSING 1" >>confdefs.h
 
-  X_CFLAGS= X_PRE_LIBS= X_LIBS= X_EXTRA_LIBS=
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for X" >&5
+$as_echo_n "checking for X... " >&6; }
+
+if test -n "$PKG_CONFIG"; then
+    if test -n "$X_CFLAGS"; then
+        pkg_cv_X_CFLAGS="$X_CFLAGS"
+    else
+        if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$which\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "$which") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_X_CFLAGS=`$PKG_CONFIG --cflags "$which" 2>/dev/null`
 else
-  if test -n "$x_includes"; then
-    X_CFLAGS="$X_CFLAGS -I$x_includes"
-  fi
+  pkg_failed=yes
+fi
+    fi
+else
+	pkg_failed=untried
+fi
+if test -n "$PKG_CONFIG"; then
+    if test -n "$X_LIBS"; then
+        pkg_cv_X_LIBS="$X_LIBS"
+    else
+        if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$which\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "$which") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_X_LIBS=`$PKG_CONFIG --libs "$which" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+    fi
+else
+	pkg_failed=untried
+fi
 
-  # It would also be nice to do this for all -L options, not just this one.
-  if test -n "$x_libraries"; then
-    X_LIBS="$X_LIBS -L$x_libraries"
-    # For Solaris; some versions of Sun CC require a space after -R and
-    # others require no space.  Words are not sufficient . . . .
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -R must be followed by a space" >&5
-$as_echo_n "checking whether -R must be followed by a space... " >&6; }
-    ac_xsave_LIBS=$LIBS; LIBS="$LIBS -R$x_libraries"
-    ac_xsave_c_werror_flag=$ac_c_werror_flag
-    ac_c_werror_flag=yes
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-int
-main ()
-{
 
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+if test $pkg_failed = yes; then
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
+else
+        _pkg_short_errors_supported=no
+fi
+        if test $_pkg_short_errors_supported = yes; then
+	        X_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$which"`
+        else
+	        X_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$which"`
+        fi
+	# Put the nasty error message in config.log where it belongs
+	echo "$X_PKG_ERRORS" >&5
+
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
-       X_LIBS="$X_LIBS -R$x_libraries"
-else
-  LIBS="$ac_xsave_LIBS -R $x_libraries"
-       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-	  X_LIBS="$X_LIBS -R $x_libraries"
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: neither works" >&5
-$as_echo "neither works" >&6; }
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-    ac_c_werror_flag=$ac_xsave_c_werror_flag
-    LIBS=$ac_xsave_LIBS
-  fi
-
-  # Check for system-dependent libraries X programs must link with.
-  # Do this before checking for the system-independent R6 libraries
-  # (-lICE), since we may need -lsocket or whatever for X linking.
-
-  if test "$ISC" = yes; then
-    X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl_s -linet"
-  else
-    # Martyn Johnson says this is needed for Ultrix, if the X
-    # libraries were built with DECnet support.  And Karl Berry says
-    # the Alpha needs dnet_stub (dnet does not exist).
-    ac_xsave_LIBS="$LIBS"; LIBS="$LIBS $X_LIBS -lX11"
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char XOpenDisplay ();
-int
-main ()
-{
-return XOpenDisplay ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dnet_ntoa in -ldnet" >&5
-$as_echo_n "checking for dnet_ntoa in -ldnet... " >&6; }
-if ${ac_cv_lib_dnet_dnet_ntoa+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldnet  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dnet_ntoa ();
-int
-main ()
-{
-return dnet_ntoa ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_dnet_dnet_ntoa=yes
-else
-  ac_cv_lib_dnet_dnet_ntoa=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dnet_dnet_ntoa" >&5
-$as_echo "$ac_cv_lib_dnet_dnet_ntoa" >&6; }
-if test "x$ac_cv_lib_dnet_dnet_ntoa" = xyes; then :
-  X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet"
-fi
-
-    if test $ac_cv_lib_dnet_dnet_ntoa = no; then
-      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dnet_ntoa in -ldnet_stub" >&5
-$as_echo_n "checking for dnet_ntoa in -ldnet_stub... " >&6; }
-if ${ac_cv_lib_dnet_stub_dnet_ntoa+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldnet_stub  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dnet_ntoa ();
-int
-main ()
-{
-return dnet_ntoa ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_dnet_stub_dnet_ntoa=yes
-else
-  ac_cv_lib_dnet_stub_dnet_ntoa=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dnet_stub_dnet_ntoa" >&5
-$as_echo "$ac_cv_lib_dnet_stub_dnet_ntoa" >&6; }
-if test "x$ac_cv_lib_dnet_stub_dnet_ntoa" = xyes; then :
-  X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub"
-fi
-
-    fi
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-    LIBS="$ac_xsave_LIBS"
-
-    # msh@cis.ufl.edu says -lnsl (and -lsocket) are needed for his 386/AT,
-    # to get the SysV transport functions.
-    # Chad R. Larson says the Pyramis MIS-ES running DC/OSx (SVR4)
-    # needs -lnsl.
-    # The nsl library prevents programs from opening the X display
-    # on Irix 5.2, according to T.E. Dickey.
-    # The functions gethostbyname, getservbyname, and inet_addr are
-    # in -lbsd on LynxOS 3.0.1/i386, according to Lars Hecking.
-    ac_fn_c_check_func "$LINENO" "gethostbyname" "ac_cv_func_gethostbyname"
-if test "x$ac_cv_func_gethostbyname" = xyes; then :
-
-fi
-
-    if test $ac_cv_func_gethostbyname = no; then
-      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lnsl" >&5
-$as_echo_n "checking for gethostbyname in -lnsl... " >&6; }
-if ${ac_cv_lib_nsl_gethostbyname+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lnsl  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char gethostbyname ();
-int
-main ()
-{
-return gethostbyname ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_nsl_gethostbyname=yes
-else
-  ac_cv_lib_nsl_gethostbyname=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_gethostbyname" >&5
-$as_echo "$ac_cv_lib_nsl_gethostbyname" >&6; }
-if test "x$ac_cv_lib_nsl_gethostbyname" = xyes; then :
-  X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl"
-fi
-
-      if test $ac_cv_lib_nsl_gethostbyname = no; then
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lbsd" >&5
-$as_echo_n "checking for gethostbyname in -lbsd... " >&6; }
-if ${ac_cv_lib_bsd_gethostbyname+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lbsd  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char gethostbyname ();
-int
-main ()
-{
-return gethostbyname ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_bsd_gethostbyname=yes
-else
-  ac_cv_lib_bsd_gethostbyname=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bsd_gethostbyname" >&5
-$as_echo "$ac_cv_lib_bsd_gethostbyname" >&6; }
-if test "x$ac_cv_lib_bsd_gethostbyname" = xyes; then :
-  X_EXTRA_LIBS="$X_EXTRA_LIBS -lbsd"
-fi
-
+      HAVE_X="no"
+      if test "x$required" = "xyes"; then
+        as_fn_error $? "$X_PKG_ERRORS" "$LINENO" 5
+      else
+        { $as_echo "$as_me:${as_lineno-$LINENO}: $X_PKG_ERRORS" >&5
+$as_echo "$as_me: $X_PKG_ERRORS" >&6;}
       fi
-    fi
 
-    # lieder@skyler.mavd.honeywell.com says without -lsocket,
-    # socket/setsockopt and other routines are undefined under SCO ODT
-    # 2.0.  But -lsocket is broken on IRIX 5.2 (and is not necessary
-    # on later versions), says Simon Leinen: it contains gethostby*
-    # variants that don't use the name server (or something).  -lsocket
-    # must be given before -lnsl if both are needed.  We assume that
-    # if connect needs -lnsl, so does gethostbyname.
-    ac_fn_c_check_func "$LINENO" "connect" "ac_cv_func_connect"
-if test "x$ac_cv_func_connect" = xyes; then :
+elif test $pkg_failed = untried; then
 
-fi
+      HAVE_X="no"
+      if test "x$required" = "xyes"; then
+        as_fn_error $? "$X_PKG_ERRORS" "$LINENO" 5
+      else
+        { $as_echo "$as_me:${as_lineno-$LINENO}: $X_PKG_ERRORS" >&5
+$as_echo "$as_me: $X_PKG_ERRORS" >&6;}
+      fi
 
-    if test $ac_cv_func_connect = no; then
-      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for connect in -lsocket" >&5
-$as_echo_n "checking for connect in -lsocket... " >&6; }
-if ${ac_cv_lib_socket_connect+:} false; then :
-  $as_echo_n "(cached) " >&6
 else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lsocket $X_EXTRA_LIBS $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
+	X_CFLAGS=$pkg_cv_X_CFLAGS
+	X_LIBS=$pkg_cv_X_LIBS
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char connect ();
-int
-main ()
-{
-return connect ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_socket_connect=yes
-else
-  ac_cv_lib_socket_connect=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_connect" >&5
-$as_echo "$ac_cv_lib_socket_connect" >&6; }
-if test "x$ac_cv_lib_socket_connect" = xyes; then :
-  X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS"
-fi
-
-    fi
-
-    # Guillermo Gomez says -lposix is necessary on A/UX.
-    ac_fn_c_check_func "$LINENO" "remove" "ac_cv_func_remove"
-if test "x$ac_cv_func_remove" = xyes; then :
+      HAVE_X="yes"
 
 fi
 
-    if test $ac_cv_func_remove = no; then
-      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for remove in -lposix" >&5
-$as_echo_n "checking for remove in -lposix... " >&6; }
-if ${ac_cv_lib_posix_remove+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lposix  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char remove ();
-int
-main ()
-{
-return remove ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_posix_remove=yes
-else
-  ac_cv_lib_posix_remove=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_posix_remove" >&5
-$as_echo "$ac_cv_lib_posix_remove" >&6; }
-if test "x$ac_cv_lib_posix_remove" = xyes; then :
-  X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix"
-fi
-
-    fi
-
-    # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay.
-    ac_fn_c_check_func "$LINENO" "shmat" "ac_cv_func_shmat"
-if test "x$ac_cv_func_shmat" = xyes; then :
-
-fi
-
-    if test $ac_cv_func_shmat = no; then
-      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shmat in -lipc" >&5
-$as_echo_n "checking for shmat in -lipc... " >&6; }
-if ${ac_cv_lib_ipc_shmat+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lipc  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char shmat ();
-int
-main ()
-{
-return shmat ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_ipc_shmat=yes
-else
-  ac_cv_lib_ipc_shmat=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ipc_shmat" >&5
-$as_echo "$ac_cv_lib_ipc_shmat" >&6; }
-if test "x$ac_cv_lib_ipc_shmat" = xyes; then :
-  X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc"
-fi
-
-    fi
-  fi
-
-  # Check for libraries that X11R6 Xt/Xaw programs need.
-  ac_save_LDFLAGS=$LDFLAGS
-  test -n "$x_libraries" && LDFLAGS="$LDFLAGS -L$x_libraries"
-  # SM needs ICE to (dynamically) link under SunOS 4.x (so we have to
-  # check for ICE first), but we must link in the order -lSM -lICE or
-  # we get undefined symbols.  So assume we have SM if we have ICE.
-  # These have to be linked with before -lX11, unlike the other
-  # libraries we check for below, so use a different variable.
-  # John Interrante, Karl Berry
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IceConnectionNumber in -lICE" >&5
-$as_echo_n "checking for IceConnectionNumber in -lICE... " >&6; }
-if ${ac_cv_lib_ICE_IceConnectionNumber+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lICE $X_EXTRA_LIBS $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char IceConnectionNumber ();
-int
-main ()
-{
-return IceConnectionNumber ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_ICE_IceConnectionNumber=yes
-else
-  ac_cv_lib_ICE_IceConnectionNumber=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ICE_IceConnectionNumber" >&5
-$as_echo "$ac_cv_lib_ICE_IceConnectionNumber" >&6; }
-if test "x$ac_cv_lib_ICE_IceConnectionNumber" = xyes; then :
-  X_PRE_LIBS="$X_PRE_LIBS -lSM -lICE"
-fi
-
-  LDFLAGS=$ac_save_LDFLAGS
-
-fi
-
-  ac_cflags_save="$CFLAGS"
-  ac_cppflags_save="$CPPFLAGS"
-  CFLAGS="$CFLAGS $X_CFLAGS"
-  CPPFLAGS="$CPPFLAGS $X_CFLAGS"
-
-    ac_fn_c_check_header_mongrel "$LINENO" "X11/Xlib.h" "ac_cv_header_X11_Xlib_h" "$ac_includes_default"
-if test "x$ac_cv_header_X11_Xlib_h" = xyes; then :
-  HAVE_X="yes"
-else
-  HAVE_X="no"
-fi
-
-
-
-  if test "x$HAVE_X" = "xno"
-  then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: cannot find X11 development files" >&5
-$as_echo "$as_me: cannot find X11 development files" >&6;}
-  else
-        X_LIBS="$X_LIBS $X_PRE_LIBS $X_EXTRA_LIBS"
-            X_LIBS="$X_LIBS -lX11"
-
-
-  fi
-
-
-  CFLAGS="$ac_cflags_save"
-  CPPFLAGS="$ac_cppflags_save"
 
 
 
@@ -28139,105 +27620,99 @@
   HAVE_XVIDEO=no
 
 
-  if test x$HAVE_X = xyes; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XvQueryExtension in -lXv_pic" >&5
-$as_echo_n "checking for XvQueryExtension in -lXv_pic... " >&6; }
-if ${ac_cv_lib_Xv_pic_XvQueryExtension+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lXv_pic $X_LIBS -lXext $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char XvQueryExtension ();
-int
-main ()
-{
-return XvQueryExtension ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_Xv_pic_XvQueryExtension=yes
-else
-  ac_cv_lib_Xv_pic_XvQueryExtension=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xv_pic_XvQueryExtension" >&5
-$as_echo "$ac_cv_lib_Xv_pic_XvQueryExtension" >&6; }
-if test "x$ac_cv_lib_Xv_pic_XvQueryExtension" = xyes; then :
-  HAVE_XVIDEO="yes"
-else
-  HAVE_XVIDEO="no"
-fi
+  which="x11 xv"
+    required="no"
 
 
-    if test x$HAVE_XVIDEO = xyes; then
-      XVIDEO_LIBS="-lXv_pic -lXext"
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XVIDEO" >&5
+$as_echo_n "checking for XVIDEO... " >&6; }
 
+if test -n "$PKG_CONFIG"; then
+    if test -n "$XVIDEO_CFLAGS"; then
+        pkg_cv_XVIDEO_CFLAGS="$XVIDEO_CFLAGS"
     else
-            if test x$HAVE_XVIDEO = xno; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XvQueryExtension in -lXv" >&5
-$as_echo_n "checking for XvQueryExtension in -lXv... " >&6; }
-if ${ac_cv_lib_Xv_XvQueryExtension+:} false; then :
-  $as_echo_n "(cached) " >&6
+        if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$which\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "$which") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_XVIDEO_CFLAGS=`$PKG_CONFIG --cflags "$which" 2>/dev/null`
 else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lXv $X_LIBS -lXext $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char XvQueryExtension ();
-int
-main ()
-{
-return XvQueryExtension ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_Xv_XvQueryExtension=yes
-else
-  ac_cv_lib_Xv_XvQueryExtension=no
+  pkg_failed=yes
 fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xv_XvQueryExtension" >&5
-$as_echo "$ac_cv_lib_Xv_XvQueryExtension" >&6; }
-if test "x$ac_cv_lib_Xv_XvQueryExtension" = xyes; then :
-  HAVE_XVIDEO="yes"
-else
-  HAVE_XVIDEO="no"
-fi
-
-
-        if test x$HAVE_XVIDEO = xyes; then
-          XVIDEO_LIBS="-lXv -lXext"
-
-        fi
-      fi
     fi
-  fi
+else
+	pkg_failed=untried
+fi
+if test -n "$PKG_CONFIG"; then
+    if test -n "$XVIDEO_LIBS"; then
+        pkg_cv_XVIDEO_LIBS="$XVIDEO_LIBS"
+    else
+        if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$which\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "$which") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_XVIDEO_LIBS=`$PKG_CONFIG --libs "$which" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+    fi
+else
+	pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
+else
+        _pkg_short_errors_supported=no
+fi
+        if test $_pkg_short_errors_supported = yes; then
+	        XVIDEO_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$which"`
+        else
+	        XVIDEO_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$which"`
+        fi
+	# Put the nasty error message in config.log where it belongs
+	echo "$XVIDEO_PKG_ERRORS" >&5
+
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+      HAVE_XVIDEO="no"
+      if test "x$required" = "xyes"; then
+        as_fn_error $? "$XVIDEO_PKG_ERRORS" "$LINENO" 5
+      else
+        { $as_echo "$as_me:${as_lineno-$LINENO}: $XVIDEO_PKG_ERRORS" >&5
+$as_echo "$as_me: $XVIDEO_PKG_ERRORS" >&6;}
+      fi
+
+elif test $pkg_failed = untried; then
+
+      HAVE_XVIDEO="no"
+      if test "x$required" = "xyes"; then
+        as_fn_error $? "$XVIDEO_PKG_ERRORS" "$LINENO" 5
+      else
+        { $as_echo "$as_me:${as_lineno-$LINENO}: $XVIDEO_PKG_ERRORS" >&5
+$as_echo "$as_me: $XVIDEO_PKG_ERRORS" >&6;}
+      fi
+
+else
+	XVIDEO_CFLAGS=$pkg_cv_XVIDEO_CFLAGS
+	XVIDEO_LIBS=$pkg_cv_XVIDEO_LIBS
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+      HAVE_XVIDEO="yes"
+
+fi
+
 
 
 
@@ -28283,10 +27758,10 @@
 echo
 { $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: X Shared Memory extension ***" >&5
 $as_echo "$as_me: *** checking feature: X Shared Memory extension ***" >&6;}
-if test "x" != "x"
+if test "x " != "x"
 then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins:  ***" >&5
-$as_echo "$as_me: *** for plug-ins:  ***" >&6;}
+  { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins:   ***" >&5
+$as_echo "$as_me: *** for plug-ins:   ***" >&6;}
 fi
 NOUSE=
 if test "x$USE_XSHM" = "xno"; then
@@ -28305,15 +27780,15 @@
 
 if test "x$NOUSE" = "xyes"; then
   USE_XSHM="no"
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ***  pre-configured not to be built" >&5
-$as_echo "$as_me: WARNING: ***  pre-configured not to be built" >&2;}
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ***   pre-configured not to be built" >&5
+$as_echo "$as_me: WARNING: ***   pre-configured not to be built" >&2;}
 fi
 NOUSE=
 
 if echo " $GST_PLUGINS_NONPORTED " | tr , ' ' | grep -i " XSHM " > /dev/null; then
   USE_XSHM="no"
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ***  not ported" >&5
-$as_echo "$as_me: WARNING: ***  not ported" >&2;}
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ***   not ported" >&5
+$as_echo "$as_me: WARNING: ***   not ported" >&2;}
 fi
 
 
@@ -28328,13 +27803,87 @@
   HAVE_XSHM=no
 
   if test x$HAVE_X = xyes; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XShmAttach in -lXext" >&5
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XSHM" >&5
+$as_echo_n "checking for XSHM... " >&6; }
+
+if test -n "$PKG_CONFIG"; then
+    if test -n "$XSHM_CFLAGS"; then
+        pkg_cv_XSHM_CFLAGS="$XSHM_CFLAGS"
+    else
+        if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xext\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "xext") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_XSHM_CFLAGS=`$PKG_CONFIG --cflags "xext" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+    fi
+else
+	pkg_failed=untried
+fi
+if test -n "$PKG_CONFIG"; then
+    if test -n "$XSHM_LIBS"; then
+        pkg_cv_XSHM_LIBS="$XSHM_LIBS"
+    else
+        if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xext\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "xext") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_XSHM_LIBS=`$PKG_CONFIG --libs "xext" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+    fi
+else
+	pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
+else
+        _pkg_short_errors_supported=no
+fi
+        if test $_pkg_short_errors_supported = yes; then
+	        XSHM_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "xext"`
+        else
+	        XSHM_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "xext"`
+        fi
+	# Put the nasty error message in config.log where it belongs
+	echo "$XSHM_PKG_ERRORS" >&5
+
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+      HAVE_XSHM="no"
+
+elif test $pkg_failed = untried; then
+
+      HAVE_XSHM="no"
+
+else
+	XSHM_CFLAGS=$pkg_cv_XSHM_CFLAGS
+	XSHM_LIBS=$pkg_cv_XSHM_LIBS
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XShmAttach in -lXext" >&5
 $as_echo_n "checking for XShmAttach in -lXext... " >&6; }
 if ${ac_cv_lib_Xext_XShmAttach+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
-LIBS="-lXext $X_LIBS $LIBS"
+LIBS="-lXext  $X_LIBS  $LIBS"
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
@@ -28365,60 +27914,18 @@
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xext_XShmAttach" >&5
 $as_echo "$ac_cv_lib_Xext_XShmAttach" >&6; }
 if test "x$ac_cv_lib_Xext_XShmAttach" = xyes; then :
-  HAVE_XSHM="yes"
+
+        HAVE_XSHM="yes"
+
 else
-  HAVE_XSHM="no"
+
+        HAVE_XSHM="no"
+        XSHM_LIBS=""
+
 fi
 
-    if test "x$HAVE_XSHM" = "xyes"; then
-      XSHM_LIBS="-lXext"
-    else
-            { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XShmAttach in -lXextSam" >&5
-$as_echo_n "checking for XShmAttach in -lXextSam... " >&6; }
-if ${ac_cv_lib_XextSam_XShmAttach+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lXextSam $X_LIBS $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char XShmAttach ();
-int
-main ()
-{
-return XShmAttach ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_XextSam_XShmAttach=yes
-else
-  ac_cv_lib_XextSam_XShmAttach=no
 fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_XextSam_XShmAttach" >&5
-$as_echo "$ac_cv_lib_XextSam_XShmAttach" >&6; }
-if test "x$ac_cv_lib_XextSam_XShmAttach" = xyes; then :
-  HAVE_XSHM="yes"
-else
-  HAVE_XSHM="no"
-fi
-
-      if test "x$HAVE_XSHM" = "xyes"; then
-	XSHM_LIBS="-lXext -lXextSam"
-      fi
-    fi
   fi
 
 
@@ -28431,7 +27938,8 @@
     if test x$HAVE_XSHM = xno; then
     USE_XSHM=no
   else
-    :
+    { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built:  " >&5
+$as_echo "$as_me: *** These plugins will be built:  " >&6;}
   fi
 fi
 if test x$USE_XSHM = xyes; then
@@ -28439,16 +27947,17 @@
 
 
 
-  if test "x" != "x"; then
-    GST_PLUGINS_YES="\t\n$GST_PLUGINS_YES"
+  if test "x " != "x"; then
+    GST_PLUGINS_YES="\t \n$GST_PLUGINS_YES"
   fi
 
 $as_echo "#define HAVE_XSHM /**/" >>confdefs.h
 
 else
-  :
-  if test "x" != "x"; then
-    GST_PLUGINS_NO="\t\n$GST_PLUGINS_NO"
+  { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built:  " >&5
+$as_echo "$as_me: *** These plugins will not be built:  " >&6;}
+  if test "x " != "x"; then
+    GST_PLUGINS_NO="\t \n$GST_PLUGINS_NO"
   fi
   :
 fi
@@ -30005,110 +29514,8 @@
 fi
 
 
-  if test $HAVE_LIBVISUAL = no
-  then
-
-  which="libvisual = 0.2.0"
-    required="no"
-
-
-pkg_failed=no
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBVISUAL" >&5
-$as_echo_n "checking for LIBVISUAL... " >&6; }
-
-if test -n "$PKG_CONFIG"; then
-    if test -n "$LIBVISUAL_CFLAGS"; then
-        pkg_cv_LIBVISUAL_CFLAGS="$LIBVISUAL_CFLAGS"
-    else
-        if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$which\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "$which") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-  pkg_cv_LIBVISUAL_CFLAGS=`$PKG_CONFIG --cflags "$which" 2>/dev/null`
-else
-  pkg_failed=yes
-fi
-    fi
-else
-	pkg_failed=untried
-fi
-if test -n "$PKG_CONFIG"; then
-    if test -n "$LIBVISUAL_LIBS"; then
-        pkg_cv_LIBVISUAL_LIBS="$LIBVISUAL_LIBS"
-    else
-        if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$which\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "$which") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-  pkg_cv_LIBVISUAL_LIBS=`$PKG_CONFIG --libs "$which" 2>/dev/null`
-else
-  pkg_failed=yes
-fi
-    fi
-else
-	pkg_failed=untried
-fi
-
-
-
-if test $pkg_failed = yes; then
-
-if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
-        _pkg_short_errors_supported=yes
-else
-        _pkg_short_errors_supported=no
-fi
-        if test $_pkg_short_errors_supported = yes; then
-	        LIBVISUAL_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$which"`
-        else
-	        LIBVISUAL_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$which"`
-        fi
-	# Put the nasty error message in config.log where it belongs
-	echo "$LIBVISUAL_PKG_ERRORS" >&5
-
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-
-      HAVE_LIBVISUAL="no"
-      if test "x$required" = "xyes"; then
-        as_fn_error $? "$LIBVISUAL_PKG_ERRORS" "$LINENO" 5
-      else
-        { $as_echo "$as_me:${as_lineno-$LINENO}: $LIBVISUAL_PKG_ERRORS" >&5
-$as_echo "$as_me: $LIBVISUAL_PKG_ERRORS" >&6;}
-      fi
-
-elif test $pkg_failed = untried; then
-
-      HAVE_LIBVISUAL="no"
-      if test "x$required" = "xyes"; then
-        as_fn_error $? "$LIBVISUAL_PKG_ERRORS" "$LINENO" 5
-      else
-        { $as_echo "$as_me:${as_lineno-$LINENO}: $LIBVISUAL_PKG_ERRORS" >&5
-$as_echo "$as_me: $LIBVISUAL_PKG_ERRORS" >&6;}
-      fi
-
-else
-	LIBVISUAL_CFLAGS=$pkg_cv_LIBVISUAL_CFLAGS
-	LIBVISUAL_LIBS=$pkg_cv_LIBVISUAL_LIBS
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-
-      HAVE_LIBVISUAL="yes"
-
-fi
-
-
-    if test x$HAVE_LIBVISUAL = xyes; then
-      LIBVIS_PLUGINSDIR="`$PKG_CONFIG --variable=pluginsbasedir libvisual-0.2`"
-    fi
-  else
-    if test x$HAVE_LIBVISUAL = xyes; then
-      LIBVIS_PLUGINSDIR="`$PKG_CONFIG --variable=pluginsbasedir libvisual-0.4`"
-    fi
+  if test x$HAVE_LIBVISUAL = xyes; then
+    LIBVIS_PLUGINSDIR="`$PKG_CONFIG --variable=pluginsbasedir libvisual-0.4`"
   fi
   { $as_echo "$as_me:${as_lineno-$LINENO}: libvisual pluginsdir: $LIBVIS_PLUGINSDIR" >&5
 $as_echo "$as_me: libvisual pluginsdir: $LIBVIS_PLUGINSDIR" >&6;}
@@ -30892,6 +30299,189 @@
 
 
 
+echo
+{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: glib GIO unix ***" >&5
+$as_echo "$as_me: *** checking feature: glib GIO unix ***" >&6;}
+if test "xgio-unix-2.0" != "x"
+then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: gio-unix-2.0 ***" >&5
+$as_echo "$as_me: *** for plug-ins: gio-unix-2.0 ***" >&6;}
+fi
+NOUSE=
+if test "x$USE_GIO_UNIX_2_0" = "xno"; then
+  NOUSE="yes"
+fi
+# Check whether --enable-gio_unix_2_0 was given.
+if test "${enable_gio_unix_2_0+set}" = set; then :
+  enableval=$enable_gio_unix_2_0;  case "${enableval}" in
+      yes) USE_GIO_UNIX_2_0=yes;;
+      no) USE_GIO_UNIX_2_0=no;;
+      *) as_fn_error $? "bad value ${enableval} for --enable-gio_unix_2_0" "$LINENO" 5 ;;
+    esac
+else
+   USE_GIO_UNIX_2_0=yes
+fi
+
+if test "x$NOUSE" = "xyes"; then
+  USE_GIO_UNIX_2_0="no"
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** gio-unix-2.0 pre-configured not to be built" >&5
+$as_echo "$as_me: WARNING: *** gio-unix-2.0 pre-configured not to be built" >&2;}
+fi
+NOUSE=
+
+if echo " $GST_PLUGINS_NONPORTED " | tr , ' ' | grep -i " GIO_UNIX_2_0 " > /dev/null; then
+  USE_GIO_UNIX_2_0="no"
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** gio-unix-2.0 not ported" >&5
+$as_echo "$as_me: WARNING: *** gio-unix-2.0 not ported" >&2;}
+fi
+
+
+if test x$USE_GIO_UNIX_2_0 = xyes; then
+
+  gst_check_save_LIBS=$LIBS
+  gst_check_save_LDFLAGS=$LDFLAGS
+  gst_check_save_CFLAGS=$CFLAGS
+  gst_check_save_CPPFLAGS=$CPPFLAGS
+  gst_check_save_CXXFLAGS=$CXXFLAGS
+
+  HAVE_GIO_UNIX_2_0=no
+
+
+  which="gio-unix-2.0 >= 2.24"
+    required="no"
+
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GIO_UNIX_2_0" >&5
+$as_echo_n "checking for GIO_UNIX_2_0... " >&6; }
+
+if test -n "$PKG_CONFIG"; then
+    if test -n "$GIO_UNIX_2_0_CFLAGS"; then
+        pkg_cv_GIO_UNIX_2_0_CFLAGS="$GIO_UNIX_2_0_CFLAGS"
+    else
+        if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$which\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "$which") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_GIO_UNIX_2_0_CFLAGS=`$PKG_CONFIG --cflags "$which" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+    fi
+else
+	pkg_failed=untried
+fi
+if test -n "$PKG_CONFIG"; then
+    if test -n "$GIO_UNIX_2_0_LIBS"; then
+        pkg_cv_GIO_UNIX_2_0_LIBS="$GIO_UNIX_2_0_LIBS"
+    else
+        if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$which\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "$which") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_GIO_UNIX_2_0_LIBS=`$PKG_CONFIG --libs "$which" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+    fi
+else
+	pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
+else
+        _pkg_short_errors_supported=no
+fi
+        if test $_pkg_short_errors_supported = yes; then
+	        GIO_UNIX_2_0_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$which"`
+        else
+	        GIO_UNIX_2_0_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$which"`
+        fi
+	# Put the nasty error message in config.log where it belongs
+	echo "$GIO_UNIX_2_0_PKG_ERRORS" >&5
+
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+      HAVE_GIO_UNIX_2_0="no"
+      if test "x$required" = "xyes"; then
+        as_fn_error $? "$GIO_UNIX_2_0_PKG_ERRORS" "$LINENO" 5
+      else
+        { $as_echo "$as_me:${as_lineno-$LINENO}: $GIO_UNIX_2_0_PKG_ERRORS" >&5
+$as_echo "$as_me: $GIO_UNIX_2_0_PKG_ERRORS" >&6;}
+      fi
+
+elif test $pkg_failed = untried; then
+
+      HAVE_GIO_UNIX_2_0="no"
+      if test "x$required" = "xyes"; then
+        as_fn_error $? "$GIO_UNIX_2_0_PKG_ERRORS" "$LINENO" 5
+      else
+        { $as_echo "$as_me:${as_lineno-$LINENO}: $GIO_UNIX_2_0_PKG_ERRORS" >&5
+$as_echo "$as_me: $GIO_UNIX_2_0_PKG_ERRORS" >&6;}
+      fi
+
+else
+	GIO_UNIX_2_0_CFLAGS=$pkg_cv_GIO_UNIX_2_0_CFLAGS
+	GIO_UNIX_2_0_LIBS=$pkg_cv_GIO_UNIX_2_0_LIBS
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+      HAVE_GIO_UNIX_2_0="yes"
+
+fi
+
+
+
+
+  LIBS=$gst_check_save_LIBS
+  LDFLAGS=$gst_check_save_LDFLAGS
+  CFLAGS=$gst_check_save_CFLAGS
+  CPPFLAGS=$gst_check_save_CPPFLAGS
+  CXXFLAGS=$gst_check_save_CXXFLAGS
+
+    if test x$HAVE_GIO_UNIX_2_0 = xno; then
+    USE_GIO_UNIX_2_0=no
+  else
+    { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: gio-unix-2.0" >&5
+$as_echo "$as_me: *** These plugins will be built: gio-unix-2.0" >&6;}
+  fi
+fi
+if test x$USE_GIO_UNIX_2_0 = xyes; then
+  :
+  if test "xgio-unix-2.0" != "x"; then
+    GST_PLUGINS_YES="\tgio-unix-2.0\n$GST_PLUGINS_YES"
+  fi
+
+$as_echo "#define HAVE_GIO_UNIX_2_0 /**/" >>confdefs.h
+
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: gio-unix-2.0" >&5
+$as_echo "$as_me: *** These plugins will not be built: gio-unix-2.0" >&6;}
+  if test "xgio-unix-2.0" != "x"; then
+    GST_PLUGINS_NO="\tgio-unix-2.0\n$GST_PLUGINS_NO"
+  fi
+  :
+fi
+ if test x$USE_GIO_UNIX_2_0 = xyes; then
+  USE_GIO_UNIX_2_0_TRUE=
+  USE_GIO_UNIX_2_0_FALSE='#'
+else
+  USE_GIO_UNIX_2_0_TRUE='#'
+  USE_GIO_UNIX_2_0_FALSE=
+fi
+
+
+
 if test "x$HAVE_VORBIS" = "xyes"; then
   ac_cflags_save="$CFLAGS"
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -31748,6 +31338,10 @@
   as_fn_error $? "conditional \"HAVE_CPU_ALPHA\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
+if test -z "${HAVE_CPU_ARC_TRUE}" && test -z "${HAVE_CPU_ARC_FALSE}"; then
+  as_fn_error $? "conditional \"HAVE_CPU_ARC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
 if test -z "${HAVE_CPU_ARM_TRUE}" && test -z "${HAVE_CPU_ARM_FALSE}"; then
   as_fn_error $? "conditional \"HAVE_CPU_ARM\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -32000,6 +31594,10 @@
   as_fn_error $? "conditional \"USE_VORBIS\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
+if test -z "${USE_GIO_UNIX_2_0_TRUE}" && test -z "${USE_GIO_UNIX_2_0_FALSE}"; then
+  as_fn_error $? "conditional \"USE_GIO_UNIX_2_0\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
 if test -z "${USE_ALSA_TRUE}" && test -z "${USE_ALSA_FALSE}"; then
   as_fn_error $? "conditional \"USE_ALSA\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -32433,7 +32031,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by GStreamer Base Plug-ins $as_me 1.3.3, which was
+This file was extended by GStreamer Base Plug-ins $as_me 1.5.0.1, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -32499,7 +32097,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-GStreamer Base Plug-ins config.status 1.3.3
+GStreamer Base Plug-ins config.status 1.5.0.1
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff --git a/configure.ac b/configure.ac
index 38f3863..f3dab3d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -5,7 +5,7 @@
 dnl initialize autoconf
 dnl releases only do -Wall, git and prerelease does -Werror too
 dnl use a three digit version number for releases, and four for git/prerelease
-AC_INIT([GStreamer Base Plug-ins],[1.3.3],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gst-plugins-base])
+AC_INIT([GStreamer Base Plug-ins],[1.5.0.1],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gst-plugins-base])
 
 AG_GST_INIT
 
@@ -56,10 +56,10 @@
 dnl      1.10.9 (who knows) => 1009
 dnl
 dnl sets GST_LT_LDFLAGS
-AS_LIBTOOL(GST, 303, 0, 303)
+AS_LIBTOOL(GST, 501, 0, 501)
 
 dnl *** required versions of GStreamer stuff ***
-GST_REQ=1.3.3
+GST_REQ=1.5.0.1
 
 dnl *** autotools stuff ****
 
@@ -250,11 +250,12 @@
 GLIB_REQ=2.32
 AG_GST_GLIB_CHECK([$GLIB_REQ])
 
-ORC_CHECK([0.4.18])
+ORC_CHECK([0.4.23])
 
 dnl checks for gstreamer
 dnl uninstalled is selected preferentially -- see pkg-config(1)
 AG_GST_CHECK_GST($GST_API_VERSION, [$GST_REQ], yes)
+AG_GST_CHECK_GST_NET($GST_API_VERSION, [$GST_REQ], yes)
 AG_GST_CHECK_GST_BASE($GST_API_VERSION, [$GST_REQ], yes)
 AG_GST_CHECK_GST_CONTROLLER($GST_API_VERSION, [$GST_REQ], yes)
 AG_GST_CHECK_GST_CHECK($GST_API_VERSION, [$GST_REQ], no)
@@ -542,34 +543,30 @@
 translit(dnm, m, l) AM_CONDITIONAL(USE_X, true)
 AG_GST_CHECK_FEATURE(X, [X libraries and plugins],
                   [ximagesink], [
-  AG_GST_CHECK_X
+  AG_GST_PKG_CHECK_MODULES(X, x11)
 ])
 
 dnl Check for Xv extension
 translit(dnm, m, l) AM_CONDITIONAL(USE_XVIDEO, true)
 AG_GST_CHECK_FEATURE(XVIDEO, [X11 XVideo extensions],
                   [xvimagesink], [
-  AG_GST_CHECK_XV
+  AG_GST_PKG_CHECK_MODULES(XVIDEO, x11 xv)
 ])
 
 dnl check for X Shm
 translit(dnm, m, l) AM_CONDITIONAL(USE_XSHM, true)
-AG_GST_CHECK_FEATURE(XSHM, [X Shared Memory extension], , [
+AG_GST_CHECK_FEATURE(XSHM, [X Shared Memory extension], [ ], [
   if test x$HAVE_X = xyes; then
-    AC_CHECK_LIB(Xext, XShmAttach,
-		 HAVE_XSHM="yes", HAVE_XSHM="no",
-		 $X_LIBS)
-    if test "x$HAVE_XSHM" = "xyes"; then
-      XSHM_LIBS="-lXext"
-    else
-      dnl On AIX, it is in XextSam instead, but we still need -lXext
-      AC_CHECK_LIB(XextSam, XShmAttach,
-		   HAVE_XSHM="yes", HAVE_XSHM="no",
-		   $X_LIBS)
-      if test "x$HAVE_XSHM" = "xyes"; then
-	XSHM_LIBS="-lXext -lXextSam"
-      fi
-    fi
+    PKG_CHECK_MODULES(XSHM, xext, [
+      AC_CHECK_LIB(Xext, XShmAttach, [
+        HAVE_XSHM="yes"
+      ], [
+        HAVE_XSHM="no"
+        XSHM_LIBS=""
+      ], [ $X_LIBS ])
+    ], [
+      HAVE_XSHM="no"
+    ])
   fi
 ], , [
   AC_SUBST(HAVE_XSHM)
@@ -671,16 +668,8 @@
 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBVISUAL, true)
 AG_GST_CHECK_FEATURE(LIBVISUAL, [libvisual visualization library], libvisual, [
   AG_GST_PKG_CHECK_MODULES(LIBVISUAL, libvisual-0.4 >= 0.4.0)
-  if test $HAVE_LIBVISUAL = no
-  then
-    AG_GST_PKG_CHECK_MODULES(LIBVISUAL, libvisual = 0.2.0)
-    if test x$HAVE_LIBVISUAL = xyes; then
-      LIBVIS_PLUGINSDIR="`$PKG_CONFIG --variable=pluginsbasedir libvisual-0.2`"
-    fi
-  else
-    if test x$HAVE_LIBVISUAL = xyes; then
-      LIBVIS_PLUGINSDIR="`$PKG_CONFIG --variable=pluginsbasedir libvisual-0.4`"
-    fi
+  if test x$HAVE_LIBVISUAL = xyes; then
+    LIBVIS_PLUGINSDIR="`$PKG_CONFIG --variable=pluginsbasedir libvisual-0.4`"
   fi
   AC_MSG_NOTICE([libvisual pluginsdir: $LIBVIS_PLUGINSDIR])
   if test x$LIBVIS_PLUGINSDIR != x; then
@@ -714,6 +703,12 @@
   AG_GST_PKG_CHECK_MODULES(VORBIS, vorbis >= 1.0 vorbisenc >= 1.0)
 ])
 
+dnl *** gio-unix-2.0 for tests/check/pipelines/tcp.c ***
+translit(dnm, m, l) AM_CONDITIONAL(USE_GIO_UNIX_2_0, true)
+AG_GST_CHECK_FEATURE(GIO_UNIX_2_0, [glib GIO unix], gio-unix-2.0, [
+  AG_GST_PKG_CHECK_MODULES(GIO_UNIX_2_0, gio-unix-2.0 >= 2.24)
+])
+
 if test "x$HAVE_VORBIS" = "xyes"; then
   ac_cflags_save="$CFLAGS"
   AC_COMPILE_IFELSE([
diff --git a/depcomp b/depcomp
index bd0ac08..4ebd5b3 100755
--- a/depcomp
+++ b/depcomp
@@ -1,10 +1,9 @@
 #! /bin/sh
 # depcomp - compile a program generating dependencies as side-effects
 
-scriptversion=2011-12-04.11; # UTC
+scriptversion=2013-05-30.07; # UTC
 
-# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009, 2010,
-# 2011 Free Software Foundation, Inc.
+# Copyright (C) 1999-2013 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,9 +27,9 @@
 
 case $1 in
   '')
-     echo "$0: No command.  Try \`$0 --help' for more information." 1>&2
-     exit 1;
-     ;;
+    echo "$0: No command.  Try '$0 --help' for more information." 1>&2
+    exit 1;
+    ;;
   -h | --h*)
     cat <<\EOF
 Usage: depcomp [--help] [--version] PROGRAM [ARGS]
@@ -40,8 +39,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 +56,66 @@
     ;;
 esac
 
+# Get the directory component of the given path, and save it in the
+# global variables '$dir'.  Note that this directory component will
+# be either empty or ending with a '/' character.  This is deliberate.
+set_dir_from ()
+{
+  case $1 in
+    */*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;;
+      *) dir=;;
+  esac
+}
+
+# Get the suffix-stripped basename of the given path, and save it the
+# global variable '$base'.
+set_base_from ()
+{
+  base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'`
+}
+
+# If no dependency file was actually created by the compiler invocation,
+# we still have to create a dummy depfile, to avoid errors with the
+# Makefile "include basename.Plo" scheme.
+make_dummy_depfile ()
+{
+  echo "#dummy" > "$depfile"
+}
+
+# Factor out some common post-processing of the generated depfile.
+# Requires the auxiliary global variable '$tmpdepfile' to be set.
+aix_post_process_depfile ()
+{
+  # If the compiler actually managed to produce a dependency file,
+  # post-process it.
+  if test -f "$tmpdepfile"; then
+    # Each line is of the form 'foo.o: dependency.h'.
+    # Do two passes, one to just change these to
+    #   $object: dependency.h
+    # and one to simply output
+    #   dependency.h:
+    # which is needed to avoid the deleted-header problem.
+    { sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile"
+      sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile"
+    } > "$depfile"
+    rm -f "$tmpdepfile"
+  else
+    make_dummy_depfile
+  fi
+}
+
+# A tabulation character.
+tab='	'
+# A newline character.
+nl='
+'
+# Character ranges might be problematic outside the C locale.
+# These definitions help.
+upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ
+lower=abcdefghijklmnopqrstuvwxyz
+digits=0123456789
+alpha=${upper}${lower}
+
 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
@@ -69,6 +128,9 @@
 
 rm -f "$tmpdepfile"
 
+# Avoid interferences from the environment.
+gccflag= dashmflag=
+
 # Some modes work just like other modes, but use different flags.  We
 # parameterize here, but still list the modes in the big case below,
 # to make depend.m4 easier to write.  Note that we *cannot* use a case
@@ -80,26 +142,32 @@
 fi
 
 if test "$depmode" = dashXmstdout; then
-   # This is just like dashmstdout with a different argument.
-   dashmflag=-xM
-   depmode=dashmstdout
+  # This is just like dashmstdout with a different argument.
+  dashmflag=-xM
+  depmode=dashmstdout
 fi
 
 cygpath_u="cygpath -u -f -"
 if test "$depmode" = msvcmsys; then
-   # This is just like msvisualcpp but w/o cygpath translation.
-   # Just convert the backslash-escaped backslashes to single forward
-   # slashes to satisfy depend.m4
-   cygpath_u='sed s,\\\\,/,g'
-   depmode=msvisualcpp
+  # This is just like msvisualcpp but w/o cygpath translation.
+  # Just convert the backslash-escaped backslashes to single forward
+  # slashes to satisfy depend.m4
+  cygpath_u='sed s,\\\\,/,g'
+  depmode=msvisualcpp
 fi
 
 if test "$depmode" = msvc7msys; then
-   # This is just like msvc7 but w/o cygpath translation.
-   # Just convert the backslash-escaped backslashes to single forward
-   # slashes to satisfy depend.m4
-   cygpath_u='sed s,\\\\,/,g'
-   depmode=msvc7
+  # This is just like msvc7 but w/o cygpath translation.
+  # Just convert the backslash-escaped backslashes to single forward
+  # slashes to satisfy depend.m4
+  cygpath_u='sed s,\\\\,/,g'
+  depmode=msvc7
+fi
+
+if test "$depmode" = xlc; then
+  # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information.
+  gccflag=-qmakedep=gcc,-MF
+  depmode=gcc
 fi
 
 case "$depmode" in
@@ -122,8 +190,7 @@
   done
   "$@"
   stat=$?
-  if test $stat -eq 0; then :
-  else
+  if test $stat -ne 0; then
     rm -f "$tmpdepfile"
     exit $stat
   fi
@@ -131,13 +198,17 @@
   ;;
 
 gcc)
+## Note that this doesn't just cater to obsosete pre-3.x GCC compilers.
+## but also to in-use compilers like IMB xlc/xlC and the HP C compiler.
+## (see the conditional assignment to $gccflag above).
 ## There are various ways to get dependency output from gcc.  Here's
 ## why we pick this rather obscure method:
 ## - Don't want to use -MD because we'd like the dependencies to end
 ##   up in a subdir.  Having to rename by hand is ugly.
 ##   (We might end up doing this anyway to support other compilers.)
 ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
-##   -MM, not -M (despite what the docs say).
+##   -MM, not -M (despite what the docs say).  Also, it might not be
+##   supported by the other compilers which use the 'gcc' depmode.
 ## - Using -M directly means running the compiler twice (even worse
 ##   than renaming).
   if test -z "$gccflag"; then
@@ -145,33 +216,31 @@
   fi
   "$@" -Wp,"$gccflag$tmpdepfile"
   stat=$?
-  if test $stat -eq 0; then :
-  else
+  if test $stat -ne 0; then
     rm -f "$tmpdepfile"
     exit $stat
   fi
   rm -f "$depfile"
   echo "$object : \\" > "$depfile"
-  alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
-## The second -e expression handles DOS-style file names with drive letters.
+  # 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
+## 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.
 ## 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 "s|.*$object$||" -e '/:$/d' \
-      | sed -e 's/$/ :/' >> "$depfile"
+  tr ' ' "$nl" < "$tmpdepfile" \
+    | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \
+    | sed -e 's/$/ :/' >> "$depfile"
   rm -f "$tmpdepfile"
   ;;
 
@@ -189,8 +258,7 @@
     "$@" -MDupdate "$tmpdepfile"
   fi
   stat=$?
-  if test $stat -eq 0; then :
-  else
+  if test $stat -ne 0; then
     rm -f "$tmpdepfile"
     exit $stat
   fi
@@ -198,43 +266,41 @@
 
   if test -f "$tmpdepfile"; then  # yes, the sourcefile depend on other files
     echo "$object : \\" > "$depfile"
-
     # Clip off the initial element (the dependent).  Don't try to be
     # 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" \
-    | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
-    tr '
-' ' ' >> "$depfile"
+    tr ' ' "$nl" < "$tmpdepfile" \
+      | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \
+      | tr "$nl" ' ' >> "$depfile"
     echo >> "$depfile"
-
     # The second pass generates a dummy entry for each header file.
-    tr ' ' '
-' < "$tmpdepfile" \
-   | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
-   >> "$depfile"
+    tr ' ' "$nl" < "$tmpdepfile" \
+      | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
+      >> "$depfile"
   else
-    # The sourcefile does not contain any dependencies, so just
-    # store a dummy comment line, to avoid errors with the Makefile
-    # "include basename.Plo" scheme.
-    echo "#dummy" > "$depfile"
+    make_dummy_depfile
   fi
   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|/[^/]*$|/|'`
-  test "x$dir" = "x$object" && dir=
-  base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
+  set_dir_from "$object"
+  set_base_from "$object"
   if test "$libtool" = yes; then
     tmpdepfile1=$dir$base.u
     tmpdepfile2=$base.u
@@ -247,9 +313,7 @@
     "$@" -M
   fi
   stat=$?
-
-  if test $stat -eq 0; then :
-  else
+  if test $stat -ne 0; then
     rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
     exit $stat
   fi
@@ -258,44 +322,100 @@
   do
     test -f "$tmpdepfile" && break
   done
-  if test -f "$tmpdepfile"; then
-    # 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:'.
-    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"
-  else
-    # The sourcefile does not contain any dependencies, so just
-    # store a dummy comment line, to avoid errors with the Makefile
-    # "include basename.Plo" scheme.
-    echo "#dummy" > "$depfile"
+  aix_post_process_depfile
+  ;;
+
+tcc)
+  # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26
+  # FIXME: That version still under development at the moment of writing.
+  #        Make that this statement remains true also for stable, released
+  #        versions.
+  # It will wrap lines (doesn't matter whether long or short) with a
+  # trailing '\', as in:
+  #
+  #   foo.o : \
+  #    foo.c \
+  #    foo.h \
+  #
+  # It will put a trailing '\' even on the last line, and will use leading
+  # spaces rather than leading tabs (at least since its commit 0394caf7
+  # "Emit spaces for -MD").
+  "$@" -MD -MF "$tmpdepfile"
+  stat=$?
+  if test $stat -ne 0; then
+    rm -f "$tmpdepfile"
+    exit $stat
   fi
+  rm -f "$depfile"
+  # Each non-empty line is of the form 'foo.o : \' or ' dep.h \'.
+  # We have to change lines of the first kind to '$object: \'.
+  sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile"
+  # And for each line of the second kind, we have to emit a 'dep.h:'
+  # dummy dependency, to avoid the deleted-header problem.
+  sed -n -e 's|^  *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile"
   rm -f "$tmpdepfile"
   ;;
 
-icc)
-  # Intel's C compiler understands `-MD -MF file'.  However on
-  #    icc -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:
-  #    sub/foo.o: sub/foo.c
-  #    sub/foo.o: sub/foo.h
-  #    sub/foo.c:
-  #    sub/foo.h:
-  # ICC 7.1 will output
+## The order of this option in the case statement is important, since the
+## shell code in configure will try each of these formats in the order
+## listed in this file.  A plain '-MD' option would be understood by many
+## compilers, so we must ensure this comes after the gcc and icc options.
+pgcc)
+  # Portland's C compiler understands '-MD'.
+  # Will always output deps to 'file.d' where file is the root name of the
+  # source file under compilation, even if file resides in a subdirectory.
+  # The object file name does not affect the name of the '.d' file.
+  # pgcc 10.2 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 ... \
   #     ...
+  set_dir_from "$object"
+  # Use the source, not the object, to determine the base name, since
+  # that's sadly what pgcc will do too.
+  set_base_from "$source"
+  tmpdepfile=$base.d
 
-  "$@" -MD -MF "$tmpdepfile"
-  stat=$?
-  if test $stat -eq 0; then :
-  else
+  # For projects that build the same source file twice into different object
+  # files, the pgcc approach of using the *source* file root name can cause
+  # problems in parallel builds.  Use a locking strategy to avoid stomping on
+  # the same $tmpdepfile.
+  lockdir=$base.d-lock
+  trap "
+    echo '$0: caught signal, cleaning up...' >&2
+    rmdir '$lockdir'
+    exit 1
+  " 1 2 13 15
+  numtries=100
+  i=$numtries
+  while test $i -gt 0; do
+    # mkdir is a portable test-and-set.
+    if mkdir "$lockdir" 2>/dev/null; then
+      # This process acquired the lock.
+      "$@" -MD
+      stat=$?
+      # Release the lock.
+      rmdir "$lockdir"
+      break
+    else
+      # If the lock is being held by a different process, wait
+      # until the winning process is done or we timeout.
+      while test -d "$lockdir" && test $i -gt 0; do
+        sleep 1
+        i=`expr $i - 1`
+      done
+    fi
+    i=`expr $i - 1`
+  done
+  trap - 1 2 13 15
+  if test $i -le 0; then
+    echo "$0: failed to acquire lock after $numtries attempts" >&2
+    echo "$0: check lockdir '$lockdir'" >&2
+    exit 1
+  fi
+
+  if test $stat -ne 0; then
     rm -f "$tmpdepfile"
     exit $stat
   fi
@@ -307,8 +427,8 @@
   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"
+  sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \
+    | sed -e 's/$/ :/' >> "$depfile"
   rm -f "$tmpdepfile"
   ;;
 
@@ -319,9 +439,8 @@
   # 'foo.d', which lands next to the object file, wherever that
   # happens to be.
   # Much of this is similar to the tru64 case; see comments there.
-  dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
-  test "x$dir" = "x$object" && dir=
-  base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
+  set_dir_from  "$object"
+  set_base_from "$object"
   if test "$libtool" = yes; then
     tmpdepfile1=$dir$base.d
     tmpdepfile2=$dir.libs/$base.d
@@ -332,8 +451,7 @@
     "$@" +Maked
   fi
   stat=$?
-  if test $stat -eq 0; then :
-  else
+  if test $stat -ne 0; then
      rm -f "$tmpdepfile1" "$tmpdepfile2"
      exit $stat
   fi
@@ -343,77 +461,61 @@
     test -f "$tmpdepfile" && break
   done
   if test -f "$tmpdepfile"; then
-    sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile"
-    # Add `dependent.h:' lines.
+    sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile"
+    # Add 'dependent.h:' lines.
     sed -ne '2,${
-	       s/^ *//
-	       s/ \\*$//
-	       s/$/:/
-	       p
-	     }' "$tmpdepfile" >> "$depfile"
+               s/^ *//
+               s/ \\*$//
+               s/$/:/
+               p
+             }' "$tmpdepfile" >> "$depfile"
   else
-    echo "#dummy" > "$depfile"
+    make_dummy_depfile
   fi
   rm -f "$tmpdepfile" "$tmpdepfile2"
   ;;
 
 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'.
-   # 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.
-   # Subdirectories are respected.
-   dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
-   test "x$dir" = "x$object" && dir=
-   base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
+  # The Tru64 compiler uses -MD to generate dependencies as a side
+  # 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.
+  # Subdirectories are respected.
+  set_dir_from  "$object"
+  set_base_from "$object"
 
-   if test "$libtool" = yes; then
-      # With Tru64 cc, shared objects can also be used to make a
-      # static library.  This mechanism is used in libtool 1.4 series to
-      # handle both shared and static libraries in a single compilation.
-      # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
-      #
-      # With libtool 1.5 this exception was removed, and libtool now
-      # generates 2 separate objects for the 2 libraries.  These two
-      # compilations output dependencies in $dir.libs/$base.o.d and
-      # in $dir$base.o.d.  We have to check for both files, because
-      # one of the two compilations can be disabled.  We should prefer
-      # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
-      # automatically cleaned when .libs/ is deleted, while ignoring
-      # the former would cause a distcleancheck panic.
-      tmpdepfile1=$dir.libs/$base.lo.d   # libtool 1.4
-      tmpdepfile2=$dir$base.o.d          # libtool 1.5
-      tmpdepfile3=$dir.libs/$base.o.d    # libtool 1.5
-      tmpdepfile4=$dir.libs/$base.d      # Compaq CCC V6.2-504
-      "$@" -Wc,-MD
-   else
-      tmpdepfile1=$dir$base.o.d
-      tmpdepfile2=$dir$base.d
-      tmpdepfile3=$dir$base.d
-      tmpdepfile4=$dir$base.d
-      "$@" -MD
-   fi
+  if test "$libtool" = yes; then
+    # Libtool generates 2 separate objects for the 2 libraries.  These
+    # two compilations output dependencies in $dir.libs/$base.o.d and
+    # in $dir$base.o.d.  We have to check for both files, because
+    # one of the two compilations can be disabled.  We should prefer
+    # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
+    # automatically cleaned when .libs/ is deleted, while ignoring
+    # the former would cause a distcleancheck panic.
+    tmpdepfile1=$dir$base.o.d          # libtool 1.5
+    tmpdepfile2=$dir.libs/$base.o.d    # Likewise.
+    tmpdepfile3=$dir.libs/$base.d      # Compaq CCC V6.2-504
+    "$@" -Wc,-MD
+  else
+    tmpdepfile1=$dir$base.d
+    tmpdepfile2=$dir$base.d
+    tmpdepfile3=$dir$base.d
+    "$@" -MD
+  fi
 
-   stat=$?
-   if test $stat -eq 0; then :
-   else
-      rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
-      exit $stat
-   fi
+  stat=$?
+  if test $stat -ne 0; then
+    rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+    exit $stat
+  fi
 
-   for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
-   do
-     test -f "$tmpdepfile" && break
-   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"
-   else
-      echo "#dummy" > "$depfile"
-   fi
-   rm -f "$tmpdepfile"
-   ;;
+  for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+  do
+    test -f "$tmpdepfile" && break
+  done
+  # Same post-processing that is required for AIX mode.
+  aix_post_process_depfile
+  ;;
 
 msvc7)
   if test "$libtool" = yes; then
@@ -424,8 +526,7 @@
   "$@" $showIncludes > "$tmpdepfile"
   stat=$?
   grep -v '^Note: including file: ' "$tmpdepfile"
-  if test "$stat" = 0; then :
-  else
+  if test $stat -ne 0; then
     rm -f "$tmpdepfile"
     exit $stat
   fi
@@ -443,14 +544,15 @@
   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"
+  echo >> "$depfile" # make sure the fragment doesn't end with a backslash
   rm -f "$tmpdepfile"
   ;;
 
@@ -478,7 +580,7 @@
     shift
   fi
 
-  # Remove `-o $object'.
+  # Remove '-o $object'.
   IFS=" "
   for arg
   do
@@ -498,18 +600,18 @@
   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" | \
-## 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"
+  # Some versions of the HPUX 10.20 sed can't process this sed invocation
+  # correctly.  Breaking it into two sed invocations is a workaround.
+  tr ' ' "$nl" < "$tmpdepfile" \
+    | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
+    | sed -e 's/$/ :/' >> "$depfile"
   rm -f "$tmpdepfile"
   ;;
 
@@ -562,11 +664,12 @@
   # 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 ' ' '
-' | \
-## 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"
+  # Some versions of the HPUX 10.20 sed can't process the last invocation
+  # correctly.  Breaking it into two sed invocations is a workaround.
+  sed '1,2d' "$tmpdepfile" \
+    | tr ' ' "$nl" \
+    | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
+    | sed -e 's/$/ :/' >> "$depfile"
   rm -f "$tmpdepfile" "$tmpdepfile".bak
   ;;
 
@@ -583,7 +686,7 @@
     shift
   fi
 
-  # Remove `-o $object'.
+  # Remove '-o $object'.
   IFS=" "
   for arg
   do
@@ -602,10 +705,10 @@
     esac
   done
 
-  "$@" -E |
-    sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
-       -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
-    sed '$ s: \\$::' > "$tmpdepfile"
+  "$@" -E \
+    | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
+             -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
+    | sed '$ s: \\$::' > "$tmpdepfile"
   rm -f "$depfile"
   echo "$object : \\" > "$depfile"
   cat < "$tmpdepfile" >> "$depfile"
@@ -637,23 +740,23 @@
       shift
       ;;
     "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
-	set fnord "$@"
-	shift
-	shift
-	;;
+        set fnord "$@"
+        shift
+        shift
+        ;;
     *)
-	set fnord "$@" "$arg"
-	shift
-	shift
-	;;
+        set fnord "$@" "$arg"
+        shift
+        shift
+        ;;
     esac
   done
   "$@" -E 2>/dev/null |
   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 18d319c..d155231 100644
--- a/docs/Makefile.in
+++ b/docs/Makefile.in
@@ -101,7 +101,6 @@
 	$(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-x11.m4 \
 	$(top_srcdir)/common/m4/gst.m4 \
 	$(top_srcdir)/common/m4/gtk-doc.m4 \
 	$(top_srcdir)/common/m4/introspection.m4 \
@@ -261,6 +260,8 @@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_2_0_CFLAGS = @GIO_UNIX_2_0_CFLAGS@
+GIO_UNIX_2_0_LIBS = @GIO_UNIX_2_0_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
@@ -290,6 +291,8 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
+GST_NET_CFLAGS = @GST_NET_CFLAGS@
+GST_NET_LIBS = @GST_NET_LIBS@
 GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
 GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
@@ -317,7 +320,6 @@
 GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
 GTK_X11_LIBS = @GTK_X11_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
-HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -421,13 +423,12 @@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-XMKMF = @XMKMF@
+XSHM_CFLAGS = @XSHM_CFLAGS@
 XSHM_LIBS = @XSHM_LIBS@
+XVIDEO_CFLAGS = @XVIDEO_CFLAGS@
 XVIDEO_LIBS = @XVIDEO_LIBS@
 X_CFLAGS = @X_CFLAGS@
-X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
-X_PRE_LIBS = @X_PRE_LIBS@
 ZLIB_CFLAGS = @ZLIB_CFLAGS@
 ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
diff --git a/docs/design/Makefile.in b/docs/design/Makefile.in
index 0c459c2..49bb06b 100644
--- a/docs/design/Makefile.in
+++ b/docs/design/Makefile.in
@@ -100,7 +100,6 @@
 	$(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-x11.m4 \
 	$(top_srcdir)/common/m4/gst.m4 \
 	$(top_srcdir)/common/m4/gtk-doc.m4 \
 	$(top_srcdir)/common/m4/introspection.m4 \
@@ -261,6 +260,8 @@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_2_0_CFLAGS = @GIO_UNIX_2_0_CFLAGS@
+GIO_UNIX_2_0_LIBS = @GIO_UNIX_2_0_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
@@ -290,6 +291,8 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
+GST_NET_CFLAGS = @GST_NET_CFLAGS@
+GST_NET_LIBS = @GST_NET_LIBS@
 GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
 GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
@@ -317,7 +320,6 @@
 GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
 GTK_X11_LIBS = @GTK_X11_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
-HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -421,13 +423,12 @@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-XMKMF = @XMKMF@
+XSHM_CFLAGS = @XSHM_CFLAGS@
 XSHM_LIBS = @XSHM_LIBS@
+XVIDEO_CFLAGS = @XVIDEO_CFLAGS@
 XVIDEO_LIBS = @XVIDEO_LIBS@
 X_CFLAGS = @X_CFLAGS@
-X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
-X_PRE_LIBS = @X_PRE_LIBS@
 ZLIB_CFLAGS = @ZLIB_CFLAGS@
 ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
diff --git a/docs/libs/Makefile.in b/docs/libs/Makefile.in
index a92d416..d91294f 100644
--- a/docs/libs/Makefile.in
+++ b/docs/libs/Makefile.in
@@ -121,7 +121,6 @@
 	$(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-x11.m4 \
 	$(top_srcdir)/common/m4/gst.m4 \
 	$(top_srcdir)/common/m4/gtk-doc.m4 \
 	$(top_srcdir)/common/m4/introspection.m4 \
@@ -222,6 +221,8 @@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_2_0_CFLAGS = @GIO_UNIX_2_0_CFLAGS@
+GIO_UNIX_2_0_LIBS = @GIO_UNIX_2_0_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
@@ -251,6 +252,8 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
+GST_NET_CFLAGS = @GST_NET_CFLAGS@
+GST_NET_LIBS = @GST_NET_LIBS@
 GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
 GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
@@ -278,7 +281,6 @@
 GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
 GTK_X11_LIBS = @GTK_X11_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
-HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -382,13 +384,12 @@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-XMKMF = @XMKMF@
+XSHM_CFLAGS = @XSHM_CFLAGS@
 XSHM_LIBS = @XSHM_LIBS@
+XVIDEO_CFLAGS = @XVIDEO_CFLAGS@
 XVIDEO_LIBS = @XVIDEO_LIBS@
 X_CFLAGS = @X_CFLAGS@
-X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
-X_PRE_LIBS = @X_PRE_LIBS@
 ZLIB_CFLAGS = @ZLIB_CFLAGS@
 ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
diff --git a/docs/libs/gst-plugins-base-libs-docs.sgml b/docs/libs/gst-plugins-base-libs-docs.sgml
index 3da30ad..865ee29 100644
--- a/docs/libs/gst-plugins-base-libs-docs.sgml
+++ b/docs/libs/gst-plugins-base-libs-docs.sgml
@@ -198,6 +198,10 @@
       <xi:include href="xml/gstvideometa.xml" />
       <xi:include href="xml/gstvideooverlaycomposition.xml" />
       <xi:include href="xml/gstvideofilter.xml" />
+      <xi:include href="xml/gstvideodither.xml" />
+      <xi:include href="xml/gstvideochroma.xml" />
+      <xi:include href="xml/gstvideoresampler.xml" />
+      <xi:include href="xml/gstvideoscaler.xml" />
       <xi:include href="xml/gstvideosink.xml" />
       <xi:include href="xml/gstcolorbalance.xml" />
       <xi:include href="xml/gstcolorbalancechannel.xml" />
diff --git a/docs/libs/gst-plugins-base-libs-sections.txt b/docs/libs/gst-plugins-base-libs-sections.txt
index a7cbf7f..82a351f 100644
--- a/docs/libs/gst-plugins-base-libs-sections.txt
+++ b/docs/libs/gst-plugins-base-libs-sections.txt
@@ -34,6 +34,7 @@
 GstAppSrcCallbacks
 gst_app_src_set_callbacks
 gst_app_src_push_buffer
+gst_app_src_push_sample
 gst_app_src_end_of_stream
 <SUBSECTION Standard>
 GstAppSrcClass
@@ -1539,6 +1540,10 @@
 gst_rtsp_message_take_header
 gst_rtsp_message_remove_header
 gst_rtsp_message_get_header
+gst_rtsp_message_add_header_by_name
+gst_rtsp_message_take_header_by_name
+gst_rtsp_message_remove_header_by_name
+gst_rtsp_message_get_header_by_name
 gst_rtsp_message_append_headers
 gst_rtsp_message_set_body
 gst_rtsp_message_take_body
@@ -2053,6 +2058,9 @@
 gst_install_plugins_context_new
 gst_install_plugins_context_free
 gst_install_plugins_context_set_xid
+gst_install_plugins_context_set_confirm_search
+gst_install_plugins_context_set_desktop_id
+gst_install_plugins_context_set_startup_notification_id
 <SUBSECTION Standard>
 GST_TYPE_INSTALL_PLUGINS_CONTEXT
 GST_TYPE_INSTALL_PLUGINS_RETURN
@@ -2111,6 +2119,7 @@
 gst_encoding_profile_get_name
 gst_encoding_profile_get_description
 gst_encoding_profile_get_format
+gst_encoding_profile_get_allow_renegotiation
 gst_encoding_profile_get_preset
 gst_encoding_profile_get_preset_name
 gst_encoding_profile_get_presence
@@ -2119,6 +2128,7 @@
 gst_encoding_profile_set_name
 gst_encoding_profile_set_description
 gst_encoding_profile_set_format
+gst_encoding_profile_set_allow_renegotiation
 gst_encoding_profile_set_preset
 gst_encoding_profile_set_preset_name
 gst_encoding_profile_set_restriction
@@ -2202,6 +2212,7 @@
 #video.h
 <SUBSECTION>
 gst_video_calculate_display_ratio
+gst_video_guess_framerate
 GstVideoConvertSampleCallback
 gst_video_convert_sample
 gst_video_convert_sample_async
@@ -2230,9 +2241,6 @@
 GST_VIDEO_MAX_PLANES
 GST_VIDEO_MAX_COMPONENTS
 GstVideoFormatInfo
-GstVideoChromaSite
-gst_video_chroma_from_string
-gst_video_chroma_to_string
 GstVideoFormatFlags
 GstVideoPackFlags
 GstVideoFormatUnpack
@@ -2289,14 +2297,18 @@
 #video-color.h
 <SUBSECTION>
 GstVideoColorRange
+gst_video_color_range_offsets
 GstVideoColorMatrix
-GstVideoTransferFunction
+gst_video_color_matrix_get_Kr_Kb
 GstVideoColorPrimaries
+GstVideoTransferFunction
+gst_video_color_transfer_decode
+gst_video_color_transfer_encode
+
 GstVideoColorimetry
 gst_video_colorimetry_matches
 gst_video_colorimetry_from_string
 gst_video_colorimetry_to_string
-gst_video_color_range_offsets
 <SUBSECTION Standard>
 gst_video_color_range_get_type
 GST_TYPE_VIDEO_COLOR_RANGE
@@ -2405,6 +2417,23 @@
 GST_VIDEO_TILE_X_TILES
 GST_VIDEO_TILE_Y_TILES
 
+#video-blend.h
+<SUBSECTION>
+gst_video_blend
+gst_video_blend_scale_linear_RGBA
+
+#video-converter.h
+<SUBSECTION>
+GstVideoConverter
+gst_video_converter_new
+gst_video_converter_free
+gst_video_converter_get_config
+gst_video_converter_set_config
+gst_video_converter_frame
+<SUBSECTION Standard>
+gst_video_dither_method_get_type
+GST_TYPE_VIDEO_DITHER_METHOD
+
 #video-enumtypes.h
 <SUBSECTION Standard>
 gst_color_balance_type_get_type
@@ -2487,7 +2516,6 @@
 <INCLUDE>gst/video/video-overlay-composition.h</INCLUDE>
 <SUBSECTION composition>
 GstVideoOverlayComposition
-GstVideoOverlayCompositionClass
 gst_video_overlay_composition_new
 gst_video_overlay_composition_ref
 gst_video_overlay_composition_unref
@@ -2511,7 +2539,6 @@
 <SUBSECTION rectangle>
 GstVideoOverlayFormatFlags
 GstVideoOverlayRectangle
-GstVideoOverlayRectangleClass
 gst_video_overlay_rectangle_new_raw
 gst_video_overlay_rectangle_ref
 gst_video_overlay_rectangle_unref
@@ -2531,10 +2558,7 @@
 <SUBSECTION Standard>
 GST_TYPE_VIDEO_OVERLAY_COMPOSITION
 GST_VIDEO_OVERLAY_COMPOSITION
-GST_VIDEO_OVERLAY_COMPOSITION_CLASS
-GST_VIDEO_OVERLAY_COMPOSITION_GET_CLASS
 GST_IS_VIDEO_OVERLAY_COMPOSITION
-GST_IS_VIDEO_VIDEO_OVERLAY_COMPOSITION_CLASS
 GST_VIDEO_OVERLAY_COMPOSITION_CAST
 GST_VIDEO_OVERLAY_COMPOSITION_META_API_TYPE
 GST_VIDEO_OVERLAY_COMPOSITION_META_INFO
@@ -2543,10 +2567,7 @@
 
 GST_TYPE_VIDEO_OVERLAY_RECTANGLE
 GST_VIDEO_OVERLAY_RECTANGLE
-GST_VIDEO_OVERLAY_RECTANGLE_CLASS
-GST_VIDEO_OVERLAY_RECTANGLE_GET_CLASS
 GST_IS_VIDEO_OVERLAY_RECTANGLE
-GST_IS_VIDEO_VIDEO_OVERLAY_RECTANGLE_CLASS
 gst_video_overlay_rectangle_get_type
 </SECTION>
 
@@ -2592,7 +2613,6 @@
 <FILE>gstvideodecoder</FILE>
 <TITLE>GstVideoDecoder</TITLE>
 GST_VIDEO_DECODER_ERROR
-GST_VIDEO_DECODER_FLOW_DROPPED
 GST_VIDEO_DECODER_FLOW_NEED_DATA
 GST_VIDEO_DECODER_MAX_ERRORS
 GST_VIDEO_DECODER_SINK_NAME
@@ -2688,6 +2708,81 @@
 </SECTION>
 
 <SECTION>
+<FILE>gstvideodither</FILE>
+<TITLE>GstVideoDither</TITLE>
+<INCLUDE>gst/video/video-dither.h</INCLUDE>
+GstVideoDither
+GstVideoDitherFlags
+GstVideoDitherMethod
+gst_video_dither_free
+gst_video_dither_line
+gst_video_dither_new
+<SUBSECTION Standard>
+GST_TYPE_VIDEO_DITHER_FLAGS
+gst_video_dither_flags_get_type
+</SECTION>
+
+<SECTION>
+<FILE>gstvideochroma</FILE>
+<TITLE>GstVideoChroma</TITLE>
+<INCLUDE>gst/video/video-chroma.h</INCLUDE>
+GstVideoChromaSite
+gst_video_chroma_from_string
+gst_video_chroma_to_string
+GstVideoChromaFlags
+<SUBSECTION GstVideoChromaResample>
+GstVideoChromaMethod
+GstVideoChromaResample
+gst_video_chroma_resample
+gst_video_chroma_resample_free
+gst_video_chroma_resample_get_info
+gst_video_chroma_resample_new
+<SUBSECTION Standard>
+gst_video_chroma_flags_get_type
+gst_video_chroma_method_get_type
+GST_TYPE_VIDEO_CHROMA_FLAGS
+GST_TYPE_VIDEO_CHROMA_METHOD
+</SECTION>
+
+<SECTION>
+<FILE>gstvideoresampler</FILE>
+<TITLE>GstVideoResampler</TITLE>
+<INCLUDE>gst/video/video-resampler.h</INCLUDE>
+GstVideoResampler
+GstVideoResamplerFlags
+GstVideoResamplerMethod
+gst_video_resampler_clear
+gst_video_resampler_init
+GST_VIDEO_RESAMPLER_OPT_CUBIC_B
+GST_VIDEO_RESAMPLER_OPT_CUBIC_C
+GST_VIDEO_RESAMPLER_OPT_ENVELOPE
+GST_VIDEO_RESAMPLER_OPT_MAX_TAPS
+GST_VIDEO_RESAMPLER_OPT_SHARPEN
+GST_VIDEO_RESAMPLER_OPT_SHARPNESS
+<SUBSECTION Standard>
+gst_video_resampler_flags_get_type
+gst_video_resampler_method_get_type
+GST_TYPE_VIDEO_RESAMPLER_FLAGS
+GST_TYPE_VIDEO_RESAMPLER_METHOD
+</SECTION>
+
+<SECTION>
+<FILE>gstvideoscaler</FILE>
+<TITLE>GstVideoScaler</TITLE>
+<INCLUDE>gst/video/video-scaler.h</INCLUDE>
+GstVideoScaler
+GstVideoScalerFlags
+gst_video_scaler_2d
+gst_video_scaler_combine_packed_YUV
+gst_video_scaler_free
+gst_video_scaler_get_coeff
+gst_video_scaler_horizontal
+gst_video_scaler_new
+gst_video_scaler_vertical
+<SUBSECTION Standard>
+</SECTION>
+
+<SECTION>
 <FILE>gstvideoutils</FILE>
 GstVideoCodecFrame
 GstVideoCodecFrameFlags
diff --git a/docs/libs/html/annotation-glossary.html b/docs/libs/html/annotation-glossary.html
index f7ac82e..14be70a 100644
--- a/docs/libs/html/annotation-glossary.html
+++ b/docs/libs/html/annotation-glossary.html
@@ -7,17 +7,19 @@
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="prev" href="api-index-deprecated.html" title="Index of deprecated API">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"><span id="nav_glossary"><a class="shortcut" href="#glsA">A</a>
                      <span class="dim">|</span> 
                   <a class="shortcut" href="#glsC">C</a>
                      <span class="dim">|</span> 
                   <a class="shortcut" href="#glsE">E</a>
                      <span class="dim">|</span> 
+                  <a class="shortcut" href="#glsN">N</a>
+                     <span class="dim">|</span> 
                   <a class="shortcut" href="#glsO">O</a>
                      <span class="dim">|</span> 
                   <a class="shortcut" href="#glsS">S</a>
@@ -33,7 +35,7 @@
 <a name="annotation-glossary"></a>Annotation Glossary</h1></div></div></div>
 <a name="glsA"></a><h3 class="title">A</h3>
 <dt><span class="glossterm"><a name="annotation-glossterm-allow-none"></a>allow-none</span></dt>
-<dd class="glossdef"><p>NULL is ok, both for passing and for returning.</p></dd>
+<dd class="glossdef"><p>NULL is OK, both for passing and for returning.</p></dd>
 <dt><span class="glossterm"><a name="annotation-glossterm-array"></a>array</span></dt>
 <dd class="glossdef"><p>Parameter points to an array of items.</p></dd>
 <a name="glsC"></a><h3 class="title">C</h3>
@@ -42,6 +44,9 @@
 <a name="glsE"></a><h3 class="title">E</h3>
 <dt><span class="glossterm"><a name="annotation-glossterm-element-type"></a>element-type</span></dt>
 <dd class="glossdef"><p>Generics and defining elements of containers and arrays.</p></dd>
+<a name="glsN"></a><h3 class="title">N</h3>
+<dt><span class="glossterm"><a name="annotation-glossterm-nullable"></a>nullable</span></dt>
+<dd class="glossdef"><p>NULL may be passed as the value in, out, in-out; or as a return value.</p></dd>
 <a name="glsO"></a><h3 class="title">O</h3>
 <dt><span class="glossterm"><a name="annotation-glossterm-out"></a>out</span></dt>
 <dd class="glossdef"><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>
@@ -49,6 +54,8 @@
 <dt><span class="glossterm"><a name="annotation-glossterm-scope%20async"></a>scope async</span></dt>
 <dd class="glossdef"><p>The callback is valid until first called.</p></dd>
 <a name="glsT"></a><h3 class="title">T</h3>
+<dt><span class="glossterm"><a name="annotation-glossterm-transfer%20floating"></a>transfer floating</span></dt>
+<dd class="glossdef"><p>Alias for <acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>, used for objects with floating refs.</p></dd>
 <dt><span class="glossterm"><a name="annotation-glossterm-transfer%20full"></a>transfer full</span></dt>
 <dd class="glossdef"><p>Free data after the code is done.</p></dd>
 <dt><span class="glossterm"><a name="annotation-glossterm-transfer%20none"></a>transfer none</span></dt>
@@ -58,6 +65,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/api-index-deprecated.html b/docs/libs/html/api-index-deprecated.html
index 9c10318..7ae3834 100644
--- a/docs/libs/html/api-index-deprecated.html
+++ b/docs/libs/html/api-index-deprecated.html
@@ -8,11 +8,11 @@
 <link rel="up" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="prev" href="api-index-full.html" title="Index">
 <link rel="next" href="annotation-glossary.html" title="Annotation Glossary">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"><span id="nav_index"><a class="shortcut" href="#idxD">D</a>
                      <span class="dim">|</span> 
                   <a class="shortcut" href="#idxR">R</a></span></td>
@@ -41,6 +41,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/api-index-full.html b/docs/libs/html/api-index-full.html
index 4cbece1..04b767a 100644
--- a/docs/libs/html/api-index-full.html
+++ b/docs/libs/html/api-index-full.html
@@ -8,11 +8,11 @@
 <link rel="up" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="prev" href="gstreamer-libs-hierarchy.html" title="Part II. Object Hierarchy">
 <link rel="next" href="api-index-deprecated.html" title="Index of deprecated API">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"><span id="nav_index"><a class="shortcut" href="#idxA">A</a>
                      <span class="dim">|</span> 
                   <a class="shortcut" href="#idxB">B</a>
@@ -146,6 +146,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-push-sample" title="gst_app_src_push_sample ()">gst_app_src_push_sample</a>, function in <a class="link" href="gst-plugins-base-libs-appsrc.html" title="appsrc">appsrc</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-set-callbacks" title="gst_app_src_set_callbacks ()">gst_app_src_set_callbacks</a>, function in <a class="link" href="gst-plugins-base-libs-appsrc.html" title="appsrc">appsrc</a>
 </dt>
 <dd></dd>
@@ -2052,6 +2056,18 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-context-set-confirm-search" title="gst_install_plugins_context_set_confirm_search ()">gst_install_plugins_context_set_confirm_search</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html" title="gstpbutilsinstallplugins">gstpbutilsinstallplugins</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-context-set-desktop-id" title="gst_install_plugins_context_set_desktop_id ()">gst_install_plugins_context_set_desktop_id</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html" title="gstpbutilsinstallplugins">gstpbutilsinstallplugins</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-context-set-startup-notification-id" title="gst_install_plugins_context_set_startup_notification_id ()">gst_install_plugins_context_set_startup_notification_id</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html" title="gstpbutilsinstallplugins">gstpbutilsinstallplugins</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-context-set-xid" title="gst_install_plugins_context_set_xid ()">gst_install_plugins_context_set_xid</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html" title="gstpbutilsinstallplugins">gstpbutilsinstallplugins</a>
 </dt>
 <dd></dd>
@@ -2137,14 +2153,6 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayloadClearFunc" title="GstMIKEYPayloadClearFunc ()">GstMIKEYPayloadClearFunc</a>, user_function in <a class="link" href="gst-plugins-base-libs-gstmikey.html" title="gstmikey">gstmikey</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayloadCopyFunc" title="GstMIKEYPayloadCopyFunc ()">GstMIKEYPayloadCopyFunc</a>, user_function in <a class="link" href="gst-plugins-base-libs-gstmikey.html" title="gstmikey">gstmikey</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayloadKEMAC" title="GstMIKEYPayloadKEMAC">GstMIKEYPayloadKEMAC</a>, struct in <a class="link" href="gst-plugins-base-libs-gstmikey.html" title="gstmikey">gstmikey</a>
 </dt>
 <dd></dd>
@@ -2225,10 +2233,6 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-free" title="gst_mikey_message_free ()">gst_mikey_message_free</a>, function in <a class="link" href="gst-plugins-base-libs-gstmikey.html" title="gstmikey">gstmikey</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-get-cs-srtp" title="gst_mikey_message_get_cs_srtp ()">gst_mikey_message_get_cs_srtp</a>, function in <a class="link" href="gst-plugins-base-libs-gstmikey.html" title="gstmikey">gstmikey</a>
 </dt>
 <dd></dd>
@@ -2293,10 +2297,6 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstmikey.html#gst-mikey-payload-free" title="gst_mikey_payload_free ()">gst_mikey_payload_free</a>, function in <a class="link" href="gst-plugins-base-libs-gstmikey.html" title="gstmikey">gstmikey</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="gst-plugins-base-libs-gstmikey.html#gst-mikey-payload-kemac-set" title="gst_mikey_payload_kemac_set ()">gst_mikey_payload_kemac_set</a>, function in <a class="link" href="gst-plugins-base-libs-gstmikey.html" title="gstmikey">gstmikey</a>
 </dt>
 <dd></dd>
@@ -3584,6 +3584,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-add-header-by-name" title="gst_rtsp_message_add_header_by_name ()">gst_rtsp_message_add_header_by_name</a>, function in <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html" title="gstrtspmessage">gstrtspmessage</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-append-headers" title="gst_rtsp_message_append_headers ()">gst_rtsp_message_append_headers</a>, function in <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html" title="gstrtspmessage">gstrtspmessage</a>
 </dt>
 <dd></dd>
@@ -3604,6 +3608,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-get-header-by-name" title="gst_rtsp_message_get_header_by_name ()">gst_rtsp_message_get_header_by_name</a>, function in <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html" title="gstrtspmessage">gstrtspmessage</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-get-type" title="gst_rtsp_message_get_type ()">gst_rtsp_message_get_type</a>, function in <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html" title="gstrtspmessage">gstrtspmessage</a>
 </dt>
 <dd></dd>
@@ -3656,6 +3664,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-remove-header-by-name" title="gst_rtsp_message_remove_header_by_name ()">gst_rtsp_message_remove_header_by_name</a>, function in <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html" title="gstrtspmessage">gstrtspmessage</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-set-body" title="gst_rtsp_message_set_body ()">gst_rtsp_message_set_body</a>, function in <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html" title="gstrtspmessage">gstrtspmessage</a>
 </dt>
 <dd></dd>
@@ -3672,6 +3684,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-take-header-by-name" title="gst_rtsp_message_take_header_by_name ()">gst_rtsp_message_take_header_by_name</a>, function in <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html" title="gstrtspmessage">gstrtspmessage</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-unset" title="gst_rtsp_message_unset ()">gst_rtsp_message_unset</a>, function in <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html" title="gstrtspmessage">gstrtspmessage</a>
 </dt>
 <dd></dd>
@@ -4739,7 +4755,19 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoChromaSite" title="enum GstVideoChromaSite">GstVideoChromaSite</a>, enum in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+<a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#GstVideoChromaFlags" title="enum GstVideoChromaFlags">GstVideoChromaFlags</a>, enum in <a class="link" href="gst-plugins-base-libs-GstVideoChroma.html" title="GstVideoChroma">GstVideoChroma</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#GstVideoChromaMethod" title="enum GstVideoChromaMethod">GstVideoChromaMethod</a>, enum in <a class="link" href="gst-plugins-base-libs-GstVideoChroma.html" title="GstVideoChroma">GstVideoChroma</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#GstVideoChromaResample" title="GstVideoChromaResample">GstVideoChromaResample</a>, struct in <a class="link" href="gst-plugins-base-libs-GstVideoChroma.html" title="GstVideoChroma">GstVideoChroma</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#GstVideoChromaSite" title="enum GstVideoChromaSite">GstVideoChromaSite</a>, enum in <a class="link" href="gst-plugins-base-libs-GstVideoChroma.html" title="GstVideoChroma">GstVideoChroma</a>
 </dt>
 <dd></dd>
 <dt>
@@ -4771,6 +4799,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoConverter" title="GstVideoConverter">GstVideoConverter</a>, struct in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoConvertSampleCallback" title="GstVideoConvertSampleCallback ()">GstVideoConvertSampleCallback</a>, user_function in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
 </dt>
 <dd></dd>
@@ -4787,6 +4819,18 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoDither.html#GstVideoDither" title="GstVideoDither">GstVideoDither</a>, struct in <a class="link" href="gst-plugins-base-libs-GstVideoDither.html" title="GstVideoDither">GstVideoDither</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoDither.html#GstVideoDitherFlags" title="enum GstVideoDitherFlags">GstVideoDitherFlags</a>, enum in <a class="link" href="gst-plugins-base-libs-GstVideoDither.html" title="GstVideoDither">GstVideoDither</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoDither.html#GstVideoDitherMethod" title="enum GstVideoDitherMethod">GstVideoDitherMethod</a>, enum in <a class="link" href="gst-plugins-base-libs-GstVideoDither.html" title="GstVideoDither">GstVideoDither</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder">GstVideoEncoder</a>, struct in <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html" title="GstVideoEncoder">GstVideoEncoder</a>
 </dt>
 <dd></dd>
@@ -4903,6 +4947,26 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoResampler.html#GstVideoResampler" title="struct GstVideoResampler">GstVideoResampler</a>, struct in <a class="link" href="gst-plugins-base-libs-GstVideoResampler.html" title="GstVideoResampler">GstVideoResampler</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoResampler.html#GstVideoResamplerFlags" title="enum GstVideoResamplerFlags">GstVideoResamplerFlags</a>, enum in <a class="link" href="gst-plugins-base-libs-GstVideoResampler.html" title="GstVideoResampler">GstVideoResampler</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoResampler.html#GstVideoResamplerMethod" title="enum GstVideoResamplerMethod">GstVideoResamplerMethod</a>, enum in <a class="link" href="gst-plugins-base-libs-GstVideoResampler.html" title="GstVideoResampler">GstVideoResampler</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoScaler.html#GstVideoScaler" title="GstVideoScaler">GstVideoScaler</a>, struct in <a class="link" href="gst-plugins-base-libs-GstVideoScaler.html" title="GstVideoScaler">GstVideoScaler</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoScaler.html#GstVideoScalerFlags" title="enum GstVideoScalerFlags">GstVideoScalerFlags</a>, enum in <a class="link" href="gst-plugins-base-libs-GstVideoScaler.html" title="GstVideoScaler">GstVideoScaler</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-gstvideosink.html#GstVideoSink-struct" title="struct GstVideoSink">GstVideoSink</a>, struct in <a class="link" href="gst-plugins-base-libs-gstvideosink.html" title="gstvideosink">gstvideosink</a>
 </dt>
 <dd></dd>
@@ -4931,6 +4995,14 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-blend" title="gst_video_blend ()">gst_video_blend</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-blend-scale-linear-RGBA" title="gst_video_blend_scale_linear_RGBA ()">gst_video_blend_scale_linear_RGBA</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-GstVideoPool.html#gst-video-buffer-pool-new" title="gst_video_buffer_pool_new ()">gst_video_buffer_pool_new</a>, function in <a class="link" href="gst-plugins-base-libs-GstVideoPool.html" title="GstVideoPool">GstVideoPool</a>
 </dt>
 <dd></dd>
@@ -4943,11 +5015,27 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-chroma-from-string" title="gst_video_chroma_from_string ()">gst_video_chroma_from_string</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+<a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#gst-video-chroma-from-string" title="gst_video_chroma_from_string ()">gst_video_chroma_from_string</a>, function in <a class="link" href="gst-plugins-base-libs-GstVideoChroma.html" title="GstVideoChroma">GstVideoChroma</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-chroma-to-string" title="gst_video_chroma_to_string ()">gst_video_chroma_to_string</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+<a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#gst-video-chroma-resample" title="gst_video_chroma_resample ()">gst_video_chroma_resample</a>, function in <a class="link" href="gst-plugins-base-libs-GstVideoChroma.html" title="GstVideoChroma">GstVideoChroma</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#gst-video-chroma-resample-free" title="gst_video_chroma_resample_free ()">gst_video_chroma_resample_free</a>, function in <a class="link" href="gst-plugins-base-libs-GstVideoChroma.html" title="GstVideoChroma">GstVideoChroma</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#gst-video-chroma-resample-get-info" title="gst_video_chroma_resample_get_info ()">gst_video_chroma_resample_get_info</a>, function in <a class="link" href="gst-plugins-base-libs-GstVideoChroma.html" title="GstVideoChroma">GstVideoChroma</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#gst-video-chroma-resample-new" title="gst_video_chroma_resample_new ()">gst_video_chroma_resample_new</a>, function in <a class="link" href="gst-plugins-base-libs-GstVideoChroma.html" title="GstVideoChroma">GstVideoChroma</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#gst-video-chroma-to-string" title="gst_video_chroma_to_string ()">gst_video_chroma_to_string</a>, function in <a class="link" href="gst-plugins-base-libs-GstVideoChroma.html" title="GstVideoChroma">GstVideoChroma</a>
 </dt>
 <dd></dd>
 <dt>
@@ -5047,10 +5135,42 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-color-matrix-get-Kr-Kb" title="gst_video_color_matrix_get_Kr_Kb ()">gst_video_color_matrix_get_Kr_Kb</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-color-range-offsets" title="gst_video_color_range_offsets ()">gst_video_color_range_offsets</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-color-transfer-decode" title="gst_video_color_transfer_decode ()">gst_video_color_transfer_decode</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-color-transfer-encode" title="gst_video_color_transfer_encode ()">gst_video_color_transfer_encode</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-converter-frame" title="gst_video_converter_frame ()">gst_video_converter_frame</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-converter-free" title="gst_video_converter_free ()">gst_video_converter_free</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-converter-get-config" title="gst_video_converter_get_config ()">gst_video_converter_get_config</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-converter-new" title="gst_video_converter_new ()">gst_video_converter_new</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-converter-set-config" title="gst_video_converter_set_config ()">gst_video_converter_set_config</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-convert-sample" title="gst_video_convert_sample ()">gst_video_convert_sample</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
 </dt>
 <dd></dd>
@@ -5219,6 +5339,18 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoDither.html#gst-video-dither-free" title="gst_video_dither_free ()">gst_video_dither_free</a>, function in <a class="link" href="gst-plugins-base-libs-GstVideoDither.html" title="GstVideoDither">GstVideoDither</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoDither.html#gst-video-dither-line" title="gst_video_dither_line ()">gst_video_dither_line</a>, function in <a class="link" href="gst-plugins-base-libs-GstVideoDither.html" title="GstVideoDither">GstVideoDither</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoDither.html#gst-video-dither-new" title="gst_video_dither_new ()">gst_video_dither_new</a>, function in <a class="link" href="gst-plugins-base-libs-GstVideoDither.html" title="GstVideoDither">GstVideoDither</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#gst-video-encoder-allocate-output-buffer" title="gst_video_encoder_allocate_output_buffer ()">gst_video_encoder_allocate_output_buffer</a>, function in <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html" title="GstVideoEncoder">GstVideoEncoder</a>
 </dt>
 <dd></dd>
@@ -5615,6 +5747,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-guess-framerate" title="gst_video_guess_framerate ()">gst_video_guess_framerate</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-info-align" title="gst_video_info_align ()">gst_video_info_align</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
 </dt>
 <dd></dd>
@@ -5963,6 +6099,66 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoResampler.html#gst-video-resampler-clear" title="gst_video_resampler_clear ()">gst_video_resampler_clear</a>, function in <a class="link" href="gst-plugins-base-libs-GstVideoResampler.html" title="GstVideoResampler">GstVideoResampler</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoResampler.html#gst-video-resampler-init" title="gst_video_resampler_init ()">gst_video_resampler_init</a>, function in <a class="link" href="gst-plugins-base-libs-GstVideoResampler.html" title="GstVideoResampler">GstVideoResampler</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoResampler.html#GST-VIDEO-RESAMPLER-OPT-CUBIC-B:CAPS" title="GST_VIDEO_RESAMPLER_OPT_CUBIC_B">GST_VIDEO_RESAMPLER_OPT_CUBIC_B</a>, macro in <a class="link" href="gst-plugins-base-libs-GstVideoResampler.html" title="GstVideoResampler">GstVideoResampler</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoResampler.html#GST-VIDEO-RESAMPLER-OPT-CUBIC-C:CAPS" title="GST_VIDEO_RESAMPLER_OPT_CUBIC_C">GST_VIDEO_RESAMPLER_OPT_CUBIC_C</a>, macro in <a class="link" href="gst-plugins-base-libs-GstVideoResampler.html" title="GstVideoResampler">GstVideoResampler</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoResampler.html#GST-VIDEO-RESAMPLER-OPT-ENVELOPE:CAPS" title="GST_VIDEO_RESAMPLER_OPT_ENVELOPE">GST_VIDEO_RESAMPLER_OPT_ENVELOPE</a>, macro in <a class="link" href="gst-plugins-base-libs-GstVideoResampler.html" title="GstVideoResampler">GstVideoResampler</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoResampler.html#GST-VIDEO-RESAMPLER-OPT-MAX-TAPS:CAPS" title="GST_VIDEO_RESAMPLER_OPT_MAX_TAPS">GST_VIDEO_RESAMPLER_OPT_MAX_TAPS</a>, macro in <a class="link" href="gst-plugins-base-libs-GstVideoResampler.html" title="GstVideoResampler">GstVideoResampler</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoResampler.html#GST-VIDEO-RESAMPLER-OPT-SHARPEN:CAPS" title="GST_VIDEO_RESAMPLER_OPT_SHARPEN">GST_VIDEO_RESAMPLER_OPT_SHARPEN</a>, macro in <a class="link" href="gst-plugins-base-libs-GstVideoResampler.html" title="GstVideoResampler">GstVideoResampler</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoResampler.html#GST-VIDEO-RESAMPLER-OPT-SHARPNESS:CAPS" title="GST_VIDEO_RESAMPLER_OPT_SHARPNESS">GST_VIDEO_RESAMPLER_OPT_SHARPNESS</a>, macro in <a class="link" href="gst-plugins-base-libs-GstVideoResampler.html" title="GstVideoResampler">GstVideoResampler</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoScaler.html#gst-video-scaler-2d" title="gst_video_scaler_2d ()">gst_video_scaler_2d</a>, function in <a class="link" href="gst-plugins-base-libs-GstVideoScaler.html" title="GstVideoScaler">GstVideoScaler</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoScaler.html#gst-video-scaler-combine-packed-YUV" title="gst_video_scaler_combine_packed_YUV ()">gst_video_scaler_combine_packed_YUV</a>, function in <a class="link" href="gst-plugins-base-libs-GstVideoScaler.html" title="GstVideoScaler">GstVideoScaler</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoScaler.html#gst-video-scaler-free" title="gst_video_scaler_free ()">gst_video_scaler_free</a>, function in <a class="link" href="gst-plugins-base-libs-GstVideoScaler.html" title="GstVideoScaler">GstVideoScaler</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoScaler.html#gst-video-scaler-get-coeff" title="gst_video_scaler_get_coeff ()">gst_video_scaler_get_coeff</a>, function in <a class="link" href="gst-plugins-base-libs-GstVideoScaler.html" title="GstVideoScaler">GstVideoScaler</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoScaler.html#gst-video-scaler-horizontal" title="gst_video_scaler_horizontal ()">gst_video_scaler_horizontal</a>, function in <a class="link" href="gst-plugins-base-libs-GstVideoScaler.html" title="GstVideoScaler">GstVideoScaler</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoScaler.html#gst-video-scaler-new" title="gst_video_scaler_new ()">gst_video_scaler_new</a>, function in <a class="link" href="gst-plugins-base-libs-GstVideoScaler.html" title="GstVideoScaler">GstVideoScaler</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoScaler.html#gst-video-scaler-vertical" title="gst_video_scaler_vertical ()">gst_video_scaler_vertical</a>, function in <a class="link" href="gst-plugins-base-libs-GstVideoScaler.html" title="GstVideoScaler">GstVideoScaler</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-gstvideosink.html#gst-video-sink-center-rect" title="gst_video_sink_center_rect ()">gst_video_sink_center_rect</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideosink.html" title="gstvideosink">gstvideosink</a>
 </dt>
 <dd></dd>
@@ -6021,6 +6217,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/compiling.html b/docs/libs/html/compiling.html
index 6071e08..8d5f099 100644
--- a/docs/libs/html/compiling.html
+++ b/docs/libs/html/compiling.html
@@ -8,11 +8,11 @@
 <link rel="up" href="gstreamer-plugins-base.html" title="Part I. GStreamer Base Plugins Libraries">
 <link rel="prev" href="gstreamer-plugins-base.html" title="Part I. GStreamer Base Plugins Libraries">
 <link rel="next" href="gstreamer-allocators.html" title="Allocators Library">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="gstreamer-plugins-base.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -59,6 +59,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-1.0.devhelp2 b/docs/libs/html/gst-plugins-base-libs-1.0.devhelp2
index 7a583d6..c4ae12c 100644
--- a/docs/libs/html/gst-plugins-base-libs-1.0.devhelp2
+++ b/docs/libs/html/gst-plugins-base-libs-1.0.devhelp2
@@ -89,6 +89,10 @@
         <sub name="gstvideometa" link="gst-plugins-base-libs-gstvideometa.html"/>
         <sub name="gstvideooverlaycomposition" link="gst-plugins-base-libs-gstvideooverlaycomposition.html"/>
         <sub name="gstvideofilter" link="gst-plugins-base-libs-gstvideofilter.html"/>
+        <sub name="GstVideoDither" link="gst-plugins-base-libs-GstVideoDither.html"/>
+        <sub name="GstVideoChroma" link="gst-plugins-base-libs-GstVideoChroma.html"/>
+        <sub name="GstVideoResampler" link="gst-plugins-base-libs-GstVideoResampler.html"/>
+        <sub name="GstVideoScaler" link="gst-plugins-base-libs-GstVideoScaler.html"/>
         <sub name="gstvideosink" link="gst-plugins-base-libs-gstvideosink.html"/>
         <sub name="gstcolorbalance" link="gst-plugins-base-libs-gstcolorbalance.html"/>
         <sub name="gstcolorbalancechannel" link="gst-plugins-base-libs-gstcolorbalancechannel.html"/>
@@ -125,6 +129,7 @@
     <keyword type="function" name="gst_app_src_set_emit_signals ()" link="gst-plugins-base-libs-appsrc.html#gst-app-src-set-emit-signals"/>
     <keyword type="function" name="gst_app_src_set_callbacks ()" link="gst-plugins-base-libs-appsrc.html#gst-app-src-set-callbacks"/>
     <keyword type="function" name="gst_app_src_push_buffer ()" link="gst-plugins-base-libs-appsrc.html#gst-app-src-push-buffer"/>
+    <keyword type="function" name="gst_app_src_push_sample ()" link="gst-plugins-base-libs-appsrc.html#gst-app-src-push-sample" since="1.6"/>
     <keyword type="function" name="gst_app_src_end_of_stream ()" link="gst-plugins-base-libs-appsrc.html#gst-app-src-end-of-stream"/>
     <keyword type="enum" name="enum GstAppStreamType" link="gst-plugins-base-libs-appsrc.html#GstAppStreamType"/>
     <keyword type="struct" name="GstAppSrcCallbacks" link="gst-plugins-base-libs-appsrc.html#GstAppSrcCallbacks"/>
@@ -502,7 +507,7 @@
     <keyword type="property" name="The “stats” property" link="gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload--stats"/>
     <keyword type="property" name="The “timestamp” property" link="gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload--timestamp"/>
     <keyword type="property" name="The “timestamp-offset” property" link="gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload--timestamp-offset"/>
-    <keyword type="" name="" link="gst-plugins-base-libs-gstrtpbuffer.html#id-1.2.9.6.7.2"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gstrtpbuffer.html#id-1.2.9.6.6.2"/>
     <keyword type="function" name="gst_rtp_buffer_allocate_data ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-allocate-data"/>
     <keyword type="function" name="gst_rtp_buffer_new_take_data ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-new-take-data"/>
     <keyword type="function" name="gst_rtp_buffer_new_copy_data ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-new-copy-data"/>
@@ -552,7 +557,7 @@
     <keyword type="macro" name="GST_RTP_VERSION" link="gst-plugins-base-libs-gstrtpbuffer.html#GST-RTP-VERSION:CAPS"/>
     <keyword type="struct" name="struct GstRTPBuffer" link="gst-plugins-base-libs-gstrtpbuffer.html#GstRTPBuffer"/>
     <keyword type="macro" name="GST_RTP_BUFFER_INIT" link="gst-plugins-base-libs-gstrtpbuffer.html#GST-RTP-BUFFER-INIT:CAPS"/>
-    <keyword type="" name="" link="gst-plugins-base-libs-gstrtcpbuffer.html#id-1.2.9.7.7.3"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gstrtcpbuffer.html#id-1.2.9.7.6.3"/>
     <keyword type="macro" name="GST_RTCP_VALID_MASK" link="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-VALID-MASK:CAPS"/>
     <keyword type="macro" name="GST_RTCP_VALID_VALUE" link="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-VALID-VALUE:CAPS"/>
     <keyword type="function" name="gst_rtcp_buffer_new_take_data ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-buffer-new-take-data"/>
@@ -620,7 +625,7 @@
     <keyword type="enum" name="enum GstRTCPFBType" link="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPFBType"/>
     <keyword type="struct" name="struct GstRTCPBuffer" link="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPBuffer"/>
     <keyword type="macro" name="GST_RTCP_BUFFER_INIT" link="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-BUFFER-INIT:CAPS"/>
-    <keyword type="" name="" link="gst-plugins-base-libs-gstrtppayloads.html#id-1.2.9.8.7.2"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gstrtppayloads.html#id-1.2.9.8.6.2"/>
     <keyword type="macro" name="GST_RTP_PAYLOAD_IS_DYNAMIC()" link="gst-plugins-base-libs-gstrtppayloads.html#GST-RTP-PAYLOAD-IS-DYNAMIC:CAPS"/>
     <keyword type="function" name="gst_rtp_payload_info_for_name ()" link="gst-plugins-base-libs-gstrtppayloads.html#gst-rtp-payload-info-for-name"/>
     <keyword type="function" name="gst_rtp_payload_info_for_pt ()" link="gst-plugins-base-libs-gstrtppayloads.html#gst-rtp-payload-info-for-pt"/>
@@ -695,7 +700,7 @@
     <keyword type="enum" name="enum GstRTSPAuthMethod" link="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPAuthMethod"/>
     <keyword type="enum" name="enum GstRTSPHeaderField" link="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPHeaderField"/>
     <keyword type="enum" name="enum GstRTSPStatusCode" link="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPStatusCode"/>
-    <keyword type="" name="" link="gst-plugins-base-libs-gstrtspextension.html#id-1.2.10.5.6.2"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gstrtspextension.html#id-1.2.10.5.5.2"/>
     <keyword type="struct" name="GstRTSPExtension" link="gst-plugins-base-libs-gstrtspextension.html#GstRTSPExtension"/>
     <keyword type="struct" name="struct GstRTSPExtensionInterface" link="gst-plugins-base-libs-gstrtspextension.html#GstRTSPExtensionInterface"/>
     <keyword type="function" name="gst_rtsp_message_new ()" link="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-new"/>
@@ -716,6 +721,10 @@
     <keyword type="function" name="gst_rtsp_message_take_header ()" link="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-take-header"/>
     <keyword type="function" name="gst_rtsp_message_remove_header ()" link="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-remove-header"/>
     <keyword type="function" name="gst_rtsp_message_get_header ()" link="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-get-header"/>
+    <keyword type="function" name="gst_rtsp_message_add_header_by_name ()" link="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-add-header-by-name" since="1.6"/>
+    <keyword type="function" name="gst_rtsp_message_take_header_by_name ()" link="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-take-header-by-name" since="1.6"/>
+    <keyword type="function" name="gst_rtsp_message_remove_header_by_name ()" link="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-remove-header-by-name" since="1.6"/>
+    <keyword type="function" name="gst_rtsp_message_get_header_by_name ()" link="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-get-header-by-name" since="1.6"/>
     <keyword type="function" name="gst_rtsp_message_append_headers ()" link="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-append-headers"/>
     <keyword type="function" name="gst_rtsp_message_set_body ()" link="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-set-body"/>
     <keyword type="function" name="gst_rtsp_message_take_body ()" link="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-take-body"/>
@@ -738,7 +747,7 @@
     <keyword type="function" name="gst_rtsp_transport_init ()" link="gst-plugins-base-libs-gstrtsptransport.html#gst-rtsp-transport-init"/>
     <keyword type="function" name="gst_rtsp_transport_parse ()" link="gst-plugins-base-libs-gstrtsptransport.html#gst-rtsp-transport-parse"/>
     <keyword type="function" name="gst_rtsp_transport_as_text ()" link="gst-plugins-base-libs-gstrtsptransport.html#gst-rtsp-transport-as-text"/>
-    <keyword type="function" name="gst_rtsp_transport_get_mime ()" link="gst-plugins-base-libs-gstrtsptransport.html#gst-rtsp-transport-get-mime" deprecated="This functions only deals with the GstRTSPTransMode and only"/>
+    <keyword type="function" name="gst_rtsp_transport_get_mime ()" link="gst-plugins-base-libs-gstrtsptransport.html#gst-rtsp-transport-get-mime" deprecated=""/>
     <keyword type="function" name="gst_rtsp_transport_get_manager ()" link="gst-plugins-base-libs-gstrtsptransport.html#gst-rtsp-transport-get-manager"/>
     <keyword type="function" name="gst_rtsp_transport_free ()" link="gst-plugins-base-libs-gstrtsptransport.html#gst-rtsp-transport-free"/>
     <keyword type="enum" name="enum GstRTSPTransMode" link="gst-plugins-base-libs-gstrtsptransport.html#GstRTSPTransMode"/>
@@ -755,7 +764,7 @@
     <keyword type="function" name="gst_rtsp_url_decode_path_components ()" link="gst-plugins-base-libs-gstrtspurl.html#gst-rtsp-url-decode-path-components"/>
     <keyword type="macro" name="GST_RTSP_DEFAULT_PORT" link="gst-plugins-base-libs-gstrtspurl.html#GST-RTSP-DEFAULT-PORT:CAPS"/>
     <keyword type="struct" name="struct GstRTSPUrl" link="gst-plugins-base-libs-gstrtspurl.html#GstRTSPUrl"/>
-    <keyword type="" name="" link="gst-plugins-base-libs-gstsdpmessage.html#id-1.2.11.3.7.2"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gstsdpmessage.html#id-1.2.11.3.6.2"/>
     <keyword type="function" name="gst_sdp_connection_set ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-connection-set" since="1.2"/>
     <keyword type="function" name="gst_sdp_connection_clear ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-connection-clear" since="1.2"/>
     <keyword type="function" name="gst_sdp_bandwidth_set ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-bandwidth-set" since="1.2"/>
@@ -889,45 +898,41 @@
     <keyword type="struct" name="GstSDPAttribute" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPAttribute"/>
     <keyword type="struct" name="GstSDPMedia" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia"/>
     <keyword type="struct" name="GstSDPMessage" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage"/>
-    <keyword type="" name="" link="gst-plugins-base-libs-gstmikey.html#id-1.2.12.3.7.2"/>
-    <keyword type="function" name="gst_mikey_message_new ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-new"/>
-    <keyword type="function" name="gst_mikey_message_new_from_bytes ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-new-from-bytes"/>
-    <keyword type="function" name="gst_mikey_message_new_from_data ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-new-from-data"/>
-    <keyword type="function" name="gst_mikey_message_free ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-free"/>
-    <keyword type="function" name="gst_mikey_message_to_bytes ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-to-bytes"/>
-    <keyword type="function" name="gst_mikey_message_set_info ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-set-info"/>
-    <keyword type="function" name="gst_mikey_message_get_n_cs ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-get-n-cs"/>
-    <keyword type="function" name="gst_mikey_message_get_cs_srtp ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-get-cs-srtp"/>
-    <keyword type="function" name="gst_mikey_message_insert_cs_srtp ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-insert-cs-srtp"/>
-    <keyword type="function" name="gst_mikey_message_remove_cs_srtp ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-remove-cs-srtp"/>
-    <keyword type="function" name="gst_mikey_message_replace_cs_srtp ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-replace-cs-srtp"/>
-    <keyword type="function" name="gst_mikey_message_add_cs_srtp ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-add-cs-srtp"/>
-    <keyword type="function" name="gst_mikey_message_get_n_payloads ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-get-n-payloads"/>
-    <keyword type="function" name="gst_mikey_message_get_payload ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-get-payload"/>
-    <keyword type="function" name="gst_mikey_message_find_payload ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-find-payload"/>
-    <keyword type="function" name="gst_mikey_message_insert_payload ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-insert-payload"/>
-    <keyword type="function" name="gst_mikey_message_remove_payload ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-remove-payload"/>
-    <keyword type="function" name="gst_mikey_message_replace_payload ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-replace-payload"/>
-    <keyword type="function" name="gst_mikey_message_add_payload ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-add-payload"/>
-    <keyword type="function" name="GstMIKEYPayloadClearFunc ()" link="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayloadClearFunc"/>
-    <keyword type="function" name="GstMIKEYPayloadCopyFunc ()" link="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayloadCopyFunc"/>
-    <keyword type="function" name="gst_mikey_payload_new ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-payload-new"/>
-    <keyword type="function" name="gst_mikey_payload_copy ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-payload-copy"/>
-    <keyword type="function" name="gst_mikey_payload_free ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-payload-free"/>
-    <keyword type="function" name="gst_mikey_payload_kemac_set ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-payload-kemac-set"/>
-    <keyword type="function" name="gst_mikey_payload_pke_set ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-payload-pke-set"/>
-    <keyword type="function" name="gst_mikey_message_add_pke ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-add-pke"/>
-    <keyword type="function" name="gst_mikey_payload_t_set ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-payload-t-set"/>
-    <keyword type="function" name="gst_mikey_message_add_t ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-add-t"/>
-    <keyword type="function" name="gst_mikey_message_add_t_now_ntp_utc ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-add-t-now-ntp-utc"/>
-    <keyword type="function" name="gst_mikey_payload_rand_set ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-payload-rand-set"/>
-    <keyword type="function" name="gst_mikey_message_add_rand ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-add-rand"/>
-    <keyword type="function" name="gst_mikey_message_add_rand_len ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-add-rand-len"/>
-    <keyword type="function" name="gst_mikey_payload_sp_set ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-payload-sp-set"/>
-    <keyword type="function" name="gst_mikey_payload_sp_get_n_params ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-payload-sp-get-n-params"/>
-    <keyword type="function" name="gst_mikey_payload_sp_get_param ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-payload-sp-get-param"/>
-    <keyword type="function" name="gst_mikey_payload_sp_add_param ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-payload-sp-add-param"/>
-    <keyword type="function" name="gst_mikey_payload_sp_remove_param ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-payload-sp-remove-param"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gstmikey.html#id-1.2.12.3.6.2"/>
+    <keyword type="function" name="gst_mikey_message_new ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-new" since="1.4"/>
+    <keyword type="function" name="gst_mikey_message_new_from_bytes ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-new-from-bytes" since="1.4"/>
+    <keyword type="function" name="gst_mikey_message_new_from_data ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-new-from-data" since="1.4"/>
+    <keyword type="function" name="gst_mikey_message_to_bytes ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-to-bytes" since="1.4"/>
+    <keyword type="function" name="gst_mikey_message_set_info ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-set-info" since="1.4"/>
+    <keyword type="function" name="gst_mikey_message_get_n_cs ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-get-n-cs" since="1.4"/>
+    <keyword type="function" name="gst_mikey_message_get_cs_srtp ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-get-cs-srtp" since="1.4"/>
+    <keyword type="function" name="gst_mikey_message_insert_cs_srtp ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-insert-cs-srtp" since="1.4"/>
+    <keyword type="function" name="gst_mikey_message_remove_cs_srtp ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-remove-cs-srtp" since="1.4"/>
+    <keyword type="function" name="gst_mikey_message_replace_cs_srtp ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-replace-cs-srtp" since="1.4"/>
+    <keyword type="function" name="gst_mikey_message_add_cs_srtp ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-add-cs-srtp" since="1.4"/>
+    <keyword type="function" name="gst_mikey_message_get_n_payloads ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-get-n-payloads" since="1.4"/>
+    <keyword type="function" name="gst_mikey_message_get_payload ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-get-payload" since="1.4"/>
+    <keyword type="function" name="gst_mikey_message_find_payload ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-find-payload" since="1.4"/>
+    <keyword type="function" name="gst_mikey_message_insert_payload ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-insert-payload" since="1.4"/>
+    <keyword type="function" name="gst_mikey_message_remove_payload ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-remove-payload" since="1.4"/>
+    <keyword type="function" name="gst_mikey_message_replace_payload ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-replace-payload" since="1.4"/>
+    <keyword type="function" name="gst_mikey_message_add_payload ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-add-payload" since="1.4"/>
+    <keyword type="function" name="gst_mikey_payload_new ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-payload-new" since="1.4"/>
+    <keyword type="function" name="gst_mikey_payload_copy ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-payload-copy" since="1.4"/>
+    <keyword type="function" name="gst_mikey_payload_kemac_set ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-payload-kemac-set" since="1.4"/>
+    <keyword type="function" name="gst_mikey_payload_pke_set ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-payload-pke-set" since="1.4"/>
+    <keyword type="function" name="gst_mikey_message_add_pke ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-add-pke" since="1.4"/>
+    <keyword type="function" name="gst_mikey_payload_t_set ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-payload-t-set" since="1.4"/>
+    <keyword type="function" name="gst_mikey_message_add_t ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-add-t" since="1.4"/>
+    <keyword type="function" name="gst_mikey_message_add_t_now_ntp_utc ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-add-t-now-ntp-utc" since="1.4"/>
+    <keyword type="function" name="gst_mikey_payload_rand_set ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-payload-rand-set" since="1.4"/>
+    <keyword type="function" name="gst_mikey_message_add_rand ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-add-rand" since="1.4"/>
+    <keyword type="function" name="gst_mikey_message_add_rand_len ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-add-rand-len" since="1.4"/>
+    <keyword type="function" name="gst_mikey_payload_sp_set ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-payload-sp-set" since="1.4"/>
+    <keyword type="function" name="gst_mikey_payload_sp_get_n_params ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-payload-sp-get-n-params" since="1.4"/>
+    <keyword type="function" name="gst_mikey_payload_sp_get_param ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-payload-sp-get-param" since="1.4"/>
+    <keyword type="function" name="gst_mikey_payload_sp_add_param ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-payload-sp-add-param" since="1.4"/>
+    <keyword type="function" name="gst_mikey_payload_sp_remove_param ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-payload-sp-remove-param" since="1.4"/>
     <keyword type="macro" name="GST_MIKEY_VERSION" link="gst-plugins-base-libs-gstmikey.html#GST-MIKEY-VERSION:CAPS"/>
     <keyword type="enum" name="enum GstMIKEYType" link="gst-plugins-base-libs-gstmikey.html#GstMIKEYType"/>
     <keyword type="struct" name="struct GstMIKEYMessage" link="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage"/>
@@ -948,7 +953,7 @@
     <keyword type="enum" name="enum GstMIKEYSecSRTP" link="gst-plugins-base-libs-gstmikey.html#GstMIKEYSecSRTP"/>
     <keyword type="struct" name="GstMIKEYPayloadSP" link="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayloadSP"/>
     <keyword type="struct" name="GstMIKEYPayloadSPParam" link="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayloadSPParam"/>
-    <keyword type="" name="" link="gst-plugins-base-libs-gsttag.html#id-1.2.13.3.7.2"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gsttag.html#id-1.2.13.3.6.2"/>
     <keyword type="function" name="gst_tag_register_musicbrainz_tags ()" link="gst-plugins-base-libs-gsttag.html#gst-tag-register-musicbrainz-tags"/>
     <keyword type="function" name="gst_tag_freeform_string_to_utf8 ()" link="gst-plugins-base-libs-gsttag.html#gst-tag-freeform-string-to-utf8"/>
     <keyword type="function" name="gst_tag_parse_extended_comment ()" link="gst-plugins-base-libs-gsttag.html#gst-tag-parse-extended-comment"/>
@@ -986,7 +991,7 @@
     <keyword type="macro" name="GST_TAG_IMAGE_VERTICAL_PPI" link="gst-plugins-base-libs-gsttag.html#GST-TAG-IMAGE-VERTICAL-PPI:CAPS"/>
     <keyword type="macro" name="GST_TAG_ID3V2_HEADER_SIZE" link="gst-plugins-base-libs-gsttag.html#GST-TAG-ID3V2-HEADER-SIZE:CAPS"/>
     <keyword type="enum" name="enum GstTagImageType" link="gst-plugins-base-libs-gsttag.html#GstTagImageType"/>
-    <keyword type="" name="" link="gst-plugins-base-libs-gsttagvorbis.html#id-1.2.13.4.6.2"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gsttagvorbis.html#id-1.2.13.4.5.2"/>
     <keyword type="function" name="gst_tag_from_vorbis_tag ()" link="gst-plugins-base-libs-gsttagvorbis.html#gst-tag-from-vorbis-tag"/>
     <keyword type="function" name="gst_tag_to_vorbis_tag ()" link="gst-plugins-base-libs-gsttagvorbis.html#gst-tag-to-vorbis-tag"/>
     <keyword type="function" name="gst_vorbis_tag_add ()" link="gst-plugins-base-libs-gsttagvorbis.html#gst-vorbis-tag-add"/>
@@ -994,7 +999,7 @@
     <keyword type="function" name="gst_tag_list_from_vorbiscomment ()" link="gst-plugins-base-libs-gsttagvorbis.html#gst-tag-list-from-vorbiscomment"/>
     <keyword type="function" name="gst_tag_list_from_vorbiscomment_buffer ()" link="gst-plugins-base-libs-gsttagvorbis.html#gst-tag-list-from-vorbiscomment-buffer"/>
     <keyword type="function" name="gst_tag_list_to_vorbiscomment_buffer ()" link="gst-plugins-base-libs-gsttagvorbis.html#gst-tag-list-to-vorbiscomment-buffer"/>
-    <keyword type="" name="" link="gst-plugins-base-libs-gsttagid3.html#id-1.2.13.5.6.2"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gsttagid3.html#id-1.2.13.5.5.2"/>
     <keyword type="function" name="gst_tag_id3_genre_count ()" link="gst-plugins-base-libs-gsttagid3.html#gst-tag-id3-genre-count"/>
     <keyword type="function" name="gst_tag_id3_genre_get ()" link="gst-plugins-base-libs-gsttagid3.html#gst-tag-id3-genre-get"/>
     <keyword type="function" name="gst_tag_list_new_from_id3v1 ()" link="gst-plugins-base-libs-gsttagid3.html#gst-tag-list-new-from-id3v1"/>
@@ -1011,21 +1016,21 @@
     <keyword type="function" name="gst_tag_list_from_xmp_buffer ()" link="gst-plugins-base-libs-gsttagxmp.html#gst-tag-list-from-xmp-buffer"/>
     <keyword type="function" name="gst_tag_list_to_xmp_buffer ()" link="gst-plugins-base-libs-gsttagxmp.html#gst-tag-list-to-xmp-buffer"/>
     <keyword type="function" name="gst_tag_xmp_list_schemas ()" link="gst-plugins-base-libs-gsttagxmp.html#gst-tag-xmp-list-schemas"/>
-    <keyword type="" name="" link="gst-plugins-base-libs-gsttagxmpwriter.html#id-1.2.13.8.5.2"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gsttagxmpwriter.html#id-1.2.13.8.4.2"/>
     <keyword type="function" name="gst_tag_xmp_writer_add_all_schemas ()" link="gst-plugins-base-libs-gsttagxmpwriter.html#gst-tag-xmp-writer-add-all-schemas"/>
     <keyword type="function" name="gst_tag_xmp_writer_add_schema ()" link="gst-plugins-base-libs-gsttagxmpwriter.html#gst-tag-xmp-writer-add-schema"/>
     <keyword type="function" name="gst_tag_xmp_writer_has_schema ()" link="gst-plugins-base-libs-gsttagxmpwriter.html#gst-tag-xmp-writer-has-schema"/>
     <keyword type="function" name="gst_tag_xmp_writer_remove_schema ()" link="gst-plugins-base-libs-gsttagxmpwriter.html#gst-tag-xmp-writer-remove-schema"/>
     <keyword type="function" name="gst_tag_xmp_writer_remove_all_schemas ()" link="gst-plugins-base-libs-gsttagxmpwriter.html#gst-tag-xmp-writer-remove-all-schemas"/>
     <keyword type="function" name="gst_tag_xmp_writer_tag_list_to_xmp_buffer ()" link="gst-plugins-base-libs-gsttagxmpwriter.html#gst-tag-xmp-writer-tag-list-to-xmp-buffer"/>
-    <keyword type="" name="Deriving from GstTagDemux" link="gst-plugins-base-libs-gsttagdemux.html#id-1.2.13.9.6.2"/>
+    <keyword type="" name="Deriving from GstTagDemux" link="gst-plugins-base-libs-gsttagdemux.html#id-1.2.13.9.5.2"/>
     <keyword type="struct" name="struct GstTagDemux" link="gst-plugins-base-libs-gsttagdemux.html#GstTagDemux"/>
     <keyword type="struct" name="struct GstTagDemuxClass" link="gst-plugins-base-libs-gsttagdemux.html#GstTagDemuxClass"/>
     <keyword type="enum" name="enum GstTagDemuxResult" link="gst-plugins-base-libs-gsttagdemux.html#GstTagDemuxResult"/>
-    <keyword type="" name="Deriving from GstTagMux" link="gst-plugins-base-libs-gsttagmux.html#id-1.2.13.10.6.2"/>
+    <keyword type="" name="Deriving from GstTagMux" link="gst-plugins-base-libs-gsttagmux.html#id-1.2.13.10.5.2"/>
     <keyword type="struct" name="struct GstTagMux" link="gst-plugins-base-libs-gsttagmux.html#GstTagMux"/>
     <keyword type="struct" name="struct GstTagMuxClass" link="gst-plugins-base-libs-gsttagmux.html#GstTagMuxClass"/>
-    <keyword type="" name="" link="gst-plugins-base-libs-gsttaglanguagecodes.html#id-1.2.13.11.6.2"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gsttaglanguagecodes.html#id-1.2.13.11.5.2"/>
     <keyword type="function" name="gst_tag_get_language_codes ()" link="gst-plugins-base-libs-gsttaglanguagecodes.html#gst-tag-get-language-codes"/>
     <keyword type="function" name="gst_tag_get_language_name ()" link="gst-plugins-base-libs-gsttaglanguagecodes.html#gst-tag-get-language-name"/>
     <keyword type="macro" name="gst_tag_get_language_code()" link="gst-plugins-base-libs-gsttaglanguagecodes.html#gst-tag-get-language-code"/>
@@ -1041,7 +1046,7 @@
     <keyword type="function" name="gst_tag_get_license_version ()" link="gst-plugins-base-libs-gsttaglicenses.html#gst-tag-get-license-version"/>
     <keyword type="function" name="gst_tag_get_licenses ()" link="gst-plugins-base-libs-gsttaglicenses.html#gst-tag-get-licenses"/>
     <keyword type="enum" name="enum GstTagLicenseFlags" link="gst-plugins-base-libs-gsttaglicenses.html#GstTagLicenseFlags"/>
-    <keyword type="" name="Linking to this library" link="gst-plugins-base-libs-gstpbutils.html#id-1.2.14.3.6.2"/>
+    <keyword type="" name="Linking to this library" link="gst-plugins-base-libs-gstpbutils.html#id-1.2.14.3.5.2"/>
     <keyword type="function" name="gst_pb_utils_init ()" link="gst-plugins-base-libs-gstpbutils.html#gst-pb-utils-init"/>
     <keyword type="macro" name="GST_PLUGINS_BASE_VERSION_MAJOR" link="gst-plugins-base-libs-gstpluginsbaseversion.html#GST-PLUGINS-BASE-VERSION-MAJOR:CAPS"/>
     <keyword type="macro" name="GST_PLUGINS_BASE_VERSION_MINOR" link="gst-plugins-base-libs-gstpluginsbaseversion.html#GST-PLUGINS-BASE-VERSION-MINOR:CAPS"/>
@@ -1050,7 +1055,7 @@
     <keyword type="macro" name="GST_CHECK_PLUGINS_BASE_VERSION()" link="gst-plugins-base-libs-gstpluginsbaseversion.html#GST-CHECK-PLUGINS-BASE-VERSION:CAPS"/>
     <keyword type="function" name="gst_plugins_base_version ()" link="gst-plugins-base-libs-gstpluginsbaseversion.html#gst-plugins-base-version"/>
     <keyword type="function" name="gst_plugins_base_version_string ()" link="gst-plugins-base-libs-gstpluginsbaseversion.html#gst-plugins-base-version-string"/>
-    <keyword type="" name="" link="gst-plugins-base-libs-gstpbutilscodecutils.html#id-1.2.14.5.6.2"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gstpbutilscodecutils.html#id-1.2.14.5.5.2"/>
     <keyword type="function" name="gst_codec_utils_aac_get_sample_rate_from_index ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-aac-get-sample-rate-from-index"/>
     <keyword type="function" name="gst_codec_utils_aac_get_index_from_sample_rate ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-aac-get-index-from-sample-rate"/>
     <keyword type="function" name="gst_codec_utils_aac_get_profile ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-aac-get-profile"/>
@@ -1068,7 +1073,7 @@
     <keyword type="function" name="gst_codec_utils_mpeg4video_get_profile ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-mpeg4video-get-profile"/>
     <keyword type="function" name="gst_codec_utils_mpeg4video_get_level ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-mpeg4video-get-level"/>
     <keyword type="function" name="gst_codec_utils_mpeg4video_caps_set_level_and_profile ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-mpeg4video-caps-set-level-and-profile"/>
-    <keyword type="" name="" link="gst-plugins-base-libs-gstpbutilsdescriptions.html#id-1.2.14.6.6.2"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gstpbutilsdescriptions.html#id-1.2.14.6.5.2"/>
     <keyword type="function" name="gst_pb_utils_get_source_description ()" link="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-get-source-description"/>
     <keyword type="function" name="gst_pb_utils_get_sink_description ()" link="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-get-sink-description"/>
     <keyword type="function" name="gst_pb_utils_get_decoder_description ()" link="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-get-decoder-description"/>
@@ -1076,7 +1081,7 @@
     <keyword type="function" name="gst_pb_utils_get_element_description ()" link="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-get-element-description"/>
     <keyword type="function" name="gst_pb_utils_add_codec_description_to_tag_list ()" link="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-add-codec-description-to-tag-list"/>
     <keyword type="function" name="gst_pb_utils_get_codec_description ()" link="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-get-codec-description"/>
-    <keyword type="" name="" link="gst-plugins-base-libs-gstpbutilsmissingplugins.html#id-1.2.14.7.6.2"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gstpbutilsmissingplugins.html#id-1.2.14.7.5.2"/>
     <keyword type="function" name="gst_missing_plugin_message_get_installer_detail ()" link="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-plugin-message-get-installer-detail"/>
     <keyword type="function" name="gst_missing_plugin_message_get_description ()" link="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-plugin-message-get-description"/>
     <keyword type="function" name="gst_is_missing_plugin_message ()" link="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-is-missing-plugin-message"/>
@@ -1090,7 +1095,7 @@
     <keyword type="function" name="gst_missing_element_installer_detail_new ()" link="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-element-installer-detail-new"/>
     <keyword type="function" name="gst_missing_decoder_installer_detail_new ()" link="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-decoder-installer-detail-new"/>
     <keyword type="function" name="gst_missing_encoder_installer_detail_new ()" link="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-encoder-installer-detail-new"/>
-    <keyword type="" name="Overview" link="gst-plugins-base-libs-gstpbutilsinstallplugins.html#id-1.2.14.8.7.2"/>
+    <keyword type="" name="Overview" link="gst-plugins-base-libs-gstpbutilsinstallplugins.html#id-1.2.14.8.6.2"/>
     <keyword type="function" name="GstInstallPluginsResultFunc ()" link="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsResultFunc"/>
     <keyword type="function" name="gst_install_plugins_async ()" link="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-async"/>
     <keyword type="function" name="gst_install_plugins_sync ()" link="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-sync"/>
@@ -1100,6 +1105,9 @@
     <keyword type="function" name="gst_install_plugins_context_new ()" link="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-context-new"/>
     <keyword type="function" name="gst_install_plugins_context_free ()" link="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-context-free"/>
     <keyword type="function" name="gst_install_plugins_context_set_xid ()" link="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-context-set-xid"/>
+    <keyword type="function" name="gst_install_plugins_context_set_confirm_search ()" link="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-context-set-confirm-search" since="1.6"/>
+    <keyword type="function" name="gst_install_plugins_context_set_desktop_id ()" link="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-context-set-desktop-id" since="1.6"/>
+    <keyword type="function" name="gst_install_plugins_context_set_startup_notification_id ()" link="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-context-set-startup-notification-id" since="1.6"/>
     <keyword type="enum" name="enum GstInstallPluginsReturn" link="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsReturn"/>
     <keyword type="struct" name="GstInstallPluginsContext" link="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsContext"/>
     <keyword type="function" name="gst_discoverer_new ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-new"/>
@@ -1169,7 +1177,8 @@
     <keyword type="signal" name="The “starting” signal" link="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer-starting"/>
     <keyword type="" name="" link="gst-plugins-base-libs-encoding-profile.html#id-1.2.14.10.13.2"/>
     <keyword type="" name="Example: Creating a profile" link="gst-plugins-base-libs-encoding-profile.html#id-1.2.14.10.13.3"/>
-    <keyword type="" name="Example: Listing categories, targets and profiles" link="gst-plugins-base-libs-encoding-profile.html#id-1.2.14.10.13.4"/>
+    <keyword type="" name="Example: Using an encoder preset with a profile" link="gst-plugins-base-libs-encoding-profile.html#id-1.2.14.10.13.4"/>
+    <keyword type="" name="Example: Listing categories, targets and profiles" link="gst-plugins-base-libs-encoding-profile.html#id-1.2.14.10.13.5"/>
     <keyword type="macro" name="gst_encoding_profile_unref()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-unref"/>
     <keyword type="macro" name="gst_encoding_profile_ref()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-ref"/>
     <keyword type="function" name="gst_encoding_profile_find ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-find"/>
@@ -1227,8 +1236,9 @@
     <keyword type="macro" name="GST_ENCODING_CATEGORY_CAPTURE" link="gst-plugins-base-libs-encoding-profile.html#GST-ENCODING-CATEGORY-CAPTURE:CAPS"/>
     <keyword type="struct" name="GstEncodingTarget" link="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget-struct"/>
     <keyword type="property" name="The “restriction-caps” property" link="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile--restriction-caps"/>
-    <keyword type="" name="" link="gst-plugins-base-libs-gstvideo.html#id-1.2.15.3.7.2"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gstvideo.html#id-1.2.15.3.6.2"/>
     <keyword type="function" name="gst_video_calculate_display_ratio ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-calculate-display-ratio"/>
+    <keyword type="function" name="gst_video_guess_framerate ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-guess-framerate" since="1.6"/>
     <keyword type="function" name="GstVideoConvertSampleCallback ()" link="gst-plugins-base-libs-gstvideo.html#GstVideoConvertSampleCallback"/>
     <keyword type="function" name="gst_video_convert_sample ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-convert-sample"/>
     <keyword type="function" name="gst_video_convert_sample_async ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-convert-sample-async"/>
@@ -1240,8 +1250,6 @@
     <keyword type="function" name="gst_video_event_new_upstream_force_key_unit ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-event-new-upstream-force-key-unit"/>
     <keyword type="function" name="gst_video_event_parse_upstream_force_key_unit ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-event-parse-upstream-force-key-unit"/>
     <keyword type="function" name="gst_video_event_is_force_key_unit ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-event-is-force-key-unit"/>
-    <keyword type="function" name="gst_video_chroma_from_string ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-chroma-from-string"/>
-    <keyword type="function" name="gst_video_chroma_to_string ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-chroma-to-string"/>
     <keyword type="function" name="GstVideoFormatUnpack ()" link="gst-plugins-base-libs-gstvideo.html#GstVideoFormatUnpack"/>
     <keyword type="function" name="GstVideoFormatPack ()" link="gst-plugins-base-libs-gstvideo.html#GstVideoFormatPack"/>
     <keyword type="macro" name="GST_VIDEO_FORMAT_INFO_FORMAT()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-FORMAT:CAPS"/>
@@ -1280,10 +1288,13 @@
     <keyword type="function" name="gst_video_format_to_string ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-format-to-string"/>
     <keyword type="function" name="gst_video_format_get_info ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-format-get-info"/>
     <keyword type="macro" name="GST_VIDEO_CAPS_MAKE()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CAPS-MAKE:CAPS"/>
+    <keyword type="function" name="gst_video_color_range_offsets ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-color-range-offsets"/>
+    <keyword type="function" name="gst_video_color_matrix_get_Kr_Kb ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-color-matrix-get-Kr-Kb" since="1.6"/>
+    <keyword type="function" name="gst_video_color_transfer_decode ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-color-transfer-decode" since="1.6"/>
+    <keyword type="function" name="gst_video_color_transfer_encode ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-color-transfer-encode" since="1.6"/>
     <keyword type="function" name="gst_video_colorimetry_matches ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-colorimetry-matches"/>
     <keyword type="function" name="gst_video_colorimetry_from_string ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-colorimetry-from-string"/>
     <keyword type="function" name="gst_video_colorimetry_to_string ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-colorimetry-to-string"/>
-    <keyword type="function" name="gst_video_color_range_offsets ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-color-range-offsets"/>
     <keyword type="macro" name="GST_VIDEO_INFO_FORMAT()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-FORMAT:CAPS"/>
     <keyword type="macro" name="GST_VIDEO_INFO_NAME()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-NAME:CAPS"/>
     <keyword type="macro" name="GST_VIDEO_INFO_IS_YUV()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-IS-YUV:CAPS"/>
@@ -1353,13 +1364,20 @@
     <keyword type="macro" name="GST_VIDEO_FRAME_COMP_PLANE()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FRAME-COMP-PLANE:CAPS"/>
     <keyword type="macro" name="GST_VIDEO_FRAME_COMP_PSTRIDE()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FRAME-COMP-PSTRIDE:CAPS"/>
     <keyword type="macro" name="GST_VIDEO_FRAME_COMP_POFFSET()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FRAME-COMP-POFFSET:CAPS"/>
-    <keyword type="function" name="gst_video_tile_get_index ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-tile-get-index"/>
+    <keyword type="function" name="gst_video_tile_get_index ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-tile-get-index" since="1.4"/>
     <keyword type="macro" name="GST_VIDEO_TILE_MAKE_MODE()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-TILE-MAKE-MODE:CAPS"/>
     <keyword type="macro" name="GST_VIDEO_TILE_MODE_TYPE()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-TILE-MODE-TYPE:CAPS"/>
     <keyword type="macro" name="GST_VIDEO_TILE_MODE_IS_INDEXED()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-TILE-MODE-IS-INDEXED:CAPS"/>
     <keyword type="macro" name="GST_VIDEO_TILE_MAKE_STRIDE()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-TILE-MAKE-STRIDE:CAPS"/>
     <keyword type="macro" name="GST_VIDEO_TILE_X_TILES()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-TILE-X-TILES:CAPS"/>
     <keyword type="macro" name="GST_VIDEO_TILE_Y_TILES()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-TILE-Y-TILES:CAPS"/>
+    <keyword type="function" name="gst_video_blend ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-blend"/>
+    <keyword type="function" name="gst_video_blend_scale_linear_RGBA ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-blend-scale-linear-RGBA"/>
+    <keyword type="function" name="gst_video_converter_new ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-converter-new" since="1.6"/>
+    <keyword type="function" name="gst_video_converter_free ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-converter-free" since="1.6"/>
+    <keyword type="function" name="gst_video_converter_get_config ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-converter-get-config"/>
+    <keyword type="function" name="gst_video_converter_set_config ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-converter-set-config" since="1.6"/>
+    <keyword type="function" name="gst_video_converter_frame ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-converter-frame" since="1.6"/>
     <keyword type="struct" name="struct GstVideoAlignment" link="gst-plugins-base-libs-gstvideo.html#GstVideoAlignment"/>
     <keyword type="macro" name="GST_META_TAG_VIDEO_STR" link="gst-plugins-base-libs-gstvideo.html#GST-META-TAG-VIDEO-STR:CAPS" since="1.2"/>
     <keyword type="macro" name="GST_META_TAG_VIDEO_ORIENTATION_STR" link="gst-plugins-base-libs-gstvideo.html#GST-META-TAG-VIDEO-ORIENTATION-STR:CAPS" since="1.2"/>
@@ -1369,7 +1387,6 @@
     <keyword type="macro" name="GST_VIDEO_MAX_PLANES" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-MAX-PLANES:CAPS"/>
     <keyword type="macro" name="GST_VIDEO_MAX_COMPONENTS" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-MAX-COMPONENTS:CAPS"/>
     <keyword type="struct" name="struct GstVideoFormatInfo" link="gst-plugins-base-libs-gstvideo.html#GstVideoFormatInfo"/>
-    <keyword type="enum" name="enum GstVideoChromaSite" link="gst-plugins-base-libs-gstvideo.html#GstVideoChromaSite"/>
     <keyword type="enum" name="enum GstVideoFormatFlags" link="gst-plugins-base-libs-gstvideo.html#GstVideoFormatFlags"/>
     <keyword type="enum" name="enum GstVideoPackFlags" link="gst-plugins-base-libs-gstvideo.html#GstVideoPackFlags"/>
     <keyword type="macro" name="GST_VIDEO_SIZE_RANGE" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-SIZE-RANGE:CAPS"/>
@@ -1377,8 +1394,8 @@
     <keyword type="macro" name="GST_VIDEO_FORMATS_ALL" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMATS-ALL:CAPS"/>
     <keyword type="enum" name="enum GstVideoColorRange" link="gst-plugins-base-libs-gstvideo.html#GstVideoColorRange"/>
     <keyword type="enum" name="enum GstVideoColorMatrix" link="gst-plugins-base-libs-gstvideo.html#GstVideoColorMatrix"/>
-    <keyword type="enum" name="enum GstVideoTransferFunction" link="gst-plugins-base-libs-gstvideo.html#GstVideoTransferFunction"/>
     <keyword type="enum" name="enum GstVideoColorPrimaries" link="gst-plugins-base-libs-gstvideo.html#GstVideoColorPrimaries"/>
+    <keyword type="enum" name="enum GstVideoTransferFunction" link="gst-plugins-base-libs-gstvideo.html#GstVideoTransferFunction"/>
     <keyword type="struct" name="GstVideoColorimetry" link="gst-plugins-base-libs-gstvideo.html#GstVideoColorimetry"/>
     <keyword type="struct" name="struct GstVideoInfo" link="gst-plugins-base-libs-gstvideo.html#GstVideoInfo"/>
     <keyword type="enum" name="enum GstVideoInterlaceMode" link="gst-plugins-base-libs-gstvideo.html#GstVideoInterlaceMode"/>
@@ -1388,6 +1405,7 @@
     <keyword type="enum" name="enum GstVideoBufferFlags" link="gst-plugins-base-libs-gstvideo.html#GstVideoBufferFlags"/>
     <keyword type="enum" name="enum GstVideoTileType" link="gst-plugins-base-libs-gstvideo.html#GstVideoTileType"/>
     <keyword type="enum" name="enum GstVideoTileMode" link="gst-plugins-base-libs-gstvideo.html#GstVideoTileMode"/>
+    <keyword type="struct" name="GstVideoConverter" link="gst-plugins-base-libs-gstvideo.html#GstVideoConverter"/>
     <keyword type="function" name="gst_video_meta_map ()" link="gst-plugins-base-libs-gstvideometa.html#gst-video-meta-map"/>
     <keyword type="function" name="gst_video_meta_unmap ()" link="gst-plugins-base-libs-gstvideometa.html#gst-video-meta-unmap"/>
     <keyword type="function" name="gst_video_meta_get_info ()" link="gst-plugins-base-libs-gstvideometa.html#gst-video-meta-get-info"/>
@@ -1411,7 +1429,7 @@
     <keyword type="struct" name="GstVideoRegionOfInterestMeta" link="gst-plugins-base-libs-gstvideometa.html#GstVideoRegionOfInterestMeta"/>
     <keyword type="macro" name="GST_BUFFER_POOL_OPTION_VIDEO_GL_TEXTURE_UPLOAD_META" link="gst-plugins-base-libs-gstvideometa.html#GST-BUFFER-POOL-OPTION-VIDEO-GL-TEXTURE-UPLOAD-META:CAPS" since="1.2.2"/>
     <keyword type="struct" name="struct GstVideoGLTextureUploadMeta" link="gst-plugins-base-libs-gstvideometa.html#GstVideoGLTextureUploadMeta"/>
-    <keyword type="" name="" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#id-1.2.15.5.7.2"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#id-1.2.15.5.6.2"/>
     <keyword type="function" name="gst_video_overlay_composition_new ()" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-new"/>
     <keyword type="function" name="gst_video_overlay_composition_ref ()" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-ref"/>
     <keyword type="function" name="gst_video_overlay_composition_unref ()" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-unref"/>
@@ -1450,7 +1468,43 @@
     <keyword type="" name="" link="gst-plugins-base-libs-gstvideofilter.html#id-1.2.15.6.7.2"/>
     <keyword type="struct" name="struct GstVideoFilter" link="gst-plugins-base-libs-gstvideofilter.html#GstVideoFilter-struct"/>
     <keyword type="struct" name="struct GstVideoFilterClass" link="gst-plugins-base-libs-gstvideofilter.html#GstVideoFilterClass"/>
-    <keyword type="" name="" link="gst-plugins-base-libs-gstvideosink.html#id-1.2.15.7.9.2"/>
+    <keyword type="function" name="gst_video_dither_free ()" link="gst-plugins-base-libs-GstVideoDither.html#gst-video-dither-free"/>
+    <keyword type="function" name="gst_video_dither_line ()" link="gst-plugins-base-libs-GstVideoDither.html#gst-video-dither-line"/>
+    <keyword type="function" name="gst_video_dither_new ()" link="gst-plugins-base-libs-GstVideoDither.html#gst-video-dither-new"/>
+    <keyword type="struct" name="GstVideoDither" link="gst-plugins-base-libs-GstVideoDither.html#GstVideoDither"/>
+    <keyword type="enum" name="enum GstVideoDitherFlags" link="gst-plugins-base-libs-GstVideoDither.html#GstVideoDitherFlags"/>
+    <keyword type="enum" name="enum GstVideoDitherMethod" link="gst-plugins-base-libs-GstVideoDither.html#GstVideoDitherMethod"/>
+    <keyword type="function" name="gst_video_chroma_from_string ()" link="gst-plugins-base-libs-GstVideoChroma.html#gst-video-chroma-from-string"/>
+    <keyword type="function" name="gst_video_chroma_to_string ()" link="gst-plugins-base-libs-GstVideoChroma.html#gst-video-chroma-to-string"/>
+    <keyword type="function" name="gst_video_chroma_resample ()" link="gst-plugins-base-libs-GstVideoChroma.html#gst-video-chroma-resample"/>
+    <keyword type="function" name="gst_video_chroma_resample_free ()" link="gst-plugins-base-libs-GstVideoChroma.html#gst-video-chroma-resample-free"/>
+    <keyword type="function" name="gst_video_chroma_resample_get_info ()" link="gst-plugins-base-libs-GstVideoChroma.html#gst-video-chroma-resample-get-info"/>
+    <keyword type="function" name="gst_video_chroma_resample_new ()" link="gst-plugins-base-libs-GstVideoChroma.html#gst-video-chroma-resample-new"/>
+    <keyword type="enum" name="enum GstVideoChromaSite" link="gst-plugins-base-libs-GstVideoChroma.html#GstVideoChromaSite"/>
+    <keyword type="enum" name="enum GstVideoChromaFlags" link="gst-plugins-base-libs-GstVideoChroma.html#GstVideoChromaFlags"/>
+    <keyword type="enum" name="enum GstVideoChromaMethod" link="gst-plugins-base-libs-GstVideoChroma.html#GstVideoChromaMethod"/>
+    <keyword type="struct" name="GstVideoChromaResample" link="gst-plugins-base-libs-GstVideoChroma.html#GstVideoChromaResample"/>
+    <keyword type="function" name="gst_video_resampler_clear ()" link="gst-plugins-base-libs-GstVideoResampler.html#gst-video-resampler-clear" since="1.6"/>
+    <keyword type="function" name="gst_video_resampler_init ()" link="gst-plugins-base-libs-GstVideoResampler.html#gst-video-resampler-init"/>
+    <keyword type="struct" name="struct GstVideoResampler" link="gst-plugins-base-libs-GstVideoResampler.html#GstVideoResampler" since="1.6"/>
+    <keyword type="enum" name="enum GstVideoResamplerFlags" link="gst-plugins-base-libs-GstVideoResampler.html#GstVideoResamplerFlags" since="1.6"/>
+    <keyword type="enum" name="enum GstVideoResamplerMethod" link="gst-plugins-base-libs-GstVideoResampler.html#GstVideoResamplerMethod" since="1.6"/>
+    <keyword type="macro" name="GST_VIDEO_RESAMPLER_OPT_CUBIC_B" link="gst-plugins-base-libs-GstVideoResampler.html#GST-VIDEO-RESAMPLER-OPT-CUBIC-B:CAPS"/>
+    <keyword type="macro" name="GST_VIDEO_RESAMPLER_OPT_CUBIC_C" link="gst-plugins-base-libs-GstVideoResampler.html#GST-VIDEO-RESAMPLER-OPT-CUBIC-C:CAPS"/>
+    <keyword type="macro" name="GST_VIDEO_RESAMPLER_OPT_ENVELOPE" link="gst-plugins-base-libs-GstVideoResampler.html#GST-VIDEO-RESAMPLER-OPT-ENVELOPE:CAPS"/>
+    <keyword type="macro" name="GST_VIDEO_RESAMPLER_OPT_MAX_TAPS" link="gst-plugins-base-libs-GstVideoResampler.html#GST-VIDEO-RESAMPLER-OPT-MAX-TAPS:CAPS"/>
+    <keyword type="macro" name="GST_VIDEO_RESAMPLER_OPT_SHARPEN" link="gst-plugins-base-libs-GstVideoResampler.html#GST-VIDEO-RESAMPLER-OPT-SHARPEN:CAPS"/>
+    <keyword type="macro" name="GST_VIDEO_RESAMPLER_OPT_SHARPNESS" link="gst-plugins-base-libs-GstVideoResampler.html#GST-VIDEO-RESAMPLER-OPT-SHARPNESS:CAPS"/>
+    <keyword type="function" name="gst_video_scaler_2d ()" link="gst-plugins-base-libs-GstVideoScaler.html#gst-video-scaler-2d"/>
+    <keyword type="function" name="gst_video_scaler_combine_packed_YUV ()" link="gst-plugins-base-libs-GstVideoScaler.html#gst-video-scaler-combine-packed-YUV" since="1.6"/>
+    <keyword type="function" name="gst_video_scaler_free ()" link="gst-plugins-base-libs-GstVideoScaler.html#gst-video-scaler-free"/>
+    <keyword type="function" name="gst_video_scaler_get_coeff ()" link="gst-plugins-base-libs-GstVideoScaler.html#gst-video-scaler-get-coeff"/>
+    <keyword type="function" name="gst_video_scaler_horizontal ()" link="gst-plugins-base-libs-GstVideoScaler.html#gst-video-scaler-horizontal"/>
+    <keyword type="function" name="gst_video_scaler_new ()" link="gst-plugins-base-libs-GstVideoScaler.html#gst-video-scaler-new"/>
+    <keyword type="function" name="gst_video_scaler_vertical ()" link="gst-plugins-base-libs-GstVideoScaler.html#gst-video-scaler-vertical"/>
+    <keyword type="struct" name="GstVideoScaler" link="gst-plugins-base-libs-GstVideoScaler.html#GstVideoScaler"/>
+    <keyword type="enum" name="enum GstVideoScalerFlags" link="gst-plugins-base-libs-GstVideoScaler.html#GstVideoScalerFlags"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gstvideosink.html#id-1.2.15.11.9.2"/>
     <keyword type="macro" name="GST_VIDEO_SINK_HEIGHT()" link="gst-plugins-base-libs-gstvideosink.html#GST-VIDEO-SINK-HEIGHT:CAPS"/>
     <keyword type="macro" name="GST_VIDEO_SINK_PAD()" link="gst-plugins-base-libs-gstvideosink.html#GST-VIDEO-SINK-PAD:CAPS"/>
     <keyword type="macro" name="GST_VIDEO_SINK_WIDTH()" link="gst-plugins-base-libs-gstvideosink.html#GST-VIDEO-SINK-WIDTH:CAPS"/>
@@ -1459,7 +1513,7 @@
     <keyword type="struct" name="struct GstVideoSinkClass" link="gst-plugins-base-libs-gstvideosink.html#GstVideoSinkClass"/>
     <keyword type="struct" name="struct GstVideoRectangle" link="gst-plugins-base-libs-gstvideosink.html#GstVideoRectangle"/>
     <keyword type="property" name="The “show-preroll-frame” property" link="gst-plugins-base-libs-gstvideosink.html#GstVideoSink--show-preroll-frame"/>
-    <keyword type="" name="" link="gst-plugins-base-libs-gstcolorbalance.html#id-1.2.15.8.9.2"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gstcolorbalance.html#id-1.2.15.12.9.2"/>
     <keyword type="function" name="gst_color_balance_list_channels ()" link="gst-plugins-base-libs-gstcolorbalance.html#gst-color-balance-list-channels"/>
     <keyword type="function" name="gst_color_balance_get_value ()" link="gst-plugins-base-libs-gstcolorbalance.html#gst-color-balance-get-value"/>
     <keyword type="function" name="gst_color_balance_set_value ()" link="gst-plugins-base-libs-gstcolorbalance.html#gst-color-balance-set-value"/>
@@ -1469,7 +1523,7 @@
     <keyword type="struct" name="struct GstColorBalanceInterface" link="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalanceInterface"/>
     <keyword type="enum" name="enum GstColorBalanceType" link="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalanceType"/>
     <keyword type="signal" name="The “value-changed” signal" link="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance-value-changed"/>
-    <keyword type="" name="" link="gst-plugins-base-libs-gstcolorbalancechannel.html#id-1.2.15.9.8.2"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gstcolorbalancechannel.html#id-1.2.15.13.8.2"/>
     <keyword type="struct" name="struct GstColorBalanceChannel" link="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannel-struct"/>
     <keyword type="struct" name="struct GstColorBalanceChannelClass" link="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannelClass"/>
     <keyword type="signal" name="The “value-changed” signal" link="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannel-value-changed"/>
@@ -1483,10 +1537,10 @@
     <keyword type="function" name="gst_video_orientation_set_vflip ()" link="gst-plugins-base-libs-gstvideoorientation.html#gst-video-orientation-set-vflip"/>
     <keyword type="struct" name="GstVideoOrientation" link="gst-plugins-base-libs-gstvideoorientation.html#GstVideoOrientation-struct"/>
     <keyword type="struct" name="struct GstVideoOrientationInterface" link="gst-plugins-base-libs-gstvideoorientation.html#GstVideoOrientationInterface"/>
-    <keyword type="" name="" link="gst-plugins-base-libs-gstvideooverlay.html#id-1.2.15.11.8.2"/>
-    <keyword type="" name="Two basic usage scenarios" link="gst-plugins-base-libs-gstvideooverlay.html#id-1.2.15.11.8.3"/>
-    <keyword type="" name="GstVideoOverlay and Gtk+" link="gst-plugins-base-libs-gstvideooverlay.html#id-1.2.15.11.8.4"/>
-    <keyword type="" name="GstVideoOverlay and Qt" link="gst-plugins-base-libs-gstvideooverlay.html#id-1.2.15.11.8.5"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gstvideooverlay.html#id-1.2.15.15.8.2"/>
+    <keyword type="" name="Two basic usage scenarios" link="gst-plugins-base-libs-gstvideooverlay.html#id-1.2.15.15.8.3"/>
+    <keyword type="" name="GstVideoOverlay and Gtk+" link="gst-plugins-base-libs-gstvideooverlay.html#id-1.2.15.15.8.4"/>
+    <keyword type="" name="GstVideoOverlay and Qt" link="gst-plugins-base-libs-gstvideooverlay.html#id-1.2.15.15.8.5"/>
     <keyword type="function" name="gst_video_overlay_got_window_handle ()" link="gst-plugins-base-libs-gstvideooverlay.html#gst-video-overlay-got-window-handle"/>
     <keyword type="function" name="gst_video_overlay_set_window_handle ()" link="gst-plugins-base-libs-gstvideooverlay.html#gst-video-overlay-set-window-handle"/>
     <keyword type="function" name="gst_video_overlay_prepare_window_handle ()" link="gst-plugins-base-libs-gstvideooverlay.html#gst-video-overlay-prepare-window-handle"/>
diff --git a/docs/libs/html/gst-plugins-base-libs-GstVideoChroma.html b/docs/libs/html/gst-plugins-base-libs-GstVideoChroma.html
new file mode 100644
index 0000000..371c5d7
--- /dev/null
+++ b/docs/libs/html/gst-plugins-base-libs-GstVideoChroma.html
@@ -0,0 +1,512 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GStreamer Base Plugins 1.0 Library Reference Manual: GstVideoChroma</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
+<link rel="up" href="gstreamer-video.html" title="Video Library">
+<link rel="prev" href="gst-plugins-base-libs-GstVideoDither.html" title="GstVideoDither">
+<link rel="next" href="gst-plugins-base-libs-GstVideoResampler.html" title="GstVideoResampler">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-GstVideoChroma.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="gstreamer-video.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="gst-plugins-base-libs-GstVideoDither.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-base-libs-GstVideoResampler.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="gst-plugins-base-libs-GstVideoChroma"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="gst-plugins-base-libs-GstVideoChroma.top_of_page"></a>GstVideoChroma</span></h2>
+<p>GstVideoChroma — Functions and utility object for operating on chroma video planes</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-GstVideoChroma.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">
+<a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#GstVideoChromaSite" title="enum GstVideoChromaSite"><span class="returnvalue">GstVideoChromaSite</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#gst-video-chroma-from-string" title="gst_video_chroma_from_string ()">gst_video_chroma_from_string</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#gst-video-chroma-to-string" title="gst_video_chroma_to_string ()">gst_video_chroma_to_string</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#gst-video-chroma-resample" title="gst_video_chroma_resample ()">gst_video_chroma_resample</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#gst-video-chroma-resample-free" title="gst_video_chroma_resample_free ()">gst_video_chroma_resample_free</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#gst-video-chroma-resample-get-info" title="gst_video_chroma_resample_get_info ()">gst_video_chroma_resample_get_info</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#GstVideoChromaResample" title="GstVideoChromaResample"><span class="returnvalue">GstVideoChromaResample</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#gst-video-chroma-resample-new" title="gst_video_chroma_resample_new ()">gst_video_chroma_resample_new</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-GstVideoChroma.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#GstVideoChromaSite" title="enum GstVideoChromaSite">GstVideoChromaSite</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#GstVideoChromaFlags" title="enum GstVideoChromaFlags">GstVideoChromaFlags</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#GstVideoChromaMethod" title="enum GstVideoChromaMethod">GstVideoChromaMethod</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#GstVideoChromaResample" title="GstVideoChromaResample">GstVideoChromaResample</a></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-GstVideoChroma.includes"></a><h2>Includes</h2>
+<pre class="synopsis">#include &lt;gst/video/video-chroma.h&gt;
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-GstVideoChroma.description"></a><h2>Description</h2>
+<p>The functions <a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#gst-video-chroma-from-string" title="gst_video_chroma_from_string ()"><code class="function">gst_video_chroma_from_string()</code></a> and <a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#gst-video-chroma-to-string" title="gst_video_chroma_to_string ()"><code class="function">gst_video_chroma_to_string()</code></a> convert
+between <a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#GstVideoChromaSite" title="enum GstVideoChromaSite"><span class="type">GstVideoChromaSite</span></a> and string descriptions.</p>
+<p><a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#GstVideoChromaResample" title="GstVideoChromaResample"><span class="type">GstVideoChromaResample</span></a> is a utility object for resampling chroma planes
+and converting between different chroma sampling sitings.</p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-GstVideoChroma.functions_details"></a><h2>Functions</h2>
+<div class="refsect2">
+<a name="gst-video-chroma-from-string"></a><h3>gst_video_chroma_from_string ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#GstVideoChromaSite" title="enum GstVideoChromaSite"><span class="returnvalue">GstVideoChromaSite</span></a>
+gst_video_chroma_from_string (<em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *s</code></em>);</pre>
+<p>Convert <em class="parameter"><code>s</code></em>
+ to a <a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#GstVideoChromaSite" title="enum GstVideoChromaSite"><span class="type">GstVideoChromaSite</span></a></p>
+<div class="refsect3">
+<a name="id-1.2.15.8.7.2.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>s</p></td>
+<td class="parameter_description"><p>a chromasite string</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.2.15.8.7.2.6"></a><h4>Returns</h4>
+<p> a <a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#GstVideoChromaSite" title="enum GstVideoChromaSite"><span class="type">GstVideoChromaSite</span></a> or <a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#GST-VIDEO-CHROMA-SITE-UNKNOWN:CAPS"><code class="literal">GST_VIDEO_CHROMA_SITE_UNKNOWN</code></a> when <em class="parameter"><code>s</code></em>
+does
+not contain a valid chroma description.</p>
+<p></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-chroma-to-string"></a><h3>gst_video_chroma_to_string ()</h3>
+<pre class="programlisting">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+gst_video_chroma_to_string (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#GstVideoChromaSite" title="enum GstVideoChromaSite"><span class="type">GstVideoChromaSite</span></a> site</code></em>);</pre>
+<p>Converts <em class="parameter"><code>site</code></em>
+ to its string representation.</p>
+<div class="refsect3">
+<a name="id-1.2.15.8.7.3.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>site</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#GstVideoChromaSite" title="enum GstVideoChromaSite"><span class="type">GstVideoChromaSite</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.2.15.8.7.3.6"></a><h4>Returns</h4>
+<p> a string describing <em class="parameter"><code>site</code></em>
+.</p>
+<p></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-chroma-resample"></a><h3>gst_video_chroma_resample ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gst_video_chroma_resample (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#GstVideoChromaResample" title="GstVideoChromaResample"><span class="type">GstVideoChromaResample</span></a> *resample</code></em>,
+                           <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> lines[]</code></em>,
+                           <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> width</code></em>);</pre>
+<p>Perform resampling of <em class="parameter"><code>width</code></em>
+ chroma pixels in <em class="parameter"><code>lines</code></em>
+.</p>
+<div class="refsect3">
+<a name="id-1.2.15.8.7.4.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>resample</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#GstVideoChromaResample" title="GstVideoChromaResample"><span class="type">GstVideoChromaResample</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>lines</p></td>
+<td class="parameter_description"><p>pixel lines</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>width</p></td>
+<td class="parameter_description"><p>the number of pixels on one line</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-chroma-resample-free"></a><h3>gst_video_chroma_resample_free ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gst_video_chroma_resample_free (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#GstVideoChromaResample" title="GstVideoChromaResample"><span class="type">GstVideoChromaResample</span></a> *resample</code></em>);</pre>
+<p>Free <em class="parameter"><code>resample</code></em>
+</p>
+<div class="refsect3">
+<a name="id-1.2.15.8.7.5.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>resample</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#GstVideoChromaResample" title="GstVideoChromaResample"><span class="type">GstVideoChromaResample</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-chroma-resample-get-info"></a><h3>gst_video_chroma_resample_get_info ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gst_video_chroma_resample_get_info (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#GstVideoChromaResample" title="GstVideoChromaResample"><span class="type">GstVideoChromaResample</span></a> *resample</code></em>,
+                                    <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *n_lines</code></em>,
+                                    <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *offset</code></em>);</pre>
+<p>The resampler must be fed <em class="parameter"><code>n_lines</code></em>
+ at a time. The first line should be
+at <em class="parameter"><code>offset</code></em>
+.</p>
+<div class="refsect3">
+<a name="id-1.2.15.8.7.6.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>resample</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#GstVideoChromaResample" title="GstVideoChromaResample"><span class="type">GstVideoChromaResample</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>n_lines</p></td>
+<td class="parameter_description"><p>the number of input lines</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>offset</p></td>
+<td class="parameter_description"><p>the first line</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-chroma-resample-new"></a><h3>gst_video_chroma_resample_new ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#GstVideoChromaResample" title="GstVideoChromaResample"><span class="returnvalue">GstVideoChromaResample</span></a> *
+gst_video_chroma_resample_new (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#GstVideoChromaMethod" title="enum GstVideoChromaMethod"><span class="type">GstVideoChromaMethod</span></a> method</code></em>,
+                               <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#GstVideoChromaSite" title="enum GstVideoChromaSite"><span class="type">GstVideoChromaSite</span></a> site</code></em>,
+                               <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#GstVideoChromaFlags" title="enum GstVideoChromaFlags"><span class="type">GstVideoChromaFlags</span></a> flags</code></em>,
+                               <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> format</code></em>,
+                               <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> h_factor</code></em>,
+                               <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> v_factor</code></em>);</pre>
+<p>Create a new resampler object for the given parameters. When <em class="parameter"><code>h_factor</code></em>
+ or
+<em class="parameter"><code>v_factor</code></em>
+ is &gt; 0, upsampling will be used, otherwise subsampling is
+performed.</p>
+<div class="refsect3">
+<a name="id-1.2.15.8.7.7.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>method</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#GstVideoChromaMethod" title="enum GstVideoChromaMethod"><span class="type">GstVideoChromaMethod</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>site</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#GstVideoChromaSite" title="enum GstVideoChromaSite"><span class="type">GstVideoChromaSite</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p><a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#GstVideoChromaFlags" title="enum GstVideoChromaFlags"><span class="type">GstVideoChromaFlags</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>format</p></td>
+<td class="parameter_description"><p>the <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>h_factor</p></td>
+<td class="parameter_description"><p>horizontal resampling factor</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>v_factor</p></td>
+<td class="parameter_description"><p>vertical resampling factor</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.2.15.8.7.7.6"></a><h4>Returns</h4>
+<p> a new <a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#GstVideoChromaResample" title="GstVideoChromaResample"><span class="type">GstVideoChromaResample</span></a> that should be freed with
+<a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#gst-video-chroma-resample-free" title="gst_video_chroma_resample_free ()"><code class="function">gst_video_chroma_resample_free()</code></a> after usage.</p>
+<p></p>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-GstVideoChroma.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstVideoChromaSite"></a><h3>enum GstVideoChromaSite</h3>
+<p>Various Chroma sitings.</p>
+<div class="refsect3">
+<a name="id-1.2.15.8.8.2.4"></a><h4>Members</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="enum_member_name"><p><a name="GST-VIDEO-CHROMA-SITE-UNKNOWN:CAPS"></a>GST_VIDEO_CHROMA_SITE_UNKNOWN</p></td>
+<td class="enum_member_description">
+<p>unknown cositing</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-VIDEO-CHROMA-SITE-NONE:CAPS"></a>GST_VIDEO_CHROMA_SITE_NONE</p></td>
+<td class="enum_member_description">
+<p>no cositing</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-VIDEO-CHROMA-SITE-H-COSITED:CAPS"></a>GST_VIDEO_CHROMA_SITE_H_COSITED</p></td>
+<td class="enum_member_description">
+<p>chroma is horizontally cosited</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-VIDEO-CHROMA-SITE-V-COSITED:CAPS"></a>GST_VIDEO_CHROMA_SITE_V_COSITED</p></td>
+<td class="enum_member_description">
+<p>chroma is vertically cosited</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-VIDEO-CHROMA-SITE-ALT-LINE:CAPS"></a>GST_VIDEO_CHROMA_SITE_ALT_LINE</p></td>
+<td class="enum_member_description">
+<p>choma samples are sited on alternate lines</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-VIDEO-CHROMA-SITE-COSITED:CAPS"></a>GST_VIDEO_CHROMA_SITE_COSITED</p></td>
+<td class="enum_member_description">
+<p>chroma samples cosited with luma samples</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-VIDEO-CHROMA-SITE-JPEG:CAPS"></a>GST_VIDEO_CHROMA_SITE_JPEG</p></td>
+<td class="enum_member_description">
+<p>jpeg style cositing, also for mpeg1 and mjpeg</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-VIDEO-CHROMA-SITE-MPEG2:CAPS"></a>GST_VIDEO_CHROMA_SITE_MPEG2</p></td>
+<td class="enum_member_description">
+<p>mpeg2 style cositing</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-VIDEO-CHROMA-SITE-DV:CAPS"></a>GST_VIDEO_CHROMA_SITE_DV</p></td>
+<td class="enum_member_description">
+<p>DV style cositing</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVideoChromaFlags"></a><h3>enum GstVideoChromaFlags</h3>
+<p>Extra flags that influence the result from <a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#gst-video-chroma-resample-new" title="gst_video_chroma_resample_new ()"><code class="function">gst_video_chroma_resample_new()</code></a>.</p>
+<div class="refsect3">
+<a name="id-1.2.15.8.8.3.4"></a><h4>Members</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="enum_member_name"><p><a name="GST-VIDEO-CHROMA-FLAG-NONE:CAPS"></a>GST_VIDEO_CHROMA_FLAG_NONE</p></td>
+<td class="enum_member_description">
+<p>no flags</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-VIDEO-CHROMA-FLAG-INTERLACED:CAPS"></a>GST_VIDEO_CHROMA_FLAG_INTERLACED</p></td>
+<td class="enum_member_description">
+<p>the input is interlaced</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVideoChromaMethod"></a><h3>enum GstVideoChromaMethod</h3>
+<p>Different subsampling and upsampling methods</p>
+<div class="refsect3">
+<a name="id-1.2.15.8.8.4.4"></a><h4>Members</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="enum_member_name"><p><a name="GST-VIDEO-CHROMA-METHOD-NEAREST:CAPS"></a>GST_VIDEO_CHROMA_METHOD_NEAREST</p></td>
+<td class="enum_member_description">
+<p>Duplicates the chroma samples when
+   upsampling and drops when subsampling</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-VIDEO-CHROMA-METHOD-LINEAR:CAPS"></a>GST_VIDEO_CHROMA_METHOD_LINEAR</p></td>
+<td class="enum_member_description">
+<p>Uses linear interpolation to reconstruct
+   missing chroma and averaging to subsample</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVideoChromaResample"></a><h3>GstVideoChromaResample</h3>
+<pre class="programlisting">typedef struct _GstVideoChromaResample GstVideoChromaResample;</pre>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.21</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-GstVideoDecoder.html b/docs/libs/html/gst-plugins-base-libs-GstVideoDecoder.html
index 3d2ed7c..484877e 100644
--- a/docs/libs/html/gst-plugins-base-libs-GstVideoDecoder.html
+++ b/docs/libs/html/gst-plugins-base-libs-GstVideoDecoder.html
@@ -8,15 +8,14 @@
 <link rel="up" href="gstreamer-video.html" title="Video Library">
 <link rel="prev" href="gst-plugins-base-libs-gstvideooverlay.html" title="gstvideooverlay">
 <link rel="next" href="gst-plugins-base-libs-GstVideoEncoder.html" title="GstVideoEncoder">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-GstVideoDecoder.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-GstVideoDecoder.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-GstVideoDecoder.description" class="shortcut">Description</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="gstreamer-video.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -92,7 +91,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="returnvalue">GstBuffer</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-allocate-output-buffer" title="gst_video_decoder_allocate_output_buffer ()">gst_video_decoder_allocate_output_buffer</a> <span class="c_punctuation">()</span>
@@ -148,7 +147,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-negotiate" title="gst_video_decoder_negotiate ()">gst_video_decoder_negotiate</a> <span class="c_punctuation">()</span>
@@ -164,7 +163,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
+<a href="https://developer.gnome.org/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-get-frames" title="gst_video_decoder_get_frames ()">gst_video_decoder_get_frames</a> <span class="c_punctuation">()</span>
@@ -180,7 +179,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-get-max-errors" title="gst_video_decoder_get_max_errors ()">gst_video_decoder_get_max_errors</a> <span class="c_punctuation">()</span>
@@ -196,7 +195,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-get-packetized" title="gst_video_decoder_get_packetized ()">gst_video_decoder_get_packetized</a> <span class="c_punctuation">()</span>
@@ -212,7 +211,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="returnvalue">gdouble</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gdouble"><span class="returnvalue">gdouble</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-get-qos-proportion" title="gst_video_decoder_get_qos_proportion ()">gst_video_decoder_get_qos_proportion</a> <span class="c_punctuation">()</span>
@@ -244,7 +243,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-get-estimate-rate" title="gst_video_decoder_get_estimate_rate ()">gst_video_decoder_get_estimate_rate</a> <span class="c_punctuation">()</span>
@@ -292,7 +291,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-get-needs-format" title="gst_video_decoder_get_needs_format ()">gst_video_decoder_get_needs_format</a> <span class="c_punctuation">()</span>
@@ -353,11 +352,6 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="gst-plugins-base-libs-GstVideoDecoder.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">
-</pre>
-</div>
-<div class="refsect1">
 <a name="gst-plugins-base-libs-GstVideoDecoder.description"></a><h2>Description</h2>
 <p>This base class is for video decoders turning encoded data into raw video
 frames.</p>
@@ -496,7 +490,7 @@
  is set to the proper value to
 return to upstream/caller (indicating either GST_FLOW_ERROR or GST_FLOW_OK).</p>
 <div class="refsect3">
-<a name="id-1.2.15.12.7.2.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.16.6.2.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -552,7 +546,7 @@
 </pre>
 <p>Gives the pointer to the sink <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> object of the element.</p>
 <div class="refsect3">
-<a name="id-1.2.15.12.7.3.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.16.6.3.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -574,7 +568,7 @@
 </pre>
 <p>Gives the pointer to the source <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> object of the element.</p>
 <div class="refsect3">
-<a name="id-1.2.15.12.7.4.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.16.6.4.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -596,7 +590,7 @@
 </pre>
 <p>Obtain a lock to protect the decoder function from concurrent access.</p>
 <div class="refsect3">
-<a name="id-1.2.15.12.7.5.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.16.6.5.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -618,7 +612,7 @@
 </pre>
 <p>Release the lock that protects the decoder function from concurrent access.</p>
 <div class="refsect3">
-<a name="id-1.2.15.12.7.6.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.16.6.6.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -640,7 +634,7 @@
 </pre>
 <p>Gives the segment of the element.</p>
 <div class="refsect3">
-<a name="id-1.2.15.12.7.7.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.16.6.7.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -662,7 +656,7 @@
 </pre>
 <p>Gives the segment of the element.</p>
 <div class="refsect3">
-<a name="id-1.2.15.12.7.8.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.16.6.8.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -686,7 +680,7 @@
 <p>Removes next <em class="parameter"><code>n_bytes</code></em>
  of input data and adds it to currently parsed frame.</p>
 <div class="refsect3">
-<a name="id-1.2.15.12.7.9.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.16.6.9.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -711,7 +705,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-video-decoder-allocate-output-buffer"></a><h3>gst_video_decoder_allocate_output_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> *
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="returnvalue">GstBuffer</span></a> *
 gst_video_decoder_allocate_output_buffer
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *decoder</code></em>);</pre>
 <p>Helper function that allocates a buffer to hold a video frame for <em class="parameter"><code>decoder</code></em>
@@ -720,7 +714,7 @@
 <p>You should use <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-allocate-output-frame" title="gst_video_decoder_allocate_output_frame ()"><code class="function">gst_video_decoder_allocate_output_frame()</code></a> instead of this
 function, if possible at all.</p>
 <div class="refsect3">
-<a name="id-1.2.15.12.7.10.6"></a><h4>Parameters</h4>
+<a name="id-1.2.15.16.6.10.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -735,7 +729,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.12.7.10.7"></a><h4>Returns</h4>
+<a name="id-1.2.15.16.6.10.7"></a><h4>Returns</h4>
 <p> allocated buffer, or NULL if no buffer could be
 allocated (e.g. when downstream is flushing or shutting down). </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
@@ -755,7 +749,7 @@
 <p>The buffer allocated here is owned by the frame and you should only
 keep references to the frame, not the buffer.</p>
 <div class="refsect3">
-<a name="id-1.2.15.12.7.11.6"></a><h4>Parameters</h4>
+<a name="id-1.2.15.16.6.11.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -777,8 +771,8 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.12.7.11.7"></a><h4>Returns</h4>
-<p> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GST-FLOW-OK:CAPS"><code class="literal">GST_FLOW_OK</code></a> if an output buffer could be allocated</p>
+<a name="id-1.2.15.16.6.11.7"></a><h4>Returns</h4>
+<p> <code class="literal">GST_FLOW_OK</code> if an output buffer could be allocated</p>
 <p></p>
 </div>
 </div>
@@ -796,7 +790,7 @@
 <p>Unref the <em class="parameter"><code>allocator</code></em>
  after use it.</p>
 <div class="refsect3">
-<a name="id-1.2.15.12.7.12.6"></a><h4>Parameters</h4>
+<a name="id-1.2.15.16.6.12.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -813,14 +807,14 @@
 <td class="parameter_name"><p>allocator</p></td>
 <td class="parameter_description"><p> the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstAllocator.html"><span class="type">GstAllocator</span></a>
 used. </p></td>
-<td class="parameter_annotations"><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>
+<td class="parameter_annotations"><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>
 <td class="parameter_name"><p>params</p></td>
 <td class="parameter_description"><p> the
 <span class="type">GstAllocatorParams</span> of <em class="parameter"><code>allocator</code></em>
 . </p></td>
-<td class="parameter_annotations"><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>
+<td class="parameter_annotations"><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>
 </tbody>
 </table></div>
@@ -832,7 +826,7 @@
 <pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBufferPool.html"><span class="returnvalue">GstBufferPool</span></a> *
 gst_video_decoder_get_buffer_pool (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *decoder</code></em>);</pre>
 <div class="refsect3">
-<a name="id-1.2.15.12.7.13.4"></a><h4>Parameters</h4>
+<a name="id-1.2.15.16.6.13.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -847,7 +841,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.12.7.13.5"></a><h4>Returns</h4>
+<a name="id-1.2.15.16.6.13.5"></a><h4>Returns</h4>
 <p> the instance of the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBufferPool.html"><span class="type">GstBufferPool</span></a> used
 by the decoder; free it after use it. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
@@ -864,7 +858,7 @@
 case and posts a QoS message with the frame's details on the bus.
 In any case, the frame is considered finished and released.</p>
 <div class="refsect3">
-<a name="id-1.2.15.12.7.14.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.16.6.14.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -886,7 +880,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.12.7.14.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.16.6.14.6"></a><h4>Returns</h4>
 <p> a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="type">GstFlowReturn</span></a>, usually GST_FLOW_OK.</p>
 <p></p>
 </div>
@@ -907,7 +901,7 @@
 considered read-only. This function will also change the metadata
 of the buffer.</p>
 <div class="refsect3">
-<a name="id-1.2.15.12.7.15.6"></a><h4>Parameters</h4>
+<a name="id-1.2.15.16.6.15.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -929,7 +923,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.12.7.15.7"></a><h4>Returns</h4>
+<a name="id-1.2.15.16.6.15.7"></a><h4>Returns</h4>
 <p> a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="type">GstFlowReturn</span></a> resulting from sending data downstream</p>
 <p></p>
 </div>
@@ -945,7 +939,7 @@
 without any processing other than removing it from list of pending frames,
 after which it is considered finished and released.</p>
 <div class="refsect3">
-<a name="id-1.2.15.12.7.16.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.16.6.16.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -971,13 +965,13 @@
 <hr>
 <div class="refsect2">
 <a name="gst-video-decoder-negotiate"></a><h3>gst_video_decoder_negotiate ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_video_decoder_negotiate (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *decoder</code></em>);</pre>
 <p>Negotiate with downstream elements to currently configured <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a>.
 Unmark GST_PAD_FLAG_NEED_RECONFIGURE in any case. But mark it again if
 negotiate fails.</p>
 <div class="refsect3">
-<a name="id-1.2.15.12.7.17.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.16.6.17.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -992,8 +986,8 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.12.7.17.6"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><span class="type">TRUE</span></a> if the negotiation succeeded, else <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><span class="type">FALSE</span></a>.</p>
+<a name="id-1.2.15.16.6.17.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><span class="type">TRUE</span></a> if the negotiation succeeded, else <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><span class="type">FALSE</span></a>.</p>
 <p></p>
 </div>
 </div>
@@ -1005,7 +999,7 @@
                              <em class="parameter"><code><span class="type">int</span> frame_number</code></em>);</pre>
 <p>Get a pending unfinished <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a></p>
 <div class="refsect3">
-<a name="id-1.2.15.12.7.18.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.16.6.18.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1027,7 +1021,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.12.7.18.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.16.6.18.6"></a><h4>Returns</h4>
 <p> pending unfinished <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a> identified by <em class="parameter"><code>frame_number</code></em>
 . </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
@@ -1036,11 +1030,11 @@
 <hr>
 <div class="refsect2">
 <a name="gst-video-decoder-get-frames"></a><h3>gst_video_decoder_get_frames ()</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> *
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
 gst_video_decoder_get_frames (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *decoder</code></em>);</pre>
 <p>Get all pending unfinished <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a></p>
 <div class="refsect3">
-<a name="id-1.2.15.12.7.19.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.16.6.19.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1055,7 +1049,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.12.7.19.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.16.6.19.6"></a><h4>Returns</h4>
 <p> pending unfinished <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a>. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GstVideoCodecFrame]</span></p>
 </div>
@@ -1072,7 +1066,7 @@
 In particular, a negative result means decoding in time is no longer possible
 and should therefore occur as soon/skippy as possible.</p>
 <div class="refsect3">
-<a name="id-1.2.15.12.7.20.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.16.6.20.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1094,7 +1088,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.12.7.20.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.16.6.20.6"></a><h4>Returns</h4>
 <p> max decoding time.</p>
 <p></p>
 </div>
@@ -1102,10 +1096,10 @@
 <hr>
 <div class="refsect2">
 <a name="gst-video-decoder-get-max-errors"></a><h3>gst_video_decoder_get_max_errors ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
 gst_video_decoder_get_max_errors (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *dec</code></em>);</pre>
 <div class="refsect3">
-<a name="id-1.2.15.12.7.21.4"></a><h4>Parameters</h4>
+<a name="id-1.2.15.16.6.21.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1120,7 +1114,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.12.7.21.5"></a><h4>Returns</h4>
+<a name="id-1.2.15.16.6.21.5"></a><h4>Returns</h4>
 <p> currently configured decoder tolerated error count.</p>
 <p></p>
 </div>
@@ -1132,7 +1126,7 @@
 gst_video_decoder_get_oldest_frame (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *decoder</code></em>);</pre>
 <p>Get the oldest pending unfinished <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a></p>
 <div class="refsect3">
-<a name="id-1.2.15.12.7.22.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.16.6.22.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1147,7 +1141,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.12.7.22.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.16.6.22.6"></a><h4>Returns</h4>
 <p> oldest pending unfinished <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a>. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
@@ -1155,12 +1149,12 @@
 <hr>
 <div class="refsect2">
 <a name="gst-video-decoder-get-packetized"></a><h3>gst_video_decoder_get_packetized ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_video_decoder_get_packetized (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *decoder</code></em>);</pre>
 <p>Queries whether input data is considered packetized or not by the
 base class.</p>
 <div class="refsect3">
-<a name="id-1.2.15.12.7.23.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.16.6.23.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1175,7 +1169,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.12.7.23.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.16.6.23.6"></a><h4>Returns</h4>
 <p> TRUE if input data is considered packetized.</p>
 <p></p>
 </div>
@@ -1189,7 +1183,7 @@
 <p>Returns the number of bytes previously added to the current frame
 by calling <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-add-to-frame" title="gst_video_decoder_add_to_frame ()"><code class="function">gst_video_decoder_add_to_frame()</code></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.15.12.7.24.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.16.6.24.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1204,7 +1198,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.12.7.24.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.16.6.24.6"></a><h4>Returns</h4>
 <p> The number of bytes pending for the current frame</p>
 <p></p>
 </div>
@@ -1213,10 +1207,10 @@
 <hr>
 <div class="refsect2">
 <a name="gst-video-decoder-get-qos-proportion"></a><h3>gst_video_decoder_get_qos_proportion ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="returnvalue">gdouble</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gdouble"><span class="returnvalue">gdouble</span></a>
 gst_video_decoder_get_qos_proportion (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *decoder</code></em>);</pre>
 <div class="refsect3">
-<a name="id-1.2.15.12.7.25.4"></a><h4>Parameters</h4>
+<a name="id-1.2.15.16.6.25.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1226,13 +1220,13 @@
 <tbody><tr>
 <td class="parameter_name"><p>decoder</p></td>
 <td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a>
-current QoS proportion, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
+current QoS proportion, or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
 <td class="parameter_annotations"> </td>
 </tr></tbody>
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.12.7.25.5"></a><h4>Returns</h4>
+<a name="id-1.2.15.16.6.25.5"></a><h4>Returns</h4>
 <p> The current QoS proportion.</p>
 <p></p>
 </div>
@@ -1247,7 +1241,7 @@
 metadata and passes it along for further processing, i.e. <em class="parameter"><code>handle_frame</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.15.12.7.26.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.16.6.26.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1262,7 +1256,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.12.7.26.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.16.6.26.6"></a><h4>Returns</h4>
 <p> a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="type">GstFlowReturn</span></a></p>
 <p></p>
 </div>
@@ -1279,7 +1273,7 @@
  and <em class="parameter"><code>max_latency</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.15.12.7.27.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.16.6.27.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1295,14 +1289,14 @@
 <tr>
 <td class="parameter_name"><p>min_latency</p></td>
 <td class="parameter_description"><p> address of variable in which to store the
-configured minimum latency, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
-<td class="parameter_annotations"><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>
+configured minimum latency, or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
+<td class="parameter_annotations"><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 class="parameter_name"><p>max_latency</p></td>
 <td class="parameter_description"><p> address of variable in which to store the
-configured mximum latency, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
-<td class="parameter_annotations"><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>
+configured mximum latency, or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
+<td class="parameter_annotations"><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>
@@ -1319,7 +1313,7 @@
 latency is. Will also post a LATENCY message on the bus so the pipeline
 can reconfigure its global latency.</p>
 <div class="refsect3">
-<a name="id-1.2.15.12.7.28.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.16.6.28.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1349,10 +1343,10 @@
 <hr>
 <div class="refsect2">
 <a name="gst-video-decoder-get-estimate-rate"></a><h3>gst_video_decoder_get_estimate_rate ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
 gst_video_decoder_get_estimate_rate (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *dec</code></em>);</pre>
 <div class="refsect3">
-<a name="id-1.2.15.12.7.29.4"></a><h4>Parameters</h4>
+<a name="id-1.2.15.16.6.29.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1367,7 +1361,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.12.7.29.5"></a><h4>Returns</h4>
+<a name="id-1.2.15.16.6.29.5"></a><h4>Returns</h4>
 <p> currently configured byte to time conversion setting</p>
 <p></p>
 </div>
@@ -1379,7 +1373,7 @@
 gst_video_decoder_get_output_state (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *decoder</code></em>);</pre>
 <p>Get the <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a> currently describing the output stream.</p>
 <div class="refsect3">
-<a name="id-1.2.15.12.7.30.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.16.6.30.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1394,7 +1388,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.12.7.30.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.16.6.30.6"></a><h4>Returns</h4>
 <p> <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a> describing format of video data. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
@@ -1404,10 +1398,10 @@
 <a name="gst-video-decoder-set-estimate-rate"></a><h3>gst_video_decoder_set_estimate_rate ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_video_decoder_set_estimate_rate (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *dec</code></em>,
-                                     <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>);</pre>
+                                     <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);</pre>
 <p>Allows baseclass to perform byte to time estimated conversion.</p>
 <div class="refsect3">
-<a name="id-1.2.15.12.7.31.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.16.6.31.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1435,8 +1429,8 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="returnvalue">GstVideoCodecState</span></a> *
 gst_video_decoder_set_output_state (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *decoder</code></em>,
                                     <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> fmt</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> width</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> height</code></em>,
+                                    <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> width</code></em>,
+                                    <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> height</code></em>,
                                     <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a> *reference</code></em>);</pre>
 <p>Creates a new <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a> with the specified <em class="parameter"><code>fmt</code></em>
 , <em class="parameter"><code>width</code></em>
@@ -1455,7 +1449,7 @@
 <p>The new output state will only take effect (set on pads and buffers) starting
 from the next call to <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-finish-frame" title="gst_video_decoder_finish_frame ()"><code class="function">gst_video_decoder_finish_frame()</code></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.15.12.7.32.8"></a><h4>Parameters</h4>
+<a name="id-1.2.15.16.6.32.8"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1486,13 +1480,13 @@
 <tr>
 <td class="parameter_name"><p>reference</p></td>
 <td class="parameter_description"><p> An optional reference <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a>. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
 </tr>
 </tbody>
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.12.7.32.9"></a><h4>Returns</h4>
+<a name="id-1.2.15.16.6.32.9"></a><h4>Returns</h4>
 <p> the newly configured output state. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
@@ -1502,14 +1496,14 @@
 <a name="gst-video-decoder-set-max-errors"></a><h3>gst_video_decoder_set_max_errors ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_video_decoder_set_max_errors (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *dec</code></em>,
-                                  <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> num</code></em>);</pre>
+                                  <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> num</code></em>);</pre>
 <p>Sets numbers of tolerated decoder errors, where a tolerated one is then only
 warned about, but more than tolerated will lead to fatal error.  You can set
 -1 for never returning fatal errors. Default is set to
 GST_VIDEO_DECODER_MAX_ERRORS.</p>
 <p>The '-1' option was added in 1.4</p>
 <div class="refsect3">
-<a name="id-1.2.15.12.7.33.6"></a><h4>Parameters</h4>
+<a name="id-1.2.15.16.6.33.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1536,12 +1530,12 @@
 <a name="gst-video-decoder-set-packetized"></a><h3>gst_video_decoder_set_packetized ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_video_decoder_set_packetized (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *decoder</code></em>,
-                                  <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> packetized</code></em>);</pre>
+                                  <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> packetized</code></em>);</pre>
 <p>Allows baseclass to consider input data as packetized or not. If the
 input is packetized, then the <em class="parameter"><code>parse</code></em>
  method will not be called.</p>
 <div class="refsect3">
-<a name="id-1.2.15.12.7.34.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.16.6.34.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1566,11 +1560,11 @@
 <hr>
 <div class="refsect2">
 <a name="gst-video-decoder-get-needs-format"></a><h3>gst_video_decoder_get_needs_format ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_video_decoder_get_needs_format (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *dec</code></em>);</pre>
 <p>Queries decoder required format handling.</p>
 <div class="refsect3">
-<a name="id-1.2.15.12.7.35.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.16.6.35.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1585,8 +1579,8 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.12.7.35.6"></a><h4>Returns</h4>
-<p> TRUE if required format handling is enabled.</p>
+<a name="id-1.2.15.16.6.35.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if required format handling is enabled.</p>
 <p></p>
 </div>
 <p class="since">Since 1.4</p>
@@ -1596,7 +1590,7 @@
 <a name="gst-video-decoder-set-needs-format"></a><h3>gst_video_decoder_set_needs_format ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_video_decoder_set_needs_format (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *dec</code></em>,
-                                    <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>);</pre>
+                                    <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);</pre>
 <p>Configures decoder format needs.  If enabled, subclass needs to be
 negotiated with format caps before it can process any data.  It will then
 never be handed any data before it has been configured.
@@ -1604,7 +1598,7 @@
 is then expected being able to do so either by default
 or based on the input data.</p>
 <div class="refsect3">
-<a name="id-1.2.15.12.7.36.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.16.6.36.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1632,15 +1626,15 @@
 <a name="gst-video-decoder-merge-tags"></a><h3>gst_video_decoder_merge_tags ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_video_decoder_merge_tags (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *decoder</code></em>,
-                              <em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a> *tags</code></em>,
-                              <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagMergeMode"><span class="type">GstTagMergeMode</span></a> mode</code></em>);</pre>
+                              <em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagList.html"><span class="type">GstTagList</span></a> *tags</code></em>,
+                              <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagList.html#GstTagMergeMode"><span class="type">GstTagMergeMode</span></a> mode</code></em>);</pre>
 <p>Adds tags to so-called pending tags, which will be processed
 before pushing out data downstream.</p>
 <p>Note that this is provided for convenience, and the subclass is
 not required to use this and can still do tag handling on its own.</p>
 <p>MT safe.</p>
 <div class="refsect3">
-<a name="id-1.2.15.12.7.37.7"></a><h4>Parameters</h4>
+<a name="id-1.2.15.16.6.37.7"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1655,12 +1649,12 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>tags</p></td>
-<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a> to merge</p></td>
+<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagList.html"><span class="type">GstTagList</span></a> to merge</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
 <td class="parameter_name"><p>mode</p></td>
-<td class="parameter_description"><p>the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagMergeMode"><span class="type">GstTagMergeMode</span></a> to use</p></td>
+<td class="parameter_description"><p>the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagList.html#GstTagMergeMode"><span class="type">GstTagMergeMode</span></a> to use</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 </tbody>
@@ -1752,6 +1746,11 @@
 
   gboolean      (*src_query)      (GstVideoDecoder *decoder,
 				   GstQuery *query);
+
+  GstCaps*      (*getcaps)        (GstVideoDecoder *decoder,
+                                   GstCaps *filter);
+
+  GstFlowReturn (*drain)          (GstVideoDecoder *decoder);
 };
 </pre>
 <p>Subclasses can override any of the available virtual methods or not, as
@@ -1762,7 +1761,7 @@
 <em class="parameter"><code>parse</code></em>
  needs to be overridden as well.</p>
 <div class="refsect3">
-<a name="id-1.2.15.12.8.7.5"></a><h4>Members</h4>
+<a name="id-1.2.15.16.7.7.5"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
@@ -1821,7 +1820,7 @@
 <td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoDecoderClass.finish"></a>finish</code></em> ()</p></td>
 <td class="struct_member_description"><p>Optional.
 Called to request subclass to dispatch any pending remaining
-data (e.g. at EOS).</p></td>
+data at EOS. Sub-classes can refuse to decode new data after.</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
@@ -1900,6 +1899,24 @@
 default handler. Since 1.4</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
+<tr>
+<td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoDecoderClass.getcaps"></a>getcaps</code></em> ()</p></td>
+<td class="struct_member_description"><p>Optional.
+Allows for a custom sink getcaps implementation.
+If not implemented, default returns
+gst_video_decoder_proxy_getcaps
+applied to sink template caps.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoDecoderClass.drain"></a>drain</code></em> ()</p></td>
+<td class="struct_member_description"><p>Optional.
+Called to request subclass to decode any data it can at this
+point, but that more data may arrive after. (e.g. at segment end).
+Sub-classes should be prepared to handle new data afterward,
+or seamless segment processing will break. Since: 1.6</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
 </tbody>
 </table></div>
 </div>
@@ -1908,6 +1925,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-GstVideoDither.html b/docs/libs/html/gst-plugins-base-libs-GstVideoDither.html
new file mode 100644
index 0000000..2615cfb
--- /dev/null
+++ b/docs/libs/html/gst-plugins-base-libs-GstVideoDither.html
@@ -0,0 +1,346 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GStreamer Base Plugins 1.0 Library Reference Manual: GstVideoDither</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
+<link rel="up" href="gstreamer-video.html" title="Video Library">
+<link rel="prev" href="gst-plugins-base-libs-gstvideofilter.html" title="gstvideofilter">
+<link rel="next" href="gst-plugins-base-libs-GstVideoChroma.html" title="GstVideoChroma">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-GstVideoDither.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="gstreamer-video.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="gst-plugins-base-libs-gstvideofilter.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-base-libs-GstVideoChroma.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="gst-plugins-base-libs-GstVideoDither"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="gst-plugins-base-libs-GstVideoDither.top_of_page"></a>GstVideoDither</span></h2>
+<p>GstVideoDither — Utility object for dithering and quantizing lines of video</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-GstVideoDither.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="gst-plugins-base-libs-GstVideoDither.html#gst-video-dither-free" title="gst_video_dither_free ()">gst_video_dither_free</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="gst-plugins-base-libs-GstVideoDither.html#gst-video-dither-line" title="gst_video_dither_line ()">gst_video_dither_line</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="gst-plugins-base-libs-GstVideoDither.html#GstVideoDither" title="GstVideoDither"><span class="returnvalue">GstVideoDither</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gst-plugins-base-libs-GstVideoDither.html#gst-video-dither-new" title="gst_video_dither_new ()">gst_video_dither_new</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-GstVideoDither.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="gst-plugins-base-libs-GstVideoDither.html#GstVideoDither" title="GstVideoDither">GstVideoDither</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gst-plugins-base-libs-GstVideoDither.html#GstVideoDitherFlags" title="enum GstVideoDitherFlags">GstVideoDitherFlags</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gst-plugins-base-libs-GstVideoDither.html#GstVideoDitherMethod" title="enum GstVideoDitherMethod">GstVideoDitherMethod</a></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-GstVideoDither.includes"></a><h2>Includes</h2>
+<pre class="synopsis">#include &lt;gst/video/video-dither.h&gt;
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-GstVideoDither.description"></a><h2>Description</h2>
+<p>GstVideoDither provides implementations of several dithering algorithms
+that can be applied to lines of video pixels to quantize and dither them.</p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-GstVideoDither.functions_details"></a><h2>Functions</h2>
+<div class="refsect2">
+<a name="gst-video-dither-free"></a><h3>gst_video_dither_free ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gst_video_dither_free (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDither.html#GstVideoDither" title="GstVideoDither"><span class="type">GstVideoDither</span></a> *dither</code></em>);</pre>
+<p>Free <em class="parameter"><code>dither</code></em>
+</p>
+<div class="refsect3">
+<a name="id-1.2.15.7.7.2.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>dither</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoDither.html#GstVideoDither" title="GstVideoDither"><span class="type">GstVideoDither</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-dither-line"></a><h3>gst_video_dither_line ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gst_video_dither_line (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDither.html#GstVideoDither" title="GstVideoDither"><span class="type">GstVideoDither</span></a> *dither</code></em>,
+                       <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> line</code></em>,
+                       <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> x</code></em>,
+                       <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> y</code></em>,
+                       <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> width</code></em>);</pre>
+<p>Dither <em class="parameter"><code>width</code></em>
+ pixels starting from offset <em class="parameter"><code>x</code></em>
+ in <em class="parameter"><code>line</code></em>
+ using <em class="parameter"><code>dither</code></em>
+.</p>
+<p><em class="parameter"><code>y</code></em>
+ is the line number of <em class="parameter"><code>line</code></em>
+ in the output image.</p>
+<div class="refsect3">
+<a name="id-1.2.15.7.7.3.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>dither</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoDither.html#GstVideoDither" title="GstVideoDither"><span class="type">GstVideoDither</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>line</p></td>
+<td class="parameter_description"><p>pointer to the pixels of the line</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>x</p></td>
+<td class="parameter_description"><p>x coordinate</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y</p></td>
+<td class="parameter_description"><p>y coordinate</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>width</p></td>
+<td class="parameter_description"><p>the width</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-dither-new"></a><h3>gst_video_dither_new ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-GstVideoDither.html#GstVideoDither" title="GstVideoDither"><span class="returnvalue">GstVideoDither</span></a> *
+gst_video_dither_new (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDither.html#GstVideoDitherMethod" title="enum GstVideoDitherMethod"><span class="type">GstVideoDitherMethod</span></a> method</code></em>,
+                      <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDither.html#GstVideoDitherFlags" title="enum GstVideoDitherFlags"><span class="type">GstVideoDitherFlags</span></a> flags</code></em>,
+                      <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> format</code></em>,
+                      <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> quantizer[GST_VIDEO_MAX_COMPONENTS]</code></em>,
+                      <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> width</code></em>);</pre>
+<p>Make a new dither object for dithering lines of <em class="parameter"><code>format</code></em>
+ using the
+algorithm described by <em class="parameter"><code>method</code></em>
+.</p>
+<p>Each component will be quantized to a multiple of <em class="parameter"><code>quantizer</code></em>
+. Better
+performance is achived when <em class="parameter"><code>quantizer</code></em>
+ is a power of 2.</p>
+<p><em class="parameter"><code>width</code></em>
+ is the width of the lines that this ditherer will handle.</p>
+<div class="refsect3">
+<a name="id-1.2.15.7.7.4.7"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>method</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoDither.html#GstVideoDitherMethod" title="enum GstVideoDitherMethod"><span class="type">GstVideoDitherMethod</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoDither.html#GstVideoDitherFlags" title="enum GstVideoDitherFlags"><span class="type">GstVideoDitherFlags</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>format</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>quantizer</p></td>
+<td class="parameter_description"><p>quantizer</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>width</p></td>
+<td class="parameter_description"><p>the width of the lines</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.2.15.7.7.4.8"></a><h4>Returns</h4>
+<p> a new <a class="link" href="gst-plugins-base-libs-GstVideoDither.html#GstVideoDither" title="GstVideoDither"><span class="type">GstVideoDither</span></a></p>
+<p></p>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-GstVideoDither.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstVideoDither"></a><h3>GstVideoDither</h3>
+<pre class="programlisting">typedef struct _GstVideoDither GstVideoDither;</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVideoDitherFlags"></a><h3>enum GstVideoDitherFlags</h3>
+<p>Extra flags that influence the result from <a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#gst-video-chroma-resample-new" title="gst_video_chroma_resample_new ()"><code class="function">gst_video_chroma_resample_new()</code></a>.</p>
+<div class="refsect3">
+<a name="id-1.2.15.7.8.3.4"></a><h4>Members</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="enum_member_name"><p><a name="GST-VIDEO-DITHER-FLAG-NONE:CAPS"></a>GST_VIDEO_DITHER_FLAG_NONE</p></td>
+<td class="enum_member_description">
+<p>no flags</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-VIDEO-DITHER-FLAG-INTERLACED:CAPS"></a>GST_VIDEO_DITHER_FLAG_INTERLACED</p></td>
+<td class="enum_member_description">
+<p>the input is interlaced</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-VIDEO-DITHER-FLAG-QUANTIZE:CAPS"></a>GST_VIDEO_DITHER_FLAG_QUANTIZE</p></td>
+<td class="enum_member_description">
+<p>quantize values in addition to adding dither.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVideoDitherMethod"></a><h3>enum GstVideoDitherMethod</h3>
+<p>Different dithering methods to use.</p>
+<div class="refsect3">
+<a name="id-1.2.15.7.8.4.4"></a><h4>Members</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="enum_member_name"><p><a name="GST-VIDEO-DITHER-NONE:CAPS"></a>GST_VIDEO_DITHER_NONE</p></td>
+<td class="enum_member_description">
+<p>no dithering</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-VIDEO-DITHER-VERTERR:CAPS"></a>GST_VIDEO_DITHER_VERTERR</p></td>
+<td class="enum_member_description">
+<p>propagate rounding errors downwards</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-VIDEO-DITHER-FLOYD-STEINBERG:CAPS"></a>GST_VIDEO_DITHER_FLOYD_STEINBERG</p></td>
+<td class="enum_member_description">
+<p>Dither with floyd-steinberg error diffusion</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-VIDEO-DITHER-SIERRA-LITE:CAPS"></a>GST_VIDEO_DITHER_SIERRA_LITE</p></td>
+<td class="enum_member_description">
+<p>Dither with Sierra Lite error diffusion</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-VIDEO-DITHER-BAYER:CAPS"></a>GST_VIDEO_DITHER_BAYER</p></td>
+<td class="enum_member_description">
+<p>ordered dither using a bayer pattern</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.21</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-GstVideoEncoder.html b/docs/libs/html/gst-plugins-base-libs-GstVideoEncoder.html
index a098b24..8142ec0 100644
--- a/docs/libs/html/gst-plugins-base-libs-GstVideoEncoder.html
+++ b/docs/libs/html/gst-plugins-base-libs-GstVideoEncoder.html
@@ -8,15 +8,14 @@
 <link rel="up" href="gstreamer-video.html" title="Video Library">
 <link rel="prev" href="gst-plugins-base-libs-GstVideoDecoder.html" title="GstVideoDecoder">
 <link rel="next" href="gst-plugins-base-libs-GstVideoPool.html" title="GstVideoPool">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-GstVideoEncoder.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-GstVideoEncoder.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-GstVideoEncoder.description" class="shortcut">Description</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="gstreamer-video.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -84,7 +83,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="returnvalue">GstBuffer</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#gst-video-encoder-allocate-output-buffer" title="gst_video_encoder_allocate_output_buffer ()">gst_video_encoder_allocate_output_buffer</a> <span class="c_punctuation">()</span>
@@ -116,7 +115,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#gst-video-encoder-negotiate" title="gst_video_encoder_negotiate ()">gst_video_encoder_negotiate</a> <span class="c_punctuation">()</span>
@@ -132,7 +131,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
+<a href="https://developer.gnome.org/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#gst-video-encoder-get-frames" title="gst_video_encoder_get_frames ()">gst_video_encoder_get_frames</a> <span class="c_punctuation">()</span>
@@ -188,7 +187,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="returnvalue">GstCaps</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#gst-video-encoder-proxy-getcaps" title="gst_video_encoder_proxy_getcaps ()">gst_video_encoder_proxy_getcaps</a> <span class="c_punctuation">()</span>
@@ -241,11 +240,6 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="gst-plugins-base-libs-GstVideoEncoder.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">
-</pre>
-</div>
-<div class="refsect1">
 <a name="gst-plugins-base-libs-GstVideoEncoder.description"></a><h2>Description</h2>
 <p>This base class is for video encoders turning raw video into
 encoded video data.</p>
@@ -335,7 +329,7 @@
 </pre>
 <p>Gives the pointer to the sink <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> object of the element.</p>
 <div class="refsect3">
-<a name="id-1.2.15.13.7.3.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.17.6.3.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -357,7 +351,7 @@
 </pre>
 <p>Gives the pointer to the source <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> object of the element.</p>
 <div class="refsect3">
-<a name="id-1.2.15.13.7.4.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.17.6.4.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -379,7 +373,7 @@
 </pre>
 <p>Gives the segment of the element.</p>
 <div class="refsect3">
-<a name="id-1.2.15.13.7.5.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.17.6.5.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -401,7 +395,7 @@
 </pre>
 <p>Gives the segment of the element.</p>
 <div class="refsect3">
-<a name="id-1.2.15.13.7.6.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.17.6.6.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -423,7 +417,7 @@
 </pre>
 <p>Obtain a lock to protect the encoder function from concurrent access.</p>
 <div class="refsect3">
-<a name="id-1.2.15.13.7.7.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.17.6.7.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -445,7 +439,7 @@
 </pre>
 <p>Release the lock that protects the encoder function from concurrent access.</p>
 <div class="refsect3">
-<a name="id-1.2.15.13.7.8.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.17.6.8.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -463,7 +457,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-video-encoder-allocate-output-buffer"></a><h3>gst_video_encoder_allocate_output_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> *
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="returnvalue">GstBuffer</span></a> *
 gst_video_encoder_allocate_output_buffer
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a> *encoder</code></em>,
                                 <em class="parameter"><code><span class="type">gsize</span> size</code></em>);</pre>
@@ -471,7 +465,7 @@
 for <em class="parameter"><code>encoder</code></em>
 's current <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.15.13.7.9.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.17.6.9.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -493,7 +487,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.13.7.9.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.17.6.9.6"></a><h4>Returns</h4>
 <p> allocated buffer. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
@@ -513,7 +507,7 @@
 <p>The buffer allocated here is owned by the frame and you should only
 keep references to the frame, not the buffer.</p>
 <div class="refsect3">
-<a name="id-1.2.15.13.7.10.6"></a><h4>Parameters</h4>
+<a name="id-1.2.15.17.6.10.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -540,8 +534,8 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.13.7.10.7"></a><h4>Returns</h4>
-<p> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GST-FLOW-OK:CAPS"><code class="literal">GST_FLOW_OK</code></a> if an output buffer could be allocated</p>
+<a name="id-1.2.15.17.6.10.7"></a><h4>Returns</h4>
+<p> <code class="literal">GST_FLOW_OK</code> if an output buffer could be allocated</p>
 <p></p>
 </div>
 </div>
@@ -559,7 +553,7 @@
 <p>Unref the <em class="parameter"><code>allocator</code></em>
  after use it.</p>
 <div class="refsect3">
-<a name="id-1.2.15.13.7.11.6"></a><h4>Parameters</h4>
+<a name="id-1.2.15.17.6.11.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -576,14 +570,14 @@
 <td class="parameter_name"><p>allocator</p></td>
 <td class="parameter_description"><p> the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstAllocator.html"><span class="type">GstAllocator</span></a>
 used. </p></td>
-<td class="parameter_annotations"><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>
+<td class="parameter_annotations"><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>
 <td class="parameter_name"><p>params</p></td>
 <td class="parameter_description"><p> the
 <span class="type">GstAllocatorParams</span> of <em class="parameter"><code>allocator</code></em>
 . </p></td>
-<td class="parameter_annotations"><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>
+<td class="parameter_annotations"><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>
 </tbody>
 </table></div>
@@ -606,7 +600,7 @@
 considered read-only. This function will also change the metadata
 of the buffer.</p>
 <div class="refsect3">
-<a name="id-1.2.15.13.7.12.6"></a><h4>Parameters</h4>
+<a name="id-1.2.15.17.6.12.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -628,7 +622,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.13.7.12.7"></a><h4>Returns</h4>
+<a name="id-1.2.15.17.6.12.7"></a><h4>Returns</h4>
 <p> a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="type">GstFlowReturn</span></a> resulting from sending data downstream</p>
 <p></p>
 </div>
@@ -636,13 +630,13 @@
 <hr>
 <div class="refsect2">
 <a name="gst-video-encoder-negotiate"></a><h3>gst_video_encoder_negotiate ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_video_encoder_negotiate (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a> *encoder</code></em>);</pre>
 <p>Negotiate with downstream elements to currently configured <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a>.
 Unmark GST_PAD_FLAG_NEED_RECONFIGURE in any case. But mark it again if
 negotiate fails.</p>
 <div class="refsect3">
-<a name="id-1.2.15.13.7.13.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.17.6.13.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -657,8 +651,8 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.13.7.13.6"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><span class="type">TRUE</span></a> if the negotiation succeeded, else <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><span class="type">FALSE</span></a>.</p>
+<a name="id-1.2.15.17.6.13.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><span class="type">TRUE</span></a> if the negotiation succeeded, else <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><span class="type">FALSE</span></a>.</p>
 <p></p>
 </div>
 </div>
@@ -670,7 +664,7 @@
                              <em class="parameter"><code><span class="type">int</span> frame_number</code></em>);</pre>
 <p>Get a pending unfinished <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a></p>
 <div class="refsect3">
-<a name="id-1.2.15.13.7.14.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.17.6.14.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -692,7 +686,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.13.7.14.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.17.6.14.6"></a><h4>Returns</h4>
 <p> pending unfinished <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a> identified by <em class="parameter"><code>frame_number</code></em>
 . </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
@@ -701,11 +695,11 @@
 <hr>
 <div class="refsect2">
 <a name="gst-video-encoder-get-frames"></a><h3>gst_video_encoder_get_frames ()</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> *
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
 gst_video_encoder_get_frames (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a> *encoder</code></em>);</pre>
 <p>Get all pending unfinished <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a></p>
 <div class="refsect3">
-<a name="id-1.2.15.13.7.15.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.17.6.15.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -720,7 +714,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.13.7.15.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.17.6.15.6"></a><h4>Returns</h4>
 <p> pending unfinished <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a>. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GstVideoCodecFrame]</span></p>
 </div>
@@ -732,7 +726,7 @@
 gst_video_encoder_get_oldest_frame (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a> *encoder</code></em>);</pre>
 <p>Get the oldest unfinished pending <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a></p>
 <div class="refsect3">
-<a name="id-1.2.15.13.7.16.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.17.6.16.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -747,7 +741,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.13.7.16.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.17.6.16.6"></a><h4>Returns</h4>
 <p> oldest unfinished pending <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a>. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
@@ -757,10 +751,10 @@
 <a name="gst-video-encoder-set-headers"></a><h3>gst_video_encoder_set_headers ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_video_encoder_set_headers (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a> *encoder</code></em>,
-                               <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> *headers</code></em>);</pre>
+                               <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *headers</code></em>);</pre>
 <p>Set the codec headers to be sent downstream whenever requested.</p>
 <div class="refsect3">
-<a name="id-1.2.15.13.7.17.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.17.6.17.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -775,7 +769,7 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>headers</p></td>
-<td class="parameter_description"><p> a list of <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> containing the codec header. </p></td>
+<td class="parameter_description"><p> a list of <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> containing the codec header. </p></td>
 <td class="parameter_annotations"><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GstBuffer]</span></td>
 </tr>
 </tbody>
@@ -794,7 +788,7 @@
  and <em class="parameter"><code>max_latency</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.15.13.7.18.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.17.6.18.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -810,14 +804,14 @@
 <tr>
 <td class="parameter_name"><p>min_latency</p></td>
 <td class="parameter_description"><p> address of variable in which to store the
-configured minimum latency, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
-<td class="parameter_annotations"><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>
+configured minimum latency, or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
+<td class="parameter_annotations"><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 class="parameter_name"><p>max_latency</p></td>
 <td class="parameter_description"><p> address of variable in which to store the
-configured maximum latency, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
-<td class="parameter_annotations"><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>
+configured maximum latency, or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
+<td class="parameter_annotations"><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>
@@ -832,7 +826,7 @@
                                <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> max_latency</code></em>);</pre>
 <p>Informs baseclass of encoding latency.</p>
 <div class="refsect3">
-<a name="id-1.2.15.13.7.19.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.17.6.19.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -864,7 +858,7 @@
 <a name="gst-video-encoder-set-output-state"></a><h3>gst_video_encoder_set_output_state ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="returnvalue">GstVideoCodecState</span></a> *
 gst_video_encoder_set_output_state (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a> *encoder</code></em>,
-                                    <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="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> *caps</code></em>,
                                     <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a> *reference</code></em>);</pre>
 <p>Creates a new <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a> with the specified caps as the output state
 for the encoder.
@@ -884,7 +878,7 @@
 <p>The new output state will only take effect (set on pads and buffers) starting
 from the next call to <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#gst-video-encoder-finish-frame" title="gst_video_encoder_finish_frame ()"><code class="function">gst_video_encoder_finish_frame()</code></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.15.13.7.20.9"></a><h4>Parameters</h4>
+<a name="id-1.2.15.17.6.20.9"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -899,20 +893,20 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>caps</p></td>
-<td class="parameter_description"><p> the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> to use for the output. </p></td>
+<td class="parameter_description"><p> the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> to use for the output. </p></td>
 <td class="parameter_annotations"><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
 </tr>
 <tr>
 <td class="parameter_name"><p>reference</p></td>
 <td class="parameter_description"><p> An optional reference <em class="parameter"><code>GstVideoCodecState</code></em>
 . </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
 </tr>
 </tbody>
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.13.7.20.10"></a><h4>Returns</h4>
+<a name="id-1.2.15.17.6.20.10"></a><h4>Returns</h4>
 <p> the newly configured output state. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
@@ -924,7 +918,7 @@
 gst_video_encoder_get_output_state (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a> *encoder</code></em>);</pre>
 <p>Get the current <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a></p>
 <div class="refsect3">
-<a name="id-1.2.15.13.7.21.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.17.6.21.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -939,7 +933,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.13.7.21.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.17.6.21.6"></a><h4>Returns</h4>
 <p> <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a> describing format of video data. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
@@ -947,17 +941,17 @@
 <hr>
 <div class="refsect2">
 <a name="gst-video-encoder-proxy-getcaps"></a><h3>gst_video_encoder_proxy_getcaps ()</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> *
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="returnvalue">GstCaps</span></a> *
 gst_video_encoder_proxy_getcaps (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a> *enc</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="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *filter</code></em>);</pre>
+                                 <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> *caps</code></em>,
+                                 <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> *filter</code></em>);</pre>
 <p>Returns caps that express <em class="parameter"><code>caps</code></em>
  (or sink template caps if <em class="parameter"><code>caps</code></em>
  == NULL)
 restricted to resolution/format/... combinations supported by downstream
 elements (e.g. muxers).</p>
 <div class="refsect3">
-<a name="id-1.2.15.13.7.22.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.17.6.22.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -972,21 +966,21 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>caps</p></td>
-<td class="parameter_description"><p>initial caps</p></td>
-<td class="parameter_annotations"> </td>
+<td class="parameter_description"><p> initial caps. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
 </tr>
 <tr>
 <td class="parameter_name"><p>filter</p></td>
-<td class="parameter_description"><p>filter caps</p></td>
-<td class="parameter_annotations"> </td>
+<td class="parameter_description"><p> filter caps. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
 </tr>
 </tbody>
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.13.7.22.6"></a><h4>Returns</h4>
-<p> a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> owned by caller</p>
-<p></p>
+<a name="id-1.2.15.17.6.22.6"></a><h4>Returns</h4>
+<p> a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> owned by caller. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
 </div>
 <hr>
@@ -994,15 +988,15 @@
 <a name="gst-video-encoder-merge-tags"></a><h3>gst_video_encoder_merge_tags ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_video_encoder_merge_tags (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a> *encoder</code></em>,
-                              <em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a> *tags</code></em>,
-                              <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagMergeMode"><span class="type">GstTagMergeMode</span></a> mode</code></em>);</pre>
+                              <em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagList.html"><span class="type">GstTagList</span></a> *tags</code></em>,
+                              <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagList.html#GstTagMergeMode"><span class="type">GstTagMergeMode</span></a> mode</code></em>);</pre>
 <p>Adds tags to so-called pending tags, which will be processed
 before pushing out data downstream.</p>
 <p>Note that this is provided for convenience, and the subclass is
 not required to use this and can still do tag handling on its own.</p>
 <p>MT safe.</p>
 <div class="refsect3">
-<a name="id-1.2.15.13.7.23.7"></a><h4>Parameters</h4>
+<a name="id-1.2.15.17.6.23.7"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1017,12 +1011,12 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>tags</p></td>
-<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a> to merge</p></td>
+<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagList.html"><span class="type">GstTagList</span></a> to merge</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
 <td class="parameter_name"><p>mode</p></td>
-<td class="parameter_description"><p>the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagMergeMode"><span class="type">GstTagMergeMode</span></a> to use</p></td>
+<td class="parameter_description"><p>the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagList.html#GstTagMergeMode"><span class="type">GstTagMergeMode</span></a> to use</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 </tbody>
@@ -1125,7 +1119,7 @@
 and <em class="parameter"><code>get_caps</code></em>
  are likely needed as well.</p>
 <div class="refsect3">
-<a name="id-1.2.15.13.8.7.5"></a><h4>Members</h4>
+<a name="id-1.2.15.17.7.7.5"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
@@ -1284,6 +1278,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-GstVideoPool.html b/docs/libs/html/gst-plugins-base-libs-GstVideoPool.html
index 2ab09f2..446901c 100644
--- a/docs/libs/html/gst-plugins-base-libs-GstVideoPool.html
+++ b/docs/libs/html/gst-plugins-base-libs-GstVideoPool.html
@@ -8,15 +8,14 @@
 <link rel="up" href="gstreamer-video.html" title="Video Library">
 <link rel="prev" href="gst-plugins-base-libs-GstVideoEncoder.html" title="GstVideoEncoder">
 <link rel="next" href="gst-plugins-base-libs-gstvideoutils.html" title="gstvideoutils">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-GstVideoPool.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-GstVideoPool.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-GstVideoPool.description" class="shortcut">Description</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="gstreamer-video.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -50,7 +49,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-GstVideoPool.html#gst-buffer-pool-config-get-video-alignment" title="gst_buffer_pool_config_get_video_alignment ()">gst_buffer_pool_config_get_video_alignment</a> <span class="c_punctuation">()</span>
@@ -95,11 +94,6 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="gst-plugins-base-libs-GstVideoPool.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">
-</pre>
-</div>
-<div class="refsect1">
 <a name="gst-plugins-base-libs-GstVideoPool.includes"></a><h2>Includes</h2>
 <pre class="synopsis">#include &lt;gst/video/gstvideopool.h&gt;
 </pre>
@@ -120,24 +114,24 @@
 <p>Create a new bufferpool that can allocate video frames. This bufferpool
 supports all the video bufferpool options.</p>
 <div class="refsect3">
-<a name="id-1.2.15.14.8.2.5"></a><h4>Returns</h4>
-<p> a new <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBufferPool.html"><span class="type">GstBufferPool</span></a> to allocate video frames</p>
-<p></p>
+<a name="id-1.2.15.18.7.2.5"></a><h4>Returns</h4>
+<p> a new <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBufferPool.html"><span class="type">GstBufferPool</span></a> to allocate video frames. </p>
+<p><span class="annotation">[<acronym title="Alias for transfer none, used for objects with floating refs."><span class="acronym">transfer floating</span></acronym>]</span></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-buffer-pool-config-get-video-alignment"></a><h3>gst_buffer_pool_config_get_video_alignment ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_buffer_pool_config_get_video_alignment
-                               (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a> *config</code></em>,
+                               (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstStructure.html"><span class="type">GstStructure</span></a> *config</code></em>,
                                 <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoAlignment" title="struct GstVideoAlignment"><span class="type">GstVideoAlignment</span></a> *align</code></em>);</pre>
 <p>Get the video alignment from the bufferpool configuration <em class="parameter"><code>config</code></em>
  in
 in <em class="parameter"><code>align</code></em>
 </p>
 <div class="refsect3">
-<a name="id-1.2.15.14.8.3.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.18.7.3.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -147,7 +141,7 @@
 <tbody>
 <tr>
 <td class="parameter_name"><p>config</p></td>
-<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a></p></td>
+<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstStructure.html"><span class="type">GstStructure</span></a></p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
@@ -159,8 +153,8 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.14.8.3.6"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><span class="type">TRUE</span></a> if <em class="parameter"><code>config</code></em>
+<a name="id-1.2.15.18.7.3.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><span class="type">TRUE</span></a> if <em class="parameter"><code>config</code></em>
 could be parsed correctly.</p>
 <p></p>
 </div>
@@ -170,14 +164,14 @@
 <a name="gst-buffer-pool-config-set-video-alignment"></a><h3>gst_buffer_pool_config_set_video_alignment ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_buffer_pool_config_set_video_alignment
-                               (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a> *config</code></em>,
+                               (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstStructure.html"><span class="type">GstStructure</span></a> *config</code></em>,
                                 <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoAlignment" title="struct GstVideoAlignment"><span class="type">GstVideoAlignment</span></a> *align</code></em>);</pre>
 <p>Set the video alignment in <em class="parameter"><code>align</code></em>
  to the bufferpool configuration
 <em class="parameter"><code>config</code></em>
 </p>
 <div class="refsect3">
-<a name="id-1.2.15.14.8.4.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.18.7.4.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -187,7 +181,7 @@
 <tbody>
 <tr>
 <td class="parameter_name"><p>config</p></td>
-<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a></p></td>
+<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstStructure.html"><span class="type">GstStructure</span></a></p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
@@ -245,6 +239,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-GstVideoResampler.html b/docs/libs/html/gst-plugins-base-libs-GstVideoResampler.html
new file mode 100644
index 0000000..92872e3
--- /dev/null
+++ b/docs/libs/html/gst-plugins-base-libs-GstVideoResampler.html
@@ -0,0 +1,380 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GStreamer Base Plugins 1.0 Library Reference Manual: GstVideoResampler</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
+<link rel="up" href="gstreamer-video.html" title="Video Library">
+<link rel="prev" href="gst-plugins-base-libs-GstVideoChroma.html" title="GstVideoChroma">
+<link rel="next" href="gst-plugins-base-libs-GstVideoScaler.html" title="GstVideoScaler">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-GstVideoResampler.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="gstreamer-video.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="gst-plugins-base-libs-GstVideoChroma.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-base-libs-GstVideoScaler.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="gst-plugins-base-libs-GstVideoResampler"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="gst-plugins-base-libs-GstVideoResampler.top_of_page"></a>GstVideoResampler</span></h2>
+<p>GstVideoResampler — Utility structure for resampler information</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-GstVideoResampler.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="gst-plugins-base-libs-GstVideoResampler.html#gst-video-resampler-clear" title="gst_video_resampler_clear ()">gst_video_resampler_clear</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gst-plugins-base-libs-GstVideoResampler.html#gst-video-resampler-init" title="gst_video_resampler_init ()">gst_video_resampler_init</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-GstVideoResampler.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody>
+<tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="gst-plugins-base-libs-GstVideoResampler.html#GstVideoResampler" title="struct GstVideoResampler">GstVideoResampler</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gst-plugins-base-libs-GstVideoResampler.html#GstVideoResamplerFlags" title="enum GstVideoResamplerFlags">GstVideoResamplerFlags</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gst-plugins-base-libs-GstVideoResampler.html#GstVideoResamplerMethod" title="enum GstVideoResamplerMethod">GstVideoResamplerMethod</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gst-plugins-base-libs-GstVideoResampler.html#GST-VIDEO-RESAMPLER-OPT-CUBIC-B:CAPS" title="GST_VIDEO_RESAMPLER_OPT_CUBIC_B">GST_VIDEO_RESAMPLER_OPT_CUBIC_B</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gst-plugins-base-libs-GstVideoResampler.html#GST-VIDEO-RESAMPLER-OPT-CUBIC-C:CAPS" title="GST_VIDEO_RESAMPLER_OPT_CUBIC_C">GST_VIDEO_RESAMPLER_OPT_CUBIC_C</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gst-plugins-base-libs-GstVideoResampler.html#GST-VIDEO-RESAMPLER-OPT-ENVELOPE:CAPS" title="GST_VIDEO_RESAMPLER_OPT_ENVELOPE">GST_VIDEO_RESAMPLER_OPT_ENVELOPE</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gst-plugins-base-libs-GstVideoResampler.html#GST-VIDEO-RESAMPLER-OPT-MAX-TAPS:CAPS" title="GST_VIDEO_RESAMPLER_OPT_MAX_TAPS">GST_VIDEO_RESAMPLER_OPT_MAX_TAPS</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gst-plugins-base-libs-GstVideoResampler.html#GST-VIDEO-RESAMPLER-OPT-SHARPEN:CAPS" title="GST_VIDEO_RESAMPLER_OPT_SHARPEN">GST_VIDEO_RESAMPLER_OPT_SHARPEN</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gst-plugins-base-libs-GstVideoResampler.html#GST-VIDEO-RESAMPLER-OPT-SHARPNESS:CAPS" title="GST_VIDEO_RESAMPLER_OPT_SHARPNESS">GST_VIDEO_RESAMPLER_OPT_SHARPNESS</a></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-GstVideoResampler.includes"></a><h2>Includes</h2>
+<pre class="synopsis">#include &lt;gst/video/video-resampler.h&gt;
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-GstVideoResampler.description"></a><h2>Description</h2>
+<p><a class="link" href="gst-plugins-base-libs-GstVideoResampler.html#GstVideoResampler" title="struct GstVideoResampler"><span class="type">GstVideoResampler</span></a> is a structure which holds the information
+required to perform various kinds of resampling filtering.</p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-GstVideoResampler.functions_details"></a><h2>Functions</h2>
+<div class="refsect2">
+<a name="gst-video-resampler-clear"></a><h3>gst_video_resampler_clear ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gst_video_resampler_clear (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoResampler.html#GstVideoResampler" title="struct GstVideoResampler"><span class="type">GstVideoResampler</span></a> *resampler</code></em>);</pre>
+<p>Clear a previously initialized <a class="link" href="gst-plugins-base-libs-GstVideoResampler.html#GstVideoResampler" title="struct GstVideoResampler"><span class="type">GstVideoResampler</span></a> <em class="parameter"><code>resampler</code></em>
+.</p>
+<div class="refsect3">
+<a name="id-1.2.15.9.7.2.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>resampler</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoResampler.html#GstVideoResampler" title="struct GstVideoResampler"><span class="type">GstVideoResampler</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<p class="since">Since 1.6</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-resampler-init"></a><h3>gst_video_resampler_init ()</h3>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gst_video_resampler_init (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoResampler.html#GstVideoResampler" title="struct GstVideoResampler"><span class="type">GstVideoResampler</span></a> *resampler</code></em>,
+                          <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoResampler.html#GstVideoResamplerMethod" title="enum GstVideoResamplerMethod"><span class="type">GstVideoResamplerMethod</span></a> method</code></em>,
+                          <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoResampler.html#GstVideoResamplerFlags" title="enum GstVideoResamplerFlags"><span class="type">GstVideoResamplerFlags</span></a> flags</code></em>,
+                          <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_phases</code></em>,
+                          <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_taps</code></em>,
+                          <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> shift</code></em>,
+                          <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> in_size</code></em>,
+                          <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> out_size</code></em>,
+                          <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstStructure.html"><span class="type">GstStructure</span></a> *options</code></em>);</pre>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-GstVideoResampler.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstVideoResampler"></a><h3>struct GstVideoResampler</h3>
+<pre class="programlisting">struct GstVideoResampler {
+  gint in_size;
+  gint out_size;
+  guint max_taps;
+  guint n_phases;
+  guint32 *offset;
+  guint32 *phase;
+  guint32 *n_taps;
+  gdouble *taps;
+};
+</pre>
+<p>A structure holding resampler information.</p>
+<div class="refsect3">
+<a name="id-1.2.15.9.8.2.5"></a><h4>Members</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="300px" class="struct_members_name">
+<col class="struct_members_description">
+<col width="200px" class="struct_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstVideoResampler.in-size"></a>in_size</code></em>;</p></td>
+<td class="struct_member_description"><p>the input size</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstVideoResampler.out-size"></a>out_size</code></em>;</p></td>
+<td class="struct_member_description"><p>the output size</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstVideoResampler.max-taps"></a>max_taps</code></em>;</p></td>
+<td class="struct_member_description"><p>the maximum number of taps</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstVideoResampler.n-phases"></a>n_phases</code></em>;</p></td>
+<td class="struct_member_description"><p>the number of phases</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><span class="type">guint32</span> *<em class="structfield"><code><a name="GstVideoResampler.offset"></a>offset</code></em>;</p></td>
+<td class="struct_member_description"><p>array with the source offset for each output element</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><span class="type">guint32</span> *<em class="structfield"><code><a name="GstVideoResampler.phase"></a>phase</code></em>;</p></td>
+<td class="struct_member_description"><p>array with the phase to use for each output element</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><span class="type">guint32</span> *<em class="structfield"><code><a name="GstVideoResampler.n-taps"></a>n_taps</code></em>;</p></td>
+<td class="struct_member_description"><p>array with new number of taps for each phase</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *<em class="structfield"><code><a name="GstVideoResampler.taps"></a>taps</code></em>;</p></td>
+<td class="struct_member_description"><p>the taps for all phases</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since 1.6</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVideoResamplerFlags"></a><h3>enum GstVideoResamplerFlags</h3>
+<p>Different resampler flags.</p>
+<div class="refsect3">
+<a name="id-1.2.15.9.8.3.4"></a><h4>Members</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
+<tbody><tr>
+<td class="enum_member_name"><p><a name="GST-VIDEO-RESAMPLER-FLAG-NONE:CAPS"></a>GST_VIDEO_RESAMPLER_FLAG_NONE</p></td>
+<td class="enum_member_description">
+<p>no flags</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<p class="since">Since 1.6</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVideoResamplerMethod"></a><h3>enum GstVideoResamplerMethod</h3>
+<p>Different subsampling and upsampling methods</p>
+<div class="refsect3">
+<a name="id-1.2.15.9.8.4.4"></a><h4>Members</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="enum_member_name"><p><a name="GST-VIDEO-RESAMPLER-METHOD-NEAREST:CAPS"></a>GST_VIDEO_RESAMPLER_METHOD_NEAREST</p></td>
+<td class="enum_member_description">
+<p>Duplicates the samples when
+   upsampling and drops when downsampling</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-VIDEO-RESAMPLER-METHOD-LINEAR:CAPS"></a>GST_VIDEO_RESAMPLER_METHOD_LINEAR</p></td>
+<td class="enum_member_description">
+<p>Uses linear interpolation to reconstruct
+   missing samples and averaging to downsample</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-VIDEO-RESAMPLER-METHOD-CUBIC:CAPS"></a>GST_VIDEO_RESAMPLER_METHOD_CUBIC</p></td>
+<td class="enum_member_description">
+<p>Uses cubic interpolation</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-VIDEO-RESAMPLER-METHOD-SINC:CAPS"></a>GST_VIDEO_RESAMPLER_METHOD_SINC</p></td>
+<td class="enum_member_description">
+<p>Uses sinc interpolation</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-VIDEO-RESAMPLER-METHOD-LANCZOS:CAPS"></a>GST_VIDEO_RESAMPLER_METHOD_LANCZOS</p></td>
+<td class="enum_member_description">
+<p>Uses lanczos interpolation</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since 1.6</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-RESAMPLER-OPT-CUBIC-B:CAPS"></a><h3>GST_VIDEO_RESAMPLER_OPT_CUBIC_B</h3>
+<pre class="programlisting">#define GST_VIDEO_RESAMPLER_OPT_CUBIC_B      "GstVideoResampler.cubic-b"
+</pre>
+<p>G_TYPE_DOUBLE, B parameter of the cubic filter. The B
+parameter controls the bluriness. Values between 0.0 and
+2.0 are accepted. 1/3 is the default.</p>
+<p>Below are some values of popular filters:
+                   B       C
+Hermite           0.0     0.0
+Spline            1.0     0.0
+Catmull-Rom       0.0     1/2
+Mitchell          1/3     1/3
+Robidoux          0.3782  0.3109
+Robidoux
+ Sharp            0.2620  0.3690
+Robidoux
+ Soft             0.6796  0.1602</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-RESAMPLER-OPT-CUBIC-C:CAPS"></a><h3>GST_VIDEO_RESAMPLER_OPT_CUBIC_C</h3>
+<pre class="programlisting">#define GST_VIDEO_RESAMPLER_OPT_CUBIC_C      "GstVideoResampler.cubic-c"
+</pre>
+<p>G_TYPE_DOUBLE, C parameter of the cubic filter. The C
+parameter controls the Keys alpha value. Values between 0.0 and
+2.0 are accepted. 1/3 is the default.</p>
+<p>See <a class="link" href="gst-plugins-base-libs-GstVideoResampler.html#GST-VIDEO-RESAMPLER-OPT-CUBIC-B:CAPS" title="GST_VIDEO_RESAMPLER_OPT_CUBIC_B"><span class="type">GST_VIDEO_RESAMPLER_OPT_CUBIC_B</span></a> for some more common values</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-RESAMPLER-OPT-ENVELOPE:CAPS"></a><h3>GST_VIDEO_RESAMPLER_OPT_ENVELOPE</h3>
+<pre class="programlisting">#define GST_VIDEO_RESAMPLER_OPT_ENVELOPE      "GstVideoResampler.envelope"
+</pre>
+<p>G_TYPE_DOUBLE, specifies the size of filter envelope for
+<em class="parameter"><code>GST_VIDEO_RESAMPLER_METHOD_LANCZOS</code></em>
+. values are clamped between
+1.0 and 5.0. 2.0 is the default.</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-RESAMPLER-OPT-MAX-TAPS:CAPS"></a><h3>GST_VIDEO_RESAMPLER_OPT_MAX_TAPS</h3>
+<pre class="programlisting">#define GST_VIDEO_RESAMPLER_OPT_MAX_TAPS     "GstVideoResampler.max-taps"
+</pre>
+<p>G_TYPE_INT, limits the maximum number of taps to use.
+16 is the default.</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-RESAMPLER-OPT-SHARPEN:CAPS"></a><h3>GST_VIDEO_RESAMPLER_OPT_SHARPEN</h3>
+<pre class="programlisting">#define GST_VIDEO_RESAMPLER_OPT_SHARPEN      "GstVideoResampler.sharpen"
+</pre>
+<p>G_TYPE_DOUBLE, specifies sharpening of the filter for
+<em class="parameter"><code>GST_VIDEO_RESAMPLER_METHOD_LANCZOS</code></em>
+. values are clamped between
+0.0 and 1.0. 0.0 is the default.</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-RESAMPLER-OPT-SHARPNESS:CAPS"></a><h3>GST_VIDEO_RESAMPLER_OPT_SHARPNESS</h3>
+<pre class="programlisting">#define GST_VIDEO_RESAMPLER_OPT_SHARPNESS     "GstVideoResampler.sharpness"
+</pre>
+<p>G_TYPE_DOUBLE, specifies sharpness of the filter for
+<em class="parameter"><code>GST_VIDEO_RESAMPLER_METHOD_LANCZOS</code></em>
+. values are clamped between
+0.5 and 1.5. 1.0 is the default.</p>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.21</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-GstVideoScaler.html b/docs/libs/html/gst-plugins-base-libs-GstVideoScaler.html
new file mode 100644
index 0000000..11e9b3f
--- /dev/null
+++ b/docs/libs/html/gst-plugins-base-libs-GstVideoScaler.html
@@ -0,0 +1,595 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GStreamer Base Plugins 1.0 Library Reference Manual: GstVideoScaler</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
+<link rel="up" href="gstreamer-video.html" title="Video Library">
+<link rel="prev" href="gst-plugins-base-libs-GstVideoResampler.html" title="GstVideoResampler">
+<link rel="next" href="gst-plugins-base-libs-gstvideosink.html" title="gstvideosink">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-GstVideoScaler.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="gstreamer-video.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="gst-plugins-base-libs-GstVideoResampler.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-base-libs-gstvideosink.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="gst-plugins-base-libs-GstVideoScaler"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="gst-plugins-base-libs-GstVideoScaler.top_of_page"></a>GstVideoScaler</span></h2>
+<p>GstVideoScaler — Utility object for rescaling video frames</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-GstVideoScaler.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="gst-plugins-base-libs-GstVideoScaler.html#gst-video-scaler-2d" title="gst_video_scaler_2d ()">gst_video_scaler_2d</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="gst-plugins-base-libs-GstVideoScaler.html#GstVideoScaler" title="GstVideoScaler"><span class="returnvalue">GstVideoScaler</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gst-plugins-base-libs-GstVideoScaler.html#gst-video-scaler-combine-packed-YUV" title="gst_video_scaler_combine_packed_YUV ()">gst_video_scaler_combine_packed_YUV</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="gst-plugins-base-libs-GstVideoScaler.html#gst-video-scaler-free" title="gst_video_scaler_free ()">gst_video_scaler_free</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gdouble"><span class="returnvalue">gdouble</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gst-plugins-base-libs-GstVideoScaler.html#gst-video-scaler-get-coeff" title="gst_video_scaler_get_coeff ()">gst_video_scaler_get_coeff</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="gst-plugins-base-libs-GstVideoScaler.html#gst-video-scaler-horizontal" title="gst_video_scaler_horizontal ()">gst_video_scaler_horizontal</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="gst-plugins-base-libs-GstVideoScaler.html#GstVideoScaler" title="GstVideoScaler"><span class="returnvalue">GstVideoScaler</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gst-plugins-base-libs-GstVideoScaler.html#gst-video-scaler-new" title="gst_video_scaler_new ()">gst_video_scaler_new</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="gst-plugins-base-libs-GstVideoScaler.html#gst-video-scaler-vertical" title="gst_video_scaler_vertical ()">gst_video_scaler_vertical</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-GstVideoScaler.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="gst-plugins-base-libs-GstVideoScaler.html#GstVideoScaler" title="GstVideoScaler">GstVideoScaler</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gst-plugins-base-libs-GstVideoScaler.html#GstVideoScalerFlags" title="enum GstVideoScalerFlags">GstVideoScalerFlags</a></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-GstVideoScaler.includes"></a><h2>Includes</h2>
+<pre class="synopsis">#include &lt;gst/video/video-scaler.h&gt;
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-GstVideoScaler.description"></a><h2>Description</h2>
+<p><a class="link" href="gst-plugins-base-libs-GstVideoScaler.html#GstVideoScaler" title="GstVideoScaler"><span class="type">GstVideoScaler</span></a> is a utility object for rescaling and resampling
+video frames using various interpolation / sampling methods.</p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-GstVideoScaler.functions_details"></a><h2>Functions</h2>
+<div class="refsect2">
+<a name="gst-video-scaler-2d"></a><h3>gst_video_scaler_2d ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gst_video_scaler_2d (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoScaler.html#GstVideoScaler" title="GstVideoScaler"><span class="type">GstVideoScaler</span></a> *hscale</code></em>,
+                     <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoScaler.html#GstVideoScaler" title="GstVideoScaler"><span class="type">GstVideoScaler</span></a> *vscale</code></em>,
+                     <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> format</code></em>,
+                     <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> src</code></em>,
+                     <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> src_stride</code></em>,
+                     <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> dest</code></em>,
+                     <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> dest_stride</code></em>,
+                     <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> x</code></em>,
+                     <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> y</code></em>,
+                     <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> width</code></em>,
+                     <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> height</code></em>);</pre>
+<p>Scale a rectangle of pixels in <em class="parameter"><code>src</code></em>
+ with <em class="parameter"><code>src_stride</code></em>
+ to <em class="parameter"><code>dest</code></em>
+ with
+<em class="parameter"><code>dest_stride</code></em>
+ using the horizontal scaler <em class="parameter"><code>hscaler</code></em>
+ and the vertical
+scaler <em class="parameter"><code>vscale</code></em>
+.</p>
+<p>One or both of <em class="parameter"><code>hscale</code></em>
+ and <em class="parameter"><code>vscale</code></em>
+ can be NULL to only perform scaling in
+one dimension or do a copy without scaling.</p>
+<p><em class="parameter"><code>x</code></em>
+ and <em class="parameter"><code>y</code></em>
+ are the coordinates in the destination image to process.</p>
+<div class="refsect3">
+<a name="id-1.2.15.10.7.2.7"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>hscale</p></td>
+<td class="parameter_description"><p>a horzontal <a class="link" href="gst-plugins-base-libs-GstVideoScaler.html#GstVideoScaler" title="GstVideoScaler"><span class="type">GstVideoScaler</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>vscale</p></td>
+<td class="parameter_description"><p>a vertical <a class="link" href="gst-plugins-base-libs-GstVideoScaler.html#GstVideoScaler" title="GstVideoScaler"><span class="type">GstVideoScaler</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>format</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> for <em class="parameter"><code>srcs</code></em>
+and <em class="parameter"><code>dest</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>src</p></td>
+<td class="parameter_description"><p>source pixels</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>src_stride</p></td>
+<td class="parameter_description"><p>source pixels stride</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>dest</p></td>
+<td class="parameter_description"><p>destination pixels</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>dest_stride</p></td>
+<td class="parameter_description"><p>destination pixels stride</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>x</p></td>
+<td class="parameter_description"><p>the horizontal destination offset</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y</p></td>
+<td class="parameter_description"><p>the vertical destination offset</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>width</p></td>
+<td class="parameter_description"><p>the number of output pixels to scale</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>height</p></td>
+<td class="parameter_description"><p>the number of output lines to scale</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-scaler-combine-packed-YUV"></a><h3>gst_video_scaler_combine_packed_YUV ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-GstVideoScaler.html#GstVideoScaler" title="GstVideoScaler"><span class="returnvalue">GstVideoScaler</span></a> *
+gst_video_scaler_combine_packed_YUV (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoScaler.html#GstVideoScaler" title="GstVideoScaler"><span class="type">GstVideoScaler</span></a> *y_scale</code></em>,
+                                     <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoScaler.html#GstVideoScaler" title="GstVideoScaler"><span class="type">GstVideoScaler</span></a> *uv_scale</code></em>,
+                                     <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> in_format</code></em>,
+                                     <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> out_format</code></em>);</pre>
+<p>Combine a scaler for Y and UV into one scaler for the packed <em class="parameter"><code>format</code></em>
+.</p>
+<div class="refsect3">
+<a name="id-1.2.15.10.7.3.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>y_scale</p></td>
+<td class="parameter_description"><p>a scaler for the Y component</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>uv_scale</p></td>
+<td class="parameter_description"><p>a scaler for the U and V components</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>format</p></td>
+<td class="parameter_description"><p>the video format</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.2.15.10.7.3.6"></a><h4>Returns</h4>
+<p> a new horizontal videoscaler for <em class="parameter"><code>format</code></em>
+.</p>
+<p></p>
+</div>
+<p class="since">Since 1.6</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-scaler-free"></a><h3>gst_video_scaler_free ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gst_video_scaler_free (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoScaler.html#GstVideoScaler" title="GstVideoScaler"><span class="type">GstVideoScaler</span></a> *scale</code></em>);</pre>
+<p>Free a previously allocated <a class="link" href="gst-plugins-base-libs-GstVideoScaler.html#GstVideoScaler" title="GstVideoScaler"><span class="type">GstVideoScaler</span></a> <em class="parameter"><code>scale</code></em>
+.</p>
+<div class="refsect3">
+<a name="id-1.2.15.10.7.4.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>scale</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoScaler.html#GstVideoScaler" title="GstVideoScaler"><span class="type">GstVideoScaler</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-scaler-get-coeff"></a><h3>gst_video_scaler_get_coeff ()</h3>
+<pre class="programlisting">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gdouble"><span class="returnvalue">gdouble</span></a> *
+gst_video_scaler_get_coeff (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoScaler.html#GstVideoScaler" title="GstVideoScaler"><span class="type">GstVideoScaler</span></a> *scale</code></em>,
+                            <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> out_offset</code></em>,
+                            <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *in_offset</code></em>,
+                            <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *n_taps</code></em>);</pre>
+<p>For a given pixel at <em class="parameter"><code>out_offset</code></em>
+, get the first required input pixel at
+<em class="parameter"><code>in_offset</code></em>
+ and the <em class="parameter"><code>n_taps</code></em>
+ filter coefficients.</p>
+<p>Note that for interlaced content, <em class="parameter"><code>in_offset</code></em>
+ needs to be incremented with
+2 to get the next input line.</p>
+<div class="refsect3">
+<a name="id-1.2.15.10.7.5.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>scale</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoScaler.html#GstVideoScaler" title="GstVideoScaler"><span class="type">GstVideoScaler</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>out_offset</p></td>
+<td class="parameter_description"><p>an output offset</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>in_offset</p></td>
+<td class="parameter_description"><p>result input offset</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>n_taps</p></td>
+<td class="parameter_description"><p>result n_taps</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.2.15.10.7.5.7"></a><h4>Returns</h4>
+<p> an array of <em class="parameter"><code>n_tap</code></em>
+gdouble values with filter coefficients.</p>
+<p></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-scaler-horizontal"></a><h3>gst_video_scaler_horizontal ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gst_video_scaler_horizontal (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoScaler.html#GstVideoScaler" title="GstVideoScaler"><span class="type">GstVideoScaler</span></a> *scale</code></em>,
+                             <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> format</code></em>,
+                             <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> src</code></em>,
+                             <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> dest</code></em>,
+                             <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> dest_offset</code></em>,
+                             <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> width</code></em>);</pre>
+<p>Horizontally scale the pixels in <em class="parameter"><code>src</code></em>
+ to <em class="parameter"><code>dest</code></em>
+, starting from <em class="parameter"><code>dest_offset</code></em>
+
+for <em class="parameter"><code>width</code></em>
+ samples.</p>
+<div class="refsect3">
+<a name="id-1.2.15.10.7.6.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>scale</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoScaler.html#GstVideoScaler" title="GstVideoScaler"><span class="type">GstVideoScaler</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>format</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> for <em class="parameter"><code>src</code></em>
+and <em class="parameter"><code>dest</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>src</p></td>
+<td class="parameter_description"><p>source pixels</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>dest</p></td>
+<td class="parameter_description"><p>destination pixels</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>dest_offset</p></td>
+<td class="parameter_description"><p>the horizontal destination offset</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>width</p></td>
+<td class="parameter_description"><p>the number of pixels to scale</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-scaler-new"></a><h3>gst_video_scaler_new ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-GstVideoScaler.html#GstVideoScaler" title="GstVideoScaler"><span class="returnvalue">GstVideoScaler</span></a> *
+gst_video_scaler_new (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoResampler.html#GstVideoResamplerMethod" title="enum GstVideoResamplerMethod"><span class="type">GstVideoResamplerMethod</span></a> method</code></em>,
+                      <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoScaler.html#GstVideoScalerFlags" title="enum GstVideoScalerFlags"><span class="type">GstVideoScalerFlags</span></a> flags</code></em>,
+                      <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_taps</code></em>,
+                      <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> in_size</code></em>,
+                      <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> out_size</code></em>,
+                      <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstStructure.html"><span class="type">GstStructure</span></a> *options</code></em>);</pre>
+<p>Make a new <em class="parameter"><code>method</code></em>
+ video scaler. <em class="parameter"><code>in_size</code></em>
+ source lines/pixels will
+be scaled to <em class="parameter"><code>out_size</code></em>
+ destination lines/pixels.</p>
+<p><em class="parameter"><code>n_taps</code></em>
+ specifies the amount of pixels to use from the source for one output
+pixel. If n_taps is 0, this function chooses a good value automatically based
+on the <em class="parameter"><code>method</code></em>
+ and <em class="parameter"><code>in_size</code></em>
+/<em class="parameter"><code>out_size</code></em>
+.</p>
+<div class="refsect3">
+<a name="id-1.2.15.10.7.7.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>method</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoResampler.html#GstVideoResamplerMethod" title="enum GstVideoResamplerMethod"><span class="type">GstVideoResamplerMethod</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p><a class="link" href="gst-plugins-base-libs-GstVideoScaler.html#GstVideoScalerFlags" title="enum GstVideoScalerFlags"><span class="type">GstVideoScalerFlags</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>n_taps</p></td>
+<td class="parameter_description"><p>number of taps to use</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>in_size</p></td>
+<td class="parameter_description"><p>number of source elements</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>out_size</p></td>
+<td class="parameter_description"><p>number of destination elements</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>options</p></td>
+<td class="parameter_description"><p> extra options. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.2.15.10.7.7.7"></a><h4>Returns</h4>
+<p> a <span class="type">GstVideoResample</span></p>
+<p></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-scaler-vertical"></a><h3>gst_video_scaler_vertical ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gst_video_scaler_vertical (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoScaler.html#GstVideoScaler" title="GstVideoScaler"><span class="type">GstVideoScaler</span></a> *scale</code></em>,
+                           <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> format</code></em>,
+                           <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> src_lines[]</code></em>,
+                           <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> dest</code></em>,
+                           <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> dest_offset</code></em>,
+                           <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> width</code></em>);</pre>
+<p>Vertically combine <em class="parameter"><code>width</code></em>
+ pixels in the lines in <em class="parameter"><code>src_lines</code></em>
+ to <em class="parameter"><code>dest</code></em>
+.
+<em class="parameter"><code>dest</code></em>
+ is the location of the target line at <em class="parameter"><code>dest_offset</code></em>
+ and
+<em class="parameter"><code>srcs</code></em>
+ are the input lines for <em class="parameter"><code>dest_offset</code></em>
+, as obtained with
+<code class="function">gst_video_scaler_get_info()</code>.</p>
+<div class="refsect3">
+<a name="id-1.2.15.10.7.8.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>scale</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoScaler.html#GstVideoScaler" title="GstVideoScaler"><span class="type">GstVideoScaler</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>format</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> for <em class="parameter"><code>srcs</code></em>
+and <em class="parameter"><code>dest</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>src_lines</p></td>
+<td class="parameter_description"><p>source pixels lines</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>dest</p></td>
+<td class="parameter_description"><p>destination pixels</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>dest_offset</p></td>
+<td class="parameter_description"><p>the vertical destination offset</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>width</p></td>
+<td class="parameter_description"><p>the number of pixels to scale</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-GstVideoScaler.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstVideoScaler"></a><h3>GstVideoScaler</h3>
+<pre class="programlisting">typedef struct _GstVideoScaler GstVideoScaler;</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVideoScalerFlags"></a><h3>enum GstVideoScalerFlags</h3>
+<p>Different scale flags.</p>
+<div class="refsect3">
+<a name="id-1.2.15.10.8.3.4"></a><h4>Members</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="enum_member_name"><p><a name="GST-VIDEO-SCALER-FLAG-NONE:CAPS"></a>GST_VIDEO_SCALER_FLAG_NONE</p></td>
+<td class="enum_member_description">
+<p>no flags</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-VIDEO-SCALER-FLAG-INTERLACED:CAPS"></a>GST_VIDEO_SCALER_FLAG_INTERLACED</p></td>
+<td class="enum_member_description">
+<p>Set up a scaler for interlaced content</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.21</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-appsink.html b/docs/libs/html/gst-plugins-base-libs-appsink.html
index 58c6008..5eec43d 100644
--- a/docs/libs/html/gst-plugins-base-libs-appsink.html
+++ b/docs/libs/html/gst-plugins-base-libs-appsink.html
@@ -8,15 +8,14 @@
 <link rel="up" href="gstreamer-app.html" title="App Library">
 <link rel="prev" href="gst-plugins-base-libs-appsrc.html" title="appsrc">
 <link rel="next" href="gstreamer-audio.html" title="Audio Library">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-appsink.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-appsink.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-appsink.description" class="shortcut">Description</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="gstreamer-app.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -51,7 +50,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="returnvalue">GstCaps</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-get-caps" title="gst_app_sink_get_caps ()">gst_app_sink_get_caps</a> <span class="c_punctuation">()</span>
@@ -59,7 +58,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-is-eos" title="gst_app_sink_is_eos ()">gst_app_sink_is_eos</a> <span class="c_punctuation">()</span>
@@ -75,7 +74,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-get-emit-signals" title="gst_app_sink_get_emit_signals ()">gst_app_sink_get_emit_signals</a> <span class="c_punctuation">()</span>
@@ -91,7 +90,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-get-max-buffers" title="gst_app_sink_get_max_buffers ()">gst_app_sink_get_max_buffers</a> <span class="c_punctuation">()</span>
@@ -107,7 +106,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-get-drop" title="gst_app_sink_get_drop ()">gst_app_sink_get_drop</a> <span class="c_punctuation">()</span>
@@ -154,11 +153,6 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="gst-plugins-base-libs-appsink.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">
-</pre>
-</div>
-<div class="refsect1">
 <a name="gst-plugins-base-libs-appsink.includes"></a><h2>Includes</h2>
 <pre class="synopsis">#include &lt;gst/app/gstappsink.h&gt;
 </pre>
@@ -182,12 +176,12 @@
 queue size is reached. Note that blocking the streaming thread can negatively
 affect real-time performance and should be avoided.</p>
 <p>If a blocking behaviour is not desirable, setting the "emit-signals" property
-to <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> will make appsink emit the "new-sample" and "new-preroll" signals
+to <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> will make appsink emit the "new-sample" and "new-preroll" signals
 when a sample can be pulled without blocking.</p>
 <p>The "caps" property on appsink can be used to control the formats that
 appsink can receive. This property can contain non-fixed caps, the format of
 the pulled samples can be obtained by getting the sample caps.</p>
-<p>If one of the pull-preroll or pull-sample methods return <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, the appsink
+<p>If one of the pull-preroll or pull-sample methods return <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, the appsink
 is stopped or in the EOS state. You can check for the EOS state with the
 "eos" property or with the <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-is-eos" title="gst_app_sink_is_eos ()"><code class="function">gst_app_sink_is_eos()</code></a> method.</p>
 <p>The eos signal can also be used to be informed when the EOS state is reached
@@ -199,7 +193,7 @@
 <a name="gst-app-sink-set-caps"></a><h3>gst_app_sink_set_caps ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_app_sink_set_caps (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>,
-                       <em class="parameter"><code>const <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>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> *caps</code></em>);</pre>
 <p>Set the capabilities on the appsink element.  This function takes
 a copy of the caps structure. After calling this method, the sink will only
 accept caps that match <em class="parameter"><code>caps</code></em>
@@ -207,7 +201,7 @@
  is non-fixed, you must check the caps
 on the buffers to get the actual used caps.</p>
 <div class="refsect3">
-<a name="id-1.2.5.5.8.2.5"></a><h4>Parameters</h4>
+<a name="id-1.2.5.5.7.2.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -232,12 +226,12 @@
 <hr>
 <div class="refsect2">
 <a name="gst-app-sink-get-caps"></a><h3>gst_app_sink_get_caps ()</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> *
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="returnvalue">GstCaps</span></a> *
 gst_app_sink_get_caps (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>);</pre>
 <p>Get the configured caps on <em class="parameter"><code>appsink</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.5.5.8.3.5"></a><h4>Parameters</h4>
+<a name="id-1.2.5.5.7.3.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -252,23 +246,23 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.5.5.8.3.6"></a><h4>Returns</h4>
-<p> the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> accepted by the sink. <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> after usage.</p>
+<a name="id-1.2.5.5.7.3.6"></a><h4>Returns</h4>
+<p> the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> accepted by the sink. <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html#gst-caps-unref"><code class="function">gst_caps_unref()</code></a> after usage.</p>
 <p></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-app-sink-is-eos"></a><h3>gst_app_sink_is_eos ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_app_sink_is_eos (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>);</pre>
 <p>Check if <em class="parameter"><code>appsink</code></em>
  is EOS, which is when no more samples can be pulled because
 an EOS event was received.</p>
-<p>This function also returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> when the appsink is not in the PAUSED or
+<p>This function also returns <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> when the appsink is not in the PAUSED or
 PLAYING state.</p>
 <div class="refsect3">
-<a name="id-1.2.5.5.8.4.6"></a><h4>Parameters</h4>
+<a name="id-1.2.5.5.7.4.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -283,8 +277,8 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.5.5.8.4.7"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if no more samples can be pulled and the appsink is EOS.</p>
+<a name="id-1.2.5.5.7.4.7"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if no more samples can be pulled and the appsink is EOS.</p>
 <p></p>
 </div>
 </div>
@@ -293,12 +287,12 @@
 <a name="gst-app-sink-set-emit-signals"></a><h3>gst_app_sink_set_emit_signals ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_app_sink_set_emit_signals (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink</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> emit</code></em>);</pre>
+                               <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> emit</code></em>);</pre>
 <p>Make appsink emit the "new-preroll" and "new-sample" signals. This option is
 by default disabled because signal emission is expensive and unneeded when
 the application prefers to operate in pull mode.</p>
 <div class="refsect3">
-<a name="id-1.2.5.5.8.5.5"></a><h4>Parameters</h4>
+<a name="id-1.2.5.5.7.5.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -323,11 +317,11 @@
 <hr>
 <div class="refsect2">
 <a name="gst-app-sink-get-emit-signals"></a><h3>gst_app_sink_get_emit_signals ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_app_sink_get_emit_signals (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>);</pre>
 <p>Check if appsink will emit the "new-preroll" and "new-sample" signals.</p>
 <div class="refsect3">
-<a name="id-1.2.5.5.8.6.5"></a><h4>Parameters</h4>
+<a name="id-1.2.5.5.7.6.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -342,8 +336,8 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.5.5.8.6.6"></a><h4>Returns</h4>
-<p> <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>appsink</code></em>
+<a name="id-1.2.5.5.7.6.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>appsink</code></em>
 is emiting the "new-preroll" and "new-sample"
 signals.</p>
 <p></p>
@@ -354,14 +348,14 @@
 <a name="gst-app-sink-set-max-buffers"></a><h3>gst_app_sink_set_max_buffers ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_app_sink_set_max_buffers (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink</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</code></em>);</pre>
+                              <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> max</code></em>);</pre>
 <p>Set the maximum amount of buffers that can be queued in <em class="parameter"><code>appsink</code></em>
 . After this
 amount of buffers are queued in appsink, any more buffers will block upstream
 elements until a sample is pulled from <em class="parameter"><code>appsink</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.5.5.8.7.5"></a><h4>Parameters</h4>
+<a name="id-1.2.5.5.7.7.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -386,12 +380,12 @@
 <hr>
 <div class="refsect2">
 <a name="gst-app-sink-get-max-buffers"></a><h3>gst_app_sink_get_max_buffers ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_app_sink_get_max_buffers (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>);</pre>
 <p>Get the maximum amount of buffers that can be queued in <em class="parameter"><code>appsink</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.5.5.8.8.5"></a><h4>Parameters</h4>
+<a name="id-1.2.5.5.7.8.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -406,7 +400,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.5.5.8.8.6"></a><h4>Returns</h4>
+<a name="id-1.2.5.5.7.8.6"></a><h4>Returns</h4>
 <p> The maximum amount of buffers that can be queued.</p>
 <p></p>
 </div>
@@ -416,12 +410,12 @@
 <a name="gst-app-sink-set-drop"></a><h3>gst_app_sink_set_drop ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_app_sink_set_drop (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink</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> drop</code></em>);</pre>
+                       <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> drop</code></em>);</pre>
 <p>Instruct <em class="parameter"><code>appsink</code></em>
  to drop old buffers when the maximum amount of queued
 buffers is reached.</p>
 <div class="refsect3">
-<a name="id-1.2.5.5.8.9.5"></a><h4>Parameters</h4>
+<a name="id-1.2.5.5.7.9.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -446,13 +440,13 @@
 <hr>
 <div class="refsect2">
 <a name="gst-app-sink-get-drop"></a><h3>gst_app_sink_get_drop ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_app_sink_get_drop (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>);</pre>
 <p>Check if <em class="parameter"><code>appsink</code></em>
  will drop old buffers when the maximum amount of queued
 buffers is reached.</p>
 <div class="refsect3">
-<a name="id-1.2.5.5.8.10.5"></a><h4>Parameters</h4>
+<a name="id-1.2.5.5.7.10.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -467,8 +461,8 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.5.5.8.10.6"></a><h4>Returns</h4>
-<p> <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>appsink</code></em>
+<a name="id-1.2.5.5.7.10.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>appsink</code></em>
 is dropping old buffers when the queue is
 filled.</p>
 <p></p>
@@ -489,11 +483,11 @@
 <p>Note that the preroll sample will also be returned as the first sample
 when calling <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-pull-sample" title="gst_app_sink_pull_sample ()"><code class="function">gst_app_sink_pull_sample()</code></a>.</p>
 <p>If an EOS event was received before any buffers, this function returns
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. Use <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-is-eos" title="gst_app_sink_is_eos ()"><code class="function">gst_app_sink_is_eos()</code></a> to check for the EOS condition.</p>
+<a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. Use <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-is-eos" title="gst_app_sink_is_eos ()"><code class="function">gst_app_sink_is_eos()</code></a> to check for the EOS condition.</p>
 <p>This function blocks until a preroll sample or EOS is received or the appsink
 element is set to the READY/NULL state.</p>
 <div class="refsect3">
-<a name="id-1.2.5.5.8.11.9"></a><h4>Parameters</h4>
+<a name="id-1.2.5.5.7.11.9"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -508,9 +502,10 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.5.5.8.11.10"></a><h4>Returns</h4>
-<p> a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> or NULL when the appsink is stopped or EOS.</p>
-<p></p>
+<a name="id-1.2.5.5.7.11.10"></a><h4>Returns</h4>
+<p> a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstSample.html"><span class="type">GstSample</span></a> or NULL when the appsink is stopped or EOS.
+Call <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstSample.html#gst-sample-unref"><code class="function">gst_sample_unref()</code></a> after usage. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
 </div>
 <hr>
@@ -526,9 +521,9 @@
 pull samples fast enough, the queued buffers could consume a lot of memory,
 especially when dealing with raw video frames.</p>
 <p>If an EOS event was received before any buffers, this function returns
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. Use <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-is-eos" title="gst_app_sink_is_eos ()"><code class="function">gst_app_sink_is_eos()</code></a> to check for the EOS condition.</p>
+<a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. Use <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-is-eos" title="gst_app_sink_is_eos ()"><code class="function">gst_app_sink_is_eos()</code></a> to check for the EOS condition.</p>
 <div class="refsect3">
-<a name="id-1.2.5.5.8.12.7"></a><h4>Parameters</h4>
+<a name="id-1.2.5.5.7.12.7"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -543,9 +538,10 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.5.5.8.12.8"></a><h4>Returns</h4>
-<p> a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> or NULL when the appsink is stopped or EOS.</p>
-<p></p>
+<a name="id-1.2.5.5.7.12.8"></a><h4>Returns</h4>
+<p> a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstSample.html"><span class="type">GstSample</span></a> or NULL when the appsink is stopped or EOS.
+Call <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstSample.html#gst-sample-unref"><code class="function">gst_sample_unref()</code></a> after usage. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
 </div>
 <hr>
@@ -554,15 +550,15 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_app_sink_set_callbacks (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>,
                             <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSinkCallbacks" title="GstAppSinkCallbacks"><span class="type">GstAppSinkCallbacks</span></a> *callbacks</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><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
+                            <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> notify</code></em>);</pre>
 <p>Set callbacks which will be executed for each new preroll, new sample and eos.
 This is an alternative to using the signals, it has lower overhead and is thus
 less expensive, but also less flexible.</p>
 <p>If callbacks are installed, no signals will be emitted for performance
 reasons.</p>
 <div class="refsect3">
-<a name="id-1.2.5.5.8.13.6"></a><h4>Parameters</h4>
+<a name="id-1.2.5.5.7.13.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -608,7 +604,7 @@
 <p>A set of callbacks that can be installed on the appsink with
 <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-set-callbacks" title="gst_app_sink_set_callbacks ()"><code class="function">gst_app_sink_set_callbacks()</code></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.5.5.9.2.5"></a><h4>Members</h4>
+<a name="id-1.2.5.5.8.2.5"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
@@ -652,6 +648,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-appsrc.html b/docs/libs/html/gst-plugins-base-libs-appsrc.html
index fe804fd..90c9d27 100644
--- a/docs/libs/html/gst-plugins-base-libs-appsrc.html
+++ b/docs/libs/html/gst-plugins-base-libs-appsrc.html
@@ -8,15 +8,14 @@
 <link rel="up" href="gstreamer-app.html" title="App Library">
 <link rel="prev" href="gstreamer-app.html" title="App Library">
 <link rel="next" href="gst-plugins-base-libs-appsink.html" title="appsink">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-appsrc.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-appsrc.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-appsrc.description" class="shortcut">Description</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="gstreamer-app.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -51,7 +50,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="returnvalue">GstCaps</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-get-caps" title="gst_app_src_get_caps ()">gst_app_src_get_caps</a> <span class="c_punctuation">()</span>
@@ -131,7 +130,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-get-emit-signals" title="gst_app_src_get_emit_signals ()">gst_app_src_get_emit_signals</a> <span class="c_punctuation">()</span>
@@ -166,6 +165,14 @@
 <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>
 </td>
 <td class="function_name">
+<a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-push-sample" title="gst_app_src_push_sample ()">gst_app_src_push_sample</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>
+</td>
+<td class="function_name">
 <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-end-of-stream" title="gst_app_src_end_of_stream ()">gst_app_src_end_of_stream</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
@@ -192,11 +199,6 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="gst-plugins-base-libs-appsrc.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">
-</pre>
-</div>
-<div class="refsect1">
 <a name="gst-plugins-base-libs-appsrc.includes"></a><h2>Includes</h2>
 <pre class="synopsis">#include &lt;gst/app/gstappsrc.h&gt;
 </pre>
@@ -212,7 +214,10 @@
 describing the format of the data that will be pushed with appsrc. An
 exception to this is when pushing buffers with unknown caps, in which case no
 caps should be set. This is typically true of file-like sources that push raw
-byte buffers.</p>
+byte buffers. If you don't want to explicitly set the caps you can use
+gst_app_src_push_sample, this method get the caps associated with the
+sample and set them on appsrc replacing any previous setted caps if
+different from that of the sample.</p>
 <p>The main way of handing data to the appsrc element is by calling the
 <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-push-buffer" title="gst_app_src_push_buffer ()"><code class="function">gst_app_src_push_buffer()</code></a> method or by emitting the push-buffer action signal.
 This will put the buffer onto a queue from which appsrc will read from in its
@@ -234,12 +239,12 @@
 new position.</p>
 <p>These signals allow the application to operate the appsrc in two different
 ways:</p>
-<p>The push model, in which the application repeatedly calls the push-buffer method
-with a new buffer. Optionally, the queue size in the appsrc can be controlled
-with the enough-data and need-data signals by respectively stopping/starting
-the push-buffer calls. This is a typical mode of operation for the
-stream-type "stream" and "seekable". Use this model when implementing various
-network protocols or hardware devices.</p>
+<p>The push model, in which the application repeatedly calls the push-buffer/push-sample 
+method with a new buffer/sample. Optionally, the queue size in the appsrc 
+can be controlled with the enough-data and need-data signals by respectively 
+stopping/starting the push-buffer/push-sample calls. This is a typical 
+mode of operation for the stream-type "stream" and "seekable". Use this 
+model when implementing various network protocols or hardware devices.</p>
 <p>The pull model where the need-data signal triggers the next push-buffer call.
 This mode is typically used in the "random-access" stream-type. Use this
 model for file access or other randomly accessable sources. In this mode, a
@@ -260,7 +265,7 @@
 <a name="gst-app-src-set-caps"></a><h3>gst_app_src_set_caps ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_app_src_set_caps (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
-                      <em class="parameter"><code>const <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>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> *caps</code></em>);</pre>
 <p>Set the capabilities on the appsrc element.  This function takes
 a copy of the caps structure. After calling this method, the source will
 only produce caps that match <em class="parameter"><code>caps</code></em>
@@ -268,7 +273,7 @@
  must be fixed and the caps on the
 buffers must match the caps or left NULL.</p>
 <div class="refsect3">
-<a name="id-1.2.5.4.8.2.5"></a><h4>Parameters</h4>
+<a name="id-1.2.5.4.7.2.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -293,12 +298,12 @@
 <hr>
 <div class="refsect2">
 <a name="gst-app-src-get-caps"></a><h3>gst_app_src_get_caps ()</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> *
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="returnvalue">GstCaps</span></a> *
 gst_app_src_get_caps (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>);</pre>
 <p>Get the configured caps on <em class="parameter"><code>appsrc</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.5.4.8.3.5"></a><h4>Parameters</h4>
+<a name="id-1.2.5.4.7.3.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -313,8 +318,8 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.5.4.8.3.6"></a><h4>Returns</h4>
-<p> the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> produced by the source. <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> after usage.</p>
+<a name="id-1.2.5.4.7.3.6"></a><h4>Returns</h4>
+<p> the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> produced by the source. <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html#gst-caps-unref"><code class="function">gst_caps_unref()</code></a> after usage.</p>
 <p></p>
 </div>
 </div>
@@ -329,7 +334,7 @@
  and <em class="parameter"><code>max</code></em>
  respectively.</p>
 <div class="refsect3">
-<a name="id-1.2.5.4.8.4.5"></a><h4>Parameters</h4>
+<a name="id-1.2.5.4.7.4.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -370,7 +375,7 @@
  is set to -1, the
 default latency calculations for pseudo-live sources will be used.</p>
 <div class="refsect3">
-<a name="id-1.2.5.4.8.5.5"></a><h4>Parameters</h4>
+<a name="id-1.2.5.4.7.5.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -406,7 +411,7 @@
 <p>Set the size of the stream in bytes. A value of -1 means that the size is
 not known.</p>
 <div class="refsect3">
-<a name="id-1.2.5.4.8.6.5"></a><h4>Parameters</h4>
+<a name="id-1.2.5.4.7.6.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -436,7 +441,7 @@
 <p>Get the size of the stream in bytes. A value of -1 means that the size is
 not known.</p>
 <div class="refsect3">
-<a name="id-1.2.5.4.8.7.5"></a><h4>Parameters</h4>
+<a name="id-1.2.5.4.7.7.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -451,7 +456,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.5.4.8.7.6"></a><h4>Returns</h4>
+<a name="id-1.2.5.4.7.7.6"></a><h4>Returns</h4>
 <p> the size of the stream previously set with <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-set-size" title="gst_app_src_set_size ()"><code class="function">gst_app_src_set_size()</code></a>;</p>
 <p></p>
 </div>
@@ -467,7 +472,7 @@
 be connected to.</p>
 <p>A stream_type stream</p>
 <div class="refsect3">
-<a name="id-1.2.5.4.8.8.6"></a><h4>Parameters</h4>
+<a name="id-1.2.5.4.7.8.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -498,7 +503,7 @@
 
 with <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-set-stream-type" title="gst_app_src_set_stream_type ()"><code class="function">gst_app_src_set_stream_type()</code></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.5.4.8.9.5"></a><h4>Parameters</h4>
+<a name="id-1.2.5.4.7.9.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -513,7 +518,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.5.4.8.9.6"></a><h4>Returns</h4>
+<a name="id-1.2.5.4.7.9.6"></a><h4>Returns</h4>
 <p> the stream type.</p>
 <p></p>
 </div>
@@ -530,7 +535,7 @@
  will emit the
 "enough-data" signal.</p>
 <div class="refsect3">
-<a name="id-1.2.5.4.8.10.5"></a><h4>Parameters</h4>
+<a name="id-1.2.5.4.7.10.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -560,7 +565,7 @@
 <p>Get the maximum amount of bytes that can be queued in <em class="parameter"><code>appsrc</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.5.4.8.11.5"></a><h4>Parameters</h4>
+<a name="id-1.2.5.4.7.11.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -575,7 +580,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.5.4.8.11.6"></a><h4>Returns</h4>
+<a name="id-1.2.5.4.7.11.6"></a><h4>Returns</h4>
 <p> The maximum amount of bytes that can be queued.</p>
 <p></p>
 </div>
@@ -588,7 +593,7 @@
 <p>Get the number of currently queued bytes inside <em class="parameter"><code>appsrc</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.5.4.8.12.5"></a><h4>Parameters</h4>
+<a name="id-1.2.5.4.7.12.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -603,7 +608,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.5.4.8.12.6"></a><h4>Returns</h4>
+<a name="id-1.2.5.4.7.12.6"></a><h4>Returns</h4>
 <p> The number of currently queued bytes.</p>
 <p></p>
 </div>
@@ -612,11 +617,11 @@
 <hr>
 <div class="refsect2">
 <a name="gst-app-src-get-emit-signals"></a><h3>gst_app_src_get_emit_signals ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_app_src_get_emit_signals (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>);</pre>
 <p>Check if appsrc will emit the "new-preroll" and "new-buffer" signals.</p>
 <div class="refsect3">
-<a name="id-1.2.5.4.8.13.5"></a><h4>Parameters</h4>
+<a name="id-1.2.5.4.7.13.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -631,8 +636,8 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.5.4.8.13.6"></a><h4>Returns</h4>
-<p> <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>appsrc</code></em>
+<a name="id-1.2.5.4.7.13.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>appsrc</code></em>
 is emitting the "new-preroll" and "new-buffer"
 signals.</p>
 <p></p>
@@ -643,12 +648,12 @@
 <a name="gst-app-src-set-emit-signals"></a><h3>gst_app_src_set_emit_signals ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_app_src_set_emit_signals (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</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> emit</code></em>);</pre>
+                              <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> emit</code></em>);</pre>
 <p>Make appsrc emit the "new-preroll" and "new-buffer" signals. This option is
 by default disabled because signal emission is expensive and unneeded when
 the application prefers to operate in pull mode.</p>
 <div class="refsect3">
-<a name="id-1.2.5.4.8.14.5"></a><h4>Parameters</h4>
+<a name="id-1.2.5.4.7.14.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -676,8 +681,8 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_app_src_set_callbacks (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
                            <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrcCallbacks" title="GstAppSrcCallbacks"><span class="type">GstAppSrcCallbacks</span></a> *callbacks</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><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
+                           <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> notify</code></em>);</pre>
 <p>Set callbacks which will be executed when data is needed, enough data has
 been collected or when a seek should be performed.
 This is an alternative to using the signals, it has lower overhead and is thus
@@ -685,7 +690,7 @@
 <p>If callbacks are installed, no signals will be emitted for performance
 reasons.</p>
 <div class="refsect3">
-<a name="id-1.2.5.4.8.15.6"></a><h4>Parameters</h4>
+<a name="id-1.2.5.4.7.15.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -722,13 +727,13 @@
 <a name="gst-app-src-push-buffer"></a><h3>gst_app_src_push_buffer ()</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_app_src_push_buffer (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</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="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> *buffer</code></em>);</pre>
 <p>Adds a buffer to the queue of buffers that the appsrc element will
 push to its source pad.  This function takes ownership of the buffer.</p>
 <p>When the block property is TRUE, this function can block until free
 space becomes available in the queue.</p>
 <div class="refsect3">
-<a name="id-1.2.5.4.8.16.6"></a><h4>Parameters</h4>
+<a name="id-1.2.5.4.7.16.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -743,15 +748,15 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p> a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> to push. </p></td>
+<td class="parameter_description"><p> a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> to push. </p></td>
 <td class="parameter_annotations"><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
 </tr>
 </tbody>
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.5.4.8.16.7"></a><h4>Returns</h4>
-<p> <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> when the buffer was successfuly queued.
+<a name="id-1.2.5.4.7.16.7"></a><h4>Returns</h4>
+<p> <span class="type">GST_FLOW_OK</span> when the buffer was successfuly queued.
 <span class="type">GST_FLOW_FLUSHING</span> when <em class="parameter"><code>appsrc</code></em>
 is not PAUSED or PLAYING.
 <span class="type">GST_FLOW_EOS</span> when EOS occured.</p>
@@ -760,13 +765,58 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-app-src-push-sample"></a><h3>gst_app_src_push_sample ()</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_app_src_push_sample (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
+                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstSample.html"><span class="type">GstSample</span></a> *sample</code></em>);</pre>
+<p>Extract a buffer from the provided sample and adds it to the queue of 
+buffers that the appsrc element will push to its source pad. Any 
+previous caps setted on appsrc will be replaced by the caps associated 
+with the sample if not equal.</p>
+<p>When the block property is TRUE, this function can block until free
+space becomes available in the queue.</p>
+<div class="refsect3">
+<a name="id-1.2.5.4.7.17.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>appsrc</p></td>
+<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>sample</p></td>
+<td class="parameter_description"><p> a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstSample.html"><span class="type">GstSample</span></a> from wich extract buffer to
+push and caps to set. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.2.5.4.7.17.7"></a><h4>Returns</h4>
+<p> <span class="type">GST_FLOW_OK</span> when the buffer was successfuly queued.
+<span class="type">GST_FLOW_FLUSHING</span> when <em class="parameter"><code>appsrc</code></em>
+is not PAUSED or PLAYING.
+<span class="type">GST_FLOW_EOS</span> when EOS occured.</p>
+<p></p>
+</div>
+<p class="since">Since 1.6</p>
+</div>
+<hr>
+<div class="refsect2">
 <a name="gst-app-src-end-of-stream"></a><h3>gst_app_src_end_of_stream ()</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_app_src_end_of_stream (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>);</pre>
 <p>Indicates to the appsrc element that the last buffer queued in the
 element is the last buffer of the stream.</p>
 <div class="refsect3">
-<a name="id-1.2.5.4.8.17.5"></a><h4>Parameters</h4>
+<a name="id-1.2.5.4.7.18.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -781,8 +831,8 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.5.4.8.17.6"></a><h4>Returns</h4>
-<p> <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> when the EOS was successfuly queued.
+<a name="id-1.2.5.4.7.18.6"></a><h4>Returns</h4>
+<p> <span class="type">GST_FLOW_OK</span> when the EOS was successfuly queued.
 <span class="type">GST_FLOW_FLUSHING</span> when <em class="parameter"><code>appsrc</code></em>
 is not PAUSED or PLAYING.</p>
 <p></p>
@@ -795,7 +845,7 @@
 <a name="GstAppStreamType"></a><h3>enum GstAppStreamType</h3>
 <p>The stream type.</p>
 <div class="refsect3">
-<a name="id-1.2.5.4.9.2.4"></a><h4>Members</h4>
+<a name="id-1.2.5.4.8.2.4"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -843,7 +893,7 @@
 <p>A set of callbacks that can be installed on the appsrc with
 <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-set-callbacks" title="gst_app_src_set_callbacks ()"><code class="function">gst_app_src_set_callbacks()</code></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.5.4.9.3.5"></a><h4>Members</h4>
+<a name="id-1.2.5.4.8.3.5"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
@@ -887,6 +937,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-dmabuf.html b/docs/libs/html/gst-plugins-base-libs-dmabuf.html
index 00aab88..20e9fe0 100644
--- a/docs/libs/html/gst-plugins-base-libs-dmabuf.html
+++ b/docs/libs/html/gst-plugins-base-libs-dmabuf.html
@@ -8,15 +8,14 @@
 <link rel="up" href="gstreamer-allocators.html" title="Allocators Library">
 <link rel="prev" href="gstreamer-allocators.html" title="Allocators Library">
 <link rel="next" href="gstreamer-app.html" title="App Library">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-dmabuf.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-dmabuf.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-dmabuf.description" class="shortcut">Description</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="gstreamer-allocators.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -50,7 +49,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-dmabuf.html#gst-dmabuf-memory-get-fd" title="gst_dmabuf_memory_get_fd ()">gst_dmabuf_memory_get_fd</a> <span class="c_punctuation">()</span>
@@ -58,7 +57,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-dmabuf.html#gst-is-dmabuf-memory" title="gst_is_dmabuf_memory ()">gst_is_dmabuf_memory</a> <span class="c_punctuation">()</span>
@@ -68,11 +67,6 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="gst-plugins-base-libs-dmabuf.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">
-</pre>
-</div>
-<div class="refsect1">
 <a name="gst-plugins-base-libs-dmabuf.includes"></a><h2>Includes</h2>
 <pre class="synopsis">#include &lt;gst/allocators/gstdmabuf.h&gt;
 </pre>
@@ -86,11 +80,11 @@
 <a name="gst-dmabuf-allocator-alloc"></a><h3>gst_dmabuf_allocator_alloc ()</h3>
 <pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMemory.html"><span class="returnvalue">GstMemory</span></a> *
 gst_dmabuf_allocator_alloc (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstAllocator.html"><span class="type">GstAllocator</span></a> *allocator</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> fd</code></em>,
+                            <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> fd</code></em>,
                             <em class="parameter"><code><span class="type">gsize</span> size</code></em>);</pre>
 <p>Return a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMemory.html"><code class="literal">GstMemory</code></a> that wraps a dmabuf file descriptor.</p>
 <div class="refsect3">
-<a name="id-1.2.4.3.7.2.5"></a><h4>Parameters</h4>
+<a name="id-1.2.4.3.6.2.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -101,7 +95,7 @@
 <tr>
 <td class="parameter_name"><p>allocator</p></td>
 <td class="parameter_description"><p> allocator to be used for this memory. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
 </tr>
 <tr>
 <td class="parameter_name"><p>fd</p></td>
@@ -117,7 +111,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.4.3.7.2.6"></a><h4>Returns</h4>
+<a name="id-1.2.4.3.6.2.6"></a><h4>Returns</h4>
 <p> a GstMemory based on <em class="parameter"><code>allocator</code></em>
 .
 When the buffer will be released dmabuf allocator will close the <em class="parameter"><code>fd</code></em>
@@ -130,12 +124,12 @@
 <hr>
 <div class="refsect2">
 <a name="gst-dmabuf-memory-get-fd"></a><h3>gst_dmabuf_memory_get_fd ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
 gst_dmabuf_memory_get_fd (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMemory.html"><span class="type">GstMemory</span></a> *mem</code></em>);</pre>
 <p>Return the file descriptor associated with <em class="parameter"><code>mem</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.4.3.7.3.5"></a><h4>Parameters</h4>
+<a name="id-1.2.4.3.6.3.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -150,8 +144,10 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.4.3.7.3.6"></a><h4>Returns</h4>
-<p> the file descriptor associated with the memory, or -1</p>
+<a name="id-1.2.4.3.6.3.6"></a><h4>Returns</h4>
+<p> the file descriptor associated with the memory, or -1.  The file
+descriptor is still owned by the GstMemory.  Use dup to take a copy
+if you intend to use it beyond the lifetime of this GstMemory.</p>
 <p></p>
 </div>
 <p class="since">Since 1.2</p>
@@ -159,12 +155,12 @@
 <hr>
 <div class="refsect2">
 <a name="gst-is-dmabuf-memory"></a><h3>gst_is_dmabuf_memory ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_is_dmabuf_memory (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMemory.html"><span class="type">GstMemory</span></a> *mem</code></em>);</pre>
 <p>Check if <em class="parameter"><code>mem</code></em>
  is dmabuf memory.</p>
 <div class="refsect3">
-<a name="id-1.2.4.3.7.4.5"></a><h4>Parameters</h4>
+<a name="id-1.2.4.3.6.4.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -179,9 +175,9 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.4.3.7.4.6"></a><h4>Returns</h4>
-<p> <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>mem</code></em>
-is dmabuf memory, otherwise <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a></p>
+<a name="id-1.2.4.3.6.4.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>mem</code></em>
+is dmabuf memory, otherwise <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a></p>
 <p></p>
 </div>
 <p class="since">Since 1.2</p>
@@ -197,6 +193,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-encoding-profile.html b/docs/libs/html/gst-plugins-base-libs-encoding-profile.html
index f52aa61..913bed9 100644
--- a/docs/libs/html/gst-plugins-base-libs-encoding-profile.html
+++ b/docs/libs/html/gst-plugins-base-libs-encoding-profile.html
@@ -8,15 +8,15 @@
 <link rel="up" href="gstreamer-base-utils.html" title="Base Utils Library">
 <link rel="prev" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">
 <link rel="next" href="gstreamer-video.html" title="Video Library">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-encoding-profile.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-encoding-profile.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> 
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-encoding-profile.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-encoding-profile.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
                   <a href="#gst-plugins-base-libs-encoding-profile.properties" class="shortcut">Properties</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
@@ -70,14 +70,14 @@
 </td>
 </tr>
 <tr>
-<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<td class="function_type">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-name" title="gst_encoding_profile_get_name ()">gst_encoding_profile_get_name</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<td class="function_type">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-description" title="gst_encoding_profile_get_description ()">gst_encoding_profile_get_description</a> <span class="c_punctuation">()</span>
@@ -85,21 +85,21 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="returnvalue">GstCaps</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-format" title="gst_encoding_profile_get_format ()">gst_encoding_profile_get_format</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<td class="function_type">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-preset" title="gst_encoding_profile_get_preset ()">gst_encoding_profile_get_preset</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<td class="function_type">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-preset-name" title="gst_encoding_profile_get_preset_name ()">gst_encoding_profile_get_preset_name</a> <span class="c_punctuation">()</span>
@@ -107,7 +107,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-presence" title="gst_encoding_profile_get_presence ()">gst_encoding_profile_get_presence</a> <span class="c_punctuation">()</span>
@@ -115,14 +115,14 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="returnvalue">GstCaps</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-restriction" title="gst_encoding_profile_get_restriction ()">gst_encoding_profile_get_restriction</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<td class="function_type">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-file-extension" title="gst_encoding_profile_get_file_extension ()">gst_encoding_profile_get_file_extension</a> <span class="c_punctuation">()</span>
@@ -186,7 +186,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-is-equal" title="gst_encoding_profile_is_equal ()">gst_encoding_profile_is_equal</a> <span class="c_punctuation">()</span>
@@ -194,14 +194,14 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="returnvalue">GstCaps</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-input-caps" title="gst_encoding_profile_get_input_caps ()">gst_encoding_profile_get_input_caps</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<td class="function_type">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-type-nick" title="gst_encoding_profile_get_type_nick ()">gst_encoding_profile_get_type_nick</a> <span class="c_punctuation">()</span>
@@ -217,7 +217,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-container-profile-add-profile" title="gst_encoding_container_profile_add_profile ()">gst_encoding_container_profile_add_profile</a> <span class="c_punctuation">()</span>
@@ -225,14 +225,14 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-container-profile-contains-profile" title="gst_encoding_container_profile_contains_profile ()">gst_encoding_container_profile_contains_profile</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
+<td class="function_type">const <a href="https://developer.gnome.org/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-container-profile-get-profiles" title="gst_encoding_container_profile_get_profiles ()">gst_encoding_container_profile_get_profiles</a> <span class="c_punctuation">()</span>
@@ -256,7 +256,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-video-profile-get-pass" title="gst_encoding_video_profile_get_pass ()">gst_encoding_video_profile_get_pass</a> <span class="c_punctuation">()</span>
@@ -264,7 +264,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-video-profile-get-variableframerate" title="gst_encoding_video_profile_get_variableframerate ()">gst_encoding_video_profile_get_variableframerate</a> <span class="c_punctuation">()</span>
@@ -307,28 +307,28 @@
 </td>
 </tr>
 <tr>
-<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<td class="function_type">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-get-name" title="gst_encoding_target_get_name ()">gst_encoding_target_get_name</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<td class="function_type">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-get-category" title="gst_encoding_target_get_category ()">gst_encoding_target_get_category</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<td class="function_type">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-get-description" title="gst_encoding_target_get_description ()">gst_encoding_target_get_description</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
+<td class="function_type">const <a href="https://developer.gnome.org/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-get-profiles" title="gst_encoding_target_get_profiles ()">gst_encoding_target_get_profiles</a> <span class="c_punctuation">()</span>
@@ -344,7 +344,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-add-profile" title="gst_encoding_target_add_profile ()">gst_encoding_target_add_profile</a> <span class="c_punctuation">()</span>
@@ -352,7 +352,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-save" title="gst_encoding_target_save ()">gst_encoding_target_save</a> <span class="c_punctuation">()</span>
@@ -360,7 +360,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-save-to-file" title="gst_encoding_target_save_to_file ()">gst_encoding_target_save_to_file</a> <span class="c_punctuation">()</span>
@@ -384,7 +384,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
+<a href="https://developer.gnome.org/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-list-all-targets" title="gst_encoding_list_all_targets ()">gst_encoding_list_all_targets</a> <span class="c_punctuation">()</span>
@@ -392,7 +392,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
+<a href="https://developer.gnome.org/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-list-available-categories" title="gst_encoding_list_available_categories ()">gst_encoding_list_available_categories</a> <span class="c_punctuation">()</span>
@@ -411,7 +411,7 @@
 </colgroup>
 <tbody><tr>
 <td class="property_type">
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *</td>
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> *</td>
 <td class="property_name"><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile--restriction-caps" title="The “restriction-caps” property">restriction-caps</a></td>
 <td class="property_flags">Read / Write</td>
 </tr></tbody>
@@ -466,7 +466,7 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-encoding-profile.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+<pre class="screen">    <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
     <span class="lineart">├──</span> <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile">GstEncodingProfile</a>
     <span class="lineart">│</span>   <span class="lineart">├──</span> GstEncodingAudioProfile
     <span class="lineart">│</span>   <span class="lineart">├──</span> GstEncodingContainerProfile
@@ -555,21 +555,21 @@
  GstEncodingContainerProfile <span class="gtkdoc opt">*</span>prof<span class="gtkdoc opt">;</span>
  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-from-string">gst_caps_from_string</a></span><span class="gtkdoc opt">(</span><span class="string">&quot;application/ogg&quot;</span><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/GstCaps.html#gst-caps-from-string">gst_caps_from_string</a></span><span class="gtkdoc opt">(</span><span class="string">&quot;application/ogg&quot;</span><span class="gtkdoc opt">);</span>
  prof <span class="gtkdoc opt">=</span> <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-encoding-profile.html#gst-encoding-container-profile-new">gst_encoding_container_profile_new</a></span><span class="gtkdoc opt">(</span><span class="string">&quot;Ogg audio/video&quot;</span><span class="gtkdoc opt">,</span>
     <span class="string">&quot;Standard OGG/THEORA/VORBIS&quot;</span><span class="gtkdoc opt">,</span>
     caps<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-GstCaps.html#gst-caps-unref">gst_caps_unref</a></span> <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/GstCaps.html#gst-caps-unref">gst_caps_unref</a></span> <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-from-string">gst_caps_from_string</a></span><span class="gtkdoc opt">(</span><span class="string">&quot;video/x-theora&quot;</span><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/GstCaps.html#gst-caps-from-string">gst_caps_from_string</a></span><span class="gtkdoc opt">(</span><span class="string">&quot;video/x-theora&quot;</span><span class="gtkdoc opt">);</span>
  <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-encoding-profile.html#gst-encoding-container-profile-add-profile">gst_encoding_container_profile_add_profile</a></span><span class="gtkdoc opt">(</span>prof<span class="gtkdoc opt">,</span>
       <span class="gtkdoc opt">(</span>GstEncodingProfile<span class="gtkdoc opt">*)</span> <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-encoding-profile.html#gst-encoding-video-profile-new">gst_encoding_video_profile_new</a></span><span class="gtkdoc opt">(</span>caps<span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">,</span> <span class="number">0</span><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-unref">gst_caps_unref</a></span> <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/GstCaps.html#gst-caps-unref">gst_caps_unref</a></span> <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-from-string">gst_caps_from_string</a></span><span class="gtkdoc opt">(</span><span class="string">&quot;audio/x-vorbis&quot;</span><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/GstCaps.html#gst-caps-from-string">gst_caps_from_string</a></span><span class="gtkdoc opt">(</span><span class="string">&quot;audio/x-vorbis&quot;</span><span class="gtkdoc opt">);</span>
  <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-encoding-profile.html#gst-encoding-container-profile-add-profile">gst_encoding_container_profile_add_profile</a></span><span class="gtkdoc opt">(</span>prof<span class="gtkdoc opt">,</span>
       <span class="gtkdoc opt">(</span>GstEncodingProfile<span class="gtkdoc opt">*)</span> <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-encoding-profile.html#gst-encoding-audio-profile-new">gst_encoding_audio_profile_new</a></span><span class="gtkdoc opt">(</span>caps<span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">,</span> <span class="number">0</span><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-unref">gst_caps_unref</a></span> <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/GstCaps.html#gst-caps-unref">gst_caps_unref</a></span> <span class="gtkdoc opt">(</span>caps<span class="gtkdoc opt">);</span>
 
  <span class="keyword">return</span> <span class="gtkdoc opt">(</span>GstEncodingProfile<span class="gtkdoc opt">*)</span> prof<span class="gtkdoc opt">;</span>
 <span class="gtkdoc opt">}</span></pre></td>
@@ -583,7 +583,96 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.14.10.13.4"></a><h3>Example: Listing categories, targets and profiles</h3>
+<a name="id-1.2.14.10.13.4"></a><h3>Example: Using an encoder preset with a profile</h3>
+<p>
+</p>
+<div class="informalexample">
+  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+    <tbody>
+      <tr>
+        <td class="listing_lines" align="right"><pre>1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36</pre></td>
+        <td class="listing_code"><pre class="programlisting"><span class="gtkdoc ppc">#include &lt;gst/pbutils/encoding-profile.h&gt;</span>
+<span class="gtkdoc opt">...</span>
+GstEncodingProfile <span class="gtkdoc opt">*</span>
+<span class="function">create_ogg_theora_profile</span><span class="gtkdoc opt">(</span><span class="gtkdoc kwb">void</span><span class="gtkdoc opt">)</span>
+<span class="gtkdoc opt">{</span>
+ GstEncodingVideoProfile <span class="gtkdoc opt">*</span>v<span class="gtkdoc opt">;</span>
+ GstEncodingAudioProfile <span class="gtkdoc opt">*</span>a<span class="gtkdoc opt">;</span>
+ GstEncodingContainerProfile <span class="gtkdoc opt">*</span>prof<span class="gtkdoc opt">;</span>
+ GstCaps <span class="gtkdoc opt">*</span>caps<span class="gtkdoc opt">;</span>
+ GstPreset <span class="gtkdoc opt">*</span>preset<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/GstCaps.html#gst-caps-from-string">gst_caps_from_string</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;application/ogg&quot;</span><span class="gtkdoc opt">);</span>
+ prof <span class="gtkdoc opt">=</span> <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-encoding-profile.html#gst-encoding-container-profile-new">gst_encoding_container_profile_new</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;Ogg audio/video&quot;</span><span class="gtkdoc opt">,</span>
+    <span class="string">&quot;Standard OGG/THEORA/VORBIS&quot;</span><span class="gtkdoc opt">,</span>
+    caps<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/GstCaps.html#gst-caps-unref">gst_caps_unref</a></span> <span class="gtkdoc opt">(</span>caps<span class="gtkdoc opt">);</span>
+
+ preset <span class="gtkdoc opt">=</span> <span class="function">GST_PRESET</span> <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-make">gst_element_factory_make</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;theoraenc&quot;</span><span class="gtkdoc opt">,</span> <span class="string">&quot;theorapreset&quot;</span><span class="gtkdoc opt">));</span>
+ <span class="function"><a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-set">g_object_set</a></span> <span class="gtkdoc opt">(</span>preset<span class="gtkdoc opt">,</span> <span class="string">&quot;bitrate&quot;</span><span class="gtkdoc opt">,</span> <span class="number">1000</span><span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">);</span>
+ <span class="gtkdoc slc">// The preset will be saved on the filesystem,</span>
+ <span class="gtkdoc slc">// so try to use a descriptive name</span>
+ <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPreset.html#gst-preset-save-preset">gst_preset_save_preset</a></span> <span class="gtkdoc opt">(</span>preset<span class="gtkdoc opt">,</span> <span class="string">&quot;theora_bitrate_preset&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-unref">gst_object_unref</a></span> <span class="gtkdoc opt">(</span>preset<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/GstCaps.html#gst-caps-from-string">gst_caps_from_string</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;video/x-theora&quot;</span><span class="gtkdoc opt">);</span>
+ v <span class="gtkdoc opt">=</span> <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-encoding-profile.html#gst-encoding-video-profile-new">gst_encoding_video_profile_new</a></span> <span class="gtkdoc opt">(</span>caps<span class="gtkdoc opt">,</span> <span class="string">&quot;theorapreset&quot;</span><span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">);</span>
+ <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-encoding-profile.html#gst-encoding-container-profile-add-profile">gst_encoding_container_profile_add_profile</a></span> <span class="gtkdoc opt">(</span>prof<span class="gtkdoc opt">, (</span>GstEncodingProfile<span class="gtkdoc opt">*)</span> v<span class="gtkdoc opt">);</span>
+ <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html#gst-caps-unref">gst_caps_unref</a></span> <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/GstCaps.html#gst-caps-from-string">gst_caps_from_string</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;audio/x-vorbis&quot;</span><span class="gtkdoc opt">);</span>
+ a <span class="gtkdoc opt">=</span> <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-encoding-profile.html#gst-encoding-audio-profile-new">gst_encoding_audio_profile_new</a></span> <span class="gtkdoc opt">(</span>caps<span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">);</span>
+ <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-encoding-profile.html#gst-encoding-container-profile-add-profile">gst_encoding_container_profile_add_profile</a></span> <span class="gtkdoc opt">(</span>prof<span class="gtkdoc opt">, (</span>GstEncodingProfile<span class="gtkdoc opt">*)</span> a<span class="gtkdoc opt">);</span>
+ <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html#gst-caps-unref">gst_caps_unref</a></span> <span class="gtkdoc opt">(</span>caps<span class="gtkdoc opt">);</span>
+
+ <span class="keyword">return</span> <span class="gtkdoc opt">(</span>GstEncodingProfile<span class="gtkdoc opt">*)</span> prof<span class="gtkdoc opt">;</span>
+<span class="gtkdoc opt">}</span></pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="id-1.2.14.10.13.5"></a><h3>Example: Listing categories, targets and profiles</h3>
 <p>
 </p>
 <div class="informalexample">
@@ -623,7 +712,7 @@
 GList <span class="gtkdoc opt">*</span>categories<span class="gtkdoc opt">, *</span>tmpc<span class="gtkdoc opt">;</span>
 GList <span class="gtkdoc opt">*</span>targets<span class="gtkdoc opt">, *</span>tmpt<span class="gtkdoc opt">;</span>
 <span class="gtkdoc opt">...</span>
-categories <span class="gtkdoc opt">=</span> <span class="function">gst_encoding_target_list_available_categories</span><span class="gtkdoc opt">();</span>
+categories <span class="gtkdoc opt">=</span> <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-encoding-profile.html#gst-encoding-list-available-categories">gst_encoding_list_available_categories</a></span> <span class="gtkdoc opt">();</span>
 
 <span class="gtkdoc opt">...</span> Show available categories to user <span class="gtkdoc opt">...</span>
 
@@ -632,16 +721,16 @@
 
   <span class="gtkdoc opt">...</span> <span class="keyword">and</span> we can list all targets within that category <span class="gtkdoc opt">...</span>
 
-  targets <span class="gtkdoc opt">=</span> <span class="function">gst_encoding_target_list_all</span> <span class="gtkdoc opt">(</span>category<span class="gtkdoc opt">);</span>
+  targets <span class="gtkdoc opt">=</span> <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-encoding-profile.html#gst-encoding-list-all-targets">gst_encoding_list_all_targets</a></span> <span class="gtkdoc opt">(</span>category<span class="gtkdoc opt">);</span>
 
   <span class="gtkdoc opt">...</span> <span class="keyword">and</span> show a list to our users <span class="gtkdoc opt">...</span>
 
-  <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#g-list-foreach">g_list_foreach</a></span> <span class="gtkdoc opt">(</span>targets<span class="gtkdoc opt">, (</span>GFunc<span class="gtkdoc opt">)</span> gst_encoding_target_unref<span class="gtkdoc opt">,</span> NULL<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>targets<span class="gtkdoc opt">);</span>
+  <span class="function"><a href="https://developer.gnome.org/glib/unstable/glib-Doubly-Linked-Lists.html#g-list-foreach">g_list_foreach</a></span> <span class="gtkdoc opt">(</span>targets<span class="gtkdoc opt">, (</span>GFunc<span class="gtkdoc opt">)</span> gst_encoding_target_unref<span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">);</span>
+  <span class="function"><a href="https://developer.gnome.org/glib/unstable/glib-Doubly-Linked-Lists.html#g-list-free">g_list_free</a></span> <span class="gtkdoc opt">(</span>targets<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-foreach">g_list_foreach</a></span> <span class="gtkdoc opt">(</span>categories<span class="gtkdoc opt">, (</span>GFunc<span class="gtkdoc opt">)</span> g_free<span class="gtkdoc opt">,</span> NULL<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>categories<span class="gtkdoc opt">);</span>
+<span class="function"><a href="https://developer.gnome.org/glib/unstable/glib-Doubly-Linked-Lists.html#g-list-foreach">g_list_foreach</a></span> <span class="gtkdoc opt">(</span>categories<span class="gtkdoc opt">, (</span>GFunc<span class="gtkdoc opt">)</span> g_free<span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">);</span>
+<span class="function"><a href="https://developer.gnome.org/glib/unstable/glib-Doubly-Linked-Lists.html#g-list-free">g_list_free</a></span> <span class="gtkdoc opt">(</span>categories<span class="gtkdoc opt">);</span>
 
 <span class="gtkdoc opt">...</span></pre></td>
       </tr>
@@ -705,9 +794,9 @@
 <div class="refsect2">
 <a name="gst-encoding-profile-find"></a><h3>gst_encoding_profile_find ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="returnvalue">GstEncodingProfile</span></a> *
-gst_encoding_profile_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> *targetname</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> *profilename</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> *category</code></em>);</pre>
+gst_encoding_profile_find (<em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *targetname</code></em>,
+                           <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *profilename</code></em>,
+                           <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *category</code></em>);</pre>
 <p>Find the <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> with the specified name and category.</p>
 <div class="refsect3">
 <a name="id-1.2.14.10.14.4.5"></a><h4>Parameters</h4>
@@ -730,15 +819,15 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>category</p></td>
-<td class="parameter_description"><p> The target category. Can be <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
+<td class="parameter_description"><p> The target category. Can be <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
 </tr>
 </tbody>
 </table></div>
 </div>
 <div class="refsect3">
 <a name="id-1.2.14.10.14.4.6"></a><h4>Returns</h4>
-<p> The matching <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p>
+<p> The matching <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
 </div>
@@ -748,7 +837,7 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="returnvalue">GstEncodingProfile</span></a> *
 gst_encoding_profile_from_discoverer (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);</pre>
 <p>Creates a <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> matching the formats from the given
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a>. Streams other than audio or video (eg,
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a>. Streams other than audio or video (eg,
 subtitles), are currently ignored.</p>
 <div class="refsect3">
 <a name="id-1.2.14.10.14.5.5"></a><h4>Parameters</h4>
@@ -767,14 +856,14 @@
 </div>
 <div class="refsect3">
 <a name="id-1.2.14.10.14.5.6"></a><h4>Returns</h4>
-<p> The new <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p>
+<p> The new <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-encoding-profile-get-name"></a><h3>gst_encoding_profile_get_name ()</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> *
+<pre class="programlisting">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_encoding_profile_get_name (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>);</pre>
 <div class="refsect3">
 <a name="id-1.2.14.10.14.6.4"></a><h4>Parameters</h4>
@@ -793,14 +882,14 @@
 </div>
 <div class="refsect3">
 <a name="id-1.2.14.10.14.6.5"></a><h4>Returns</h4>
-<p> the name of the profile, can be <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
+<p> the name of the profile, can be <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
 <p></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-encoding-profile-get-description"></a><h3>gst_encoding_profile_get_description ()</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> *
+<pre class="programlisting">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_encoding_profile_get_description (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>);</pre>
 <div class="refsect3">
 <a name="id-1.2.14.10.14.7.4"></a><h4>Parameters</h4>
@@ -819,14 +908,14 @@
 </div>
 <div class="refsect3">
 <a name="id-1.2.14.10.14.7.5"></a><h4>Returns</h4>
-<p> the description of the profile, can be <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
+<p> the description of the profile, can be <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
 <p></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-encoding-profile-get-format"></a><h3>gst_encoding_profile_get_format ()</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> *
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="returnvalue">GstCaps</span></a> *
 gst_encoding_profile_get_format (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>);</pre>
 <div class="refsect3">
 <a name="id-1.2.14.10.14.8.4"></a><h4>Parameters</h4>
@@ -845,7 +934,7 @@
 </div>
 <div class="refsect3">
 <a name="id-1.2.14.10.14.8.5"></a><h4>Returns</h4>
-<p> 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 media format used
+<p> the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> corresponding to the media format used
 in the profile. Unref after usage. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
@@ -853,7 +942,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-encoding-profile-get-preset"></a><h3>gst_encoding_profile_get_preset ()</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> *
+<pre class="programlisting">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_encoding_profile_get_preset (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>);</pre>
 <div class="refsect3">
 <a name="id-1.2.14.10.14.9.4"></a><h4>Parameters</h4>
@@ -880,7 +969,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-encoding-profile-get-preset-name"></a><h3>gst_encoding_profile_get_preset_name ()</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> *
+<pre class="programlisting">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_encoding_profile_get_preset_name (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>);</pre>
 <div class="refsect3">
 <a name="id-1.2.14.10.14.10.4"></a><h4>Parameters</h4>
@@ -906,7 +995,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-encoding-profile-get-presence"></a><h3>gst_encoding_profile_get_presence ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_encoding_profile_get_presence (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>);</pre>
 <div class="refsect3">
 <a name="id-1.2.14.10.14.11.4"></a><h4>Parameters</h4>
@@ -933,7 +1022,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-encoding-profile-get-restriction"></a><h3>gst_encoding_profile_get_restriction ()</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> *
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="returnvalue">GstCaps</span></a> *
 gst_encoding_profile_get_restriction (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>);</pre>
 <div class="refsect3">
 <a name="id-1.2.14.10.14.12.4"></a><h4>Parameters</h4>
@@ -952,19 +1041,19 @@
 </div>
 <div class="refsect3">
 <a name="id-1.2.14.10.14.12.5"></a><h4>Returns</h4>
-<p> The restriction <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> to apply before the encoder
+<p> The restriction <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> to apply before the encoder
 that will be used in the profile. The fields present in restriction caps are
 properties of the raw stream (that is before encoding), such as height and
 width for video and depth and sampling rate for audio. Does not apply to
 <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingContainerProfile"><span class="type">GstEncodingContainerProfile</span></a> (since there is no corresponding raw stream).
-Can be <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. Unref after usage. </p>
+Can be <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. Unref after usage. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-encoding-profile-get-file-extension"></a><h3>gst_encoding_profile_get_file_extension ()</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> *
+<pre class="programlisting">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_encoding_profile_get_file_extension
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>);</pre>
 <div class="refsect3">
@@ -994,7 +1083,7 @@
 <a name="gst-encoding-profile-set-name"></a><h3>gst_encoding_profile_set_name ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_encoding_profile_set_name (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>,
-                               <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>
+                               <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);</pre>
 <p>Set <em class="parameter"><code>name</code></em>
  as the given name for the <em class="parameter"><code>profile</code></em>
 . A copy of <em class="parameter"><code>name</code></em>
@@ -1028,7 +1117,7 @@
 <a name="gst-encoding-profile-set-description"></a><h3>gst_encoding_profile_set_description ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_encoding_profile_set_description (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>,
-                                      <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> *description</code></em>);</pre>
+                                      <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *description</code></em>);</pre>
 <p>Set <em class="parameter"><code>description</code></em>
  as the given description for the <em class="parameter"><code>profile</code></em>
 . A copy of
@@ -1062,7 +1151,7 @@
 <a name="gst-encoding-profile-set-format"></a><h3>gst_encoding_profile_set_format ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_encoding_profile_set_format (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>,
-                                 <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> *format</code></em>);</pre>
+                                 <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> *format</code></em>);</pre>
 <p>Sets the media format used in the profile.</p>
 <div class="refsect3">
 <a name="id-1.2.14.10.14.16.5"></a><h4>Parameters</h4>
@@ -1092,7 +1181,7 @@
 <a name="gst-encoding-profile-set-preset"></a><h3>gst_encoding_profile_set_preset ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_encoding_profile_set_preset (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>,
-                                 <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> *preset</code></em>);</pre>
+                                 <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *preset</code></em>);</pre>
 <p>Sets the name of the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> that implements the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPreset.html"><span class="type">GstPreset</span></a> interface
 to use for the profile.
 This is the name that has been set when saving the preset.</p>
@@ -1124,7 +1213,7 @@
 <a name="gst-encoding-profile-set-preset-name"></a><h3>gst_encoding_profile_set_preset_name ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_encoding_profile_set_preset_name (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>,
-                                      <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> *preset_name</code></em>);</pre>
+                                      <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *preset_name</code></em>);</pre>
 <p>Sets the name of the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPreset.html"><span class="type">GstPreset</span></a>'s factory to be used in the profile.</p>
 <div class="refsect3">
 <a name="id-1.2.14.10.14.18.5"></a><h4>Parameters</h4>
@@ -1155,8 +1244,8 @@
 <a name="gst-encoding-profile-set-restriction"></a><h3>gst_encoding_profile_set_restriction ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_encoding_profile_set_restriction (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>,
-                                      <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> *restriction</code></em>);</pre>
-<p>Set the restriction <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> to apply before the encoder
+                                      <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> *restriction</code></em>);</pre>
+<p>Set the restriction <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> to apply before the encoder
 that will be used in the profile. See <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-restriction" title="gst_encoding_profile_get_restriction ()"><code class="function">gst_encoding_profile_get_restriction()</code></a>
 for more about restrictions. Does not apply to <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingContainerProfile"><span class="type">GstEncodingContainerProfile</span></a>.</p>
 <div class="refsect3">
@@ -1187,7 +1276,7 @@
 <a name="gst-encoding-profile-set-presence"></a><h3>gst_encoding_profile_set_presence ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_encoding_profile_set_presence (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>,
-                                   <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> presence</code></em>);</pre>
+                                   <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> presence</code></em>);</pre>
 <p>Set the number of time the profile is used in its parent
 container profile. If 0, it is not a mandatory stream</p>
 <div class="refsect3">
@@ -1216,7 +1305,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-encoding-profile-is-equal"></a><h3>gst_encoding_profile_is_equal ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_encoding_profile_is_equal (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *a</code></em>,
                                <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *b</code></em>);</pre>
 <p>Checks whether the two <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> are equal</p>
@@ -1244,16 +1333,16 @@
 </div>
 <div class="refsect3">
 <a name="id-1.2.14.10.14.21.6"></a><h4>Returns</h4>
-<p> <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>a</code></em>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>a</code></em>
 and <em class="parameter"><code>b</code></em>
-are equal, else <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>.</p>
+are equal, else <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>.</p>
 <p></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-encoding-profile-get-input-caps"></a><h3>gst_encoding_profile_get_input_caps ()</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> *
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="returnvalue">GstCaps</span></a> *
 gst_encoding_profile_get_input_caps (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>);</pre>
 <p>Computes the full output caps that this <em class="parameter"><code>profile</code></em>
  will be able to consume.</p>
@@ -1276,14 +1365,14 @@
 <a name="id-1.2.14.10.14.22.6"></a><h4>Returns</h4>
 <p> The full caps the given <em class="parameter"><code>profile</code></em>
 can consume. Call
-<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> when you are done with the caps. </p>
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html#gst-caps-unref"><code class="function">gst_caps_unref()</code></a> when you are done with the caps. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-encoding-profile-get-type-nick"></a><h3>gst_encoding_profile_get_type_nick ()</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> *
+<pre class="programlisting">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_encoding_profile_get_type_nick (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>);</pre>
 <div class="refsect3">
 <a name="id-1.2.14.10.14.23.4"></a><h4>Parameters</h4>
@@ -1311,10 +1400,10 @@
 <div class="refsect2">
 <a name="gst-encoding-container-profile-new"></a><h3>gst_encoding_container_profile_new ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingContainerProfile"><span class="returnvalue">GstEncodingContainerProfile</span></a> *
-gst_encoding_container_profile_new (<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> *description</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> *format</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> *preset</code></em>);</pre>
+gst_encoding_container_profile_new (<em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
+                                    <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *description</code></em>,
+                                    <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> *format</code></em>,
+                                    <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *preset</code></em>);</pre>
 <p>Creates a new <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingContainerProfile"><span class="type">GstEncodingContainerProfile</span></a>.</p>
 <div class="refsect3">
 <a name="id-1.2.14.10.14.24.5"></a><h4>Parameters</h4>
@@ -1327,14 +1416,14 @@
 <tbody>
 <tr>
 <td class="parameter_name"><p>name</p></td>
-<td class="parameter_description"><p> The name of the container profile, can be <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
+<td class="parameter_description"><p> The name of the container profile, can be <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
 </tr>
 <tr>
 <td class="parameter_name"><p>description</p></td>
 <td class="parameter_description"><p> The description of the container profile,
-can be <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
+can be <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
 </tr>
 <tr>
 <td class="parameter_name"><p>format</p></td>
@@ -1344,7 +1433,7 @@
 <tr>
 <td class="parameter_name"><p>preset</p></td>
 <td class="parameter_description"><p> The preset to use for this profile. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
 </tr>
 </tbody>
 </table></div>
@@ -1358,7 +1447,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-encoding-container-profile-add-profile"></a><h3>gst_encoding_container_profile_add_profile ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_encoding_container_profile_add_profile
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingContainerProfile"><span class="type">GstEncodingContainerProfile</span></a> *container</code></em>,
                                 <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>);</pre>
@@ -1391,15 +1480,15 @@
 </div>
 <div class="refsect3">
 <a name="id-1.2.14.10.14.25.7"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the <em class="parameter"><code>stream</code></em>
-was properly added, else <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>.</p>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the <em class="parameter"><code>stream</code></em>
+was properly added, else <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>.</p>
 <p></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-encoding-container-profile-contains-profile"></a><h3>gst_encoding_container_profile_contains_profile ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_encoding_container_profile_contains_profile
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingContainerProfile"><span class="type">GstEncodingContainerProfile</span></a> *container</code></em>,
                                 <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>);</pre>
@@ -1431,17 +1520,17 @@
 </div>
 <div class="refsect3">
 <a name="id-1.2.14.10.14.26.6"></a><h4>Returns</h4>
-<p> <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>container</code></em>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>container</code></em>
 contains a <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> identical
 to <em class="parameter"><code>profile</code></em>
-, else <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>.</p>
+, else <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>.</p>
 <p></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-encoding-container-profile-get-profiles"></a><h3>gst_encoding_container_profile_get_profiles ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
+<pre class="programlisting">const <a href="https://developer.gnome.org/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
 gst_encoding_container_profile_get_profiles
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingContainerProfile"><span class="type">GstEncodingContainerProfile</span></a> *profile</code></em>);</pre>
 <div class="refsect3">
@@ -1469,10 +1558,10 @@
 <div class="refsect2">
 <a name="gst-encoding-audio-profile-new"></a><h3>gst_encoding_audio_profile_new ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingAudioProfile"><span class="returnvalue">GstEncodingAudioProfile</span></a> *
-gst_encoding_audio_profile_new (<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> *format</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> *preset</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> *restriction</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> presence</code></em>);</pre>
+gst_encoding_audio_profile_new (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> *format</code></em>,
+                                <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *preset</code></em>,
+                                <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> *restriction</code></em>,
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> presence</code></em>);</pre>
 <p>Creates a new <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingAudioProfile"><span class="type">GstEncodingAudioProfile</span></a></p>
 <p>All provided allocatable arguments will be internally copied, so can be
 safely freed/unreferenced after calling this method.</p>
@@ -1487,19 +1576,19 @@
 <tbody>
 <tr>
 <td class="parameter_name"><p>format</p></td>
-<td class="parameter_description"><p>the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a></p></td>
+<td class="parameter_description"><p>the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a></p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
 <td class="parameter_name"><p>preset</p></td>
-<td class="parameter_description"><p> the preset(s) to use on the encoder, can be <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a>. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
+<td class="parameter_description"><p> the preset(s) to use on the encoder, can be <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a>. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
 </tr>
 <tr>
 <td class="parameter_name"><p>restriction</p></td>
-<td class="parameter_description"><p> the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> used to restrict the input to the encoder, can be
+<td class="parameter_description"><p> the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> used to restrict the input to the encoder, can be
 NULL. See <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-restriction" title="gst_encoding_profile_get_restriction ()"><code class="function">gst_encoding_profile_get_restriction()</code></a> for more details. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
 </tr>
 <tr>
 <td class="parameter_name"><p>presence</p></td>
@@ -1520,10 +1609,10 @@
 <div class="refsect2">
 <a name="gst-encoding-video-profile-new"></a><h3>gst_encoding_video_profile_new ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingVideoProfile"><span class="returnvalue">GstEncodingVideoProfile</span></a> *
-gst_encoding_video_profile_new (<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> *format</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> *preset</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> *restriction</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> presence</code></em>);</pre>
+gst_encoding_video_profile_new (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> *format</code></em>,
+                                <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *preset</code></em>,
+                                <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> *restriction</code></em>,
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> presence</code></em>);</pre>
 <p>Creates a new <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingVideoProfile"><span class="type">GstEncodingVideoProfile</span></a></p>
 <p>All provided allocatable arguments will be internally copied, so can be
 safely freed/unreferenced after calling this method.</p>
@@ -1542,19 +1631,19 @@
 <tbody>
 <tr>
 <td class="parameter_name"><p>format</p></td>
-<td class="parameter_description"><p>the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a></p></td>
+<td class="parameter_description"><p>the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a></p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
 <td class="parameter_name"><p>preset</p></td>
-<td class="parameter_description"><p> the preset(s) to use on the encoder, can be <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a>. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
+<td class="parameter_description"><p> the preset(s) to use on the encoder, can be <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a>. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
 </tr>
 <tr>
 <td class="parameter_name"><p>restriction</p></td>
-<td class="parameter_description"><p> the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> used to restrict the input to the encoder, can be
+<td class="parameter_description"><p> the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> used to restrict the input to the encoder, can be
 NULL. See <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-restriction" title="gst_encoding_profile_get_restriction ()"><code class="function">gst_encoding_profile_get_restriction()</code></a> for more details. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
 </tr>
 <tr>
 <td class="parameter_name"><p>presence</p></td>
@@ -1574,7 +1663,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-encoding-video-profile-get-pass"></a><h3>gst_encoding_video_profile_get_pass ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_encoding_video_profile_get_pass (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingVideoProfile"><span class="type">GstEncodingVideoProfile</span></a> *prof</code></em>);</pre>
 <p>Get the pass number if this is part of a multi-pass profile.</p>
 <div class="refsect3">
@@ -1602,7 +1691,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-encoding-video-profile-get-variableframerate"></a><h3>gst_encoding_video_profile_get_variableframerate ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_encoding_video_profile_get_variableframerate
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingVideoProfile"><span class="type">GstEncodingVideoProfile</span></a> *prof</code></em>);</pre>
 <div class="refsect3">
@@ -1631,7 +1720,7 @@
 <a name="gst-encoding-video-profile-set-pass"></a><h3>gst_encoding_video_profile_set_pass ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_encoding_video_profile_set_pass (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingVideoProfile"><span class="type">GstEncodingVideoProfile</span></a> *prof</code></em>,
-                                     <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> pass</code></em>);</pre>
+                                     <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> pass</code></em>);</pre>
 <p>Sets the pass number of this video profile. The first pass profile should have
 this value set to 1. If this video profile isn't part of a multi-pass profile,
 you may set it to 0 (the default value).</p>
@@ -1664,9 +1753,9 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_encoding_video_profile_set_variableframerate
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingVideoProfile"><span class="type">GstEncodingVideoProfile</span></a> *prof</code></em>,
-                                <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> variableframerate</code></em>);</pre>
-<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>, then the incoming stream will be allowed to have non-constant
-framerate. If set to <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> (default value), then the incoming stream will
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> variableframerate</code></em>);</pre>
+<p>If set to <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, then the incoming stream will be allowed to have non-constant
+framerate. If set to <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> (default value), then the incoming stream will
 be normalized by dropping/duplicating frames in order to produce a
 constance framerate.</p>
 <div class="refsect3">
@@ -1740,10 +1829,10 @@
 <div class="refsect2">
 <a name="gst-encoding-target-new"></a><h3>gst_encoding_target_new ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget"><span class="returnvalue">GstEncodingTarget</span></a> *
-gst_encoding_target_new (<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> *category</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> *description</code></em>,
-                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *profiles</code></em>);</pre>
+gst_encoding_target_new (<em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
+                         <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *category</code></em>,
+                         <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *description</code></em>,
+                         <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *profiles</code></em>);</pre>
 <p>Creates a new <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget"><span class="type">GstEncodingTarget</span></a>.</p>
 <p>The name and category can only consist of lowercase ASCII letters for the
 first character, followed by either lowercase ASCII letters, digits or
@@ -1781,7 +1870,7 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>profiles</p></td>
-<td class="parameter_description"><p> A <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of
+<td class="parameter_description"><p> A <a href="https://developer.gnome.org/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of
 <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a>. </p></td>
 <td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GstPbutils.EncodingProfile]</span></td>
 </tr>
@@ -1790,7 +1879,7 @@
 </div>
 <div class="refsect3">
 <a name="id-1.2.14.10.14.36.8"></a><h4>Returns</h4>
-<p> The newly created <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget"><span class="type">GstEncodingTarget</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if
+<p> The newly created <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget"><span class="type">GstEncodingTarget</span></a> or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if
 there was an error. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
@@ -1798,7 +1887,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-encoding-target-get-name"></a><h3>gst_encoding_target_get_name ()</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> *
+<pre class="programlisting">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_encoding_target_get_name (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget"><span class="type">GstEncodingTarget</span></a> *target</code></em>);</pre>
 <div class="refsect3">
 <a name="id-1.2.14.10.14.37.4"></a><h4>Parameters</h4>
@@ -1825,7 +1914,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-encoding-target-get-category"></a><h3>gst_encoding_target_get_category ()</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> *
+<pre class="programlisting">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_encoding_target_get_category (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget"><span class="type">GstEncodingTarget</span></a> *target</code></em>);</pre>
 <div class="refsect3">
 <a name="id-1.2.14.10.14.38.4"></a><h4>Parameters</h4>
@@ -1853,7 +1942,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-encoding-target-get-description"></a><h3>gst_encoding_target_get_description ()</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> *
+<pre class="programlisting">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_encoding_target_get_description (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget"><span class="type">GstEncodingTarget</span></a> *target</code></em>);</pre>
 <div class="refsect3">
 <a name="id-1.2.14.10.14.39.4"></a><h4>Parameters</h4>
@@ -1880,7 +1969,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-encoding-target-get-profiles"></a><h3>gst_encoding_target_get_profiles ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
+<pre class="programlisting">const <a href="https://developer.gnome.org/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
 gst_encoding_target_get_profiles (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget"><span class="type">GstEncodingTarget</span></a> *target</code></em>);</pre>
 <div class="refsect3">
 <a name="id-1.2.14.10.14.40.4"></a><h4>Parameters</h4>
@@ -1910,7 +1999,7 @@
 <a name="gst-encoding-target-get-profile"></a><h3>gst_encoding_target_get_profile ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="returnvalue">GstEncodingProfile</span></a> *
 gst_encoding_target_get_profile (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget"><span class="type">GstEncodingTarget</span></a> *target</code></em>,
-                                 <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>
+                                 <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);</pre>
 <div class="refsect3">
 <a name="id-1.2.14.10.14.41.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
@@ -1935,14 +2024,14 @@
 </div>
 <div class="refsect3">
 <a name="id-1.2.14.10.14.41.5"></a><h4>Returns</h4>
-<p> The matching <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p>
+<p> The matching <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a>, or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-encoding-target-add-profile"></a><h3>gst_encoding_target_add_profile ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_encoding_target_add_profile (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget"><span class="type">GstEncodingTarget</span></a> *target</code></em>,
                                  <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>);</pre>
 <p>Adds the given <em class="parameter"><code>profile</code></em>
@@ -1978,16 +2067,16 @@
 </div>
 <div class="refsect3">
 <a name="id-1.2.14.10.14.42.7"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the profile was added, else <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>.</p>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the profile was added, else <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>.</p>
 <p></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-encoding-target-save"></a><h3>gst_encoding_target_save ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_encoding_target_save (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget"><span class="type">GstEncodingTarget</span></a> *target</code></em>,
-                          <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>
+                          <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
 <p>Saves the <em class="parameter"><code>target</code></em>
  to a default user-local directory.</p>
 <div class="refsect3">
@@ -2014,17 +2103,17 @@
 </div>
 <div class="refsect3">
 <a name="id-1.2.14.10.14.43.6"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the target was correctly saved, else <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>.</p>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the target was correctly saved, else <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>.</p>
 <p></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-encoding-target-save-to-file"></a><h3>gst_encoding_target_save_to_file ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_encoding_target_save_to_file (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget"><span class="type">GstEncodingTarget</span></a> *target</code></em>,
-                                  <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> *filepath</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>
+                                  <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *filepath</code></em>,
+                                  <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
 <p>Saves the <em class="parameter"><code>target</code></em>
  to the provided file location.</p>
 <div class="refsect3">
@@ -2057,7 +2146,7 @@
 </div>
 <div class="refsect3">
 <a name="id-1.2.14.10.14.44.6"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the target was correctly saved, else <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>.</p>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the target was correctly saved, else <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>.</p>
 <p></p>
 </div>
 </div>
@@ -2065,9 +2154,9 @@
 <div class="refsect2">
 <a name="gst-encoding-target-load"></a><h3>gst_encoding_target_load ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget"><span class="returnvalue">GstEncodingTarget</span></a> *
-gst_encoding_target_load (<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> *category</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>
+gst_encoding_target_load (<em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
+                          <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *category</code></em>,
+                          <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
 <p>Searches for the <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget"><span class="type">GstEncodingTarget</span></a> with the given name, loads it
 and returns it.</p>
 <p>If the category name is specified only targets from that category will be
@@ -2089,8 +2178,8 @@
 <tr>
 <td class="parameter_name"><p>category</p></td>
 <td class="parameter_description"><p> the name of the target category, like
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#GST-ENCODING-CATEGORY-DEVICE:CAPS" title="GST_ENCODING_CATEGORY_DEVICE"><span class="type">GST_ENCODING_CATEGORY_DEVICE</span></a>. Can be <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#GST-ENCODING-CATEGORY-DEVICE:CAPS" title="GST_ENCODING_CATEGORY_DEVICE"><span class="type">GST_ENCODING_CATEGORY_DEVICE</span></a>. Can be <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
 </tr>
 <tr>
 <td class="parameter_name"><p>error</p></td>
@@ -2102,7 +2191,7 @@
 </div>
 <div class="refsect3">
 <a name="id-1.2.14.10.14.45.7"></a><h4>Returns</h4>
-<p> The <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget"><span class="type">GstEncodingTarget</span></a> if available, else <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p>
+<p> The <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget"><span class="type">GstEncodingTarget</span></a> if available, else <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
 </div>
@@ -2110,8 +2199,8 @@
 <div class="refsect2">
 <a name="gst-encoding-target-load-from-file"></a><h3>gst_encoding_target_load_from_file ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget"><span class="returnvalue">GstEncodingTarget</span></a> *
-gst_encoding_target_load_from_file (<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> *filepath</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>
+gst_encoding_target_load_from_file (<em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *filepath</code></em>,
+                                    <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
 <p>Opens the provided file and returns the contained <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget"><span class="type">GstEncodingTarget</span></a>.</p>
 <div class="refsect3">
 <a name="id-1.2.14.10.14.46.5"></a><h4>Parameters</h4>
@@ -2138,18 +2227,18 @@
 <div class="refsect3">
 <a name="id-1.2.14.10.14.46.6"></a><h4>Returns</h4>
 <p> The <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget"><span class="type">GstEncodingTarget</span></a> contained in the file, else
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p>
+<a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-encoding-list-all-targets"></a><h3>gst_encoding_list_all_targets ()</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_encoding_list_all_targets (<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> *categoryname</code></em>);</pre>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
+gst_encoding_list_all_targets (<em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *categoryname</code></em>);</pre>
 <p>List all available <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget"><span class="type">GstEncodingTarget</span></a> for the specified category, or all categories
 if <em class="parameter"><code>categoryname</code></em>
- is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
+ is <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
 <div class="refsect3">
 <a name="id-1.2.14.10.14.47.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
@@ -2161,8 +2250,8 @@
 <tbody><tr>
 <td class="parameter_name"><p>categoryname</p></td>
 <td class="parameter_description"><p> The category, for ex: <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GST-ENCODING-CATEGORY-DEVICE:CAPS" title="GST_ENCODING_CATEGORY_DEVICE"><span class="type">GST_ENCODING_CATEGORY_DEVICE</span></a>.
-Can be <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
+Can be <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
 </tr></tbody>
 </table></div>
 </div>
@@ -2175,7 +2264,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-encoding-list-available-categories"></a><h3>gst_encoding_list_available_categories ()</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> *
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
 gst_encoding_list_available_categories
                                (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
 <p>Lists all <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget"><span class="type">GstEncodingTarget</span></a> categories present on disk.</p>
@@ -2265,7 +2354,7 @@
 <a name="gst-plugins-base-libs-encoding-profile.property-details"></a><h2>Property Details</h2>
 <div class="refsect2">
 <a name="GstEncodingProfile--restriction-caps"></a><h3>The <code class="literal">“restriction-caps”</code> property</h3>
-<pre class="programlisting">  “restriction-caps”         <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *</pre>
+<pre class="programlisting">  “restriction-caps”         <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> *</pre>
 <p>The restriction caps to use.</p>
 <p>Flags: Read / Write</p>
 </div>
@@ -2273,6 +2362,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstaudio.html b/docs/libs/html/gst-plugins-base-libs-gstaudio.html
index 8dd00a4..3d84ae2 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstaudio.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstaudio.html
@@ -8,15 +8,14 @@
 <link rel="up" href="gstreamer-audio.html" title="Audio Library">
 <link rel="prev" href="gstreamer-audio.html" title="Audio Library">
 <link rel="next" href="gst-plugins-base-libs-gstaudiometa.html" title="gstaudiometa">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstaudio.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstaudio.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gstaudio.description" class="shortcut">Description</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="gstreamer-audio.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -66,7 +65,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-info-from-caps" title="gst_audio_info_from_caps ()">gst_audio_info_from_caps</a> <span class="c_punctuation">()</span>
@@ -74,7 +73,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="returnvalue">GstCaps</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-info-to-caps" title="gst_audio_info_to_caps ()">gst_audio_info_to_caps</a> <span class="c_punctuation">()</span>
@@ -82,7 +81,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-info-convert" title="gst_audio_info_convert ()">gst_audio_info_convert</a> <span class="c_punctuation">()</span>
@@ -129,7 +128,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-info-is-equal" title="gst_audio_info_is_equal ()">gst_audio_info_is_equal</a> <span class="c_punctuation">()</span>
@@ -160,7 +159,7 @@
 </td>
 </tr>
 <tr>
-<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<td class="function_type">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-format-to-string" title="gst_audio_format_to_string ()">gst_audio_format_to_string</a> <span class="c_punctuation">()</span>
@@ -378,7 +377,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="returnvalue">GstBuffer</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-buffer-clip" title="gst_audio_buffer_clip ()">gst_audio_buffer_clip</a> <span class="c_punctuation">()</span>
@@ -459,11 +458,6 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="gst-plugins-base-libs-gstaudio.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">
-</pre>
-</div>
-<div class="refsect1">
 <a name="gst-plugins-base-libs-gstaudio.includes"></a><h2>Includes</h2>
 <pre class="synopsis">#include &lt;gst/audio/audio.h&gt;
 </pre>
@@ -479,9 +473,9 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 <span class="c_punctuation">(</span>*GstAudioFormatPack<span class="c_punctuation">)</span> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormatInfo" title="struct GstAudioFormatInfo"><span class="type">GstAudioFormatInfo</span></a> *info</code></em>,
                        <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioPackFlags" title="enum GstAudioPackFlags"><span class="type">GstAudioPackFlags</span></a> flags</code></em>,
-                       <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> src</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#gint"><span class="type">gint</span></a> length</code></em>);</pre>
+                       <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> src</code></em>,
+                       <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
+                       <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> length</code></em>);</pre>
 <p>Packs <em class="parameter"><code>length</code></em>
  samples from <em class="parameter"><code>src</code></em>
  to the data array in format <em class="parameter"><code>info</code></em>
@@ -490,7 +484,7 @@
 and will be packed into <em class="parameter"><code>data</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.6.3.8.2.5"></a><h4>Parameters</h4>
+<a name="id-1.2.6.3.7.2.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -529,9 +523,9 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 <span class="c_punctuation">(</span>*GstAudioFormatUnpack<span class="c_punctuation">)</span> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormatInfo" title="struct GstAudioFormatInfo"><span class="type">GstAudioFormatInfo</span></a> *info</code></em>,
                          <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioPackFlags" title="enum GstAudioPackFlags"><span class="type">GstAudioPackFlags</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> dest</code></em>,
-                         <em class="parameter"><code>const <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#gint"><span class="type">gint</span></a> length</code></em>);</pre>
+                         <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> dest</code></em>,
+                         <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
+                         <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> length</code></em>);</pre>
 <p>Unpacks <em class="parameter"><code>length</code></em>
  samples from the given data of format <em class="parameter"><code>info</code></em>
 .
@@ -542,7 +536,7 @@
  *
 channels * size(unpack_format) bytes.</p>
 <div class="refsect3">
-<a name="id-1.2.6.3.8.3.5"></a><h4>Parameters</h4>
+<a name="id-1.2.6.3.7.3.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -582,7 +576,7 @@
 <p>Initialize <em class="parameter"><code>info</code></em>
  with default values.</p>
 <div class="refsect3">
-<a name="id-1.2.6.3.8.4.5"></a><h4>Parameters</h4>
+<a name="id-1.2.6.3.7.4.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -600,14 +594,14 @@
 <hr>
 <div class="refsect2">
 <a name="gst-audio-info-from-caps"></a><h3>gst_audio_info_from_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>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_audio_info_from_caps (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a> *info</code></em>,
-                          <em class="parameter"><code>const <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>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> *caps</code></em>);</pre>
 <p>Parse <em class="parameter"><code>caps</code></em>
  and update <em class="parameter"><code>info</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.6.3.8.5.5"></a><h4>Parameters</h4>
+<a name="id-1.2.6.3.7.5.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -622,14 +616,14 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>caps</p></td>
-<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a></p></td>
+<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a></p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.6.3.8.5.6"></a><h4>Returns</h4>
+<a name="id-1.2.6.3.7.5.6"></a><h4>Returns</h4>
 <p> TRUE if <em class="parameter"><code>caps</code></em>
 could be parsed</p>
 <p></p>
@@ -638,12 +632,12 @@
 <hr>
 <div class="refsect2">
 <a name="gst-audio-info-to-caps"></a><h3>gst_audio_info_to_caps ()</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> *
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="returnvalue">GstCaps</span></a> *
 gst_audio_info_to_caps (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a> *info</code></em>);</pre>
 <p>Convert the values of <em class="parameter"><code>info</code></em>
- into a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>.</p>
+ into a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.6.3.8.6.5"></a><h4>Parameters</h4>
+<a name="id-1.2.6.3.7.6.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -658,8 +652,8 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.6.3.8.6.6"></a><h4>Returns</h4>
-<p> the new <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> containing the
+<a name="id-1.2.6.3.7.6.6"></a><h4>Returns</h4>
+<p> the new <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> containing the
 info of <em class="parameter"><code>info</code></em>
 . </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
@@ -668,7 +662,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-audio-info-convert"></a><h3>gst_audio_info_convert ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_audio_info_convert (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a> *info</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_fmt</code></em>,
                         <em class="parameter"><code><span class="type">gint64</span> src_val</code></em>,
@@ -679,7 +673,7 @@
 raw audio, GST_FORMAT_DEFAULT corresponds to audio frames.  This
 function can be used to handle pad queries of the type GST_QUERY_CONVERT.</p>
 <div class="refsect3">
-<a name="id-1.2.6.3.8.7.5"></a><h4>Parameters</h4>
+<a name="id-1.2.6.3.7.7.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -718,7 +712,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.6.3.8.7.6"></a><h4>Returns</h4>
+<a name="id-1.2.6.3.7.7.6"></a><h4>Returns</h4>
 <p> TRUE if the conversion was successful.</p>
 <p></p>
 </div>
@@ -731,7 +725,7 @@
 <p>Get the <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormatInfo" title="struct GstAudioFormatInfo"><span class="type">GstAudioFormatInfo</span></a> for <em class="parameter"><code>format</code></em>
 </p>
 <div class="refsect3">
-<a name="id-1.2.6.3.8.8.5"></a><h4>Parameters</h4>
+<a name="id-1.2.6.3.7.8.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -746,7 +740,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.6.3.8.8.6"></a><h4>Returns</h4>
+<a name="id-1.2.6.3.7.8.6"></a><h4>Returns</h4>
 <p> The <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormatInfo" title="struct GstAudioFormatInfo"><span class="type">GstAudioFormatInfo</span></a> for <em class="parameter"><code>format</code></em>
 .</p>
 <p></p>
@@ -759,7 +753,7 @@
 gst_audio_info_copy (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a> *info</code></em>);</pre>
 <p>Copy a GstAudioInfo structure.</p>
 <div class="refsect3">
-<a name="id-1.2.6.3.8.9.5"></a><h4>Parameters</h4>
+<a name="id-1.2.6.3.7.9.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -774,7 +768,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.6.3.8.9.6"></a><h4>Returns</h4>
+<a name="id-1.2.6.3.7.9.6"></a><h4>Returns</h4>
 <p> a new <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a>. free with gst_audio_info_free.</p>
 <p></p>
 </div>
@@ -787,7 +781,7 @@
 <p>Free a GstAudioInfo structure previously allocated with <a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-info-new" title="gst_audio_info_new ()"><code class="function">gst_audio_info_new()</code></a>
 or <a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-info-copy" title="gst_audio_info_copy ()"><code class="function">gst_audio_info_copy()</code></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.6.3.8.10.5"></a><h4>Parameters</h4>
+<a name="id-1.2.6.3.7.10.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -810,7 +804,7 @@
 <p>Allocate a new <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a> that is also initialized with
 <a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-info-init" title="gst_audio_info_init ()"><code class="function">gst_audio_info_init()</code></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.6.3.8.11.5"></a><h4>Returns</h4>
+<a name="id-1.2.6.3.7.11.5"></a><h4>Returns</h4>
 <p> a new <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a>. free with <a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-info-free" title="gst_audio_info_free ()"><code class="function">gst_audio_info_free()</code></a>.</p>
 <p></p>
 </div>
@@ -821,8 +815,8 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_audio_info_set_format (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a> *info</code></em>,
                            <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormat" title="enum GstAudioFormat"><span class="type">GstAudioFormat</span></a> format</code></em>,
-                           <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> rate</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> channels</code></em>,
+                           <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> rate</code></em>,
+                           <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> channels</code></em>,
                            <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> *position</code></em>);</pre>
 <p>Set the default info for the audio info of <em class="parameter"><code>format</code></em>
  and <em class="parameter"><code>rate</code></em>
@@ -831,7 +825,7 @@
 <p>Note: This initializes <em class="parameter"><code>info</code></em>
  first, no values are preserved.</p>
 <div class="refsect3">
-<a name="id-1.2.6.3.8.12.6"></a><h4>Parameters</h4>
+<a name="id-1.2.6.3.7.12.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -871,12 +865,12 @@
 <hr>
 <div class="refsect2">
 <a name="gst-audio-info-is-equal"></a><h3>gst_audio_info_is_equal ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_audio_info_is_equal (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a> *info</code></em>,
                          <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a> *other</code></em>);</pre>
 <p>Compares two <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a> and returns whether they are equal or not</p>
 <div class="refsect3">
-<a name="id-1.2.6.3.8.13.5"></a><h4>Parameters</h4>
+<a name="id-1.2.6.3.7.13.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -898,10 +892,10 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.6.3.8.13.6"></a><h4>Returns</h4>
-<p> <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>info</code></em>
+<a name="id-1.2.6.3.7.13.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>info</code></em>
 and <em class="parameter"><code>other</code></em>
-are equal, else <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>.</p>
+are equal, else <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>.</p>
 <p></p>
 </div>
 <p class="since">Since 1.2</p>
@@ -910,13 +904,13 @@
 <div class="refsect2">
 <a name="gst-audio-format-build-integer"></a><h3>gst_audio_format_build_integer ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormat" title="enum GstAudioFormat"><span class="returnvalue">GstAudioFormat</span></a>
-gst_audio_format_build_integer (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> sign</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> endianness</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> width</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> depth</code></em>);</pre>
+gst_audio_format_build_integer (<em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> sign</code></em>,
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> endianness</code></em>,
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> width</code></em>,
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> depth</code></em>);</pre>
 <p>Construct a <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormat" title="enum GstAudioFormat"><span class="type">GstAudioFormat</span></a> with given parameters.</p>
 <div class="refsect3">
-<a name="id-1.2.6.3.8.14.5"></a><h4>Parameters</h4>
+<a name="id-1.2.6.3.7.14.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -949,7 +943,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.6.3.8.14.6"></a><h4>Returns</h4>
+<a name="id-1.2.6.3.7.14.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormat" title="enum GstAudioFormat"><span class="type">GstAudioFormat</span></a> or GST_AUDIO_FORMAT_UNKNOWN when no audio format
 exists with the given parameters.</p>
 <p></p>
@@ -960,14 +954,14 @@
 <a name="gst-audio-format-fill-silence"></a><h3>gst_audio_format_fill_silence ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_audio_format_fill_silence (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormatInfo" title="struct GstAudioFormatInfo"><span class="type">GstAudioFormatInfo</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> dest</code></em>,
+                               <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> dest</code></em>,
                                <em class="parameter"><code><span class="type">gsize</span> length</code></em>);</pre>
 <p>Fill <em class="parameter"><code>length</code></em>
  bytes in <em class="parameter"><code>dest</code></em>
  with silence samples for <em class="parameter"><code>info</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.6.3.8.15.5"></a><h4>Parameters</h4>
+<a name="id-1.2.6.3.7.15.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -999,11 +993,11 @@
 <div class="refsect2">
 <a name="gst-audio-format-from-string"></a><h3>gst_audio_format_from_string ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormat" title="enum GstAudioFormat"><span class="returnvalue">GstAudioFormat</span></a>
-gst_audio_format_from_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> *format</code></em>);</pre>
+gst_audio_format_from_string (<em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *format</code></em>);</pre>
 <p>Convert the <em class="parameter"><code>format</code></em>
  string to its <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormat" title="enum GstAudioFormat"><span class="type">GstAudioFormat</span></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.6.3.8.16.5"></a><h4>Parameters</h4>
+<a name="id-1.2.6.3.7.16.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1018,7 +1012,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.6.3.8.16.6"></a><h4>Returns</h4>
+<a name="id-1.2.6.3.7.16.6"></a><h4>Returns</h4>
 <p> the <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormat" title="enum GstAudioFormat"><span class="type">GstAudioFormat</span></a> for <em class="parameter"><code>format</code></em>
 or GST_AUDIO_FORMAT_UNKNOWN when the
 string is not a known format.</p>
@@ -1028,7 +1022,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-audio-format-to-string"></a><h3>gst_audio_format_to_string ()</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> *
+<pre class="programlisting">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_audio_format_to_string (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormat" title="enum GstAudioFormat"><span class="type">GstAudioFormat</span></a> format</code></em>);</pre>
 </div>
 <hr>
@@ -1219,7 +1213,7 @@
  and <em class="parameter"><code>rate</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.6.3.8.48.5"></a><h4>Parameters</h4>
+<a name="id-1.2.6.3.7.48.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1249,7 +1243,7 @@
  and sample <em class="parameter"><code>rate</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.6.3.8.49.5"></a><h4>Parameters</h4>
+<a name="id-1.2.6.3.7.49.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1279,7 +1273,7 @@
 <p>Turns audio format string <em class="parameter"><code>s</code></em>
  into the format string for native endianness.</p>
 <div class="refsect3">
-<a name="id-1.2.6.3.8.50.5"></a><h4>Parameters</h4>
+<a name="id-1.2.6.3.7.50.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1302,7 +1296,7 @@
 <p>Turns audio format string <em class="parameter"><code>s</code></em>
  into the format string for other endianness.</p>
 <div class="refsect3">
-<a name="id-1.2.6.3.8.51.5"></a><h4>Parameters</h4>
+<a name="id-1.2.6.3.7.51.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1323,7 +1317,7 @@
 <pre class="programlisting">#define             GST_AUDIO_CAPS_MAKE(format)</pre>
 <p>Generic caps string for audio, for use in pad templates.</p>
 <div class="refsect3">
-<a name="id-1.2.6.3.8.52.5"></a><h4>Parameters</h4>
+<a name="id-1.2.6.3.7.52.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1342,17 +1336,17 @@
 <hr>
 <div class="refsect2">
 <a name="gst-audio-buffer-clip"></a><h3>gst_audio_buffer_clip ()</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_audio_buffer_clip (<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="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstSegment.html#GstSegment"><span class="type">GstSegment</span></a> *segment</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> rate</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> bpf</code></em>);</pre>
-<p>Clip the buffer to the given <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstSegment.html#GstSegment"><code class="literal">GstSegment</code></a>.</p>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="returnvalue">GstBuffer</span></a> *
+gst_audio_buffer_clip (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> *buffer</code></em>,
+                       <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstSegment.html"><span class="type">GstSegment</span></a> *segment</code></em>,
+                       <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> rate</code></em>,
+                       <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> bpf</code></em>);</pre>
+<p>Clip the buffer to the given <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstSegment.html"><code class="literal">GstSegment</code></a>.</p>
 <p>After calling this function the caller does not own a reference to
 <em class="parameter"><code>buffer</code></em>
  anymore.</p>
 <div class="refsect3">
-<a name="id-1.2.6.3.8.53.6"></a><h4>Parameters</h4>
+<a name="id-1.2.6.3.7.53.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1367,7 +1361,7 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>segment</p></td>
-<td class="parameter_description"><p>Segment 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> or <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstFormat.html#GST-FORMAT-DEFAULT:CAPS"><code class="literal">GST_FORMAT_DEFAULT</code></a> to which
+<td class="parameter_description"><p>Segment in <code class="literal">GST_FORMAT_TIME</code> or <code class="literal">GST_FORMAT_DEFAULT</code> to which
 the buffer should be clipped.</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
@@ -1388,8 +1382,8 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.6.3.8.53.7"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the buffer is completely outside the configured segment,
+<a name="id-1.2.6.3.7.53.7"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the buffer is completely outside the configured segment,
 otherwise the clipped buffer is returned.</p>
 <p>If the buffer has no timestamp, it is assumed to be inside the segment and
 is not clipped. </p>
@@ -1403,7 +1397,7 @@
 <a name="GstAudioFlags"></a><h3>enum GstAudioFlags</h3>
 <p>Extra audio flags</p>
 <div class="refsect3">
-<a name="id-1.2.6.3.9.2.4"></a><h4>Members</h4>
+<a name="id-1.2.6.3.8.2.4"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -1435,7 +1429,7 @@
 <a name="GstAudioFormat"></a><h3>enum GstAudioFormat</h3>
 <p>Enum value describing the most common audio formats.</p>
 <div class="refsect3">
-<a name="id-1.2.6.3.9.3.4"></a><h4>Members</h4>
+<a name="id-1.2.6.3.8.3.4"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -1774,7 +1768,7 @@
 <a name="GstAudioFormatFlags"></a><h3>enum GstAudioFormatFlags</h3>
 <p>The different audio flags that a format info can have.</p>
 <div class="refsect3">
-<a name="id-1.2.6.3.9.4.4"></a><h4>Members</h4>
+<a name="id-1.2.6.3.8.4.4"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -1842,7 +1836,7 @@
 </pre>
 <p>Information for an audio format.</p>
 <div class="refsect3">
-<a name="id-1.2.6.3.9.5.5"></a><h4>Members</h4>
+<a name="id-1.2.6.3.8.5.5"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
@@ -1856,12 +1850,12 @@
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p>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="GstAudioFormatInfo.name"></a>name</code></em>;</p></td>
+<td class="struct_member_name"><p>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstAudioFormatInfo.name"></a>name</code></em>;</p></td>
 <td class="struct_member_description"><p>string representation of the format</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p>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="GstAudioFormatInfo.description"></a>description</code></em>;</p></td>
+<td class="struct_member_name"><p>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstAudioFormatInfo.description"></a>description</code></em>;</p></td>
 <td class="struct_member_description"><p>user readable description of the format</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
@@ -1871,17 +1865,17 @@
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstAudioFormatInfo.endianness"></a>endianness</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstAudioFormatInfo.endianness"></a>endianness</code></em>;</p></td>
 <td class="struct_member_description"><p>the endianness</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstAudioFormatInfo.width"></a>width</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstAudioFormatInfo.width"></a>width</code></em>;</p></td>
 <td class="struct_member_description"><p>amount of bits used for one sample</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstAudioFormatInfo.depth"></a>depth</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstAudioFormatInfo.depth"></a>depth</code></em>;</p></td>
 <td class="struct_member_description"><p>amount of valid bits in <em class="parameter"><code>width</code></em>
 </p></td>
 <td class="struct_member_annotations"> </td>
@@ -1928,7 +1922,7 @@
 in from GstCaps with <a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-info-from-caps" title="gst_audio_info_from_caps ()"><code class="function">gst_audio_info_from_caps()</code></a>.</p>
 <p>Use the provided macros to access the info in this structure.</p>
 <div class="refsect3">
-<a name="id-1.2.6.3.9.6.6"></a><h4>Members</h4>
+<a name="id-1.2.6.3.8.6.6"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
@@ -1952,17 +1946,17 @@
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstAudioInfo.rate"></a>rate</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstAudioInfo.rate"></a>rate</code></em>;</p></td>
 <td class="struct_member_description"><p>the audio sample rate</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstAudioInfo.channels"></a>channels</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstAudioInfo.channels"></a>channels</code></em>;</p></td>
 <td class="struct_member_description"><p>the number of channels</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstAudioInfo.bpf"></a>bpf</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstAudioInfo.bpf"></a>bpf</code></em>;</p></td>
 <td class="struct_member_description"><p>the number of bytes for one frame, this is the size of one
 sample * <em class="parameter"><code>channels</code></em>
 </p></td>
@@ -1982,7 +1976,7 @@
 <a name="GstAudioLayout"></a><h3>enum GstAudioLayout</h3>
 <p>Layout of the audio samples for the different channels.</p>
 <div class="refsect3">
-<a name="id-1.2.6.3.9.7.4"></a><h4>Members</h4>
+<a name="id-1.2.6.3.8.7.4"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -2013,7 +2007,7 @@
 <a name="GstAudioPackFlags"></a><h3>enum GstAudioPackFlags</h3>
 <p>The different flags that can be used when packing and unpacking.</p>
 <div class="refsect3">
-<a name="id-1.2.6.3.9.8.4"></a><h4>Members</h4>
+<a name="id-1.2.6.3.8.8.4"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -2091,6 +2085,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstaudiobasesink.html b/docs/libs/html/gst-plugins-base-libs-gstaudiobasesink.html
index 717d0f5..7a5bd1a 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstaudiobasesink.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstaudiobasesink.html
@@ -8,15 +8,15 @@
 <link rel="up" href="gstreamer-audio.html" title="Audio Library">
 <link rel="prev" href="gst-plugins-base-libs-gstaudiosrc.html" title="gstaudiosrc">
 <link rel="next" href="gst-plugins-base-libs-gstaudiobasesrc.html" title="gstaudiobasesrc">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstaudiobasesink.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstaudiobasesink.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> 
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gstaudiobasesink.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gstaudiobasesink.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
                   <a href="#gst-plugins-base-libs-gstaudiobasesink.properties" class="shortcut">Properties</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
@@ -71,7 +71,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstaudiobasesink.html#gst-audio-base-sink-get-provide-clock" title="gst_audio_base_sink_get_provide_clock ()">gst_audio_base_sink_get_provide_clock</a> <span class="c_punctuation">()</span>
@@ -164,7 +164,7 @@
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-libs-gstaudiobasesink.html#GstAudioBaseSink--can-activate-pull" title="The “can-activate-pull” property">can-activate-pull</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
@@ -184,7 +184,7 @@
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-libs-gstaudiobasesink.html#GstAudioBaseSink--provide-clock" title="The “provide-clock” property">provide-clock</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
@@ -221,8 +221,8 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstaudiobasesink.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-    <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+<pre class="screen">    <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
         <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
             <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
                 <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSink.html">GstBaseSink</a>
@@ -325,14 +325,14 @@
 <a name="gst-audio-base-sink-set-provide-clock"></a><h3>gst_audio_base_sink_set_provide_clock ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_audio_base_sink_set_provide_clock (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiobasesink.html#GstAudioBaseSink"><span class="type">GstAudioBaseSink</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> provide</code></em>);</pre>
+                                       <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> provide</code></em>);</pre>
 <p>Controls whether <em class="parameter"><code>sink</code></em>
  will provide a clock or not. If <em class="parameter"><code>provide</code></em>
- is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>,
+ is <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>,
 <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#gst-element-provide-clock"><code class="function">gst_element_provide_clock()</code></a> will return a clock that reflects the datarate
 of <em class="parameter"><code>sink</code></em>
 . If <em class="parameter"><code>provide</code></em>
- is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>, <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#gst-element-provide-clock"><code class="function">gst_element_provide_clock()</code></a> will return
+ is <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>, <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#gst-element-provide-clock"><code class="function">gst_element_provide_clock()</code></a> will return
 NULL.</p>
 <div class="refsect3">
 <a name="id-1.2.6.12.10.5.5"></a><h4>Parameters</h4>
@@ -360,7 +360,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-audio-base-sink-get-provide-clock"></a><h3>gst_audio_base_sink_get_provide_clock ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_audio_base_sink_get_provide_clock (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiobasesink.html#GstAudioBaseSink"><span class="type">GstAudioBaseSink</span></a> *sink</code></em>);</pre>
 <p>Queries whether <em class="parameter"><code>sink</code></em>
  will provide a clock or not. See also
@@ -382,7 +382,7 @@
 </div>
 <div class="refsect3">
 <a name="id-1.2.6.12.10.6.6"></a><h4>Returns</h4>
-<p> <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>sink</code></em>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>sink</code></em>
 will provide a clock.</p>
 <p></p>
 </div>
@@ -746,7 +746,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstAudioBaseSink--can-activate-pull"></a><h3>The <code class="literal">“can-activate-pull”</code> property</h3>
-<pre class="programlisting">  “can-activate-pull”        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<pre class="programlisting">  “can-activate-pull”        <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
 <p>Allow pull-based scheduling.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: FALSE</p>
@@ -783,7 +783,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstAudioBaseSink--provide-clock"></a><h3>The <code class="literal">“provide-clock”</code> property</h3>
-<pre class="programlisting">  “provide-clock”            <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<pre class="programlisting">  “provide-clock”            <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
 <p>Provide a clock to be used as the global pipeline clock.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: TRUE</p>
@@ -804,6 +804,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstaudiobasesrc.html b/docs/libs/html/gst-plugins-base-libs-gstaudiobasesrc.html
index 9b93dff..b465c69 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstaudiobasesrc.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstaudiobasesrc.html
@@ -8,15 +8,15 @@
 <link rel="up" href="gstreamer-audio.html" title="Audio Library">
 <link rel="prev" href="gst-plugins-base-libs-gstaudiobasesink.html" title="gstaudiobasesink">
 <link rel="next" href="gst-plugins-base-libs-gstaudiochannels.html" title="gstaudiochannels">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstaudiobasesrc.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstaudiobasesrc.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> 
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gstaudiobasesrc.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gstaudiobasesrc.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
                   <a href="#gst-plugins-base-libs-gstaudiobasesrc.properties" class="shortcut">Properties</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
@@ -71,7 +71,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstaudiobasesrc.html#gst-audio-base-src-get-provide-clock" title="gst_audio_base_src_get_provide_clock ()">gst_audio_base_src_get_provide_clock</a> <span class="c_punctuation">()</span>
@@ -126,7 +126,7 @@
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-libs-gstaudiobasesrc.html#GstAudioBaseSrc--provide-clock" title="The “provide-clock” property">provide-clock</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
@@ -163,8 +163,8 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstaudiobasesrc.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-    <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+<pre class="screen">    <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
         <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
             <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
                 <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSrc.html">GstBaseSrc</a>
@@ -268,14 +268,14 @@
 <a name="gst-audio-base-src-set-provide-clock"></a><h3>gst_audio_base_src_set_provide_clock ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_audio_base_src_set_provide_clock (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiobasesrc.html#GstAudioBaseSrc"><span class="type">GstAudioBaseSrc</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> provide</code></em>);</pre>
+                                      <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> provide</code></em>);</pre>
 <p>Controls whether <em class="parameter"><code>src</code></em>
  will provide a clock or not. If <em class="parameter"><code>provide</code></em>
- is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>,
+ is <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>,
 <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#gst-element-provide-clock"><code class="function">gst_element_provide_clock()</code></a> will return a clock that reflects the datarate
 of <em class="parameter"><code>src</code></em>
 . If <em class="parameter"><code>provide</code></em>
- is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>, <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#gst-element-provide-clock"><code class="function">gst_element_provide_clock()</code></a> will return NULL.</p>
+ is <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>, <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#gst-element-provide-clock"><code class="function">gst_element_provide_clock()</code></a> will return NULL.</p>
 <div class="refsect3">
 <a name="id-1.2.6.13.10.5.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
@@ -302,7 +302,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-audio-base-src-get-provide-clock"></a><h3>gst_audio_base_src_get_provide_clock ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_audio_base_src_get_provide_clock (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiobasesrc.html#GstAudioBaseSrc"><span class="type">GstAudioBaseSrc</span></a> *src</code></em>);</pre>
 <p>Queries whether <em class="parameter"><code>src</code></em>
  will provide a clock or not. See also
@@ -324,7 +324,7 @@
 </div>
 <div class="refsect3">
 <a name="id-1.2.6.13.10.6.6"></a><h4>Returns</h4>
-<p> <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>src</code></em>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>src</code></em>
 will provide a clock.</p>
 <p></p>
 </div>
@@ -504,7 +504,7 @@
 <div class="refsect2">
 <a name="GstAudioBaseSrc--buffer-time"></a><h3>The <code class="literal">“buffer-time”</code> property</h3>
 <pre class="programlisting">  “buffer-time”              <span class="type">gint64</span></pre>
-<p>Size of audio buffer in microseconds. This is the maximum amount of data that is buffered in the device and the maximum latency that the source reports.</p>
+<p>Size of audio buffer in microseconds. This is the maximum amount of data that is buffered in the device and the maximum latency that the source reports. This value might be ignored by the element if necessary; see "actual-buffer-time".</p>
 <p>Flags: Read / Write</p>
 <p>Allowed values: &gt;= 1</p>
 <p>Default value: 200000</p>
@@ -513,7 +513,7 @@
 <div class="refsect2">
 <a name="GstAudioBaseSrc--latency-time"></a><h3>The <code class="literal">“latency-time”</code> property</h3>
 <pre class="programlisting">  “latency-time”             <span class="type">gint64</span></pre>
-<p>The minimum amount of data to read in each iteration in microseconds. This is the minimum latency that the source reports.</p>
+<p>The minimum amount of data to read in each iteration in microseconds. This is the minimum latency that the source reports. This value might be ignored by the element if necessary; see "actual-latency-time".</p>
 <p>Flags: Read / Write</p>
 <p>Allowed values: &gt;= 1</p>
 <p>Default value: 10000</p>
@@ -521,7 +521,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstAudioBaseSrc--provide-clock"></a><h3>The <code class="literal">“provide-clock”</code> property</h3>
-<pre class="programlisting">  “provide-clock”            <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<pre class="programlisting">  “provide-clock”            <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
 <p>Provide a clock to be used as the global pipeline clock.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: TRUE</p>
@@ -542,6 +542,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstaudiocdsrc.html b/docs/libs/html/gst-plugins-base-libs-gstaudiocdsrc.html
index 7cb2ce4..5151b36 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstaudiocdsrc.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstaudiocdsrc.html
@@ -8,16 +8,16 @@
 <link rel="up" href="gstreamer-audio.html" title="Audio Library">
 <link rel="prev" href="gst-plugins-base-libs-gstaudiometa.html" title="gstaudiometa">
 <link rel="next" href="gst-plugins-base-libs-gstaudioclock.html" title="gstaudioclock">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstaudiocdsrc.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstaudiocdsrc.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstaudiocdsrc.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties"> <span class="dim">|</span> 
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gstaudiocdsrc.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gstaudiocdsrc.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gstaudiocdsrc.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties">  <span class="dim">|</span> 
                   <a href="#gst-plugins-base-libs-gstaudiocdsrc.properties" class="shortcut">Properties</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
@@ -43,7 +43,7 @@
 </colgroup>
 <tbody><tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstaudiocdsrc.html#gst-audio-cd-src-add-track" title="gst_audio_cd_src_add_track ()">gst_audio_cd_src_add_track</a> <span class="c_punctuation">()</span>
@@ -62,7 +62,7 @@
 <tbody>
 <tr>
 <td class="property_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
 <td class="property_name"><a class="link" href="gst-plugins-base-libs-gstaudiocdsrc.html#GstAudioCdSrc--device" title="The “device” property">device</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
@@ -72,7 +72,7 @@
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-libs-gstaudiocdsrc.html#GstAudioCdSrc--track" title="The “track” property">track</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
@@ -108,8 +108,8 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstaudiocdsrc.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-    <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+<pre class="screen">    <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
         <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
             <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
                 <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSrc.html">GstBaseSrc</a>
@@ -178,7 +178,7 @@
 Applications will be informed of the available tracks via a TOC message
 on the pipeline's <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBus.html"><span class="type">GstBus</span></a>. The <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstToc.html"><span class="type">GstToc</span></a> will contain a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstToc.html#GstTocEntry"><span class="type">GstTocEntry</span></a> for
 each track, with information about each track. The duration for each
-track can be retrieved via the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GST-TAG-DURATION:CAPS"><span class="type">GST_TAG_DURATION</span></a> tag from each entry's
+track can be retrieved via the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagList.html#GST-TAG-DURATION:CAPS"><span class="type">GST_TAG_DURATION</span></a> tag from each entry's
 tag list, or calculated via <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstToc.html#gst-toc-entry-get-start-stop-times"><code class="function">gst_toc_entry_get_start_stop_times()</code></a>.
 The track entries in the TOC will be sorted by track number.
 </p>
@@ -188,7 +188,7 @@
 <a name="gst-plugins-base-libs-gstaudiocdsrc.functions_details"></a><h2>Functions</h2>
 <div class="refsect2">
 <a name="gst-audio-cd-src-add-track"></a><h3>gst_audio_cd_src_add_track ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_audio_cd_src_add_track (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiocdsrc.html#GstAudioCdSrc"><span class="type">GstAudioCdSrc</span></a> *src</code></em>,
                             <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiocdsrc.html#GstAudioCdSrcTrack" title="struct GstAudioCdSrcTrack"><span class="type">GstAudioCdSrcTrack</span></a> *track</code></em>);</pre>
 <p>CDDA sources use this function from their start vfunc to announce the
@@ -324,27 +324,27 @@
 </colgroup>
 <tbody>
 <tr>
-<td class="struct_member_name"><p><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="GstAudioCdSrcTrack.is-audio"></a>is_audio</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> <em class="structfield"><code><a name="GstAudioCdSrcTrack.is-audio"></a>is_audio</code></em>;</p></td>
 <td class="struct_member_description"><p>Whether this is an audio track</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstAudioCdSrcTrack.num"></a>num</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstAudioCdSrcTrack.num"></a>num</code></em>;</p></td>
 <td class="struct_member_description"><p>Track number in TOC (usually starts from 1, but not always)</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstAudioCdSrcTrack.start"></a>start</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstAudioCdSrcTrack.start"></a>start</code></em>;</p></td>
 <td class="struct_member_description"><p>The first sector of this track (LBA)</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstAudioCdSrcTrack.end"></a>end</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstAudioCdSrcTrack.end"></a>end</code></em>;</p></td>
 <td class="struct_member_description"><p>The last sector of this track (LBA)</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a> *<em class="structfield"><code><a name="GstAudioCdSrcTrack.tags"></a>tags</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagList.html"><span class="type">GstTagList</span></a> *<em class="structfield"><code><a name="GstAudioCdSrcTrack.tags"></a>tags</code></em>;</p></td>
 <td class="struct_member_description"><p>Track-specific tags (e.g. from cd-text information), or NULL</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
@@ -389,7 +389,7 @@
 <a name="gst-plugins-base-libs-gstaudiocdsrc.property-details"></a><h2>Property Details</h2>
 <div class="refsect2">
 <a name="GstAudioCdSrc--device"></a><h3>The <code class="literal">“device”</code> property</h3>
-<pre class="programlisting">  “device”                   <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
+<pre class="programlisting">  “device”                   <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
 <p>CD device location.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: NULL</p>
@@ -405,7 +405,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstAudioCdSrc--track"></a><h3>The <code class="literal">“track”</code> property</h3>
-<pre class="programlisting">  “track”                    <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre>
+<pre class="programlisting">  “track”                    <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre>
 <p>Track.</p>
 <p>Flags: Read / Write</p>
 <p>Allowed values: [1,99]</p>
@@ -415,6 +415,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstaudiochannels.html b/docs/libs/html/gst-plugins-base-libs-gstaudiochannels.html
index a3b1c8e..0c7f1af 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstaudiochannels.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstaudiochannels.html
@@ -8,15 +8,14 @@
 <link rel="up" href="gstreamer-audio.html" title="Audio Library">
 <link rel="prev" href="gst-plugins-base-libs-gstaudiobasesrc.html" title="gstaudiobasesrc">
 <link rel="next" href="gst-plugins-base-libs-gstaudioringbuffer.html" title="gstaudioringbuffer">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstaudiochannels.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstaudiochannels.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gstaudiochannels.description" class="shortcut">Description</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="gstreamer-audio.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -48,7 +47,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#gst-audio-channel-positions-to-mask" title="gst_audio_channel_positions_to_mask ()">gst_audio_channel_positions_to_mask</a> <span class="c_punctuation">()</span>
@@ -56,7 +55,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#gst-audio-channel-positions-from-mask" title="gst_audio_channel_positions_from_mask ()">gst_audio_channel_positions_from_mask</a> <span class="c_punctuation">()</span>
@@ -64,7 +63,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#gst-audio-channel-positions-to-valid-order" title="gst_audio_channel_positions_to_valid_order ()">gst_audio_channel_positions_to_valid_order</a> <span class="c_punctuation">()</span>
@@ -72,7 +71,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#gst-audio-check-valid-channel-positions" title="gst_audio_check_valid_channel_positions ()">gst_audio_check_valid_channel_positions</a> <span class="c_punctuation">()</span>
@@ -80,7 +79,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#gst-audio-buffer-reorder-channels" title="gst_audio_buffer_reorder_channels ()">gst_audio_buffer_reorder_channels</a> <span class="c_punctuation">()</span>
@@ -88,7 +87,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#gst-audio-reorder-channels" title="gst_audio_reorder_channels ()">gst_audio_reorder_channels</a> <span class="c_punctuation">()</span>
@@ -96,7 +95,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#gst-audio-get-channel-reorder-map" title="gst_audio_get_channel_reorder_map ()">gst_audio_get_channel_reorder_map</a> <span class="c_punctuation">()</span>
@@ -119,11 +118,6 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="gst-plugins-base-libs-gstaudiochannels.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">
-</pre>
-</div>
-<div class="refsect1">
 <a name="gst-plugins-base-libs-gstaudiochannels.includes"></a><h2>Includes</h2>
 <pre class="synopsis">#include &lt;gst/audio/audio-channels.h&gt;
 </pre>
@@ -142,19 +136,19 @@
 <hr>
 <div class="refsect2">
 <a name="gst-audio-channel-positions-to-mask"></a><h3>gst_audio_channel_positions_to_mask ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_audio_channel_positions_to_mask (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> *position</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> channels</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_order</code></em>,
+                                     <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> channels</code></em>,
+                                     <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> force_order</code></em>,
                                      <em class="parameter"><code><span class="type">guint64</span> *channel_mask</code></em>);</pre>
 <p>Convert the <em class="parameter"><code>position</code></em>
  array of <em class="parameter"><code>channels</code></em>
  channels to a bitmask.</p>
 <p>If <em class="parameter"><code>force_order</code></em>
- is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> it additionally checks if the channels are
+ is <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> it additionally checks if the channels are
 in the order required by GStreamer.</p>
 <div class="refsect3">
-<a name="id-1.2.6.14.8.3.6"></a><h4>Parameters</h4>
+<a name="id-1.2.6.14.7.3.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -186,16 +180,16 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.6.14.8.3.7"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the channel positions are valid and could be converted.</p>
+<a name="id-1.2.6.14.7.3.7"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the channel positions are valid and could be converted.</p>
 <p></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-audio-channel-positions-from-mask"></a><h3>gst_audio_channel_positions_from_mask ()</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_audio_channel_positions_from_mask (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> channels</code></em>,
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gst_audio_channel_positions_from_mask (<em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> channels</code></em>,
                                        <em class="parameter"><code><span class="type">guint64</span> channel_mask</code></em>,
                                        <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> *position</code></em>);</pre>
 <p>Convert the <em class="parameter"><code>channels</code></em>
@@ -206,9 +200,12 @@
  entries ensured by caller).
 If <em class="parameter"><code>channel_mask</code></em>
  is set to 0, it is considered as 'not present' for purpose
-of conversion.</p>
+of conversion.
+A partially valid <em class="parameter"><code>channel_mask</code></em>
+ with less bits set than the number
+of channels is considered valid.</p>
 <div class="refsect3">
-<a name="id-1.2.6.14.8.4.5"></a><h4>Parameters</h4>
+<a name="id-1.2.6.14.7.4.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -236,23 +233,23 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.6.14.8.4.6"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if channel and channel mask are valid and could be converted</p>
+<a name="id-1.2.6.14.7.4.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if channel and channel mask are valid and could be converted</p>
 <p></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-audio-channel-positions-to-valid-order"></a><h3>gst_audio_channel_positions_to_valid_order ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_audio_channel_positions_to_valid_order
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> *position</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> channels</code></em>);</pre>
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> channels</code></em>);</pre>
 <p>Reorders the channel positions in <em class="parameter"><code>position</code></em>
  from any order to
 the GStreamer channel order.</p>
 <div class="refsect3">
-<a name="id-1.2.6.14.8.5.5"></a><h4>Parameters</h4>
+<a name="id-1.2.6.14.7.5.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -275,8 +272,8 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.6.14.8.5.6"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the channel positions are valid and reordering
+<a name="id-1.2.6.14.7.5.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the channel positions are valid and reordering
 was successful.</p>
 <p></p>
 </div>
@@ -284,19 +281,19 @@
 <hr>
 <div class="refsect2">
 <a name="gst-audio-check-valid-channel-positions"></a><h3>gst_audio_check_valid_channel_positions ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_audio_check_valid_channel_positions
                                (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> *position</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> channels</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_order</code></em>);</pre>
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> channels</code></em>,
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> force_order</code></em>);</pre>
 <p>Checks if <em class="parameter"><code>position</code></em>
  contains valid channel positions for
 <em class="parameter"><code>channels</code></em>
  channels. If <em class="parameter"><code>force_order</code></em>
- is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> it additionally
+ is <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> it additionally
 checks if the channels are in the order required by GStreamer.</p>
 <div class="refsect3">
-<a name="id-1.2.6.14.8.6.5"></a><h4>Parameters</h4>
+<a name="id-1.2.6.14.7.6.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -324,18 +321,18 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.6.14.8.6.6"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the channel positions are valid.</p>
+<a name="id-1.2.6.14.7.6.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the channel positions are valid.</p>
 <p></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-audio-buffer-reorder-channels"></a><h3>gst_audio_buffer_reorder_channels ()</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_audio_buffer_reorder_channels (<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 href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gst_audio_buffer_reorder_channels (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> *buffer</code></em>,
                                    <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormat" title="enum GstAudioFormat"><span class="type">GstAudioFormat</span></a> format</code></em>,
-                                   <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> channels</code></em>,
+                                   <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> channels</code></em>,
                                    <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> *from</code></em>,
                                    <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> *to</code></em>);</pre>
 <p>Reorders <em class="parameter"><code>buffer</code></em>
@@ -349,7 +346,7 @@
 <em class="parameter"><code>buffer</code></em>
  must be writable.</p>
 <div class="refsect3">
-<a name="id-1.2.6.14.8.7.5"></a><h4>Parameters</h4>
+<a name="id-1.2.6.14.7.7.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -386,19 +383,19 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.6.14.8.7.6"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the reordering was possible.</p>
+<a name="id-1.2.6.14.7.7.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the reordering was possible.</p>
 <p></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-audio-reorder-channels"></a><h3>gst_audio_reorder_channels ()</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_audio_reorder_channels (<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 class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gst_audio_reorder_channels (<em class="parameter"><code><a href="https://developer.gnome.org/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>,
                             <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormat" title="enum GstAudioFormat"><span class="type">GstAudioFormat</span></a> format</code></em>,
-                            <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> channels</code></em>,
+                            <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> channels</code></em>,
                             <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> *from</code></em>,
                             <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> *to</code></em>);</pre>
 <p>Reorders <em class="parameter"><code>data</code></em>
@@ -410,7 +407,7 @@
  must contain the same number of
 positions and the same positions, only in a different order.</p>
 <div class="refsect3">
-<a name="id-1.2.6.14.8.8.5"></a><h4>Parameters</h4>
+<a name="id-1.2.6.14.7.8.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -453,19 +450,19 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.6.14.8.8.6"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the reordering was possible.</p>
+<a name="id-1.2.6.14.7.8.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the reordering was possible.</p>
 <p></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-audio-get-channel-reorder-map"></a><h3>gst_audio_get_channel_reorder_map ()</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_audio_get_channel_reorder_map (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> channels</code></em>,
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gst_audio_get_channel_reorder_map (<em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> channels</code></em>,
                                    <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> *from</code></em>,
                                    <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> *to</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> *reorder_map</code></em>);</pre>
+                                   <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *reorder_map</code></em>);</pre>
 <p>Returns a reorder map for <em class="parameter"><code>from</code></em>
  to <em class="parameter"><code>to</code></em>
  that can be used in
@@ -479,7 +476,7 @@
  can be used for reordering by assigning
 channel i of the input to channel reorder_map[i] of the output.</p>
 <div class="refsect3">
-<a name="id-1.2.6.14.8.9.6"></a><h4>Parameters</h4>
+<a name="id-1.2.6.14.7.9.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -511,8 +508,8 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.6.14.8.9.7"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the channel positions are valid and reordering
+<a name="id-1.2.6.14.7.9.7"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the channel positions are valid and reordering
 is possible.</p>
 <p></p>
 </div>
@@ -545,7 +542,7 @@
 This implicitely means that this is a stereo stream with a front left and front right
 channel.</p>
 <div class="refsect3">
-<a name="id-1.2.6.14.9.2.8"></a><h4>Members</h4>
+<a name="id-1.2.6.14.8.2.8"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -781,6 +778,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstaudioclock.html b/docs/libs/html/gst-plugins-base-libs-gstaudioclock.html
index 7155583..c31d373 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstaudioclock.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstaudioclock.html
@@ -8,14 +8,14 @@
 <link rel="up" href="gstreamer-audio.html" title="Audio Library">
 <link rel="prev" href="gst-plugins-base-libs-gstaudiocdsrc.html" title="gstaudiocdsrc">
 <link rel="next" href="gst-plugins-base-libs-gstaudiodecoder.html" title="gstaudiodecoder">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstaudioclock.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gstaudioclock.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
                   <a href="#gst-plugins-base-libs-gstaudioclock.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
@@ -106,8 +106,8 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstaudioclock.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-    <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+<pre class="screen">    <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
         <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
             <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html">GstClock</a>
                 <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstSystemClock.html">GstSystemClock</a>
@@ -131,7 +131,7 @@
 <a name="GstAudioClockGetTimeFunc"></a><h3>GstAudioClockGetTimeFunc ()</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>
 <span class="c_punctuation">(</span>*GstAudioClockGetTimeFunc<span class="c_punctuation">)</span> (<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>,
-                             <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>
+                             <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
 <p>This function will be called whenever the current clock time needs to be
 calculated. 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>, the last reported
 time will be returned by the clock.</p>
@@ -168,10 +168,10 @@
 <div class="refsect2">
 <a name="gst-audio-clock-new"></a><h3>gst_audio_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_audio_clock_new (<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>,
+gst_audio_clock_new (<em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
                      <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioclock.html#GstAudioClockGetTimeFunc" title="GstAudioClockGetTimeFunc ()"><span class="type">GstAudioClockGetTimeFunc</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_notify</code></em>);</pre>
+                     <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
+                     <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> destroy_notify</code></em>);</pre>
 <p>Create a new <a class="link" href="gst-plugins-base-libs-gstaudioclock.html#GstAudioClock"><span class="type">GstAudioClock</span></a> instance. Whenever the clock time should be
 calculated it will call <em class="parameter"><code>func</code></em>
  with <em class="parameter"><code>user_data</code></em>
@@ -204,7 +204,7 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>destroy_notify</p></td>
-<td class="parameter_description"><p><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 class="parameter_description"><p><a href="https://developer.gnome.org/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> for <em class="parameter"><code>user_data</code></em>
 </p></td>
 <td class="parameter_annotations"> </td>
 </tr>
@@ -360,6 +360,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstaudiodecoder.html b/docs/libs/html/gst-plugins-base-libs-gstaudiodecoder.html
index 102f763..7faf645 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstaudiodecoder.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstaudiodecoder.html
@@ -8,15 +8,15 @@
 <link rel="up" href="gstreamer-audio.html" title="Audio Library">
 <link rel="prev" href="gst-plugins-base-libs-gstaudioclock.html" title="gstaudioclock">
 <link rel="next" href="gst-plugins-base-libs-gstaudioencoder.html" title="gstaudioencoder">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstaudiodecoder.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstaudiodecoder.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> 
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gstaudiodecoder.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gstaudiodecoder.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
                   <a href="#gst-plugins-base-libs-gstaudiodecoder.properties" class="shortcut">Properties</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
@@ -69,7 +69,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-set-output-format" title="gst_audio_decoder_set_output_format ()">gst_audio_decoder_set_output_format</a> <span class="c_punctuation">()</span>
@@ -77,7 +77,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-negotiate" title="gst_audio_decoder_negotiate ()">gst_audio_decoder_negotiate</a> <span class="c_punctuation">()</span>
@@ -85,7 +85,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="returnvalue">GstBuffer</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-allocate-output-buffer" title="gst_audio_decoder_allocate_output_buffer ()">gst_audio_decoder_allocate_output_buffer</a> <span class="c_punctuation">()</span>
@@ -109,7 +109,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-estimate-rate" title="gst_audio_decoder_get_estimate_rate ()">gst_audio_decoder_get_estimate_rate</a> <span class="c_punctuation">()</span>
@@ -117,7 +117,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-delay" title="gst_audio_decoder_get_delay ()">gst_audio_decoder_get_delay</a> <span class="c_punctuation">()</span>
@@ -125,7 +125,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-drainable" title="gst_audio_decoder_get_drainable ()">gst_audio_decoder_get_drainable</a> <span class="c_punctuation">()</span>
@@ -141,7 +141,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-max-errors" title="gst_audio_decoder_get_max_errors ()">gst_audio_decoder_get_max_errors</a> <span class="c_punctuation">()</span>
@@ -157,7 +157,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-needs-format" title="gst_audio_decoder_get_needs_format ()">gst_audio_decoder_get_needs_format</a> <span class="c_punctuation">()</span>
@@ -173,7 +173,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-plc" title="gst_audio_decoder_get_plc ()">gst_audio_decoder_get_plc</a> <span class="c_punctuation">()</span>
@@ -181,7 +181,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-plc-aware" title="gst_audio_decoder_get_plc_aware ()">gst_audio_decoder_get_plc_aware</a> <span class="c_punctuation">()</span>
@@ -293,7 +293,7 @@
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder--plc" title="The “plc” property">plc</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
@@ -334,8 +334,8 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstaudiodecoder.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-    <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+<pre class="screen">    <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
         <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
             <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
                 <span class="lineart">╰──</span> GstAudioDecoder
@@ -569,8 +569,8 @@
 <a name="gst-audio-decoder-finish-frame"></a><h3>gst_audio_decoder_finish_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_audio_decoder_finish_frame (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</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://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> frames</code></em>);</pre>
+                                <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> *buf</code></em>,
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> frames</code></em>);</pre>
 <p>Collects decoded data and pushes it downstream.</p>
 <p><em class="parameter"><code>buf</code></em>
  may be NULL in which case the indicated number of frames
@@ -617,7 +617,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-audio-decoder-set-output-format"></a><h3>gst_audio_decoder_set_output_format ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_audio_decoder_set_output_format (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>,
                                      <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a> *info</code></em>);</pre>
 <p>Configure output info on the srcpad of <em class="parameter"><code>dec</code></em>
@@ -646,14 +646,14 @@
 </div>
 <div class="refsect3">
 <a name="id-1.2.6.7.10.6.6"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success.</p>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success.</p>
 <p></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-audio-decoder-negotiate"></a><h3>gst_audio_decoder_negotiate ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_audio_decoder_negotiate (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>);</pre>
 <p>Negotiate with downstream elements to currently configured <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a>.
 Unmark GST_PAD_FLAG_NEED_RECONFIGURE in any case. But mark it again if
@@ -675,14 +675,14 @@
 </div>
 <div class="refsect3">
 <a name="id-1.2.6.7.10.7.6"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><span class="type">TRUE</span></a> if the negotiation succeeded, else <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><span class="type">FALSE</span></a>.</p>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><span class="type">TRUE</span></a> if the negotiation succeeded, else <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><span class="type">FALSE</span></a>.</p>
 <p></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-audio-decoder-allocate-output-buffer"></a><h3>gst_audio_decoder_allocate_output_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> *
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="returnvalue">GstBuffer</span></a> *
 gst_audio_decoder_allocate_output_buffer
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>,
                                 <em class="parameter"><code><span class="type">gsize</span> size</code></em>);</pre>
@@ -748,14 +748,14 @@
 <td class="parameter_name"><p>allocator</p></td>
 <td class="parameter_description"><p> the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstAllocator.html"><span class="type">GstAllocator</span></a>
 used. </p></td>
-<td class="parameter_annotations"><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>
+<td class="parameter_annotations"><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>
 <td class="parameter_name"><p>params</p></td>
 <td class="parameter_description"><p> the
 <span class="type">GstAllocatorParams</span> of <em class="parameter"><code>allocator</code></em>
 . </p></td>
-<td class="parameter_annotations"><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>
+<td class="parameter_annotations"><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>
 </tbody>
 </table></div>
@@ -790,7 +790,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-audio-decoder-get-estimate-rate"></a><h3>gst_audio_decoder_get_estimate_rate ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
 gst_audio_decoder_get_estimate_rate (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>);</pre>
 <div class="refsect3">
 <a name="id-1.2.6.7.10.11.4"></a><h4>Parameters</h4>
@@ -816,7 +816,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-audio-decoder-get-delay"></a><h3>gst_audio_decoder_get_delay ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
 gst_audio_decoder_get_delay (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>);</pre>
 <div class="refsect3">
 <a name="id-1.2.6.7.10.12.4"></a><h4>Parameters</h4>
@@ -842,7 +842,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-audio-decoder-get-drainable"></a><h3>gst_audio_decoder_get_drainable ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_audio_decoder_get_drainable (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>);</pre>
 <p>Queries decoder drain handling.</p>
 <div class="refsect3">
@@ -895,12 +895,12 @@
 <tr>
 <td class="parameter_name"><p>min</p></td>
 <td class="parameter_description"><p> a pointer to storage to hold minimum latency. </p></td>
-<td class="parameter_annotations"><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>
+<td class="parameter_annotations"><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 class="parameter_name"><p>max</p></td>
 <td class="parameter_description"><p> a pointer to storage to hold maximum latency. </p></td>
-<td class="parameter_annotations"><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>
+<td class="parameter_annotations"><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>
@@ -909,7 +909,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-audio-decoder-get-max-errors"></a><h3>gst_audio_decoder_get_max_errors ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
 gst_audio_decoder_get_max_errors (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>);</pre>
 <div class="refsect3">
 <a name="id-1.2.6.7.10.15.4"></a><h4>Parameters</h4>
@@ -963,7 +963,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-audio-decoder-get-needs-format"></a><h3>gst_audio_decoder_get_needs_format ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_audio_decoder_get_needs_format (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>);</pre>
 <p>Queries decoder required format handling.</p>
 <div class="refsect3">
@@ -993,8 +993,8 @@
 <a name="gst-audio-decoder-get-parse-state"></a><h3>gst_audio_decoder_get_parse_state ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_audio_decoder_get_parse_state (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</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>,
-                                   <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *eos</code></em>);</pre>
+                                   <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *sync</code></em>,
+                                   <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *eos</code></em>);</pre>
 <p>Return current parsing (sync and eos) state.</p>
 <div class="refsect3">
 <a name="id-1.2.6.7.10.18.5"></a><h4>Parameters</h4>
@@ -1027,7 +1027,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-audio-decoder-get-plc"></a><h3>gst_audio_decoder_get_plc ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_audio_decoder_get_plc (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>);</pre>
 <p>Queries decoder packet loss concealment handling.</p>
 <div class="refsect3">
@@ -1055,7 +1055,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-audio-decoder-get-plc-aware"></a><h3>gst_audio_decoder_get_plc_aware ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
 gst_audio_decoder_get_plc_aware (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>);</pre>
 <div class="refsect3">
 <a name="id-1.2.6.7.10.20.4"></a><h4>Parameters</h4>
@@ -1111,7 +1111,7 @@
 <a name="gst-audio-decoder-set-estimate-rate"></a><h3>gst_audio_decoder_set_estimate_rate ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_audio_decoder_set_estimate_rate (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>,
-                                     <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>);</pre>
+                                     <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);</pre>
 <p>Allows baseclass to perform byte to time estimated conversion.</p>
 <div class="refsect3">
 <a name="id-1.2.6.7.10.22.5"></a><h4>Parameters</h4>
@@ -1141,7 +1141,7 @@
 <a name="gst-audio-decoder-set-drainable"></a><h3>gst_audio_decoder_set_drainable ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_audio_decoder_set_drainable (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</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> enabled</code></em>);</pre>
+                                 <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);</pre>
 <p>Configures decoder drain handling.  If drainable, subclass might
 be handed a NULL buffer to have it return any leftover decoded data.
 Otherwise, it is not considered so capable and will only ever be passed
@@ -1211,7 +1211,7 @@
 <a name="gst-audio-decoder-set-max-errors"></a><h3>gst_audio_decoder_set_max_errors ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_audio_decoder_set_max_errors (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>,
-                                  <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> num</code></em>);</pre>
+                                  <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> num</code></em>);</pre>
 <p>Sets numbers of tolerated decoder errors, where a tolerated one is then only
 warned about, but more than tolerated will lead to fatal error. You can set
 -1 for never returning fatal errors. Default is set to
@@ -1275,7 +1275,7 @@
 <a name="gst-audio-decoder-set-needs-format"></a><h3>gst_audio_decoder_set_needs_format ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_audio_decoder_set_needs_format (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</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> enabled</code></em>);</pre>
+                                    <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);</pre>
 <p>Configures decoder format needs.  If enabled, subclass needs to be
 negotiated with format caps before it can process any data.  It will then
 never be handed any data before it has been configured.
@@ -1311,7 +1311,7 @@
 <a name="gst-audio-decoder-set-plc"></a><h3>gst_audio_decoder_set_plc ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_audio_decoder_set_plc (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</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> enabled</code></em>);</pre>
+                           <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);</pre>
 <p>Enable or disable decoder packet loss concealment, provided subclass
 and codec are capable and allow handling plc.</p>
 <p>MT safe.</p>
@@ -1343,7 +1343,7 @@
 <a name="gst-audio-decoder-set-plc-aware"></a><h3>gst_audio_decoder_set_plc_aware ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_audio_decoder_set_plc_aware (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>,
-                                 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> plc</code></em>);</pre>
+                                 <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> plc</code></em>);</pre>
 <p>Indicates whether or not subclass handles packet loss concealment (plc).</p>
 <div class="refsect3">
 <a name="id-1.2.6.7.10.29.5"></a><h4>Parameters</h4>
@@ -1404,8 +1404,8 @@
 <a name="gst-audio-decoder-merge-tags"></a><h3>gst_audio_decoder_merge_tags ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_audio_decoder_merge_tags (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>,
-                              <em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a> *tags</code></em>,
-                              <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagMergeMode"><span class="type">GstTagMergeMode</span></a> mode</code></em>);</pre>
+                              <em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagList.html"><span class="type">GstTagList</span></a> *tags</code></em>,
+                              <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagList.html#GstTagMergeMode"><span class="type">GstTagMergeMode</span></a> mode</code></em>);</pre>
 <p>Adds tags to so-called pending tags, which will be processed
 before pushing out data downstream.</p>
 <p>Note that this is provided for convenience, and the subclass is
@@ -1429,12 +1429,12 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>tags</p></td>
-<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a> to merge</p></td>
+<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagList.html"><span class="type">GstTagList</span></a> to merge</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
 <td class="parameter_name"><p>mode</p></td>
-<td class="parameter_description"><p>the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagMergeMode"><span class="type">GstTagMergeMode</span></a> to use</p></td>
+<td class="parameter_description"><p>the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagList.html#GstTagMergeMode"><span class="type">GstTagMergeMode</span></a> to use</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 </tbody>
@@ -1491,6 +1491,9 @@
 
   gboolean      (*propose_allocation) (GstAudioDecoder *dec,
                                        GstQuery * query);
+
+  GstCaps *     (*getcaps)            (GstAudioDecoder * dec,
+                                       GstCaps * filter);
 };
 </pre>
 <p>Subclasses can override any of the available virtual methods or not, as
@@ -1621,6 +1624,15 @@
 invoke the default handler.</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
+<tr>
+<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioDecoderClass.getcaps"></a>getcaps</code></em> ()</p></td>
+<td class="struct_member_description"><p>Optional.
+Allows for a custom sink getcaps implementation.
+If not implemented,
+default returns gst_audio_decoder_proxy_getcaps
+applied to sink template caps.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
 </tbody>
 </table></div>
 </div>
@@ -1653,7 +1665,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstAudioDecoder--plc"></a><h3>The <code class="literal">“plc”</code> property</h3>
-<pre class="programlisting">  “plc”                      <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<pre class="programlisting">  “plc”                      <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
 <p>Perform packet loss concealment (if supported).</p>
 <p>Flags: Read / Write</p>
 <p>Default value: FALSE</p>
@@ -1675,6 +1687,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstaudioencoder.html b/docs/libs/html/gst-plugins-base-libs-gstaudioencoder.html
index a721bbb..75b1909 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstaudioencoder.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstaudioencoder.html
@@ -8,16 +8,16 @@
 <link rel="up" href="gstreamer-audio.html" title="Audio Library">
 <link rel="prev" href="gst-plugins-base-libs-gstaudiodecoder.html" title="gstaudiodecoder">
 <link rel="next" href="gst-plugins-base-libs-gstaudiofilter.html" title="gstaudiofilter">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstaudioencoder.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstaudioencoder.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstaudioencoder.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties"> <span class="dim">|</span> 
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gstaudioencoder.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gstaudioencoder.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gstaudioencoder.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties">  <span class="dim">|</span> 
                   <a href="#gst-plugins-base-libs-gstaudioencoder.properties" class="shortcut">Properties</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
@@ -64,7 +64,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="returnvalue">GstBuffer</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-allocate-output-buffer" title="gst_audio_encoder_allocate_output_buffer ()">gst_audio_encoder_allocate_output_buffer</a> <span class="c_punctuation">()</span>
@@ -80,7 +80,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-output-format" title="gst_audio_encoder_set_output_format ()">gst_audio_encoder_set_output_format</a> <span class="c_punctuation">()</span>
@@ -88,7 +88,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-negotiate" title="gst_audio_encoder_negotiate ()">gst_audio_encoder_negotiate</a> <span class="c_punctuation">()</span>
@@ -104,7 +104,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-drainable" title="gst_audio_encoder_get_drainable ()">gst_audio_encoder_get_drainable</a> <span class="c_punctuation">()</span>
@@ -112,7 +112,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-frame-max" title="gst_audio_encoder_get_frame_max ()">gst_audio_encoder_get_frame_max</a> <span class="c_punctuation">()</span>
@@ -120,7 +120,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-frame-samples-min" title="gst_audio_encoder_get_frame_samples_min ()">gst_audio_encoder_get_frame_samples_min</a> <span class="c_punctuation">()</span>
@@ -128,7 +128,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-frame-samples-max" title="gst_audio_encoder_get_frame_samples_max ()">gst_audio_encoder_get_frame_samples_max</a> <span class="c_punctuation">()</span>
@@ -136,7 +136,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-hard-min" title="gst_audio_encoder_get_hard_min ()">gst_audio_encoder_get_hard_min</a> <span class="c_punctuation">()</span>
@@ -144,7 +144,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-hard-resync" title="gst_audio_encoder_get_hard_resync ()">gst_audio_encoder_get_hard_resync</a> <span class="c_punctuation">()</span>
@@ -160,7 +160,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-lookahead" title="gst_audio_encoder_get_lookahead ()">gst_audio_encoder_get_lookahead</a> <span class="c_punctuation">()</span>
@@ -168,7 +168,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-mark-granule" title="gst_audio_encoder_get_mark_granule ()">gst_audio_encoder_get_mark_granule</a> <span class="c_punctuation">()</span>
@@ -176,7 +176,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-perfect-timestamp" title="gst_audio_encoder_get_perfect_timestamp ()">gst_audio_encoder_get_perfect_timestamp</a> <span class="c_punctuation">()</span>
@@ -192,7 +192,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="returnvalue">GstCaps</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-proxy-getcaps" title="gst_audio_encoder_proxy_getcaps ()">gst_audio_encoder_proxy_getcaps</a> <span class="c_punctuation">()</span>
@@ -315,17 +315,17 @@
 </colgroup>
 <tbody>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder--hard-resync" title="The “hard-resync” property">hard-resync</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder--mark-granule" title="The “mark-granule” property">mark-granule</a></td>
 <td class="property_flags">Read</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder--perfect-timestamp" title="The “perfect-timestamp” property">perfect-timestamp</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
@@ -366,8 +366,8 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstaudioencoder.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-    <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+<pre class="screen">    <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
         <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
             <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
                 <span class="lineart">╰──</span> GstAudioEncoder
@@ -549,8 +549,8 @@
 <a name="gst-audio-encoder-finish-frame"></a><h3>gst_audio_encoder_finish_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_audio_encoder_finish_frame (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
-                                <em class="parameter"><code><a href="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="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> samples</code></em>);</pre>
+                                <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> *buffer</code></em>,
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> samples</code></em>);</pre>
 <p>Collects encoded data and pushes encoded data downstream.
 Source pad caps must be set when this is called.</p>
 <p>If <em class="parameter"><code>samples</code></em>
@@ -598,7 +598,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-audio-encoder-allocate-output-buffer"></a><h3>gst_audio_encoder_allocate_output_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> *
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="returnvalue">GstBuffer</span></a> *
 gst_audio_encoder_allocate_output_buffer
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
                                 <em class="parameter"><code><span class="type">gsize</span> size</code></em>);</pre>
@@ -664,14 +664,14 @@
 <td class="parameter_name"><p>allocator</p></td>
 <td class="parameter_description"><p> the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstAllocator.html"><span class="type">GstAllocator</span></a>
 used. </p></td>
-<td class="parameter_annotations"><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>
+<td class="parameter_annotations"><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>
 <td class="parameter_name"><p>params</p></td>
 <td class="parameter_description"><p> the
 <span class="type">GstAllocatorParams</span> of <em class="parameter"><code>allocator</code></em>
 . </p></td>
-<td class="parameter_annotations"><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>
+<td class="parameter_annotations"><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>
 </tbody>
 </table></div>
@@ -680,16 +680,16 @@
 <hr>
 <div class="refsect2">
 <a name="gst-audio-encoder-set-output-format"></a><h3>gst_audio_encoder_set_output_format ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_audio_encoder_set_output_format (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
-                                     <em class="parameter"><code><a href="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="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> *caps</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-audio-encoder-negotiate"></a><h3>gst_audio_encoder_negotiate ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_audio_encoder_negotiate (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);</pre>
-<p>Negotiate with downstream elements to currently configured <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>.
+<p>Negotiate with downstream elements to currently configured <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a>.
 Unmark GST_PAD_FLAG_NEED_RECONFIGURE in any case. But mark it again if
 negotiate fails.</p>
 <div class="refsect3">
@@ -709,7 +709,7 @@
 </div>
 <div class="refsect3">
 <a name="id-1.2.6.8.11.8.6"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><span class="type">TRUE</span></a> if the negotiation succeeded, else <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><span class="type">FALSE</span></a>.</p>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><span class="type">TRUE</span></a> if the negotiation succeeded, else <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><span class="type">FALSE</span></a>.</p>
 <p></p>
 </div>
 </div>
@@ -742,7 +742,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-audio-encoder-get-drainable"></a><h3>gst_audio_encoder_get_drainable ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_audio_encoder_get_drainable (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);</pre>
 <p>Queries encoder drain handling.</p>
 <div class="refsect3">
@@ -770,7 +770,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-audio-encoder-get-frame-max"></a><h3>gst_audio_encoder_get_frame_max ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
 gst_audio_encoder_get_frame_max (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);</pre>
 <div class="refsect3">
 <a name="id-1.2.6.8.11.11.4"></a><h4>Parameters</h4>
@@ -796,7 +796,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-audio-encoder-get-frame-samples-min"></a><h3>gst_audio_encoder_get_frame_samples_min ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
 gst_audio_encoder_get_frame_samples_min
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);</pre>
 <div class="refsect3">
@@ -823,7 +823,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-audio-encoder-get-frame-samples-max"></a><h3>gst_audio_encoder_get_frame_samples_max ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
 gst_audio_encoder_get_frame_samples_max
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);</pre>
 <div class="refsect3">
@@ -850,7 +850,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-audio-encoder-get-hard-min"></a><h3>gst_audio_encoder_get_hard_min ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_audio_encoder_get_hard_min (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);</pre>
 <p>Queries encoder hard minimum handling.</p>
 <div class="refsect3">
@@ -878,7 +878,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-audio-encoder-get-hard-resync"></a><h3>gst_audio_encoder_get_hard_resync ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_audio_encoder_get_hard_resync (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);</pre>
 </div>
 <hr>
@@ -909,12 +909,12 @@
 <tr>
 <td class="parameter_name"><p>min</p></td>
 <td class="parameter_description"><p> a pointer to storage to hold minimum latency. </p></td>
-<td class="parameter_annotations"><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>
+<td class="parameter_annotations"><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 class="parameter_name"><p>max</p></td>
 <td class="parameter_description"><p> a pointer to storage to hold maximum latency. </p></td>
-<td class="parameter_annotations"><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>
+<td class="parameter_annotations"><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>
@@ -923,7 +923,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-audio-encoder-get-lookahead"></a><h3>gst_audio_encoder_get_lookahead ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
 gst_audio_encoder_get_lookahead (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);</pre>
 <div class="refsect3">
 <a name="id-1.2.6.8.11.17.4"></a><h4>Parameters</h4>
@@ -949,7 +949,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-audio-encoder-get-mark-granule"></a><h3>gst_audio_encoder_get_mark_granule ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_audio_encoder_get_mark_granule (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);</pre>
 <p>Queries if the encoder will handle granule marking.</p>
 <div class="refsect3">
@@ -977,7 +977,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-audio-encoder-get-perfect-timestamp"></a><h3>gst_audio_encoder_get_perfect_timestamp ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_audio_encoder_get_perfect_timestamp
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);</pre>
 <p>Queries encoder perfect timestamp behaviour.</p>
@@ -1034,10 +1034,10 @@
 <hr>
 <div class="refsect2">
 <a name="gst-audio-encoder-proxy-getcaps"></a><h3>gst_audio_encoder_proxy_getcaps ()</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> *
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="returnvalue">GstCaps</span></a> *
 gst_audio_encoder_proxy_getcaps (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
-                                 <em class="parameter"><code><a href="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="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *filter</code></em>);</pre>
+                                 <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> *caps</code></em>,
+                                 <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> *filter</code></em>);</pre>
 <p>Returns caps that express <em class="parameter"><code>caps</code></em>
  (or sink template caps if <em class="parameter"><code>caps</code></em>
  == NULL)
@@ -1059,21 +1059,21 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>caps</p></td>
-<td class="parameter_description"><p>initial caps</p></td>
-<td class="parameter_annotations"> </td>
+<td class="parameter_description"><p> initial caps. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
 </tr>
 <tr>
 <td class="parameter_name"><p>filter</p></td>
-<td class="parameter_description"><p>filter caps</p></td>
-<td class="parameter_annotations"> </td>
+<td class="parameter_description"><p> filter caps. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
 </tr>
 </tbody>
 </table></div>
 </div>
 <div class="refsect3">
 <a name="id-1.2.6.8.11.21.6"></a><h4>Returns</h4>
-<p> a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> owned by caller</p>
-<p></p>
+<p> a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> owned by caller. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
 </div>
 <hr>
@@ -1081,7 +1081,7 @@
 <a name="gst-audio-encoder-set-drainable"></a><h3>gst_audio_encoder_set_drainable ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_audio_encoder_set_drainable (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
-                                 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);</pre>
+                                 <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);</pre>
 <p>Configures encoder drain handling.  If drainable, subclass might
 be handed a NULL buffer to have it return any leftover encoded data.
 Otherwise, it is not considered so capable and will only ever be passed
@@ -1115,7 +1115,7 @@
 <a name="gst-audio-encoder-set-frame-max"></a><h3>gst_audio_encoder_set_frame_max ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_audio_encoder_set_frame_max (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
-                                 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> num</code></em>);</pre>
+                                 <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> num</code></em>);</pre>
 <p>Sets max number of frames accepted at once (assumed minimally 1).
 Requires <em class="parameter"><code>frame_samples_min</code></em>
  and <em class="parameter"><code>frame_samples_max</code></em>
@@ -1149,7 +1149,7 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_audio_encoder_set_frame_samples_min
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
-                                <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> num</code></em>);</pre>
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> num</code></em>);</pre>
 <p>Sets number of samples (per channel) subclass needs to be handed,
 at least or will be handed all available if 0.</p>
 <p>If an exact number of samples is required, <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-frame-samples-max" title="gst_audio_encoder_set_frame_samples_max ()"><code class="function">gst_audio_encoder_set_frame_samples_max()</code></a>
@@ -1183,7 +1183,7 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_audio_encoder_set_frame_samples_max
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
-                                <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> num</code></em>);</pre>
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> num</code></em>);</pre>
 <p>Sets number of samples (per channel) subclass needs to be handed,
 at most or will be handed all available if 0.</p>
 <p>If an exact number of samples is required, <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-frame-samples-min" title="gst_audio_encoder_set_frame_samples_min ()"><code class="function">gst_audio_encoder_set_frame_samples_min()</code></a>
@@ -1216,7 +1216,7 @@
 <a name="gst-audio-encoder-set-hard-min"></a><h3>gst_audio_encoder_set_hard_min ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_audio_encoder_set_hard_min (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
-                                <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);</pre>
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);</pre>
 <p>Configures encoder hard minimum handling.  If enabled, subclass
 will never be handed less samples than it configured, which otherwise
 might occur near end-of-data handling.  Instead, the leftover samples
@@ -1250,14 +1250,14 @@
 <a name="gst-audio-encoder-set-hard-resync"></a><h3>gst_audio_encoder_set_hard_resync ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_audio_encoder_set_hard_resync (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
-                                   <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);</pre>
+                                   <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-audio-encoder-set-headers"></a><h3>gst_audio_encoder_set_headers ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_audio_encoder_set_headers (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
-                               <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *headers</code></em>);</pre>
+                               <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *headers</code></em>);</pre>
 <p>Set the codec headers to be sent downstream whenever requested.</p>
 <div class="refsect3">
 <a name="id-1.2.6.8.11.28.5"></a><h4>Parameters</h4>
@@ -1276,7 +1276,7 @@
 <tr>
 <td class="parameter_name"><p>headers</p></td>
 <td class="parameter_description"><p> a list of
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> containing the codec header. </p></td>
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> containing the codec header. </p></td>
 <td class="parameter_annotations"><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> Gst.Buffer]</span></td>
 </tr>
 </tbody>
@@ -1324,7 +1324,7 @@
 <a name="gst-audio-encoder-set-lookahead"></a><h3>gst_audio_encoder_set_lookahead ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_audio_encoder_set_lookahead (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
-                                 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> num</code></em>);</pre>
+                                 <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> num</code></em>);</pre>
 <p>Sets encoder lookahead (in units of input rate samples)</p>
 <div class="refsect3">
 <a name="id-1.2.6.8.11.30.5"></a><h4>Parameters</h4>
@@ -1354,7 +1354,7 @@
 <a name="gst-audio-encoder-set-mark-granule"></a><h3>gst_audio_encoder_set_mark_granule ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_audio_encoder_set_mark_granule (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
-                                    <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);</pre>
+                                    <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);</pre>
 <p>Enable or disable encoder granule handling.</p>
 <p>MT safe.</p>
 <div class="refsect3">
@@ -1386,7 +1386,7 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_audio_encoder_set_perfect_timestamp
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
-                                <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);</pre>
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);</pre>
 <p>Enable or disable encoder perfect output timestamp preference.</p>
 <p>MT safe.</p>
 <div class="refsect3">
@@ -1448,8 +1448,8 @@
 <a name="gst-audio-encoder-merge-tags"></a><h3>gst_audio_encoder_merge_tags ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_audio_encoder_merge_tags (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
-                              <em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a> *tags</code></em>,
-                              <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagMergeMode"><span class="type">GstTagMergeMode</span></a> mode</code></em>);</pre>
+                              <em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagList.html"><span class="type">GstTagList</span></a> *tags</code></em>,
+                              <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagList.html#GstTagMergeMode"><span class="type">GstTagMergeMode</span></a> mode</code></em>);</pre>
 <p>Adds tags to so-called pending tags, which will be processed
 before pushing out data downstream.</p>
 <p>Note that this is provided for convenience, and the subclass is
@@ -1473,12 +1473,12 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>tags</p></td>
-<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a> to merge</p></td>
+<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagList.html"><span class="type">GstTagList</span></a> to merge</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
 <td class="parameter_name"><p>mode</p></td>
-<td class="parameter_description"><p>the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagMergeMode"><span class="type">GstTagMergeMode</span></a> to use</p></td>
+<td class="parameter_description"><p>the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagList.html#GstTagMergeMode"><span class="type">GstTagMergeMode</span></a> to use</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 </tbody>
@@ -1685,7 +1685,7 @@
 <a name="gst-plugins-base-libs-gstaudioencoder.property-details"></a><h2>Property Details</h2>
 <div class="refsect2">
 <a name="GstAudioEncoder--hard-resync"></a><h3>The <code class="literal">“hard-resync”</code> property</h3>
-<pre class="programlisting">  “hard-resync”              <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<pre class="programlisting">  “hard-resync”              <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
 <p>Perform clipping and sample flushing upon discontinuity.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: FALSE</p>
@@ -1693,7 +1693,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstAudioEncoder--mark-granule"></a><h3>The <code class="literal">“mark-granule”</code> property</h3>
-<pre class="programlisting">  “mark-granule”             <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<pre class="programlisting">  “mark-granule”             <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
 <p>Apply granule semantics to buffer metadata (implies perfect-timestamp).</p>
 <p>Flags: Read</p>
 <p>Default value: FALSE</p>
@@ -1701,7 +1701,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstAudioEncoder--perfect-timestamp"></a><h3>The <code class="literal">“perfect-timestamp”</code> property</h3>
-<pre class="programlisting">  “perfect-timestamp”        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<pre class="programlisting">  “perfect-timestamp”        <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
 <p>Favour perfect timestamps over tracking upstream timestamps.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: FALSE</p>
@@ -1723,6 +1723,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstaudiofilter.html b/docs/libs/html/gst-plugins-base-libs-gstaudiofilter.html
index 113e629..4f6ebe8 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstaudiofilter.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstaudiofilter.html
@@ -8,14 +8,14 @@
 <link rel="up" href="gstreamer-audio.html" title="Audio Library">
 <link rel="prev" href="gst-plugins-base-libs-gstaudioencoder.html" title="gstaudioencoder">
 <link rel="next" href="gst-plugins-base-libs-gstaudiosink.html" title="gstaudiosink">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstaudiofilter.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gstaudiofilter.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
                   <a href="#gst-plugins-base-libs-gstaudiofilter.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
@@ -70,8 +70,8 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstaudiofilter.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-    <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+<pre class="screen">    <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
         <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
             <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
                 <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a>
@@ -104,7 +104,7 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_audio_filter_class_add_pad_templates
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiofilter.html#GstAudioFilterClass" title="struct GstAudioFilterClass"><span class="type">GstAudioFilterClass</span></a> *klass</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> *allowed_caps</code></em>);</pre>
+                                <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> *allowed_caps</code></em>);</pre>
 <p>Convenience function to add pad templates to this element class, with
 <em class="parameter"><code>allowed_caps</code></em>
  as the caps that can be handled.</p>
@@ -125,7 +125,7 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>allowed_caps</p></td>
-<td class="parameter_description"><p>what formats the filter can handle, as <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a></p></td>
+<td class="parameter_description"><p>what formats the filter can handle, as <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a></p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 </tbody>
@@ -181,6 +181,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstaudioiec61937.html b/docs/libs/html/gst-plugins-base-libs-gstaudioiec61937.html
index a5e4f12..9316122 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstaudioiec61937.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstaudioiec61937.html
@@ -8,15 +8,14 @@
 <link rel="up" href="gstreamer-audio.html" title="Audio Library">
 <link rel="prev" href="gst-plugins-base-libs-gstaudioringbuffer.html" title="gstaudioringbuffer">
 <link rel="next" href="gst-plugins-base-libs-gststreamvolume.html" title="gststreamvolume">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstaudioiec61937.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstaudioiec61937.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gstaudioiec61937.description" class="shortcut">Description</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="gstreamer-audio.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -42,7 +41,7 @@
 <tbody>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstaudioiec61937.html#gst-audio-iec61937-frame-size" title="gst_audio_iec61937_frame_size ()">gst_audio_iec61937_frame_size</a> <span class="c_punctuation">()</span>
@@ -50,7 +49,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstaudioiec61937.html#gst-audio-iec61937-payload" title="gst_audio_iec61937_payload ()">gst_audio_iec61937_payload</a> <span class="c_punctuation">()</span>
@@ -60,11 +59,6 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="gst-plugins-base-libs-gstaudioiec61937.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">
-</pre>
-</div>
-<div class="refsect1">
 <a name="gst-plugins-base-libs-gstaudioiec61937.includes"></a><h2>Includes</h2>
 <pre class="synopsis">#include &lt;gst/audio/gstaudioiec61937.h&gt;
 </pre>
@@ -78,13 +72,13 @@
 <a name="gst-plugins-base-libs-gstaudioiec61937.functions_details"></a><h2>Functions</h2>
 <div class="refsect2">
 <a name="gst-audio-iec61937-frame-size"></a><h3>gst_audio_iec61937_frame_size ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_audio_iec61937_frame_size (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBufferSpec" title="struct GstAudioRingBufferSpec"><span class="type">GstAudioRingBufferSpec</span></a> *spec</code></em>);</pre>
 <p>Calculated the size of the buffer expected by <a class="link" href="gst-plugins-base-libs-gstaudioiec61937.html#gst-audio-iec61937-payload" title="gst_audio_iec61937_payload ()"><code class="function">gst_audio_iec61937_payload()</code></a> for
 payloading type from <em class="parameter"><code>spec</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.6.16.7.2.5"></a><h4>Parameters</h4>
+<a name="id-1.2.6.16.6.2.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -99,7 +93,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.6.16.7.2.6"></a><h4>Returns</h4>
+<a name="id-1.2.6.16.6.2.6"></a><h4>Returns</h4>
 <p> the size or 0 if the given <em class="parameter"><code>type</code></em>
 is not supported or cannot be
 payloaded.</p>
@@ -109,13 +103,13 @@
 <hr>
 <div class="refsect2">
 <a name="gst-audio-iec61937-payload"></a><h3>gst_audio_iec61937_payload ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_audio_iec61937_payload (<em class="parameter"><code>const <span class="type">guint8</span> *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> src_n</code></em>,
+                            <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> src_n</code></em>,
                             <em class="parameter"><code><span class="type">guint8</span> *dst</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> dst_n</code></em>,
+                            <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> dst_n</code></em>,
                             <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBufferSpec" title="struct GstAudioRingBufferSpec"><span class="type">GstAudioRingBufferSpec</span></a> *spec</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> endianness</code></em>);</pre>
+                            <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> endianness</code></em>);</pre>
 <p>Payloads <em class="parameter"><code>src</code></em>
  in the form specified by IEC 61937 for the type from <em class="parameter"><code>spec</code></em>
  and
@@ -124,7 +118,7 @@
  must contain exactly one frame of data and
 the frame is not checked for errors.</p>
 <div class="refsect3">
-<a name="id-1.2.6.16.7.3.5"></a><h4>Parameters</h4>
+<a name="id-1.2.6.16.6.3.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -171,8 +165,8 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.6.16.7.3.6"></a><h4>Returns</h4>
-<p> transfer-full: <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the payloading was successful, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>
+<a name="id-1.2.6.16.6.3.6"></a><h4>Returns</h4>
+<p> transfer-full: <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the payloading was successful, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>
 otherwise.</p>
 <p></p>
 </div>
@@ -184,6 +178,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstaudiometa.html b/docs/libs/html/gst-plugins-base-libs-gstaudiometa.html
index 33f4eae..3d38d16 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstaudiometa.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstaudiometa.html
@@ -8,15 +8,14 @@
 <link rel="up" href="gstreamer-audio.html" title="Audio Library">
 <link rel="prev" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">
 <link rel="next" href="gst-plugins-base-libs-gstaudiocdsrc.html" title="gstaudiocdsrc">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstaudiometa.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstaudiometa.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gstaudiometa.description" class="shortcut">Description</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="gstreamer-audio.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -79,11 +78,6 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="gst-plugins-base-libs-gstaudiometa.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">
-</pre>
-</div>
-<div class="refsect1">
 <a name="gst-plugins-base-libs-gstaudiometa.includes"></a><h2>Includes</h2>
 <pre class="synopsis">#include &lt;gst/audio/gstaudiometa.h&gt;
 </pre>
@@ -99,12 +93,12 @@
 <div class="refsect2">
 <a name="gst-buffer-add-audio-downmix-meta"></a><h3>gst_buffer_add_audio_downmix_meta ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstaudiometa.html#GstAudioDownmixMeta" title="struct GstAudioDownmixMeta"><span class="returnvalue">GstAudioDownmixMeta</span></a> *
-gst_buffer_add_audio_downmix_meta (<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>,
+gst_buffer_add_audio_downmix_meta (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> *buffer</code></em>,
                                    <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> *from_position</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> from_channels</code></em>,
+                                   <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> from_channels</code></em>,
                                    <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> *to_position</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> to_channels</code></em>,
-                                   <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> **matrix</code></em>);</pre>
+                                   <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> to_channels</code></em>,
+                                   <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> **matrix</code></em>);</pre>
 <p>Attaches <a class="link" href="gst-plugins-base-libs-gstaudiometa.html#GstAudioDownmixMeta" title="struct GstAudioDownmixMeta"><span class="type">GstAudioDownmixMeta</span></a> metadata to <em class="parameter"><code>buffer</code></em>
  with the given parameters.</p>
 <p><em class="parameter"><code>matrix</code></em>
@@ -116,7 +110,7 @@
 [i] and taking the sum
 of the results.</p>
 <div class="refsect3">
-<a name="id-1.2.6.4.8.2.6"></a><h4>Parameters</h4>
+<a name="id-1.2.6.4.7.2.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -126,7 +120,7 @@
 <tbody>
 <tr>
 <td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a></p></td>
+<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a></p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
@@ -160,7 +154,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.6.4.8.2.7"></a><h4>Returns</h4>
+<a name="id-1.2.6.4.7.2.7"></a><h4>Returns</h4>
 <p> the <a class="link" href="gst-plugins-base-libs-gstaudiometa.html#GstAudioDownmixMeta" title="struct GstAudioDownmixMeta"><span class="type">GstAudioDownmixMeta</span></a> on <em class="parameter"><code>buffer</code></em>
 .</p>
 <p></p>
@@ -177,14 +171,14 @@
 <a name="gst-buffer-get-audio-downmix-meta-for-channels"></a><h3>gst_buffer_get_audio_downmix_meta_for_channels ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstaudiometa.html#GstAudioDownmixMeta" title="struct GstAudioDownmixMeta"><span class="returnvalue">GstAudioDownmixMeta</span></a> *
 gst_buffer_get_audio_downmix_meta_for_channels
-                               (<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="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> *buffer</code></em>,
                                 <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> *to_position</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> to_channels</code></em>);</pre>
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> to_channels</code></em>);</pre>
 <p>Find the <a class="link" href="gst-plugins-base-libs-gstaudiometa.html#GstAudioDownmixMeta" title="struct GstAudioDownmixMeta"><span class="type">GstAudioDownmixMeta</span></a> on <em class="parameter"><code>buffer</code></em>
  for the given destination
 channel positions.</p>
 <div class="refsect3">
-<a name="id-1.2.6.4.8.4.5"></a><h4>Parameters</h4>
+<a name="id-1.2.6.4.7.4.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -194,7 +188,7 @@
 <tbody>
 <tr>
 <td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a></p></td>
+<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a></p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
@@ -212,7 +206,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.6.4.8.4.6"></a><h4>Returns</h4>
+<a name="id-1.2.6.4.7.4.6"></a><h4>Returns</h4>
 <p> the <a class="link" href="gst-plugins-base-libs-gstaudiometa.html#GstAudioDownmixMeta" title="struct GstAudioDownmixMeta"><span class="type">GstAudioDownmixMeta</span></a> on <em class="parameter"><code>buffer</code></em>
 .</p>
 <p></p>
@@ -245,7 +239,7 @@
 [i] and taking the sum
 of the results.</p>
 <div class="refsect3">
-<a name="id-1.2.6.4.9.2.6"></a><h4>Members</h4>
+<a name="id-1.2.6.4.8.2.6"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
@@ -269,17 +263,17 @@
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstAudioDownmixMeta.from-channels"></a>from_channels</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstAudioDownmixMeta.from-channels"></a>from_channels</code></em>;</p></td>
 <td class="struct_member_description"><p>the number of channels of the source</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstAudioDownmixMeta.to-channels"></a>to_channels</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstAudioDownmixMeta.to-channels"></a>to_channels</code></em>;</p></td>
 <td class="struct_member_description"><p>the number of channels of the destination</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> **<em class="structfield"><code><a name="GstAudioDownmixMeta.matrix"></a>matrix</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> **<em class="structfield"><code><a name="GstAudioDownmixMeta.matrix"></a>matrix</code></em>;</p></td>
 <td class="struct_member_description"><p>the matrix coefficients.</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
@@ -291,6 +285,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstaudioringbuffer.html b/docs/libs/html/gst-plugins-base-libs-gstaudioringbuffer.html
index e1d3487..132ac2d 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstaudioringbuffer.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstaudioringbuffer.html
@@ -8,14 +8,14 @@
 <link rel="up" href="gstreamer-audio.html" title="Audio Library">
 <link rel="prev" href="gst-plugins-base-libs-gstaudiochannels.html" title="gstaudiochannels">
 <link rel="next" href="gst-plugins-base-libs-gstaudioiec61937.html" title="gstaudioiec61937">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstaudioringbuffer.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gstaudioringbuffer.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
                   <a href="#gst-plugins-base-libs-gstaudioringbuffer.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
@@ -82,7 +82,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#gst-audio-ring-buffer-acquire" title="gst_audio_ring_buffer_acquire ()">gst_audio_ring_buffer_acquire</a> <span class="c_punctuation">()</span>
@@ -90,7 +90,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#gst-audio-ring-buffer-release" title="gst_audio_ring_buffer_release ()">gst_audio_ring_buffer_release</a> <span class="c_punctuation">()</span>
@@ -98,7 +98,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#gst-audio-ring-buffer-is-acquired" title="gst_audio_ring_buffer_is_acquired ()">gst_audio_ring_buffer_is_acquired</a> <span class="c_punctuation">()</span>
@@ -106,7 +106,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#gst-audio-ring-buffer-activate" title="gst_audio_ring_buffer_activate ()">gst_audio_ring_buffer_activate</a> <span class="c_punctuation">()</span>
@@ -114,7 +114,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#gst-audio-ring-buffer-is-active" title="gst_audio_ring_buffer_is_active ()">gst_audio_ring_buffer_is_active</a> <span class="c_punctuation">()</span>
@@ -122,7 +122,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#gst-audio-ring-buffer-start" title="gst_audio_ring_buffer_start ()">gst_audio_ring_buffer_start</a> <span class="c_punctuation">()</span>
@@ -130,7 +130,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#gst-audio-ring-buffer-pause" title="gst_audio_ring_buffer_pause ()">gst_audio_ring_buffer_pause</a> <span class="c_punctuation">()</span>
@@ -138,7 +138,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#gst-audio-ring-buffer-stop" title="gst_audio_ring_buffer_stop ()">gst_audio_ring_buffer_stop</a> <span class="c_punctuation">()</span>
@@ -146,7 +146,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#gst-audio-ring-buffer-delay" title="gst_audio_ring_buffer_delay ()">gst_audio_ring_buffer_delay</a> <span class="c_punctuation">()</span>
@@ -170,7 +170,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#gst-audio-ring-buffer-commit" title="gst_audio_ring_buffer_commit ()">gst_audio_ring_buffer_commit</a> <span class="c_punctuation">()</span>
@@ -178,7 +178,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#gst-audio-ring-buffer-convert" title="gst_audio_ring_buffer_convert ()">gst_audio_ring_buffer_convert</a> <span class="c_punctuation">()</span>
@@ -186,7 +186,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#gst-audio-ring-buffer-prepare-read" title="gst_audio_ring_buffer_prepare_read ()">gst_audio_ring_buffer_prepare_read</a> <span class="c_punctuation">()</span>
@@ -194,7 +194,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#gst-audio-ring-buffer-read" title="gst_audio_ring_buffer_read ()">gst_audio_ring_buffer_read</a> <span class="c_punctuation">()</span>
@@ -226,7 +226,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#gst-audio-ring-buffer-close-device" title="gst_audio_ring_buffer_close_device ()">gst_audio_ring_buffer_close_device</a> <span class="c_punctuation">()</span>
@@ -234,7 +234,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#gst-audio-ring-buffer-open-device" title="gst_audio_ring_buffer_open_device ()">gst_audio_ring_buffer_open_device</a> <span class="c_punctuation">()</span>
@@ -242,7 +242,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#gst-audio-ring-buffer-device-is-open" title="gst_audio_ring_buffer_device_is_open ()">gst_audio_ring_buffer_device_is_open</a> <span class="c_punctuation">()</span>
@@ -258,7 +258,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#gst-audio-ring-buffer-parse-caps" title="gst_audio_ring_buffer_parse_caps ()">gst_audio_ring_buffer_parse_caps</a> <span class="c_punctuation">()</span>
@@ -274,7 +274,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#gst-audio-ring-buffer-is-flushing" title="gst_audio_ring_buffer_is_flushing ()">gst_audio_ring_buffer_is_flushing</a> <span class="c_punctuation">()</span>
@@ -332,8 +332,8 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstaudioringbuffer.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-    <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+<pre class="screen">    <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
         <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
             <span class="lineart">╰──</span> GstAudioRingBuffer
 </pre>
@@ -366,8 +366,8 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 <span class="c_punctuation">(</span>*GstAudioRingBufferCallback<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *rbuf</code></em>,
                                <em class="parameter"><code><span class="type">guint8</span> *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> len</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>
+                               <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>,
+                               <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
 <p>This function is set with <a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#gst-audio-ring-buffer-set-callback" title="gst_audio_ring_buffer_set_callback ()"><code class="function">gst_audio_ring_buffer_set_callback()</code></a> and is
 called to fill the memory at <em class="parameter"><code>data</code></em>
  with <em class="parameter"><code>len</code></em>
@@ -435,7 +435,7 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_audio_ring_buffer_set_callback (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *buf</code></em>,
                                     <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBufferCallback" title="GstAudioRingBufferCallback ()"><span class="type">GstAudioRingBufferCallback</span></a> cb</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>
+                                    <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
 <p>Sets the given callback function on the buffer. This function
 will be called every time a segment has been written to a device.</p>
 <p>MT safe.</p>
@@ -470,11 +470,11 @@
 <hr>
 <div class="refsect2">
 <a name="gst-audio-ring-buffer-acquire"></a><h3>gst_audio_ring_buffer_acquire ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_audio_ring_buffer_acquire (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *buf</code></em>,
                                <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBufferSpec" title="struct GstAudioRingBufferSpec"><span class="type">GstAudioRingBufferSpec</span></a> *spec</code></em>);</pre>
 <p>Allocate the resources for the ringbuffer. This function fills
-in the data pointer of the ring buffer with a valid <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a>
+in the data pointer of the ring buffer with a valid <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a>
 to which samples can be written.</p>
 <div class="refsect3">
 <a name="id-1.2.6.15.9.8.5"></a><h4>Parameters</h4>
@@ -508,7 +508,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-audio-ring-buffer-release"></a><h3>gst_audio_ring_buffer_release ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_audio_ring_buffer_release (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *buf</code></em>);</pre>
 <p>Free the resources of the ringbuffer.</p>
 <div class="refsect3">
@@ -536,7 +536,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-audio-ring-buffer-is-acquired"></a><h3>gst_audio_ring_buffer_is_acquired ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_audio_ring_buffer_is_acquired (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *buf</code></em>);</pre>
 <p>Check if the ringbuffer is acquired and ready to use.</p>
 <div class="refsect3">
@@ -564,9 +564,9 @@
 <hr>
 <div class="refsect2">
 <a name="gst-audio-ring-buffer-activate"></a><h3>gst_audio_ring_buffer_activate ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_audio_ring_buffer_activate (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *buf</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>);</pre>
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> active</code></em>);</pre>
 <p>Activate <em class="parameter"><code>buf</code></em>
  to start or stop pulling data.</p>
 <p>MT safe.</p>
@@ -602,7 +602,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-audio-ring-buffer-is-active"></a><h3>gst_audio_ring_buffer_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>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_audio_ring_buffer_is_active (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *buf</code></em>);</pre>
 <p>Check if <em class="parameter"><code>buf</code></em>
  is activated.</p>
@@ -631,7 +631,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-audio-ring-buffer-start"></a><h3>gst_audio_ring_buffer_start ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_audio_ring_buffer_start (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *buf</code></em>);</pre>
 <p>Start processing samples from the ringbuffer.</p>
 <div class="refsect3">
@@ -659,7 +659,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-audio-ring-buffer-pause"></a><h3>gst_audio_ring_buffer_pause ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_audio_ring_buffer_pause (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *buf</code></em>);</pre>
 <p>Pause processing samples from the ringbuffer.</p>
 <div class="refsect3">
@@ -687,7 +687,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-audio-ring-buffer-stop"></a><h3>gst_audio_ring_buffer_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>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_audio_ring_buffer_stop (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *buf</code></em>);</pre>
 <p>Stop processing samples from the ringbuffer.</p>
 <div class="refsect3">
@@ -715,7 +715,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-audio-ring-buffer-delay"></a><h3>gst_audio_ring_buffer_delay ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_audio_ring_buffer_delay (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *buf</code></em>);</pre>
 <p>Get the number of samples queued in the audio device. This is
 usually less than the segment size but can be bigger when the
@@ -816,13 +816,13 @@
 <hr>
 <div class="refsect2">
 <a name="gst-audio-ring-buffer-commit"></a><h3>gst_audio_ring_buffer_commit ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_audio_ring_buffer_commit (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *buf</code></em>,
                               <em class="parameter"><code><span class="type">guint64</span> *sample</code></em>,
                               <em class="parameter"><code><span class="type">guint8</span> *data</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> in_samples</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> out_samples</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> *accum</code></em>);</pre>
+                              <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> in_samples</code></em>,
+                              <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> out_samples</code></em>,
+                              <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *accum</code></em>);</pre>
 <p>Commit <em class="parameter"><code>in_samples</code></em>
  samples pointed to by <em class="parameter"><code>data</code></em>
  to the ringbuffer <em class="parameter"><code>buf</code></em>
@@ -907,7 +907,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-audio-ring-buffer-convert"></a><h3>gst_audio_ring_buffer_convert ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_audio_ring_buffer_convert (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *buf</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_fmt</code></em>,
                                <em class="parameter"><code><span class="type">gint64</span> src_val</code></em>,
@@ -965,11 +965,11 @@
 <hr>
 <div class="refsect2">
 <a name="gst-audio-ring-buffer-prepare-read"></a><h3>gst_audio_ring_buffer_prepare_read ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_audio_ring_buffer_prepare_read (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</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> *segment</code></em>,
+                                    <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *segment</code></em>,
                                     <em class="parameter"><code><span class="type">guint8</span> **readptr</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> *len</code></em>);</pre>
+                                    <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *len</code></em>);</pre>
 <p>Returns a pointer to memory where the data from segment <em class="parameter"><code>segment</code></em>
 
 can be found. This function is mostly used by subclasses.</p>
@@ -1015,11 +1015,11 @@
 <hr>
 <div class="refsect2">
 <a name="gst-audio-ring-buffer-read"></a><h3>gst_audio_ring_buffer_read ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_audio_ring_buffer_read (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *buf</code></em>,
                             <em class="parameter"><code><span class="type">guint64</span> sample</code></em>,
                             <em class="parameter"><code><span class="type">guint8</span> *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> len</code></em>,
+                            <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</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>
 <p>Read <em class="parameter"><code>len</code></em>
  samples from the ringbuffer into the memory pointed
@@ -1083,7 +1083,7 @@
 <a name="gst-audio-ring-buffer-clear"></a><h3>gst_audio_ring_buffer_clear ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_audio_ring_buffer_clear (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</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> segment</code></em>);</pre>
+                             <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> segment</code></em>);</pre>
 <p>Clear the given segment of the buffer with silence samples.
 This function is used by subclasses.</p>
 <p>MT safe.</p>
@@ -1138,7 +1138,7 @@
 <a name="gst-audio-ring-buffer-advance"></a><h3>gst_audio_ring_buffer_advance ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_audio_ring_buffer_advance (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *buf</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> advance</code></em>);</pre>
+                               <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> advance</code></em>);</pre>
 <p>Subclasses should call this function to notify the fact that
 <em class="parameter"><code>advance</code></em>
  segments are now processed by the device.</p>
@@ -1169,7 +1169,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-audio-ring-buffer-close-device"></a><h3>gst_audio_ring_buffer_close_device ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_audio_ring_buffer_close_device (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *buf</code></em>);</pre>
 <p>Close the audio device associated with the ring buffer. The ring buffer
 should already have been released via <a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#gst-audio-ring-buffer-release" title="gst_audio_ring_buffer_release ()"><code class="function">gst_audio_ring_buffer_release()</code></a>.</p>
@@ -1198,7 +1198,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-audio-ring-buffer-open-device"></a><h3>gst_audio_ring_buffer_open_device ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_audio_ring_buffer_open_device (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *buf</code></em>);</pre>
 <p>Open the audio device associated with the ring buffer. Does not perform any
 setup on the device. You must open the device before acquiring the ring
@@ -1228,7 +1228,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-audio-ring-buffer-device-is-open"></a><h3>gst_audio_ring_buffer_device_is_open ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_audio_ring_buffer_device_is_open (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *buf</code></em>);</pre>
 <p>Checks the status of the device associated with the ring buffer.</p>
 <div class="refsect3">
@@ -1258,7 +1258,7 @@
 <a name="gst-audio-ring-buffer-may-start"></a><h3>gst_audio_ring_buffer_may_start ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_audio_ring_buffer_may_start (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *buf</code></em>,
-                                 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> allowed</code></em>);</pre>
+                                 <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> allowed</code></em>);</pre>
 <p>Tell the ringbuffer that it is allowed to start playback when
 the ringbuffer is filled with samples.</p>
 <p>MT safe.</p>
@@ -1288,9 +1288,9 @@
 <hr>
 <div class="refsect2">
 <a name="gst-audio-ring-buffer-parse-caps"></a><h3>gst_audio_ring_buffer_parse_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>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_audio_ring_buffer_parse_caps (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBufferSpec" title="struct GstAudioRingBufferSpec"><span class="type">GstAudioRingBufferSpec</span></a> *spec</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="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> *caps</code></em>);</pre>
 <p>Parse <em class="parameter"><code>caps</code></em>
  into <em class="parameter"><code>spec</code></em>
 .</p>
@@ -1310,7 +1310,7 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>caps</p></td>
-<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a></p></td>
+<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a></p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 </tbody>
@@ -1327,7 +1327,7 @@
 <a name="gst-audio-ring-buffer-set-flushing"></a><h3>gst_audio_ring_buffer_set_flushing ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_audio_ring_buffer_set_flushing (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *buf</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> flushing</code></em>);</pre>
+                                    <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> flushing</code></em>);</pre>
 <p>Set the ringbuffer to flushing mode or normal mode.</p>
 <p>MT safe.</p>
 <div class="refsect3">
@@ -1356,7 +1356,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-audio-ring-buffer-is-flushing"></a><h3>gst_audio_ring_buffer_is_flushing ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_audio_ring_buffer_is_flushing (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *buf</code></em>);</pre>
 <p>Check if <em class="parameter"><code>buf</code></em>
  is flushing.</p>
@@ -1419,7 +1419,7 @@
 <a name="gst-audio-ring-buffer-set-timestamp"></a><h3>gst_audio_ring_buffer_set_timestamp ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_audio_ring_buffer_set_timestamp (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</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> readseg</code></em>,
+                                     <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> readseg</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>
 </div>
 </div>
@@ -1455,17 +1455,17 @@
 </colgroup>
 <tbody>
 <tr>
-<td class="struct_member_name"><p><a href="http://library.gnome.org/devel/glib/unstable/glib-Threads.html#GCond"><span class="type">GCond</span></a> <em class="structfield"><code><a name="GstAudioRingBuffer-struct.cond"></a>cond</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Threads.html#GCond"><span class="type">GCond</span></a> <em class="structfield"><code><a name="GstAudioRingBuffer-struct.cond"></a>cond</code></em>;</p></td>
 <td class="struct_member_description"><p>used to signal start/stop/pause/resume actions</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstAudioRingBuffer-struct.open"></a>open</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> <em class="structfield"><code><a name="GstAudioRingBuffer-struct.open"></a>open</code></em>;</p></td>
 <td class="struct_member_description"><p>boolean indicating that the ringbuffer is open</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstAudioRingBuffer-struct.acquired"></a>acquired</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> <em class="structfield"><code><a name="GstAudioRingBuffer-struct.acquired"></a>acquired</code></em>;</p></td>
 <td class="struct_member_description"><p>boolean indicating that the ringbuffer is acquired</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
@@ -1490,7 +1490,7 @@
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstAudioRingBuffer-struct.samples-per-seg"></a>samples_per_seg</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstAudioRingBuffer-struct.samples-per-seg"></a>samples_per_seg</code></em>;</p></td>
 <td class="struct_member_description"><p>number of samples in one segment</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
@@ -1500,22 +1500,22 @@
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstAudioRingBuffer-struct.state"></a>state</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstAudioRingBuffer-struct.state"></a>state</code></em>;</p></td>
 <td class="struct_member_description"><p>state of the buffer</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstAudioRingBuffer-struct.segdone"></a>segdone</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstAudioRingBuffer-struct.segdone"></a>segdone</code></em>;</p></td>
 <td class="struct_member_description"><p>readpointer in the ringbuffer</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstAudioRingBuffer-struct.segbase"></a>segbase</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstAudioRingBuffer-struct.segbase"></a>segbase</code></em>;</p></td>
 <td class="struct_member_description"><p>segment corresponding to segment 0 (unused)</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstAudioRingBuffer-struct.waiting"></a>waiting</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstAudioRingBuffer-struct.waiting"></a>waiting</code></em>;</p></td>
 <td class="struct_member_description"><p>is a reader or writer waiting for a free segment</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
@@ -1672,7 +1672,7 @@
 </colgroup>
 <tbody>
 <tr>
-<td class="struct_member_name"><p><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *<em class="structfield"><code><a name="GstAudioRingBufferSpec.caps"></a>caps</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> *<em class="structfield"><code><a name="GstAudioRingBufferSpec.caps"></a>caps</code></em>;</p></td>
 <td class="struct_member_description"><p>The caps that generated the Spec.</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
@@ -1697,17 +1697,17 @@
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstAudioRingBufferSpec.segsize"></a>segsize</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstAudioRingBufferSpec.segsize"></a>segsize</code></em>;</p></td>
 <td class="struct_member_description"><p>the size of one segment in bytes</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstAudioRingBufferSpec.segtotal"></a>segtotal</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstAudioRingBufferSpec.segtotal"></a>segtotal</code></em>;</p></td>
 <td class="struct_member_description"><p>the total number of segments</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstAudioRingBufferSpec.seglatency"></a>seglatency</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstAudioRingBufferSpec.seglatency"></a>seglatency</code></em>;</p></td>
 <td class="struct_member_description"><p>number of segments queued in the lower level device,
 defaults to segtotal</p></td>
 <td class="struct_member_annotations"> </td>
@@ -1872,6 +1872,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstaudiosink.html b/docs/libs/html/gst-plugins-base-libs-gstaudiosink.html
index 8fcb858..913ad47 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstaudiosink.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstaudiosink.html
@@ -8,14 +8,14 @@
 <link rel="up" href="gstreamer-audio.html" title="Audio Library">
 <link rel="prev" href="gst-plugins-base-libs-gstaudiofilter.html" title="gstaudiofilter">
 <link rel="next" href="gst-plugins-base-libs-gstaudiosrc.html" title="gstaudiosrc">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstaudiosink.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gstaudiosink.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
                   <a href="#gst-plugins-base-libs-gstaudiosink.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
@@ -53,8 +53,8 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstaudiosink.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-    <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+<pre class="screen">    <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
         <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
             <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
                 <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSink.html">GstBaseSink</a>
@@ -211,6 +211,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstaudiosrc.html b/docs/libs/html/gst-plugins-base-libs-gstaudiosrc.html
index 97cfc42..356d6b4 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstaudiosrc.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstaudiosrc.html
@@ -8,14 +8,14 @@
 <link rel="up" href="gstreamer-audio.html" title="Audio Library">
 <link rel="prev" href="gst-plugins-base-libs-gstaudiosink.html" title="gstaudiosink">
 <link rel="next" href="gst-plugins-base-libs-gstaudiobasesink.html" title="gstaudiobasesink">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstaudiosrc.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gstaudiosrc.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
                   <a href="#gst-plugins-base-libs-gstaudiosrc.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
@@ -53,8 +53,8 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstaudiosrc.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-    <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+<pre class="screen">    <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
         <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
             <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
                 <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSrc.html">GstBaseSrc</a>
@@ -211,6 +211,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstcolorbalance.html b/docs/libs/html/gst-plugins-base-libs-gstcolorbalance.html
index 7f41e54..c02eb20 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstcolorbalance.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstcolorbalance.html
@@ -8,15 +8,15 @@
 <link rel="up" href="gstreamer-video.html" title="Video Library">
 <link rel="prev" href="gst-plugins-base-libs-gstvideosink.html" title="gstvideosink">
 <link rel="next" href="gst-plugins-base-libs-gstcolorbalancechannel.html" title="gstcolorbalancechannel">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstcolorbalance.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstcolorbalance.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_signals"> <span class="dim">|</span> 
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gstcolorbalance.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gstcolorbalance.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_signals">  <span class="dim">|</span> 
                   <a href="#gst-plugins-base-libs-gstcolorbalance.signals" class="shortcut">Signals</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
@@ -42,7 +42,7 @@
 </colgroup>
 <tbody>
 <tr>
-<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
+<td class="function_type">const <a href="https://developer.gnome.org/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#gst-color-balance-list-channels" title="gst_color_balance_list_channels ()">gst_color_balance_list_channels</a> <span class="c_punctuation">()</span>
@@ -50,7 +50,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#gst-color-balance-get-value" title="gst_color_balance_get_value ()">gst_color_balance_get_value</a> <span class="c_punctuation">()</span>
@@ -123,7 +123,7 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstcolorbalance.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    GInterface
+<pre class="screen">    <a href="https://developer.gnome.org/gobject/unstable/GTypeModule.html">GInterface</a>
     <span class="lineart">╰──</span> GstColorBalance
 </pre>
 </div>
@@ -135,7 +135,7 @@
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstcolorbalance.description"></a><h2>Description</h2>
 <div class="refsect2">
-<a name="id-1.2.15.8.9.2"></a><p>
+<a name="id-1.2.15.12.9.2"></a><p>
 This interface is implemented by elements which can perform some color
 balance operation on video frames they process. For example, modifying
 the brightness, contrast, hue or saturation.
@@ -149,11 +149,11 @@
 <a name="gst-plugins-base-libs-gstcolorbalance.functions_details"></a><h2>Functions</h2>
 <div class="refsect2">
 <a name="gst-color-balance-list-channels"></a><h3>gst_color_balance_list_channels ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
+<pre class="programlisting">const <a href="https://developer.gnome.org/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
 gst_color_balance_list_channels (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance"><span class="type">GstColorBalance</span></a> *balance</code></em>);</pre>
 <p>Retrieve a list of the available channels.</p>
 <div class="refsect3">
-<a name="id-1.2.15.8.10.2.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.12.10.2.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -168,7 +168,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.8.10.2.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.12.10.2.6"></a><h4>Returns</h4>
 <p> A
 GList containing pointers to <a class="link" href="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannel"><span class="type">GstColorBalanceChannel</span></a>
 objects. The list is owned by the <a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance"><span class="type">GstColorBalance</span></a>
@@ -179,7 +179,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-color-balance-get-value"></a><h3>gst_color_balance_get_value ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
 gst_color_balance_get_value (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance"><span class="type">GstColorBalance</span></a> *balance</code></em>,
                              <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannel"><span class="type">GstColorBalanceChannel</span></a> *channel</code></em>);</pre>
 <p>Retrieve the current value of the indicated channel, between min_value
@@ -188,7 +188,7 @@
         <span class="type">GstColorBalanceChannel.max_value</span> members of the
         <a class="link" href="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannel"><span class="type">GstColorBalanceChannel</span></a> object.</p>
 <div class="refsect3">
-<a name="id-1.2.15.8.10.3.6"></a><h4>Parameters</h4>
+<a name="id-1.2.15.12.10.3.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -210,7 +210,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.8.10.3.7"></a><h4>Returns</h4>
+<a name="id-1.2.15.12.10.3.7"></a><h4>Returns</h4>
 <p> The current value of the channel.</p>
 <p></p>
 </div>
@@ -221,14 +221,14 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_color_balance_set_value (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance"><span class="type">GstColorBalance</span></a> *balance</code></em>,
                              <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannel"><span class="type">GstColorBalanceChannel</span></a> *channel</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> value</code></em>);</pre>
+                             <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> value</code></em>);</pre>
 <p>Sets the current value of the channel to the passed value, which must
 be between min_value and max_value.</p>
 <p>See Also: The <span class="type">GstColorBalanceChannel.min_value</span> and
         <span class="type">GstColorBalanceChannel.max_value</span> members of the
         <a class="link" href="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannel"><span class="type">GstColorBalanceChannel</span></a> object.</p>
 <div class="refsect3">
-<a name="id-1.2.15.8.10.4.6"></a><h4>Parameters</h4>
+<a name="id-1.2.15.12.10.4.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -261,13 +261,13 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_color_balance_value_changed (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance"><span class="type">GstColorBalance</span></a> *balance</code></em>,
                                  <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannel"><span class="type">GstColorBalanceChannel</span></a> *channel</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> value</code></em>);</pre>
+                                 <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> value</code></em>);</pre>
 <p>A helper function called by implementations of the GstColorBalance
 interface. It fires the <a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance-value-changed" title="The “value-changed” signal"><span class="type">“value-changed”</span></a> signal on the
 instance, and the <a class="link" href="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannel-value-changed" title="The “value-changed” signal"><span class="type">“value-changed”</span></a> signal on the
 channel object.</p>
 <div class="refsect3">
-<a name="id-1.2.15.8.10.5.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.12.10.5.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -301,7 +301,7 @@
 gst_color_balance_get_balance_type (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance"><span class="type">GstColorBalance</span></a> *balance</code></em>);</pre>
 <p>Get the <a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalanceType" title="enum GstColorBalanceType"><span class="type">GstColorBalanceType</span></a> of this implementation.</p>
 <div class="refsect3">
-<a name="id-1.2.15.8.10.6.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.12.10.6.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -316,7 +316,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.8.10.6.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.12.10.6.6"></a><h4>Returns</h4>
 <p> A the <a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalanceType" title="enum GstColorBalanceType"><span class="type">GstColorBalanceType</span></a>.</p>
 <p></p>
 </div>
@@ -352,7 +352,7 @@
 </pre>
 <p>Color-balance interface.</p>
 <div class="refsect3">
-<a name="id-1.2.15.8.11.3.5"></a><h4>Members</h4>
+<a name="id-1.2.15.12.11.3.5"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
@@ -361,7 +361,7 @@
 </colgroup>
 <tbody>
 <tr>
-<td class="struct_member_name"><p><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="GstColorBalanceInterface.iface"></a>iface</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/gobject/unstable/gobject-Type-Information.html#GTypeInterface"><span class="type">GTypeInterface</span></a> <em class="structfield"><code><a name="GstColorBalanceInterface.iface"></a>iface</code></em>;</p></td>
 <td class="struct_member_description"><p>the parent interface</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
@@ -402,7 +402,7 @@
 hardware implementations (such as those provided by xvimagesink) are
 preferred.</p>
 <div class="refsect3">
-<a name="id-1.2.15.8.11.4.4"></a><h4>Members</h4>
+<a name="id-1.2.15.12.11.4.4"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -438,11 +438,11 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 user_function (<a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance"><span class="type">GstColorBalance</span></a>        *colorbalance,
                <a class="link" href="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannel"><span class="type">GstColorBalanceChannel</span></a> *channel,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                    value,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>                user_data)</pre>
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                    value,
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>                user_data)</pre>
 <p>Fired when the value of the indicated channel has changed.</p>
 <div class="refsect3">
-<a name="id-1.2.15.8.12.2.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.12.12.2.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -479,6 +479,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstcolorbalancechannel.html b/docs/libs/html/gst-plugins-base-libs-gstcolorbalancechannel.html
index 8be5c80..4fa4677 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstcolorbalancechannel.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstcolorbalancechannel.html
@@ -8,15 +8,15 @@
 <link rel="up" href="gstreamer-video.html" title="Video Library">
 <link rel="prev" href="gst-plugins-base-libs-gstcolorbalance.html" title="gstcolorbalance">
 <link rel="next" href="gst-plugins-base-libs-gstvideoorientation.html" title="gstvideoorientation">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstcolorbalancechannel.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstcolorbalancechannel.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_signals"> <span class="dim">|</span> 
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gstcolorbalancechannel.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gstcolorbalancechannel.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_signals">  <span class="dim">|</span> 
                   <a href="#gst-plugins-base-libs-gstcolorbalancechannel.signals" class="shortcut">Signals</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
@@ -70,7 +70,7 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstcolorbalancechannel.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+<pre class="screen">    <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
     <span class="lineart">╰──</span> GstColorBalanceChannel
 </pre>
 </div>
@@ -82,7 +82,7 @@
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstcolorbalancechannel.description"></a><h2>Description</h2>
 <div class="refsect2">
-<a name="id-1.2.15.9.8.2"></a><p>The <a class="link" href="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannel"><span class="type">GstColorBalanceChannel</span></a> object represents a parameter
+<a name="id-1.2.15.13.8.2"></a><p>The <a class="link" href="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannel"><span class="type">GstColorBalanceChannel</span></a> object represents a parameter
 for modifying the color balance implemented by an element providing the
 <a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance"><span class="type">GstColorBalance</span></a> interface. For example, Hue or Saturation.
 </p>
@@ -102,7 +102,7 @@
 };
 </pre>
 <div class="refsect3">
-<a name="id-1.2.15.9.10.2.4"></a><h4>Members</h4>
+<a name="id-1.2.15.13.10.2.4"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
@@ -111,17 +111,17 @@
 </colgroup>
 <tbody>
 <tr>
-<td class="struct_member_name"><p><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="GstColorBalanceChannel-struct.label"></a>label</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstColorBalanceChannel-struct.label"></a>label</code></em>;</p></td>
 <td class="struct_member_description"><p>A string containing a descriptive name for this channel</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstColorBalanceChannel-struct.min-value"></a>min_value</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstColorBalanceChannel-struct.min-value"></a>min_value</code></em>;</p></td>
 <td class="struct_member_description"><p>The minimum valid value for this channel.</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstColorBalanceChannel-struct.max-value"></a>max_value</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstColorBalanceChannel-struct.max-value"></a>max_value</code></em>;</p></td>
 <td class="struct_member_description"><p>The maximum valid value for this channel.</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
@@ -142,7 +142,7 @@
 </pre>
 <p>Color-balance channel class.</p>
 <div class="refsect3">
-<a name="id-1.2.15.9.10.3.5"></a><h4>Members</h4>
+<a name="id-1.2.15.13.10.3.5"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
@@ -151,7 +151,7 @@
 </colgroup>
 <tbody>
 <tr>
-<td class="struct_member_name"><p><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObjectClass"><span class="type">GObjectClass</span></a> <em class="structfield"><code><a name="GstColorBalanceChannelClass.parent"></a>parent</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObjectClass"><span class="type">GObjectClass</span></a> <em class="structfield"><code><a name="GstColorBalanceChannelClass.parent"></a>parent</code></em>;</p></td>
 <td class="struct_member_description"><p>the parent class</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
@@ -171,11 +171,11 @@
 <a name="GstColorBalanceChannel-value-changed"></a><h3>The <code class="literal">“value-changed”</code> signal</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 user_function (<a class="link" href="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannel"><span class="type">GstColorBalanceChannel</span></a> *channel,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                    value,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>                user_data)</pre>
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                    value,
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>                user_data)</pre>
 <p>Fired when the value of the indicated channel has changed.</p>
 <div class="refsect3">
-<a name="id-1.2.15.9.11.2.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.13.11.2.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -207,6 +207,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstdiscoverer.html b/docs/libs/html/gst-plugins-base-libs-gstdiscoverer.html
index b328e47..6d54642 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstdiscoverer.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstdiscoverer.html
@@ -8,16 +8,16 @@
 <link rel="up" href="gstreamer-base-utils.html" title="Base Utils Library">
 <link rel="prev" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html" title="gstpbutilsinstallplugins">
 <link rel="next" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstdiscoverer.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstdiscoverer.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstdiscoverer.properties" class="shortcut">Properties</a></span><span id="nav_signals"> <span class="dim">|</span> 
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gstdiscoverer.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gstdiscoverer.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gstdiscoverer.properties" class="shortcut">Properties</a></span><span id="nav_signals">  <span class="dim">|</span> 
                   <a href="#gst-plugins-base-libs-gstdiscoverer.signals" class="shortcut">Signals</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
@@ -76,7 +76,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-discover-uri-async" title="gst_discoverer_discover_uri_async ()">gst_discoverer_discover_uri_async</a> <span class="c_punctuation">()</span>
@@ -91,7 +91,7 @@
 </td>
 </tr>
 <tr>
-<td class="function_type">const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="returnvalue">GstStructure</span></a> *
+<td class="function_type">const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstStructure.html"><span class="returnvalue">GstStructure</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-misc" title="gst_discoverer_info_get_misc ()">gst_discoverer_info_get_misc</a> <span class="c_punctuation">()</span>
@@ -115,14 +115,14 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
+<a href="https://developer.gnome.org/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-stream-list" title="gst_discoverer_info_get_stream_list ()">gst_discoverer_info_get_stream_list</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td class="function_type">const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="returnvalue">GstTagList</span></a> *
+<td class="function_type">const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagList.html"><span class="returnvalue">GstTagList</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-tags" title="gst_discoverer_info_get_tags ()">gst_discoverer_info_get_tags</a> <span class="c_punctuation">()</span>
@@ -136,7 +136,7 @@
 </td>
 </tr>
 <tr>
-<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<td class="function_type">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-uri" title="gst_discoverer_info_get_uri ()">gst_discoverer_info_get_uri</a> <span class="c_punctuation">()</span>
@@ -144,7 +144,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-seekable" title="gst_discoverer_info_get_seekable ()">gst_discoverer_info_get_seekable</a> <span class="c_punctuation">()</span>
@@ -164,14 +164,14 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="returnvalue">GstCaps</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-caps" title="gst_discoverer_stream_info_get_caps ()">gst_discoverer_stream_info_get_caps</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td class="function_type">const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="returnvalue">GstStructure</span></a> *
+<td class="function_type">const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstStructure.html"><span class="returnvalue">GstStructure</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-misc" title="gst_discoverer_stream_info_get_misc ()">gst_discoverer_stream_info_get_misc</a> <span class="c_punctuation">()</span>
@@ -194,7 +194,7 @@
 </td>
 </tr>
 <tr>
-<td class="function_type">const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="returnvalue">GstTagList</span></a> *
+<td class="function_type">const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagList.html"><span class="returnvalue">GstTagList</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-tags" title="gst_discoverer_stream_info_get_tags ()">gst_discoverer_stream_info_get_tags</a> <span class="c_punctuation">()</span>
@@ -208,7 +208,7 @@
 </td>
 </tr>
 <tr>
-<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<td class="function_type">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-stream-id" title="gst_discoverer_stream_info_get_stream_id ()">gst_discoverer_stream_info_get_stream_id</a> <span class="c_punctuation">()</span>
@@ -235,14 +235,14 @@
 </td>
 </tr>
 <tr>
-<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<td class="function_type">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-stream-type-nick" title="gst_discoverer_stream_info_get_stream_type_nick ()">gst_discoverer_stream_info_get_stream_type_nick</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> **
+<td class="function_type">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> **
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-missing-elements-installer-details" title="gst_discoverer_info_get_missing_elements_installer_details ()">gst_discoverer_info_get_missing_elements_installer_details</a> <span class="c_punctuation">()</span>
@@ -250,7 +250,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
+<a href="https://developer.gnome.org/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-audio-streams" title="gst_discoverer_info_get_audio_streams ()">gst_discoverer_info_get_audio_streams</a> <span class="c_punctuation">()</span>
@@ -258,7 +258,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
+<a href="https://developer.gnome.org/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-container-streams" title="gst_discoverer_info_get_container_streams ()">gst_discoverer_info_get_container_streams</a> <span class="c_punctuation">()</span>
@@ -266,7 +266,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
+<a href="https://developer.gnome.org/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-streams" title="gst_discoverer_info_get_streams ()">gst_discoverer_info_get_streams</a> <span class="c_punctuation">()</span>
@@ -274,7 +274,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
+<a href="https://developer.gnome.org/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-subtitle-streams" title="gst_discoverer_info_get_subtitle_streams ()">gst_discoverer_info_get_subtitle_streams</a> <span class="c_punctuation">()</span>
@@ -282,7 +282,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
+<a href="https://developer.gnome.org/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-video-streams" title="gst_discoverer_info_get_video_streams ()">gst_discoverer_info_get_video_streams</a> <span class="c_punctuation">()</span>
@@ -290,7 +290,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-audio-info-get-bitrate" title="gst_discoverer_audio_info_get_bitrate ()">gst_discoverer_audio_info_get_bitrate</a> <span class="c_punctuation">()</span>
@@ -298,7 +298,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-audio-info-get-channels" title="gst_discoverer_audio_info_get_channels ()">gst_discoverer_audio_info_get_channels</a> <span class="c_punctuation">()</span>
@@ -306,14 +306,14 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-audio-info-get-depth" title="gst_discoverer_audio_info_get_depth ()">gst_discoverer_audio_info_get_depth</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<td class="function_type">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-audio-info-get-language" title="gst_discoverer_audio_info_get_language ()">gst_discoverer_audio_info_get_language</a> <span class="c_punctuation">()</span>
@@ -321,7 +321,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-audio-info-get-max-bitrate" title="gst_discoverer_audio_info_get_max_bitrate ()">gst_discoverer_audio_info_get_max_bitrate</a> <span class="c_punctuation">()</span>
@@ -329,7 +329,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-audio-info-get-sample-rate" title="gst_discoverer_audio_info_get_sample_rate ()">gst_discoverer_audio_info_get_sample_rate</a> <span class="c_punctuation">()</span>
@@ -337,14 +337,14 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
+<a href="https://developer.gnome.org/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-container-info-get-streams" title="gst_discoverer_container_info_get_streams ()">gst_discoverer_container_info_get_streams</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<td class="function_type">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-subtitle-info-get-language" title="gst_discoverer_subtitle_info_get_language ()">gst_discoverer_subtitle_info_get_language</a> <span class="c_punctuation">()</span>
@@ -352,7 +352,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-get-bitrate" title="gst_discoverer_video_info_get_bitrate ()">gst_discoverer_video_info_get_bitrate</a> <span class="c_punctuation">()</span>
@@ -360,7 +360,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-get-depth" title="gst_discoverer_video_info_get_depth ()">gst_discoverer_video_info_get_depth</a> <span class="c_punctuation">()</span>
@@ -368,7 +368,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-get-framerate-denom" title="gst_discoverer_video_info_get_framerate_denom ()">gst_discoverer_video_info_get_framerate_denom</a> <span class="c_punctuation">()</span>
@@ -376,7 +376,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-get-framerate-num" title="gst_discoverer_video_info_get_framerate_num ()">gst_discoverer_video_info_get_framerate_num</a> <span class="c_punctuation">()</span>
@@ -384,7 +384,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-get-height" title="gst_discoverer_video_info_get_height ()">gst_discoverer_video_info_get_height</a> <span class="c_punctuation">()</span>
@@ -392,7 +392,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-is-interlaced" title="gst_discoverer_video_info_is_interlaced ()">gst_discoverer_video_info_is_interlaced</a> <span class="c_punctuation">()</span>
@@ -400,7 +400,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-is-image" title="gst_discoverer_video_info_is_image ()">gst_discoverer_video_info_is_image</a> <span class="c_punctuation">()</span>
@@ -408,7 +408,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-get-max-bitrate" title="gst_discoverer_video_info_get_max_bitrate ()">gst_discoverer_video_info_get_max_bitrate</a> <span class="c_punctuation">()</span>
@@ -416,7 +416,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-get-par-denom" title="gst_discoverer_video_info_get_par_denom ()">gst_discoverer_video_info_get_par_denom</a> <span class="c_punctuation">()</span>
@@ -424,7 +424,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-get-par-num" title="gst_discoverer_video_info_get_par_num ()">gst_discoverer_video_info_get_par_num</a> <span class="c_punctuation">()</span>
@@ -432,7 +432,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-get-width" title="gst_discoverer_video_info_get_width ()">gst_discoverer_video_info_get_width</a> <span class="c_punctuation">()</span>
@@ -533,7 +533,7 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstdiscoverer.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+<pre class="screen">    <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
     <span class="lineart">├──</span> GstDiscoverer
     <span class="lineart">╰──</span> GstDiscovererInfo
 </pre>
@@ -550,12 +550,12 @@
 <p>It provides two APIs, allowing usage in blocking or non-blocking mode.</p>
 <p>The blocking mode just requires calling <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-discover-uri" title="gst_discoverer_discover_uri ()"><code class="function">gst_discoverer_discover_uri()</code></a>
 with the URI one wishes to discover.</p>
-<p>The non-blocking mode requires a running <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#GMainLoop"><span class="type">GMainLoop</span></a> iterating a
-<a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#GMainContext"><span class="type">GMainContext</span></a>, where one connects to the various signals, appends the
+<p>The non-blocking mode requires a running <a href="https://developer.gnome.org/glib/unstable/glib-The-Main-Event-Loop.html#GMainLoop"><span class="type">GMainLoop</span></a> iterating a
+<a href="https://developer.gnome.org/glib/unstable/glib-The-Main-Event-Loop.html#GMainContext"><span class="type">GMainContext</span></a>, where one connects to the various signals, appends the
 URIs to be processed (through <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-discover-uri-async" title="gst_discoverer_discover_uri_async ()"><code class="function">gst_discoverer_discover_uri_async()</code></a>) and then
 asks for the discovery to begin (through <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-start" title="gst_discoverer_start ()"><code class="function">gst_discoverer_start()</code></a>).
 By default this will use the GLib default main context unless you have
-set a custom context 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>.</p>
+set a custom context using <a href="https://developer.gnome.org/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>.</p>
 <p>All the information is returned in a <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> structure.</p>
 </div>
 <div class="refsect1">
@@ -564,7 +564,7 @@
 <a name="gst-discoverer-new"></a><h3>gst_discoverer_new ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer"><span class="returnvalue">GstDiscoverer</span></a> *
 gst_discoverer_new (<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> timeout</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> **err</code></em>);</pre>
+                    <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **err</code></em>);</pre>
 <p>Creates a new <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer"><span class="type">GstDiscoverer</span></a> with the provided timeout.</p>
 <div class="refsect3">
 <a name="id-1.2.14.9.12.2.5"></a><h4>Parameters</h4>
@@ -583,7 +583,7 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>err</p></td>
-<td class="parameter_description"><p>a pointer to a <a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a>. can be <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
+<td class="parameter_description"><p>a pointer to a <a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a>. can be <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 </tbody>
@@ -594,9 +594,9 @@
 <p> The new <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer"><span class="type">GstDiscoverer</span></a>.
 If an error occurred when creating the discoverer, <em class="parameter"><code>err</code></em>
 will be set
-accordingly and <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> will be returned. If <em class="parameter"><code>err</code></em>
+accordingly and <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> will be returned. If <em class="parameter"><code>err</code></em>
 is set, the caller must
-free it when no longer needed using <a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#g-error-free"><code class="function">g_error_free()</code></a>. </p>
+free it when no longer needed using <a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#g-error-free"><code class="function">g_error_free()</code></a>. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
 </div>
@@ -606,7 +606,7 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_discoverer_start (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer"><span class="type">GstDiscoverer</span></a> *discoverer</code></em>);</pre>
 <p>Allow asynchronous discovering of URIs to take place.
-A <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#GMainLoop"><span class="type">GMainLoop</span></a> must be available for <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer"><span class="type">GstDiscoverer</span></a> to properly work in
+A <a href="https://developer.gnome.org/glib/unstable/glib-The-Main-Event-Loop.html#GMainLoop"><span class="type">GMainLoop</span></a> must be available for <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer"><span class="type">GstDiscoverer</span></a> to properly work in
 asynchronous mode.</p>
 <div class="refsect3">
 <a name="id-1.2.14.9.12.3.5"></a><h4>Parameters</h4>
@@ -652,12 +652,12 @@
 <a name="gst-discoverer-discover-uri"></a><h3>gst_discoverer_discover_uri ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="returnvalue">GstDiscovererInfo</span></a> *
 gst_discoverer_discover_uri (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer"><span class="type">GstDiscoverer</span></a> *discoverer</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><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **err</code></em>);</pre>
+                             <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *uri</code></em>,
+                             <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **err</code></em>);</pre>
 <p>Synchronously discovers the given <em class="parameter"><code>uri</code></em>
 .</p>
 <p>A copy of <em class="parameter"><code>uri</code></em>
- will be made internally, so the caller can safely <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a>
+ will be made internally, so the caller can safely <a href="https://developer.gnome.org/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a>
 afterwards.</p>
 <div class="refsect3">
 <a name="id-1.2.14.9.12.5.6"></a><h4>Parameters</h4>
@@ -681,14 +681,14 @@
 <tr>
 <td class="parameter_name"><p>err</p></td>
 <td class="parameter_description"><p> If an error occurred, this field will be filled in. </p></td>
-<td class="parameter_annotations"><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>
+<td class="parameter_annotations"><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>
 </div>
 <div class="refsect3">
 <a name="id-1.2.14.9.12.5.7"></a><h4>Returns</h4>
-<p> the result of the scanning. Can be <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if an
+<p> the result of the scanning. Can be <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if an
 error occurred. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
@@ -696,16 +696,16 @@
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-discover-uri-async"></a><h3>gst_discoverer_discover_uri_async ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_discoverer_discover_uri_async (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer"><span class="type">GstDiscoverer</span></a> *discoverer</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>);</pre>
+                                   <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *uri</code></em>);</pre>
 <p>Appends the given <em class="parameter"><code>uri</code></em>
  to the list of URIs to discoverer. The actual
 discovery of the <em class="parameter"><code>uri</code></em>
  will only take place if <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-start" title="gst_discoverer_start ()"><code class="function">gst_discoverer_start()</code></a> has
 been called.</p>
 <p>A copy of <em class="parameter"><code>uri</code></em>
- will be made internally, so the caller can safely <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a>
+ will be made internally, so the caller can safely <a href="https://developer.gnome.org/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a>
 afterwards.</p>
 <div class="refsect3">
 <a name="id-1.2.14.9.12.6.6"></a><h4>Parameters</h4>
@@ -731,9 +731,9 @@
 </div>
 <div class="refsect3">
 <a name="id-1.2.14.9.12.6.7"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the <em class="parameter"><code>uri</code></em>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the <em class="parameter"><code>uri</code></em>
 was successfully appended to the list of pending
-uris, else <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a></p>
+uris, else <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a></p>
 <p></p>
 </div>
 </div>
@@ -766,7 +766,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-info-get-misc"></a><h3>gst_discoverer_info_get_misc ()</h3>
-<pre class="programlisting">const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="returnvalue">GstStructure</span></a> *
+<pre class="programlisting">const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstStructure.html"><span class="returnvalue">GstStructure</span></a> *
 gst_discoverer_info_get_misc (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);</pre>
 <div class="warning">
 <p><code class="literal">gst_discoverer_info_get_misc</code> is deprecated and should not be used in newly-written code.</p>
@@ -790,9 +790,9 @@
 </div>
 <div class="refsect3">
 <a name="id-1.2.14.9.12.8.6"></a><h4>Returns</h4>
-<p> Miscellaneous information stored as a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a>
+<p> Miscellaneous information stored as a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstStructure.html"><span class="type">GstStructure</span></a>
 (for example: information about missing plugins). If you wish to use the
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a> after the life-time of <em class="parameter"><code>info</code></em>
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstStructure.html"><span class="type">GstStructure</span></a> after the life-time of <em class="parameter"><code>info</code></em>
 , you will need to copy it. </p>
 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
 </div>
@@ -855,7 +855,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-info-get-stream-list"></a><h3>gst_discoverer_info_get_stream_list ()</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> *
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
 gst_discoverer_info_get_stream_list (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);</pre>
 <div class="refsect3">
 <a name="id-1.2.14.9.12.11.4"></a><h4>Parameters</h4>
@@ -883,7 +883,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-info-get-tags"></a><h3>gst_discoverer_info_get_tags ()</h3>
-<pre class="programlisting">const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="returnvalue">GstTagList</span></a> *
+<pre class="programlisting">const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagList.html"><span class="returnvalue">GstTagList</span></a> *
 gst_discoverer_info_get_tags (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);</pre>
 <div class="refsect3">
 <a name="id-1.2.14.9.12.12.4"></a><h4>Parameters</h4>
@@ -939,7 +939,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-info-get-uri"></a><h3>gst_discoverer_info_get_uri ()</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> *
+<pre class="programlisting">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_discoverer_info_get_uri (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);</pre>
 <div class="refsect3">
 <a name="id-1.2.14.9.12.14.4"></a><h4>Parameters</h4>
@@ -967,7 +967,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-info-get-seekable"></a><h3>gst_discoverer_info_get_seekable ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_discoverer_info_get_seekable (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);</pre>
 <div class="refsect3">
 <a name="id-1.2.14.9.12.15.4"></a><h4>Parameters</h4>
@@ -993,7 +993,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-info-ref"></a><h3>gst_discoverer_info_ref()</h3>
-<pre class="programlisting">#define gst_discoverer_info_ref(info) (g_object_ref((Gbject*)info))
+<pre class="programlisting">#define gst_discoverer_info_ref(info) (g_object_ref((GObject*)info))
 </pre>
 <p>Increments the reference count of <em class="parameter"><code>info</code></em>
 .</p>
@@ -1044,7 +1044,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-stream-info-get-caps"></a><h3>gst_discoverer_stream_info_get_caps ()</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> *
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="returnvalue">GstCaps</span></a> *
 gst_discoverer_stream_info_get_caps (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a> *info</code></em>);</pre>
 <div class="refsect3">
 <a name="id-1.2.14.9.12.18.4"></a><h4>Parameters</h4>
@@ -1063,15 +1063,15 @@
 </div>
 <div class="refsect3">
 <a name="id-1.2.14.9.12.18.5"></a><h4>Returns</h4>
-<p> the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> of the stream. Unref with
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#gst-caps-unref"><span class="type">gst_caps_unref</span></a> after usage. </p>
+<p> the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> of the stream. Unref with
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html#gst-caps-unref"><span class="type">gst_caps_unref</span></a> after usage. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-stream-info-get-misc"></a><h3>gst_discoverer_stream_info_get_misc ()</h3>
-<pre class="programlisting">const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="returnvalue">GstStructure</span></a> *
+<pre class="programlisting">const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstStructure.html"><span class="returnvalue">GstStructure</span></a> *
 gst_discoverer_stream_info_get_misc (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a> *info</code></em>);</pre>
 <div class="warning">
 <p><code class="literal">gst_discoverer_stream_info_get_misc</code> is deprecated and should not be used in newly-written code.</p>
@@ -1096,7 +1096,7 @@
 <div class="refsect3">
 <a name="id-1.2.14.9.12.19.6"></a><h4>Returns</h4>
 <p> additional information regarding the stream (for
-example codec version, profile, etc..). If you wish to use the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a>
+example codec version, profile, etc..). If you wish to use the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstStructure.html"><span class="type">GstStructure</span></a>
 after the life-time of <em class="parameter"><code>info</code></em>
 you will need to copy it. </p>
 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
@@ -1124,7 +1124,7 @@
 </div>
 <div class="refsect3">
 <a name="id-1.2.14.9.12.20.5"></a><h4>Returns</h4>
-<p> the next <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a> in a chain. <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
+<p> the next <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a> in a chain. <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
 for final streams.
 Unref with <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-unref" title="gst_discoverer_stream_info_unref()"><span class="type">gst_discoverer_stream_info_unref</span></a> after usage. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
@@ -1154,7 +1154,7 @@
 <div class="refsect3">
 <a name="id-1.2.14.9.12.21.5"></a><h4>Returns</h4>
 <p> the previous <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a> in a chain.
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> for starting points. Unref with <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-unref" title="gst_discoverer_stream_info_unref()"><span class="type">gst_discoverer_stream_info_unref</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> for starting points. Unref with <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-unref" title="gst_discoverer_stream_info_unref()"><span class="type">gst_discoverer_stream_info_unref</span></a>
 after usage. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
@@ -1162,7 +1162,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-stream-info-get-tags"></a><h3>gst_discoverer_stream_info_get_tags ()</h3>
-<pre class="programlisting">const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="returnvalue">GstTagList</span></a> *
+<pre class="programlisting">const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagList.html"><span class="returnvalue">GstTagList</span></a> *
 gst_discoverer_stream_info_get_tags (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a> *info</code></em>);</pre>
 <div class="refsect3">
 <a name="id-1.2.14.9.12.22.4"></a><h4>Parameters</h4>
@@ -1218,7 +1218,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-stream-info-get-stream-id"></a><h3>gst_discoverer_stream_info_get_stream_id ()</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> *
+<pre class="programlisting">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_discoverer_stream_info_get_stream_id
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a> *info</code></em>);</pre>
 <div class="refsect3">
@@ -1299,9 +1299,9 @@
 <div class="refsect2">
 <a name="gst-discoverer-stream-info-list-free"></a><h3>gst_discoverer_stream_info_list_free ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
-gst_discoverer_stream_info_list_free (<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> *infos</code></em>);</pre>
+gst_discoverer_stream_info_list_free (<em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *infos</code></em>);</pre>
 <p>Decrements the reference count of all contained <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a>
-and fress the <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a>.</p>
+and fress the <a href="https://developer.gnome.org/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a>.</p>
 <div class="refsect3">
 <a name="id-1.2.14.9.12.27.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
@@ -1312,7 +1312,7 @@
 </colgroup>
 <tbody><tr>
 <td class="parameter_name"><p>infos</p></td>
-<td class="parameter_description"><p> 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="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a>. </p></td>
+<td class="parameter_description"><p> a <a href="https://developer.gnome.org/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a>. </p></td>
 <td class="parameter_annotations"><span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GstPbutils.DiscovererStreamInfo]</span></td>
 </tr></tbody>
 </table></div>
@@ -1321,7 +1321,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-stream-info-get-stream-type-nick"></a><h3>gst_discoverer_stream_info_get_stream_type_nick ()</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> *
+<pre class="programlisting">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_discoverer_stream_info_get_stream_type_nick
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a> *info</code></em>);</pre>
 <div class="refsect3">
@@ -1350,7 +1350,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-info-get-missing-elements-installer-details"></a><h3>gst_discoverer_info_get_missing_elements_installer_details ()</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> **
+<pre class="programlisting">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> **
 gst_discoverer_info_get_missing_elements_installer_details
                                (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);</pre>
 <p>Get the installer details for missing elements</p>
@@ -1372,18 +1372,20 @@
 </div>
 <div class="refsect3">
 <a name="id-1.2.14.9.12.29.6"></a><h4>Returns</h4>
-<p> (array zero-terminated=1): An array of strings
+<p> An array of strings
 containing informations about how to install the various missing elements
 for <em class="parameter"><code>info</code></em>
-to be usable. Free with g_strfreev. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+to be usable. If you wish to use the strings after the life-time
+of <em class="parameter"><code>info</code></em>
+, you will need to copy them. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> zero-terminated=1]</span></p>
 </div>
 <p class="since">Since 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-info-get-audio-streams"></a><h3>gst_discoverer_info_get_audio_streams ()</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> *
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
 gst_discoverer_info_get_audio_streams (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);</pre>
 <p>Finds all the <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererAudioInfo" title="GstDiscovererAudioInfo"><span class="type">GstDiscovererAudioInfo</span></a> contained in <em class="parameter"><code>info</code></em>
 </p>
@@ -1404,7 +1406,7 @@
 </div>
 <div class="refsect3">
 <a name="id-1.2.14.9.12.30.6"></a><h4>Returns</h4>
-<p> A <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of
+<p> A <a href="https://developer.gnome.org/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of
 matching <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a>. The caller should free it with
 <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-list-free" title="gst_discoverer_stream_info_list_free ()"><code class="function">gst_discoverer_stream_info_list_free()</code></a>. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GstPbutils.DiscovererStreamInfo]</span></p>
@@ -1413,7 +1415,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-info-get-container-streams"></a><h3>gst_discoverer_info_get_container_streams ()</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> *
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
 gst_discoverer_info_get_container_streams
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);</pre>
 <p>Finds all the <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererContainerInfo" title="GstDiscovererContainerInfo"><span class="type">GstDiscovererContainerInfo</span></a> contained in <em class="parameter"><code>info</code></em>
@@ -1435,7 +1437,7 @@
 </div>
 <div class="refsect3">
 <a name="id-1.2.14.9.12.31.6"></a><h4>Returns</h4>
-<p> A <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of
+<p> A <a href="https://developer.gnome.org/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of
 matching <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a>. The caller should free it with
 <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-list-free" title="gst_discoverer_stream_info_list_free ()"><code class="function">gst_discoverer_stream_info_list_free()</code></a>. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GstPbutils.DiscovererStreamInfo]</span></p>
@@ -1444,9 +1446,9 @@
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-info-get-streams"></a><h3>gst_discoverer_info_get_streams ()</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> *
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
 gst_discoverer_info_get_streams (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</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> streamtype</code></em>);</pre>
+                                 <em class="parameter"><code><a href="https://developer.gnome.org/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> streamtype</code></em>);</pre>
 <p>Finds the <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a> contained in <em class="parameter"><code>info</code></em>
  that match the
 given <em class="parameter"><code>streamtype</code></em>
@@ -1467,7 +1469,7 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>streamtype</p></td>
-<td class="parameter_description"><p>a <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> derived from <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a></p></td>
+<td class="parameter_description"><p>a <a href="https://developer.gnome.org/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> derived from <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a></p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 </tbody>
@@ -1475,7 +1477,7 @@
 </div>
 <div class="refsect3">
 <a name="id-1.2.14.9.12.32.6"></a><h4>Returns</h4>
-<p> A <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of
+<p> A <a href="https://developer.gnome.org/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of
 matching <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a>. The caller should free it with
 <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-list-free" title="gst_discoverer_stream_info_list_free ()"><code class="function">gst_discoverer_stream_info_list_free()</code></a>. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GstPbutils.DiscovererStreamInfo]</span></p>
@@ -1484,7 +1486,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-info-get-subtitle-streams"></a><h3>gst_discoverer_info_get_subtitle_streams ()</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> *
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
 gst_discoverer_info_get_subtitle_streams
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);</pre>
 <p>Finds all the <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererSubtitleInfo" title="GstDiscovererSubtitleInfo"><span class="type">GstDiscovererSubtitleInfo</span></a> contained in <em class="parameter"><code>info</code></em>
@@ -1506,7 +1508,7 @@
 </div>
 <div class="refsect3">
 <a name="id-1.2.14.9.12.33.6"></a><h4>Returns</h4>
-<p> A <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of
+<p> A <a href="https://developer.gnome.org/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of
 matching <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a>. The caller should free it with
 <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-list-free" title="gst_discoverer_stream_info_list_free ()"><code class="function">gst_discoverer_stream_info_list_free()</code></a>. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GstPbutils.DiscovererStreamInfo]</span></p>
@@ -1515,7 +1517,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-info-get-video-streams"></a><h3>gst_discoverer_info_get_video_streams ()</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> *
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
 gst_discoverer_info_get_video_streams (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);</pre>
 <p>Finds all the <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererVideoInfo" title="GstDiscovererVideoInfo"><span class="type">GstDiscovererVideoInfo</span></a> contained in <em class="parameter"><code>info</code></em>
 </p>
@@ -1536,7 +1538,7 @@
 </div>
 <div class="refsect3">
 <a name="id-1.2.14.9.12.34.6"></a><h4>Returns</h4>
-<p> A <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of
+<p> A <a href="https://developer.gnome.org/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of
 matching <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a>. The caller should free it with
 <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-list-free" title="gst_discoverer_stream_info_list_free ()"><code class="function">gst_discoverer_stream_info_list_free()</code></a>. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GstPbutils.DiscovererStreamInfo]</span></p>
@@ -1545,7 +1547,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-audio-info-get-bitrate"></a><h3>gst_discoverer_audio_info_get_bitrate ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_discoverer_audio_info_get_bitrate (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererAudioInfo" title="GstDiscovererAudioInfo"><span class="type">GstDiscovererAudioInfo</span></a> *info</code></em>);</pre>
 <div class="refsect3">
 <a name="id-1.2.14.9.12.35.4"></a><h4>Parameters</h4>
@@ -1571,7 +1573,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-audio-info-get-channels"></a><h3>gst_discoverer_audio_info_get_channels ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_discoverer_audio_info_get_channels
                                (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererAudioInfo" title="GstDiscovererAudioInfo"><span class="type">GstDiscovererAudioInfo</span></a> *info</code></em>);</pre>
 <div class="refsect3">
@@ -1598,7 +1600,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-audio-info-get-depth"></a><h3>gst_discoverer_audio_info_get_depth ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_discoverer_audio_info_get_depth (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererAudioInfo" title="GstDiscovererAudioInfo"><span class="type">GstDiscovererAudioInfo</span></a> *info</code></em>);</pre>
 <div class="refsect3">
 <a name="id-1.2.14.9.12.37.4"></a><h4>Parameters</h4>
@@ -1624,7 +1626,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-audio-info-get-language"></a><h3>gst_discoverer_audio_info_get_language ()</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> *
+<pre class="programlisting">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_discoverer_audio_info_get_language
                                (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererAudioInfo" title="GstDiscovererAudioInfo"><span class="type">GstDiscovererAudioInfo</span></a> *info</code></em>);</pre>
 <div class="refsect3">
@@ -1651,7 +1653,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-audio-info-get-max-bitrate"></a><h3>gst_discoverer_audio_info_get_max_bitrate ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_discoverer_audio_info_get_max_bitrate
                                (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererAudioInfo" title="GstDiscovererAudioInfo"><span class="type">GstDiscovererAudioInfo</span></a> *info</code></em>);</pre>
 <div class="refsect3">
@@ -1678,7 +1680,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-audio-info-get-sample-rate"></a><h3>gst_discoverer_audio_info_get_sample_rate ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_discoverer_audio_info_get_sample_rate
                                (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererAudioInfo" title="GstDiscovererAudioInfo"><span class="type">GstDiscovererAudioInfo</span></a> *info</code></em>);</pre>
 <div class="refsect3">
@@ -1705,7 +1707,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-container-info-get-streams"></a><h3>gst_discoverer_container_info_get_streams ()</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> *
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
 gst_discoverer_container_info_get_streams
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererContainerInfo" title="GstDiscovererContainerInfo"><span class="type">GstDiscovererContainerInfo</span></a> *info</code></em>);</pre>
 <div class="refsect3">
@@ -1734,7 +1736,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-subtitle-info-get-language"></a><h3>gst_discoverer_subtitle_info_get_language ()</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> *
+<pre class="programlisting">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_discoverer_subtitle_info_get_language
                                (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererSubtitleInfo" title="GstDiscovererSubtitleInfo"><span class="type">GstDiscovererSubtitleInfo</span></a> *info</code></em>);</pre>
 <div class="refsect3">
@@ -1761,7 +1763,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-video-info-get-bitrate"></a><h3>gst_discoverer_video_info_get_bitrate ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_discoverer_video_info_get_bitrate (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererVideoInfo" title="GstDiscovererVideoInfo"><span class="type">GstDiscovererVideoInfo</span></a> *info</code></em>);</pre>
 <div class="refsect3">
 <a name="id-1.2.14.9.12.43.4"></a><h4>Parameters</h4>
@@ -1787,7 +1789,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-video-info-get-depth"></a><h3>gst_discoverer_video_info_get_depth ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_discoverer_video_info_get_depth (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererVideoInfo" title="GstDiscovererVideoInfo"><span class="type">GstDiscovererVideoInfo</span></a> *info</code></em>);</pre>
 <div class="refsect3">
 <a name="id-1.2.14.9.12.44.4"></a><h4>Parameters</h4>
@@ -1813,7 +1815,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-video-info-get-framerate-denom"></a><h3>gst_discoverer_video_info_get_framerate_denom ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_discoverer_video_info_get_framerate_denom
                                (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererVideoInfo" title="GstDiscovererVideoInfo"><span class="type">GstDiscovererVideoInfo</span></a> *info</code></em>);</pre>
 <div class="refsect3">
@@ -1840,7 +1842,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-video-info-get-framerate-num"></a><h3>gst_discoverer_video_info_get_framerate_num ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_discoverer_video_info_get_framerate_num
                                (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererVideoInfo" title="GstDiscovererVideoInfo"><span class="type">GstDiscovererVideoInfo</span></a> *info</code></em>);</pre>
 <div class="refsect3">
@@ -1867,7 +1869,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-video-info-get-height"></a><h3>gst_discoverer_video_info_get_height ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_discoverer_video_info_get_height (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererVideoInfo" title="GstDiscovererVideoInfo"><span class="type">GstDiscovererVideoInfo</span></a> *info</code></em>);</pre>
 <div class="refsect3">
 <a name="id-1.2.14.9.12.47.4"></a><h4>Parameters</h4>
@@ -1893,7 +1895,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-video-info-is-interlaced"></a><h3>gst_discoverer_video_info_is_interlaced ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_discoverer_video_info_is_interlaced
                                (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererVideoInfo" title="GstDiscovererVideoInfo"><span class="type">GstDiscovererVideoInfo</span></a> *info</code></em>);</pre>
 <div class="refsect3">
@@ -1913,14 +1915,14 @@
 </div>
 <div class="refsect3">
 <a name="id-1.2.14.9.12.48.5"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the stream is interlaced, else <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>.</p>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the stream is interlaced, else <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>.</p>
 <p></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-video-info-is-image"></a><h3>gst_discoverer_video_info_is_image ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_discoverer_video_info_is_image (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererVideoInfo" title="GstDiscovererVideoInfo"><span class="type">GstDiscovererVideoInfo</span></a> *info</code></em>);</pre>
 <div class="refsect3">
 <a name="id-1.2.14.9.12.49.4"></a><h4>Parameters</h4>
@@ -1939,7 +1941,7 @@
 </div>
 <div class="refsect3">
 <a name="id-1.2.14.9.12.49.5"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><span class="type">TRUE</span></a> if the video stream corresponds to an image (i.e. only contains
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><span class="type">TRUE</span></a> if the video stream corresponds to an image (i.e. only contains
 one frame).</p>
 <p></p>
 </div>
@@ -1947,7 +1949,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-video-info-get-max-bitrate"></a><h3>gst_discoverer_video_info_get_max_bitrate ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_discoverer_video_info_get_max_bitrate
                                (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererVideoInfo" title="GstDiscovererVideoInfo"><span class="type">GstDiscovererVideoInfo</span></a> *info</code></em>);</pre>
 <div class="refsect3">
@@ -1974,7 +1976,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-video-info-get-par-denom"></a><h3>gst_discoverer_video_info_get_par_denom ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_discoverer_video_info_get_par_denom
                                (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererVideoInfo" title="GstDiscovererVideoInfo"><span class="type">GstDiscovererVideoInfo</span></a> *info</code></em>);</pre>
 <div class="refsect3">
@@ -2001,7 +2003,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-video-info-get-par-num"></a><h3>gst_discoverer_video_info_get_par_num ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_discoverer_video_info_get_par_num (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererVideoInfo" title="GstDiscovererVideoInfo"><span class="type">GstDiscovererVideoInfo</span></a> *info</code></em>);</pre>
 <div class="refsect3">
 <a name="id-1.2.14.9.12.52.4"></a><h4>Parameters</h4>
@@ -2027,7 +2029,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-video-info-get-width"></a><h3>gst_discoverer_video_info_get_width ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_discoverer_video_info_get_width (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererVideoInfo" title="GstDiscovererVideoInfo"><span class="type">GstDiscovererVideoInfo</span></a> *info</code></em>);</pre>
 <div class="refsect3">
 <a name="id-1.2.14.9.12.53.4"></a><h4>Parameters</h4>
@@ -2188,8 +2190,8 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 user_function (<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer"><span class="type">GstDiscoverer</span></a>     *discoverer,
                <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a>            *error,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>           user_data)</pre>
+               <a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a>            *error,
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>           user_data)</pre>
 <p>Will be emitted in async mode when all information on a URI could be
 discovered, or an error occurred.</p>
 <p>When an error occurs, <em class="parameter"><code>info</code></em>
@@ -2216,9 +2218,9 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>error</p></td>
-<td class="parameter_description"><p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a>, which will be non-NULL if an error
+<td class="parameter_description"><p> <a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a>, which will be non-NULL if an error
 occurred during discovery. You must not
-free this <a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a>, it will be freed by
+free this <a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a>, it will be freed by
 the discoverer. </p></td>
 <td class="parameter_annotations"><span class="annotation">[<acronym title="Override the parsed C type with given type."><span class="acronym">type</span></acronym> GLib.Error]</span></td>
 </tr>
@@ -2237,7 +2239,7 @@
 <a name="GstDiscoverer-finished"></a><h3>The <code class="literal">“finished”</code> signal</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 user_function (<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer"><span class="type">GstDiscoverer</span></a> *discoverer,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>       user_data)</pre>
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>       user_data)</pre>
 <p>Will be emitted in async mode when all pending URIs have been processed.</p>
 <div class="refsect3">
 <a name="id-1.2.14.9.15.3.5"></a><h4>Parameters</h4>
@@ -2269,7 +2271,7 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 user_function (<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer"><span class="type">GstDiscoverer</span></a> *discoverer,
                <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a>    *source,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>       user_data)</pre>
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>       user_data)</pre>
 <p>This signal is emitted after the source element has been created for, so
 the URI being discovered, so it can be configured by setting additional
 properties (e.g. set a proxy server for an http source, or set the device
@@ -2310,7 +2312,7 @@
 <a name="GstDiscoverer-starting"></a><h3>The <code class="literal">“starting”</code> signal</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 user_function (<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer"><span class="type">GstDiscoverer</span></a> *discoverer,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>       user_data)</pre>
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>       user_data)</pre>
 <p>Will be emitted when the discover starts analyzing the pending URIs</p>
 <div class="refsect3">
 <a name="id-1.2.14.9.15.5.5"></a><h4>Parameters</h4>
@@ -2340,6 +2342,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstfft.html b/docs/libs/html/gst-plugins-base-libs-gstfft.html
index bbbb360..dacec99 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstfft.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstfft.html
@@ -8,15 +8,14 @@
 <link rel="up" href="gstreamer-ffft.html" title="FFT Library">
 <link rel="prev" href="gstreamer-ffft.html" title="FFT Library">
 <link rel="next" href="gst-plugins-base-libs-gstffts16.html" title="gstffts16">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstfft.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstfft.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gstfft.description" class="shortcut">Description</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="gstreamer-ffft.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -41,7 +40,7 @@
 </colgroup>
 <tbody><tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstfft.html#gst-fft-next-fast-length" title="gst_fft_next_fast_length ()">gst_fft_next_fast_length</a> <span class="c_punctuation">()</span>
@@ -63,11 +62,6 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="gst-plugins-base-libs-gstfft.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">
-</pre>
-</div>
-<div class="refsect1">
 <a name="gst-plugins-base-libs-gstfft.includes"></a><h2>Includes</h2>
 <pre class="synopsis">#include &lt;gst/fft/gstfft.h&gt;
 </pre>
@@ -81,15 +75,15 @@
 <a name="gst-plugins-base-libs-gstfft.functions_details"></a><h2>Functions</h2>
 <div class="refsect2">
 <a name="gst-fft-next-fast-length"></a><h3>gst_fft_next_fast_length ()</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_fft_next_fast_length (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> n</code></em>);</pre>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
+gst_fft_next_fast_length (<em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> n</code></em>);</pre>
 <p>Returns the next number to <em class="parameter"><code>n</code></em>
  that is entirely a product
 of 2, 3 and 5. Using this as the <em class="parameter"><code>len</code></em>
  parameter for
 the different GstFFT types will provide the best performance.</p>
 <div class="refsect3">
-<a name="id-1.2.7.4.8.2.5"></a><h4>Parameters</h4>
+<a name="id-1.2.7.4.7.2.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -104,7 +98,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.7.4.8.2.6"></a><h4>Returns</h4>
+<a name="id-1.2.7.4.7.2.6"></a><h4>Returns</h4>
 <p> the next fast FFT length.</p>
 <p></p>
 </div>
@@ -116,7 +110,7 @@
 <a name="GstFFTWindow"></a><h3>enum GstFFTWindow</h3>
 <p>The various window functions available.</p>
 <div class="refsect3">
-<a name="id-1.2.7.4.9.2.4"></a><h4>Members</h4>
+<a name="id-1.2.7.4.8.2.4"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -167,6 +161,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstfftf32.html b/docs/libs/html/gst-plugins-base-libs-gstfftf32.html
index de9d251..3475cf9 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstfftf32.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstfftf32.html
@@ -8,15 +8,14 @@
 <link rel="up" href="gstreamer-ffft.html" title="FFT Library">
 <link rel="prev" href="gst-plugins-base-libs-gstffts32.html" title="gstffts32">
 <link rel="next" href="gst-plugins-base-libs-gstfftf64.html" title="gstfftf64">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstfftf32.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstfftf32.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gstfftf32.description" class="shortcut">Description</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="gstreamer-ffft.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -103,11 +102,6 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="gst-plugins-base-libs-gstfftf32.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">
-</pre>
-</div>
-<div class="refsect1">
 <a name="gst-plugins-base-libs-gstfftf32.includes"></a><h2>Includes</h2>
 <pre class="synopsis">#include &lt;gst/fft/gstfftf32.h&gt;
 </pre>
@@ -144,8 +138,8 @@
 <div class="refsect2">
 <a name="gst-fft-f32-new"></a><h3>gst_fft_f32_new ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstfftf32.html#GstFFTF32" title="GstFFTF32"><span class="returnvalue">GstFFTF32</span></a> *
-gst_fft_f32_new (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> len</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> inverse</code></em>);</pre>
+gst_fft_f32_new (<em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> len</code></em>,
+                 <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> inverse</code></em>);</pre>
 <p>This returns a new <a class="link" href="gst-plugins-base-libs-gstfftf32.html#GstFFTF32" title="GstFFTF32"><span class="type">GstFFTF32</span></a> instance with the given parameters. It makes
 sense to keep one instance for several calls for speed reasons.</p>
 <p><em class="parameter"><code>len</code></em>
@@ -153,7 +147,7 @@
 2, 3 and 5. To get the next number with this characteristics use
 <a class="link" href="gst-plugins-base-libs-gstfft.html#gst-fft-next-fast-length" title="gst_fft_next_fast_length ()"><code class="function">gst_fft_next_fast_length()</code></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.7.7.8.2.6"></a><h4>Parameters</h4>
+<a name="id-1.2.7.7.7.2.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -168,14 +162,14 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>inverse</p></td>
-<td class="parameter_description"><p><a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the <a class="link" href="gst-plugins-base-libs-gstfftf32.html#GstFFTF32" title="GstFFTF32"><span class="type">GstFFTF32</span></a> instance should be used for the inverse FFT</p></td>
+<td class="parameter_description"><p><a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the <a class="link" href="gst-plugins-base-libs-gstfftf32.html#GstFFTF32" title="GstFFTF32"><span class="type">GstFFTF32</span></a> instance should be used for the inverse FFT</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.7.7.8.2.7"></a><h4>Returns</h4>
+<a name="id-1.2.7.7.7.2.7"></a><h4>Returns</h4>
 <p> a new <a class="link" href="gst-plugins-base-libs-gstfftf32.html#GstFFTF32" title="GstFFTF32"><span class="type">GstFFTF32</span></a> instance.</p>
 <p></p>
 </div>
@@ -185,7 +179,7 @@
 <a name="gst-fft-f32-fft"></a><h3>gst_fft_f32_fft ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_fft_f32_fft (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstfftf32.html#GstFFTF32" title="GstFFTF32"><span class="type">GstFFTF32</span></a> *self</code></em>,
-                 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> *timedata</code></em>,
+                 <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> *timedata</code></em>,
                  <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstfftf32.html#GstFFTF32Complex" title="struct GstFFTF32Complex"><span class="type">GstFFTF32Complex</span></a> *freqdata</code></em>);</pre>
 <p>This performs the FFT on <em class="parameter"><code>timedata</code></em>
  and puts the result in <em class="parameter"><code>freqdata</code></em>
@@ -199,7 +193,7 @@
 /2 + 1 <a class="link" href="gst-plugins-base-libs-gstfftf32.html#GstFFTF32Complex" title="struct GstFFTF32Complex"><span class="type">GstFFTF32Complex</span></a> frequency
 domain samples.</p>
 <div class="refsect3">
-<a name="id-1.2.7.7.8.3.7"></a><h4>Parameters</h4>
+<a name="id-1.2.7.7.7.3.7"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -232,7 +226,7 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_fft_f32_inverse_fft (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstfftf32.html#GstFFTF32" title="GstFFTF32"><span class="type">GstFFTF32</span></a> *self</code></em>,
                          <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstfftf32.html#GstFFTF32Complex" title="struct GstFFTF32Complex"><span class="type">GstFFTF32Complex</span></a> *freqdata</code></em>,
-                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> *timedata</code></em>);</pre>
+                         <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> *timedata</code></em>);</pre>
 <p>This performs the inverse FFT on <em class="parameter"><code>freqdata</code></em>
  and puts the result in <em class="parameter"><code>timedata</code></em>
 .</p>
@@ -245,7 +239,7 @@
  must be large enough to hold <em class="parameter"><code>len</code></em>
  time domain samples.</p>
 <div class="refsect3">
-<a name="id-1.2.7.7.8.4.7"></a><h4>Parameters</h4>
+<a name="id-1.2.7.7.7.4.7"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -277,13 +271,13 @@
 <a name="gst-fft-f32-window"></a><h3>gst_fft_f32_window ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_fft_f32_window (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstfftf32.html#GstFFTF32" title="GstFFTF32"><span class="type">GstFFTF32</span></a> *self</code></em>,
-                    <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> *timedata</code></em>,
+                    <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> *timedata</code></em>,
                     <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstfft.html#GstFFTWindow" title="enum GstFFTWindow"><span class="type">GstFFTWindow</span></a> window</code></em>);</pre>
 <p>This calls the window function <em class="parameter"><code>window</code></em>
  on the <em class="parameter"><code>timedata</code></em>
  sample buffer.</p>
 <div class="refsect3">
-<a name="id-1.2.7.7.8.5.5"></a><h4>Parameters</h4>
+<a name="id-1.2.7.7.7.5.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -318,7 +312,7 @@
 <p>This frees the memory allocated for <em class="parameter"><code>self</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.7.7.8.6.5"></a><h4>Parameters</h4>
+<a name="id-1.2.7.7.7.6.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -351,7 +345,7 @@
 <p>Data type for complex numbers composed of
 32 bit float.</p>
 <div class="refsect3">
-<a name="id-1.2.7.7.9.3.5"></a><h4>Members</h4>
+<a name="id-1.2.7.7.8.3.5"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
@@ -360,12 +354,12 @@
 </colgroup>
 <tbody>
 <tr>
-<td class="struct_member_name"><p><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> <em class="structfield"><code><a name="GstFFTF32Complex.r"></a>r</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> <em class="structfield"><code><a name="GstFFTF32Complex.r"></a>r</code></em>;</p></td>
 <td class="struct_member_description"><p>Real part</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> <em class="structfield"><code><a name="GstFFTF32Complex.i"></a>i</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> <em class="structfield"><code><a name="GstFFTF32Complex.i"></a>i</code></em>;</p></td>
 <td class="struct_member_description"><p>Imaginary part</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
@@ -377,6 +371,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstfftf64.html b/docs/libs/html/gst-plugins-base-libs-gstfftf64.html
index b06a73b..ba876a5 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstfftf64.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstfftf64.html
@@ -8,15 +8,14 @@
 <link rel="up" href="gstreamer-ffft.html" title="FFT Library">
 <link rel="prev" href="gst-plugins-base-libs-gstfftf32.html" title="gstfftf32">
 <link rel="next" href="gstreamer-riff.html" title="Riff Media Library">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstfftf64.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstfftf64.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gstfftf64.description" class="shortcut">Description</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="gstreamer-ffft.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -103,11 +102,6 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="gst-plugins-base-libs-gstfftf64.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">
-</pre>
-</div>
-<div class="refsect1">
 <a name="gst-plugins-base-libs-gstfftf64.includes"></a><h2>Includes</h2>
 <pre class="synopsis">#include &lt;gst/fft/gstfftf64.h&gt;
 </pre>
@@ -144,8 +138,8 @@
 <div class="refsect2">
 <a name="gst-fft-f64-new"></a><h3>gst_fft_f64_new ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstfftf64.html#GstFFTF64" title="GstFFTF64"><span class="returnvalue">GstFFTF64</span></a> *
-gst_fft_f64_new (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> len</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> inverse</code></em>);</pre>
+gst_fft_f64_new (<em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> len</code></em>,
+                 <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> inverse</code></em>);</pre>
 <p>This returns a new <a class="link" href="gst-plugins-base-libs-gstfftf64.html#GstFFTF64" title="GstFFTF64"><span class="type">GstFFTF64</span></a> instance with the given parameters. It makes
 sense to keep one instance for several calls for speed reasons.</p>
 <p><em class="parameter"><code>len</code></em>
@@ -153,7 +147,7 @@
 2, 3 and 5. To get the next number with this characteristics use
 <a class="link" href="gst-plugins-base-libs-gstfft.html#gst-fft-next-fast-length" title="gst_fft_next_fast_length ()"><code class="function">gst_fft_next_fast_length()</code></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.7.8.8.2.6"></a><h4>Parameters</h4>
+<a name="id-1.2.7.8.7.2.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -168,14 +162,14 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>inverse</p></td>
-<td class="parameter_description"><p><a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the <a class="link" href="gst-plugins-base-libs-gstfftf64.html#GstFFTF64" title="GstFFTF64"><span class="type">GstFFTF64</span></a> instance should be used for the inverse FFT</p></td>
+<td class="parameter_description"><p><a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the <a class="link" href="gst-plugins-base-libs-gstfftf64.html#GstFFTF64" title="GstFFTF64"><span class="type">GstFFTF64</span></a> instance should be used for the inverse FFT</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.7.8.8.2.7"></a><h4>Returns</h4>
+<a name="id-1.2.7.8.7.2.7"></a><h4>Returns</h4>
 <p> a new <a class="link" href="gst-plugins-base-libs-gstfftf64.html#GstFFTF64" title="GstFFTF64"><span class="type">GstFFTF64</span></a> instance.</p>
 <p></p>
 </div>
@@ -185,7 +179,7 @@
 <a name="gst-fft-f64-fft"></a><h3>gst_fft_f64_fft ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_fft_f64_fft (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstfftf64.html#GstFFTF64" title="GstFFTF64"><span class="type">GstFFTF64</span></a> *self</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> *timedata</code></em>,
+                 <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *timedata</code></em>,
                  <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstfftf64.html#GstFFTF64Complex" title="struct GstFFTF64Complex"><span class="type">GstFFTF64Complex</span></a> *freqdata</code></em>);</pre>
 <p>This performs the FFT on <em class="parameter"><code>timedata</code></em>
  and puts the result in <em class="parameter"><code>freqdata</code></em>
@@ -199,7 +193,7 @@
 /2 + 1 <a class="link" href="gst-plugins-base-libs-gstfftf64.html#GstFFTF64Complex" title="struct GstFFTF64Complex"><span class="type">GstFFTF64Complex</span></a> frequency
 domain samples.</p>
 <div class="refsect3">
-<a name="id-1.2.7.8.8.3.7"></a><h4>Parameters</h4>
+<a name="id-1.2.7.8.7.3.7"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -232,7 +226,7 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_fft_f64_inverse_fft (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstfftf64.html#GstFFTF64" title="GstFFTF64"><span class="type">GstFFTF64</span></a> *self</code></em>,
                          <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstfftf64.html#GstFFTF64Complex" title="struct GstFFTF64Complex"><span class="type">GstFFTF64Complex</span></a> *freqdata</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> *timedata</code></em>);</pre>
+                         <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *timedata</code></em>);</pre>
 <p>This performs the inverse FFT on <em class="parameter"><code>freqdata</code></em>
  and puts the result in <em class="parameter"><code>timedata</code></em>
 .</p>
@@ -245,7 +239,7 @@
  must be large enough to hold <em class="parameter"><code>len</code></em>
  time domain samples.</p>
 <div class="refsect3">
-<a name="id-1.2.7.8.8.4.7"></a><h4>Parameters</h4>
+<a name="id-1.2.7.8.7.4.7"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -277,13 +271,13 @@
 <a name="gst-fft-f64-window"></a><h3>gst_fft_f64_window ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_fft_f64_window (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstfftf64.html#GstFFTF64" title="GstFFTF64"><span class="type">GstFFTF64</span></a> *self</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> *timedata</code></em>,
+                    <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *timedata</code></em>,
                     <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstfft.html#GstFFTWindow" title="enum GstFFTWindow"><span class="type">GstFFTWindow</span></a> window</code></em>);</pre>
 <p>This calls the window function <em class="parameter"><code>window</code></em>
  on the <em class="parameter"><code>timedata</code></em>
  sample buffer.</p>
 <div class="refsect3">
-<a name="id-1.2.7.8.8.5.5"></a><h4>Parameters</h4>
+<a name="id-1.2.7.8.7.5.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -318,7 +312,7 @@
 <p>This frees the memory allocated for <em class="parameter"><code>self</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.7.8.8.6.5"></a><h4>Parameters</h4>
+<a name="id-1.2.7.8.7.6.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -351,7 +345,7 @@
 <p>Data type for complex numbers composed of
 64 bit float.</p>
 <div class="refsect3">
-<a name="id-1.2.7.8.9.3.5"></a><h4>Members</h4>
+<a name="id-1.2.7.8.8.3.5"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
@@ -360,12 +354,12 @@
 </colgroup>
 <tbody>
 <tr>
-<td class="struct_member_name"><p><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="GstFFTF64Complex.r"></a>r</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="GstFFTF64Complex.r"></a>r</code></em>;</p></td>
 <td class="struct_member_description"><p>Real part</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="GstFFTF64Complex.i"></a>i</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="GstFFTF64Complex.i"></a>i</code></em>;</p></td>
 <td class="struct_member_description"><p>Imaginary part</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
@@ -377,6 +371,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstffts16.html b/docs/libs/html/gst-plugins-base-libs-gstffts16.html
index 8dbfd14..d49e5af 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstffts16.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstffts16.html
@@ -8,15 +8,14 @@
 <link rel="up" href="gstreamer-ffft.html" title="FFT Library">
 <link rel="prev" href="gst-plugins-base-libs-gstfft.html" title="gstfft">
 <link rel="next" href="gst-plugins-base-libs-gstffts32.html" title="gstffts32">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstffts16.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstffts16.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gstffts16.description" class="shortcut">Description</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="gstreamer-ffft.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -103,11 +102,6 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="gst-plugins-base-libs-gstffts16.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">
-</pre>
-</div>
-<div class="refsect1">
 <a name="gst-plugins-base-libs-gstffts16.includes"></a><h2>Includes</h2>
 <pre class="synopsis">#include &lt;gst/fft/gstffts16.h&gt;
 </pre>
@@ -144,8 +138,8 @@
 <div class="refsect2">
 <a name="gst-fft-s16-new"></a><h3>gst_fft_s16_new ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstffts16.html#GstFFTS16" title="GstFFTS16"><span class="returnvalue">GstFFTS16</span></a> *
-gst_fft_s16_new (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> len</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> inverse</code></em>);</pre>
+gst_fft_s16_new (<em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> len</code></em>,
+                 <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> inverse</code></em>);</pre>
 <p>This returns a new <a class="link" href="gst-plugins-base-libs-gstffts16.html#GstFFTS16" title="GstFFTS16"><span class="type">GstFFTS16</span></a> instance with the given parameters. It makes
 sense to keep one instance for several calls for speed reasons.</p>
 <p><em class="parameter"><code>len</code></em>
@@ -153,7 +147,7 @@
 2, 3 and 5. To get the next number with this characteristics use
 <a class="link" href="gst-plugins-base-libs-gstfft.html#gst-fft-next-fast-length" title="gst_fft_next_fast_length ()"><code class="function">gst_fft_next_fast_length()</code></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.7.5.8.2.6"></a><h4>Parameters</h4>
+<a name="id-1.2.7.5.7.2.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -168,14 +162,14 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>inverse</p></td>
-<td class="parameter_description"><p><a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the <a class="link" href="gst-plugins-base-libs-gstffts16.html#GstFFTS16" title="GstFFTS16"><span class="type">GstFFTS16</span></a> instance should be used for the inverse FFT</p></td>
+<td class="parameter_description"><p><a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the <a class="link" href="gst-plugins-base-libs-gstffts16.html#GstFFTS16" title="GstFFTS16"><span class="type">GstFFTS16</span></a> instance should be used for the inverse FFT</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.7.5.8.2.7"></a><h4>Returns</h4>
+<a name="id-1.2.7.5.7.2.7"></a><h4>Returns</h4>
 <p> a new <a class="link" href="gst-plugins-base-libs-gstffts16.html#GstFFTS16" title="GstFFTS16"><span class="type">GstFFTS16</span></a> instance.</p>
 <p></p>
 </div>
@@ -199,7 +193,7 @@
 /2 + 1 <a class="link" href="gst-plugins-base-libs-gstffts16.html#GstFFTS16Complex" title="struct GstFFTS16Complex"><span class="type">GstFFTS16Complex</span></a> frequency
 domain samples.</p>
 <div class="refsect3">
-<a name="id-1.2.7.5.8.3.7"></a><h4>Parameters</h4>
+<a name="id-1.2.7.5.7.3.7"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -245,7 +239,7 @@
  must be large enough to hold <em class="parameter"><code>len</code></em>
  time domain samples.</p>
 <div class="refsect3">
-<a name="id-1.2.7.5.8.4.7"></a><h4>Parameters</h4>
+<a name="id-1.2.7.5.7.4.7"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -283,7 +277,7 @@
  on the <em class="parameter"><code>timedata</code></em>
  sample buffer.</p>
 <div class="refsect3">
-<a name="id-1.2.7.5.8.5.5"></a><h4>Parameters</h4>
+<a name="id-1.2.7.5.7.5.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -318,7 +312,7 @@
 <p>This frees the memory allocated for <em class="parameter"><code>self</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.7.5.8.6.5"></a><h4>Parameters</h4>
+<a name="id-1.2.7.5.7.6.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -351,7 +345,7 @@
 <p>Data type for complex numbers composed of
 signed 16 bit integers.</p>
 <div class="refsect3">
-<a name="id-1.2.7.5.9.3.5"></a><h4>Members</h4>
+<a name="id-1.2.7.5.8.3.5"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
@@ -377,6 +371,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstffts32.html b/docs/libs/html/gst-plugins-base-libs-gstffts32.html
index b24dca1..897818b 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstffts32.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstffts32.html
@@ -8,15 +8,14 @@
 <link rel="up" href="gstreamer-ffft.html" title="FFT Library">
 <link rel="prev" href="gst-plugins-base-libs-gstffts16.html" title="gstffts16">
 <link rel="next" href="gst-plugins-base-libs-gstfftf32.html" title="gstfftf32">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstffts32.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstffts32.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gstffts32.description" class="shortcut">Description</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="gstreamer-ffft.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -103,11 +102,6 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="gst-plugins-base-libs-gstffts32.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">
-</pre>
-</div>
-<div class="refsect1">
 <a name="gst-plugins-base-libs-gstffts32.includes"></a><h2>Includes</h2>
 <pre class="synopsis">#include &lt;gst/fft/gstffts32.h&gt;
 </pre>
@@ -144,8 +138,8 @@
 <div class="refsect2">
 <a name="gst-fft-s32-new"></a><h3>gst_fft_s32_new ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstffts32.html#GstFFTS32" title="GstFFTS32"><span class="returnvalue">GstFFTS32</span></a> *
-gst_fft_s32_new (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> len</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> inverse</code></em>);</pre>
+gst_fft_s32_new (<em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> len</code></em>,
+                 <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> inverse</code></em>);</pre>
 <p>This returns a new <a class="link" href="gst-plugins-base-libs-gstffts32.html#GstFFTS32" title="GstFFTS32"><span class="type">GstFFTS32</span></a> instance with the given parameters. It makes
 sense to keep one instance for several calls for speed reasons.</p>
 <p><em class="parameter"><code>len</code></em>
@@ -153,7 +147,7 @@
 2, 3 and 5. To get the next number with this characteristics use
 <a class="link" href="gst-plugins-base-libs-gstfft.html#gst-fft-next-fast-length" title="gst_fft_next_fast_length ()"><code class="function">gst_fft_next_fast_length()</code></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.7.6.8.2.6"></a><h4>Parameters</h4>
+<a name="id-1.2.7.6.7.2.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -168,14 +162,14 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>inverse</p></td>
-<td class="parameter_description"><p><a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the <a class="link" href="gst-plugins-base-libs-gstffts32.html#GstFFTS32" title="GstFFTS32"><span class="type">GstFFTS32</span></a> instance should be used for the inverse FFT</p></td>
+<td class="parameter_description"><p><a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the <a class="link" href="gst-plugins-base-libs-gstffts32.html#GstFFTS32" title="GstFFTS32"><span class="type">GstFFTS32</span></a> instance should be used for the inverse FFT</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.7.6.8.2.7"></a><h4>Returns</h4>
+<a name="id-1.2.7.6.7.2.7"></a><h4>Returns</h4>
 <p> a new <a class="link" href="gst-plugins-base-libs-gstffts32.html#GstFFTS32" title="GstFFTS32"><span class="type">GstFFTS32</span></a> instance.</p>
 <p></p>
 </div>
@@ -199,7 +193,7 @@
 /2 + 1 <a class="link" href="gst-plugins-base-libs-gstffts32.html#GstFFTS32Complex" title="struct GstFFTS32Complex"><span class="type">GstFFTS32Complex</span></a> frequency
 domain samples.</p>
 <div class="refsect3">
-<a name="id-1.2.7.6.8.3.7"></a><h4>Parameters</h4>
+<a name="id-1.2.7.6.7.3.7"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -245,7 +239,7 @@
  must be large enough to hold <em class="parameter"><code>len</code></em>
  time domain samples.</p>
 <div class="refsect3">
-<a name="id-1.2.7.6.8.4.7"></a><h4>Parameters</h4>
+<a name="id-1.2.7.6.7.4.7"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -283,7 +277,7 @@
  on the <em class="parameter"><code>timedata</code></em>
  sample buffer.</p>
 <div class="refsect3">
-<a name="id-1.2.7.6.8.5.5"></a><h4>Parameters</h4>
+<a name="id-1.2.7.6.7.5.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -318,7 +312,7 @@
 <p>This frees the memory allocated for <em class="parameter"><code>self</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.7.6.8.6.5"></a><h4>Parameters</h4>
+<a name="id-1.2.7.6.7.6.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -351,7 +345,7 @@
 <p>Data type for complex numbers composed of
 signed 32 bit integers.</p>
 <div class="refsect3">
-<a name="id-1.2.7.6.9.3.5"></a><h4>Members</h4>
+<a name="id-1.2.7.6.8.3.5"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
@@ -377,6 +371,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstmikey.html b/docs/libs/html/gst-plugins-base-libs-gstmikey.html
index 774851f..acd9cb6 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstmikey.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstmikey.html
@@ -8,15 +8,14 @@
 <link rel="up" href="gstreamer-mikey.html" title="MIKEY Library">
 <link rel="prev" href="gstreamer-mikey.html" title="MIKEY Library">
 <link rel="next" href="gstreamer-tag.html" title="Tag Support Library">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstmikey.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstmikey.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gstmikey.description" class="shortcut">Description</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="gstreamer-mikey.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -66,15 +65,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<span class="returnvalue">void</span>
-</td>
-<td class="function_name">
-<a class="link" href="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-free" title="gst_mikey_message_free ()">gst_mikey_message_free</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Byte-Arrays.html#GBytes"><span class="returnvalue">GBytes</span></a> *
+<a href="https://developer.gnome.org/glib/unstable/glib-Byte-Arrays.html#GBytes"><span class="returnvalue">GBytes</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-to-bytes" title="gst_mikey_message_to_bytes ()">gst_mikey_message_to_bytes</a> <span class="c_punctuation">()</span>
@@ -82,7 +73,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-set-info" title="gst_mikey_message_set_info ()">gst_mikey_message_set_info</a> <span class="c_punctuation">()</span>
@@ -90,7 +81,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-get-n-cs" title="gst_mikey_message_get_n_cs ()">gst_mikey_message_get_n_cs</a> <span class="c_punctuation">()</span>
@@ -105,7 +96,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-insert-cs-srtp" title="gst_mikey_message_insert_cs_srtp ()">gst_mikey_message_insert_cs_srtp</a> <span class="c_punctuation">()</span>
@@ -113,7 +104,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-remove-cs-srtp" title="gst_mikey_message_remove_cs_srtp ()">gst_mikey_message_remove_cs_srtp</a> <span class="c_punctuation">()</span>
@@ -121,7 +112,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-replace-cs-srtp" title="gst_mikey_message_replace_cs_srtp ()">gst_mikey_message_replace_cs_srtp</a> <span class="c_punctuation">()</span>
@@ -129,7 +120,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-add-cs-srtp" title="gst_mikey_message_add_cs_srtp ()">gst_mikey_message_add_cs_srtp</a> <span class="c_punctuation">()</span>
@@ -137,7 +128,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-get-n-payloads" title="gst_mikey_message_get_n_payloads ()">gst_mikey_message_get_n_payloads</a> <span class="c_punctuation">()</span>
@@ -159,7 +150,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-insert-payload" title="gst_mikey_message_insert_payload ()">gst_mikey_message_insert_payload</a> <span class="c_punctuation">()</span>
@@ -167,7 +158,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-remove-payload" title="gst_mikey_message_remove_payload ()">gst_mikey_message_remove_payload</a> <span class="c_punctuation">()</span>
@@ -175,7 +166,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-replace-payload" title="gst_mikey_message_replace_payload ()">gst_mikey_message_replace_payload</a> <span class="c_punctuation">()</span>
@@ -183,7 +174,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-add-payload" title="gst_mikey_message_add_payload ()">gst_mikey_message_add_payload</a> <span class="c_punctuation">()</span>
@@ -191,22 +182,6 @@
 </tr>
 <tr>
 <td class="function_type">
-<span class="returnvalue">void</span>
-</td>
-<td class="function_name">
-<span class="c_punctuation">(</span><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayloadClearFunc" title="GstMIKEYPayloadClearFunc ()">*GstMIKEYPayloadClearFunc</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="returnvalue">GstMIKEYPayload</span></a> *
-</td>
-<td class="function_name">
-<span class="c_punctuation">(</span><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayloadCopyFunc" title="GstMIKEYPayloadCopyFunc ()">*GstMIKEYPayloadCopyFunc</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
 <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="returnvalue">GstMIKEYPayload</span></a> *
 </td>
 <td class="function_name">
@@ -223,15 +198,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
-</td>
-<td class="function_name">
-<a class="link" href="gst-plugins-base-libs-gstmikey.html#gst-mikey-payload-free" title="gst_mikey_payload_free ()">gst_mikey_payload_free</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstmikey.html#gst-mikey-payload-kemac-set" title="gst_mikey_payload_kemac_set ()">gst_mikey_payload_kemac_set</a> <span class="c_punctuation">()</span>
@@ -239,7 +206,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstmikey.html#gst-mikey-payload-pke-set" title="gst_mikey_payload_pke_set ()">gst_mikey_payload_pke_set</a> <span class="c_punctuation">()</span>
@@ -247,7 +214,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-add-pke" title="gst_mikey_message_add_pke ()">gst_mikey_message_add_pke</a> <span class="c_punctuation">()</span>
@@ -255,7 +222,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstmikey.html#gst-mikey-payload-t-set" title="gst_mikey_payload_t_set ()">gst_mikey_payload_t_set</a> <span class="c_punctuation">()</span>
@@ -263,7 +230,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-add-t" title="gst_mikey_message_add_t ()">gst_mikey_message_add_t</a> <span class="c_punctuation">()</span>
@@ -271,7 +238,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-add-t-now-ntp-utc" title="gst_mikey_message_add_t_now_ntp_utc ()">gst_mikey_message_add_t_now_ntp_utc</a> <span class="c_punctuation">()</span>
@@ -279,7 +246,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstmikey.html#gst-mikey-payload-rand-set" title="gst_mikey_payload_rand_set ()">gst_mikey_payload_rand_set</a> <span class="c_punctuation">()</span>
@@ -287,7 +254,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-add-rand" title="gst_mikey_message_add_rand ()">gst_mikey_message_add_rand</a> <span class="c_punctuation">()</span>
@@ -295,7 +262,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-add-rand-len" title="gst_mikey_message_add_rand_len ()">gst_mikey_message_add_rand_len</a> <span class="c_punctuation">()</span>
@@ -303,7 +270,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstmikey.html#gst-mikey-payload-sp-set" title="gst_mikey_payload_sp_set ()">gst_mikey_payload_sp_set</a> <span class="c_punctuation">()</span>
@@ -311,7 +278,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstmikey.html#gst-mikey-payload-sp-get-n-params" title="gst_mikey_payload_sp_get_n_params ()">gst_mikey_payload_sp_get_n_params</a> <span class="c_punctuation">()</span>
@@ -326,7 +293,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstmikey.html#gst-mikey-payload-sp-add-param" title="gst_mikey_payload_sp_add_param ()">gst_mikey_payload_sp_add_param</a> <span class="c_punctuation">()</span>
@@ -334,7 +301,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstmikey.html#gst-mikey-payload-sp-remove-param" title="gst_mikey_payload_sp_remove_param ()">gst_mikey_payload_sp_remove_param</a> <span class="c_punctuation">()</span>
@@ -435,11 +402,6 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="gst-plugins-base-libs-gstmikey.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">
-</pre>
-</div>
-<div class="refsect1">
 <a name="gst-plugins-base-libs-gstmikey.includes"></a><h2>Includes</h2>
 <pre class="synopsis">#include &lt;gst/sdp/gstmikey.h&gt;
 </pre>
@@ -447,7 +409,7 @@
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstmikey.description"></a><h2>Description</h2>
 <div class="refsect2">
-<a name="id-1.2.12.3.7.2"></a><p>
+<a name="id-1.2.12.3.6.2"></a><p>
 The GstMIKEY helper functions makes it easy to parse and create MIKEY
 messages.
 </p>
@@ -461,22 +423,23 @@
 gst_mikey_message_new (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
 <p>Make a new MIKEY message.</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.8.2.5"></a><h4>Returns</h4>
+<a name="id-1.2.12.3.7.2.5"></a><h4>Returns</h4>
 <p> a new <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a> on success</p>
 <p></p>
 </div>
+<p class="since">Since 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-mikey-message-new-from-bytes"></a><h3>gst_mikey_message_new_from_bytes ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="returnvalue">GstMIKEYMessage</span></a> *
-gst_mikey_message_new_from_bytes (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Byte-Arrays.html#GBytes"><span class="type">GBytes</span></a> *bytes</code></em>,
+gst_mikey_message_new_from_bytes (<em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Byte-Arrays.html#GBytes"><span class="type">GBytes</span></a> *bytes</code></em>,
                                   <em class="parameter"><code><span class="type">GstMIKEYDecryptInfo</span> *info</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>
+                                  <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
 <p>Make a new <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a> from <em class="parameter"><code>bytes</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.8.3.5"></a><h4>Parameters</h4>
+<a name="id-1.2.12.3.7.3.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -486,7 +449,7 @@
 <tbody>
 <tr>
 <td class="parameter_name"><p>bytes</p></td>
-<td class="parameter_description"><p>a <a href="http://library.gnome.org/devel/glib/unstable/glib-Byte-Arrays.html#GBytes"><span class="type">GBytes</span></a></p></td>
+<td class="parameter_description"><p>a <a href="https://developer.gnome.org/glib/unstable/glib-Byte-Arrays.html#GBytes"><span class="type">GBytes</span></a></p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
@@ -496,33 +459,34 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>error</p></td>
-<td class="parameter_description"><p>a <a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a></p></td>
+<td class="parameter_description"><p>a <a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a></p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.12.3.8.3.6"></a><h4>Returns</h4>
+<a name="id-1.2.12.3.7.3.6"></a><h4>Returns</h4>
 <p> a new <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a></p>
 <p></p>
 </div>
+<p class="since">Since 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-mikey-message-new-from-data"></a><h3>gst_mikey_message_new_from_data ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="returnvalue">GstMIKEYMessage</span></a> *
-gst_mikey_message_new_from_data (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gconstpointer"><span class="type">gconstpointer</span></a> data</code></em>,
+gst_mikey_message_new_from_data (<em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gconstpointer"><span class="type">gconstpointer</span></a> data</code></em>,
                                  <em class="parameter"><code><span class="type">gsize</span> size</code></em>,
                                  <em class="parameter"><code><span class="type">GstMIKEYDecryptInfo</span> *info</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>
+                                 <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
 <p>Parse <em class="parameter"><code>size</code></em>
  bytes from <em class="parameter"><code>data</code></em>
  into a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a>. <em class="parameter"><code>info</code></em>
  contains the
 parameters to decrypt and verify the data.</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.8.4.5"></a><h4>Parameters</h4>
+<a name="id-1.2.12.3.7.4.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -532,8 +496,8 @@
 <tbody>
 <tr>
 <td class="parameter_name"><p>data</p></td>
-<td class="parameter_description"><p>bytes to read</p></td>
-<td class="parameter_annotations"> </td>
+<td class="parameter_description"><p> bytes to read. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<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>
 <td class="parameter_name"><p>size</p></td>
@@ -548,54 +512,32 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>error</p></td>
-<td class="parameter_description"><p>a <a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a></p></td>
+<td class="parameter_description"><p>a <a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a></p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.12.3.8.4.6"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a> on success or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> when parsing failed and
+<a name="id-1.2.12.3.7.4.6"></a><h4>Returns</h4>
+<p> a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a> on success or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> when parsing failed and
 <em class="parameter"><code>error</code></em>
 will be set.</p>
 <p></p>
 </div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-mikey-message-free"></a><h3>gst_mikey_message_free ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>
-gst_mikey_message_free (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a> *msg</code></em>);</pre>
-<p>Free all resources allocated in <em class="parameter"><code>msg</code></em>
-.</p>
-<div class="refsect3">
-<a name="id-1.2.12.3.8.5.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody><tr>
-<td class="parameter_name"><p>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
+<p class="since">Since 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-mikey-message-to-bytes"></a><h3>gst_mikey_message_to_bytes ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Byte-Arrays.html#GBytes"><span class="returnvalue">GBytes</span></a> *
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Byte-Arrays.html#GBytes"><span class="returnvalue">GBytes</span></a> *
 gst_mikey_message_to_bytes (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a> *msg</code></em>,
                             <em class="parameter"><code><span class="type">GstMIKEYEncryptInfo</span> *info</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>
+                            <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
 <p>Convert <em class="parameter"><code>msg</code></em>
- to a <a href="http://library.gnome.org/devel/glib/unstable/glib-Byte-Arrays.html#GBytes"><span class="type">GBytes</span></a>.</p>
+ to a <a href="https://developer.gnome.org/glib/unstable/glib-Byte-Arrays.html#GBytes"><span class="type">GBytes</span></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.8.6.5"></a><h4>Parameters</h4>
+<a name="id-1.2.12.3.7.5.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -615,34 +557,35 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>error</p></td>
-<td class="parameter_description"><p>a <a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a></p></td>
+<td class="parameter_description"><p>a <a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a></p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.12.3.8.6.6"></a><h4>Returns</h4>
-<p> a new <a href="http://library.gnome.org/devel/glib/unstable/glib-Byte-Arrays.html#GBytes"><span class="type">GBytes</span></a> for <em class="parameter"><code>msg</code></em>
+<a name="id-1.2.12.3.7.5.6"></a><h4>Returns</h4>
+<p> a new <a href="https://developer.gnome.org/glib/unstable/glib-Byte-Arrays.html#GBytes"><span class="type">GBytes</span></a> for <em class="parameter"><code>msg</code></em>
 .</p>
 <p></p>
 </div>
+<p class="since">Since 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-mikey-message-set-info"></a><h3>gst_mikey_message_set_info ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_mikey_message_set_info (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a> *msg</code></em>,
                             <em class="parameter"><code><span class="type">guint8</span> version</code></em>,
                             <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYType" title="enum GstMIKEYType"><span class="type">GstMIKEYType</span></a> type</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> V</code></em>,
+                            <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> V</code></em>,
                             <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPRFFunc" title="enum GstMIKEYPRFFunc"><span class="type">GstMIKEYPRFFunc</span></a> prf_func</code></em>,
                             <em class="parameter"><code><span class="type">guint32</span> CSB_id</code></em>,
                             <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMapType" title="enum GstMIKEYMapType"><span class="type">GstMIKEYMapType</span></a> map_type</code></em>);</pre>
 <p>Set the information in <em class="parameter"><code>msg</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.8.7.5"></a><h4>Parameters</h4>
+<a name="id-1.2.12.3.7.6.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -689,20 +632,21 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.12.3.8.7.6"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
+<a name="id-1.2.12.3.7.6.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
 <p></p>
 </div>
+<p class="since">Since 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-mikey-message-get-n-cs"></a><h3>gst_mikey_message_get_n_cs ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_mikey_message_get_n_cs (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a> *msg</code></em>);</pre>
 <p>Get the number of crypto sessions in <em class="parameter"><code>msg</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.8.8.5"></a><h4>Parameters</h4>
+<a name="id-1.2.12.3.7.7.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -717,22 +661,23 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.12.3.8.8.6"></a><h4>Returns</h4>
+<a name="id-1.2.12.3.7.7.6"></a><h4>Returns</h4>
 <p> the number of crypto sessions</p>
 <p></p>
 </div>
+<p class="since">Since 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-mikey-message-get-cs-srtp"></a><h3>gst_mikey_message_get_cs_srtp ()</h3>
 <pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMapSRTP" title="GstMIKEYMapSRTP"><span class="returnvalue">GstMIKEYMapSRTP</span></a> *
 gst_mikey_message_get_cs_srtp (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a> *msg</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>
+                               <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
 <p>Get the policy information of <em class="parameter"><code>msg</code></em>
  at <em class="parameter"><code>idx</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.8.9.5"></a><h4>Parameters</h4>
+<a name="id-1.2.12.3.7.8.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -754,17 +699,18 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.12.3.8.9.6"></a><h4>Returns</h4>
+<a name="id-1.2.12.3.7.8.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMapSRTP" title="GstMIKEYMapSRTP"><span class="type">GstMIKEYMapSRTP</span></a></p>
 <p></p>
 </div>
+<p class="since">Since 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-mikey-message-insert-cs-srtp"></a><h3>gst_mikey_message_insert_cs_srtp ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_mikey_message_insert_cs_srtp (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a> *msg</code></em>,
-                                  <em class="parameter"><code><a href="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 href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> idx</code></em>,
                                   <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMapSRTP" title="GstMIKEYMapSRTP"><span class="type">GstMIKEYMapSRTP</span></a> *map</code></em>);</pre>
 <p>Insert a Crypto Session map for SRTP in <em class="parameter"><code>msg</code></em>
  at <em class="parameter"><code>idx</code></em>
@@ -772,7 +718,7 @@
 <p>When <em class="parameter"><code>idx</code></em>
  is -1, the policy will be appended.</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.8.10.6"></a><h4>Parameters</h4>
+<a name="id-1.2.12.3.7.9.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -799,21 +745,22 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.12.3.8.10.7"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
+<a name="id-1.2.12.3.7.9.7"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
 <p></p>
 </div>
+<p class="since">Since 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-mikey-message-remove-cs-srtp"></a><h3>gst_mikey_message_remove_cs_srtp ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_mikey_message_remove_cs_srtp (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a> *msg</code></em>,
-                                  <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> idx</code></em>);</pre>
+                                  <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> idx</code></em>);</pre>
 <p>Remove the SRTP policy at <em class="parameter"><code>idx</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.8.11.5"></a><h4>Parameters</h4>
+<a name="id-1.2.12.3.7.10.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -835,24 +782,25 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.12.3.8.11.6"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
+<a name="id-1.2.12.3.7.10.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
 <p></p>
 </div>
+<p class="since">Since 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-mikey-message-replace-cs-srtp"></a><h3>gst_mikey_message_replace_cs_srtp ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_mikey_message_replace_cs_srtp (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a> *msg</code></em>,
-                                   <em class="parameter"><code><a href="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 href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> idx</code></em>,
                                    <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMapSRTP" title="GstMIKEYMapSRTP"><span class="type">GstMIKEYMapSRTP</span></a> *map</code></em>);</pre>
 <p>Replace a Crypto Session map for SRTP in <em class="parameter"><code>msg</code></em>
  at <em class="parameter"><code>idx</code></em>
  with <em class="parameter"><code>map</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.8.12.5"></a><h4>Parameters</h4>
+<a name="id-1.2.12.3.7.11.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -879,15 +827,16 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.12.3.8.12.6"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
+<a name="id-1.2.12.3.7.11.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
 <p></p>
 </div>
+<p class="since">Since 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-mikey-message-add-cs-srtp"></a><h3>gst_mikey_message_add_cs_srtp ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_mikey_message_add_cs_srtp (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a> *msg</code></em>,
                                <em class="parameter"><code><span class="type">guint8</span> policy</code></em>,
                                <em class="parameter"><code><span class="type">guint32</span> ssrc</code></em>,
@@ -895,7 +844,7 @@
 <p>Add a Crypto policy for SRTP to <em class="parameter"><code>msg</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.8.13.5"></a><h4>Parameters</h4>
+<a name="id-1.2.12.3.7.12.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -928,20 +877,21 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.12.3.8.13.6"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
+<a name="id-1.2.12.3.7.12.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
 <p></p>
 </div>
+<p class="since">Since 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-mikey-message-get-n-payloads"></a><h3>gst_mikey_message_get_n_payloads ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_mikey_message_get_n_payloads (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a> *msg</code></em>);</pre>
 <p>Get the number of payloads in <em class="parameter"><code>msg</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.8.14.5"></a><h4>Parameters</h4>
+<a name="id-1.2.12.3.7.13.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -956,23 +906,24 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.12.3.8.14.6"></a><h4>Returns</h4>
+<a name="id-1.2.12.3.7.13.6"></a><h4>Returns</h4>
 <p> the number of payloads in <em class="parameter"><code>msg</code></em>
 </p>
 <p></p>
 </div>
+<p class="since">Since 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-mikey-message-get-payload"></a><h3>gst_mikey_message_get_payload ()</h3>
 <pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="returnvalue">GstMIKEYPayload</span></a> *
 gst_mikey_message_get_payload (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a> *msg</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>
+                               <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
 <p>Get the <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a> at <em class="parameter"><code>idx</code></em>
  in <em class="parameter"><code>msg</code></em>
 </p>
 <div class="refsect3">
-<a name="id-1.2.12.3.8.15.5"></a><h4>Parameters</h4>
+<a name="id-1.2.12.3.7.14.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -994,11 +945,14 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.12.3.8.15.6"></a><h4>Returns</h4>
+<a name="id-1.2.12.3.7.14.6"></a><h4>Returns</h4>
 <p> the <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a> at <em class="parameter"><code>idx</code></em>
-</p>
-<p></p>
+. The payload
+remains valid for as long as it is part of <em class="parameter"><code>msg</code></em>
+. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
 </div>
+<p class="since">Since 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1006,13 +960,13 @@
 <pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="returnvalue">GstMIKEYPayload</span></a> *
 gst_mikey_message_find_payload (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a> *msg</code></em>,
                                 <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayloadType" title="enum GstMIKEYPayloadType"><span class="type">GstMIKEYPayloadType</span></a> type</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> nth</code></em>);</pre>
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nth</code></em>);</pre>
 <p>Find the <em class="parameter"><code>nth</code></em>
  occurence of the payload with <em class="parameter"><code>type</code></em>
  in <em class="parameter"><code>msg</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.8.16.5"></a><h4>Parameters</h4>
+<a name="id-1.2.12.3.7.15.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1039,19 +993,20 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.12.3.8.16.6"></a><h4>Returns</h4>
+<a name="id-1.2.12.3.7.15.6"></a><h4>Returns</h4>
 <p> the <em class="parameter"><code>nth</code></em>
 <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a> of <em class="parameter"><code>type</code></em>
 .</p>
 <p></p>
 </div>
+<p class="since">Since 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-mikey-message-insert-payload"></a><h3>gst_mikey_message_insert_payload ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_mikey_message_insert_payload (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a> *msg</code></em>,
-                                  <em class="parameter"><code><a href="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="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>,
                                   <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a> *payload</code></em>);</pre>
 <p>Insert the <em class="parameter"><code>payload</code></em>
  at index <em class="parameter"><code>idx</code></em>
@@ -1061,7 +1016,7 @@
 will be appended to <em class="parameter"><code>msg</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.8.17.5"></a><h4>Parameters</h4>
+<a name="id-1.2.12.3.7.16.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1081,29 +1036,30 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>payload</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a></p></td>
-<td class="parameter_annotations"> </td>
+<td class="parameter_description"><p> a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a>. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
 </tr>
 </tbody>
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.12.3.8.17.6"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
+<a name="id-1.2.12.3.7.16.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
 <p></p>
 </div>
+<p class="since">Since 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-mikey-message-remove-payload"></a><h3>gst_mikey_message_remove_payload ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_mikey_message_remove_payload (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a> *msg</code></em>,
-                                  <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
+                                  <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
 <p>Remove the payload in <em class="parameter"><code>msg</code></em>
  at <em class="parameter"><code>idx</code></em>
 </p>
 <div class="refsect3">
-<a name="id-1.2.12.3.8.18.5"></a><h4>Parameters</h4>
+<a name="id-1.2.12.3.7.17.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1125,24 +1081,25 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.12.3.8.18.6"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
+<a name="id-1.2.12.3.7.17.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
 <p></p>
 </div>
+<p class="since">Since 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-mikey-message-replace-payload"></a><h3>gst_mikey_message_replace_payload ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_mikey_message_replace_payload (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a> *msg</code></em>,
-                                   <em class="parameter"><code><a href="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="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>,
                                    <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a> *payload</code></em>);</pre>
 <p>Replace the payload at <em class="parameter"><code>idx</code></em>
  in <em class="parameter"><code>msg</code></em>
  with <em class="parameter"><code>payload</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.8.19.5"></a><h4>Parameters</h4>
+<a name="id-1.2.12.3.7.18.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1162,28 +1119,29 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>payload</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a></p></td>
-<td class="parameter_annotations"> </td>
+<td class="parameter_description"><p> a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a>. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
 </tr>
 </tbody>
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.12.3.8.19.6"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
+<a name="id-1.2.12.3.7.18.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
 <p></p>
 </div>
+<p class="since">Since 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-mikey-message-add-payload"></a><h3>gst_mikey_message_add_payload ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_mikey_message_add_payload (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a> *msg</code></em>,
                                <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a> *payload</code></em>);</pre>
 <p>Add a new payload to <em class="parameter"><code>msg</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.8.20.5"></a><h4>Parameters</h4>
+<a name="id-1.2.12.3.7.19.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1198,61 +1156,18 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>payload</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a></p></td>
-<td class="parameter_annotations"> </td>
+<td class="parameter_description"><p> a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a>. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
 </tr>
 </tbody>
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.12.3.8.20.6"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
+<a name="id-1.2.12.3.7.19.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
 <p></p>
 </div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstMIKEYPayloadClearFunc"></a><h3>GstMIKEYPayloadClearFunc ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>
-<span class="c_punctuation">(</span>*GstMIKEYPayloadClearFunc<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a> *payload</code></em>);</pre>
-<p>Function used to clear a payload</p>
-<div class="refsect3">
-<a name="id-1.2.12.3.8.21.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody><tr>
-<td class="parameter_name"><p>payload</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstMIKEYPayloadCopyFunc"></a><h3>GstMIKEYPayloadCopyFunc ()</h3>
-<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="returnvalue">GstMIKEYPayload</span></a> *
-<span class="c_punctuation">(</span>*GstMIKEYPayloadCopyFunc<span class="c_punctuation">)</span> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a> *payload</code></em>);</pre>
-<p>Function used to copy a payload</p>
-<div class="refsect3">
-<a name="id-1.2.12.3.8.22.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody><tr>
-<td class="parameter_name"><p>payload</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
+<p class="since">Since 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1262,7 +1177,7 @@
 <p>Make a new <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a> with <em class="parameter"><code>type</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.8.23.5"></a><h4>Parameters</h4>
+<a name="id-1.2.12.3.7.20.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1277,20 +1192,20 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.12.3.8.23.6"></a><h4>Returns</h4>
-<p> a new <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> on failure.</p>
-<p></p>
+<a name="id-1.2.12.3.7.20.6"></a><h4>Returns</h4>
+<p> a new <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a> or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> on failure. </p>
+<p><span class="annotation">[<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></p>
 </div>
+<p class="since">Since 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-mikey-payload-copy"></a><h3>gst_mikey_payload_copy ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="returnvalue">GstMIKEYPayload</span></a> *
-gst_mikey_payload_copy (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a> *payload</code></em>);</pre>
-<p>Copy <em class="parameter"><code>payload</code></em>
-.</p>
+gst_mikey_payload_copy (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a> *buf</code></em>);</pre>
+<p>Create a copy of the given payload.</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.8.24.5"></a><h4>Parameters</h4>
+<a name="id-1.2.12.3.7.21.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1299,58 +1214,31 @@
 </colgroup>
 <tbody><tr>
 <td class="parameter_name"><p>payload</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a></p></td>
+<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a>.</p></td>
 <td class="parameter_annotations"> </td>
 </tr></tbody>
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.12.3.8.24.6"></a><h4>Returns</h4>
-<p> a new <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a> that is a copy of <em class="parameter"><code>payload</code></em>
-</p>
-<p></p>
+<a name="id-1.2.12.3.7.21.6"></a><h4>Returns</h4>
+<p> a new copy of <em class="parameter"><code>payload</code></em>
+. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-mikey-payload-free"></a><h3>gst_mikey_payload_free ()</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_mikey_payload_free (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a> *payload</code></em>);</pre>
-<p>Free <em class="parameter"><code>payload</code></em>
-</p>
-<div class="refsect3">
-<a name="id-1.2.12.3.8.25.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody><tr>
-<td class="parameter_name"><p>payload</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="id-1.2.12.3.8.25.6"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
-<p></p>
-</div>
+<p class="since">Since 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-mikey-payload-kemac-set"></a><h3>gst_mikey_payload_kemac_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>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_mikey_payload_kemac_set (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a> *payload</code></em>,
                              <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYEncAlg" title="enum GstMIKEYEncAlg"><span class="type">GstMIKEYEncAlg</span></a> enc_alg</code></em>,
                              <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMacAlg" title="enum GstMIKEYMacAlg"><span class="type">GstMIKEYMacAlg</span></a> mac_alg</code></em>);</pre>
 <p>Set the KEMAC parameters. <em class="parameter"><code>payload</code></em>
- should point to a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GST-MIKEY-PT-KEMAC:CAPS"><span class="type">GST_MIKEY_PT_KEMAC</span></a>
+ should point to a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GST-MIKEY-PT-KEMAC:CAPS"><code class="literal">GST_MIKEY_PT_KEMAC</code></a>
 payload.</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.8.26.5"></a><h4>Parameters</h4>
+<a name="id-1.2.12.3.7.22.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1377,15 +1265,16 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.12.3.8.26.6"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
+<a name="id-1.2.12.3.7.22.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
 <p></p>
 </div>
+<p class="since">Since 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-mikey-payload-pke-set"></a><h3>gst_mikey_payload_pke_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>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_mikey_payload_pke_set (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a> *payload</code></em>,
                            <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYCacheType" title="enum GstMIKEYCacheType"><span class="type">GstMIKEYCacheType</span></a> C</code></em>,
                            <em class="parameter"><code><span class="type">guint16</span> data_len</code></em>,
@@ -1393,9 +1282,9 @@
 <p>Set the PKE values in <em class="parameter"><code>payload</code></em>
 . <em class="parameter"><code>payload</code></em>
  must be of type
-<a class="link" href="gst-plugins-base-libs-gstmikey.html#GST-MIKEY-PT-PKE:CAPS"><span class="type">GST_MIKEY_PT_PKE</span></a>.</p>
+<a class="link" href="gst-plugins-base-libs-gstmikey.html#GST-MIKEY-PT-PKE:CAPS"><code class="literal">GST_MIKEY_PT_PKE</code></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.8.27.5"></a><h4>Parameters</h4>
+<a name="id-1.2.12.3.7.23.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1421,22 +1310,23 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>data</p></td>
-<td class="parameter_description"><p>the encrypted envelope key</p></td>
-<td class="parameter_annotations"> </td>
+<td class="parameter_description"><p> the encrypted envelope key. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=data_len]</span></td>
 </tr>
 </tbody>
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.12.3.8.27.6"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
+<a name="id-1.2.12.3.7.23.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
 <p></p>
 </div>
+<p class="since">Since 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-mikey-message-add-pke"></a><h3>gst_mikey_message_add_pke ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_mikey_message_add_pke (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a> *msg</code></em>,
                            <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYCacheType" title="enum GstMIKEYCacheType"><span class="type">GstMIKEYCacheType</span></a> C</code></em>,
                            <em class="parameter"><code><span class="type">guint16</span> data_len</code></em>,
@@ -1444,7 +1334,7 @@
 <p>Add a new PKE payload to <em class="parameter"><code>msg</code></em>
  with the given parameters.</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.8.28.5"></a><h4>Parameters</h4>
+<a name="id-1.2.12.3.7.24.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1470,29 +1360,30 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>data</p></td>
-<td class="parameter_description"><p>the encrypted envelope key</p></td>
-<td class="parameter_annotations"> </td>
+<td class="parameter_description"><p> the encrypted envelope key. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=data_len]</span></td>
 </tr>
 </tbody>
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.12.3.8.28.6"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
+<a name="id-1.2.12.3.7.24.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
 <p></p>
 </div>
+<p class="since">Since 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-mikey-payload-t-set"></a><h3>gst_mikey_payload_t_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>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_mikey_payload_t_set (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a> *payload</code></em>,
                          <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYTSType" title="enum GstMIKEYTSType"><span class="type">GstMIKEYTSType</span></a> type</code></em>,
                          <em class="parameter"><code>const <span class="type">guint8</span> *ts_value</code></em>);</pre>
-<p>Set the timestamp in a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GST-MIKEY-PT-T:CAPS"><span class="type">GST_MIKEY_PT_T</span></a> <em class="parameter"><code>payload</code></em>
+<p>Set the timestamp in a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GST-MIKEY-PT-T:CAPS"><code class="literal">GST_MIKEY_PT_T</code></a> <em class="parameter"><code>payload</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.8.29.5"></a><h4>Parameters</h4>
+<a name="id-1.2.12.3.7.25.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1512,29 +1403,30 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>ts_value</p></td>
-<td class="parameter_description"><p>the timestamp value</p></td>
-<td class="parameter_annotations"> </td>
+<td class="parameter_description"><p> the timestamp value. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym>]</span></td>
 </tr>
 </tbody>
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.12.3.8.29.6"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
+<a name="id-1.2.12.3.7.25.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
 <p></p>
 </div>
+<p class="since">Since 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-mikey-message-add-t"></a><h3>gst_mikey_message_add_t ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_mikey_message_add_t (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a> *msg</code></em>,
                          <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYTSType" title="enum GstMIKEYTSType"><span class="type">GstMIKEYTSType</span></a> type</code></em>,
                          <em class="parameter"><code>const <span class="type">guint8</span> *ts_value</code></em>);</pre>
 <p>Add a new T payload to <em class="parameter"><code>msg</code></em>
  with the given parameters.</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.8.30.5"></a><h4>Parameters</h4>
+<a name="id-1.2.12.3.7.26.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1554,29 +1446,30 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>ts_value</p></td>
-<td class="parameter_description"><p>The timestamp value of the specified <em class="parameter"><code>type</code></em>
-</p></td>
-<td class="parameter_annotations"> </td>
+<td class="parameter_description"><p> The timestamp value of the specified <em class="parameter"><code>type</code></em>
+. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym>]</span></td>
 </tr>
 </tbody>
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.12.3.8.30.6"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
+<a name="id-1.2.12.3.7.26.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
 <p></p>
 </div>
+<p class="since">Since 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-mikey-message-add-t-now-ntp-utc"></a><h3>gst_mikey_message_add_t_now_ntp_utc ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_mikey_message_add_t_now_ntp_utc (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a> *msg</code></em>);</pre>
 <p>Add a new T payload to <em class="parameter"><code>msg</code></em>
  that contains the current time
 in NTP-UTC format.</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.8.31.5"></a><h4>Parameters</h4>
+<a name="id-1.2.12.3.7.27.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1591,22 +1484,23 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.12.3.8.31.6"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
+<a name="id-1.2.12.3.7.27.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
 <p></p>
 </div>
+<p class="since">Since 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-mikey-payload-rand-set"></a><h3>gst_mikey_payload_rand_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>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_mikey_payload_rand_set (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a> *payload</code></em>,
                             <em class="parameter"><code><span class="type">guint8</span> len</code></em>,
                             <em class="parameter"><code>const <span class="type">guint8</span> *rand</code></em>);</pre>
-<p>Set the random values in a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GST-MIKEY-PT-RAND:CAPS"><span class="type">GST_MIKEY_PT_RAND</span></a> <em class="parameter"><code>payload</code></em>
+<p>Set the random values in a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GST-MIKEY-PT-RAND:CAPS"><code class="literal">GST_MIKEY_PT_RAND</code></a> <em class="parameter"><code>payload</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.8.32.5"></a><h4>Parameters</h4>
+<a name="id-1.2.12.3.7.28.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1627,29 +1521,30 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>rand</p></td>
-<td class="parameter_description"><p>random values</p></td>
-<td class="parameter_annotations"> </td>
+<td class="parameter_description"><p> random values. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=len]</span></td>
 </tr>
 </tbody>
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.12.3.8.32.6"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
+<a name="id-1.2.12.3.7.28.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
 <p></p>
 </div>
+<p class="since">Since 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-mikey-message-add-rand"></a><h3>gst_mikey_message_add_rand ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_mikey_message_add_rand (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a> *msg</code></em>,
                             <em class="parameter"><code><span class="type">guint8</span> len</code></em>,
                             <em class="parameter"><code>const <span class="type">guint8</span> *rand</code></em>);</pre>
 <p>Add a new RAND payload to <em class="parameter"><code>msg</code></em>
  with the given parameters.</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.8.33.5"></a><h4>Parameters</h4>
+<a name="id-1.2.12.3.7.29.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1670,29 +1565,30 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>rand</p></td>
-<td class="parameter_description"><p>random data</p></td>
-<td class="parameter_annotations"> </td>
+<td class="parameter_description"><p> random data. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=len]</span></td>
 </tr>
 </tbody>
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.12.3.8.33.6"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
+<a name="id-1.2.12.3.7.29.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
 <p></p>
 </div>
+<p class="since">Since 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-mikey-message-add-rand-len"></a><h3>gst_mikey_message_add_rand_len ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_mikey_message_add_rand_len (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a> *msg</code></em>,
                                 <em class="parameter"><code><span class="type">guint8</span> len</code></em>);</pre>
 <p>Add a new RAND payload to <em class="parameter"><code>msg</code></em>
  with <em class="parameter"><code>len</code></em>
  random bytes.</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.8.34.5"></a><h4>Parameters</h4>
+<a name="id-1.2.12.3.7.30.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1714,22 +1610,23 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.12.3.8.34.6"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
+<a name="id-1.2.12.3.7.30.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
 <p></p>
 </div>
+<p class="since">Since 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-mikey-payload-sp-set"></a><h3>gst_mikey_payload_sp_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>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_mikey_payload_sp_set (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a> *payload</code></em>,
-                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> policy</code></em>,
+                          <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> policy</code></em>,
                           <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYSecProto" title="enum GstMIKEYSecProto"><span class="type">GstMIKEYSecProto</span></a> proto</code></em>);</pre>
 <p>Set the Security Policy parameters for <em class="parameter"><code>payload</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.8.35.5"></a><h4>Parameters</h4>
+<a name="id-1.2.12.3.7.31.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1756,21 +1653,22 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.12.3.8.35.6"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
+<a name="id-1.2.12.3.7.31.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
 <p></p>
 </div>
+<p class="since">Since 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-mikey-payload-sp-get-n-params"></a><h3>gst_mikey_payload_sp_get_n_params ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_mikey_payload_sp_get_n_params (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a> *payload</code></em>);</pre>
-<p>Get the number of security policy parameters in a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GST-MIKEY-PT-SP:CAPS"><span class="type">GST_MIKEY_PT_SP</span></a>
+<p>Get the number of security policy parameters in a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GST-MIKEY-PT-SP:CAPS"><code class="literal">GST_MIKEY_PT_SP</code></a>
 <em class="parameter"><code>payload</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.8.36.5"></a><h4>Parameters</h4>
+<a name="id-1.2.12.3.7.32.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1785,24 +1683,25 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.12.3.8.36.6"></a><h4>Returns</h4>
+<a name="id-1.2.12.3.7.32.6"></a><h4>Returns</h4>
 <p> the number of parameters in <em class="parameter"><code>payload</code></em>
 </p>
 <p></p>
 </div>
+<p class="since">Since 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-mikey-payload-sp-get-param"></a><h3>gst_mikey_payload_sp_get_param ()</h3>
 <pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayloadSPParam" title="GstMIKEYPayloadSPParam"><span class="returnvalue">GstMIKEYPayloadSPParam</span></a> *
 gst_mikey_payload_sp_get_param (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a> *payload</code></em>,
-                                <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 Security Policy parameter in a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GST-MIKEY-PT-SP:CAPS"><span class="type">GST_MIKEY_PT_SP</span></a> <em class="parameter"><code>payload</code></em>
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
+<p>Get the Security Policy parameter in a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GST-MIKEY-PT-SP:CAPS"><code class="literal">GST_MIKEY_PT_SP</code></a> <em class="parameter"><code>payload</code></em>
 
 at <em class="parameter"><code>idx</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.8.37.5"></a><h4>Parameters</h4>
+<a name="id-1.2.12.3.7.33.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1824,29 +1723,30 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.12.3.8.37.6"></a><h4>Returns</h4>
+<a name="id-1.2.12.3.7.33.6"></a><h4>Returns</h4>
 <p> the <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayloadSPParam" title="GstMIKEYPayloadSPParam"><span class="type">GstMIKEYPayloadSPParam</span></a> at <em class="parameter"><code>idx</code></em>
 in <em class="parameter"><code>payload</code></em>
 </p>
 <p></p>
 </div>
+<p class="since">Since 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-mikey-payload-sp-add-param"></a><h3>gst_mikey_payload_sp_add_param ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_mikey_payload_sp_add_param (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a> *payload</code></em>,
                                 <em class="parameter"><code><span class="type">guint8</span> type</code></em>,
                                 <em class="parameter"><code><span class="type">guint8</span> len</code></em>,
                                 <em class="parameter"><code>const <span class="type">guint8</span> *val</code></em>);</pre>
-<p>Add a new parameter to the <a class="link" href="gst-plugins-base-libs-gstmikey.html#GST-MIKEY-PT-SP:CAPS"><span class="type">GST_MIKEY_PT_SP</span></a> <em class="parameter"><code>payload</code></em>
+<p>Add a new parameter to the <a class="link" href="gst-plugins-base-libs-gstmikey.html#GST-MIKEY-PT-SP:CAPS"><code class="literal">GST_MIKEY_PT_SP</code></a> <em class="parameter"><code>payload</code></em>
  with <em class="parameter"><code>type</code></em>
 , <em class="parameter"><code>len</code></em>
 
 and <em class="parameter"><code>val</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.8.38.5"></a><h4>Parameters</h4>
+<a name="id-1.2.12.3.7.34.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1871,31 +1771,32 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>val</p></td>
-<td class="parameter_description"><p><em class="parameter"><code>len</code></em>
-bytes of data</p></td>
-<td class="parameter_annotations"> </td>
+<td class="parameter_description"><p> <em class="parameter"><code>len</code></em>
+bytes of data. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=len]</span></td>
 </tr>
 </tbody>
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.12.3.8.38.6"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
+<a name="id-1.2.12.3.7.34.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
 <p></p>
 </div>
+<p class="since">Since 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-mikey-payload-sp-remove-param"></a><h3>gst_mikey_payload_sp_remove_param ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_mikey_payload_sp_remove_param (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a> *payload</code></em>,
-                                   <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>Remove the Security Policy parameters from a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GST-MIKEY-PT-SP:CAPS"><span class="type">GST_MIKEY_PT_SP</span></a>
+                                   <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
+<p>Remove the Security Policy parameters from a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GST-MIKEY-PT-SP:CAPS"><code class="literal">GST_MIKEY_PT_SP</code></a>
 <em class="parameter"><code>payload</code></em>
  at <em class="parameter"><code>idx</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.8.39.5"></a><h4>Parameters</h4>
+<a name="id-1.2.12.3.7.35.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1917,10 +1818,11 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.12.3.8.39.6"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
+<a name="id-1.2.12.3.7.35.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
 <p></p>
 </div>
+<p class="since">Since 1.4</p>
 </div>
 </div>
 <div class="refsect1">
@@ -1936,7 +1838,7 @@
 <a name="GstMIKEYType"></a><h3>enum GstMIKEYType</h3>
 <p>Different MIKEY data types.</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.9.3.4"></a><h4>Members</h4>
+<a name="id-1.2.12.3.8.3.4"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -2008,6 +1910,8 @@
 <div class="refsect2">
 <a name="GstMIKEYMessage"></a><h3>struct GstMIKEYMessage</h3>
 <pre class="programlisting">struct GstMIKEYMessage {
+  GstMiniObject mini_object;
+
   guint8 version;
   GstMIKEYType type;
   gboolean V;
@@ -2020,7 +1924,7 @@
 </pre>
 <p>Structure holding the information of the MIKEY message</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.9.4.5"></a><h4>Members</h4>
+<a name="id-1.2.12.3.8.4.5"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
@@ -2029,6 +1933,11 @@
 </colgroup>
 <tbody>
 <tr>
+<td class="struct_member_name"><p><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMiniObject.html#GstMiniObject"><span class="type">GstMiniObject</span></a> <em class="structfield"><code><a name="GstMIKEYMessage.mini-object"></a>mini_object</code></em>;</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
 <td class="struct_member_name"><p><span class="type">guint8</span> <em class="structfield"><code><a name="GstMIKEYMessage.version"></a>version</code></em>;</p></td>
 <td class="struct_member_description"><p>the version</p></td>
 <td class="struct_member_annotations"> </td>
@@ -2039,7 +1948,7 @@
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstMIKEYMessage.V"></a>V</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> <em class="structfield"><code><a name="GstMIKEYMessage.V"></a>V</code></em>;</p></td>
 <td class="struct_member_description"><p>verify flag</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
@@ -2059,13 +1968,13 @@
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><a href="http://library.gnome.org/devel/glib/unstable/glib-Arrays.html#GArray"><span class="type">GArray</span></a> *<em class="structfield"><code><a name="GstMIKEYMessage.map-info"></a>map_info</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Arrays.html#GArray"><span class="type">GArray</span></a> *<em class="structfield"><code><a name="GstMIKEYMessage.map-info"></a>map_info</code></em>;</p></td>
 <td class="struct_member_description"><p>map info array of type depending on <em class="parameter"><code>map_type</code></em>
 </p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><a href="http://library.gnome.org/devel/glib/unstable/glib-Arrays.html#GArray"><span class="type">GArray</span></a> *<em class="structfield"><code><a name="GstMIKEYMessage.payloads"></a>payloads</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Arrays.html#GArray"><span class="type">GArray</span></a> *<em class="structfield"><code><a name="GstMIKEYMessage.payloads"></a>payloads</code></em>;</p></td>
 <td class="struct_member_description"><p>the payload array of <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a></p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
@@ -2078,7 +1987,7 @@
 <a name="GstMIKEYPRFFunc"></a><h3>enum GstMIKEYPRFFunc</h3>
 <p>The PRF function that has been/will be used for key derivation</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.9.5.4"></a><h4>Members</h4>
+<a name="id-1.2.12.3.8.5.4"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -2101,7 +2010,7 @@
 <p>Specifies the method of uniquely mapping Crypto Sessions to the security
 protocol sessions.</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.9.6.4"></a><h4>Members</h4>
+<a name="id-1.2.12.3.8.6.4"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -2127,7 +2036,7 @@
 </pre>
 <p>The Security policy Map item for SRTP</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.9.7.5"></a><h4>Members</h4>
+<a name="id-1.2.12.3.8.7.5"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
@@ -2160,7 +2069,7 @@
 <a name="GstMIKEYPayloadType"></a><h3>enum GstMIKEYPayloadType</h3>
 <p>Different MIKEY Payload types.</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.9.8.4"></a><h4>Members</h4>
+<a name="id-1.2.12.3.8.8.4"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -2281,15 +2190,15 @@
 <div class="refsect2">
 <a name="GstMIKEYPayload"></a><h3>struct GstMIKEYPayload</h3>
 <pre class="programlisting">struct GstMIKEYPayload {
+  GstMiniObject mini_object;
+
   GstMIKEYPayloadType type;
   guint len;
-  GstMIKEYPayloadClearFunc clear_func;
-  GstMIKEYPayloadCopyFunc copy_func;
 };
 </pre>
 <p>Hold the common fields for all payloads</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.9.9.5"></a><h4>Members</h4>
+<a name="id-1.2.12.3.8.9.5"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
@@ -2298,25 +2207,20 @@
 </colgroup>
 <tbody>
 <tr>
+<td class="struct_member_name"><p><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMiniObject.html#GstMiniObject"><span class="type">GstMiniObject</span></a> <em class="structfield"><code><a name="GstMIKEYPayload.mini-object"></a>mini_object</code></em>;</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
 <td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayloadType" title="enum GstMIKEYPayloadType"><span class="type">GstMIKEYPayloadType</span></a> <em class="structfield"><code><a name="GstMIKEYPayload.type"></a>type</code></em>;</p></td>
 <td class="struct_member_description"><p>the payload type</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstMIKEYPayload.len"></a>len</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstMIKEYPayload.len"></a>len</code></em>;</p></td>
 <td class="struct_member_description"><p>length of the payload</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayloadClearFunc" title="GstMIKEYPayloadClearFunc ()"><span class="type">GstMIKEYPayloadClearFunc</span></a> <em class="structfield"><code><a name="GstMIKEYPayload.clear-func"></a>clear_func</code></em>;</p></td>
-<td class="struct_member_description"><p>function to clear the payload</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayloadCopyFunc" title="GstMIKEYPayloadCopyFunc ()"><span class="type">GstMIKEYPayloadCopyFunc</span></a> <em class="structfield"><code><a name="GstMIKEYPayload.copy-func"></a>copy_func</code></em>;</p></td>
-<td class="struct_member_description"><p>function to copy the payload</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
 </tbody>
 </table></div>
 </div>
@@ -2326,7 +2230,7 @@
 <a name="GstMIKEYEncAlg"></a><h3>enum GstMIKEYEncAlg</h3>
 <p>The encryption algorithm used to encrypt the Encr data field</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.9.10.4"></a><h4>Members</h4>
+<a name="id-1.2.12.3.8.10.4"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -2364,7 +2268,7 @@
 <a name="GstMIKEYMacAlg"></a><h3>enum GstMIKEYMacAlg</h3>
 <p>Specifies the authentication algorithm used</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.9.11.4"></a><h4>Members</h4>
+<a name="id-1.2.12.3.8.11.4"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -2403,7 +2307,7 @@
 </pre>
 <p>A structure holding the KEMAC payload</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.9.12.5"></a><h4>Members</h4>
+<a name="id-1.2.12.3.8.12.5"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
@@ -2427,7 +2331,7 @@
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><a href="http://library.gnome.org/devel/glib/unstable/glib-Arrays.html#GArray"><span class="type">GArray</span></a> *<em class="structfield"><code><a name="GstMIKEYPayloadKEMAC.subpayloads"></a>subpayloads</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Arrays.html#GArray"><span class="type">GArray</span></a> *<em class="structfield"><code><a name="GstMIKEYPayloadKEMAC.subpayloads"></a>subpayloads</code></em>;</p></td>
 <td> </td>
 <td> </td>
 </tr>
@@ -2440,7 +2344,7 @@
 <a name="GstMIKEYCacheType"></a><h3>enum GstMIKEYCacheType</h3>
 <p>The different cache types</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.9.13.4"></a><h4>Members</h4>
+<a name="id-1.2.12.3.8.13.4"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -2490,7 +2394,7 @@
 transport payload.  The encryption algorithm used is implicit from
 the certificate/public key used.</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.9.14.5"></a><h4>Members</h4>
+<a name="id-1.2.12.3.8.14.5"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
@@ -2528,7 +2432,7 @@
 <a name="GstMIKEYTSType"></a><h3>enum GstMIKEYTSType</h3>
 <p>Specifies the timestamp type.</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.9.15.4"></a><h4>Members</h4>
+<a name="id-1.2.12.3.8.15.4"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -2573,7 +2477,7 @@
 </pre>
 <p>The timestamp payload carries the timestamp information</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.9.16.5"></a><h4>Members</h4>
+<a name="id-1.2.12.3.8.16.5"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
@@ -2612,7 +2516,7 @@
 </pre>
 <p>The RAND payload consists of a (pseudo-)random bit-string</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.9.17.5"></a><h4>Members</h4>
+<a name="id-1.2.12.3.8.17.5"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
@@ -2645,7 +2549,7 @@
 <a name="GstMIKEYSecProto"></a><h3>enum GstMIKEYSecProto</h3>
 <p>Specifies the security protocol</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.9.18.4"></a><h4>Members</h4>
+<a name="id-1.2.12.3.8.18.4"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -2665,7 +2569,7 @@
 <a name="GstMIKEYSecSRTP"></a><h3>enum GstMIKEYSecSRTP</h3>
 <p>This policy specifies the parameters for SRTP and SRTCP</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.9.19.4"></a><h4>Members</h4>
+<a name="id-1.2.12.3.8.19.4"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -2782,7 +2686,7 @@
 <p>The Security Policy payload defines a set of policies that apply to a
 specific security protocol</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.9.20.5"></a><h4>Members</h4>
+<a name="id-1.2.12.3.8.20.5"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
@@ -2796,7 +2700,7 @@
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstMIKEYPayloadSP.policy"></a>policy</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstMIKEYPayloadSP.policy"></a>policy</code></em>;</p></td>
 <td class="struct_member_description"><p>the policy number</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
@@ -2806,7 +2710,7 @@
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><a href="http://library.gnome.org/devel/glib/unstable/glib-Arrays.html#GArray"><span class="type">GArray</span></a> *<em class="structfield"><code><a name="GstMIKEYPayloadSP.params"></a>params</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Arrays.html#GArray"><span class="type">GArray</span></a> *<em class="structfield"><code><a name="GstMIKEYPayloadSP.params"></a>params</code></em>;</p></td>
 <td class="struct_member_description"><p>array of <span class="type">GstMIKEYPayloadPSParam</span></p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
@@ -2825,7 +2729,7 @@
 </pre>
 <p>A Type/Length/Value field for security paramaters</p>
 <div class="refsect3">
-<a name="id-1.2.12.3.9.21.5"></a><h4>Members</h4>
+<a name="id-1.2.12.3.8.21.5"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
@@ -2857,6 +2761,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstnavigation.html b/docs/libs/html/gst-plugins-base-libs-gstnavigation.html
index ee52a48..f7c810b 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstnavigation.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstnavigation.html
@@ -8,14 +8,14 @@
 <link rel="up" href="gstreamer-video.html" title="Video Library">
 <link rel="prev" href="gst-plugins-base-libs-gstvideoutils.html" title="gstvideoutils">
 <link rel="next" href="gstreamer-libs-hierarchy.html" title="Part II. Object Hierarchy">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstnavigation.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gstnavigation.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
                   <a href="#gst-plugins-base-libs-gstnavigation.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
@@ -75,7 +75,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-event-parse-command" title="gst_navigation_event_parse_command ()">gst_navigation_event_parse_command</a> <span class="c_punctuation">()</span>
@@ -83,7 +83,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-event-parse-key-event" title="gst_navigation_event_parse_key_event ()">gst_navigation_event_parse_key_event</a> <span class="c_punctuation">()</span>
@@ -91,7 +91,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-event-parse-mouse-button-event" title="gst_navigation_event_parse_mouse_button_event ()">gst_navigation_event_parse_mouse_button_event</a> <span class="c_punctuation">()</span>
@@ -99,7 +99,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-event-parse-mouse-move-event" title="gst_navigation_event_parse_mouse_move_event ()">gst_navigation_event_parse_mouse_move_event</a> <span class="c_punctuation">()</span>
@@ -115,7 +115,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="returnvalue">GstMessage</span></a> *
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMessage.html"><span class="returnvalue">GstMessage</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-new-angles-changed" title="gst_navigation_message_new_angles_changed ()">gst_navigation_message_new_angles_changed</a> <span class="c_punctuation">()</span>
@@ -123,7 +123,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="returnvalue">GstMessage</span></a> *
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMessage.html"><span class="returnvalue">GstMessage</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-new-commands-changed" title="gst_navigation_message_new_commands_changed ()">gst_navigation_message_new_commands_changed</a> <span class="c_punctuation">()</span>
@@ -131,7 +131,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="returnvalue">GstMessage</span></a> *
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMessage.html"><span class="returnvalue">GstMessage</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-new-mouse-over" title="gst_navigation_message_new_mouse_over ()">gst_navigation_message_new_mouse_over</a> <span class="c_punctuation">()</span>
@@ -139,7 +139,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-parse-mouse-over" title="gst_navigation_message_parse_mouse_over ()">gst_navigation_message_parse_mouse_over</a> <span class="c_punctuation">()</span>
@@ -147,7 +147,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-parse-angles-changed" title="gst_navigation_message_parse_angles_changed ()">gst_navigation_message_parse_angles_changed</a> <span class="c_punctuation">()</span>
@@ -155,7 +155,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstQuery.html#GstQuery"><span class="returnvalue">GstQuery</span></a> *
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstQuery.html"><span class="returnvalue">GstQuery</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-new-angles" title="gst_navigation_query_new_angles ()">gst_navigation_query_new_angles</a> <span class="c_punctuation">()</span>
@@ -171,7 +171,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstQuery.html#GstQuery"><span class="returnvalue">GstQuery</span></a> *
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstQuery.html"><span class="returnvalue">GstQuery</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-new-commands" title="gst_navigation_query_new_commands ()">gst_navigation_query_new_commands</a> <span class="c_punctuation">()</span>
@@ -179,7 +179,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-parse-angles" title="gst_navigation_query_parse_angles ()">gst_navigation_query_parse_angles</a> <span class="c_punctuation">()</span>
@@ -187,7 +187,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-parse-commands-length" title="gst_navigation_query_parse_commands_length ()">gst_navigation_query_parse_commands_length</a> <span class="c_punctuation">()</span>
@@ -195,7 +195,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-parse-commands-nth" title="gst_navigation_query_parse_commands_nth ()">gst_navigation_query_parse_commands_nth</a> <span class="c_punctuation">()</span>
@@ -293,7 +293,7 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstnavigation.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    GInterface
+<pre class="screen">    <a href="https://developer.gnome.org/gobject/unstable/GTypeModule.html">GInterface</a>
     <span class="lineart">╰──</span> GstNavigation
 </pre>
 </div>
@@ -339,7 +339,7 @@
 <a name="gst-navigation-send-event"></a><h3>gst_navigation_send_event ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_navigation_send_event (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> *navigation</code></em>,
-                           <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a> *structure</code></em>);</pre>
+                           <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstStructure.html"><span class="type">GstStructure</span></a> *structure</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
@@ -349,7 +349,7 @@
                                <em class="parameter"><code>const <span class="type">char</span> *event</code></em>,
                                <em class="parameter"><code>const <span class="type">char</span> *key</code></em>);</pre>
 <div class="refsect3">
-<a name="id-1.2.15.16.9.3.4"></a><h4>Parameters</h4>
+<a name="id-1.2.15.20.9.3.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -392,7 +392,7 @@
 usually the size in pixels of the window associated with the element
 implementing the <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> interface.</p>
 <div class="refsect3">
-<a name="id-1.2.15.16.9.4.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.20.9.4.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -439,7 +439,7 @@
                              <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationCommand" title="enum GstNavigationCommand"><span class="type">GstNavigationCommand</span></a> command</code></em>);</pre>
 <p>Sends the indicated command to the navigation interface.</p>
 <div class="refsect3">
-<a name="id-1.2.15.16.9.5.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.20.9.5.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -464,13 +464,13 @@
 <hr>
 <div class="refsect2">
 <a name="gst-navigation-event-parse-command"></a><h3>gst_navigation_event_parse_command ()</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_navigation_event_parse_command (<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>,
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gst_navigation_event_parse_command (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstEvent.html"><span class="type">GstEvent</span></a> *event</code></em>,
                                     <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationCommand" title="enum GstNavigationCommand"><span class="type">GstNavigationCommand</span></a> *command</code></em>);</pre>
 <p>Inspect a <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> command event and retrieve the enum value of the
 associated command.</p>
 <div class="refsect3">
-<a name="id-1.2.15.16.9.6.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.20.9.6.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -480,7 +480,7 @@
 <tbody>
 <tr>
 <td class="parameter_name"><p>event</p></td>
-<td class="parameter_description"><p>A <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstEvent.html#GstEvent"><span class="type">GstEvent</span></a> to inspect.</p></td>
+<td class="parameter_description"><p>A <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstEvent.html"><span class="type">GstEvent</span></a> to inspect.</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
@@ -493,7 +493,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.16.9.6.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.20.9.6.6"></a><h4>Returns</h4>
 <p> TRUE if the navigation command could be extracted, otherwise FALSE.</p>
 <p></p>
 </div>
@@ -501,11 +501,11 @@
 <hr>
 <div class="refsect2">
 <a name="gst-navigation-event-parse-key-event"></a><h3>gst_navigation_event_parse_key_event ()</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_navigation_event_parse_key_event (<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>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **key</code></em>);</pre>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gst_navigation_event_parse_key_event (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstEvent.html"><span class="type">GstEvent</span></a> *event</code></em>,
+                                      <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **key</code></em>);</pre>
 <div class="refsect3">
-<a name="id-1.2.15.16.9.7.4"></a><h4>Parameters</h4>
+<a name="id-1.2.15.20.9.7.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -515,7 +515,7 @@
 <tbody>
 <tr>
 <td class="parameter_name"><p>event</p></td>
-<td class="parameter_description"><p>A <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstEvent.html#GstEvent"><span class="type">GstEvent</span></a> to inspect.</p></td>
+<td class="parameter_description"><p>A <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstEvent.html"><span class="type">GstEvent</span></a> to inspect.</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
@@ -532,17 +532,17 @@
 <hr>
 <div class="refsect2">
 <a name="gst-navigation-event-parse-mouse-button-event"></a><h3>gst_navigation_event_parse_mouse_button_event ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_navigation_event_parse_mouse_button_event
-                               (<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="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *button</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> *x</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> *y</code></em>);</pre>
+                               (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstEvent.html"><span class="type">GstEvent</span></a> *event</code></em>,
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *button</code></em>,
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *x</code></em>,
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *y</code></em>);</pre>
 <p>Retrieve the details of either a <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> mouse button press event or
 a mouse button release event. Determine which type the event is using
 <code class="function">gst_navigation_event_get_type()</code> to retrieve the <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationEventType" title="enum GstNavigationEventType"><span class="type">GstNavigationEventType</span></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.15.16.9.8.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.20.9.8.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -552,7 +552,7 @@
 <tbody>
 <tr>
 <td class="parameter_name"><p>event</p></td>
-<td class="parameter_description"><p>A <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstEvent.html#GstEvent"><span class="type">GstEvent</span></a> to inspect.</p></td>
+<td class="parameter_description"><p>A <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstEvent.html"><span class="type">GstEvent</span></a> to inspect.</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
@@ -577,7 +577,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.16.9.8.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.20.9.8.6"></a><h4>Returns</h4>
 <p> TRUE if the button number and both coordinates could be extracted,
 otherwise FALSE.</p>
 <p></p>
@@ -586,15 +586,15 @@
 <hr>
 <div class="refsect2">
 <a name="gst-navigation-event-parse-mouse-move-event"></a><h3>gst_navigation_event_parse_mouse_move_event ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_navigation_event_parse_mouse_move_event
-                               (<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="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *x</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> *y</code></em>);</pre>
+                               (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstEvent.html"><span class="type">GstEvent</span></a> *event</code></em>,
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *x</code></em>,
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *y</code></em>);</pre>
 <p>Inspect a <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> mouse movement event and extract the coordinates
 of the event.</p>
 <div class="refsect3">
-<a name="id-1.2.15.16.9.9.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.20.9.9.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -604,7 +604,7 @@
 <tbody>
 <tr>
 <td class="parameter_name"><p>event</p></td>
-<td class="parameter_description"><p>A <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstEvent.html#GstEvent"><span class="type">GstEvent</span></a> to inspect.</p></td>
+<td class="parameter_description"><p>A <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstEvent.html"><span class="type">GstEvent</span></a> to inspect.</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
@@ -621,7 +621,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.16.9.9.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.20.9.9.6"></a><h4>Returns</h4>
 <p> TRUE if both coordinates could be extracted, otherwise FALSE.</p>
 <p></p>
 </div>
@@ -630,11 +630,11 @@
 <div class="refsect2">
 <a name="gst-navigation-message-get-type"></a><h3>gst_navigation_message_get_type ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationMessageType" title="enum GstNavigationMessageType"><span class="returnvalue">GstNavigationMessageType</span></a>
-gst_navigation_message_get_type (<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>);</pre>
+gst_navigation_message_get_type (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMessage.html"><span class="type">GstMessage</span></a> *message</code></em>);</pre>
 <p>Check a bus message to see if it is a <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> event, and return
 the <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationMessageType" title="enum GstNavigationMessageType"><span class="type">GstNavigationMessageType</span></a> identifying the type of the message if so.</p>
 <div class="refsect3">
-<a name="id-1.2.15.16.9.10.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.20.9.10.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -643,14 +643,14 @@
 </colgroup>
 <tbody><tr>
 <td class="parameter_name"><p>message</p></td>
-<td class="parameter_description"><p>A <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="type">GstMessage</span></a> to inspect.</p></td>
+<td class="parameter_description"><p>A <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMessage.html"><span class="type">GstMessage</span></a> to inspect.</p></td>
 <td class="parameter_annotations"> </td>
 </tr></tbody>
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.16.9.10.6"></a><h4>Returns</h4>
-<p> The type of the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="type">GstMessage</span></a>, or
+<a name="id-1.2.15.20.9.10.6"></a><h4>Returns</h4>
+<p> The type of the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMessage.html"><span class="type">GstMessage</span></a>, or
 <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-MESSAGE-INVALID:CAPS"><span class="type">GST_NAVIGATION_MESSAGE_INVALID</span></a> if the message is not a <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a>
 notification.</p>
 <p></p>
@@ -659,17 +659,17 @@
 <hr>
 <div class="refsect2">
 <a name="gst-navigation-message-new-angles-changed"></a><h3>gst_navigation_message_new_angles_changed ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="returnvalue">GstMessage</span></a> *
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMessage.html"><span class="returnvalue">GstMessage</span></a> *
 gst_navigation_message_new_angles_changed
                                (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html"><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#guint"><span class="type">guint</span></a> cur_angle</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_angles</code></em>);</pre>
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> cur_angle</code></em>,
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_angles</code></em>);</pre>
 <p>Creates a new <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> message with type
 <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-MESSAGE-ANGLES-CHANGED:CAPS"><span class="type">GST_NAVIGATION_MESSAGE_ANGLES_CHANGED</span></a> for notifying an application
 that the current angle, or current number of angles available in a
 multiangle video has changed.</p>
 <div class="refsect3">
-<a name="id-1.2.15.16.9.11.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.20.9.11.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -696,21 +696,21 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.16.9.11.6"></a><h4>Returns</h4>
-<p> The new <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="type">GstMessage</span></a>.</p>
+<a name="id-1.2.15.20.9.11.6"></a><h4>Returns</h4>
+<p> The new <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMessage.html"><span class="type">GstMessage</span></a>.</p>
 <p></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-navigation-message-new-commands-changed"></a><h3>gst_navigation_message_new_commands_changed ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="returnvalue">GstMessage</span></a> *
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMessage.html"><span class="returnvalue">GstMessage</span></a> *
 gst_navigation_message_new_commands_changed
                                (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html"><span class="type">GstObject</span></a> *src</code></em>);</pre>
 <p>Creates a new <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> message with type
 <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-MESSAGE-COMMANDS-CHANGED:CAPS"><span class="type">GST_NAVIGATION_MESSAGE_COMMANDS_CHANGED</span></a></p>
 <div class="refsect3">
-<a name="id-1.2.15.16.9.12.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.20.9.12.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -725,21 +725,21 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.16.9.12.6"></a><h4>Returns</h4>
-<p> The new <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="type">GstMessage</span></a>.</p>
+<a name="id-1.2.15.20.9.12.6"></a><h4>Returns</h4>
+<p> The new <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMessage.html"><span class="type">GstMessage</span></a>.</p>
 <p></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-navigation-message-new-mouse-over"></a><h3>gst_navigation_message_new_mouse_over ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="returnvalue">GstMessage</span></a> *
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMessage.html"><span class="returnvalue">GstMessage</span></a> *
 gst_navigation_message_new_mouse_over (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html"><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>);</pre>
+                                       <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> active</code></em>);</pre>
 <p>Creates a new <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> message with type
 <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-MESSAGE-MOUSE-OVER:CAPS"><span class="type">GST_NAVIGATION_MESSAGE_MOUSE_OVER</span></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.15.16.9.13.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.20.9.13.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -754,31 +754,31 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>active</p></td>
-<td class="parameter_description"><p><a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the mouse has entered a clickable area of the display.
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if it over a non-clickable area.</p></td>
+<td class="parameter_description"><p><a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the mouse has entered a clickable area of the display.
+<a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if it over a non-clickable area.</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.16.9.13.6"></a><h4>Returns</h4>
-<p> The new <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="type">GstMessage</span></a>.</p>
+<a name="id-1.2.15.20.9.13.6"></a><h4>Returns</h4>
+<p> The new <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMessage.html"><span class="type">GstMessage</span></a>.</p>
 <p></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-navigation-message-parse-mouse-over"></a><h3>gst_navigation_message_parse_mouse_over ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_navigation_message_parse_mouse_over
-                               (<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://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *active</code></em>);</pre>
+                               (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMessage.html"><span class="type">GstMessage</span></a> *message</code></em>,
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *active</code></em>);</pre>
 <p>Parse a <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> message of type <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-MESSAGE-MOUSE-OVER:CAPS"><span class="type">GST_NAVIGATION_MESSAGE_MOUSE_OVER</span></a>
 and extract the active/inactive flag. If the mouse over event is marked
 active, it indicates that the mouse is over a clickable area.</p>
 <div class="refsect3">
-<a name="id-1.2.15.16.9.14.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.20.9.14.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -788,7 +788,7 @@
 <tbody>
 <tr>
 <td class="parameter_name"><p>message</p></td>
-<td class="parameter_description"><p>A <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="type">GstMessage</span></a> to inspect.</p></td>
+<td class="parameter_description"><p>A <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMessage.html"><span class="type">GstMessage</span></a> to inspect.</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
@@ -801,25 +801,25 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.16.9.14.6"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the message could be successfully parsed. <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if not.</p>
+<a name="id-1.2.15.20.9.14.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the message could be successfully parsed. <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if not.</p>
 <p></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-navigation-message-parse-angles-changed"></a><h3>gst_navigation_message_parse_angles_changed ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_navigation_message_parse_angles_changed
-                               (<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://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *cur_angle</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_angles</code></em>);</pre>
+                               (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMessage.html"><span class="type">GstMessage</span></a> *message</code></em>,
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *cur_angle</code></em>,
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *n_angles</code></em>);</pre>
 <p>Parse a <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> message of type GST_NAVIGATION_MESSAGE_ANGLES_CHANGED
 and extract the <em class="parameter"><code>cur_angle</code></em>
  and <em class="parameter"><code>n_angles</code></em>
  parameters.</p>
 <div class="refsect3">
-<a name="id-1.2.15.16.9.15.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.20.9.15.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -829,39 +829,39 @@
 <tbody>
 <tr>
 <td class="parameter_name"><p>message</p></td>
-<td class="parameter_description"><p>A <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="type">GstMessage</span></a> to inspect.</p></td>
+<td class="parameter_description"><p>A <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMessage.html"><span class="type">GstMessage</span></a> to inspect.</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
 <td class="parameter_name"><p>cur_angle</p></td>
-<td class="parameter_description"><p>A pointer to a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> to receive the new current angle number,
+<td class="parameter_description"><p>A pointer to a <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> to receive the new current angle number,
 or NULL</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
 <td class="parameter_name"><p>n_angles</p></td>
-<td class="parameter_description"><p>A pointer to a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> to receive the new angle count, or NULL.</p></td>
+<td class="parameter_description"><p>A pointer to a <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> to receive the new angle count, or NULL.</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.16.9.15.6"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the message could be successfully parsed. <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if not.</p>
+<a name="id-1.2.15.20.9.15.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the message could be successfully parsed. <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if not.</p>
 <p></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-navigation-query-new-angles"></a><h3>gst_navigation_query_new_angles ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstQuery.html#GstQuery"><span class="returnvalue">GstQuery</span></a> *
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstQuery.html"><span class="returnvalue">GstQuery</span></a> *
 gst_navigation_query_new_angles (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
 <p>Create a new <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> angles query. When executed, it will
 query the pipeline for the set of currently available angles, which may be
 greater than one in a multiangle video.</p>
 <div class="refsect3">
-<a name="id-1.2.15.16.9.16.5"></a><h4>Returns</h4>
+<a name="id-1.2.15.20.9.16.5"></a><h4>Returns</h4>
 <p> The new query.</p>
 <p></p>
 </div>
@@ -870,11 +870,11 @@
 <div class="refsect2">
 <a name="gst-navigation-query-get-type"></a><h3>gst_navigation_query_get_type ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationQueryType" title="enum GstNavigationQueryType"><span class="returnvalue">GstNavigationQueryType</span></a>
-gst_navigation_query_get_type (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstQuery.html#GstQuery"><span class="type">GstQuery</span></a> *query</code></em>);</pre>
-<p>Inspect a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstQuery.html#GstQuery"><span class="type">GstQuery</span></a> and return the <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationQueryType" title="enum GstNavigationQueryType"><span class="type">GstNavigationQueryType</span></a> associated with
+gst_navigation_query_get_type (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstQuery.html"><span class="type">GstQuery</span></a> *query</code></em>);</pre>
+<p>Inspect a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstQuery.html"><span class="type">GstQuery</span></a> and return the <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationQueryType" title="enum GstNavigationQueryType"><span class="type">GstNavigationQueryType</span></a> associated with
 it if it is a <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> query.</p>
 <div class="refsect3">
-<a name="id-1.2.15.16.9.17.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.20.9.17.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -889,7 +889,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.16.9.17.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.20.9.17.6"></a><h4>Returns</h4>
 <p> The <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationQueryType" title="enum GstNavigationQueryType"><span class="type">GstNavigationQueryType</span></a> of the query, or
 <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-QUERY-INVALID:CAPS"><span class="type">GST_NAVIGATION_QUERY_INVALID</span></a></p>
 <p></p>
@@ -898,12 +898,12 @@
 <hr>
 <div class="refsect2">
 <a name="gst-navigation-query-new-commands"></a><h3>gst_navigation_query_new_commands ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstQuery.html#GstQuery"><span class="returnvalue">GstQuery</span></a> *
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstQuery.html"><span class="returnvalue">GstQuery</span></a> *
 gst_navigation_query_new_commands (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
 <p>Create a new <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> commands query. When executed, it will
 query the pipeline for the set of currently available commands.</p>
 <div class="refsect3">
-<a name="id-1.2.15.16.9.18.5"></a><h4>Returns</h4>
+<a name="id-1.2.15.20.9.18.5"></a><h4>Returns</h4>
 <p> The new query.</p>
 <p></p>
 </div>
@@ -911,18 +911,18 @@
 <hr>
 <div class="refsect2">
 <a name="gst-navigation-query-parse-angles"></a><h3>gst_navigation_query_parse_angles ()</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_navigation_query_parse_angles (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstQuery.html#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> *cur_angle</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_angles</code></em>);</pre>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gst_navigation_query_parse_angles (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstQuery.html"><span class="type">GstQuery</span></a> *query</code></em>,
+                                   <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *cur_angle</code></em>,
+                                   <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *n_angles</code></em>);</pre>
 <p>Parse the current angle number in the <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> angles <em class="parameter"><code>query</code></em>
  into the
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> pointed to by the <em class="parameter"><code>cur_angle</code></em>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> pointed to by the <em class="parameter"><code>cur_angle</code></em>
  variable, and the number of available
-angles into the <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> pointed to by the <em class="parameter"><code>n_angles</code></em>
+angles into the <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> pointed to by the <em class="parameter"><code>n_angles</code></em>
  variable.</p>
 <div class="refsect3">
-<a name="id-1.2.15.16.9.19.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.20.9.19.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -932,18 +932,18 @@
 <tbody>
 <tr>
 <td class="parameter_name"><p>query</p></td>
-<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstQuery.html#GstQuery"><span class="type">GstQuery</span></a></p></td>
+<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstQuery.html"><span class="type">GstQuery</span></a></p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
 <td class="parameter_name"><p>cur_angle</p></td>
-<td class="parameter_description"><p>Pointer to a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> into which to store the currently selected
+<td class="parameter_description"><p>Pointer to a <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> into which to store the currently selected
 angle value from the query, or NULL</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
 <td class="parameter_name"><p>n_angles</p></td>
-<td class="parameter_description"><p>Pointer to a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> into which to store the number of angles
+<td class="parameter_description"><p>Pointer to a <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> into which to store the number of angles
 value from the query, or NULL</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
@@ -951,22 +951,22 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.16.9.19.6"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the query could be successfully parsed. <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if not.</p>
+<a name="id-1.2.15.20.9.19.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the query could be successfully parsed. <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if not.</p>
 <p></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-navigation-query-parse-commands-length"></a><h3>gst_navigation_query_parse_commands_length ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_navigation_query_parse_commands_length
-                               (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstQuery.html#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> *n_cmds</code></em>);</pre>
+                               (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstQuery.html"><span class="type">GstQuery</span></a> *query</code></em>,
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *n_cmds</code></em>);</pre>
 <p>Parse the number of commands in the <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> commands <em class="parameter"><code>query</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.15.16.9.20.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.20.9.20.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -976,7 +976,7 @@
 <tbody>
 <tr>
 <td class="parameter_name"><p>query</p></td>
-<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstQuery.html#GstQuery"><span class="type">GstQuery</span></a></p></td>
+<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstQuery.html"><span class="type">GstQuery</span></a></p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
@@ -988,18 +988,18 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.16.9.20.6"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the query could be successfully parsed. <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if not.</p>
+<a name="id-1.2.15.20.9.20.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the query could be successfully parsed. <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if not.</p>
 <p></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-navigation-query-parse-commands-nth"></a><h3>gst_navigation_query_parse_commands_nth ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_navigation_query_parse_commands_nth
-                               (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstQuery.html#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> nth</code></em>,
+                               (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstQuery.html"><span class="type">GstQuery</span></a> *query</code></em>,
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nth</code></em>,
                                 <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationCommand" title="enum GstNavigationCommand"><span class="type">GstNavigationCommand</span></a> *cmd</code></em>);</pre>
 <p>Parse the <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> command query and retrieve the <em class="parameter"><code>nth</code></em>
  command from
@@ -1009,7 +1009,7 @@
  will be
 set to <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-INVALID:CAPS"><span class="type">GST_NAVIGATION_COMMAND_INVALID</span></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.15.16.9.21.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.20.9.21.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1019,7 +1019,7 @@
 <tbody>
 <tr>
 <td class="parameter_name"><p>query</p></td>
-<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstQuery.html#GstQuery"><span class="type">GstQuery</span></a></p></td>
+<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstQuery.html"><span class="type">GstQuery</span></a></p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
@@ -1036,8 +1036,8 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.16.9.21.6"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the query could be successfully parsed. <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if not.</p>
+<a name="id-1.2.15.20.9.21.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the query could be successfully parsed. <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if not.</p>
 <p></p>
 </div>
 </div>
@@ -1045,13 +1045,13 @@
 <div class="refsect2">
 <a name="gst-navigation-query-set-angles"></a><h3>gst_navigation_query_set_angles ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
-gst_navigation_query_set_angles (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstQuery.html#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> cur_angle</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_angles</code></em>);</pre>
+gst_navigation_query_set_angles (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstQuery.html"><span class="type">GstQuery</span></a> *query</code></em>,
+                                 <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> cur_angle</code></em>,
+                                 <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_angles</code></em>);</pre>
 <p>Set the <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> angles query result field in <em class="parameter"><code>query</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.15.16.9.22.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.20.9.22.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1061,7 +1061,7 @@
 <tbody>
 <tr>
 <td class="parameter_name"><p>query</p></td>
-<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstQuery.html#GstQuery"><span class="type">GstQuery</span></a></p></td>
+<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstQuery.html"><span class="type">GstQuery</span></a></p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
@@ -1082,15 +1082,15 @@
 <div class="refsect2">
 <a name="gst-navigation-query-set-commands"></a><h3>gst_navigation_query_set_commands ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
-gst_navigation_query_set_commands (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstQuery.html#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#gint"><span class="type">gint</span></a> n_cmds</code></em>,
+gst_navigation_query_set_commands (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstQuery.html"><span class="type">GstQuery</span></a> *query</code></em>,
+                                   <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> n_cmds</code></em>,
                                    <em class="parameter"><code>...</code></em>);</pre>
 <p>Set the <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> command query result fields in <em class="parameter"><code>query</code></em>
 . The number
 of commands passed must be equal to <em class="parameter"><code>n_commands</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.15.16.9.23.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.20.9.23.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1100,7 +1100,7 @@
 <tbody>
 <tr>
 <td class="parameter_name"><p>query</p></td>
-<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstQuery.html#GstQuery"><span class="type">GstQuery</span></a></p></td>
+<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstQuery.html"><span class="type">GstQuery</span></a></p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
@@ -1123,15 +1123,15 @@
 <div class="refsect2">
 <a name="gst-navigation-query-set-commandsv"></a><h3>gst_navigation_query_set_commandsv ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
-gst_navigation_query_set_commandsv (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstQuery.html#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#gint"><span class="type">gint</span></a> n_cmds</code></em>,
+gst_navigation_query_set_commandsv (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstQuery.html"><span class="type">GstQuery</span></a> *query</code></em>,
+                                    <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> n_cmds</code></em>,
                                     <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationCommand" title="enum GstNavigationCommand"><span class="type">GstNavigationCommand</span></a> *cmds</code></em>);</pre>
 <p>Set the <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> command query result fields in <em class="parameter"><code>query</code></em>
 . The number
 of commands passed must be equal to <em class="parameter"><code>n_commands</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.15.16.9.24.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.20.9.24.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1141,7 +1141,7 @@
 <tbody>
 <tr>
 <td class="parameter_name"><p>query</p></td>
-<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstQuery.html#GstQuery"><span class="type">GstQuery</span></a></p></td>
+<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstQuery.html"><span class="type">GstQuery</span></a></p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
@@ -1179,7 +1179,7 @@
 </pre>
 <p>Navigation interface.</p>
 <div class="refsect3">
-<a name="id-1.2.15.16.10.3.5"></a><h4>Members</h4>
+<a name="id-1.2.15.20.10.3.5"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
@@ -1188,7 +1188,7 @@
 </colgroup>
 <tbody>
 <tr>
-<td class="struct_member_name"><p><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="GstNavigationInterface.iface"></a>iface</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/gobject/unstable/gobject-Type-Information.html#GTypeInterface"><span class="type">GTypeInterface</span></a> <em class="structfield"><code><a name="GstNavigationInterface.iface"></a>iface</code></em>;</p></td>
 <td class="struct_member_description"><p>the parent interface</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
@@ -1223,7 +1223,7 @@
    GST_NAVIGATION_COMMAND_DVD_CHAPTER_MENU    = <em class="parameter"><code>GST_NAVIGATION_COMMAND_MENU7</code></em>
 </p>
 <div class="refsect3">
-<a name="id-1.2.15.16.10.4.5"></a><h4>Members</h4>
+<a name="id-1.2.15.20.10.4.5"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -1360,7 +1360,7 @@
 <p>Enum values for the various events that an element implementing the
 GstNavigation interface might send up the pipeline.</p>
 <div class="refsect3">
-<a name="id-1.2.15.16.10.5.4"></a><h4>Members</h4>
+<a name="id-1.2.15.20.10.5.4"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -1437,7 +1437,7 @@
 <p>A set of notifications that may be received on the bus when navigation
 related status changes.</p>
 <div class="refsect3">
-<a name="id-1.2.15.16.10.6.4"></a><h4>Members</h4>
+<a name="id-1.2.15.20.10.6.4"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -1488,7 +1488,7 @@
 <a name="GstNavigationQueryType"></a><h3>enum GstNavigationQueryType</h3>
 <p>Tyoes of navigation interface queries.</p>
 <div class="refsect3">
-<a name="id-1.2.15.16.10.7.4"></a><h4>Members</h4>
+<a name="id-1.2.15.20.10.7.4"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -1567,6 +1567,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstpbutils.html b/docs/libs/html/gst-plugins-base-libs-gstpbutils.html
index 35dec26..226beca 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstpbutils.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstpbutils.html
@@ -8,15 +8,14 @@
 <link rel="up" href="gstreamer-base-utils.html" title="Base Utils Library">
 <link rel="prev" href="gstreamer-base-utils.html" title="Base Utils Library">
 <link rel="next" href="gst-plugins-base-libs-gstpluginsbaseversion.html" title="gstpluginsbaseversion">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstpbutils.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstpbutils.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gstpbutils.description" class="shortcut">Description</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="gstreamer-base-utils.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -50,11 +49,6 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="gst-plugins-base-libs-gstpbutils.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">
-</pre>
-</div>
-<div class="refsect1">
 <a name="gst-plugins-base-libs-gstpbutils.includes"></a><h2>Includes</h2>
 <pre class="synopsis">#include &lt;gst/pbutils/pbutils.h&gt;
 </pre>
@@ -62,7 +56,7 @@
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstpbutils.description"></a><h2>Description</h2>
 <div class="refsect2">
-<a name="id-1.2.14.3.6.2"></a><h3>Linking to this library</h3>
+<a name="id-1.2.14.3.5.2"></a><h3>Linking to this library</h3>
 <p>
 libgstpbutils is a general utility library for plugins and applications.
 It currently provides the
@@ -117,6 +111,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstpbutilscodecutils.html b/docs/libs/html/gst-plugins-base-libs-gstpbutilscodecutils.html
index 13e41fd..fafadf2 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstpbutilscodecutils.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstpbutilscodecutils.html
@@ -8,15 +8,14 @@
 <link rel="up" href="gstreamer-base-utils.html" title="Base Utils Library">
 <link rel="prev" href="gst-plugins-base-libs-gstpluginsbaseversion.html" title="gstpluginsbaseversion">
 <link rel="next" href="gst-plugins-base-libs-gstpbutilsdescriptions.html" title="gstpbutilsdescriptions">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstpbutilscodecutils.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstpbutilscodecutils.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gstpbutilscodecutils.description" class="shortcut">Description</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="gstreamer-base-utils.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -42,7 +41,7 @@
 <tbody>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-aac-get-sample-rate-from-index" title="gst_codec_utils_aac_get_sample_rate_from_index ()">gst_codec_utils_aac_get_sample_rate_from_index</a> <span class="c_punctuation">()</span>
@@ -50,21 +49,21 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-aac-get-index-from-sample-rate" title="gst_codec_utils_aac_get_index_from_sample_rate ()">gst_codec_utils_aac_get_index_from_sample_rate</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<td class="function_type">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-aac-get-profile" title="gst_codec_utils_aac_get_profile ()">gst_codec_utils_aac_get_profile</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<td class="function_type">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-aac-get-level" title="gst_codec_utils_aac_get_level ()">gst_codec_utils_aac_get_level</a> <span class="c_punctuation">()</span>
@@ -72,21 +71,21 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-aac-caps-set-level-and-profile" title="gst_codec_utils_aac_caps_set_level_and_profile ()">gst_codec_utils_aac_caps_set_level_and_profile</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<td class="function_type">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-h264-get-profile" title="gst_codec_utils_h264_get_profile ()">gst_codec_utils_h264_get_profile</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<td class="function_type">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-h264-get-level" title="gst_codec_utils_h264_get_level ()">gst_codec_utils_h264_get_level</a> <span class="c_punctuation">()</span>
@@ -94,7 +93,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-h264-caps-set-level-and-profile" title="gst_codec_utils_h264_caps_set_level_and_profile ()">gst_codec_utils_h264_caps_set_level_and_profile</a> <span class="c_punctuation">()</span>
@@ -109,21 +108,21 @@
 </td>
 </tr>
 <tr>
-<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<td class="function_type">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-h265-get-profile" title="gst_codec_utils_h265_get_profile ()">gst_codec_utils_h265_get_profile</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<td class="function_type">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-h265-get-tier" title="gst_codec_utils_h265_get_tier ()">gst_codec_utils_h265_get_tier</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<td class="function_type">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-h265-get-level" title="gst_codec_utils_h265_get_level ()">gst_codec_utils_h265_get_level</a> <span class="c_punctuation">()</span>
@@ -139,21 +138,21 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-h265-caps-set-level-tier-and-profile" title="gst_codec_utils_h265_caps_set_level_tier_and_profile ()">gst_codec_utils_h265_caps_set_level_tier_and_profile</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<td class="function_type">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-mpeg4video-get-profile" title="gst_codec_utils_mpeg4video_get_profile ()">gst_codec_utils_mpeg4video_get_profile</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<td class="function_type">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-mpeg4video-get-level" title="gst_codec_utils_mpeg4video_get_level ()">gst_codec_utils_mpeg4video_get_level</a> <span class="c_punctuation">()</span>
@@ -161,7 +160,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-mpeg4video-caps-set-level-and-profile" title="gst_codec_utils_mpeg4video_caps_set_level_and_profile ()">gst_codec_utils_mpeg4video_caps_set_level_and_profile</a> <span class="c_punctuation">()</span>
@@ -171,11 +170,6 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="gst-plugins-base-libs-gstpbutilscodecutils.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">
-</pre>
-</div>
-<div class="refsect1">
 <a name="gst-plugins-base-libs-gstpbutilscodecutils.includes"></a><h2>Includes</h2>
 <pre class="synopsis">#include &lt;gst/pbutils/codec-utils.h&gt;
 </pre>
@@ -183,7 +177,7 @@
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstpbutilscodecutils.description"></a><h2>Description</h2>
 <div class="refsect2">
-<a name="id-1.2.14.5.6.2"></a><p>
+<a name="id-1.2.14.5.5.2"></a><p>
 Provides codec-specific ulility functions such as functions to provide the
 codec profile and level in human-readable string form from header data.
 </p>
@@ -193,13 +187,13 @@
 <a name="gst-plugins-base-libs-gstpbutilscodecutils.functions_details"></a><h2>Functions</h2>
 <div class="refsect2">
 <a name="gst-codec-utils-aac-get-sample-rate-from-index"></a><h3>gst_codec_utils_aac_get_sample_rate_from_index ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_codec_utils_aac_get_sample_rate_from_index
-                               (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> sr_idx</code></em>);</pre>
+                               (<em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> sr_idx</code></em>);</pre>
 <p>Translates the sample rate index found in AAC headers to the actual sample
 rate.</p>
 <div class="refsect3">
-<a name="id-1.2.14.5.7.2.5"></a><h4>Parameters</h4>
+<a name="id-1.2.14.5.6.2.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -215,7 +209,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.14.5.7.2.6"></a><h4>Returns</h4>
+<a name="id-1.2.14.5.6.2.6"></a><h4>Returns</h4>
 <p> The sample rate if <em class="parameter"><code>sr_idx</code></em>
 is valid, 0 otherwise.</p>
 <p></p>
@@ -224,12 +218,12 @@
 <hr>
 <div class="refsect2">
 <a name="gst-codec-utils-aac-get-index-from-sample-rate"></a><h3>gst_codec_utils_aac_get_index_from_sample_rate ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
 gst_codec_utils_aac_get_index_from_sample_rate
-                               (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> rate</code></em>);</pre>
+                               (<em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> rate</code></em>);</pre>
 <p>Translates the sample rate to the index corresponding to it in AAC spec.</p>
 <div class="refsect3">
-<a name="id-1.2.14.5.7.3.5"></a><h4>Parameters</h4>
+<a name="id-1.2.14.5.6.3.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -244,7 +238,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.14.5.7.3.6"></a><h4>Returns</h4>
+<a name="id-1.2.14.5.6.3.6"></a><h4>Returns</h4>
 <p> The AAC index for this sample rate, -1 if the rate is not a
 valid AAC sample rate.</p>
 <p></p>
@@ -253,9 +247,9 @@
 <hr>
 <div class="refsect2">
 <a name="gst-codec-utils-aac-get-profile"></a><h3>gst_codec_utils_aac_get_profile ()</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> *
+<pre class="programlisting">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_codec_utils_aac_get_profile (<em class="parameter"><code>const <span class="type">guint8</span> *audio_config</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> len</code></em>);</pre>
+                                 <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);</pre>
 <p>Returns the profile of the given AAC stream as a string. The profile is
 determined using the AudioObjectType field which is in the first 5 bits of
 <em class="parameter"><code>audio_config</code></em>
@@ -264,7 +258,7 @@
 HE-AAC support has not yet been implemented.
 </div>
 <div class="refsect3">
-<a name="id-1.2.14.5.7.4.6"></a><h4>Parameters</h4>
+<a name="id-1.2.14.5.6.4.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -289,8 +283,8 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.14.5.7.4.7"></a><h4>Returns</h4>
-<p> The profile as a const string and <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the profile could not be
+<a name="id-1.2.14.5.6.4.7"></a><h4>Returns</h4>
+<p> The profile as a const string and <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the profile could not be
 determined.</p>
 <p></p>
 </div>
@@ -298,9 +292,9 @@
 <hr>
 <div class="refsect2">
 <a name="gst-codec-utils-aac-get-level"></a><h3>gst_codec_utils_aac_get_level ()</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> *
+<pre class="programlisting">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_codec_utils_aac_get_level (<em class="parameter"><code>const <span class="type">guint8</span> *audio_config</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> len</code></em>);</pre>
+                               <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);</pre>
 <p>Determines the level of a stream as defined in ISO/IEC 14496-3. For AAC LC
 streams, the constraints from the AAC audio profile are applied. For AAC
 Main, LTP, SSR and others, the Main profile is used.</p>
@@ -324,7 +318,7 @@
 HE-AAC support has not yet been implemented.
 </div>
 <div class="refsect3">
-<a name="id-1.2.14.5.7.5.8"></a><h4>Parameters</h4>
+<a name="id-1.2.14.5.6.5.8"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -348,8 +342,8 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.14.5.7.5.9"></a><h4>Returns</h4>
-<p> The level as a const string and <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the level could not be
+<a name="id-1.2.14.5.6.5.9"></a><h4>Returns</h4>
+<p> The level as a const string and <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the level could not be
 determined.</p>
 <p></p>
 </div>
@@ -357,11 +351,11 @@
 <hr>
 <div class="refsect2">
 <a name="gst-codec-utils-aac-caps-set-level-and-profile"></a><h3>gst_codec_utils_aac_caps_set_level_and_profile ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_codec_utils_aac_caps_set_level_and_profile
-                               (<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="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> *caps</code></em>,
                                 <em class="parameter"><code>const <span class="type">guint8</span> *audio_config</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> len</code></em>);</pre>
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);</pre>
 <p>Sets the level and profile on <em class="parameter"><code>caps</code></em>
  if it can be determined from
 <em class="parameter"><code>audio_config</code></em>
@@ -372,7 +366,7 @@
 If mpegversion is 4, the "base-profile" field is also set in <em class="parameter"><code>caps</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.14.5.7.6.5"></a><h4>Parameters</h4>
+<a name="id-1.2.14.5.6.6.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -382,7 +376,7 @@
 <tbody>
 <tr>
 <td class="parameter_name"><p>caps</p></td>
-<td class="parameter_description"><p>the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> to which level and profile fields are to be added</p></td>
+<td class="parameter_description"><p>the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> to which level and profile fields are to be added</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
@@ -402,17 +396,17 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.14.5.7.6.6"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the level and profile could be set, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise.</p>
+<a name="id-1.2.14.5.6.6.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the level and profile could be set, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise.</p>
 <p></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-codec-utils-h264-get-profile"></a><h3>gst_codec_utils_h264_get_profile ()</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> *
+<pre class="programlisting">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_codec_utils_h264_get_profile (<em class="parameter"><code>const <span class="type">guint8</span> *sps</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> len</code></em>);</pre>
+                                  <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);</pre>
 <p>Converts the profile indication (profile_idc) in the stream's
 sequence parameter set into a string. The SPS is expected to have the
 following format, as defined in the H.264 specification. The SPS is viewed
@@ -429,7 +423,7 @@
 <li class="listitem"><p>Bit 16:24 - Level indication</p></li>
 </ul></div>
 <div class="refsect3">
-<a name="id-1.2.14.5.7.7.6"></a><h4>Parameters</h4>
+<a name="id-1.2.14.5.6.7.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -452,22 +446,22 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.14.5.7.7.7"></a><h4>Returns</h4>
-<p> The profile as a const string, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if there is an error.</p>
+<a name="id-1.2.14.5.6.7.7"></a><h4>Returns</h4>
+<p> The profile as a const string, or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if there is an error.</p>
 <p></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-codec-utils-h264-get-level"></a><h3>gst_codec_utils_h264_get_level ()</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> *
+<pre class="programlisting">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_codec_utils_h264_get_level (<em class="parameter"><code>const <span class="type">guint8</span> *sps</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> len</code></em>);</pre>
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);</pre>
 <p>Converts the level indication (level_idc) in the stream's
 sequence parameter set into a string. The SPS is expected to have the
 same format as for <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-h264-get-profile" title="gst_codec_utils_h264_get_profile ()"><code class="function">gst_codec_utils_h264_get_profile()</code></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.14.5.7.8.5"></a><h4>Parameters</h4>
+<a name="id-1.2.14.5.6.8.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -490,26 +484,26 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.14.5.7.8.6"></a><h4>Returns</h4>
-<p> The level as a const string, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if there is an error.</p>
+<a name="id-1.2.14.5.6.8.6"></a><h4>Returns</h4>
+<p> The level as a const string, or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if there is an error.</p>
 <p></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-codec-utils-h264-caps-set-level-and-profile"></a><h3>gst_codec_utils_h264_caps_set_level_and_profile ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_codec_utils_h264_caps_set_level_and_profile
-                               (<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="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> *caps</code></em>,
                                 <em class="parameter"><code>const <span class="type">guint8</span> *sps</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> len</code></em>);</pre>
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);</pre>
 <p>Sets the level and profile in <em class="parameter"><code>caps</code></em>
  if it can be determined from <em class="parameter"><code>sps</code></em>
 . See
 <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-h264-get-level" title="gst_codec_utils_h264_get_level ()"><code class="function">gst_codec_utils_h264_get_level()</code></a> and <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-h264-get-profile" title="gst_codec_utils_h264_get_profile ()"><code class="function">gst_codec_utils_h264_get_profile()</code></a>
 for more details on the parameters.</p>
 <div class="refsect3">
-<a name="id-1.2.14.5.7.9.5"></a><h4>Parameters</h4>
+<a name="id-1.2.14.5.6.9.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -519,7 +513,7 @@
 <tbody>
 <tr>
 <td class="parameter_name"><p>caps</p></td>
-<td class="parameter_description"><p>the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> to which the level and profile are to be added</p></td>
+<td class="parameter_description"><p>the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> to which the level and profile are to be added</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
@@ -537,8 +531,8 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.14.5.7.9.6"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the level and profile could be set, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise.</p>
+<a name="id-1.2.14.5.6.9.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the level and profile could be set, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise.</p>
 <p></p>
 </div>
 </div>
@@ -546,10 +540,10 @@
 <div class="refsect2">
 <a name="gst-codec-utils-h264-get-level-idc"></a><h3>gst_codec_utils_h264_get_level_idc ()</h3>
 <pre class="programlisting"><span class="returnvalue">guint8</span>
-gst_codec_utils_h264_get_level_idc (<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> *level</code></em>);</pre>
+gst_codec_utils_h264_get_level_idc (<em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *level</code></em>);</pre>
 <p>Transform a level string from the caps into the level_idc</p>
 <div class="refsect3">
-<a name="id-1.2.14.5.7.10.5"></a><h4>Parameters</h4>
+<a name="id-1.2.14.5.6.10.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -564,7 +558,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.14.5.7.10.6"></a><h4>Returns</h4>
+<a name="id-1.2.14.5.6.10.6"></a><h4>Returns</h4>
 <p> the level_idc or 0 if the level is unknown</p>
 <p></p>
 </div>
@@ -572,9 +566,9 @@
 <hr>
 <div class="refsect2">
 <a name="gst-codec-utils-h265-get-profile"></a><h3>gst_codec_utils_h265_get_profile ()</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> *
+<pre class="programlisting">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_codec_utils_h265_get_profile (<em class="parameter"><code>const <span class="type">guint8</span> *profile_tier_level</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> len</code></em>);</pre>
+                                  <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);</pre>
 <p>Converts the profile indication (general_profile_idc) in the stream's
 profile_level_tier structure into a string. The profile_tier_level is
 expected to have the following format, as defined in the H.265
@@ -593,7 +587,7 @@
 <li class="listitem"><p>Bit 88:95 - general_level_idc</p></li>
 </ul></div>
 <div class="refsect3">
-<a name="id-1.2.14.5.7.11.6"></a><h4>Parameters</h4>
+<a name="id-1.2.14.5.6.11.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -617,8 +611,8 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.14.5.7.11.7"></a><h4>Returns</h4>
-<p> The profile as a const string, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if there is an error.</p>
+<a name="id-1.2.14.5.6.11.7"></a><h4>Returns</h4>
+<p> The profile as a const string, or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if there is an error.</p>
 <p>Since 1.4</p>
 <p></p>
 </div>
@@ -626,14 +620,14 @@
 <hr>
 <div class="refsect2">
 <a name="gst-codec-utils-h265-get-tier"></a><h3>gst_codec_utils_h265_get_tier ()</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> *
+<pre class="programlisting">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_codec_utils_h265_get_tier (<em class="parameter"><code>const <span class="type">guint8</span> *profile_tier_level</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> len</code></em>);</pre>
+                               <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);</pre>
 <p>Converts the tier indication (general_tier_flag) in the stream's
 profile_tier_level structure into a string. The profile_tier_level
 is expected to have the same format as for <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-h264-get-profile" title="gst_codec_utils_h264_get_profile ()"><code class="function">gst_codec_utils_h264_get_profile()</code></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.14.5.7.12.5"></a><h4>Parameters</h4>
+<a name="id-1.2.14.5.6.12.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -657,8 +651,8 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.14.5.7.12.6"></a><h4>Returns</h4>
-<p> The tier as a const string, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if there is an error.</p>
+<a name="id-1.2.14.5.6.12.6"></a><h4>Returns</h4>
+<p> The tier as a const string, or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if there is an error.</p>
 <p>Since 1.4</p>
 <p></p>
 </div>
@@ -666,14 +660,14 @@
 <hr>
 <div class="refsect2">
 <a name="gst-codec-utils-h265-get-level"></a><h3>gst_codec_utils_h265_get_level ()</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> *
+<pre class="programlisting">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_codec_utils_h265_get_level (<em class="parameter"><code>const <span class="type">guint8</span> *profile_tier_level</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> len</code></em>);</pre>
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);</pre>
 <p>Converts the level indication (general_level_idc) in the stream's
 profile_tier_level structure into a string. The profiel_tier_level is
 expected to have the same format as for <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-h264-get-profile" title="gst_codec_utils_h264_get_profile ()"><code class="function">gst_codec_utils_h264_get_profile()</code></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.14.5.7.13.5"></a><h4>Parameters</h4>
+<a name="id-1.2.14.5.6.13.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -697,8 +691,8 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.14.5.7.13.6"></a><h4>Returns</h4>
-<p> The level as a const string, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if there is an error.</p>
+<a name="id-1.2.14.5.6.13.6"></a><h4>Returns</h4>
+<p> The level as a const string, or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if there is an error.</p>
 <p>Since 1.4</p>
 <p></p>
 </div>
@@ -707,10 +701,10 @@
 <div class="refsect2">
 <a name="gst-codec-utils-h265-get-level-idc"></a><h3>gst_codec_utils_h265_get_level_idc ()</h3>
 <pre class="programlisting"><span class="returnvalue">guint8</span>
-gst_codec_utils_h265_get_level_idc (<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> *level</code></em>);</pre>
+gst_codec_utils_h265_get_level_idc (<em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *level</code></em>);</pre>
 <p>Transform a level string from the caps into the level_idc</p>
 <div class="refsect3">
-<a name="id-1.2.14.5.7.14.5"></a><h4>Parameters</h4>
+<a name="id-1.2.14.5.6.14.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -725,7 +719,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.14.5.7.14.6"></a><h4>Returns</h4>
+<a name="id-1.2.14.5.6.14.6"></a><h4>Returns</h4>
 <p> the level_idc or 0 if the level is unknown</p>
 <p>Since 1.4</p>
 <p></p>
@@ -734,11 +728,11 @@
 <hr>
 <div class="refsect2">
 <a name="gst-codec-utils-h265-caps-set-level-tier-and-profile"></a><h3>gst_codec_utils_h265_caps_set_level_tier_and_profile ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_codec_utils_h265_caps_set_level_tier_and_profile
-                               (<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="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> *caps</code></em>,
                                 <em class="parameter"><code>const <span class="type">guint8</span> *profile_tier_level</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> len</code></em>);</pre>
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);</pre>
 <p>Sets the level, tier and profile in <em class="parameter"><code>caps</code></em>
  if it can be determined from
 <em class="parameter"><code>profile_tier_level</code></em>
@@ -746,7 +740,7 @@
 <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-h265-get-tier" title="gst_codec_utils_h265_get_tier ()"><code class="function">gst_codec_utils_h265_get_tier()</code></a> and <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-h265-get-profile" title="gst_codec_utils_h265_get_profile ()"><code class="function">gst_codec_utils_h265_get_profile()</code></a>
 for more details on the parameters.</p>
 <div class="refsect3">
-<a name="id-1.2.14.5.7.15.5"></a><h4>Parameters</h4>
+<a name="id-1.2.14.5.6.15.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -756,7 +750,7 @@
 <tbody>
 <tr>
 <td class="parameter_name"><p>caps</p></td>
-<td class="parameter_description"><p>the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> to which the level, tier and profile are to be added</p></td>
+<td class="parameter_description"><p>the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> to which the level, tier and profile are to be added</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
@@ -774,8 +768,8 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.14.5.7.15.6"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the level, tier, profile could be set, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise.</p>
+<a name="id-1.2.14.5.6.15.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the level, tier, profile could be set, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise.</p>
 <p>Since 1.4</p>
 <p></p>
 </div>
@@ -783,17 +777,17 @@
 <hr>
 <div class="refsect2">
 <a name="gst-codec-utils-mpeg4video-get-profile"></a><h3>gst_codec_utils_mpeg4video_get_profile ()</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> *
+<pre class="programlisting">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_codec_utils_mpeg4video_get_profile
                                (<em class="parameter"><code>const <span class="type">guint8</span> *vis_obj_seq</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> len</code></em>);</pre>
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);</pre>
 <p>Converts the profile indication in the stream's visual object sequence into
 a string. <em class="parameter"><code>vis_obj_seq</code></em>
  is expected to be the data following the visual
 object sequence start code. Only the first byte
 (profile_and_level_indication) is used.</p>
 <div class="refsect3">
-<a name="id-1.2.14.5.7.16.5"></a><h4>Parameters</h4>
+<a name="id-1.2.14.5.6.16.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -816,7 +810,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.14.5.7.16.6"></a><h4>Returns</h4>
+<a name="id-1.2.14.5.6.16.6"></a><h4>Returns</h4>
 <p> The profile as a const string, or NULL if there is an error.</p>
 <p></p>
 </div>
@@ -824,16 +818,16 @@
 <hr>
 <div class="refsect2">
 <a name="gst-codec-utils-mpeg4video-get-level"></a><h3>gst_codec_utils_mpeg4video_get_level ()</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> *
+<pre class="programlisting">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_codec_utils_mpeg4video_get_level (<em class="parameter"><code>const <span class="type">guint8</span> *vis_obj_seq</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> len</code></em>);</pre>
+                                      <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);</pre>
 <p>Converts the level indication in the stream's visual object sequence into
 a string. <em class="parameter"><code>vis_obj_seq</code></em>
  is expected to be the data following the visual
 object sequence start code. Only the first byte
 (profile_and_level_indication) is used.</p>
 <div class="refsect3">
-<a name="id-1.2.14.5.7.17.5"></a><h4>Parameters</h4>
+<a name="id-1.2.14.5.6.17.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -856,7 +850,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.14.5.7.17.6"></a><h4>Returns</h4>
+<a name="id-1.2.14.5.6.17.6"></a><h4>Returns</h4>
 <p> The level as a const string, or NULL if there is an error.</p>
 <p></p>
 </div>
@@ -864,11 +858,11 @@
 <hr>
 <div class="refsect2">
 <a name="gst-codec-utils-mpeg4video-caps-set-level-and-profile"></a><h3>gst_codec_utils_mpeg4video_caps_set_level_and_profile ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_codec_utils_mpeg4video_caps_set_level_and_profile
-                               (<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="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> *caps</code></em>,
                                 <em class="parameter"><code>const <span class="type">guint8</span> *vis_obj_seq</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> len</code></em>);</pre>
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);</pre>
 <p>Sets the level and profile in <em class="parameter"><code>caps</code></em>
  if it can be determined from
 <em class="parameter"><code>vis_obj_seq</code></em>
@@ -876,7 +870,7 @@
 <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-mpeg4video-get-profile" title="gst_codec_utils_mpeg4video_get_profile ()"><code class="function">gst_codec_utils_mpeg4video_get_profile()</code></a> for more details on the
 parameters.</p>
 <div class="refsect3">
-<a name="id-1.2.14.5.7.18.5"></a><h4>Parameters</h4>
+<a name="id-1.2.14.5.6.18.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -886,7 +880,7 @@
 <tbody>
 <tr>
 <td class="parameter_name"><p>caps</p></td>
-<td class="parameter_description"><p>the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> to which the level and profile are to be added</p></td>
+<td class="parameter_description"><p>the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> to which the level and profile are to be added</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
@@ -904,8 +898,8 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.14.5.7.18.6"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the level and profile could be set, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise.</p>
+<a name="id-1.2.14.5.6.18.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the level and profile could be set, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise.</p>
 <p></p>
 </div>
 </div>
@@ -916,6 +910,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstpbutilsdescriptions.html b/docs/libs/html/gst-plugins-base-libs-gstpbutilsdescriptions.html
index 33f4bde..32907b0 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstpbutilsdescriptions.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstpbutilsdescriptions.html
@@ -8,15 +8,14 @@
 <link rel="up" href="gstreamer-base-utils.html" title="Base Utils Library">
 <link rel="prev" href="gst-plugins-base-libs-gstpbutilscodecutils.html" title="gstpbutilscodecutils">
 <link rel="next" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html" title="gstpbutilsmissingplugins">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstpbutilsdescriptions.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstpbutilsdescriptions.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gstpbutilsdescriptions.description" class="shortcut">Description</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="gstreamer-base-utils.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -43,7 +42,7 @@
 <tbody>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-get-source-description" title="gst_pb_utils_get_source_description ()">gst_pb_utils_get_source_description</a> <span class="c_punctuation">()</span>
@@ -51,7 +50,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-get-sink-description" title="gst_pb_utils_get_sink_description ()">gst_pb_utils_get_sink_description</a> <span class="c_punctuation">()</span>
@@ -59,7 +58,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-get-decoder-description" title="gst_pb_utils_get_decoder_description ()">gst_pb_utils_get_decoder_description</a> <span class="c_punctuation">()</span>
@@ -67,7 +66,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-get-encoder-description" title="gst_pb_utils_get_encoder_description ()">gst_pb_utils_get_encoder_description</a> <span class="c_punctuation">()</span>
@@ -75,7 +74,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-get-element-description" title="gst_pb_utils_get_element_description ()">gst_pb_utils_get_element_description</a> <span class="c_punctuation">()</span>
@@ -83,7 +82,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-add-codec-description-to-tag-list" title="gst_pb_utils_add_codec_description_to_tag_list ()">gst_pb_utils_add_codec_description_to_tag_list</a> <span class="c_punctuation">()</span>
@@ -91,7 +90,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-get-codec-description" title="gst_pb_utils_get_codec_description ()">gst_pb_utils_get_codec_description</a> <span class="c_punctuation">()</span>
@@ -101,11 +100,6 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="gst-plugins-base-libs-gstpbutilsdescriptions.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">
-</pre>
-</div>
-<div class="refsect1">
 <a name="gst-plugins-base-libs-gstpbutilsdescriptions.includes"></a><h2>Includes</h2>
 <pre class="synopsis">#include &lt;gst/pbutils/descriptions.h&gt;
 </pre>
@@ -113,7 +107,7 @@
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstpbutilsdescriptions.description"></a><h2>Description</h2>
 <div class="refsect2">
-<a name="id-1.2.14.6.6.2"></a><p>
+<a name="id-1.2.14.6.5.2"></a><p>
 The above functions provide human-readable strings for media formats
 and decoder/demuxer/depayloader/encoder/muxer/payloader elements for use
 in error dialogs or other messages shown to users.
@@ -121,7 +115,7 @@
 <p>
 <a class="link" href="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-add-codec-description-to-tag-list" title="gst_pb_utils_add_codec_description_to_tag_list ()"><code class="function">gst_pb_utils_add_codec_description_to_tag_list()</code></a> is a utility function
 for demuxer and decoder elements to add audio/video codec tags from a
-given (fixed) <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>.
+given (fixed) <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a>.
 </p>
 </div>
 </div>
@@ -129,8 +123,8 @@
 <a name="gst-plugins-base-libs-gstpbutilsdescriptions.functions_details"></a><h2>Functions</h2>
 <div class="refsect2">
 <a name="gst-pb-utils-get-source-description"></a><h3>gst_pb_utils_get_source_description ()</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_pb_utils_get_source_description (<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> *protocol</code></em>);</pre>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+gst_pb_utils_get_source_description (<em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *protocol</code></em>);</pre>
 <p>Returns a localised string describing a source element handling the protocol
 specified in <em class="parameter"><code>protocol</code></em>
 , for use in error dialogs or other messages to be
@@ -140,7 +134,7 @@
 use <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-plugin-message-get-description" title="gst_missing_plugin_message_get_description ()"><code class="function">gst_missing_plugin_message_get_description()</code></a> to get a description of
 a missing feature from a missing-plugin message.</p>
 <div class="refsect3">
-<a name="id-1.2.14.6.7.2.6"></a><h4>Parameters</h4>
+<a name="id-1.2.14.6.6.2.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -155,17 +149,17 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.14.6.7.2.7"></a><h4>Returns</h4>
+<a name="id-1.2.14.6.6.2.7"></a><h4>Returns</h4>
 <p> a newly-allocated description string, or NULL on error. Free
-string with <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> when not needed any longer.</p>
+string with <a href="https://developer.gnome.org/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> when not needed any longer.</p>
 <p></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-pb-utils-get-sink-description"></a><h3>gst_pb_utils_get_sink_description ()</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_pb_utils_get_sink_description (<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> *protocol</code></em>);</pre>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+gst_pb_utils_get_sink_description (<em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *protocol</code></em>);</pre>
 <p>Returns a localised string describing a sink element handling the protocol
 specified in <em class="parameter"><code>protocol</code></em>
 , for use in error dialogs or other messages to be
@@ -175,7 +169,7 @@
 use <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-plugin-message-get-description" title="gst_missing_plugin_message_get_description ()"><code class="function">gst_missing_plugin_message_get_description()</code></a> to get a description of
 a missing feature from a missing-plugin message.</p>
 <div class="refsect3">
-<a name="id-1.2.14.6.7.3.6"></a><h4>Parameters</h4>
+<a name="id-1.2.14.6.6.3.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -190,17 +184,17 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.14.6.7.3.7"></a><h4>Returns</h4>
+<a name="id-1.2.14.6.6.3.7"></a><h4>Returns</h4>
 <p> a newly-allocated description string, or NULL on error. Free
-string with <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> when not needed any longer.</p>
+string with <a href="https://developer.gnome.org/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> when not needed any longer.</p>
 <p></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-pb-utils-get-decoder-description"></a><h3>gst_pb_utils_get_decoder_description ()</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_pb_utils_get_decoder_description (<em class="parameter"><code>const <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>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+gst_pb_utils_get_decoder_description (<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> *caps</code></em>);</pre>
 <p>Returns a localised string describing an decoder for the format specified
 in <em class="parameter"><code>caps</code></em>
 , for use in error dialogs or other messages to be seen by the user.
@@ -211,7 +205,7 @@
 use <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-plugin-message-get-description" title="gst_missing_plugin_message_get_description ()"><code class="function">gst_missing_plugin_message_get_description()</code></a> to get a description of
 a missing feature from a missing-plugin message.</p>
 <div class="refsect3">
-<a name="id-1.2.14.6.7.4.6"></a><h4>Parameters</h4>
+<a name="id-1.2.14.6.6.4.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -220,23 +214,23 @@
 </colgroup>
 <tbody><tr>
 <td class="parameter_name"><p>caps</p></td>
-<td class="parameter_description"><p>the (fixed) <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> for which an decoder description is needed</p></td>
+<td class="parameter_description"><p>the (fixed) <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> for which an decoder description is needed</p></td>
 <td class="parameter_annotations"> </td>
 </tr></tbody>
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.14.6.7.4.7"></a><h4>Returns</h4>
+<a name="id-1.2.14.6.6.4.7"></a><h4>Returns</h4>
 <p> a newly-allocated description string, or NULL on error. Free
-string with <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> when not needed any longer.</p>
+string with <a href="https://developer.gnome.org/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> when not needed any longer.</p>
 <p></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-pb-utils-get-encoder-description"></a><h3>gst_pb_utils_get_encoder_description ()</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_pb_utils_get_encoder_description (<em class="parameter"><code>const <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>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+gst_pb_utils_get_encoder_description (<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> *caps</code></em>);</pre>
 <p>Returns a localised string describing an encoder for the format specified
 in <em class="parameter"><code>caps</code></em>
 , for use in error dialogs or other messages to be seen by the user.
@@ -247,7 +241,7 @@
 use <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-plugin-message-get-description" title="gst_missing_plugin_message_get_description ()"><code class="function">gst_missing_plugin_message_get_description()</code></a> to get a description of
 a missing feature from a missing-plugin message.</p>
 <div class="refsect3">
-<a name="id-1.2.14.6.7.5.6"></a><h4>Parameters</h4>
+<a name="id-1.2.14.6.6.5.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -256,23 +250,23 @@
 </colgroup>
 <tbody><tr>
 <td class="parameter_name"><p>caps</p></td>
-<td class="parameter_description"><p>the (fixed) <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> for which an encoder description is needed</p></td>
+<td class="parameter_description"><p>the (fixed) <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> for which an encoder description is needed</p></td>
 <td class="parameter_annotations"> </td>
 </tr></tbody>
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.14.6.7.5.7"></a><h4>Returns</h4>
+<a name="id-1.2.14.6.6.5.7"></a><h4>Returns</h4>
 <p> a newly-allocated description string, or NULL on error. Free
-string with <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> when not needed any longer.</p>
+string with <a href="https://developer.gnome.org/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> when not needed any longer.</p>
 <p></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-pb-utils-get-element-description"></a><h3>gst_pb_utils_get_element_description ()</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_pb_utils_get_element_description (<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_name</code></em>);</pre>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+gst_pb_utils_get_element_description (<em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *factory_name</code></em>);</pre>
 <p>Returns a localised string describing the given element, for use in
 error dialogs or other messages to be seen by the user. Should never
 return NULL unless <em class="parameter"><code>factory_name</code></em>
@@ -281,7 +275,7 @@
 use <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-plugin-message-get-description" title="gst_missing_plugin_message_get_description ()"><code class="function">gst_missing_plugin_message_get_description()</code></a> to get a description of
 a missing feature from a missing-plugin message.</p>
 <div class="refsect3">
-<a name="id-1.2.14.6.7.6.6"></a><h4>Parameters</h4>
+<a name="id-1.2.14.6.6.6.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -296,25 +290,25 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.14.6.7.6.7"></a><h4>Returns</h4>
+<a name="id-1.2.14.6.6.6.7"></a><h4>Returns</h4>
 <p> a newly-allocated description string, or NULL on error. Free
-string with <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> when not needed any longer.</p>
+string with <a href="https://developer.gnome.org/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> when not needed any longer.</p>
 <p></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-pb-utils-add-codec-description-to-tag-list"></a><h3>gst_pb_utils_add_codec_description_to_tag_list ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_pb_utils_add_codec_description_to_tag_list
-                               (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a> *taglist</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> *codec_tag</code></em>,
-                                <em class="parameter"><code>const <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="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagList.html"><span class="type">GstTagList</span></a> *taglist</code></em>,
+                                <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *codec_tag</code></em>,
+                                <em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> *caps</code></em>);</pre>
 <p>Adds a codec tag describing the format specified by <em class="parameter"><code>caps</code></em>
  to <em class="parameter"><code>taglist</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.14.6.7.7.5"></a><h4>Parameters</h4>
+<a name="id-1.2.14.6.6.7.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -324,26 +318,26 @@
 <tbody>
 <tr>
 <td class="parameter_name"><p>taglist</p></td>
-<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a></p></td>
+<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagList.html"><span class="type">GstTagList</span></a></p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
 <td class="parameter_name"><p>codec_tag</p></td>
-<td class="parameter_description"><p> a GStreamer codec tag such as <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GST-TAG-AUDIO-CODEC:CAPS"><span class="type">GST_TAG_AUDIO_CODEC</span></a>,
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GST-TAG-VIDEO-CODEC:CAPS"><span class="type">GST_TAG_VIDEO_CODEC</span></a> or <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GST-TAG-CODEC:CAPS"><span class="type">GST_TAG_CODEC</span></a>. If none is specified,
+<td class="parameter_description"><p> a GStreamer codec tag such as <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagList.html#GST-TAG-AUDIO-CODEC:CAPS"><span class="type">GST_TAG_AUDIO_CODEC</span></a>,
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagList.html#GST-TAG-VIDEO-CODEC:CAPS"><span class="type">GST_TAG_VIDEO_CODEC</span></a> or <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagList.html#GST-TAG-CODEC:CAPS"><span class="type">GST_TAG_CODEC</span></a>. If none is specified,
 the function will attempt to detect the appropriate category. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
 </tr>
 <tr>
 <td class="parameter_name"><p>caps</p></td>
-<td class="parameter_description"><p>the (fixed) <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> for which a codec tag should be added.</p></td>
+<td class="parameter_description"><p>the (fixed) <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> for which a codec tag should be added.</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.14.6.7.7.6"></a><h4>Returns</h4>
+<a name="id-1.2.14.6.6.7.6"></a><h4>Returns</h4>
 <p> TRUE if a codec tag was added, FALSE otherwise.</p>
 <p></p>
 </div>
@@ -351,8 +345,8 @@
 <hr>
 <div class="refsect2">
 <a name="gst-pb-utils-get-codec-description"></a><h3>gst_pb_utils_get_codec_description ()</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_pb_utils_get_codec_description (<em class="parameter"><code>const <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>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+gst_pb_utils_get_codec_description (<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> *caps</code></em>);</pre>
 <p>Returns a localised (as far as this is possible) string describing the
 media format specified in <em class="parameter"><code>caps</code></em>
 , for use in error dialogs or other messages
@@ -361,7 +355,7 @@
 <p>Also see the convenience function
 <a class="link" href="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-add-codec-description-to-tag-list" title="gst_pb_utils_add_codec_description_to_tag_list ()"><code class="function">gst_pb_utils_add_codec_description_to_tag_list()</code></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.14.6.7.8.6"></a><h4>Parameters</h4>
+<a name="id-1.2.14.6.6.8.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -370,15 +364,15 @@
 </colgroup>
 <tbody><tr>
 <td class="parameter_name"><p>caps</p></td>
-<td class="parameter_description"><p>the (fixed) <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> for which an format description is needed</p></td>
+<td class="parameter_description"><p>the (fixed) <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> for which an format description is needed</p></td>
 <td class="parameter_annotations"> </td>
 </tr></tbody>
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.14.6.7.8.7"></a><h4>Returns</h4>
+<a name="id-1.2.14.6.6.8.7"></a><h4>Returns</h4>
 <p> a newly-allocated description string, or NULL on error. Free
-string with <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> when not needed any longer.</p>
+string with <a href="https://developer.gnome.org/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> when not needed any longer.</p>
 <p></p>
 </div>
 </div>
@@ -389,6 +383,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstpbutilsinstallplugins.html b/docs/libs/html/gst-plugins-base-libs-gstpbutilsinstallplugins.html
index 4ee83fc..33ec615 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstpbutilsinstallplugins.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstpbutilsinstallplugins.html
@@ -8,15 +8,14 @@
 <link rel="up" href="gstreamer-base-utils.html" title="Base Utils Library">
 <link rel="prev" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html" title="gstpbutilsmissingplugins">
 <link rel="next" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstpbutilsinstallplugins.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstpbutilsinstallplugins.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gstpbutilsinstallplugins.description" class="shortcut">Description</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="gstreamer-base-utils.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -65,7 +64,7 @@
 </td>
 </tr>
 <tr>
-<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<td class="function_type">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-return-get-name" title="gst_install_plugins_return_get_name ()">gst_install_plugins_return_get_name</a> <span class="c_punctuation">()</span>
@@ -73,7 +72,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-installation-in-progress" title="gst_install_plugins_installation_in_progress ()">gst_install_plugins_installation_in_progress</a> <span class="c_punctuation">()</span>
@@ -81,7 +80,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-supported" title="gst_install_plugins_supported ()">gst_install_plugins_supported</a> <span class="c_punctuation">()</span>
@@ -111,6 +110,30 @@
 <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-context-set-xid" title="gst_install_plugins_context_set_xid ()">gst_install_plugins_context_set_xid</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-context-set-confirm-search" title="gst_install_plugins_context_set_confirm_search ()">gst_install_plugins_context_set_confirm_search</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-context-set-desktop-id" title="gst_install_plugins_context_set_desktop_id ()">gst_install_plugins_context_set_desktop_id</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-context-set-startup-notification-id" title="gst_install_plugins_context_set_startup_notification_id ()">gst_install_plugins_context_set_startup_notification_id</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
 </tbody>
 </table></div>
 </div>
@@ -134,11 +157,6 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="gst-plugins-base-libs-gstpbutilsinstallplugins.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">
-</pre>
-</div>
-<div class="refsect1">
 <a name="gst-plugins-base-libs-gstpbutilsinstallplugins.includes"></a><h2>Includes</h2>
 <pre class="synopsis">#include &lt;gst/pbutils/install-plugins.h&gt;
 </pre>
@@ -146,7 +164,7 @@
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstpbutilsinstallplugins.description"></a><h2>Description</h2>
 <div class="refsect2">
-<a name="id-1.2.14.8.7.2"></a><h3>Overview</h3>
+<a name="id-1.2.14.8.6.2"></a><h3>Overview</h3>
 <p>
 Using this API, applications can request the installation of missing
 GStreamer plugins. These may be missing decoders/demuxers or encoders/muxers
@@ -492,7 +510,7 @@
 <code class="literal">audio/mpeg,mpegversion=(int){2,4}</code>, so they will not
 always exactly match the caps wanted by the application. It is up to the
 installer to deal with this (either by doing proper caps intersection using
-the GStreamer <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> API, or by only taking into account the media type).
+the GStreamer <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> API, or by only taking into account the media type).
 </p>
 <p>
 Another potential source of problems are plugins such as ladspa or
@@ -508,12 +526,12 @@
 <a name="GstInstallPluginsResultFunc"></a><h3>GstInstallPluginsResultFunc ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 <span class="c_punctuation">(</span>*GstInstallPluginsResultFunc<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsReturn" title="enum GstInstallPluginsReturn"><span class="type">GstInstallPluginsReturn</span></a> result</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>
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
 <p>The prototype of the callback function that will be called once the
 external plugin installer program has returned. You only need to provide
 a callback function if you are using the asynchronous interface.</p>
 <div class="refsect3">
-<a name="id-1.2.14.8.8.2.5"></a><h4>Parameters</h4>
+<a name="id-1.2.14.8.7.2.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -539,10 +557,10 @@
 <div class="refsect2">
 <a name="gst-install-plugins-async"></a><h3>gst_install_plugins_async ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsReturn" title="enum GstInstallPluginsReturn"><span class="returnvalue">GstInstallPluginsReturn</span></a>
-gst_install_plugins_async (<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> * const *details</code></em>,
+gst_install_plugins_async (<em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> * const *details</code></em>,
                            <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsContext" title="GstInstallPluginsContext"><span class="type">GstInstallPluginsContext</span></a> *ctx</code></em>,
                            <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsResultFunc" title="GstInstallPluginsResultFunc ()"><span class="type">GstInstallPluginsResultFunc</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>
+                           <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
 <p>Requests plugin installation without blocking. Once the plugins have been
 installed or installation has failed, <em class="parameter"><code>func</code></em>
  will be called with the result
@@ -560,7 +578,7 @@
 one go (as might be required if there is a demuxer for a certain format
 installed but no suitable video decoder and no suitable audio decoder).</p>
 <div class="refsect3">
-<a name="id-1.2.14.8.8.3.8"></a><h4>Parameters</h4>
+<a name="id-1.2.14.8.7.3.8"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -577,7 +595,7 @@
 <tr>
 <td class="parameter_name"><p>ctx</p></td>
 <td class="parameter_description"><p> a <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsContext" title="GstInstallPluginsContext"><span class="type">GstInstallPluginsContext</span></a>, or NULL. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
 </tr>
 <tr>
 <td class="parameter_name"><p>func</p></td>
@@ -594,7 +612,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.14.8.8.3.9"></a><h4>Returns</h4>
+<a name="id-1.2.14.8.7.3.9"></a><h4>Returns</h4>
 <p> result code whether an external installer could be started</p>
 <p></p>
 </div>
@@ -603,7 +621,7 @@
 <div class="refsect2">
 <a name="gst-install-plugins-sync"></a><h3>gst_install_plugins_sync ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsReturn" title="enum GstInstallPluginsReturn"><span class="returnvalue">GstInstallPluginsReturn</span></a>
-gst_install_plugins_sync (<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> * const *details</code></em>,
+gst_install_plugins_sync (<em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> * const *details</code></em>,
                           <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsContext" title="GstInstallPluginsContext"><span class="type">GstInstallPluginsContext</span></a> *ctx</code></em>);</pre>
 <p>Requests plugin installation and block until the plugins have been
 installed or installation has failed.</p>
@@ -613,7 +631,7 @@
 using the other non-GLib main loop. You should almost always use
 <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-async" title="gst_install_plugins_async ()"><code class="function">gst_install_plugins_async()</code></a> instead of this function.</p>
 <div class="refsect3">
-<a name="id-1.2.14.8.8.4.6"></a><h4>Parameters</h4>
+<a name="id-1.2.14.8.7.4.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -630,13 +648,13 @@
 <tr>
 <td class="parameter_name"><p>ctx</p></td>
 <td class="parameter_description"><p> a <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsContext" title="GstInstallPluginsContext"><span class="type">GstInstallPluginsContext</span></a>, or NULL. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
 </tr>
 </tbody>
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.14.8.8.4.7"></a><h4>Returns</h4>
+<a name="id-1.2.14.8.7.4.7"></a><h4>Returns</h4>
 <p> the result of the installation.</p>
 <p></p>
 </div>
@@ -644,14 +662,14 @@
 <hr>
 <div class="refsect2">
 <a name="gst-install-plugins-return-get-name"></a><h3>gst_install_plugins_return_get_name ()</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> *
+<pre class="programlisting">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_install_plugins_return_get_name (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsReturn" title="enum GstInstallPluginsReturn"><span class="type">GstInstallPluginsReturn</span></a> ret</code></em>);</pre>
 <p>Convenience function to return the descriptive string associated
 with a status code.  This function returns English strings and
 should not be used for user messages. It is here only to assist
 in debugging.</p>
 <div class="refsect3">
-<a name="id-1.2.14.8.8.5.5"></a><h4>Parameters</h4>
+<a name="id-1.2.14.8.7.5.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -666,7 +684,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.14.8.8.5.6"></a><h4>Returns</h4>
+<a name="id-1.2.14.8.7.5.6"></a><h4>Returns</h4>
 <p> a descriptive string for the status code in <em class="parameter"><code>ret</code></em>
 </p>
 <p></p>
@@ -675,13 +693,13 @@
 <hr>
 <div class="refsect2">
 <a name="gst-install-plugins-installation-in-progress"></a><h3>gst_install_plugins_installation_in_progress ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_install_plugins_installation_in_progress
                                (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
 <p>Checks whether plugin installation (initiated by this application only)
 is currently in progress.</p>
 <div class="refsect3">
-<a name="id-1.2.14.8.8.6.5"></a><h4>Returns</h4>
+<a name="id-1.2.14.8.7.6.5"></a><h4>Returns</h4>
 <p> TRUE if plugin installation is in progress, otherwise FALSE</p>
 <p></p>
 </div>
@@ -689,14 +707,14 @@
 <hr>
 <div class="refsect2">
 <a name="gst-install-plugins-supported"></a><h3>gst_install_plugins_supported ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_install_plugins_supported (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
 <p>Checks whether plugin installation is likely to be supported by the
 current environment. This currently only checks whether the helper script
 that is to be provided by the distribution or operating system vendor
 exists.</p>
 <div class="refsect3">
-<a name="id-1.2.14.8.8.7.5"></a><h4>Returns</h4>
+<a name="id-1.2.14.8.7.7.5"></a><h4>Returns</h4>
 <p> TRUE if plugin installation is likely to be supported.</p>
 <p></p>
 </div>
@@ -708,7 +726,7 @@
 gst_install_plugins_context_new (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
 <p>Creates a new <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsContext" title="GstInstallPluginsContext"><span class="type">GstInstallPluginsContext</span></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.14.8.8.8.5"></a><h4>Returns</h4>
+<a name="id-1.2.14.8.7.8.5"></a><h4>Returns</h4>
 <p> a new <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsContext" title="GstInstallPluginsContext"><span class="type">GstInstallPluginsContext</span></a>. Free with
 <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-context-free" title="gst_install_plugins_context_free ()"><code class="function">gst_install_plugins_context_free()</code></a> when no longer needed</p>
 <p></p>
@@ -721,7 +739,7 @@
 gst_install_plugins_context_free (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsContext" title="GstInstallPluginsContext"><span class="type">GstInstallPluginsContext</span></a> *ctx</code></em>);</pre>
 <p>Frees a <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsContext" title="GstInstallPluginsContext"><span class="type">GstInstallPluginsContext</span></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.14.8.8.9.5"></a><h4>Parameters</h4>
+<a name="id-1.2.14.8.7.9.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -741,7 +759,7 @@
 <a name="gst-install-plugins-context-set-xid"></a><h3>gst_install_plugins_context_set_xid ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_install_plugins_context_set_xid (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsContext" title="GstInstallPluginsContext"><span class="type">GstInstallPluginsContext</span></a> *ctx</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> xid</code></em>);</pre>
+                                     <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> xid</code></em>);</pre>
 <p>This function is for X11-based applications (such as most Gtk/Qt
 applications on linux/unix) only. You can use it to tell the external
 installer the XID of your main application window. That way the installer
@@ -763,7 +781,7 @@
 ...
 </pre>
 <div class="refsect3">
-<a name="id-1.2.14.8.8.10.8"></a><h4>Parameters</h4>
+<a name="id-1.2.14.8.7.10.8"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -785,6 +803,123 @@
 </table></div>
 </div>
 </div>
+<hr>
+<div class="refsect2">
+<a name="gst-install-plugins-context-set-confirm-search"></a><h3>gst_install_plugins_context_set_confirm_search ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gst_install_plugins_context_set_confirm_search
+                               (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsContext" title="GstInstallPluginsContext"><span class="type">GstInstallPluginsContext</span></a> *ctx</code></em>,
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> confirm_search</code></em>);</pre>
+<p>This function is used to tell the external installer process whether it
+should ask for confirmation or not before searching for missing plugins.</p>
+<p>If set, this option will be passed to the installer via a
+--interaction=[show-confirm-search|hide-confirm-search] command line option.</p>
+<div class="refsect3">
+<a name="id-1.2.14.8.7.11.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>ctx</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsContext" title="GstInstallPluginsContext"><span class="type">GstInstallPluginsContext</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>confirm_search</p></td>
+<td class="parameter_description"><p>whether to ask for confirmation before searching for plugins</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since 1.6</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-install-plugins-context-set-desktop-id"></a><h3>gst_install_plugins_context_set_desktop_id ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gst_install_plugins_context_set_desktop_id
+                               (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsContext" title="GstInstallPluginsContext"><span class="type">GstInstallPluginsContext</span></a> *ctx</code></em>,
+                                <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *desktop_id</code></em>);</pre>
+<p>This function is used to pass the calling application's desktop file ID to
+the external installer process.</p>
+<p>A desktop file ID is the basename of the desktop file, including the
+.desktop extension.</p>
+<p>If set, the desktop file ID will be passed to the installer via a
+--desktop-id= command line option.</p>
+<div class="refsect3">
+<a name="id-1.2.14.8.7.12.7"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>ctx</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsContext" title="GstInstallPluginsContext"><span class="type">GstInstallPluginsContext</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>desktop_id</p></td>
+<td class="parameter_description"><p>the desktop file ID of the calling application</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since 1.6</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-install-plugins-context-set-startup-notification-id"></a><h3>gst_install_plugins_context_set_startup_notification_id ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gst_install_plugins_context_set_startup_notification_id
+                               (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsContext" title="GstInstallPluginsContext"><span class="type">GstInstallPluginsContext</span></a> *ctx</code></em>,
+                                <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *startup_id</code></em>);</pre>
+<p>Sets the startup notification ID for the launched process.</p>
+<p>This is typically used to to pass the current X11 event timestamp to the
+external installer process.</p>
+<p>Startup notification IDs are defined in the
+<a class="ulink" href="http://standards.freedesktop.org/startup-notification-spec/startup-notification-latest.txt" target="_top">FreeDesktop.Org Startup Notifications standard</a>.</p>
+<p>If set, the ID will be passed to the installer via a
+--startup-notification-id= command line option.</p>
+<p>GTK+/GNOME applications should be able to create a startup notification ID
+like this:</p>
+<pre class="programlisting">
+  timestamp = gtk_get_current_event_time ();
+  startup_id = g_strdup_printf ("_TIME%u", timestamp);
+...
+</pre>
+<div class="refsect3">
+<a name="id-1.2.14.8.7.13.10"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>ctx</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsContext" title="GstInstallPluginsContext"><span class="type">GstInstallPluginsContext</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>startup_id</p></td>
+<td class="parameter_description"><p>the startup notification ID</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since 1.6</p>
+</div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstpbutilsinstallplugins.other_details"></a><h2>Types and Values</h2>
@@ -796,7 +931,7 @@
 <p>These codes indicate success or failure of starting an external installer
 program and to what extent the requested plugins could be installed.</p>
 <div class="refsect3">
-<a name="id-1.2.14.8.9.2.5"></a><h4>Members</h4>
+<a name="id-1.2.14.8.8.2.5"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -909,6 +1044,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstpbutilsmissingplugins.html b/docs/libs/html/gst-plugins-base-libs-gstpbutilsmissingplugins.html
index fa92ad4..fbd2453 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstpbutilsmissingplugins.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstpbutilsmissingplugins.html
@@ -8,15 +8,14 @@
 <link rel="up" href="gstreamer-base-utils.html" title="Base Utils Library">
 <link rel="prev" href="gst-plugins-base-libs-gstpbutilsdescriptions.html" title="gstpbutilsdescriptions">
 <link rel="next" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html" title="gstpbutilsinstallplugins">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstpbutilsmissingplugins.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstpbutilsmissingplugins.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gstpbutilsmissingplugins.description" class="shortcut">Description</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="gstreamer-base-utils.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -42,7 +41,7 @@
 <tbody>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-plugin-message-get-installer-detail" title="gst_missing_plugin_message_get_installer_detail ()">gst_missing_plugin_message_get_installer_detail</a> <span class="c_punctuation">()</span>
@@ -50,7 +49,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-plugin-message-get-description" title="gst_missing_plugin_message_get_description ()">gst_missing_plugin_message_get_description</a> <span class="c_punctuation">()</span>
@@ -58,7 +57,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-is-missing-plugin-message" title="gst_is_missing_plugin_message ()">gst_is_missing_plugin_message</a> <span class="c_punctuation">()</span>
@@ -66,7 +65,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="returnvalue">GstMessage</span></a> *
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMessage.html"><span class="returnvalue">GstMessage</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-decoder-message-new" title="gst_missing_decoder_message_new ()">gst_missing_decoder_message_new</a> <span class="c_punctuation">()</span>
@@ -74,7 +73,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="returnvalue">GstMessage</span></a> *
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMessage.html"><span class="returnvalue">GstMessage</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-encoder-message-new" title="gst_missing_encoder_message_new ()">gst_missing_encoder_message_new</a> <span class="c_punctuation">()</span>
@@ -82,7 +81,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="returnvalue">GstMessage</span></a> *
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMessage.html"><span class="returnvalue">GstMessage</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-uri-source-message-new" title="gst_missing_uri_source_message_new ()">gst_missing_uri_source_message_new</a> <span class="c_punctuation">()</span>
@@ -90,7 +89,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="returnvalue">GstMessage</span></a> *
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMessage.html"><span class="returnvalue">GstMessage</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-uri-sink-message-new" title="gst_missing_uri_sink_message_new ()">gst_missing_uri_sink_message_new</a> <span class="c_punctuation">()</span>
@@ -98,7 +97,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="returnvalue">GstMessage</span></a> *
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMessage.html"><span class="returnvalue">GstMessage</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-element-message-new" title="gst_missing_element_message_new ()">gst_missing_element_message_new</a> <span class="c_punctuation">()</span>
@@ -106,7 +105,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-uri-source-installer-detail-new" title="gst_missing_uri_source_installer_detail_new ()">gst_missing_uri_source_installer_detail_new</a> <span class="c_punctuation">()</span>
@@ -114,7 +113,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-uri-sink-installer-detail-new" title="gst_missing_uri_sink_installer_detail_new ()">gst_missing_uri_sink_installer_detail_new</a> <span class="c_punctuation">()</span>
@@ -122,7 +121,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-element-installer-detail-new" title="gst_missing_element_installer_detail_new ()">gst_missing_element_installer_detail_new</a> <span class="c_punctuation">()</span>
@@ -130,7 +129,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-decoder-installer-detail-new" title="gst_missing_decoder_installer_detail_new ()">gst_missing_decoder_installer_detail_new</a> <span class="c_punctuation">()</span>
@@ -138,7 +137,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-encoder-installer-detail-new" title="gst_missing_encoder_installer_detail_new ()">gst_missing_encoder_installer_detail_new</a> <span class="c_punctuation">()</span>
@@ -148,11 +147,6 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="gst-plugins-base-libs-gstpbutilsmissingplugins.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">
-</pre>
-</div>
-<div class="refsect1">
 <a name="gst-plugins-base-libs-gstpbutilsmissingplugins.includes"></a><h2>Includes</h2>
 <pre class="synopsis">#include &lt;gst/pbutils/missing-plugins.h&gt;
 </pre>
@@ -160,7 +154,7 @@
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstpbutilsmissingplugins.description"></a><h2>Description</h2>
 <div class="refsect2">
-<a name="id-1.2.14.7.6.2"></a><p>
+<a name="id-1.2.14.7.5.2"></a><p>
 Functions to create, recognise and parse missing-plugins messages for
 applications and elements.
 </p>
@@ -193,16 +187,16 @@
 <a name="gst-plugins-base-libs-gstpbutilsmissingplugins.functions_details"></a><h2>Functions</h2>
 <div class="refsect2">
 <a name="gst-missing-plugin-message-get-installer-detail"></a><h3>gst_missing_plugin_message_get_installer_detail ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_missing_plugin_message_get_installer_detail
-                               (<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> *msg</code></em>);</pre>
+                               (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMessage.html"><span class="type">GstMessage</span></a> *msg</code></em>);</pre>
 <p>Returns an opaque string containing all the details about the missing
 element to be passed to an external installer called via
 <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-async" title="gst_install_plugins_async ()"><code class="function">gst_install_plugins_async()</code></a> or <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-sync" title="gst_install_plugins_sync ()"><code class="function">gst_install_plugins_sync()</code></a>.</p>
 <p>This function is mainly for applications that call external plugin
 installation mechanisms using one of the two above-mentioned functions.</p>
 <div class="refsect3">
-<a name="id-1.2.14.7.7.2.6"></a><h4>Parameters</h4>
+<a name="id-1.2.14.7.6.2.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -211,24 +205,24 @@
 </colgroup>
 <tbody><tr>
 <td class="parameter_name"><p>msg</p></td>
-<td class="parameter_description"><p>a missing-plugin <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="type">GstMessage</span></a> of type <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GST-MESSAGE-ELEMENT:CAPS"><span class="type">GST_MESSAGE_ELEMENT</span></a></p></td>
+<td class="parameter_description"><p>a missing-plugin <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMessage.html"><span class="type">GstMessage</span></a> of type <span class="type">GST_MESSAGE_ELEMENT</span></p></td>
 <td class="parameter_annotations"> </td>
 </tr></tbody>
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.14.7.7.2.7"></a><h4>Returns</h4>
+<a name="id-1.2.14.7.6.2.7"></a><h4>Returns</h4>
 <p> a newly-allocated detail string, or NULL on error. Free string
-with <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> when not needed any longer.</p>
+with <a href="https://developer.gnome.org/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> when not needed any longer.</p>
 <p></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-missing-plugin-message-get-description"></a><h3>gst_missing_plugin_message_get_description ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_missing_plugin_message_get_description
-                               (<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> *msg</code></em>);</pre>
+                               (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMessage.html"><span class="type">GstMessage</span></a> *msg</code></em>);</pre>
 <p>Returns a localised string describing the missing feature, for use in
 error dialogs and the like. Should never return NULL unless <em class="parameter"><code>msg</code></em>
  is not
@@ -237,7 +231,7 @@
 describing a missing plugin, given a previously collected missing-plugin
 message</p>
 <div class="refsect3">
-<a name="id-1.2.14.7.7.3.6"></a><h4>Parameters</h4>
+<a name="id-1.2.14.7.6.3.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -246,27 +240,27 @@
 </colgroup>
 <tbody><tr>
 <td class="parameter_name"><p>msg</p></td>
-<td class="parameter_description"><p>a missing-plugin <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="type">GstMessage</span></a> of type <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GST-MESSAGE-ELEMENT:CAPS"><span class="type">GST_MESSAGE_ELEMENT</span></a></p></td>
+<td class="parameter_description"><p>a missing-plugin <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMessage.html"><span class="type">GstMessage</span></a> of type <span class="type">GST_MESSAGE_ELEMENT</span></p></td>
 <td class="parameter_annotations"> </td>
 </tr></tbody>
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.14.7.7.3.7"></a><h4>Returns</h4>
+<a name="id-1.2.14.7.6.3.7"></a><h4>Returns</h4>
 <p> a newly-allocated description string, or NULL on error. Free
-string with <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> when not needed any longer.</p>
+string with <a href="https://developer.gnome.org/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> when not needed any longer.</p>
 <p></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-is-missing-plugin-message"></a><h3>gst_is_missing_plugin_message ()</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_is_missing_plugin_message (<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> *msg</code></em>);</pre>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gst_is_missing_plugin_message (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMessage.html"><span class="type">GstMessage</span></a> *msg</code></em>);</pre>
 <p>Checks whether <em class="parameter"><code>msg</code></em>
  is a missing plugins message.</p>
 <div class="refsect3">
-<a name="id-1.2.14.7.7.4.5"></a><h4>Parameters</h4>
+<a name="id-1.2.14.7.6.4.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -275,30 +269,30 @@
 </colgroup>
 <tbody><tr>
 <td class="parameter_name"><p>msg</p></td>
-<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="type">GstMessage</span></a></p></td>
+<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMessage.html"><span class="type">GstMessage</span></a></p></td>
 <td class="parameter_annotations"> </td>
 </tr></tbody>
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.14.7.7.4.6"></a><h4>Returns</h4>
-<p> <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>msg</code></em>
-is a missing-plugins message, otherwise <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>.</p>
+<a name="id-1.2.14.7.6.4.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>msg</code></em>
+is a missing-plugins message, otherwise <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>.</p>
 <p></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-missing-decoder-message-new"></a><h3>gst_missing_decoder_message_new ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="returnvalue">GstMessage</span></a> *
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMessage.html"><span class="returnvalue">GstMessage</span></a> *
 gst_missing_decoder_message_new (<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>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *decode_caps</code></em>);</pre>
+                                 <em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> *decode_caps</code></em>);</pre>
 <p>Creates a missing-plugin message for <em class="parameter"><code>element</code></em>
  to notify the application
 that a decoder element for a particular set of (fixed) caps is missing.
 This function is mainly for use in plugins.</p>
 <div class="refsect3">
-<a name="id-1.2.14.7.7.5.5"></a><h4>Parameters</h4>
+<a name="id-1.2.14.7.6.5.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -320,23 +314,23 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.14.7.7.5.6"></a><h4>Returns</h4>
-<p> a new <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="type">GstMessage</span></a>, or NULL on error. </p>
+<a name="id-1.2.14.7.6.5.6"></a><h4>Returns</h4>
+<p> a new <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMessage.html"><span class="type">GstMessage</span></a>, or NULL on error. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-missing-encoder-message-new"></a><h3>gst_missing_encoder_message_new ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="returnvalue">GstMessage</span></a> *
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMessage.html"><span class="returnvalue">GstMessage</span></a> *
 gst_missing_encoder_message_new (<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>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *encode_caps</code></em>);</pre>
+                                 <em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> *encode_caps</code></em>);</pre>
 <p>Creates a missing-plugin message for <em class="parameter"><code>element</code></em>
  to notify the application
 that an encoder element for a particular set of (fixed) caps is missing.
 This function is mainly for use in plugins.</p>
 <div class="refsect3">
-<a name="id-1.2.14.7.7.6.5"></a><h4>Parameters</h4>
+<a name="id-1.2.14.7.6.6.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -358,23 +352,23 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.14.7.7.6.6"></a><h4>Returns</h4>
-<p> a new <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="type">GstMessage</span></a>, or NULL on error. </p>
+<a name="id-1.2.14.7.6.6.6"></a><h4>Returns</h4>
+<p> a new <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMessage.html"><span class="type">GstMessage</span></a>, or NULL on error. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-missing-uri-source-message-new"></a><h3>gst_missing_uri_source_message_new ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="returnvalue">GstMessage</span></a> *
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMessage.html"><span class="returnvalue">GstMessage</span></a> *
 gst_missing_uri_source_message_new (<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>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *protocol</code></em>);</pre>
+                                    <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *protocol</code></em>);</pre>
 <p>Creates a missing-plugin message for <em class="parameter"><code>element</code></em>
  to notify the application
 that a source element for a particular URI protocol is missing. This
 function is mainly for use in plugins.</p>
 <div class="refsect3">
-<a name="id-1.2.14.7.7.7.5"></a><h4>Parameters</h4>
+<a name="id-1.2.14.7.6.7.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -397,23 +391,23 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.14.7.7.7.6"></a><h4>Returns</h4>
-<p> a new <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="type">GstMessage</span></a>, or NULL on error. </p>
+<a name="id-1.2.14.7.6.7.6"></a><h4>Returns</h4>
+<p> a new <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMessage.html"><span class="type">GstMessage</span></a>, or NULL on error. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-missing-uri-sink-message-new"></a><h3>gst_missing_uri_sink_message_new ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="returnvalue">GstMessage</span></a> *
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMessage.html"><span class="returnvalue">GstMessage</span></a> *
 gst_missing_uri_sink_message_new (<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>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *protocol</code></em>);</pre>
+                                  <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *protocol</code></em>);</pre>
 <p>Creates a missing-plugin message for <em class="parameter"><code>element</code></em>
  to notify the application
 that a sink element for a particular URI protocol is missing. This
 function is mainly for use in plugins.</p>
 <div class="refsect3">
-<a name="id-1.2.14.7.7.8.5"></a><h4>Parameters</h4>
+<a name="id-1.2.14.7.6.8.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -436,23 +430,23 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.14.7.7.8.6"></a><h4>Returns</h4>
-<p> a new <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="type">GstMessage</span></a>, or NULL on error. </p>
+<a name="id-1.2.14.7.6.8.6"></a><h4>Returns</h4>
+<p> a new <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMessage.html"><span class="type">GstMessage</span></a>, or NULL on error. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-missing-element-message-new"></a><h3>gst_missing_element_message_new ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="returnvalue">GstMessage</span></a> *
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMessage.html"><span class="returnvalue">GstMessage</span></a> *
 gst_missing_element_message_new (<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>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *factory_name</code></em>);</pre>
+                                 <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *factory_name</code></em>);</pre>
 <p>Creates a missing-plugin message for <em class="parameter"><code>element</code></em>
  to notify the application
 that a certain required element is missing. This function is mainly for
 use in plugins.</p>
 <div class="refsect3">
-<a name="id-1.2.14.7.7.9.5"></a><h4>Parameters</h4>
+<a name="id-1.2.14.7.6.9.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -475,17 +469,17 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.14.7.7.9.6"></a><h4>Returns</h4>
-<p> a new <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="type">GstMessage</span></a>, or NULL on error. </p>
+<a name="id-1.2.14.7.6.9.6"></a><h4>Returns</h4>
+<p> a new <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMessage.html"><span class="type">GstMessage</span></a>, or NULL on error. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-missing-uri-source-installer-detail-new"></a><h3>gst_missing_uri_source_installer_detail_new ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_missing_uri_source_installer_detail_new
-                               (<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> *protocol</code></em>);</pre>
+                               (<em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *protocol</code></em>);</pre>
 <p>Returns an opaque string containing all the details about the missing
 element to be passed to an external installer called via
 <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-async" title="gst_install_plugins_async ()"><code class="function">gst_install_plugins_async()</code></a> or <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-sync" title="gst_install_plugins_sync ()"><code class="function">gst_install_plugins_sync()</code></a>.</p>
@@ -494,7 +488,7 @@
 the case where the application knows exactly what kind of plugin it is
 missing.</p>
 <div class="refsect3">
-<a name="id-1.2.14.7.7.10.6"></a><h4>Parameters</h4>
+<a name="id-1.2.14.7.6.10.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -510,18 +504,18 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.14.7.7.10.7"></a><h4>Returns</h4>
+<a name="id-1.2.14.7.6.10.7"></a><h4>Returns</h4>
 <p> a newly-allocated detail string, or NULL on error. Free string
-with <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> when not needed any longer.</p>
+with <a href="https://developer.gnome.org/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> when not needed any longer.</p>
 <p></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-missing-uri-sink-installer-detail-new"></a><h3>gst_missing_uri_sink_installer_detail_new ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_missing_uri_sink_installer_detail_new
-                               (<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> *protocol</code></em>);</pre>
+                               (<em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *protocol</code></em>);</pre>
 <p>Returns an opaque string containing all the details about the missing
 element to be passed to an external installer called via
 <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-async" title="gst_install_plugins_async ()"><code class="function">gst_install_plugins_async()</code></a> or <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-sync" title="gst_install_plugins_sync ()"><code class="function">gst_install_plugins_sync()</code></a>.</p>
@@ -530,7 +524,7 @@
 the case where the application knows exactly what kind of plugin it is
 missing.</p>
 <div class="refsect3">
-<a name="id-1.2.14.7.7.11.6"></a><h4>Parameters</h4>
+<a name="id-1.2.14.7.6.11.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -546,18 +540,18 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.14.7.7.11.7"></a><h4>Returns</h4>
+<a name="id-1.2.14.7.6.11.7"></a><h4>Returns</h4>
 <p> a newly-allocated detail string, or NULL on error. Free string
-with <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> when not needed any longer.</p>
+with <a href="https://developer.gnome.org/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> when not needed any longer.</p>
 <p></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-missing-element-installer-detail-new"></a><h3>gst_missing_element_installer_detail_new ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_missing_element_installer_detail_new
-                               (<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_name</code></em>);</pre>
+                               (<em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *factory_name</code></em>);</pre>
 <p>Returns an opaque string containing all the details about the missing
 element to be passed to an external installer called via
 <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-async" title="gst_install_plugins_async ()"><code class="function">gst_install_plugins_async()</code></a> or <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-sync" title="gst_install_plugins_sync ()"><code class="function">gst_install_plugins_sync()</code></a>.</p>
@@ -566,7 +560,7 @@
 the case where the application knows exactly what kind of plugin it is
 missing.</p>
 <div class="refsect3">
-<a name="id-1.2.14.7.7.12.6"></a><h4>Parameters</h4>
+<a name="id-1.2.14.7.6.12.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -582,18 +576,18 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.14.7.7.12.7"></a><h4>Returns</h4>
+<a name="id-1.2.14.7.6.12.7"></a><h4>Returns</h4>
 <p> a newly-allocated detail string, or NULL on error. Free string
-with <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> when not needed any longer.</p>
+with <a href="https://developer.gnome.org/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> when not needed any longer.</p>
 <p></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-missing-decoder-installer-detail-new"></a><h3>gst_missing_decoder_installer_detail_new ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_missing_decoder_installer_detail_new
-                               (<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *decode_caps</code></em>);</pre>
+                               (<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> *decode_caps</code></em>);</pre>
 <p>Returns an opaque string containing all the details about the missing
 element to be passed to an external installer called via
 <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-async" title="gst_install_plugins_async ()"><code class="function">gst_install_plugins_async()</code></a> or <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-sync" title="gst_install_plugins_sync ()"><code class="function">gst_install_plugins_sync()</code></a>.</p>
@@ -602,7 +596,7 @@
 the case where the application knows exactly what kind of plugin it is
 missing.</p>
 <div class="refsect3">
-<a name="id-1.2.14.7.7.13.6"></a><h4>Parameters</h4>
+<a name="id-1.2.14.7.6.13.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -617,18 +611,18 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.14.7.7.13.7"></a><h4>Returns</h4>
+<a name="id-1.2.14.7.6.13.7"></a><h4>Returns</h4>
 <p> a newly-allocated detail string, or NULL on error. Free string
-with <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> when not needed any longer.</p>
+with <a href="https://developer.gnome.org/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> when not needed any longer.</p>
 <p></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-missing-encoder-installer-detail-new"></a><h3>gst_missing_encoder_installer_detail_new ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_missing_encoder_installer_detail_new
-                               (<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *encode_caps</code></em>);</pre>
+                               (<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> *encode_caps</code></em>);</pre>
 <p>Returns an opaque string containing all the details about the missing
 element to be passed to an external installer called via
 <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-async" title="gst_install_plugins_async ()"><code class="function">gst_install_plugins_async()</code></a> or <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-sync" title="gst_install_plugins_sync ()"><code class="function">gst_install_plugins_sync()</code></a>.</p>
@@ -637,7 +631,7 @@
 the case where the application knows exactly what kind of plugin it is
 missing.</p>
 <div class="refsect3">
-<a name="id-1.2.14.7.7.14.6"></a><h4>Parameters</h4>
+<a name="id-1.2.14.7.6.14.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -652,9 +646,9 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.14.7.7.14.7"></a><h4>Returns</h4>
+<a name="id-1.2.14.7.6.14.7"></a><h4>Returns</h4>
 <p> a newly-allocated detail string, or NULL on error. Free string
-with <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> when not needed any longer.</p>
+with <a href="https://developer.gnome.org/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> when not needed any longer.</p>
 <p></p>
 </div>
 </div>
@@ -665,6 +659,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstpluginsbaseversion.html b/docs/libs/html/gst-plugins-base-libs-gstpluginsbaseversion.html
index 31001f5..5932e0c 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstpluginsbaseversion.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstpluginsbaseversion.html
@@ -8,15 +8,14 @@
 <link rel="up" href="gstreamer-base-utils.html" title="Base Utils Library">
 <link rel="prev" href="gst-plugins-base-libs-gstpbutils.html" title="gstpbutils">
 <link rel="next" href="gst-plugins-base-libs-gstpbutilscodecutils.html" title="gstpbutilscodecutils">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstpluginsbaseversion.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstpluginsbaseversion.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gstpluginsbaseversion.description" class="shortcut">Description</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="gstreamer-base-utils.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -72,7 +71,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstpluginsbaseversion.html#gst-plugins-base-version-string" title="gst_plugins_base_version_string ()">gst_plugins_base_version_string</a> <span class="c_punctuation">()</span>
@@ -82,11 +81,6 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="gst-plugins-base-libs-gstpluginsbaseversion.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">
-</pre>
-</div>
-<div class="refsect1">
 <a name="gst-plugins-base-libs-gstpluginsbaseversion.includes"></a><h2>Includes</h2>
 <pre class="synopsis">#include &lt;gst/pbutils/gstpluginsbaseversion.h&gt;
 </pre>
@@ -110,21 +104,21 @@
 <hr>
 <div class="refsect2">
 <a name="GST-PLUGINS-BASE-VERSION-MINOR:CAPS"></a><h3>GST_PLUGINS_BASE_VERSION_MINOR</h3>
-<pre class="programlisting">#define GST_PLUGINS_BASE_VERSION_MINOR (3)
+<pre class="programlisting">#define GST_PLUGINS_BASE_VERSION_MINOR (5)
 </pre>
 <p>The minor version of GStreamer's gst-plugins-base libraries at compile time.</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-PLUGINS-BASE-VERSION-MICRO:CAPS"></a><h3>GST_PLUGINS_BASE_VERSION_MICRO</h3>
-<pre class="programlisting">#define GST_PLUGINS_BASE_VERSION_MICRO (3)
+<pre class="programlisting">#define GST_PLUGINS_BASE_VERSION_MICRO (0)
 </pre>
 <p>The micro version of GStreamer's gst-plugins-base libraries at compile time.</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-PLUGINS-BASE-VERSION-NANO:CAPS"></a><h3>GST_PLUGINS_BASE_VERSION_NANO</h3>
-<pre class="programlisting">#define GST_PLUGINS_BASE_VERSION_NANO (0)
+<pre class="programlisting">#define GST_PLUGINS_BASE_VERSION_NANO (1)
 </pre>
 <p>The nano version of GStreamer's gst-plugins-base libraries at compile time.
 Actual releases have 0, GIT versions have 1, prerelease versions have 2-...</p>
@@ -138,13 +132,13 @@
 <div class="refsect2">
 <a name="gst-plugins-base-version"></a><h3>gst_plugins_base_version ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
-gst_plugins_base_version (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *major</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> *minor</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> *micro</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> *nano</code></em>);</pre>
+gst_plugins_base_version (<em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *major</code></em>,
+                          <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *minor</code></em>,
+                          <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *micro</code></em>,
+                          <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *nano</code></em>);</pre>
 <p>Gets the version number of the GStreamer Plugins Base libraries.</p>
 <div class="refsect3">
-<a name="id-1.2.14.4.7.7.5"></a><h4>Parameters</h4>
+<a name="id-1.2.14.4.6.7.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -154,22 +148,22 @@
 <tbody>
 <tr>
 <td class="parameter_name"><p>major</p></td>
-<td class="parameter_description"><p> pointer to a guint to store the major version number, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
+<td class="parameter_description"><p> pointer to a guint to store the major version number, or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
 <td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
 </tr>
 <tr>
 <td class="parameter_name"><p>minor</p></td>
-<td class="parameter_description"><p> pointer to a guint to store the minor version number, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
+<td class="parameter_description"><p> pointer to a guint to store the minor version number, or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
 <td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
 </tr>
 <tr>
 <td class="parameter_name"><p>micro</p></td>
-<td class="parameter_description"><p> pointer to a guint to store the micro version number, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
+<td class="parameter_description"><p> pointer to a guint to store the micro version number, or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
 <td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
 </tr>
 <tr>
 <td class="parameter_name"><p>nano</p></td>
-<td class="parameter_description"><p> pointer to a guint to store the nano version number, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
+<td class="parameter_description"><p> pointer to a guint to store the nano version number, or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
 <td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
 </tr>
 </tbody>
@@ -179,13 +173,13 @@
 <hr>
 <div class="refsect2">
 <a name="gst-plugins-base-version-string"></a><h3>gst_plugins_base_version_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> *
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_plugins_base_version_string (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
 <p>This function returns a string that is useful for describing this version
 of GStreamer's gst-plugins-base libraries to the outside world: user agent
 strings, logging, about dialogs ...</p>
 <div class="refsect3">
-<a name="id-1.2.14.4.7.8.5"></a><h4>Returns</h4>
+<a name="id-1.2.14.4.6.8.5"></a><h4>Returns</h4>
 <p> a newly allocated string describing this version of gst-plugins-base</p>
 <p></p>
 </div>
@@ -197,6 +191,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstriff.html b/docs/libs/html/gst-plugins-base-libs-gstriff.html
index 541bb06..aa01a13 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstriff.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstriff.html
@@ -8,15 +8,14 @@
 <link rel="up" href="gstreamer-riff.html" title="Riff Media Library">
 <link rel="prev" href="gstreamer-riff.html" title="Riff Media Library">
 <link rel="next" href="gstreamer-rtp.html" title="RTP Library">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstriff.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstriff.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gstriff.description" class="shortcut">Description</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="gstreamer-riff.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -42,7 +41,7 @@
 <tbody>
 <tr>
 <td class="function_type">
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="returnvalue">GstCaps</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-create-audio-caps" title="gst_riff_create_audio_caps ()">gst_riff_create_audio_caps</a> <span class="c_punctuation">()</span>
@@ -50,7 +49,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="returnvalue">GstCaps</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-create-audio-template-caps" title="gst_riff_create_audio_template_caps ()">gst_riff_create_audio_template_caps</a> <span class="c_punctuation">()</span>
@@ -58,7 +57,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="returnvalue">GstCaps</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-create-iavs-caps" title="gst_riff_create_iavs_caps ()">gst_riff_create_iavs_caps</a> <span class="c_punctuation">()</span>
@@ -66,7 +65,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="returnvalue">GstCaps</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-create-iavs-template-caps" title="gst_riff_create_iavs_template_caps ()">gst_riff_create_iavs_template_caps</a> <span class="c_punctuation">()</span>
@@ -74,7 +73,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="returnvalue">GstCaps</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-create-video-caps" title="gst_riff_create_video_caps ()">gst_riff_create_video_caps</a> <span class="c_punctuation">()</span>
@@ -82,7 +81,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="returnvalue">GstCaps</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-create-video-template-caps" title="gst_riff_create_video_template_caps ()">gst_riff_create_video_template_caps</a> <span class="c_punctuation">()</span>
@@ -98,7 +97,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-parse-chunk" title="gst_riff_parse_chunk ()">gst_riff_parse_chunk</a> <span class="c_punctuation">()</span>
@@ -106,7 +105,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-parse-file-header" title="gst_riff_parse_file_header ()">gst_riff_parse_file_header</a> <span class="c_punctuation">()</span>
@@ -122,7 +121,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-parse-strf-auds" title="gst_riff_parse_strf_auds ()">gst_riff_parse_strf_auds</a> <span class="c_punctuation">()</span>
@@ -130,7 +129,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-parse-strf-iavs" title="gst_riff_parse_strf_iavs ()">gst_riff_parse_strf_iavs</a> <span class="c_punctuation">()</span>
@@ -138,7 +137,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-parse-strf-vids" title="gst_riff_parse_strf_vids ()">gst_riff_parse_strf_vids</a> <span class="c_punctuation">()</span>
@@ -146,7 +145,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-parse-strh" title="gst_riff_parse_strh ()">gst_riff_parse_strh</a> <span class="c_punctuation">()</span>
@@ -164,11 +163,6 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="gst-plugins-base-libs-gstriff.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">
-</pre>
-</div>
-<div class="refsect1">
 <a name="gst-plugins-base-libs-gstriff.includes"></a><h2>Includes</h2>
 <pre class="synopsis">#include &lt;gst/riff/riff-media.h&gt;
 </pre>
@@ -182,50 +176,50 @@
 <a name="gst-plugins-base-libs-gstriff.functions_details"></a><h2>Functions</h2>
 <div class="refsect2">
 <a name="gst-riff-create-audio-caps"></a><h3>gst_riff_create_audio_caps ()</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> *
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="returnvalue">GstCaps</span></a> *
 gst_riff_create_audio_caps (<em class="parameter"><code><span class="type">guint16</span> codec_id</code></em>,
                             <em class="parameter"><code><span class="type">gst_riff_strh</span> *strh</code></em>,
                             <em class="parameter"><code><span class="type">gst_riff_strf_auds</span> *strf</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> *strf_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> *strd_data</code></em>,
+                            <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> *strf_data</code></em>,
+                            <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> *strd_data</code></em>,
                             <em class="parameter"><code><span class="type">char</span> **codec_name</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> channel_reorder_map[18]</code></em>);</pre>
+                            <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> channel_reorder_map[18]</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-riff-create-audio-template-caps"></a><h3>gst_riff_create_audio_template_caps ()</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> *
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="returnvalue">GstCaps</span></a> *
 gst_riff_create_audio_template_caps (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-riff-create-iavs-caps"></a><h3>gst_riff_create_iavs_caps ()</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> *
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="returnvalue">GstCaps</span></a> *
 gst_riff_create_iavs_caps (<em class="parameter"><code><span class="type">guint32</span> codec_fcc</code></em>,
                            <em class="parameter"><code><span class="type">gst_riff_strh</span> *strh</code></em>,
                            <em class="parameter"><code><span class="type">gst_riff_strf_iavs</span> *strf</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> *strf_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> *strd_data</code></em>,
+                           <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> *strf_data</code></em>,
+                           <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> *strd_data</code></em>,
                            <em class="parameter"><code><span class="type">char</span> **codec_name</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-riff-create-iavs-template-caps"></a><h3>gst_riff_create_iavs_template_caps ()</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> *
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="returnvalue">GstCaps</span></a> *
 gst_riff_create_iavs_template_caps (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-riff-create-video-caps"></a><h3>gst_riff_create_video_caps ()</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> *
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="returnvalue">GstCaps</span></a> *
 gst_riff_create_video_caps (<em class="parameter"><code><span class="type">guint32</span> codec_fcc</code></em>,
                             <em class="parameter"><code><span class="type">gst_riff_strh</span> *strh</code></em>,
                             <em class="parameter"><code><span class="type">gst_riff_strf_vids</span> *strf</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> *strf_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> *strd_data</code></em>,
+                            <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> *strf_data</code></em>,
+                            <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> *strd_data</code></em>,
                             <em class="parameter"><code><span class="type">char</span> **codec_name</code></em>);</pre>
 <div class="refsect3">
-<a name="id-1.2.8.3.7.6.4"></a><h4>Parameters</h4>
+<a name="id-1.2.8.3.6.6.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -252,13 +246,13 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>strf_data</p></td>
-<td class="parameter_description"><p>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 additional data in the strf
+<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> containing the additional data in the strf
 chunk outside reach of strf.size. Ususally a palette.</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
 <td class="parameter_name"><p>strd_data</p></td>
-<td class="parameter_description"><p>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 data in the strd stream header
+<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> containing the data in the strd stream header
 chunk. Usually codec initialization data.</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
@@ -274,7 +268,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-riff-create-video-template-caps"></a><h3>gst_riff_create_video_template_caps ()</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> *
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="returnvalue">GstCaps</span></a> *
 gst_riff_create_video_template_caps (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
 </div>
 <hr>
@@ -287,15 +281,15 @@
 <hr>
 <div class="refsect2">
 <a name="gst-riff-parse-chunk"></a><h3>gst_riff_parse_chunk ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_riff_parse_chunk (<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/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buf</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> *offset</code></em>,
+                      <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> *buf</code></em>,
+                      <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *offset</code></em>,
                       <em class="parameter"><code><span class="type">guint32</span> *fourcc</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> **chunk_data</code></em>);</pre>
+                      <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> **chunk_data</code></em>);</pre>
 <p>Reads a single chunk.</p>
 <div class="refsect3">
-<a name="id-1.2.8.3.7.9.5"></a><h4>Parameters</h4>
+<a name="id-1.2.8.3.6.9.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -334,7 +328,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.8.3.7.9.6"></a><h4>Returns</h4>
+<a name="id-1.2.8.3.6.9.6"></a><h4>Returns</h4>
 <p> FALSE on error, TRUE otherwise</p>
 <p></p>
 </div>
@@ -342,9 +336,9 @@
 <hr>
 <div class="refsect2">
 <a name="gst-riff-parse-file-header"></a><h3>gst_riff_parse_file_header ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_riff_parse_file_header (<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/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/GstBuffer.html"><span class="type">GstBuffer</span></a> *buf</code></em>,
                             <em class="parameter"><code><span class="type">guint32</span> *doctype</code></em>);</pre>
 <p>Reads the first few bytes from the provided buffer, checks
 if this stream is a RIFF stream, and determines document type.
@@ -352,7 +346,7 @@
  so it should not be used anymore
 after calling this function.</p>
 <div class="refsect3">
-<a name="id-1.2.8.3.7.10.5"></a><h4>Parameters</h4>
+<a name="id-1.2.8.3.6.10.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -381,7 +375,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.8.3.7.10.6"></a><h4>Returns</h4>
+<a name="id-1.2.8.3.6.10.6"></a><h4>Returns</h4>
 <p> FALSE if this is not a RIFF stream (in which case the
 caller should error out; we already throw an error), or TRUE
 if it is.</p>
@@ -393,11 +387,11 @@
 <a name="gst-riff-parse-info"></a><h3>gst_riff_parse_info ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_riff_parse_info (<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/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-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a> **taglist</code></em>);</pre>
+                     <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><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/GstTagList.html"><span class="type">GstTagList</span></a> **taglist</code></em>);</pre>
 <p>Parses stream metadata from input data.</p>
 <div class="refsect3">
-<a name="id-1.2.8.3.7.11.5"></a><h4>Parameters</h4>
+<a name="id-1.2.8.3.6.11.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -429,17 +423,17 @@
 <hr>
 <div class="refsect2">
 <a name="gst-riff-parse-strf-auds"></a><h3>gst_riff_parse_strf_auds ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_riff_parse_strf_auds (<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/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/GstBuffer.html"><span class="type">GstBuffer</span></a> *buf</code></em>,
                           <em class="parameter"><code><span class="type">gst_riff_strf_auds</span> **strf</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> **data</code></em>);</pre>
+                          <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> **data</code></em>);</pre>
 <p>Parses an audio stream´s strf structure plus optionally some
 extradata from input data. This function takes ownership of <em class="parameter"><code>buf</code></em>
 .
 use.</p>
 <div class="refsect3">
-<a name="id-1.2.8.3.7.12.5"></a><h4>Parameters</h4>
+<a name="id-1.2.8.3.6.12.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -474,7 +468,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.8.3.7.12.6"></a><h4>Returns</h4>
+<a name="id-1.2.8.3.6.12.6"></a><h4>Returns</h4>
 <p> TRUE if parsing succeeded, otherwise FALSE. The stream
 should be skipped on error, but it is not fatal.</p>
 <p></p>
@@ -483,17 +477,17 @@
 <hr>
 <div class="refsect2">
 <a name="gst-riff-parse-strf-iavs"></a><h3>gst_riff_parse_strf_iavs ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_riff_parse_strf_iavs (<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/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/GstBuffer.html"><span class="type">GstBuffer</span></a> *buf</code></em>,
                           <em class="parameter"><code><span class="type">gst_riff_strf_iavs</span> **strf</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> **data</code></em>);</pre>
+                          <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> **data</code></em>);</pre>
 <p>Parses a interleaved (also known as "complex")  stream´s strf
 structure plus optionally some extradata from input data. This
 function takes ownership of <em class="parameter"><code>buf</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.8.3.7.13.5"></a><h4>Parameters</h4>
+<a name="id-1.2.8.3.6.13.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -528,7 +522,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.8.3.7.13.6"></a><h4>Returns</h4>
+<a name="id-1.2.8.3.6.13.6"></a><h4>Returns</h4>
 <p> TRUE if parsing succeeded, otherwise FALSE.</p>
 <p></p>
 </div>
@@ -536,16 +530,16 @@
 <hr>
 <div class="refsect2">
 <a name="gst-riff-parse-strf-vids"></a><h3>gst_riff_parse_strf_vids ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_riff_parse_strf_vids (<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/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/GstBuffer.html"><span class="type">GstBuffer</span></a> *buf</code></em>,
                           <em class="parameter"><code><span class="type">gst_riff_strf_vids</span> **strf</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> **data</code></em>);</pre>
+                          <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> **data</code></em>);</pre>
 <p>Parses a video stream´s strf structure plus optionally some
 extradata from input data. This function takes ownership of <em class="parameter"><code>buf</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.8.3.7.14.5"></a><h4>Parameters</h4>
+<a name="id-1.2.8.3.6.14.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -580,7 +574,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.8.3.7.14.6"></a><h4>Returns</h4>
+<a name="id-1.2.8.3.6.14.6"></a><h4>Returns</h4>
 <p> TRUE if parsing succeeded, otherwise FALSE. The stream
 should be skipped on error, but it is not fatal.</p>
 <p></p>
@@ -589,14 +583,14 @@
 <hr>
 <div class="refsect2">
 <a name="gst-riff-parse-strh"></a><h3>gst_riff_parse_strh ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_riff_parse_strh (<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/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/GstBuffer.html"><span class="type">GstBuffer</span></a> *buf</code></em>,
                      <em class="parameter"><code><span class="type">gst_riff_strh</span> **strh</code></em>);</pre>
 <p>Parses a strh structure from input data. Takes ownership of <em class="parameter"><code>buf</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.8.3.7.15.5"></a><h4>Parameters</h4>
+<a name="id-1.2.8.3.6.15.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -624,7 +618,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.8.3.7.15.6"></a><h4>Returns</h4>
+<a name="id-1.2.8.3.6.15.6"></a><h4>Returns</h4>
 <p> TRUE if parsing succeeded, otherwise FALSE. The stream
 should be skipped on error, but it is not fatal.</p>
 <p></p>
@@ -638,11 +632,11 @@
                      <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><span class="type">guint64</span> *offset</code></em>,
                      <em class="parameter"><code><span class="type">guint32</span> *tag</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> **chunk_data</code></em>);</pre>
+                     <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> **chunk_data</code></em>);</pre>
 <p>Reads a single chunk of data. 'JUNK' chunks are skipped
 automatically.</p>
 <div class="refsect3">
-<a name="id-1.2.8.3.7.16.5"></a><h4>Parameters</h4>
+<a name="id-1.2.8.3.6.16.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -679,7 +673,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.8.3.7.16.6"></a><h4>Returns</h4>
+<a name="id-1.2.8.3.6.16.6"></a><h4>Returns</h4>
 <p> flow status.</p>
 <p></p>
 </div>
@@ -691,6 +685,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstrtcpbuffer.html b/docs/libs/html/gst-plugins-base-libs-gstrtcpbuffer.html
index fd23615..ced0821 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstrtcpbuffer.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstrtcpbuffer.html
@@ -8,15 +8,14 @@
 <link rel="up" href="gstreamer-rtp.html" title="RTP Library">
 <link rel="prev" href="gst-plugins-base-libs-gstrtpbuffer.html" title="gstrtpbuffer">
 <link rel="next" href="gst-plugins-base-libs-gstrtppayloads.html" title="gstrtppayloads">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstrtcpbuffer.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstrtcpbuffer.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gstrtcpbuffer.description" class="shortcut">Description</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="gstreamer-rtp.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -50,7 +49,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="returnvalue">GstBuffer</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-buffer-new-take-data" title="gst_rtcp_buffer_new_take_data ()">gst_rtcp_buffer_new_take_data</a> <span class="c_punctuation">()</span>
@@ -58,7 +57,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="returnvalue">GstBuffer</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-buffer-new-copy-data" title="gst_rtcp_buffer_new_copy_data ()">gst_rtcp_buffer_new_copy_data</a> <span class="c_punctuation">()</span>
@@ -66,7 +65,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-buffer-validate-data" title="gst_rtcp_buffer_validate_data ()">gst_rtcp_buffer_validate_data</a> <span class="c_punctuation">()</span>
@@ -74,7 +73,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-buffer-validate" title="gst_rtcp_buffer_validate ()">gst_rtcp_buffer_validate</a> <span class="c_punctuation">()</span>
@@ -82,7 +81,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="returnvalue">GstBuffer</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-buffer-new" title="gst_rtcp_buffer_new ()">gst_rtcp_buffer_new</a> <span class="c_punctuation">()</span>
@@ -90,7 +89,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-buffer-map" title="gst_rtcp_buffer_map ()">gst_rtcp_buffer_map</a> <span class="c_punctuation">()</span>
@@ -98,7 +97,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-buffer-unmap" title="gst_rtcp_buffer_unmap ()">gst_rtcp_buffer_unmap</a> <span class="c_punctuation">()</span>
@@ -106,7 +105,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-buffer-get-packet-count" title="gst_rtcp_buffer_get_packet_count ()">gst_rtcp_buffer_get_packet_count</a> <span class="c_punctuation">()</span>
@@ -114,7 +113,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-buffer-get-first-packet" title="gst_rtcp_buffer_get_first_packet ()">gst_rtcp_buffer_get_first_packet</a> <span class="c_punctuation">()</span>
@@ -122,7 +121,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-move-to-next" title="gst_rtcp_packet_move_to_next ()">gst_rtcp_packet_move_to_next</a> <span class="c_punctuation">()</span>
@@ -130,7 +129,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-buffer-add-packet" title="gst_rtcp_buffer_add_packet ()">gst_rtcp_buffer_add_packet</a> <span class="c_punctuation">()</span>
@@ -138,7 +137,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-remove" title="gst_rtcp_packet_remove ()">gst_rtcp_packet_remove</a> <span class="c_punctuation">()</span>
@@ -146,7 +145,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-get-padding" title="gst_rtcp_packet_get_padding ()">gst_rtcp_packet_get_padding</a> <span class="c_punctuation">()</span>
@@ -210,7 +209,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-get-rb-count" title="gst_rtcp_packet_get_rb_count ()">gst_rtcp_packet_get_rb_count</a> <span class="c_punctuation">()</span>
@@ -226,7 +225,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-add-rb" title="gst_rtcp_packet_add_rb ()">gst_rtcp_packet_add_rb</a> <span class="c_punctuation">()</span>
@@ -242,7 +241,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sdes-get-item-count" title="gst_rtcp_packet_sdes_get_item_count ()">gst_rtcp_packet_sdes_get_item_count</a> <span class="c_punctuation">()</span>
@@ -250,7 +249,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sdes-first-item" title="gst_rtcp_packet_sdes_first_item ()">gst_rtcp_packet_sdes_first_item</a> <span class="c_punctuation">()</span>
@@ -258,7 +257,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sdes-next-item" title="gst_rtcp_packet_sdes_next_item ()">gst_rtcp_packet_sdes_next_item</a> <span class="c_punctuation">()</span>
@@ -274,7 +273,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sdes-first-entry" title="gst_rtcp_packet_sdes_first_entry ()">gst_rtcp_packet_sdes_first_entry</a> <span class="c_punctuation">()</span>
@@ -282,7 +281,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sdes-next-entry" title="gst_rtcp_packet_sdes_next_entry ()">gst_rtcp_packet_sdes_next_entry</a> <span class="c_punctuation">()</span>
@@ -290,7 +289,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sdes-get-entry" title="gst_rtcp_packet_sdes_get_entry ()">gst_rtcp_packet_sdes_get_entry</a> <span class="c_punctuation">()</span>
@@ -298,7 +297,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sdes-copy-entry" title="gst_rtcp_packet_sdes_copy_entry ()">gst_rtcp_packet_sdes_copy_entry</a> <span class="c_punctuation">()</span>
@@ -306,7 +305,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sdes-add-item" title="gst_rtcp_packet_sdes_add_item ()">gst_rtcp_packet_sdes_add_item</a> <span class="c_punctuation">()</span>
@@ -314,7 +313,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sdes-add-entry" title="gst_rtcp_packet_sdes_add_entry ()">gst_rtcp_packet_sdes_add_entry</a> <span class="c_punctuation">()</span>
@@ -322,7 +321,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-bye-get-ssrc-count" title="gst_rtcp_packet_bye_get_ssrc_count ()">gst_rtcp_packet_bye_get_ssrc_count</a> <span class="c_punctuation">()</span>
@@ -338,7 +337,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-bye-add-ssrc" title="gst_rtcp_packet_bye_add_ssrc ()">gst_rtcp_packet_bye_add_ssrc</a> <span class="c_punctuation">()</span>
@@ -346,7 +345,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-bye-add-ssrcs" title="gst_rtcp_packet_bye_add_ssrcs ()">gst_rtcp_packet_bye_add_ssrcs</a> <span class="c_punctuation">()</span>
@@ -362,7 +361,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-bye-get-reason" title="gst_rtcp_packet_bye_get_reason ()">gst_rtcp_packet_bye_get_reason</a> <span class="c_punctuation">()</span>
@@ -370,7 +369,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-bye-set-reason" title="gst_rtcp_packet_bye_set_reason ()">gst_rtcp_packet_bye_set_reason</a> <span class="c_punctuation">()</span>
@@ -434,7 +433,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-fb-set-fci-length" title="gst_rtcp_packet_fb_set_fci_length ()">gst_rtcp_packet_fb_set_fci_length</a> <span class="c_punctuation">()</span>
@@ -473,7 +472,7 @@
 </td>
 </tr>
 <tr>
-<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<td class="function_type">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-sdes-type-to-name" title="gst_rtcp_sdes_type_to_name ()">gst_rtcp_sdes_type_to_name</a> <span class="c_punctuation">()</span>
@@ -538,11 +537,6 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="gst-plugins-base-libs-gstrtcpbuffer.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">
-</pre>
-</div>
-<div class="refsect1">
 <a name="gst-plugins-base-libs-gstrtcpbuffer.includes"></a><h2>Includes</h2>
 <pre class="synopsis">#include &lt;gst/rtp/gstrtcpbuffer.h&gt;
 </pre>
@@ -551,10 +545,10 @@
 <a name="gst-plugins-base-libs-gstrtcpbuffer.description"></a><h2>Description</h2>
 <p>Note: The API in this module is not yet declared stable.</p>
 <div class="refsect2">
-<a name="id-1.2.9.7.7.3"></a><p>
+<a name="id-1.2.9.7.6.3"></a><p>
 The GstRTPCBuffer helper functions makes it easy to parse and create regular 
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> objects that contain compound RTCP packets. These buffers are typically
-of 'application/x-rtcp' <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>.
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> objects that contain compound RTCP packets. These buffers are typically
+of 'application/x-rtcp' <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a>.
 </p>
 <p>
 An RTCP buffer consists of 1 or more <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> structures that you can
@@ -583,9 +577,9 @@
 <hr>
 <div class="refsect2">
 <a name="gst-rtcp-buffer-new-take-data"></a><h3>gst_rtcp_buffer_new_take_data ()</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_rtcp_buffer_new_take_data (<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#guint"><span class="type">guint</span></a> len</code></em>);</pre>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="returnvalue">GstBuffer</span></a> *
+gst_rtcp_buffer_new_take_data (<em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
+                               <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);</pre>
 <p>Create a new buffer and set the data and size of the buffer to <em class="parameter"><code>data</code></em>
  and <em class="parameter"><code>len</code></em>
 
@@ -594,7 +588,7 @@
 function transfers ownership of <em class="parameter"><code>data</code></em>
  to the new buffer.</p>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.4.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.7.7.4.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -616,7 +610,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.4.6"></a><h4>Returns</h4>
+<a name="id-1.2.9.7.7.4.6"></a><h4>Returns</h4>
 <p> A newly allocated buffer with <em class="parameter"><code>data</code></em>
 and of size <em class="parameter"><code>len</code></em>
 .</p>
@@ -626,9 +620,9 @@
 <hr>
 <div class="refsect2">
 <a name="gst-rtcp-buffer-new-copy-data"></a><h3>gst_rtcp_buffer_new_copy_data ()</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_rtcp_buffer_new_copy_data (<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#guint"><span class="type">guint</span></a> len</code></em>);</pre>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="returnvalue">GstBuffer</span></a> *
+gst_rtcp_buffer_new_copy_data (<em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
+                               <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);</pre>
 <p>Create a new buffer and set the data to a copy of <em class="parameter"><code>len</code></em>
 
 bytes of <em class="parameter"><code>data</code></em>
@@ -636,7 +630,7 @@
 . The data will be freed when the buffer
 is freed.</p>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.5.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.7.7.5.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -658,7 +652,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.5.6"></a><h4>Returns</h4>
+<a name="id-1.2.9.7.7.5.6"></a><h4>Returns</h4>
 <p> A newly allocated buffer with a copy of <em class="parameter"><code>data</code></em>
 and of size <em class="parameter"><code>len</code></em>
 .</p>
@@ -668,9 +662,9 @@
 <hr>
 <div class="refsect2">
 <a name="gst-rtcp-buffer-validate-data"></a><h3>gst_rtcp_buffer_validate_data ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_rtcp_buffer_validate_data (<em class="parameter"><code><span class="type">guint8</span> *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> len</code></em>);</pre>
+                               <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);</pre>
 <p>Check if the <em class="parameter"><code>data</code></em>
  and <em class="parameter"><code>size</code></em>
  point to the data of a valid RTCP (compound)
@@ -678,7 +672,7 @@
 Use this function to validate a packet before using the other functions in
 this module.</p>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.6.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.7.7.6.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -701,7 +695,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.6.6"></a><h4>Returns</h4>
+<a name="id-1.2.9.7.7.6.6"></a><h4>Returns</h4>
 <p> TRUE if the data points to a valid RTCP packet.</p>
 <p></p>
 </div>
@@ -709,13 +703,13 @@
 <hr>
 <div class="refsect2">
 <a name="gst-rtcp-buffer-validate"></a><h3>gst_rtcp_buffer_validate ()</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_rtcp_buffer_validate (<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>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gst_rtcp_buffer_validate (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> *buffer</code></em>);</pre>
 <p>Check if the data pointed to by <em class="parameter"><code>buffer</code></em>
  is a valid RTCP packet using
 <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-buffer-validate-data" title="gst_rtcp_buffer_validate_data ()"><code class="function">gst_rtcp_buffer_validate_data()</code></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.7.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.7.7.7.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -730,7 +724,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.7.6"></a><h4>Returns</h4>
+<a name="id-1.2.9.7.7.7.6"></a><h4>Returns</h4>
 <p> TRUE if <em class="parameter"><code>buffer</code></em>
 is a valid RTCP packet.</p>
 <p></p>
@@ -739,13 +733,13 @@
 <hr>
 <div class="refsect2">
 <a name="gst-rtcp-buffer-new"></a><h3>gst_rtcp_buffer_new ()</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_rtcp_buffer_new (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> mtu</code></em>);</pre>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="returnvalue">GstBuffer</span></a> *
+gst_rtcp_buffer_new (<em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> mtu</code></em>);</pre>
 <p>Create a new buffer for constructing RTCP packets. The packet will have a
 maximum size of <em class="parameter"><code>mtu</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.8.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.7.7.8.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -760,7 +754,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.8.6"></a><h4>Returns</h4>
+<a name="id-1.2.9.7.7.8.6"></a><h4>Returns</h4>
 <p> A newly allocated buffer.</p>
 <p></p>
 </div>
@@ -768,8 +762,8 @@
 <hr>
 <div class="refsect2">
 <a name="gst-rtcp-buffer-map"></a><h3>gst_rtcp_buffer_map ()</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_rtcp_buffer_map (<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 href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gst_rtcp_buffer_map (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> *buffer</code></em>,
                      <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMemory.html#GstMapFlags"><span class="type">GstMapFlags</span></a> flags</code></em>,
                      <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPBuffer" title="struct GstRTCPBuffer"><span class="type">GstRTCPBuffer</span></a> *rtcp</code></em>);</pre>
 <p>Open <em class="parameter"><code>buffer</code></em>
@@ -778,7 +772,7 @@
 buffer state is stored in <em class="parameter"><code>rtcp</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.9.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.7.7.9.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -808,16 +802,16 @@
 <hr>
 <div class="refsect2">
 <a name="gst-rtcp-buffer-unmap"></a><h3>gst_rtcp_buffer_unmap ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_rtcp_buffer_unmap (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPBuffer" title="struct GstRTCPBuffer"><span class="type">GstRTCPBuffer</span></a> *rtcp</code></em>);</pre>
 <p>Finish <em class="parameter"><code>rtcp</code></em>
- after being constructured. This function is usually called
+ after being constructed. This function is usually called
 after <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-buffer-map" title="gst_rtcp_buffer_map ()"><code class="function">gst_rtcp_buffer_map()</code></a> and after adding the RTCP items to the new buffer.</p>
 <p>The function adjusts the size of <em class="parameter"><code>rtcp</code></em>
  with the total length of all the
 added packets.</p>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.10.6"></a><h4>Parameters</h4>
+<a name="id-1.2.9.7.7.10.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -835,12 +829,12 @@
 <hr>
 <div class="refsect2">
 <a name="gst-rtcp-buffer-get-packet-count"></a><h3>gst_rtcp_buffer_get_packet_count ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_rtcp_buffer_get_packet_count (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPBuffer" title="struct GstRTCPBuffer"><span class="type">GstRTCPBuffer</span></a> *rtcp</code></em>);</pre>
 <p>Get the number of RTCP packets in <em class="parameter"><code>rtcp</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.11.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.7.7.11.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -855,7 +849,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.11.6"></a><h4>Returns</h4>
+<a name="id-1.2.9.7.7.11.6"></a><h4>Returns</h4>
 <p> the number of RTCP packets in <em class="parameter"><code>rtcp</code></em>
 .</p>
 <p></p>
@@ -864,14 +858,14 @@
 <hr>
 <div class="refsect2">
 <a name="gst-rtcp-buffer-get-first-packet"></a><h3>gst_rtcp_buffer_get_first_packet ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_rtcp_buffer_get_first_packet (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPBuffer" title="struct GstRTCPBuffer"><span class="type">GstRTCPBuffer</span></a> *rtcp</code></em>,
                                   <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);</pre>
 <p>Initialize a new <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> pointer that points to the first packet in
 <em class="parameter"><code>rtcp</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.12.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.7.7.12.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -893,7 +887,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.12.6"></a><h4>Returns</h4>
+<a name="id-1.2.9.7.7.12.6"></a><h4>Returns</h4>
 <p> TRUE if the packet existed in <em class="parameter"><code>rtcp</code></em>
 .</p>
 <p></p>
@@ -902,14 +896,14 @@
 <hr>
 <div class="refsect2">
 <a name="gst-rtcp-packet-move-to-next"></a><h3>gst_rtcp_packet_move_to_next ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_rtcp_packet_move_to_next (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);</pre>
 <p>Move the packet pointer <em class="parameter"><code>packet</code></em>
  to the next packet in the payload.
 Use <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-buffer-get-first-packet" title="gst_rtcp_buffer_get_first_packet ()"><code class="function">gst_rtcp_buffer_get_first_packet()</code></a> to initialize <em class="parameter"><code>packet</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.13.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.7.7.13.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -924,7 +918,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.13.6"></a><h4>Returns</h4>
+<a name="id-1.2.9.7.7.13.6"></a><h4>Returns</h4>
 <p> TRUE if <em class="parameter"><code>packet</code></em>
 is pointing to a valid packet after calling this
 function.</p>
@@ -934,7 +928,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-rtcp-buffer-add-packet"></a><h3>gst_rtcp_buffer_add_packet ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_rtcp_buffer_add_packet (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPBuffer" title="struct GstRTCPBuffer"><span class="type">GstRTCPBuffer</span></a> *rtcp</code></em>,
                             <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPType" title="enum GstRTCPType"><span class="type">GstRTCPType</span></a> type</code></em>,
                             <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);</pre>
@@ -944,7 +938,7 @@
  will point to the newly created 
 packet.</p>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.14.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.7.7.14.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -971,8 +965,8 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.14.6"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the packet could be created. This function returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>
+<a name="id-1.2.9.7.7.14.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the packet could be created. This function returns <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>
 if the max mtu is exceeded for the buffer.</p>
 <p></p>
 </div>
@@ -980,12 +974,12 @@
 <hr>
 <div class="refsect2">
 <a name="gst-rtcp-packet-remove"></a><h3>gst_rtcp_packet_remove ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_rtcp_packet_remove (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);</pre>
 <p>Removes the packet pointed to by <em class="parameter"><code>packet</code></em>
  and moves pointer to the next one</p>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.15.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.7.7.15.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1000,7 +994,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.15.6"></a><h4>Returns</h4>
+<a name="id-1.2.9.7.7.15.6"></a><h4>Returns</h4>
 <p> TRUE if <em class="parameter"><code>packet</code></em>
 is pointing to a valid packet after calling this
 function.</p>
@@ -1010,12 +1004,12 @@
 <hr>
 <div class="refsect2">
 <a name="gst-rtcp-packet-get-padding"></a><h3>gst_rtcp_packet_get_padding ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_rtcp_packet_get_padding (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);</pre>
 <p>Get the packet padding of the packet pointed to by <em class="parameter"><code>packet</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.16.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.7.7.16.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1030,7 +1024,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.16.6"></a><h4>Returns</h4>
+<a name="id-1.2.9.7.7.16.6"></a><h4>Returns</h4>
 <p> If the packet has the padding bit set.</p>
 <p></p>
 </div>
@@ -1043,7 +1037,7 @@
 <p>Get the count field in <em class="parameter"><code>packet</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.17.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.7.7.17.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1058,7 +1052,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.17.6"></a><h4>Returns</h4>
+<a name="id-1.2.9.7.7.17.6"></a><h4>Returns</h4>
 <p> The count field in <em class="parameter"><code>packet</code></em>
 or -1 if <em class="parameter"><code>packet</code></em>
 does not point to a
@@ -1074,7 +1068,7 @@
 <p>Get the packet type of the packet pointed to by <em class="parameter"><code>packet</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.18.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.7.7.18.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1089,7 +1083,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.18.6"></a><h4>Returns</h4>
+<a name="id-1.2.9.7.7.18.6"></a><h4>Returns</h4>
 <p> The packet type or GST_RTCP_TYPE_INVALID when <em class="parameter"><code>packet</code></em>
 is not
 pointing to a valid packet.</p>
@@ -1105,7 +1099,7 @@
 . This is the length of the packet in 
 32-bit words minus one.</p>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.19.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.7.7.19.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1120,7 +1114,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.19.6"></a><h4>Returns</h4>
+<a name="id-1.2.9.7.7.19.6"></a><h4>Returns</h4>
 <p> The length field of <em class="parameter"><code>packet</code></em>
 .</p>
 <p></p>
@@ -1138,7 +1132,7 @@
                                     <em class="parameter"><code><span class="type">guint32</span> *octet_count</code></em>);</pre>
 <p>Parse the SR sender info and store the values.</p>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.20.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.7.7.20.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1193,7 +1187,7 @@
 <p>Set the given values in the SR packet <em class="parameter"><code>packet</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.21.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.7.7.21.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1243,7 +1237,7 @@
 <p>Get the ssrc field of the RR <em class="parameter"><code>packet</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.22.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.7.7.22.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1258,7 +1252,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.22.6"></a><h4>Returns</h4>
+<a name="id-1.2.9.7.7.22.6"></a><h4>Returns</h4>
 <p> the ssrc.</p>
 <p></p>
 </div>
@@ -1272,7 +1266,7 @@
 <p>Set the ssrc field of the RR <em class="parameter"><code>packet</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.23.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.7.7.23.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1297,12 +1291,12 @@
 <hr>
 <div class="refsect2">
 <a name="gst-rtcp-packet-get-rb-count"></a><h3>gst_rtcp_packet_get_rb_count ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_rtcp_packet_get_rb_count (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);</pre>
 <p>Get the number of report blocks in <em class="parameter"><code>packet</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.24.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.7.7.24.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1317,7 +1311,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.24.6"></a><h4>Returns</h4>
+<a name="id-1.2.9.7.7.24.6"></a><h4>Returns</h4>
 <p> The number of report blocks in <em class="parameter"><code>packet</code></em>
 .</p>
 <p></p>
@@ -1328,7 +1322,7 @@
 <a name="gst-rtcp-packet-get-rb"></a><h3>gst_rtcp_packet_get_rb ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_rtcp_packet_get_rb (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</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> nth</code></em>,
+                        <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nth</code></em>,
                         <em class="parameter"><code><span class="type">guint32</span> *ssrc</code></em>,
                         <em class="parameter"><code><span class="type">guint8</span> *fractionlost</code></em>,
                         <em class="parameter"><code><span class="type">gint32</span> *packetslost</code></em>,
@@ -1341,7 +1335,7 @@
  and store the result in
 the values.</p>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.25.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.7.7.25.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1402,7 +1396,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-rtcp-packet-add-rb"></a><h3>gst_rtcp_packet_add_rb ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_rtcp_packet_add_rb (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
                         <em class="parameter"><code><span class="type">guint32</span> ssrc</code></em>,
                         <em class="parameter"><code><span class="type">guint8</span> fractionlost</code></em>,
@@ -1414,7 +1408,7 @@
 <p>Add a new report block to <em class="parameter"><code>packet</code></em>
  with the given values.</p>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.26.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.7.7.26.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1466,8 +1460,8 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.26.6"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the packet was created. This function can return <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if
+<a name="id-1.2.9.7.7.26.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the packet was created. This function can return <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if
 the max MTU is exceeded or the number of report blocks is greater than
 <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-MAX-RB-COUNT:CAPS" title="GST_RTCP_MAX_RB_COUNT"><span class="type">GST_RTCP_MAX_RB_COUNT</span></a>.</p>
 <p></p>
@@ -1478,7 +1472,7 @@
 <a name="gst-rtcp-packet-set-rb"></a><h3>gst_rtcp_packet_set_rb ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_rtcp_packet_set_rb (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</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> nth</code></em>,
+                        <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nth</code></em>,
                         <em class="parameter"><code><span class="type">guint32</span> ssrc</code></em>,
                         <em class="parameter"><code><span class="type">guint8</span> fractionlost</code></em>,
                         <em class="parameter"><code><span class="type">gint32</span> packetslost</code></em>,
@@ -1491,7 +1485,7 @@
  with the given values.</p>
 <p>Note: Not implemented.</p>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.27.6"></a><h4>Parameters</h4>
+<a name="id-1.2.9.7.7.27.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1551,12 +1545,12 @@
 <hr>
 <div class="refsect2">
 <a name="gst-rtcp-packet-sdes-get-item-count"></a><h3>gst_rtcp_packet_sdes_get_item_count ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_rtcp_packet_sdes_get_item_count (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);</pre>
 <p>Get the number of items in the SDES packet <em class="parameter"><code>packet</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.28.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.7.7.28.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1571,7 +1565,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.28.6"></a><h4>Returns</h4>
+<a name="id-1.2.9.7.7.28.6"></a><h4>Returns</h4>
 <p> The number of items in <em class="parameter"><code>packet</code></em>
 .</p>
 <p></p>
@@ -1580,12 +1574,12 @@
 <hr>
 <div class="refsect2">
 <a name="gst-rtcp-packet-sdes-first-item"></a><h3>gst_rtcp_packet_sdes_first_item ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_rtcp_packet_sdes_first_item (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);</pre>
 <p>Move to the first SDES item in <em class="parameter"><code>packet</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.29.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.7.7.29.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1600,7 +1594,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.29.6"></a><h4>Returns</h4>
+<a name="id-1.2.9.7.7.29.6"></a><h4>Returns</h4>
 <p> TRUE if there was a first item.</p>
 <p></p>
 </div>
@@ -1608,12 +1602,12 @@
 <hr>
 <div class="refsect2">
 <a name="gst-rtcp-packet-sdes-next-item"></a><h3>gst_rtcp_packet_sdes_next_item ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_rtcp_packet_sdes_next_item (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);</pre>
 <p>Move to the next SDES item in <em class="parameter"><code>packet</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.30.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.7.7.30.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1628,7 +1622,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.30.6"></a><h4>Returns</h4>
+<a name="id-1.2.9.7.7.30.6"></a><h4>Returns</h4>
 <p> TRUE if there was a next item.</p>
 <p></p>
 </div>
@@ -1640,7 +1634,7 @@
 gst_rtcp_packet_sdes_get_ssrc (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);</pre>
 <p>Get the SSRC of the current SDES item.</p>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.31.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.7.7.31.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1655,7 +1649,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.31.6"></a><h4>Returns</h4>
+<a name="id-1.2.9.7.7.31.6"></a><h4>Returns</h4>
 <p> the SSRC of the current item.</p>
 <p></p>
 </div>
@@ -1663,11 +1657,11 @@
 <hr>
 <div class="refsect2">
 <a name="gst-rtcp-packet-sdes-first-entry"></a><h3>gst_rtcp_packet_sdes_first_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>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_rtcp_packet_sdes_first_entry (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);</pre>
 <p>Move to the first SDES entry in the current item.</p>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.32.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.7.7.32.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1682,19 +1676,19 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.32.6"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if there was a first entry.</p>
+<a name="id-1.2.9.7.7.32.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if there was a first entry.</p>
 <p></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtcp-packet-sdes-next-entry"></a><h3>gst_rtcp_packet_sdes_next_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>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_rtcp_packet_sdes_next_entry (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);</pre>
 <p>Move to the next SDES entry in the current item.</p>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.33.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.7.7.33.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1709,15 +1703,15 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.33.6"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if there was a next entry.</p>
+<a name="id-1.2.9.7.7.33.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if there was a next entry.</p>
 <p></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtcp-packet-sdes-get-entry"></a><h3>gst_rtcp_packet_sdes_get_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>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_rtcp_packet_sdes_get_entry (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
                                 <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPSDESType" title="enum GstRTCPSDESType"><span class="type">GstRTCPSDESType</span></a> *type</code></em>,
                                 <em class="parameter"><code><span class="type">guint8</span> *len</code></em>,
@@ -1734,7 +1728,7 @@
 that this UTF8 string is NOT null-terminated. Use
 <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sdes-copy-entry" title="gst_rtcp_packet_sdes_copy_entry ()"><code class="function">gst_rtcp_packet_sdes_copy_entry()</code></a> to get a null-terminated copy of the entry.</p>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.34.6"></a><h4>Parameters</h4>
+<a name="id-1.2.9.7.7.34.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1766,23 +1760,23 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.34.7"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if there was valid data.</p>
+<a name="id-1.2.9.7.7.34.7"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if there was valid data.</p>
 <p></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtcp-packet-sdes-copy-entry"></a><h3>gst_rtcp_packet_sdes_copy_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>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_rtcp_packet_sdes_copy_entry (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
                                  <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPSDESType" title="enum GstRTCPSDESType"><span class="type">GstRTCPSDESType</span></a> *type</code></em>,
                                  <em class="parameter"><code><span class="type">guint8</span> *len</code></em>,
                                  <em class="parameter"><code><span class="type">guint8</span> **data</code></em>);</pre>
 <p>This function is like <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sdes-get-entry" title="gst_rtcp_packet_sdes_get_entry ()"><code class="function">gst_rtcp_packet_sdes_get_entry()</code></a> but it returns a
-null-terminated copy of the data instead. use <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>
+null-terminated copy of the data instead. use <a href="https://developer.gnome.org/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> after usage.</p>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.35.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.7.7.35.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1814,22 +1808,22 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.35.6"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if there was valid data.</p>
+<a name="id-1.2.9.7.7.35.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if there was valid data.</p>
 <p></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtcp-packet-sdes-add-item"></a><h3>gst_rtcp_packet_sdes_add_item ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_rtcp_packet_sdes_add_item (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
                                <em class="parameter"><code><span class="type">guint32</span> ssrc</code></em>);</pre>
 <p>Add a new SDES item for <em class="parameter"><code>ssrc</code></em>
  to <em class="parameter"><code>packet</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.36.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.7.7.36.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1851,8 +1845,8 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.36.6"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the item could be added, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if the maximum amount of
+<a name="id-1.2.9.7.7.36.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the item could be added, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if the maximum amount of
 items has been exceeded for the SDES packet or the MTU has been reached.</p>
 <p></p>
 </div>
@@ -1860,7 +1854,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-rtcp-packet-sdes-add-entry"></a><h3>gst_rtcp_packet_sdes_add_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>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_rtcp_packet_sdes_add_entry (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
                                 <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPSDESType" title="enum GstRTCPSDESType"><span class="type">GstRTCPSDESType</span></a> type</code></em>,
                                 <em class="parameter"><code><span class="type">guint8</span> len</code></em>,
@@ -1868,7 +1862,7 @@
 <p>Add a new SDES entry to the current item in <em class="parameter"><code>packet</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.37.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.7.7.37.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1900,8 +1894,8 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.37.6"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the item could be added, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if the MTU has been
+<a name="id-1.2.9.7.7.37.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the item could be added, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if the MTU has been
 reached.</p>
 <p></p>
 </div>
@@ -1909,12 +1903,12 @@
 <hr>
 <div class="refsect2">
 <a name="gst-rtcp-packet-bye-get-ssrc-count"></a><h3>gst_rtcp_packet_bye_get_ssrc_count ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_rtcp_packet_bye_get_ssrc_count (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);</pre>
 <p>Get the number of SSRC fields in <em class="parameter"><code>packet</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.38.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.7.7.38.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1929,7 +1923,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.38.6"></a><h4>Returns</h4>
+<a name="id-1.2.9.7.7.38.6"></a><h4>Returns</h4>
 <p> The number of SSRC fields in <em class="parameter"><code>packet</code></em>
 .</p>
 <p></p>
@@ -1940,12 +1934,12 @@
 <a name="gst-rtcp-packet-bye-get-nth-ssrc"></a><h3>gst_rtcp_packet_bye_get_nth_ssrc ()</h3>
 <pre class="programlisting"><span class="returnvalue">guint32</span>
 gst_rtcp_packet_bye_get_nth_ssrc (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</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> nth</code></em>);</pre>
+                                  <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nth</code></em>);</pre>
 <p>Get the <em class="parameter"><code>nth</code></em>
  SSRC of the BYE <em class="parameter"><code>packet</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.39.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.7.7.39.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1967,7 +1961,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.39.6"></a><h4>Returns</h4>
+<a name="id-1.2.9.7.7.39.6"></a><h4>Returns</h4>
 <p> The <em class="parameter"><code>nth</code></em>
 SSRC of <em class="parameter"><code>packet</code></em>
 .</p>
@@ -1977,14 +1971,14 @@
 <hr>
 <div class="refsect2">
 <a name="gst-rtcp-packet-bye-add-ssrc"></a><h3>gst_rtcp_packet_bye_add_ssrc ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_rtcp_packet_bye_add_ssrc (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
                               <em class="parameter"><code><span class="type">guint32</span> ssrc</code></em>);</pre>
 <p>Add <em class="parameter"><code>ssrc</code></em>
  to the BYE <em class="parameter"><code>packet</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.40.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.7.7.40.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2006,8 +2000,8 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.40.6"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the ssrc was added. This function can return <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if
+<a name="id-1.2.9.7.7.40.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the ssrc was added. This function can return <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if
 the max MTU is exceeded or the number of sources blocks is greater than
 <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-MAX-BYE-SSRC-COUNT:CAPS" title="GST_RTCP_MAX_BYE_SSRC_COUNT"><span class="type">GST_RTCP_MAX_BYE_SSRC_COUNT</span></a>.</p>
 <p></p>
@@ -2016,16 +2010,16 @@
 <hr>
 <div class="refsect2">
 <a name="gst-rtcp-packet-bye-add-ssrcs"></a><h3>gst_rtcp_packet_bye_add_ssrcs ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_rtcp_packet_bye_add_ssrcs (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
                                <em class="parameter"><code><span class="type">guint32</span> *ssrc</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> len</code></em>);</pre>
+                               <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);</pre>
 <p>Adds <em class="parameter"><code>len</code></em>
  SSRCs in <em class="parameter"><code>ssrc</code></em>
  to BYE <em class="parameter"><code>packet</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.41.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.7.7.41.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2053,8 +2047,8 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.41.6"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the all the SSRCs were added. This function can return <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if
+<a name="id-1.2.9.7.7.41.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the all the SSRCs were added. This function can return <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if
 the max MTU is exceeded or the number of sources blocks is greater than
 <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-MAX-BYE-SSRC-COUNT:CAPS" title="GST_RTCP_MAX_BYE_SSRC_COUNT"><span class="type">GST_RTCP_MAX_BYE_SSRC_COUNT</span></a>.</p>
 <p></p>
@@ -2067,7 +2061,7 @@
 gst_rtcp_packet_bye_get_reason_len (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);</pre>
 <p>Get the length of the reason string.</p>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.42.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.7.7.42.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2082,7 +2076,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.42.6"></a><h4>Returns</h4>
+<a name="id-1.2.9.7.7.42.6"></a><h4>Returns</h4>
 <p> The length of the reason string or 0 when there is no reason string
 present.</p>
 <p></p>
@@ -2091,12 +2085,12 @@
 <hr>
 <div class="refsect2">
 <a name="gst-rtcp-packet-bye-get-reason"></a><h3>gst_rtcp_packet_bye_get_reason ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_rtcp_packet_bye_get_reason (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);</pre>
 <p>Get the reason in <em class="parameter"><code>packet</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.43.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.7.7.43.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2111,24 +2105,24 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.43.6"></a><h4>Returns</h4>
+<a name="id-1.2.9.7.7.43.6"></a><h4>Returns</h4>
 <p> The reason for the BYE <em class="parameter"><code>packet</code></em>
 or NULL if the packet did not contain
-a reason string. The string must 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> after usage.</p>
+a reason string. The string must be freed with <a href="https://developer.gnome.org/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> after usage.</p>
 <p></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtcp-packet-bye-set-reason"></a><h3>gst_rtcp_packet_bye_set_reason ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_rtcp_packet_bye_set_reason (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</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> *reason</code></em>);</pre>
+                                <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *reason</code></em>);</pre>
 <p>Set the reason string to <em class="parameter"><code>reason</code></em>
  in <em class="parameter"><code>packet</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.44.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.7.7.44.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2150,7 +2144,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.44.6"></a><h4>Returns</h4>
+<a name="id-1.2.9.7.7.44.6"></a><h4>Returns</h4>
 <p> TRUE if the string could be set.</p>
 <p></p>
 </div>
@@ -2163,7 +2157,7 @@
 <p>Get the feedback message type of the FB <em class="parameter"><code>packet</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.45.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.7.7.45.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2178,7 +2172,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.45.6"></a><h4>Returns</h4>
+<a name="id-1.2.9.7.7.45.6"></a><h4>Returns</h4>
 <p> The feedback message type.</p>
 <p></p>
 </div>
@@ -2192,7 +2186,7 @@
 <p>Set the feedback message type of the FB <em class="parameter"><code>packet</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.46.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.7.7.46.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2222,7 +2216,7 @@
 <p>Get the sender SSRC field of the RTPFB or PSFB <em class="parameter"><code>packet</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.47.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.7.7.47.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2237,7 +2231,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.47.6"></a><h4>Returns</h4>
+<a name="id-1.2.9.7.7.47.6"></a><h4>Returns</h4>
 <p> the sender SSRC.</p>
 <p></p>
 </div>
@@ -2251,7 +2245,7 @@
 <p>Set the sender SSRC field of the RTPFB or PSFB <em class="parameter"><code>packet</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.48.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.7.7.48.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2281,7 +2275,7 @@
 <p>Get the media SSRC field of the RTPFB or PSFB <em class="parameter"><code>packet</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.49.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.7.7.49.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2296,7 +2290,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.49.6"></a><h4>Returns</h4>
+<a name="id-1.2.9.7.7.49.6"></a><h4>Returns</h4>
 <p> the media SSRC.</p>
 <p></p>
 </div>
@@ -2310,7 +2304,7 @@
 <p>Set the media SSRC field of the RTPFB or PSFB <em class="parameter"><code>packet</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.50.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.7.7.50.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2341,7 +2335,7 @@
 RTPFB or PSFB <em class="parameter"><code>packet</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.51.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.7.7.51.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2356,7 +2350,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.51.6"></a><h4>Returns</h4>
+<a name="id-1.2.9.7.7.51.6"></a><h4>Returns</h4>
 <p> The length of the FCI in 32-bit words.</p>
 <p></p>
 </div>
@@ -2364,14 +2358,14 @@
 <hr>
 <div class="refsect2">
 <a name="gst-rtcp-packet-fb-set-fci-length"></a><h3>gst_rtcp_packet_fb_set_fci_length ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_rtcp_packet_fb_set_fci_length (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
                                    <em class="parameter"><code><span class="type">guint16</span> wordlen</code></em>);</pre>
 <p>Set the length of the Feedback Control Information attached to a
 RTPFB or PSFB <em class="parameter"><code>packet</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.52.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.7.7.52.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2393,8 +2387,8 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.52.6"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if there was enough space in the packet to add this much FCI</p>
+<a name="id-1.2.9.7.7.52.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if there was enough space in the packet to add this much FCI</p>
 <p></p>
 </div>
 </div>
@@ -2406,7 +2400,7 @@
 <p>Get the Feedback Control Information attached to a RTPFB or PSFB <em class="parameter"><code>packet</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.53.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.7.7.53.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2421,7 +2415,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.53.6"></a><h4>Returns</h4>
+<a name="id-1.2.9.7.7.53.6"></a><h4>Returns</h4>
 <p> a pointer to the FCI</p>
 <p></p>
 </div>
@@ -2437,7 +2431,7 @@
 number of seconds since 1900 and, in the lower 32 bits, the fractional
 seconds. The resulting value will be the number of nanoseconds since 1970.</p>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.54.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.7.7.54.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2452,7 +2446,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.54.6"></a><h4>Returns</h4>
+<a name="id-1.2.9.7.7.54.6"></a><h4>Returns</h4>
 <p> the UNIX time for <em class="parameter"><code>ntptime</code></em>
 in nanoseconds.</p>
 <p></p>
@@ -2469,7 +2463,7 @@
 bits, the fractional seconds. The resulting value can be used as an ntptime
 for constructing SR RTCP packets.</p>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.55.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.7.7.55.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2484,7 +2478,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.55.6"></a><h4>Returns</h4>
+<a name="id-1.2.9.7.7.55.6"></a><h4>Returns</h4>
 <p> the NTP time for <em class="parameter"><code>unixtime</code></em>
 .</p>
 <p></p>
@@ -2494,14 +2488,14 @@
 <div class="refsect2">
 <a name="gst-rtcp-sdes-name-to-type"></a><h3>gst_rtcp_sdes_name_to_type ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPSDESType" title="enum GstRTCPSDESType"><span class="returnvalue">GstRTCPSDESType</span></a>
-gst_rtcp_sdes_name_to_type (<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>
+gst_rtcp_sdes_name_to_type (<em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);</pre>
 <p>Convert <em class="parameter"><code>name</code></em>
  into a <em class="parameter"><code>GstRTCPSDESType</code></em>
 . <em class="parameter"><code>name</code></em>
  is typically a key in a
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a> containing SDES items.</p>
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstStructure.html"><span class="type">GstStructure</span></a> containing SDES items.</p>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.56.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.7.7.56.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2516,7 +2510,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.56.6"></a><h4>Returns</h4>
+<a name="id-1.2.9.7.7.56.6"></a><h4>Returns</h4>
 <p> the <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPSDESType" title="enum GstRTCPSDESType"><span class="type">GstRTCPSDESType</span></a> for <em class="parameter"><code>name</code></em>
 or <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-SDES-PRIV:CAPS"><span class="type">GST_RTCP_SDES_PRIV</span></a> when <em class="parameter"><code>name</code></em>
 is a private sdes item.</p>
@@ -2526,13 +2520,13 @@
 <hr>
 <div class="refsect2">
 <a name="gst-rtcp-sdes-type-to-name"></a><h3>gst_rtcp_sdes_type_to_name ()</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> *
+<pre class="programlisting">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_rtcp_sdes_type_to_name (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPSDESType" title="enum GstRTCPSDESType"><span class="type">GstRTCPSDESType</span></a> type</code></em>);</pre>
 <p>Converts <em class="parameter"><code>type</code></em>
  to the string equivalent. The string is typically used as a
-key in a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a> containing SDES items.</p>
+key in a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstStructure.html"><span class="type">GstStructure</span></a> containing SDES items.</p>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.57.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.7.7.57.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2547,7 +2541,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.7.8.57.6"></a><h4>Returns</h4>
+<a name="id-1.2.9.7.7.57.6"></a><h4>Returns</h4>
 <p> the string equivalent of <em class="parameter"><code>type</code></em>
 </p>
 <p></p>
@@ -2595,7 +2589,7 @@
 <a name="GstRTCPType"></a><h3>enum GstRTCPType</h3>
 <p>Different RTCP packet types.</p>
 <div class="refsect3">
-<a name="id-1.2.9.7.9.7.4"></a><h4>Members</h4>
+<a name="id-1.2.9.7.8.7.4"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -2676,7 +2670,7 @@
 .
 The size of the structure is made public to allow stack allocations.</p>
 <div class="refsect3">
-<a name="id-1.2.9.7.9.8.5"></a><h4>Members</h4>
+<a name="id-1.2.9.7.8.8.5"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
@@ -2690,7 +2684,7 @@
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstRTCPPacket.offset"></a>offset</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstRTCPPacket.offset"></a>offset</code></em>;</p></td>
 <td class="struct_member_description"><p>offset of packet in buffer data</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
@@ -2703,7 +2697,7 @@
 <a name="GstRTCPSDESType"></a><h3>enum GstRTCPSDESType</h3>
 <p>Different types of SDES content.</p>
 <div class="refsect3">
-<a name="id-1.2.9.7.9.9.4"></a><h4>Members</h4>
+<a name="id-1.2.9.7.8.9.4"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -2790,7 +2784,7 @@
 <a name="GstRTCPFBType"></a><h3>enum GstRTCPFBType</h3>
 <p>Different types of feedback messages.</p>
 <div class="refsect3">
-<a name="id-1.2.9.7.9.10.4"></a><h4>Members</h4>
+<a name="id-1.2.9.7.8.10.4"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -2915,6 +2909,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstrtpbaseaudiopayload.html b/docs/libs/html/gst-plugins-base-libs-gstrtpbaseaudiopayload.html
index 531e7a1..b05c9d5 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstrtpbaseaudiopayload.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstrtpbaseaudiopayload.html
@@ -8,15 +8,15 @@
 <link rel="up" href="gstreamer-rtp.html" title="RTP Library">
 <link rel="prev" href="gstreamer-rtp.html" title="RTP Library">
 <link rel="next" href="gst-plugins-base-libs-gstrtpbasedepayload.html" title="gstrtpbasedepayload">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstrtpbaseaudiopayload.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstrtpbaseaudiopayload.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> 
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gstrtpbaseaudiopayload.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gstrtpbaseaudiopayload.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
                   <a href="#gst-plugins-base-libs-gstrtpbaseaudiopayload.properties" class="shortcut">Properties</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
@@ -117,7 +117,7 @@
 <col width="200px" class="properties_flags">
 </colgroup>
 <tbody><tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-libs-gstrtpbaseaudiopayload.html#GstRTPBaseAudioPayload--buffer-list" title="The “buffer-list” property">buffer-list</a></td>
 <td class="property_flags">Read / Write</td>
 </tr></tbody>
@@ -144,8 +144,8 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstrtpbaseaudiopayload.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-    <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+<pre class="screen">    <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
         <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
             <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
                 <span class="lineart">╰──</span> <a class="link" href="gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload">GstRTPBasePayload</a>
@@ -220,8 +220,8 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_rtp_base_audio_payload_set_frame_options
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtpbaseaudiopayload.html#GstRTPBaseAudioPayload"><span class="type">GstRTPBaseAudioPayload</span></a> *rtpbaseaudiopayload</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> frame_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> frame_size</code></em>);</pre>
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> frame_duration</code></em>,
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> frame_size</code></em>);</pre>
 <p>Sets the options for frame based audio codecs.</p>
 <div class="refsect3">
 <a name="id-1.2.9.3.10.3.5"></a><h4>Parameters</h4>
@@ -281,7 +281,7 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_rtp_base_audio_payload_set_sample_options
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtpbaseaudiopayload.html#GstRTPBaseAudioPayload"><span class="type">GstRTPBaseAudioPayload</span></a> *rtpbaseaudiopayload</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> sample_size</code></em>);</pre>
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> sample_size</code></em>);</pre>
 <p>Sets the options for sample based audio codecs.</p>
 <div class="refsect3">
 <a name="id-1.2.9.3.10.5.5"></a><h4>Parameters</h4>
@@ -340,7 +340,7 @@
 <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_rtp_base_audio_payload_push (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtpbaseaudiopayload.html#GstRTPBaseAudioPayload"><span class="type">GstRTPBaseAudioPayload</span></a> *baseaudiopayload</code></em>,
                                  <em class="parameter"><code>const <span class="type">guint8</span> *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> payload_len</code></em>,
+                                 <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> payload_len</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>
 <p>Create an RTP buffer and store <em class="parameter"><code>payload_len</code></em>
  bytes of <em class="parameter"><code>data</code></em>
@@ -391,7 +391,7 @@
 <a name="gst-rtp-base-audio-payload-flush"></a><h3>gst_rtp_base_audio_payload_flush ()</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_rtp_base_audio_payload_flush (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtpbaseaudiopayload.html#GstRTPBaseAudioPayload"><span class="type">GstRTPBaseAudioPayload</span></a> *baseaudiopayload</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> payload_len</code></em>,
+                                  <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> payload_len</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>
 <p>Create an RTP buffer and store <em class="parameter"><code>payload_len</code></em>
  bytes of the adapter as the
@@ -441,7 +441,7 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_rtp_base_audio_payload_set_samplebits_options
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtpbaseaudiopayload.html#GstRTPBaseAudioPayload"><span class="type">GstRTPBaseAudioPayload</span></a> *rtpbaseaudiopayload</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> sample_size</code></em>);</pre>
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> sample_size</code></em>);</pre>
 <p>Sets the options for sample based audio codecs.</p>
 <div class="refsect3">
 <a name="id-1.2.9.3.10.9.5"></a><h4>Parameters</h4>
@@ -502,7 +502,7 @@
 <a name="gst-plugins-base-libs-gstrtpbaseaudiopayload.property-details"></a><h2>Property Details</h2>
 <div class="refsect2">
 <a name="GstRTPBaseAudioPayload--buffer-list"></a><h3>The <code class="literal">“buffer-list”</code> property</h3>
-<pre class="programlisting">  “buffer-list”              <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<pre class="programlisting">  “buffer-list”              <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
 <p>Use Buffer Lists.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: FALSE</p>
@@ -511,6 +511,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstrtpbasedepayload.html b/docs/libs/html/gst-plugins-base-libs-gstrtpbasedepayload.html
index 44f1a6d..87e7ba4 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstrtpbasedepayload.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstrtpbasedepayload.html
@@ -8,15 +8,15 @@
 <link rel="up" href="gstreamer-rtp.html" title="RTP Library">
 <link rel="prev" href="gst-plugins-base-libs-gstrtpbaseaudiopayload.html" title="gstrtpbaseaudiopayload">
 <link rel="next" href="gst-plugins-base-libs-gstrtpbasepayload.html" title="gstrtpbasepayload">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstrtpbasedepayload.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstrtpbasedepayload.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> 
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gstrtpbasedepayload.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gstrtpbasedepayload.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
                   <a href="#gst-plugins-base-libs-gstrtpbasedepayload.properties" class="shortcut">Properties</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
@@ -82,7 +82,7 @@
 </colgroup>
 <tbody><tr>
 <td class="property_type">
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a> *</td>
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstStructure.html"><span class="type">GstStructure</span></a> *</td>
 <td class="property_name"><a class="link" href="gst-plugins-base-libs-gstrtpbasedepayload.html#GstRTPBaseDepayload--stats" title="The “stats” property">stats</a></td>
 <td class="property_flags">Read</td>
 </tr></tbody>
@@ -109,8 +109,8 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstrtpbasedepayload.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-    <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+<pre class="screen">    <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
         <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
             <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
                 <span class="lineart">╰──</span> GstRTPBaseDepayload
@@ -143,7 +143,7 @@
 <a name="gst-rtp-base-depayload-push"></a><h3>gst_rtp_base_depayload_push ()</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_rtp_base_depayload_push (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtpbasedepayload.html#GstRTPBaseDepayload"><span class="type">GstRTPBaseDepayload</span></a> *filter</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> *out_buf</code></em>);</pre>
+                             <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> *out_buf</code></em>);</pre>
 <p>Push <em class="parameter"><code>out_buf</code></em>
  to the peer of <em class="parameter"><code>filter</code></em>
 . This function takes ownership of
@@ -167,7 +167,7 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>out_buf</p></td>
-<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a></p></td>
+<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a></p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 </tbody>
@@ -184,7 +184,7 @@
 <a name="gst-rtp-base-depayload-push-list"></a><h3>gst_rtp_base_depayload_push_list ()</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_rtp_base_depayload_push_list (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtpbasedepayload.html#GstRTPBaseDepayload"><span class="type">GstRTPBaseDepayload</span></a> *filter</code></em>,
-                                  <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="type">GstBufferList</span></a> *out_list</code></em>);</pre>
+                                  <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBufferList.html"><span class="type">GstBufferList</span></a> *out_list</code></em>);</pre>
 <p>Push <em class="parameter"><code>out_list</code></em>
  to the peer of <em class="parameter"><code>filter</code></em>
 . This function takes ownership of
@@ -206,7 +206,7 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>out_list</p></td>
-<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="type">GstBufferList</span></a></p></td>
+<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBufferList.html"><span class="type">GstBufferList</span></a></p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 </tbody>
@@ -295,7 +295,7 @@
 <a name="gst-plugins-base-libs-gstrtpbasedepayload.property-details"></a><h2>Property Details</h2>
 <div class="refsect2">
 <a name="GstRTPBaseDepayload--stats"></a><h3>The <code class="literal">“stats”</code> property</h3>
-<pre class="programlisting">  “stats”                    <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a> *</pre>
+<pre class="programlisting">  “stats”                    <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstStructure.html"><span class="type">GstStructure</span></a> *</pre>
 <p>Various depayloader statistics retrieved atomically (and are therefore
 synchroized with each other). This property return a GstStructure named
 application/x-rtp-depayload-stats containing the following fields relating to
@@ -308,49 +308,49 @@
 <tbody>
 <tr>
 <td><p><span class="term">clock-rate</span></p></td>
-<td><p><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-TYPE-UINT:CAPS"><span class="type">G_TYPE_UINT</span></a>, clock-rate of the
+<td><p><a href="https://developer.gnome.org/gobject/unstable/gobject-Type-Information.html#G-TYPE-UINT:CAPS"><span class="type">G_TYPE_UINT</span></a>, clock-rate of the
     stream</p></td>
 </tr>
 <tr>
 <td><p><span class="term">npt-start</span></p></td>
-<td><p><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-TYPE-UINT64:CAPS"><span class="type">G_TYPE_UINT64</span></a>, time of playback start
+<td><p><a href="https://developer.gnome.org/gobject/unstable/gobject-Type-Information.html#G-TYPE-UINT64:CAPS"><span class="type">G_TYPE_UINT64</span></a>, time of playback start
     </p></td>
 </tr>
 <tr>
 <td><p><span class="term">npt-stop</span></p></td>
-<td><p><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-TYPE-UINT64:CAPS"><span class="type">G_TYPE_UINT64</span></a>, time of playback stop
+<td><p><a href="https://developer.gnome.org/gobject/unstable/gobject-Type-Information.html#G-TYPE-UINT64:CAPS"><span class="type">G_TYPE_UINT64</span></a>, time of playback stop
     </p></td>
 </tr>
 <tr>
 <td><p><span class="term">play-speed</span></p></td>
-<td><p><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-TYPE-DOUBLE:CAPS"><span class="type">G_TYPE_DOUBLE</span></a>, the playback speed
+<td><p><a href="https://developer.gnome.org/gobject/unstable/gobject-Type-Information.html#G-TYPE-DOUBLE:CAPS"><span class="type">G_TYPE_DOUBLE</span></a>, the playback speed
     </p></td>
 </tr>
 <tr>
 <td><p><span class="term">play-scale</span></p></td>
-<td><p><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-TYPE-DOUBLE:CAPS"><span class="type">G_TYPE_DOUBLE</span></a>, the playback scale
+<td><p><a href="https://developer.gnome.org/gobject/unstable/gobject-Type-Information.html#G-TYPE-DOUBLE:CAPS"><span class="type">G_TYPE_DOUBLE</span></a>, the playback scale
     </p></td>
 </tr>
 <tr>
 <td><p><span class="term">running-time-dts</span></p></td>
-<td><p><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-TYPE-UINT64:CAPS"><span class="type">G_TYPE_UINT64</span></a>, the last running-time of the
+<td><p><a href="https://developer.gnome.org/gobject/unstable/gobject-Type-Information.html#G-TYPE-UINT64:CAPS"><span class="type">G_TYPE_UINT64</span></a>, the last running-time of the
      last DTS
     </p></td>
 </tr>
 <tr>
 <td><p><span class="term">running-time-pts</span></p></td>
-<td><p><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-TYPE-UINT64:CAPS"><span class="type">G_TYPE_UINT64</span></a>, the last running-time of the
+<td><p><a href="https://developer.gnome.org/gobject/unstable/gobject-Type-Information.html#G-TYPE-UINT64:CAPS"><span class="type">G_TYPE_UINT64</span></a>, the last running-time of the
      last PTS
     </p></td>
 </tr>
 <tr>
 <td><p><span class="term">seqnum</span></p></td>
-<td><p><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-TYPE-UINT:CAPS"><span class="type">G_TYPE_UINT</span></a>, the last seen seqnum
+<td><p><a href="https://developer.gnome.org/gobject/unstable/gobject-Type-Information.html#G-TYPE-UINT:CAPS"><span class="type">G_TYPE_UINT</span></a>, the last seen seqnum
     </p></td>
 </tr>
 <tr>
 <td><p><span class="term">timestamp</span></p></td>
-<td><p><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-TYPE-UINT:CAPS"><span class="type">G_TYPE_UINT</span></a>, the last seen RTP timestamp
+<td><p><a href="https://developer.gnome.org/gobject/unstable/gobject-Type-Information.html#G-TYPE-UINT:CAPS"><span class="type">G_TYPE_UINT</span></a>, the last seen RTP timestamp
     </p></td>
 </tr>
 </tbody>
@@ -361,6 +361,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstrtpbasepayload.html b/docs/libs/html/gst-plugins-base-libs-gstrtpbasepayload.html
index 2916d22..004dfda 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstrtpbasepayload.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstrtpbasepayload.html
@@ -8,15 +8,15 @@
 <link rel="up" href="gstreamer-rtp.html" title="RTP Library">
 <link rel="prev" href="gst-plugins-base-libs-gstrtpbasedepayload.html" title="gstrtpbasedepayload">
 <link rel="next" href="gst-plugins-base-libs-gstrtpbuffer.html" title="gstrtpbuffer">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstrtpbasepayload.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstrtpbasepayload.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> 
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gstrtpbasepayload.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gstrtpbasepayload.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
                   <a href="#gst-plugins-base-libs-gstrtpbasepayload.properties" class="shortcut">Properties</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
@@ -67,7 +67,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtpbasepayload.html#gst-rtp-base-payload-is-filled" title="gst_rtp_base_payload_is_filled ()">gst_rtp_base_payload_is_filled</a> <span class="c_punctuation">()</span>
@@ -99,7 +99,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtpbasepayload.html#gst-rtp-base-payload-set-outcaps" title="gst_rtp_base_payload_set_outcaps ()">gst_rtp_base_payload_set_outcaps</a> <span class="c_punctuation">()</span>
@@ -128,17 +128,17 @@
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload--mtu" title="The “mtu” property">mtu</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload--perfect-rtptime" title="The “perfect-rtptime” property">perfect-rtptime</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload--pt" title="The “pt” property">pt</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
@@ -148,33 +148,33 @@
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload--seqnum" title="The “seqnum” property">seqnum</a></td>
 <td class="property_flags">Read</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload--seqnum-offset" title="The “seqnum-offset” property">seqnum-offset</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload--ssrc" title="The “ssrc” property">ssrc</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
 <td class="property_type">
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a> *</td>
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstStructure.html"><span class="type">GstStructure</span></a> *</td>
 <td class="property_name"><a class="link" href="gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload--stats" title="The “stats” property">stats</a></td>
 <td class="property_flags">Read</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload--timestamp" title="The “timestamp” property">timestamp</a></td>
 <td class="property_flags">Read</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload--timestamp-offset" title="The “timestamp-offset” property">timestamp-offset</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
@@ -202,8 +202,8 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstrtpbasepayload.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-    <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+<pre class="screen">    <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
         <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
             <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
                 <span class="lineart">╰──</span> GstRTPBasePayload
@@ -315,9 +315,9 @@
 <hr>
 <div class="refsect2">
 <a name="gst-rtp-base-payload-is-filled"></a><h3>gst_rtp_base_payload_is_filled ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_rtp_base_payload_is_filled (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload"><span class="type">GstRTPBasePayload</span></a> *payload</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 href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</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> duration</code></em>);</pre>
 <p>Check if the packet with <em class="parameter"><code>size</code></em>
  and <em class="parameter"><code>duration</code></em>
@@ -352,7 +352,7 @@
 </div>
 <div class="refsect3">
 <a name="id-1.2.9.5.10.6.6"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the packet of <em class="parameter"><code>size</code></em>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the packet of <em class="parameter"><code>size</code></em>
 and <em class="parameter"><code>duration</code></em>
 would exceed the
 configured MTU or max_ptime.</p>
@@ -364,7 +364,7 @@
 <a name="gst-rtp-base-payload-push"></a><h3>gst_rtp_base_payload_push ()</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_rtp_base_payload_push (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload"><span class="type">GstRTPBasePayload</span></a> *payload</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="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> *buffer</code></em>);</pre>
 <p>Push <em class="parameter"><code>buffer</code></em>
  to the peer element of the payloader. The SSRC, payload type,
 seqnum and timestamp of the RTP buffer will be updated first.</p>
@@ -386,7 +386,7 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a></p></td>
+<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a></p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 </tbody>
@@ -403,7 +403,7 @@
 <a name="gst-rtp-base-payload-push-list"></a><h3>gst_rtp_base_payload_push_list ()</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_rtp_base_payload_push_list (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload"><span class="type">GstRTPBasePayload</span></a> *payload</code></em>,
-                                <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="type">GstBufferList</span></a> *list</code></em>);</pre>
+                                <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBufferList.html"><span class="type">GstBufferList</span></a> *list</code></em>);</pre>
 <p>Push <em class="parameter"><code>list</code></em>
  to the peer element of the payloader. The SSRC, payload type,
 seqnum and timestamp of the RTP buffer will be updated first.</p>
@@ -425,7 +425,7 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>list</p></td>
-<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="type">GstBufferList</span></a></p></td>
+<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBufferList.html"><span class="type">GstBufferList</span></a></p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 </tbody>
@@ -442,9 +442,9 @@
 <a name="gst-rtp-base-payload-set-options"></a><h3>gst_rtp_base_payload_set_options ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_rtp_base_payload_set_options (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload"><span class="type">GstRTPBasePayload</span></a> *payload</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> *media</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> dynamic</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> *encoding_name</code></em>,
+                                  <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *media</code></em>,
+                                  <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> dynamic</code></em>,
+                                  <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *encoding_name</code></em>,
                                   <em class="parameter"><code><span class="type">guint32</span> clock_rate</code></em>);</pre>
 <p>Set the rtp options of the payloader. These options will be set in the caps
 of the payloader. Subclasses must call this method before calling
@@ -490,9 +490,9 @@
 <hr>
 <div class="refsect2">
 <a name="gst-rtp-base-payload-set-outcaps"></a><h3>gst_rtp_base_payload_set_outcaps ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_rtp_base_payload_set_outcaps (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload"><span class="type">GstRTPBasePayload</span></a> *payload</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> *fieldname</code></em>,
+                                  <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *fieldname</code></em>,
                                   <em class="parameter"><code>...</code></em>);</pre>
 <p>Configure the output caps with the optional parameters.</p>
 <p>Variable arguments should be in the form field name, field type
@@ -513,7 +513,7 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>fieldname</p></td>
-<td class="parameter_description"><p>the first field name or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
+<td class="parameter_description"><p>the first field name or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
@@ -526,7 +526,7 @@
 </div>
 <div class="refsect3">
 <a name="id-1.2.9.5.10.10.7"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the caps could be set.</p>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the caps could be set.</p>
 <p></p>
 </div>
 </div>
@@ -630,7 +630,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstRTPBasePayload--mtu"></a><h3>The <code class="literal">“mtu”</code> property</h3>
-<pre class="programlisting">  “mtu”                      <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre>
+<pre class="programlisting">  “mtu”                      <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre>
 <p>Maximum size of one packet.</p>
 <p>Flags: Read / Write</p>
 <p>Allowed values: &gt;= 28</p>
@@ -639,7 +639,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstRTPBasePayload--perfect-rtptime"></a><h3>The <code class="literal">“perfect-rtptime”</code> property</h3>
-<pre class="programlisting">  “perfect-rtptime”          <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<pre class="programlisting">  “perfect-rtptime”          <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
 <p>Try to use the offset fields to generate perfect RTP timestamps. When this
 option is disabled, RTP timestamps are generated from GST_BUFFER_PTS of
 each payloaded buffer. The PTSes of buffers may not necessarily increment
@@ -661,7 +661,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstRTPBasePayload--pt"></a><h3>The <code class="literal">“pt”</code> property</h3>
-<pre class="programlisting">  “pt”                       <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre>
+<pre class="programlisting">  “pt”                       <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre>
 <p>The payload type of the packets.</p>
 <p>Flags: Read / Write</p>
 <p>Allowed values: &lt;= 127</p>
@@ -679,7 +679,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstRTPBasePayload--seqnum"></a><h3>The <code class="literal">“seqnum”</code> property</h3>
-<pre class="programlisting">  “seqnum”                   <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre>
+<pre class="programlisting">  “seqnum”                   <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre>
 <p>The RTP sequence number of the last processed packet.</p>
 <p>Flags: Read</p>
 <p>Allowed values: &lt;= 65535</p>
@@ -688,7 +688,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstRTPBasePayload--seqnum-offset"></a><h3>The <code class="literal">“seqnum-offset”</code> property</h3>
-<pre class="programlisting">  “seqnum-offset”            <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<pre class="programlisting">  “seqnum-offset”            <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
 <p>Offset to add to all outgoing seqnum (-1 = random).</p>
 <p>Flags: Read / Write</p>
 <p>Allowed values: [-1,65535]</p>
@@ -697,7 +697,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstRTPBasePayload--ssrc"></a><h3>The <code class="literal">“ssrc”</code> property</h3>
-<pre class="programlisting">  “ssrc”                     <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre>
+<pre class="programlisting">  “ssrc”                     <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre>
 <p>The SSRC of the packets (default == random).</p>
 <p>Flags: Read / Write</p>
 <p>Default value: 4294967295</p>
@@ -705,7 +705,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstRTPBasePayload--stats"></a><h3>The <code class="literal">“stats”</code> property</h3>
-<pre class="programlisting">  “stats”                    <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a> *</pre>
+<pre class="programlisting">  “stats”                    <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstStructure.html"><span class="type">GstStructure</span></a> *</pre>
 <p>Various payloader statistics retrieved atomically (and are therefore
 synchroized with each other), these can be used e.g. to generate an
 RTP-Info header. This property return a GstStructure named
@@ -719,42 +719,42 @@
 <tbody>
 <tr>
 <td><p><span class="term">clock-rate</span></p></td>
-<td><p><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-TYPE-UINT:CAPS"><span class="type">G_TYPE_UINT</span></a>, clock-rate of the
+<td><p><a href="https://developer.gnome.org/gobject/unstable/gobject-Type-Information.html#G-TYPE-UINT:CAPS"><span class="type">G_TYPE_UINT</span></a>, clock-rate of the
     stream</p></td>
 </tr>
 <tr>
 <td><p><span class="term">running-time</span></p></td>
-<td><p><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-TYPE-UINT64:CAPS"><span class="type">G_TYPE_UINT64</span></a>, running time
+<td><p><a href="https://developer.gnome.org/gobject/unstable/gobject-Type-Information.html#G-TYPE-UINT64:CAPS"><span class="type">G_TYPE_UINT64</span></a>, running time
     </p></td>
 </tr>
 <tr>
 <td><p><span class="term">seqnum</span></p></td>
-<td><p><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-TYPE-UINT:CAPS"><span class="type">G_TYPE_UINT</span></a>, sequence number, same as
+<td><p><a href="https://developer.gnome.org/gobject/unstable/gobject-Type-Information.html#G-TYPE-UINT:CAPS"><span class="type">G_TYPE_UINT</span></a>, sequence number, same as
     <a class="link" href="gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload--seqnum" title="The “seqnum” property"><span class="type">“seqnum”</span></a></p></td>
 </tr>
 <tr>
 <td><p><span class="term">timestamp</span></p></td>
-<td><p><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-TYPE-UINT:CAPS"><span class="type">G_TYPE_UINT</span></a>, RTP timestamp, same as
+<td><p><a href="https://developer.gnome.org/gobject/unstable/gobject-Type-Information.html#G-TYPE-UINT:CAPS"><span class="type">G_TYPE_UINT</span></a>, RTP timestamp, same as
     <a class="link" href="gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload--timestamp" title="The “timestamp” property"><span class="type">“timestamp”</span></a></p></td>
 </tr>
 <tr>
 <td><p><span class="term">ssrc</span></p></td>
-<td><p><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-TYPE-UINT:CAPS"><span class="type">G_TYPE_UINT</span></a>, The SSRC in use
+<td><p><a href="https://developer.gnome.org/gobject/unstable/gobject-Type-Information.html#G-TYPE-UINT:CAPS"><span class="type">G_TYPE_UINT</span></a>, The SSRC in use
     </p></td>
 </tr>
 <tr>
 <td><p><span class="term">pt</span></p></td>
-<td><p><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-TYPE-UINT:CAPS"><span class="type">G_TYPE_UINT</span></a>, The Payload type in use, same as
+<td><p><a href="https://developer.gnome.org/gobject/unstable/gobject-Type-Information.html#G-TYPE-UINT:CAPS"><span class="type">G_TYPE_UINT</span></a>, The Payload type in use, same as
     <a class="link" href="gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload--pt" title="The “pt” property"><span class="type">“pt”</span></a></p></td>
 </tr>
 <tr>
 <td><p><span class="term">seqnum-offset</span></p></td>
-<td><p><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-TYPE-UINT:CAPS"><span class="type">G_TYPE_UINT</span></a>, The current offset added to the
+<td><p><a href="https://developer.gnome.org/gobject/unstable/gobject-Type-Information.html#G-TYPE-UINT:CAPS"><span class="type">G_TYPE_UINT</span></a>, The current offset added to the
     seqnum</p></td>
 </tr>
 <tr>
 <td><p><span class="term">timestamp-offset</span></p></td>
-<td><p><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-TYPE-UINT:CAPS"><span class="type">G_TYPE_UINT</span></a>, The current offset added to the
+<td><p><a href="https://developer.gnome.org/gobject/unstable/gobject-Type-Information.html#G-TYPE-UINT:CAPS"><span class="type">G_TYPE_UINT</span></a>, The current offset added to the
     timestamp</p></td>
 </tr>
 </tbody>
@@ -764,7 +764,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstRTPBasePayload--timestamp"></a><h3>The <code class="literal">“timestamp”</code> property</h3>
-<pre class="programlisting">  “timestamp”                <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre>
+<pre class="programlisting">  “timestamp”                <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre>
 <p>The RTP timestamp of the last processed packet.</p>
 <p>Flags: Read</p>
 <p>Default value: 0</p>
@@ -772,7 +772,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstRTPBasePayload--timestamp-offset"></a><h3>The <code class="literal">“timestamp-offset”</code> property</h3>
-<pre class="programlisting">  “timestamp-offset”         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre>
+<pre class="programlisting">  “timestamp-offset”         <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre>
 <p>Offset to add to all outgoing timestamps (default = random).</p>
 <p>Flags: Read / Write</p>
 <p>Default value: 4294967295</p>
@@ -781,6 +781,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstrtpbuffer.html b/docs/libs/html/gst-plugins-base-libs-gstrtpbuffer.html
index efdd520..eeb12a8 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstrtpbuffer.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstrtpbuffer.html
@@ -8,15 +8,14 @@
 <link rel="up" href="gstreamer-rtp.html" title="RTP Library">
 <link rel="prev" href="gst-plugins-base-libs-gstrtpbasepayload.html" title="gstrtpbasepayload">
 <link rel="next" href="gst-plugins-base-libs-gstrtcpbuffer.html" title="gstrtcpbuffer">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstrtpbuffer.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstrtpbuffer.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gstrtpbuffer.description" class="shortcut">Description</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="gstreamer-rtp.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -50,7 +49,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="returnvalue">GstBuffer</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-new-take-data" title="gst_rtp_buffer_new_take_data ()">gst_rtp_buffer_new_take_data</a> <span class="c_punctuation">()</span>
@@ -58,7 +57,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="returnvalue">GstBuffer</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-new-copy-data" title="gst_rtp_buffer_new_copy_data ()">gst_rtp_buffer_new_copy_data</a> <span class="c_punctuation">()</span>
@@ -66,7 +65,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="returnvalue">GstBuffer</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-new-allocate" title="gst_rtp_buffer_new_allocate ()">gst_rtp_buffer_new_allocate</a> <span class="c_punctuation">()</span>
@@ -74,7 +73,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="returnvalue">GstBuffer</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-new-allocate-len" title="gst_rtp_buffer_new_allocate_len ()">gst_rtp_buffer_new_allocate_len</a> <span class="c_punctuation">()</span>
@@ -82,7 +81,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-map" title="gst_rtp_buffer_map ()">gst_rtp_buffer_map</a> <span class="c_punctuation">()</span>
@@ -98,7 +97,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-calc-header-len" title="gst_rtp_buffer_calc_header_len ()">gst_rtp_buffer_calc_header_len</a> <span class="c_punctuation">()</span>
@@ -106,7 +105,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-calc-packet-len" title="gst_rtp_buffer_calc_packet_len ()">gst_rtp_buffer_calc_packet_len</a> <span class="c_punctuation">()</span>
@@ -114,7 +113,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-calc-payload-len" title="gst_rtp_buffer_calc_payload_len ()">gst_rtp_buffer_calc_payload_len</a> <span class="c_punctuation">()</span>
@@ -130,7 +129,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-packet-len" title="gst_rtp_buffer_get_packet_len ()">gst_rtp_buffer_get_packet_len</a> <span class="c_punctuation">()</span>
@@ -138,7 +137,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-header-len" title="gst_rtp_buffer_get_header_len ()">gst_rtp_buffer_get_header_len</a> <span class="c_punctuation">()</span>
@@ -162,7 +161,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-padding" title="gst_rtp_buffer_get_padding ()">gst_rtp_buffer_get_padding</a> <span class="c_punctuation">()</span>
@@ -186,7 +185,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-extension" title="gst_rtp_buffer_get_extension ()">gst_rtp_buffer_get_extension</a> <span class="c_punctuation">()</span>
@@ -202,7 +201,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-extension-data" title="gst_rtp_buffer_get_extension_data ()">gst_rtp_buffer_get_extension_data</a> <span class="c_punctuation">()</span>
@@ -250,7 +249,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-marker" title="gst_rtp_buffer_get_marker ()">gst_rtp_buffer_get_marker</a> <span class="c_punctuation">()</span>
@@ -314,7 +313,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="returnvalue">GstBuffer</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-payload-buffer" title="gst_rtp_buffer_get_payload_buffer ()">gst_rtp_buffer_get_payload_buffer</a> <span class="c_punctuation">()</span>
@@ -322,7 +321,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="returnvalue">GstBuffer</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-payload-subbuffer" title="gst_rtp_buffer_get_payload_subbuffer ()">gst_rtp_buffer_get_payload_subbuffer</a> <span class="c_punctuation">()</span>
@@ -330,7 +329,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-payload-len" title="gst_rtp_buffer_get_payload_len ()">gst_rtp_buffer_get_payload_len</a> <span class="c_punctuation">()</span>
@@ -338,7 +337,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="returnvalue">gpointer</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="returnvalue">gpointer</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-payload" title="gst_rtp_buffer_get_payload ()">gst_rtp_buffer_get_payload</a> <span class="c_punctuation">()</span>
@@ -354,7 +353,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-compare-seqnum" title="gst_rtp_buffer_compare_seqnum ()">gst_rtp_buffer_compare_seqnum</a> <span class="c_punctuation">()</span>
@@ -370,7 +369,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-set-extension-data" title="gst_rtp_buffer_set_extension_data ()">gst_rtp_buffer_set_extension_data</a> <span class="c_punctuation">()</span>
@@ -378,7 +377,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-extension-onebyte-header" title="gst_rtp_buffer_get_extension_onebyte_header ()">gst_rtp_buffer_get_extension_onebyte_header</a> <span class="c_punctuation">()</span>
@@ -386,7 +385,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-extension-twobytes-header" title="gst_rtp_buffer_get_extension_twobytes_header ()">gst_rtp_buffer_get_extension_twobytes_header</a> <span class="c_punctuation">()</span>
@@ -394,7 +393,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-add-extension-onebyte-header" title="gst_rtp_buffer_add_extension_onebyte_header ()">gst_rtp_buffer_add_extension_onebyte_header</a> <span class="c_punctuation">()</span>
@@ -402,7 +401,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-add-extension-twobytes-header" title="gst_rtp_buffer_add_extension_twobytes_header ()">gst_rtp_buffer_add_extension_twobytes_header</a> <span class="c_punctuation">()</span>
@@ -435,11 +434,6 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="gst-plugins-base-libs-gstrtpbuffer.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">
-</pre>
-</div>
-<div class="refsect1">
 <a name="gst-plugins-base-libs-gstrtpbuffer.includes"></a><h2>Includes</h2>
 <pre class="synopsis">#include &lt;gst/rtp/gstrtpbuffer.h&gt;
 </pre>
@@ -447,10 +441,10 @@
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstrtpbuffer.description"></a><h2>Description</h2>
 <div class="refsect2">
-<a name="id-1.2.9.6.7.2"></a><p>
+<a name="id-1.2.9.6.6.2"></a><p>
 The GstRTPBuffer helper functions makes it easy to parse and create regular 
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> objects that contain RTP payloads. These buffers are typically of
-'application/x-rtp' <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>.
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> objects that contain RTP payloads. These buffers are typically of
+'application/x-rtp' <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a>.
 </p>
 </div>
 </div>
@@ -459,8 +453,8 @@
 <div class="refsect2">
 <a name="gst-rtp-buffer-allocate-data"></a><h3>gst_rtp_buffer_allocate_data ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
-gst_rtp_buffer_allocate_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>,
-                              <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> payload_len</code></em>,
+gst_rtp_buffer_allocate_data (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> *buffer</code></em>,
+                              <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> payload_len</code></em>,
                               <em class="parameter"><code><span class="type">guint8</span> pad_len</code></em>,
                               <em class="parameter"><code><span class="type">guint8</span> csrc_count</code></em>);</pre>
 <p>Allocate enough data in <em class="parameter"><code>buffer</code></em>
@@ -476,7 +470,7 @@
  is &gt;0, the padding bit will be set. All other RTP header fields
 will be set to 0/FALSE.</p>
 <div class="refsect3">
-<a name="id-1.2.9.6.8.2.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.6.7.2.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -486,7 +480,7 @@
 <tbody>
 <tr>
 <td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a></p></td>
+<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a></p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
@@ -511,8 +505,8 @@
 <hr>
 <div class="refsect2">
 <a name="gst-rtp-buffer-new-take-data"></a><h3>gst_rtp_buffer_new_take_data ()</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_rtp_buffer_new_take_data (<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 class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="returnvalue">GstBuffer</span></a> *
+gst_rtp_buffer_new_take_data (<em class="parameter"><code><a href="https://developer.gnome.org/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> len</code></em>);</pre>
 <p>Create a new buffer and set the data and size of the buffer to <em class="parameter"><code>data</code></em>
  and <em class="parameter"><code>len</code></em>
@@ -522,7 +516,7 @@
 function transfers ownership of <em class="parameter"><code>data</code></em>
  to the new buffer.</p>
 <div class="refsect3">
-<a name="id-1.2.9.6.8.3.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.6.7.3.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -544,7 +538,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.6.8.3.6"></a><h4>Returns</h4>
+<a name="id-1.2.9.6.7.3.6"></a><h4>Returns</h4>
 <p> A newly allocated buffer with <em class="parameter"><code>data</code></em>
 and of size <em class="parameter"><code>len</code></em>
 .</p>
@@ -554,8 +548,8 @@
 <hr>
 <div class="refsect2">
 <a name="gst-rtp-buffer-new-copy-data"></a><h3>gst_rtp_buffer_new_copy_data ()</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_rtp_buffer_new_copy_data (<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 class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="returnvalue">GstBuffer</span></a> *
+gst_rtp_buffer_new_copy_data (<em class="parameter"><code><a href="https://developer.gnome.org/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> len</code></em>);</pre>
 <p>Create a new buffer and set the data to a copy of <em class="parameter"><code>len</code></em>
 
@@ -564,7 +558,7 @@
 . The data will be freed when the buffer
 is freed.</p>
 <div class="refsect3">
-<a name="id-1.2.9.6.8.4.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.6.7.4.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -587,7 +581,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.6.8.4.6"></a><h4>Returns</h4>
+<a name="id-1.2.9.6.7.4.6"></a><h4>Returns</h4>
 <p> A newly allocated buffer with a copy of <em class="parameter"><code>data</code></em>
 and of size <em class="parameter"><code>len</code></em>
 .</p>
@@ -597,18 +591,18 @@
 <hr>
 <div class="refsect2">
 <a name="gst-rtp-buffer-new-allocate"></a><h3>gst_rtp_buffer_new_allocate ()</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_rtp_buffer_new_allocate (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> payload_len</code></em>,
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="returnvalue">GstBuffer</span></a> *
+gst_rtp_buffer_new_allocate (<em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> payload_len</code></em>,
                              <em class="parameter"><code><span class="type">guint8</span> pad_len</code></em>,
                              <em class="parameter"><code><span class="type">guint8</span> csrc_count</code></em>);</pre>
-<p>Allocate a new <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> with enough data to hold an RTP packet with
+<p>Allocate a new <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> with enough data to hold an RTP packet with
 <em class="parameter"><code>csrc_count</code></em>
  CSRCs, a payload length of <em class="parameter"><code>payload_len</code></em>
  and padding of <em class="parameter"><code>pad_len</code></em>
 .
 All other RTP header fields will be set to 0/FALSE.</p>
 <div class="refsect3">
-<a name="id-1.2.9.6.8.5.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.6.7.5.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -635,7 +629,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.6.8.5.6"></a><h4>Returns</h4>
+<a name="id-1.2.9.6.7.5.6"></a><h4>Returns</h4>
 <p> A newly allocated buffer that can hold an RTP packet with given
 parameters.</p>
 <p></p>
@@ -644,11 +638,11 @@
 <hr>
 <div class="refsect2">
 <a name="gst-rtp-buffer-new-allocate-len"></a><h3>gst_rtp_buffer_new_allocate_len ()</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_rtp_buffer_new_allocate_len (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> packet_len</code></em>,
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="returnvalue">GstBuffer</span></a> *
+gst_rtp_buffer_new_allocate_len (<em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> packet_len</code></em>,
                                  <em class="parameter"><code><span class="type">guint8</span> pad_len</code></em>,
                                  <em class="parameter"><code><span class="type">guint8</span> csrc_count</code></em>);</pre>
-<p>Create a new <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> that can hold an RTP packet that is exactly
+<p>Create a new <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> that can hold an RTP packet that is exactly
 <em class="parameter"><code>packet_len</code></em>
  long. The length of the payload depends on <em class="parameter"><code>pad_len</code></em>
  and
@@ -656,7 +650,7 @@
  and can be calculated with <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-calc-payload-len" title="gst_rtp_buffer_calc_payload_len ()"><code class="function">gst_rtp_buffer_calc_payload_len()</code></a>.
 All RTP header fields will be set to 0/FALSE.</p>
 <div class="refsect3">
-<a name="id-1.2.9.6.8.6.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.6.7.6.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -683,7 +677,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.6.8.6.6"></a><h4>Returns</h4>
+<a name="id-1.2.9.6.7.6.6"></a><h4>Returns</h4>
 <p> A newly allocated buffer that can hold an RTP packet of <em class="parameter"><code>packet_len</code></em>
 .</p>
 <p></p>
@@ -692,15 +686,15 @@
 <hr>
 <div class="refsect2">
 <a name="gst-rtp-buffer-map"></a><h3>gst_rtp_buffer_map ()</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_rtp_buffer_map (<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 href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gst_rtp_buffer_map (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> *buffer</code></em>,
                     <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMemory.html#GstMapFlags"><span class="type">GstMapFlags</span></a> flags</code></em>,
                     <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#GstRTPBuffer" title="struct GstRTPBuffer"><span class="type">GstRTPBuffer</span></a> *rtp</code></em>);</pre>
 <p>Map the contents of <em class="parameter"><code>buffer</code></em>
  into <em class="parameter"><code>rtp</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.9.6.8.7.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.6.7.7.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -710,7 +704,7 @@
 <tbody>
 <tr>
 <td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a></p></td>
+<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a></p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
@@ -727,8 +721,8 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.6.8.7.6"></a><h4>Returns</h4>
-<p> <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>buffer</code></em>
+<a name="id-1.2.9.6.7.7.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>buffer</code></em>
 could be mapped.</p>
 <p></p>
 </div>
@@ -741,7 +735,7 @@
 <p>Unmap <em class="parameter"><code>rtp</code></em>
  previously mapped with <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-map" title="gst_rtp_buffer_map ()"><code class="function">gst_rtp_buffer_map()</code></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.9.6.8.8.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.6.7.8.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -759,13 +753,13 @@
 <hr>
 <div class="refsect2">
 <a name="gst-rtp-buffer-calc-header-len"></a><h3>gst_rtp_buffer_calc_header_len ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_rtp_buffer_calc_header_len (<em class="parameter"><code><span class="type">guint8</span> csrc_count</code></em>);</pre>
 <p>Calculate the header length of an RTP packet with <em class="parameter"><code>csrc_count</code></em>
  CSRC entries.
 An RTP packet can have at most 15 CSRC entries.</p>
 <div class="refsect3">
-<a name="id-1.2.9.6.8.9.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.6.7.9.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -780,7 +774,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.6.8.9.6"></a><h4>Returns</h4>
+<a name="id-1.2.9.6.7.9.6"></a><h4>Returns</h4>
 <p> The length of an RTP header with <em class="parameter"><code>csrc_count</code></em>
 CSRC entries.</p>
 <p></p>
@@ -789,8 +783,8 @@
 <hr>
 <div class="refsect2">
 <a name="gst-rtp-buffer-calc-packet-len"></a><h3>gst_rtp_buffer_calc_packet_len ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
-gst_rtp_buffer_calc_packet_len (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> payload_len</code></em>,
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+gst_rtp_buffer_calc_packet_len (<em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> payload_len</code></em>,
                                 <em class="parameter"><code><span class="type">guint8</span> pad_len</code></em>,
                                 <em class="parameter"><code><span class="type">guint8</span> csrc_count</code></em>);</pre>
 <p>Calculate the total length of an RTP packet with a payload size of <em class="parameter"><code>payload_len</code></em>
@@ -799,7 +793,7 @@
  and a <em class="parameter"><code>csrc_count</code></em>
  CSRC entries.</p>
 <div class="refsect3">
-<a name="id-1.2.9.6.8.10.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.6.7.10.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -826,7 +820,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.6.8.10.6"></a><h4>Returns</h4>
+<a name="id-1.2.9.6.7.10.6"></a><h4>Returns</h4>
 <p> The total length of an RTP header with given parameters.</p>
 <p></p>
 </div>
@@ -834,8 +828,8 @@
 <hr>
 <div class="refsect2">
 <a name="gst-rtp-buffer-calc-payload-len"></a><h3>gst_rtp_buffer_calc_payload_len ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
-gst_rtp_buffer_calc_payload_len (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> packet_len</code></em>,
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+gst_rtp_buffer_calc_payload_len (<em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> packet_len</code></em>,
                                  <em class="parameter"><code><span class="type">guint8</span> pad_len</code></em>,
                                  <em class="parameter"><code><span class="type">guint8</span> csrc_count</code></em>);</pre>
 <p>Calculate the length of the payload of an RTP packet with size <em class="parameter"><code>packet_len</code></em>
@@ -844,7 +838,7 @@
  and a <em class="parameter"><code>csrc_count</code></em>
  CSRC entries.</p>
 <div class="refsect3">
-<a name="id-1.2.9.6.8.11.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.6.7.11.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -871,7 +865,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.6.8.11.6"></a><h4>Returns</h4>
+<a name="id-1.2.9.6.7.11.6"></a><h4>Returns</h4>
 <p> The length of the payload of an RTP packet  with given parameters.</p>
 <p></p>
 </div>
@@ -881,13 +875,13 @@
 <a name="gst-rtp-buffer-set-packet-len"></a><h3>gst_rtp_buffer_set_packet_len ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_rtp_buffer_set_packet_len (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#GstRTPBuffer" title="struct GstRTPBuffer"><span class="type">GstRTPBuffer</span></a> *rtp</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> len</code></em>);</pre>
+                               <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);</pre>
 <p>Set the total <em class="parameter"><code>rtp</code></em>
  size to <em class="parameter"><code>len</code></em>
 . The data in the buffer will be made
 larger if needed. Any padding will be removed from the packet.</p>
 <div class="refsect3">
-<a name="id-1.2.9.6.8.12.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.6.7.12.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -912,12 +906,12 @@
 <hr>
 <div class="refsect2">
 <a name="gst-rtp-buffer-get-packet-len"></a><h3>gst_rtp_buffer_get_packet_len ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_rtp_buffer_get_packet_len (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#GstRTPBuffer" title="struct GstRTPBuffer"><span class="type">GstRTPBuffer</span></a> *rtp</code></em>);</pre>
 <p>Return the total length of the packet in <em class="parameter"><code>buffer</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.9.6.8.13.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.6.7.13.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -932,7 +926,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.6.8.13.6"></a><h4>Returns</h4>
+<a name="id-1.2.9.6.7.13.6"></a><h4>Returns</h4>
 <p> The total length of the packet in <em class="parameter"><code>buffer</code></em>
 .</p>
 <p></p>
@@ -941,13 +935,13 @@
 <hr>
 <div class="refsect2">
 <a name="gst-rtp-buffer-get-header-len"></a><h3>gst_rtp_buffer_get_header_len ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_rtp_buffer_get_header_len (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#GstRTPBuffer" title="struct GstRTPBuffer"><span class="type">GstRTPBuffer</span></a> *rtp</code></em>);</pre>
 <p>Return the total length of the header in <em class="parameter"><code>buffer</code></em>
 . This include the length of
 the fixed header, the CSRC list and the extension header.</p>
 <div class="refsect3">
-<a name="id-1.2.9.6.8.14.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.6.7.14.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -962,7 +956,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.6.8.14.6"></a><h4>Returns</h4>
+<a name="id-1.2.9.6.7.14.6"></a><h4>Returns</h4>
 <p> The total length of the header in <em class="parameter"><code>buffer</code></em>
 .</p>
 <p></p>
@@ -976,7 +970,7 @@
 <p>Get the version number of the RTP packet in <em class="parameter"><code>buffer</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.9.6.8.15.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.6.7.15.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -991,7 +985,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.6.8.15.6"></a><h4>Returns</h4>
+<a name="id-1.2.9.6.7.15.6"></a><h4>Returns</h4>
 <p> The version of <em class="parameter"><code>buffer</code></em>
 .</p>
 <p></p>
@@ -1007,7 +1001,7 @@
  to <em class="parameter"><code>version</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.9.6.8.16.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.6.7.16.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1032,12 +1026,12 @@
 <hr>
 <div class="refsect2">
 <a name="gst-rtp-buffer-get-padding"></a><h3>gst_rtp_buffer_get_padding ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_rtp_buffer_get_padding (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#GstRTPBuffer" title="struct GstRTPBuffer"><span class="type">GstRTPBuffer</span></a> *rtp</code></em>);</pre>
 <p>Check if the padding bit is set on the RTP packet in <em class="parameter"><code>buffer</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.9.6.8.17.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.6.7.17.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1052,7 +1046,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.6.8.17.6"></a><h4>Returns</h4>
+<a name="id-1.2.9.6.7.17.6"></a><h4>Returns</h4>
 <p> TRUE if <em class="parameter"><code>buffer</code></em>
 has the padding bit set.</p>
 <p></p>
@@ -1063,12 +1057,12 @@
 <a name="gst-rtp-buffer-set-padding"></a><h3>gst_rtp_buffer_set_padding ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_rtp_buffer_set_padding (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#GstRTPBuffer" title="struct GstRTPBuffer"><span class="type">GstRTPBuffer</span></a> *rtp</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> padding</code></em>);</pre>
+                            <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> padding</code></em>);</pre>
 <p>Set the padding bit on the RTP packet in <em class="parameter"><code>buffer</code></em>
  to <em class="parameter"><code>padding</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.9.6.8.18.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.6.7.18.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1095,7 +1089,7 @@
 <a name="gst-rtp-buffer-pad-to"></a><h3>gst_rtp_buffer_pad_to ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_rtp_buffer_pad_to (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#GstRTPBuffer" title="struct GstRTPBuffer"><span class="type">GstRTPBuffer</span></a> *rtp</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> len</code></em>);</pre>
+                       <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);</pre>
 <p>Set the amount of padding in the RTP packet in <em class="parameter"><code>buffer</code></em>
  to
 <em class="parameter"><code>len</code></em>
@@ -1103,7 +1097,7 @@
  is 0, the padding is removed.</p>
 <p>NOTE: This function does not work correctly.</p>
 <div class="refsect3">
-<a name="id-1.2.9.6.8.19.6"></a><h4>Parameters</h4>
+<a name="id-1.2.9.6.7.19.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1128,12 +1122,12 @@
 <hr>
 <div class="refsect2">
 <a name="gst-rtp-buffer-get-extension"></a><h3>gst_rtp_buffer_get_extension ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_rtp_buffer_get_extension (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#GstRTPBuffer" title="struct GstRTPBuffer"><span class="type">GstRTPBuffer</span></a> *rtp</code></em>);</pre>
 <p>Check if the extension bit is set on the RTP packet in <em class="parameter"><code>buffer</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.9.6.8.20.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.6.7.20.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1148,7 +1142,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.6.8.20.6"></a><h4>Returns</h4>
+<a name="id-1.2.9.6.7.20.6"></a><h4>Returns</h4>
 <p> TRUE if <em class="parameter"><code>buffer</code></em>
 has the extension bit set.</p>
 <p></p>
@@ -1159,12 +1153,12 @@
 <a name="gst-rtp-buffer-set-extension"></a><h3>gst_rtp_buffer_set_extension ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_rtp_buffer_set_extension (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#GstRTPBuffer" title="struct GstRTPBuffer"><span class="type">GstRTPBuffer</span></a> *rtp</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> extension</code></em>);</pre>
+                              <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> extension</code></em>);</pre>
 <p>Set the extension bit on the RTP packet in <em class="parameter"><code>buffer</code></em>
  to <em class="parameter"><code>extension</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.9.6.8.21.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.6.7.21.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1189,11 +1183,11 @@
 <hr>
 <div class="refsect2">
 <a name="gst-rtp-buffer-get-extension-data"></a><h3>gst_rtp_buffer_get_extension_data ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_rtp_buffer_get_extension_data (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#GstRTPBuffer" title="struct GstRTPBuffer"><span class="type">GstRTPBuffer</span></a> *rtp</code></em>,
                                    <em class="parameter"><code><span class="type">guint16</span> *bits</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#guint"><span class="type">guint</span></a> *wordlen</code></em>);</pre>
+                                   <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> *data</code></em>,
+                                   <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *wordlen</code></em>);</pre>
 <p>Get the extension data. <em class="parameter"><code>bits</code></em>
  will contain the extension 16 bits of custom
 data. <em class="parameter"><code>data</code></em>
@@ -1202,13 +1196,13 @@
 the length of <em class="parameter"><code>data</code></em>
  in 32 bits words.</p>
 <p>If <em class="parameter"><code>buffer</code></em>
- did not contain an extension, this function will return <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>
+ did not contain an extension, this function will return <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>
 with <em class="parameter"><code>bits</code></em>
 , <em class="parameter"><code>data</code></em>
  and <em class="parameter"><code>wordlen</code></em>
  unchanged.</p>
 <div class="refsect3">
-<a name="id-1.2.9.6.8.22.6"></a><h4>Parameters</h4>
+<a name="id-1.2.9.6.7.22.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1241,7 +1235,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.6.8.22.7"></a><h4>Returns</h4>
+<a name="id-1.2.9.6.7.22.7"></a><h4>Returns</h4>
 <p> TRUE if <em class="parameter"><code>buffer</code></em>
 had the extension bit set.</p>
 <p></p>
@@ -1255,7 +1249,7 @@
 <p>Get the SSRC of the RTP packet in <em class="parameter"><code>buffer</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.9.6.8.23.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.6.7.23.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1270,7 +1264,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.6.8.23.6"></a><h4>Returns</h4>
+<a name="id-1.2.9.6.7.23.6"></a><h4>Returns</h4>
 <p> the SSRC of <em class="parameter"><code>buffer</code></em>
 in host order.</p>
 <p></p>
@@ -1286,7 +1280,7 @@
  to <em class="parameter"><code>ssrc</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.9.6.8.24.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.6.7.24.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1316,7 +1310,7 @@
 <p>Get the CSRC count of the RTP packet in <em class="parameter"><code>buffer</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.9.6.8.25.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.6.7.25.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1331,7 +1325,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.6.8.25.6"></a><h4>Returns</h4>
+<a name="id-1.2.9.6.7.25.6"></a><h4>Returns</h4>
 <p> the CSRC count of <em class="parameter"><code>buffer</code></em>
 .</p>
 <p></p>
@@ -1347,7 +1341,7 @@
  in <em class="parameter"><code>buffer</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.9.6.8.26.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.6.7.26.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1369,7 +1363,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.6.8.26.6"></a><h4>Returns</h4>
+<a name="id-1.2.9.6.7.26.6"></a><h4>Returns</h4>
 <p> the CSRC at index <em class="parameter"><code>idx</code></em>
 in host order.</p>
 <p></p>
@@ -1387,7 +1381,7 @@
  to <em class="parameter"><code>csrc</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.9.6.8.27.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.6.7.27.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1418,12 +1412,12 @@
 <hr>
 <div class="refsect2">
 <a name="gst-rtp-buffer-get-marker"></a><h3>gst_rtp_buffer_get_marker ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_rtp_buffer_get_marker (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#GstRTPBuffer" title="struct GstRTPBuffer"><span class="type">GstRTPBuffer</span></a> *rtp</code></em>);</pre>
 <p>Check if the marker bit is set on the RTP packet in <em class="parameter"><code>buffer</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.9.6.8.28.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.6.7.28.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1438,7 +1432,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.6.8.28.6"></a><h4>Returns</h4>
+<a name="id-1.2.9.6.7.28.6"></a><h4>Returns</h4>
 <p> TRUE if <em class="parameter"><code>buffer</code></em>
 has the marker bit set.</p>
 <p></p>
@@ -1449,12 +1443,12 @@
 <a name="gst-rtp-buffer-set-marker"></a><h3>gst_rtp_buffer_set_marker ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_rtp_buffer_set_marker (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#GstRTPBuffer" title="struct GstRTPBuffer"><span class="type">GstRTPBuffer</span></a> *rtp</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> marker</code></em>);</pre>
+                           <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> marker</code></em>);</pre>
 <p>Set the marker bit on the RTP packet in <em class="parameter"><code>buffer</code></em>
  to <em class="parameter"><code>marker</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.9.6.8.29.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.6.7.29.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1484,7 +1478,7 @@
 <p>Get the payload type of the RTP packet in <em class="parameter"><code>buffer</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.9.6.8.30.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.6.7.30.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1499,7 +1493,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.6.8.30.6"></a><h4>Returns</h4>
+<a name="id-1.2.9.6.7.30.6"></a><h4>Returns</h4>
 <p> The payload type.</p>
 <p></p>
 </div>
@@ -1514,7 +1508,7 @@
  to <em class="parameter"><code>payload_type</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.9.6.8.31.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.6.7.31.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1544,7 +1538,7 @@
 <p>Get the sequence number of the RTP packet in <em class="parameter"><code>buffer</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.9.6.8.32.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.6.7.32.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1559,7 +1553,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.6.8.32.6"></a><h4>Returns</h4>
+<a name="id-1.2.9.6.7.32.6"></a><h4>Returns</h4>
 <p> The sequence number in host order.</p>
 <p></p>
 </div>
@@ -1574,7 +1568,7 @@
  to <em class="parameter"><code>seq</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.9.6.8.33.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.6.7.33.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1604,7 +1598,7 @@
 <p>Get the timestamp of the RTP packet in <em class="parameter"><code>buffer</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.9.6.8.34.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.6.7.34.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1619,7 +1613,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.6.8.34.6"></a><h4>Returns</h4>
+<a name="id-1.2.9.6.7.34.6"></a><h4>Returns</h4>
 <p> The timestamp in host order.</p>
 <p></p>
 </div>
@@ -1634,7 +1628,7 @@
  to <em class="parameter"><code>timestamp</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.9.6.8.35.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.6.7.35.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1659,7 +1653,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-rtp-buffer-get-payload-buffer"></a><h3>gst_rtp_buffer_get_payload_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> *
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="returnvalue">GstBuffer</span></a> *
 gst_rtp_buffer_get_payload_buffer (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#GstRTPBuffer" title="struct GstRTPBuffer"><span class="type">GstRTPBuffer</span></a> *rtp</code></em>);</pre>
 <p>Create a buffer of the payload of the RTP packet in <em class="parameter"><code>buffer</code></em>
 . This function
@@ -1667,7 +1661,7 @@
  so that a memcpy can be
 avoided.</p>
 <div class="refsect3">
-<a name="id-1.2.9.6.8.36.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.6.7.36.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1682,7 +1676,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.6.8.36.6"></a><h4>Returns</h4>
+<a name="id-1.2.9.6.7.36.6"></a><h4>Returns</h4>
 <p> A new buffer with the data of the payload.</p>
 <p></p>
 </div>
@@ -1690,10 +1684,10 @@
 <hr>
 <div class="refsect2">
 <a name="gst-rtp-buffer-get-payload-subbuffer"></a><h3>gst_rtp_buffer_get_payload_subbuffer ()</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> *
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="returnvalue">GstBuffer</span></a> *
 gst_rtp_buffer_get_payload_subbuffer (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#GstRTPBuffer" title="struct GstRTPBuffer"><span class="type">GstRTPBuffer</span></a> *rtp</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> 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> len</code></em>);</pre>
+                                      <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> offset</code></em>,
+                                      <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);</pre>
 <p>Create a subbuffer of the payload of the RTP packet in <em class="parameter"><code>buffer</code></em>
 . <em class="parameter"><code>offset</code></em>
  bytes
@@ -1703,7 +1697,7 @@
  is -1 the total payload starting from <em class="parameter"><code>offset</code></em>
  is subbuffered.</p>
 <div class="refsect3">
-<a name="id-1.2.9.6.8.37.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.6.7.37.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1730,7 +1724,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.6.8.37.6"></a><h4>Returns</h4>
+<a name="id-1.2.9.6.7.37.6"></a><h4>Returns</h4>
 <p> A new buffer with the specified data of the payload.</p>
 <p></p>
 </div>
@@ -1738,12 +1732,12 @@
 <hr>
 <div class="refsect2">
 <a name="gst-rtp-buffer-get-payload-len"></a><h3>gst_rtp_buffer_get_payload_len ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_rtp_buffer_get_payload_len (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#GstRTPBuffer" title="struct GstRTPBuffer"><span class="type">GstRTPBuffer</span></a> *rtp</code></em>);</pre>
 <p>Get the length of the payload of the RTP packet in <em class="parameter"><code>buffer</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.9.6.8.38.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.6.7.38.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1758,7 +1752,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.6.8.38.6"></a><h4>Returns</h4>
+<a name="id-1.2.9.6.7.38.6"></a><h4>Returns</h4>
 <p> The length of the payload in <em class="parameter"><code>buffer</code></em>
 .</p>
 <p></p>
@@ -1767,14 +1761,14 @@
 <hr>
 <div class="refsect2">
 <a name="gst-rtp-buffer-get-payload"></a><h3>gst_rtp_buffer_get_payload ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="returnvalue">gpointer</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="returnvalue">gpointer</span></a>
 gst_rtp_buffer_get_payload (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#GstRTPBuffer" title="struct GstRTPBuffer"><span class="type">GstRTPBuffer</span></a> *rtp</code></em>);</pre>
 <p>Get a pointer to the payload data in <em class="parameter"><code>buffer</code></em>
 . This pointer is valid as long
 as a reference to <em class="parameter"><code>buffer</code></em>
  is held.</p>
 <div class="refsect3">
-<a name="id-1.2.9.6.8.39.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.6.7.39.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1789,7 +1783,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.6.8.39.6"></a><h4>Returns</h4>
+<a name="id-1.2.9.6.7.39.6"></a><h4>Returns</h4>
 <p> A pointer
 to the payload data in <em class="parameter"><code>buffer</code></em>
 . </p>
@@ -1804,7 +1798,7 @@
 <p>Get the default clock-rate for the static payload type <em class="parameter"><code>payload_type</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.9.6.8.40.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.6.7.40.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1819,7 +1813,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.6.8.40.6"></a><h4>Returns</h4>
+<a name="id-1.2.9.6.7.40.6"></a><h4>Returns</h4>
 <p> the default clock rate or -1 if the payload type is not static or
 the clock-rate is undefined.</p>
 <p></p>
@@ -1828,7 +1822,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-rtp-buffer-compare-seqnum"></a><h3>gst_rtp_buffer_compare_seqnum ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
 gst_rtp_buffer_compare_seqnum (<em class="parameter"><code><span class="type">guint16</span> seqnum1</code></em>,
                                <em class="parameter"><code><span class="type">guint16</span> seqnum2</code></em>);</pre>
 <p>Compare two sequence numbers, taking care of wraparounds. This function
@@ -1836,7 +1830,7 @@
  and <em class="parameter"><code>seqnum2</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.9.6.8.41.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.6.7.41.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1858,7 +1852,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.6.8.41.6"></a><h4>Returns</h4>
+<a name="id-1.2.9.6.7.41.6"></a><h4>Returns</h4>
 <p> a negative value if <em class="parameter"><code>seqnum1</code></em>
 is bigger than <em class="parameter"><code>seqnum2</code></em>
 , 0 if they
@@ -1882,7 +1876,7 @@
 <p>This function makes sure that the returned value is a constantly increasing
 value even in the case where there is a timestamp wraparound.</p>
 <div class="refsect3">
-<a name="id-1.2.9.6.8.42.6"></a><h4>Parameters</h4>
+<a name="id-1.2.9.6.7.42.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1904,7 +1898,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.6.8.42.7"></a><h4>Returns</h4>
+<a name="id-1.2.9.6.7.42.7"></a><h4>Returns</h4>
 <p> The extended timestamp of <em class="parameter"><code>timestamp</code></em>
 .</p>
 <p></p>
@@ -1913,7 +1907,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-rtp-buffer-set-extension-data"></a><h3>gst_rtp_buffer_set_extension_data ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_rtp_buffer_set_extension_data (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#GstRTPBuffer" title="struct GstRTPBuffer"><span class="type">GstRTPBuffer</span></a> *rtp</code></em>,
                                    <em class="parameter"><code><span class="type">guint16</span> bits</code></em>,
                                    <em class="parameter"><code><span class="type">guint16</span> length</code></em>);</pre>
@@ -1923,7 +1917,7 @@
 extension header. If the existing extension data is not large enough, it will
 be made larger.</p>
 <div class="refsect3">
-<a name="id-1.2.9.6.8.43.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.6.7.43.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1951,7 +1945,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.6.8.43.6"></a><h4>Returns</h4>
+<a name="id-1.2.9.6.7.43.6"></a><h4>Returns</h4>
 <p> True if done.</p>
 <p></p>
 </div>
@@ -1959,17 +1953,17 @@
 <hr>
 <div class="refsect2">
 <a name="gst-rtp-buffer-get-extension-onebyte-header"></a><h3>gst_rtp_buffer_get_extension_onebyte_header ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_rtp_buffer_get_extension_onebyte_header
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#GstRTPBuffer" title="struct GstRTPBuffer"><span class="type">GstRTPBuffer</span></a> *rtp</code></em>,
                                 <em class="parameter"><code><span class="type">guint8</span> id</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> nth</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#guint"><span class="type">guint</span></a> *size</code></em>);</pre>
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nth</code></em>,
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> *data</code></em>,
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *size</code></em>);</pre>
 <p>Parses RFC 5285 style header extensions with a one byte header. It will
 return the nth extension with the requested id.</p>
 <div class="refsect3">
-<a name="id-1.2.9.6.8.44.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.6.7.44.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2006,7 +2000,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.6.8.44.6"></a><h4>Returns</h4>
+<a name="id-1.2.9.6.7.44.6"></a><h4>Returns</h4>
 <p> TRUE if <em class="parameter"><code>buffer</code></em>
 had the requested header extension</p>
 <p></p>
@@ -2015,18 +2009,18 @@
 <hr>
 <div class="refsect2">
 <a name="gst-rtp-buffer-get-extension-twobytes-header"></a><h3>gst_rtp_buffer_get_extension_twobytes_header ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_rtp_buffer_get_extension_twobytes_header
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#GstRTPBuffer" title="struct GstRTPBuffer"><span class="type">GstRTPBuffer</span></a> *rtp</code></em>,
                                 <em class="parameter"><code><span class="type">guint8</span> *appbits</code></em>,
                                 <em class="parameter"><code><span class="type">guint8</span> id</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> nth</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#guint"><span class="type">guint</span></a> *size</code></em>);</pre>
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nth</code></em>,
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> *data</code></em>,
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *size</code></em>);</pre>
 <p>Parses RFC 5285 style header extensions with a two bytes header. It will
 return the nth extension with the requested id.</p>
 <div class="refsect3">
-<a name="id-1.2.9.6.8.45.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.6.7.45.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2068,7 +2062,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.6.8.45.6"></a><h4>Returns</h4>
+<a name="id-1.2.9.6.7.45.6"></a><h4>Returns</h4>
 <p> TRUE if <em class="parameter"><code>buffer</code></em>
 had the requested header extension</p>
 <p></p>
@@ -2077,12 +2071,12 @@
 <hr>
 <div class="refsect2">
 <a name="gst-rtp-buffer-add-extension-onebyte-header"></a><h3>gst_rtp_buffer_add_extension_onebyte_header ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_rtp_buffer_add_extension_onebyte_header
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#GstRTPBuffer" title="struct GstRTPBuffer"><span class="type">GstRTPBuffer</span></a> *rtp</code></em>,
                                 <em class="parameter"><code><span class="type">guint8</span> id</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#guint"><span class="type">guint</span></a> size</code></em>);</pre>
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);</pre>
 <p>Adds a RFC 5285 header extension with a one byte header to the end of the
 RTP header. If there is already a RFC 5285 header extension with a one byte
 header, the new extension will be appended.
@@ -2091,7 +2085,7 @@
 a two bytes header as described in RFC 5285. In that case, use
 <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-add-extension-twobytes-header" title="gst_rtp_buffer_add_extension_twobytes_header ()"><code class="function">gst_rtp_buffer_add_extension_twobytes_header()</code></a></p>
 <div class="refsect3">
-<a name="id-1.2.9.6.8.46.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.6.7.46.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2123,21 +2117,21 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.6.8.46.6"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if header extension could be added</p>
+<a name="id-1.2.9.6.7.46.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if header extension could be added</p>
 <p></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtp-buffer-add-extension-twobytes-header"></a><h3>gst_rtp_buffer_add_extension_twobytes_header ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_rtp_buffer_add_extension_twobytes_header
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#GstRTPBuffer" title="struct GstRTPBuffer"><span class="type">GstRTPBuffer</span></a> *rtp</code></em>,
                                 <em class="parameter"><code><span class="type">guint8</span> appbits</code></em>,
                                 <em class="parameter"><code><span class="type">guint8</span> id</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#guint"><span class="type">guint</span></a> size</code></em>);</pre>
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);</pre>
 <p>Adds a RFC 5285 header extension with a two bytes header to the end of the
 RTP header. If there is already a RFC 5285 header extension with a two bytes
 header, the new extension will be appended.
@@ -2146,7 +2140,7 @@
 a one byte header as described in RFC 5285. In that case, use
 <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-add-extension-onebyte-header" title="gst_rtp_buffer_add_extension_onebyte_header ()"><code class="function">gst_rtp_buffer_add_extension_onebyte_header()</code></a></p>
 <div class="refsect3">
-<a name="id-1.2.9.6.8.47.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.6.7.47.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2183,8 +2177,8 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.6.8.47.6"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if header extension could be added</p>
+<a name="id-1.2.9.6.7.47.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if header extension could be added</p>
 <p></p>
 </div>
 </div>
@@ -2211,7 +2205,7 @@
 <p>Data structure that points to an RTP packet.
 The size of the structure is made public to allow stack allocations.</p>
 <div class="refsect3">
-<a name="id-1.2.9.6.9.3.5"></a><h4>Members</h4>
+<a name="id-1.2.9.6.8.3.5"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
@@ -2220,17 +2214,17 @@
 </colgroup>
 <tbody>
 <tr>
-<td class="struct_member_name"><p><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="GstRTPBuffer.buffer"></a>buffer</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> *<em class="structfield"><code><a name="GstRTPBuffer.buffer"></a>buffer</code></em>;</p></td>
 <td class="struct_member_description"><p>pointer to RTP buffer</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstRTPBuffer.state"></a>state</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstRTPBuffer.state"></a>state</code></em>;</p></td>
 <td class="struct_member_description"><p>internal state</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstRTPBuffer.data"></a>data</code></em>[4];</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> <em class="structfield"><code><a name="GstRTPBuffer.data"></a>data</code></em>[4];</p></td>
 <td class="struct_member_description"><p>array of data</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
@@ -2261,6 +2255,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstrtphdrext.html b/docs/libs/html/gst-plugins-base-libs-gstrtphdrext.html
index 04821fb..eeb8bba 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstrtphdrext.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstrtphdrext.html
@@ -8,15 +8,14 @@
 <link rel="up" href="gstreamer-rtp.html" title="RTP Library">
 <link rel="prev" href="gst-plugins-base-libs-gstrtppayloads.html" title="gstrtppayloads">
 <link rel="next" href="gstreamer-rtsp.html" title="RTSP Library">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstrtphdrext.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstrtphdrext.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gstrtphdrext.description" class="shortcut">Description</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="gstreamer-rtp.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -42,7 +41,7 @@
 <tbody>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtphdrext.html#gst-rtp-hdrext-get-ntp-56" title="gst_rtp_hdrext_get_ntp_56 ()">gst_rtp_hdrext_get_ntp_56</a> <span class="c_punctuation">()</span>
@@ -50,7 +49,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtphdrext.html#gst-rtp-hdrext-get-ntp-64" title="gst_rtp_hdrext_get_ntp_64 ()">gst_rtp_hdrext_get_ntp_64</a> <span class="c_punctuation">()</span>
@@ -58,7 +57,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtphdrext.html#gst-rtp-hdrext-set-ntp-56" title="gst_rtp_hdrext_set_ntp_56 ()">gst_rtp_hdrext_set_ntp_56</a> <span class="c_punctuation">()</span>
@@ -66,7 +65,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtphdrext.html#gst-rtp-hdrext-set-ntp-64" title="gst_rtp_hdrext_set_ntp_64 ()">gst_rtp_hdrext_set_ntp_64</a> <span class="c_punctuation">()</span>
@@ -76,11 +75,6 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="gst-plugins-base-libs-gstrtphdrext.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">
-</pre>
-</div>
-<div class="refsect1">
 <a name="gst-plugins-base-libs-gstrtphdrext.includes"></a><h2>Includes</h2>
 <pre class="synopsis">#include &lt;gst/rtp/gstrtphdrext.h&gt;
 </pre>
@@ -92,9 +86,9 @@
 <a name="gst-plugins-base-libs-gstrtphdrext.functions_details"></a><h2>Functions</h2>
 <div class="refsect2">
 <a name="gst-rtp-hdrext-get-ntp-56"></a><h3>gst_rtp_hdrext_get_ntp_56 ()</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_rtp_hdrext_get_ntp_56 (<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#guint"><span class="type">guint</span></a> size</code></em>,
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gst_rtp_hdrext_get_ntp_56 (<em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
+                           <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>,
                            <em class="parameter"><code><span class="type">guint64</span> *ntptime</code></em>);</pre>
 <p>Reads the NTP time from the <em class="parameter"><code>size</code></em>
  NTP-56 extension bytes in <em class="parameter"><code>data</code></em>
@@ -102,7 +96,7 @@
 result in <em class="parameter"><code>ntptime</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.9.9.7.2.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.9.6.2.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -130,17 +124,17 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.9.7.2.6"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success.</p>
+<a name="id-1.2.9.9.6.2.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success.</p>
 <p></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtp-hdrext-get-ntp-64"></a><h3>gst_rtp_hdrext_get_ntp_64 ()</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_rtp_hdrext_get_ntp_64 (<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#guint"><span class="type">guint</span></a> size</code></em>,
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gst_rtp_hdrext_get_ntp_64 (<em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
+                           <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>,
                            <em class="parameter"><code><span class="type">guint64</span> *ntptime</code></em>);</pre>
 <p>Reads the NTP time from the <em class="parameter"><code>size</code></em>
  NTP-64 extension bytes in <em class="parameter"><code>data</code></em>
@@ -148,7 +142,7 @@
 result in <em class="parameter"><code>ntptime</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.9.9.7.3.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.9.6.3.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -176,24 +170,24 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.9.7.3.6"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success.</p>
+<a name="id-1.2.9.9.6.3.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success.</p>
 <p></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtp-hdrext-set-ntp-56"></a><h3>gst_rtp_hdrext_set_ntp_56 ()</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_rtp_hdrext_set_ntp_56 (<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#guint"><span class="type">guint</span></a> size</code></em>,
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gst_rtp_hdrext_set_ntp_56 (<em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
+                           <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>,
                            <em class="parameter"><code><span class="type">guint64</span> ntptime</code></em>);</pre>
 <p>Writes the NTP time in <em class="parameter"><code>ntptime</code></em>
  to the format required for the NTP-56 header
 extension. <em class="parameter"><code>data</code></em>
  must hold at least <span class="type">GST_RTP_HDREXT_NTP_56_SIZE</span> bytes.</p>
 <div class="refsect3">
-<a name="id-1.2.9.9.7.4.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.9.6.4.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -221,24 +215,24 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.9.7.4.6"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success.</p>
+<a name="id-1.2.9.9.6.4.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success.</p>
 <p></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtp-hdrext-set-ntp-64"></a><h3>gst_rtp_hdrext_set_ntp_64 ()</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_rtp_hdrext_set_ntp_64 (<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#guint"><span class="type">guint</span></a> size</code></em>,
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gst_rtp_hdrext_set_ntp_64 (<em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
+                           <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>,
                            <em class="parameter"><code><span class="type">guint64</span> ntptime</code></em>);</pre>
 <p>Writes the NTP time in <em class="parameter"><code>ntptime</code></em>
  to the format required for the NTP-64 header
 extension. <em class="parameter"><code>data</code></em>
  must hold at least <span class="type">GST_RTP_HDREXT_NTP_64_SIZE</span> bytes.</p>
 <div class="refsect3">
-<a name="id-1.2.9.9.7.5.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.9.6.5.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -266,8 +260,8 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.9.7.5.6"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success.</p>
+<a name="id-1.2.9.9.6.5.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success.</p>
 <p></p>
 </div>
 </div>
@@ -278,6 +272,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstrtppayloads.html b/docs/libs/html/gst-plugins-base-libs-gstrtppayloads.html
index 49f23d4..707087e 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstrtppayloads.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstrtppayloads.html
@@ -8,15 +8,14 @@
 <link rel="up" href="gstreamer-rtp.html" title="RTP Library">
 <link rel="prev" href="gst-plugins-base-libs-gstrtcpbuffer.html" title="gstrtcpbuffer">
 <link rel="next" href="gst-plugins-base-libs-gstrtphdrext.html" title="gstrtphdrext">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstrtppayloads.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstrtppayloads.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gstrtppayloads.description" class="shortcut">Description</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="gstreamer-rtp.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -83,11 +82,6 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="gst-plugins-base-libs-gstrtppayloads.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">
-</pre>
-</div>
-<div class="refsect1">
 <a name="gst-plugins-base-libs-gstrtppayloads.includes"></a><h2>Includes</h2>
 <pre class="synopsis">#include &lt;gst/rtp/gstrtppayload.h&gt;
 </pre>
@@ -95,7 +89,7 @@
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstrtppayloads.description"></a><h2>Description</h2>
 <div class="refsect2">
-<a name="id-1.2.9.8.7.2"></a><p>
+<a name="id-1.2.9.8.6.2"></a><p>
 The GstRTPPayloads helper functions makes it easy to deal with static and dynamic
 payloads. Its main purpose is to retrieve properties such as the default clock-rate 
 and get session bandwidth information.
@@ -111,7 +105,7 @@
 <p>Check if <em class="parameter"><code>pt</code></em>
  is a dynamic payload type.</p>
 <div class="refsect3">
-<a name="id-1.2.9.8.8.2.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.8.7.2.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -130,8 +124,8 @@
 <div class="refsect2">
 <a name="gst-rtp-payload-info-for-name"></a><h3>gst_rtp_payload_info_for_name ()</h3>
 <pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstrtppayloads.html#GstRTPPayloadInfo" title="struct GstRTPPayloadInfo"><span class="returnvalue">GstRTPPayloadInfo</span></a> *
-gst_rtp_payload_info_for_name (<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> *media</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> *encoding_name</code></em>);</pre>
+gst_rtp_payload_info_for_name (<em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *media</code></em>,
+                               <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *encoding_name</code></em>);</pre>
 <p>Get the <a class="link" href="gst-plugins-base-libs-gstrtppayloads.html#GstRTPPayloadInfo" title="struct GstRTPPayloadInfo"><span class="type">GstRTPPayloadInfo</span></a> for <em class="parameter"><code>media</code></em>
  and <em class="parameter"><code>encoding_name</code></em>
 . This function is
@@ -142,7 +136,7 @@
 <p>The search for <em class="parameter"><code>encoding_name</code></em>
  will be performed in a case insensitve way.</p>
 <div class="refsect3">
-<a name="id-1.2.9.8.8.3.6"></a><h4>Parameters</h4>
+<a name="id-1.2.9.8.7.3.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -164,7 +158,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.8.8.3.7"></a><h4>Returns</h4>
+<a name="id-1.2.9.8.7.3.7"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstrtppayloads.html#GstRTPPayloadInfo" title="struct GstRTPPayloadInfo"><span class="type">GstRTPPayloadInfo</span></a> or NULL when no info could be found.</p>
 <p></p>
 </div>
@@ -180,7 +174,7 @@
 types specified with <em class="parameter"><code>payload_type</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.9.8.8.4.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.8.7.4.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -195,7 +189,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.8.8.4.6"></a><h4>Returns</h4>
+<a name="id-1.2.9.8.7.4.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstrtppayloads.html#GstRTPPayloadInfo" title="struct GstRTPPayloadInfo"><span class="type">GstRTPPayloadInfo</span></a> or NULL when no info could be found.</p>
 <p></p>
 </div>
@@ -215,7 +209,7 @@
 unassigned: 24, 27, 29, 30, 35-71, 77-95
 Reserved for RTCP conflict avoidance: 72-76</p>
 <div class="refsect3">
-<a name="id-1.2.9.8.9.2.7"></a><h4>Members</h4>
+<a name="id-1.2.9.8.8.2.7"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -423,7 +417,7 @@
 </pre>
 <p>Structure holding default payload type information.</p>
 <div class="refsect3">
-<a name="id-1.2.9.8.9.3.5"></a><h4>Members</h4>
+<a name="id-1.2.9.8.8.3.5"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
@@ -437,30 +431,30 @@
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p>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="GstRTPPayloadInfo.media"></a>media</code></em>;</p></td>
+<td class="struct_member_name"><p>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstRTPPayloadInfo.media"></a>media</code></em>;</p></td>
 <td class="struct_member_description"><p>the media type(s), usually "audio", "video", "application", "text",
 "message".</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p>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="GstRTPPayloadInfo.encoding-name"></a>encoding_name</code></em>;</p></td>
+<td class="struct_member_name"><p>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstRTPPayloadInfo.encoding-name"></a>encoding_name</code></em>;</p></td>
 <td class="struct_member_description"><p>the encoding name of <em class="parameter"><code>pt</code></em>
 </p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstRTPPayloadInfo.clock-rate"></a>clock_rate</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstRTPPayloadInfo.clock-rate"></a>clock_rate</code></em>;</p></td>
 <td class="struct_member_description"><p>default clock rate, 0 = unknown/variable</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p>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="GstRTPPayloadInfo.encoding-parameters"></a>encoding_parameters</code></em>;</p></td>
+<td class="struct_member_name"><p>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstRTPPayloadInfo.encoding-parameters"></a>encoding_parameters</code></em>;</p></td>
 <td class="struct_member_description"><p>encoding parameters. For audio this is the number of
 channels. NULL = not applicable.</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstRTPPayloadInfo.bitrate"></a>bitrate</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstRTPPayloadInfo.bitrate"></a>bitrate</code></em>;</p></td>
 <td class="struct_member_description"><p>the bitrate of the media. 0 = unknown/variable.</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
@@ -476,6 +470,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstrtspconnection.html b/docs/libs/html/gst-plugins-base-libs-gstrtspconnection.html
index cd26684..11f2d63 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstrtspconnection.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstrtspconnection.html
@@ -8,15 +8,14 @@
 <link rel="up" href="gstreamer-rtsp.html" title="RTSP Library">
 <link rel="prev" href="gstreamer-rtsp.html" title="RTSP Library">
 <link rel="next" href="gst-plugins-base-libs-gstrtspdefs.html" title="gstrtspdefs">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstrtspconnection.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstrtspconnection.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gstrtspconnection.description" class="shortcut">Description</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="gstreamer-rtsp.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -193,7 +192,7 @@
 </td>
 </tr>
 <tr>
-<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<td class="function_type">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-get-ip" title="gst_rtsp_connection_get_ip ()">gst_rtsp_connection_get_ip</a> <span class="c_punctuation">()</span>
@@ -217,14 +216,14 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-is-tunneled" title="gst_rtsp_connection_is_tunneled ()">gst_rtsp_connection_is_tunneled</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<td class="function_type">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-get-tunnelid" title="gst_rtsp_connection_get_tunnelid ()">gst_rtsp_connection_get_tunnelid</a> <span class="c_punctuation">()</span>
@@ -256,7 +255,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/gio/unstable/GSocket.html"><span class="returnvalue">GSocket</span></a> *
+<a href="https://developer.gnome.org/gio/unstable/GSocket.html"><span class="returnvalue">GSocket</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-get-read-socket" title="gst_rtsp_connection_get_read_socket ()">gst_rtsp_connection_get_read_socket</a> <span class="c_punctuation">()</span>
@@ -264,7 +263,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/gio/unstable/GSocket.html"><span class="returnvalue">GSocket</span></a> *
+<a href="https://developer.gnome.org/gio/unstable/GSocket.html"><span class="returnvalue">GSocket</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-get-write-socket" title="gst_rtsp_connection_get_write_socket ()">gst_rtsp_connection_get_write_socket</a> <span class="c_punctuation">()</span>
@@ -272,7 +271,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/gio/unstable/GTlsConnection.html"><span class="returnvalue">GTlsConnection</span></a> *
+<a href="https://developer.gnome.org/gio/unstable/GTlsConnection.html"><span class="returnvalue">GTlsConnection</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-get-tls" title="gst_rtsp_connection_get_tls ()">gst_rtsp_connection_get_tls</a> <span class="c_punctuation">()</span>
@@ -280,7 +279,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-set-tls-validation-flags" title="gst_rtsp_connection_set_tls_validation_flags ()">gst_rtsp_connection_set_tls_validation_flags</a> <span class="c_punctuation">()</span>
@@ -288,7 +287,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/gio/unstable/gio-TLS-Overview.html#GTlsCertificateFlags"><span class="returnvalue">GTlsCertificateFlags</span></a>
+<a href="https://developer.gnome.org/gio/unstable/gio-TLS-Overview.html#GTlsCertificateFlags"><span class="returnvalue">GTlsCertificateFlags</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-get-tls-validation-flags" title="gst_rtsp_connection_get_tls_validation_flags ()">gst_rtsp_connection_get_tls_validation_flags</a> <span class="c_punctuation">()</span>
@@ -312,7 +311,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-watch-attach" title="gst_rtsp_watch_attach ()">gst_rtsp_watch_attach</a> <span class="c_punctuation">()</span>
@@ -393,11 +392,6 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="gst-plugins-base-libs-gstrtspconnection.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">
-</pre>
-</div>
-<div class="refsect1">
 <a name="gst-plugins-base-libs-gstrtspconnection.includes"></a><h2>Includes</h2>
 <pre class="synopsis">#include &lt;gst/rtsp/gstrtspconnection.h&gt;
 </pre>
@@ -423,7 +417,7 @@
 <p>A copy of <em class="parameter"><code>url</code></em>
  will be made.</p>
 <div class="refsect3">
-<a name="id-1.2.10.3.8.2.6"></a><h4>Parameters</h4>
+<a name="id-1.2.10.3.7.2.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -445,7 +439,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.3.8.2.7"></a><h4>Returns</h4>
+<a name="id-1.2.10.3.7.2.7"></a><h4>Returns</h4>
 <p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a> when <em class="parameter"><code>conn</code></em>
 contains a valid connection.</p>
 <p></p>
@@ -456,10 +450,10 @@
 <a name="gst-rtsp-connection-create-from-socket"></a><h3>gst_rtsp_connection_create_from_socket ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>
 gst_rtsp_connection_create_from_socket
-                               (<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GSocket.html"><span class="type">GSocket</span></a> *socket</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> *ip</code></em>,
+                               (<em class="parameter"><code><a href="https://developer.gnome.org/gio/unstable/GSocket.html"><span class="type">GSocket</span></a> *socket</code></em>,
+                                <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *ip</code></em>,
                                 <em class="parameter"><code><span class="type">guint16</span> port</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> *initial_buffer</code></em>,
+                                <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *initial_buffer</code></em>,
                                 <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> **conn</code></em>);</pre>
 <p>Create a new <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> for handling communication on the existing
 socket <em class="parameter"><code>socket</code></em>
@@ -468,7 +462,7 @@
 read from <em class="parameter"><code>socket</code></em>
  which should be used before starting to read new data.</p>
 <div class="refsect3">
-<a name="id-1.2.10.3.8.3.5"></a><h4>Parameters</h4>
+<a name="id-1.2.10.3.7.3.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -478,7 +472,7 @@
 <tbody>
 <tr>
 <td class="parameter_name"><p>socket</p></td>
-<td class="parameter_description"><p>a <a href="http://library.gnome.org/devel/gio/unstable/GSocket.html"><span class="type">GSocket</span></a></p></td>
+<td class="parameter_description"><p>a <a href="https://developer.gnome.org/gio/unstable/GSocket.html"><span class="type">GSocket</span></a></p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
@@ -506,7 +500,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.3.8.3.6"></a><h4>Returns</h4>
+<a name="id-1.2.10.3.7.3.6"></a><h4>Returns</h4>
 <p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a> when <em class="parameter"><code>conn</code></em>
 contains a valid connection.</p>
 <p></p>
@@ -516,14 +510,14 @@
 <div class="refsect2">
 <a name="gst-rtsp-connection-accept"></a><h3>gst_rtsp_connection_accept ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>
-gst_rtsp_connection_accept (<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GSocket.html"><span class="type">GSocket</span></a> *socket</code></em>,
+gst_rtsp_connection_accept (<em class="parameter"><code><a href="https://developer.gnome.org/gio/unstable/GSocket.html"><span class="type">GSocket</span></a> *socket</code></em>,
                             <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> **conn</code></em>,
-                            <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>);</pre>
+                            <em class="parameter"><code><a href="https://developer.gnome.org/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>);</pre>
 <p>Accept a new connection on <em class="parameter"><code>socket</code></em>
  and create a new <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> for
 handling communication on new socket.</p>
 <div class="refsect3">
-<a name="id-1.2.10.3.8.4.5"></a><h4>Parameters</h4>
+<a name="id-1.2.10.3.7.4.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -543,14 +537,14 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>cancellable</p></td>
-<td class="parameter_description"><p>a <a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> to cancel the operation</p></td>
+<td class="parameter_description"><p>a <a href="https://developer.gnome.org/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> to cancel the operation</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.3.8.4.6"></a><h4>Returns</h4>
+<a name="id-1.2.10.3.7.4.6"></a><h4>Returns</h4>
 <p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a> when <em class="parameter"><code>conn</code></em>
 contains a valid connection.</p>
 <p></p>
@@ -561,17 +555,17 @@
 <a name="gst-rtsp-connection-connect"></a><h3>gst_rtsp_connection_connect ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>
 gst_rtsp_connection_connect (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn</code></em>,
-                             <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Date-and-Time-Functions.html#GTimeVal"><span class="type">GTimeVal</span></a> *timeout</code></em>);</pre>
+                             <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Date-and-Time-Functions.html#GTimeVal"><span class="type">GTimeVal</span></a> *timeout</code></em>);</pre>
 <p>Attempt to connect to the url of <em class="parameter"><code>conn</code></em>
  made with
 <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-create" title="gst_rtsp_connection_create ()"><code class="function">gst_rtsp_connection_create()</code></a>. If <em class="parameter"><code>timeout</code></em>
- is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> this function can block
+ is <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> this function can block
 forever. If <em class="parameter"><code>timeout</code></em>
  contains a valid timeout, this function will return
 <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-ETIMEOUT:CAPS"><span class="type">GST_RTSP_ETIMEOUT</span></a> after the timeout expired.</p>
 <p>This function can be cancelled with <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-flush" title="gst_rtsp_connection_flush ()"><code class="function">gst_rtsp_connection_flush()</code></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.10.3.8.5.6"></a><h4>Parameters</h4>
+<a name="id-1.2.10.3.7.5.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -586,14 +580,14 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>timeout</p></td>
-<td class="parameter_description"><p>a <a href="http://library.gnome.org/devel/glib/unstable/glib-Date-and-Time-Functions.html#GTimeVal"><span class="type">GTimeVal</span></a> timeout</p></td>
+<td class="parameter_description"><p>a <a href="https://developer.gnome.org/glib/unstable/glib-Date-and-Time-Functions.html#GTimeVal"><span class="type">GTimeVal</span></a> timeout</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.3.8.5.7"></a><h4>Returns</h4>
+<a name="id-1.2.10.3.7.5.7"></a><h4>Returns</h4>
 <p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a> when a connection could be made.</p>
 <p></p>
 </div>
@@ -607,7 +601,7 @@
 . After this call, the connection is in the same
 state as when it was first created.</p>
 <div class="refsect3">
-<a name="id-1.2.10.3.8.6.5"></a><h4>Parameters</h4>
+<a name="id-1.2.10.3.7.6.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -622,7 +616,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.3.8.6.6"></a><h4>Returns</h4>
+<a name="id-1.2.10.3.7.6.6"></a><h4>Returns</h4>
 <p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a> on success.</p>
 <p></p>
 </div>
@@ -635,7 +629,7 @@
 <p>Close and free <em class="parameter"><code>conn</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.10.3.8.7.5"></a><h4>Parameters</h4>
+<a name="id-1.2.10.3.7.7.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -650,7 +644,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.3.8.7.6"></a><h4>Returns</h4>
+<a name="id-1.2.10.3.7.7.6"></a><h4>Returns</h4>
 <p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a> on success.</p>
 <p></p>
 </div>
@@ -661,19 +655,19 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>
 gst_rtsp_connection_read (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn</code></em>,
                           <em class="parameter"><code><span class="type">guint8</span> *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>,
-                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Date-and-Time-Functions.html#GTimeVal"><span class="type">GTimeVal</span></a> *timeout</code></em>);</pre>
+                          <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>,
+                          <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Date-and-Time-Functions.html#GTimeVal"><span class="type">GTimeVal</span></a> *timeout</code></em>);</pre>
 <p>Attempt to read <em class="parameter"><code>size</code></em>
  bytes into <em class="parameter"><code>data</code></em>
  from the connected <em class="parameter"><code>conn</code></em>
 , blocking up to
 the specified <em class="parameter"><code>timeout</code></em>
 . <em class="parameter"><code>timeout</code></em>
- can be <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a>, in which case this function
+ can be <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a>, in which case this function
 might block forever.</p>
 <p>This function can be cancelled with <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-flush" title="gst_rtsp_connection_flush ()"><code class="function">gst_rtsp_connection_flush()</code></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.10.3.8.8.6"></a><h4>Parameters</h4>
+<a name="id-1.2.10.3.7.8.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -699,14 +693,14 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>timeout</p></td>
-<td class="parameter_description"><p>a timeout value or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a></p></td>
+<td class="parameter_description"><p>a timeout value or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a></p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.3.8.8.7"></a><h4>Returns</h4>
+<a name="id-1.2.10.3.7.8.7"></a><h4>Returns</h4>
 <p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a> on success.</p>
 <p></p>
 </div>
@@ -717,19 +711,19 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>
 gst_rtsp_connection_write (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn</code></em>,
                            <em class="parameter"><code>const <span class="type">guint8</span> *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>,
-                           <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Date-and-Time-Functions.html#GTimeVal"><span class="type">GTimeVal</span></a> *timeout</code></em>);</pre>
+                           <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>,
+                           <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Date-and-Time-Functions.html#GTimeVal"><span class="type">GTimeVal</span></a> *timeout</code></em>);</pre>
 <p>Attempt to write <em class="parameter"><code>size</code></em>
  bytes of <em class="parameter"><code>data</code></em>
  to the connected <em class="parameter"><code>conn</code></em>
 , blocking up to
 the specified <em class="parameter"><code>timeout</code></em>
 . <em class="parameter"><code>timeout</code></em>
- can be <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a>, in which case this function
+ can be <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a>, in which case this function
 might block forever.</p>
 <p>This function can be cancelled with <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-flush" title="gst_rtsp_connection_flush ()"><code class="function">gst_rtsp_connection_flush()</code></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.10.3.8.9.6"></a><h4>Parameters</h4>
+<a name="id-1.2.10.3.7.9.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -755,14 +749,14 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>timeout</p></td>
-<td class="parameter_description"><p>a timeout value or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a></p></td>
+<td class="parameter_description"><p>a timeout value or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a></p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.3.8.9.7"></a><h4>Returns</h4>
+<a name="id-1.2.10.3.7.9.7"></a><h4>Returns</h4>
 <p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a> on success.</p>
 <p></p>
 </div>
@@ -774,7 +768,7 @@
 gst_rtsp_connection_poll (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn</code></em>,
                           <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPEvent" title="enum GstRTSPEvent"><span class="type">GstRTSPEvent</span></a> events</code></em>,
                           <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPEvent" title="enum GstRTSPEvent"><span class="type">GstRTSPEvent</span></a> *revents</code></em>,
-                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Date-and-Time-Functions.html#GTimeVal"><span class="type">GTimeVal</span></a> *timeout</code></em>);</pre>
+                          <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Date-and-Time-Functions.html#GTimeVal"><span class="type">GTimeVal</span></a> *timeout</code></em>);</pre>
 <p>Wait up to the specified <em class="parameter"><code>timeout</code></em>
  for the connection to become available for
 at least one of the operations specified in <em class="parameter"><code>events</code></em>
@@ -784,10 +778,10 @@
 <em class="parameter"><code>conn</code></em>
 .</p>
 <p><em class="parameter"><code>timeout</code></em>
- can be <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a>, in which case this function might block forever.</p>
+ can be <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a>, in which case this function might block forever.</p>
 <p>This function can be cancelled with <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-flush" title="gst_rtsp_connection_flush ()"><code class="function">gst_rtsp_connection_flush()</code></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.10.3.8.10.7"></a><h4>Parameters</h4>
+<a name="id-1.2.10.3.7.10.7"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -819,7 +813,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.3.8.10.8"></a><h4>Returns</h4>
+<a name="id-1.2.10.3.7.10.8"></a><h4>Returns</h4>
 <p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a> on success.</p>
 <p></p>
 </div>
@@ -830,17 +824,17 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>
 gst_rtsp_connection_send (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn</code></em>,
                           <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *message</code></em>,
-                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Date-and-Time-Functions.html#GTimeVal"><span class="type">GTimeVal</span></a> *timeout</code></em>);</pre>
+                          <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Date-and-Time-Functions.html#GTimeVal"><span class="type">GTimeVal</span></a> *timeout</code></em>);</pre>
 <p>Attempt to send <em class="parameter"><code>message</code></em>
  to the connected <em class="parameter"><code>conn</code></em>
 , blocking up to
 the specified <em class="parameter"><code>timeout</code></em>
 . <em class="parameter"><code>timeout</code></em>
- can be <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a>, in which case this function
+ can be <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a>, in which case this function
 might block forever.</p>
 <p>This function can be cancelled with <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-flush" title="gst_rtsp_connection_flush ()"><code class="function">gst_rtsp_connection_flush()</code></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.10.3.8.11.6"></a><h4>Parameters</h4>
+<a name="id-1.2.10.3.7.11.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -860,14 +854,14 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>timeout</p></td>
-<td class="parameter_description"><p>a timeout value or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a></p></td>
+<td class="parameter_description"><p>a timeout value or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a></p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.3.8.11.7"></a><h4>Returns</h4>
+<a name="id-1.2.10.3.7.11.7"></a><h4>Returns</h4>
 <p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a> on success.</p>
 <p></p>
 </div>
@@ -878,17 +872,17 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>
 gst_rtsp_connection_receive (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn</code></em>,
                              <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *message</code></em>,
-                             <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Date-and-Time-Functions.html#GTimeVal"><span class="type">GTimeVal</span></a> *timeout</code></em>);</pre>
+                             <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Date-and-Time-Functions.html#GTimeVal"><span class="type">GTimeVal</span></a> *timeout</code></em>);</pre>
 <p>Attempt to read into <em class="parameter"><code>message</code></em>
  from the connected <em class="parameter"><code>conn</code></em>
 , blocking up to
 the specified <em class="parameter"><code>timeout</code></em>
 . <em class="parameter"><code>timeout</code></em>
- can be <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a>, in which case this function
+ can be <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a>, in which case this function
 might block forever.</p>
 <p>This function can be cancelled with <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-flush" title="gst_rtsp_connection_flush ()"><code class="function">gst_rtsp_connection_flush()</code></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.10.3.8.12.6"></a><h4>Parameters</h4>
+<a name="id-1.2.10.3.7.12.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -908,14 +902,14 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>timeout</p></td>
-<td class="parameter_description"><p>a timeout value or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a></p></td>
+<td class="parameter_description"><p>a timeout value or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a></p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.3.8.12.7"></a><h4>Returns</h4>
+<a name="id-1.2.10.3.7.12.7"></a><h4>Returns</h4>
 <p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a> on success.</p>
 <p></p>
 </div>
@@ -925,12 +919,12 @@
 <a name="gst-rtsp-connection-next-timeout"></a><h3>gst_rtsp_connection_next_timeout ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>
 gst_rtsp_connection_next_timeout (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn</code></em>,
-                                  <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Date-and-Time-Functions.html#GTimeVal"><span class="type">GTimeVal</span></a> *timeout</code></em>);</pre>
+                                  <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Date-and-Time-Functions.html#GTimeVal"><span class="type">GTimeVal</span></a> *timeout</code></em>);</pre>
 <p>Calculate the next timeout for <em class="parameter"><code>conn</code></em>
 , storing the result in <em class="parameter"><code>timeout</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.10.3.8.13.5"></a><h4>Parameters</h4>
+<a name="id-1.2.10.3.7.13.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -952,7 +946,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.3.8.13.6"></a><h4>Returns</h4>
+<a name="id-1.2.10.3.7.13.6"></a><h4>Returns</h4>
 <p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a>.</p>
 <p></p>
 </div>
@@ -965,7 +959,7 @@
 <p>Reset the timeout of <em class="parameter"><code>conn</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.10.3.8.14.5"></a><h4>Parameters</h4>
+<a name="id-1.2.10.3.7.14.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -980,7 +974,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.3.8.14.6"></a><h4>Returns</h4>
+<a name="id-1.2.10.3.7.14.6"></a><h4>Returns</h4>
 <p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a>.</p>
 <p></p>
 </div>
@@ -990,14 +984,14 @@
 <a name="gst-rtsp-connection-flush"></a><h3>gst_rtsp_connection_flush ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>
 gst_rtsp_connection_flush (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn</code></em>,
-                           <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> flush</code></em>);</pre>
+                           <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> flush</code></em>);</pre>
 <p>Start or stop the flushing action on <em class="parameter"><code>conn</code></em>
 . When flushing, all current
 and future actions on <em class="parameter"><code>conn</code></em>
  will return <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-EINTR:CAPS"><span class="type">GST_RTSP_EINTR</span></a> until the connection
 is set to non-flushing mode again.</p>
 <div class="refsect3">
-<a name="id-1.2.10.3.8.15.5"></a><h4>Parameters</h4>
+<a name="id-1.2.10.3.7.15.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1019,7 +1013,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.3.8.15.6"></a><h4>Returns</h4>
+<a name="id-1.2.10.3.7.15.6"></a><h4>Returns</h4>
 <p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a>.</p>
 <p></p>
 </div>
@@ -1030,8 +1024,8 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>
 gst_rtsp_connection_set_auth (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn</code></em>,
                               <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPAuthMethod" title="enum GstRTSPAuthMethod"><span class="type">GstRTSPAuthMethod</span></a> method</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> *user</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> *pass</code></em>);</pre>
+                              <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *user</code></em>,
+                              <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *pass</code></em>);</pre>
 <p>Configure <em class="parameter"><code>conn</code></em>
  for authentication mode <em class="parameter"><code>method</code></em>
  with <em class="parameter"><code>user</code></em>
@@ -1039,7 +1033,7 @@
  as the
 user and password respectively.</p>
 <div class="refsect3">
-<a name="id-1.2.10.3.8.16.5"></a><h4>Parameters</h4>
+<a name="id-1.2.10.3.7.16.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1071,7 +1065,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.3.8.16.6"></a><h4>Returns</h4>
+<a name="id-1.2.10.3.7.16.6"></a><h4>Returns</h4>
 <p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a>.</p>
 <p></p>
 </div>
@@ -1081,8 +1075,8 @@
 <a name="gst-rtsp-connection-set-auth-param"></a><h3>gst_rtsp_connection_set_auth_param ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_rtsp_connection_set_auth_param (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn</code></em>,
-                                    <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *param</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> *value</code></em>);</pre>
+                                    <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *param</code></em>,
+                                    <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *value</code></em>);</pre>
 <p>Setup <em class="parameter"><code>conn</code></em>
  with authentication directives. This is not necesary for
 methods <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-AUTH-NONE:CAPS"><span class="type">GST_RTSP_AUTH_NONE</span></a> and <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-AUTH-BASIC:CAPS"><span class="type">GST_RTSP_AUTH_BASIC</span></a>. For
@@ -1090,7 +1084,7 @@
 in the WWW-Authenticate response header and can include realm, domain,
 nonce, opaque, stale, algorithm, qop as per RFC2617.</p>
 <div class="refsect3">
-<a name="id-1.2.10.3.8.17.5"></a><h4>Parameters</h4>
+<a name="id-1.2.10.3.7.17.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1125,7 +1119,7 @@
 <p>Clear the list of authentication directives stored in <em class="parameter"><code>conn</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.10.3.8.18.5"></a><h4>Parameters</h4>
+<a name="id-1.2.10.3.7.18.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1145,11 +1139,11 @@
 <a name="gst-rtsp-connection-set-qos-dscp"></a><h3>gst_rtsp_connection_set_qos_dscp ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>
 gst_rtsp_connection_set_qos_dscp (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn</code></em>,
-                                  <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> qos_dscp</code></em>);</pre>
+                                  <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> qos_dscp</code></em>);</pre>
 <p>Configure <em class="parameter"><code>conn</code></em>
  to use the specified DSCP value.</p>
 <div class="refsect3">
-<a name="id-1.2.10.3.8.19.5"></a><h4>Parameters</h4>
+<a name="id-1.2.10.3.7.19.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1171,7 +1165,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.3.8.19.6"></a><h4>Returns</h4>
+<a name="id-1.2.10.3.7.19.6"></a><h4>Returns</h4>
 <p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a> on success.</p>
 <p></p>
 </div>
@@ -1181,10 +1175,10 @@
 <a name="gst-rtsp-connection-set-ip"></a><h3>gst_rtsp_connection_set_ip ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_rtsp_connection_set_ip (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn</code></em>,
-                            <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *ip</code></em>);</pre>
+                            <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *ip</code></em>);</pre>
 <p>Set the IP address of the server.</p>
 <div class="refsect3">
-<a name="id-1.2.10.3.8.20.5"></a><h4>Parameters</h4>
+<a name="id-1.2.10.3.7.20.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1209,12 +1203,12 @@
 <hr>
 <div class="refsect2">
 <a name="gst-rtsp-connection-get-ip"></a><h3>gst_rtsp_connection_get_ip ()</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> *
+<pre class="programlisting">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_rtsp_connection_get_ip (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn</code></em>);</pre>
 <p>Retrieve the IP address of the other end of <em class="parameter"><code>conn</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.10.3.8.21.5"></a><h4>Parameters</h4>
+<a name="id-1.2.10.3.7.21.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1229,7 +1223,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.3.8.21.6"></a><h4>Returns</h4>
+<a name="id-1.2.10.3.7.21.6"></a><h4>Returns</h4>
 <p> The IP address as a string. this value remains valid until the
 connection is closed.</p>
 <p></p>
@@ -1243,7 +1237,7 @@
 <p>Retrieve the URL of the other end of <em class="parameter"><code>conn</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.10.3.8.22.5"></a><h4>Parameters</h4>
+<a name="id-1.2.10.3.7.22.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1258,7 +1252,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.3.8.22.6"></a><h4>Returns</h4>
+<a name="id-1.2.10.3.7.22.6"></a><h4>Returns</h4>
 <p> The URL. This value remains valid until the
 connection is freed.</p>
 <p></p>
@@ -1269,12 +1263,12 @@
 <a name="gst-rtsp-connection-set-tunneled"></a><h3>gst_rtsp_connection_set_tunneled ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_rtsp_connection_set_tunneled (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn</code></em>,
-                                  <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> tunneled</code></em>);</pre>
+                                  <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> tunneled</code></em>);</pre>
 <p>Set the HTTP tunneling state of the connection. This must be configured before
 the <em class="parameter"><code>conn</code></em>
  is connected.</p>
 <div class="refsect3">
-<a name="id-1.2.10.3.8.23.5"></a><h4>Parameters</h4>
+<a name="id-1.2.10.3.7.23.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1299,11 +1293,11 @@
 <hr>
 <div class="refsect2">
 <a name="gst-rtsp-connection-is-tunneled"></a><h3>gst_rtsp_connection_is_tunneled ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_rtsp_connection_is_tunneled (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn</code></em>);</pre>
 <p>Get the tunneling state of the connection.</p>
 <div class="refsect3">
-<a name="id-1.2.10.3.8.24.5"></a><h4>Parameters</h4>
+<a name="id-1.2.10.3.7.24.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1318,7 +1312,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.3.8.24.6"></a><h4>Returns</h4>
+<a name="id-1.2.10.3.7.24.6"></a><h4>Returns</h4>
 <p> if <em class="parameter"><code>conn</code></em>
 is using HTTP tunneling.</p>
 <p></p>
@@ -1327,11 +1321,11 @@
 <hr>
 <div class="refsect2">
 <a name="gst-rtsp-connection-get-tunnelid"></a><h3>gst_rtsp_connection_get_tunnelid ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<pre class="programlisting">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_rtsp_connection_get_tunnelid (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn</code></em>);</pre>
 <p>Get the tunnel session id the connection.</p>
 <div class="refsect3">
-<a name="id-1.2.10.3.8.25.5"></a><h4>Parameters</h4>
+<a name="id-1.2.10.3.7.25.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1346,7 +1340,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.3.8.25.6"></a><h4>Returns</h4>
+<a name="id-1.2.10.3.7.25.6"></a><h4>Returns</h4>
 <p> returns a non-empty string if <em class="parameter"><code>conn</code></em>
 is being tunneled over HTTP.</p>
 <p></p>
@@ -1368,11 +1362,11 @@
  cannot be used anymore and must be freed with
 <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-free" title="gst_rtsp_connection_free ()"><code class="function">gst_rtsp_connection_free()</code></a>.</p>
 <p>If <em class="parameter"><code>conn2</code></em>
- is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> then only the base64 decoding context will be setup for
+ is <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> then only the base64 decoding context will be setup for
 <em class="parameter"><code>conn</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.10.3.8.26.7"></a><h4>Parameters</h4>
+<a name="id-1.2.10.3.7.26.7"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1387,14 +1381,14 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>conn2</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
+<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.3.8.26.8"></a><h4>Returns</h4>
+<a name="id-1.2.10.3.7.26.8"></a><h4>Returns</h4>
 <p> return GST_RTSP_OK on success.</p>
 <p></p>
 </div>
@@ -1404,12 +1398,12 @@
 <a name="gst-rtsp-connection-set-http-mode"></a><h3>gst_rtsp_connection_set_http_mode ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_rtsp_connection_set_http_mode (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn</code></em>,
-                                   <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enable</code></em>);</pre>
-<p>By setting the HTTP mode to <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> the message parsing will support HTTP
+                                   <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enable</code></em>);</pre>
+<p>By setting the HTTP mode to <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> the message parsing will support HTTP
 messages in addition to the RTSP messages. It will also disable the
 automatic handling of setting up an HTTP tunnel.</p>
 <div class="refsect3">
-<a name="id-1.2.10.3.8.27.5"></a><h4>Parameters</h4>
+<a name="id-1.2.10.3.7.27.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1424,7 +1418,7 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>enable</p></td>
-<td class="parameter_description"><p><a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> to enable manual HTTP mode</p></td>
+<td class="parameter_description"><p><a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> to enable manual HTTP mode</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 </tbody>
@@ -1436,11 +1430,11 @@
 <a name="gst-rtsp-connection-set-proxy"></a><h3>gst_rtsp_connection_set_proxy ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>
 gst_rtsp_connection_set_proxy (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn</code></em>,
-                               <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *host</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> port</code></em>);</pre>
+                               <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *host</code></em>,
+                               <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> port</code></em>);</pre>
 <p>Set the proxy host and port.</p>
 <div class="refsect3">
-<a name="id-1.2.10.3.8.28.5"></a><h4>Parameters</h4>
+<a name="id-1.2.10.3.7.28.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1467,7 +1461,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.3.8.28.6"></a><h4>Returns</h4>
+<a name="id-1.2.10.3.7.28.6"></a><h4>Returns</h4>
 <p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a>.</p>
 <p></p>
 </div>
@@ -1475,17 +1469,17 @@
 <hr>
 <div class="refsect2">
 <a name="gst-rtsp-connection-get-read-socket"></a><h3>gst_rtsp_connection_get_read_socket ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/gio/unstable/GSocket.html"><span class="returnvalue">GSocket</span></a> *
+<pre class="programlisting"><a href="https://developer.gnome.org/gio/unstable/GSocket.html"><span class="returnvalue">GSocket</span></a> *
 gst_rtsp_connection_get_read_socket (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtsp-connection-get-write-socket"></a><h3>gst_rtsp_connection_get_write_socket ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/gio/unstable/GSocket.html"><span class="returnvalue">GSocket</span></a> *
+<pre class="programlisting"><a href="https://developer.gnome.org/gio/unstable/GSocket.html"><span class="returnvalue">GSocket</span></a> *
 gst_rtsp_connection_get_write_socket (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn</code></em>);</pre>
 <p>Get the file descriptor for writing.</p>
 <div class="refsect3">
-<a name="id-1.2.10.3.8.30.5"></a><h4>Parameters</h4>
+<a name="id-1.2.10.3.7.30.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1500,7 +1494,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.3.8.30.6"></a><h4>Returns</h4>
+<a name="id-1.2.10.3.7.30.6"></a><h4>Returns</h4>
 <p> the file descriptor used for writing or NULL on
 error. The file descriptor remains valid until the connection is closed. </p>
 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
@@ -1509,18 +1503,18 @@
 <hr>
 <div class="refsect2">
 <a name="gst-rtsp-connection-get-tls"></a><h3>gst_rtsp_connection_get_tls ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/gio/unstable/GTlsConnection.html"><span class="returnvalue">GTlsConnection</span></a> *
+<pre class="programlisting"><a href="https://developer.gnome.org/gio/unstable/GTlsConnection.html"><span class="returnvalue">GTlsConnection</span></a> *
 gst_rtsp_connection_get_tls (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn</code></em>,
-                             <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
+                             <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
 <p>Get the TLS connection of <em class="parameter"><code>conn</code></em>
 .</p>
-<p>For client side this will return the <a href="http://library.gnome.org/devel/gio/unstable/GTlsClientConnection.html"><span class="type">GTlsClientConnection</span></a> when connected
+<p>For client side this will return the <a href="https://developer.gnome.org/gio/unstable/GTlsClientConnection.html"><span class="type">GTlsClientConnection</span></a> when connected
 over TLS.</p>
 <p>For server side connections, this function will create a GTlsServerConnection
 when called the first time and will return that same connection on subsequent
 calls. The server is then responsible for configuring the TLS connection.</p>
 <div class="refsect3">
-<a name="id-1.2.10.3.8.31.7"></a><h4>Parameters</h4>
+<a name="id-1.2.10.3.7.31.7"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1535,14 +1529,14 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>error</p></td>
-<td class="parameter_description"><p><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> for error reporting, or NULL to ignore.</p></td>
+<td class="parameter_description"><p><a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> for error reporting, or NULL to ignore.</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.3.8.31.8"></a><h4>Returns</h4>
+<a name="id-1.2.10.3.7.31.8"></a><h4>Returns</h4>
 <p> the TLS connection for <em class="parameter"><code>conn</code></em>
 . </p>
 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
@@ -1552,14 +1546,14 @@
 <hr>
 <div class="refsect2">
 <a name="gst-rtsp-connection-set-tls-validation-flags"></a><h3>gst_rtsp_connection_set_tls_validation_flags ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_rtsp_connection_set_tls_validation_flags
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn</code></em>,
-                                <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/gio-TLS-Overview.html#GTlsCertificateFlags"><span class="type">GTlsCertificateFlags</span></a> flags</code></em>);</pre>
+                                <em class="parameter"><code><a href="https://developer.gnome.org/gio/unstable/gio-TLS-Overview.html#GTlsCertificateFlags"><span class="type">GTlsCertificateFlags</span></a> flags</code></em>);</pre>
 <p>Sets the TLS validation flags to be used to verify the peer
 certificate when a TLS connection is established.</p>
 <div class="refsect3">
-<a name="id-1.2.10.3.8.32.5"></a><h4>Parameters</h4>
+<a name="id-1.2.10.3.7.32.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1581,7 +1575,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.3.8.32.6"></a><h4>Returns</h4>
+<a name="id-1.2.10.3.7.32.6"></a><h4>Returns</h4>
 <p> TRUE if the validation flags are set correctly, or FALSE if
 <em class="parameter"><code>conn</code></em>
 is NULL or is not a TLS connection.</p>
@@ -1592,13 +1586,13 @@
 <hr>
 <div class="refsect2">
 <a name="gst-rtsp-connection-get-tls-validation-flags"></a><h3>gst_rtsp_connection_get_tls_validation_flags ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/gio/unstable/gio-TLS-Overview.html#GTlsCertificateFlags"><span class="returnvalue">GTlsCertificateFlags</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/gio/unstable/gio-TLS-Overview.html#GTlsCertificateFlags"><span class="returnvalue">GTlsCertificateFlags</span></a>
 gst_rtsp_connection_get_tls_validation_flags
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn</code></em>);</pre>
 <p>Gets the TLS validation flags used to verify the peer certificate
 when a TLS connection is established.</p>
 <div class="refsect3">
-<a name="id-1.2.10.3.8.33.5"></a><h4>Parameters</h4>
+<a name="id-1.2.10.3.7.33.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1613,7 +1607,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.3.8.33.6"></a><h4>Returns</h4>
+<a name="id-1.2.10.3.7.33.6"></a><h4>Returns</h4>
 <p> the validationg flags.</p>
 <p></p>
 </div>
@@ -1625,8 +1619,8 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPWatch" title="GstRTSPWatch"><span class="returnvalue">GstRTSPWatch</span></a> *
 gst_rtsp_watch_new (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn</code></em>,
                     <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPWatchFuncs" title="GstRTSPWatchFuncs"><span class="type">GstRTSPWatchFuncs</span></a> *funcs</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><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
+                    <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> notify</code></em>);</pre>
 <p>Create a watch object for <em class="parameter"><code>conn</code></em>
 . The functions provided in <em class="parameter"><code>funcs</code></em>
  will be
@@ -1637,7 +1631,7 @@
 <p><em class="parameter"><code>conn</code></em>
  must exist for the entire lifetime of the watch.</p>
 <div class="refsect3">
-<a name="id-1.2.10.3.8.34.7"></a><h4>Parameters</h4>
+<a name="id-1.2.10.3.7.34.7"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1671,7 +1665,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.3.8.34.8"></a><h4>Returns</h4>
+<a name="id-1.2.10.3.7.34.8"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPWatch" title="GstRTSPWatch"><span class="type">GstRTSPWatch</span></a> that can be used for asynchronous RTSP
 communication. Free with <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-watch-unref" title="gst_rtsp_watch_unref ()"><code class="function">gst_rtsp_watch_unref()</code></a> after usage.</p>
 <p></p>
@@ -1686,7 +1680,7 @@
  by one. If the resulting reference
 count is zero the watch and associated memory will be destroyed.</p>
 <div class="refsect3">
-<a name="id-1.2.10.3.8.35.5"></a><h4>Parameters</h4>
+<a name="id-1.2.10.3.7.35.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1704,12 +1698,12 @@
 <hr>
 <div class="refsect2">
 <a name="gst-rtsp-watch-attach"></a><h3>gst_rtsp_watch_attach ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_rtsp_watch_attach (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPWatch" title="GstRTSPWatch"><span class="type">GstRTSPWatch</span></a> *watch</code></em>,
-                       <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#GMainContext"><span class="type">GMainContext</span></a> *context</code></em>);</pre>
+                       <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-The-Main-Event-Loop.html#GMainContext"><span class="type">GMainContext</span></a> *context</code></em>);</pre>
 <p>Adds a <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPWatch" title="GstRTSPWatch"><span class="type">GstRTSPWatch</span></a> to a context so that it will be executed within that context.</p>
 <div class="refsect3">
-<a name="id-1.2.10.3.8.36.5"></a><h4>Parameters</h4>
+<a name="id-1.2.10.3.7.36.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1731,7 +1725,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.3.8.36.6"></a><h4>Returns</h4>
+<a name="id-1.2.10.3.7.36.6"></a><h4>Returns</h4>
 <p> the ID (greater than 0) for the watch within the GMainContext.</p>
 <p></p>
 </div>
@@ -1745,7 +1739,7 @@
 , this is usually called after <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-do-tunnel" title="gst_rtsp_connection_do_tunnel ()"><code class="function">gst_rtsp_connection_do_tunnel()</code></a>
 when the file descriptors of the connection might have changed.</p>
 <div class="refsect3">
-<a name="id-1.2.10.3.8.37.5"></a><h4>Parameters</h4>
+<a name="id-1.2.10.3.7.37.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1766,7 +1760,7 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>
 gst_rtsp_watch_send_message (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPWatch" title="GstRTSPWatch"><span class="type">GstRTSPWatch</span></a> *watch</code></em>,
                              <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *message</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> *id</code></em>);</pre>
+                             <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *id</code></em>);</pre>
 <p>Send a <em class="parameter"><code>message</code></em>
  using the connection of the <em class="parameter"><code>watch</code></em>
 . If it cannot be sent
@@ -1781,7 +1775,7 @@
  will be non-zero and used as the ID argument in the message_sent
 callback.</p>
 <div class="refsect3">
-<a name="id-1.2.10.3.8.38.5"></a><h4>Parameters</h4>
+<a name="id-1.2.10.3.7.38.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1801,14 +1795,14 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>id</p></td>
-<td class="parameter_description"><p> location for a message ID or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
-<td class="parameter_annotations"><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>
+<td class="parameter_description"><p> location for a message ID or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
+<td class="parameter_annotations"><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>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.3.8.38.6"></a><h4>Returns</h4>
+<a name="id-1.2.10.3.7.38.6"></a><h4>Returns</h4>
 <p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a> on success.</p>
 <p></p>
 </div>
@@ -1819,8 +1813,8 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>
 gst_rtsp_watch_write_data (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPWatch" title="GstRTSPWatch"><span class="type">GstRTSPWatch</span></a> *watch</code></em>,
                            <em class="parameter"><code>const <span class="type">guint8</span> *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>,
-                           <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *id</code></em>);</pre>
+                           <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>,
+                           <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *id</code></em>);</pre>
 <p>Write <em class="parameter"><code>data</code></em>
  using the connection of the <em class="parameter"><code>watch</code></em>
 . If it cannot be sent
@@ -1835,12 +1829,12 @@
  will be non-zero and used as the ID argument in the message_sent
 callback.</p>
 <p>This function will take ownership of <em class="parameter"><code>data</code></em>
- and <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> it after use.</p>
+ and <a href="https://developer.gnome.org/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> it after use.</p>
 <p>If the amount of queued data exceeds the limits set with
 <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-watch-set-send-backlog" title="gst_rtsp_watch_set_send_backlog ()"><code class="function">gst_rtsp_watch_set_send_backlog()</code></a>, this function will return
 <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-ENOMEM:CAPS"><span class="type">GST_RTSP_ENOMEM</span></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.10.3.8.39.7"></a><h4>Parameters</h4>
+<a name="id-1.2.10.3.7.39.7"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1866,14 +1860,14 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>id</p></td>
-<td class="parameter_description"><p> location for a message ID or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
-<td class="parameter_annotations"><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>
+<td class="parameter_description"><p> location for a message ID or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
+<td class="parameter_annotations"><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>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.3.8.39.8"></a><h4>Returns</h4>
+<a name="id-1.2.10.3.7.39.8"></a><h4>Returns</h4>
 <p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a> on success. <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-ENOMEM:CAPS"><span class="type">GST_RTSP_ENOMEM</span></a> when the backlog limits
 are reached. <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-EINTR:CAPS"><span class="type">GST_RTSP_EINTR</span></a> when <em class="parameter"><code>watch</code></em>
 was flushing.</p>
@@ -1886,12 +1880,12 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_rtsp_watch_get_send_backlog (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPWatch" title="GstRTSPWatch"><span class="type">GstRTSPWatch</span></a> *watch</code></em>,
                                  <em class="parameter"><code><span class="type">gsize</span> *bytes</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> *messages</code></em>);</pre>
+                                 <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *messages</code></em>);</pre>
 <p>Get the maximum amount of bytes and messages that will be queued in <em class="parameter"><code>watch</code></em>
 .
 See <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-watch-set-send-backlog" title="gst_rtsp_watch_set_send_backlog ()"><code class="function">gst_rtsp_watch_set_send_backlog()</code></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.10.3.8.40.5"></a><h4>Parameters</h4>
+<a name="id-1.2.10.3.7.40.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1907,12 +1901,12 @@
 <tr>
 <td class="parameter_name"><p>bytes</p></td>
 <td class="parameter_description"><p> maximum bytes. </p></td>
-<td class="parameter_annotations"><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>
+<td class="parameter_annotations"><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 class="parameter_name"><p>messages</p></td>
 <td class="parameter_description"><p> maximum messages. </p></td>
-<td class="parameter_annotations"><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>
+<td class="parameter_annotations"><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>
@@ -1925,7 +1919,7 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_rtsp_watch_set_send_backlog (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPWatch" title="GstRTSPWatch"><span class="type">GstRTSPWatch</span></a> *watch</code></em>,
                                  <em class="parameter"><code><span class="type">gsize</span> bytes</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> messages</code></em>);</pre>
+                                 <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> messages</code></em>);</pre>
 <p>Set the maximum amount of bytes and messages that will be queued in <em class="parameter"><code>watch</code></em>
 .
 When the maximum amounts are exceeded, <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-watch-write-data" title="gst_rtsp_watch_write_data ()"><code class="function">gst_rtsp_watch_write_data()</code></a> and
@@ -1934,7 +1928,7 @@
  or <em class="parameter"><code>messages</code></em>
  means no limits.</p>
 <div class="refsect3">
-<a name="id-1.2.10.3.8.41.6"></a><h4>Parameters</h4>
+<a name="id-1.2.10.3.7.41.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1967,21 +1961,21 @@
 <a name="gst-rtsp-watch-wait-backlog"></a><h3>gst_rtsp_watch_wait_backlog ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>
 gst_rtsp_watch_wait_backlog (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPWatch" title="GstRTSPWatch"><span class="type">GstRTSPWatch</span></a> *watch</code></em>,
-                             <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Date-and-Time-Functions.html#GTimeVal"><span class="type">GTimeVal</span></a> *timeout</code></em>);</pre>
+                             <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Date-and-Time-Functions.html#GTimeVal"><span class="type">GTimeVal</span></a> *timeout</code></em>);</pre>
 <p>Wait until there is place in the backlog queue, <em class="parameter"><code>timeout</code></em>
  is reached
 or <em class="parameter"><code>watch</code></em>
  is set to flushing.</p>
 <p>If <em class="parameter"><code>timeout</code></em>
- is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> this function can block forever. If <em class="parameter"><code>timeout</code></em>
+ is <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> this function can block forever. If <em class="parameter"><code>timeout</code></em>
 
-contains a valid timeout, this function will return <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-ETIMEOUT:CAPS"><span class="type">GST_RTSP_ETIMEOUT</span></a>
+contains a valid timeout, this function will return <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-ETIMEOUT:CAPS"><code class="literal">GST_RTSP_ETIMEOUT</code></a>
 after the timeout expired.</p>
 <p>The typically use of this function is when gst_rtsp_watch_write_data
-returns GST_RTSP_ENOMEM. The caller then calls this function to wait for
+returns <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-ENOMEM:CAPS"><code class="literal">GST_RTSP_ENOMEM</code></a>. The caller then calls this function to wait for
 free space in the backlog queue and try again.</p>
 <div class="refsect3">
-<a name="id-1.2.10.3.8.42.7"></a><h4>Parameters</h4>
+<a name="id-1.2.10.3.7.42.7"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1996,20 +1990,20 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>timeout</p></td>
-<td class="parameter_description"><p>a <a href="http://library.gnome.org/devel/glib/unstable/glib-Date-and-Time-Functions.html#GTimeVal"><span class="type">GTimeVal</span></a> timeout</p></td>
+<td class="parameter_description"><p>a <a href="https://developer.gnome.org/glib/unstable/glib-Date-and-Time-Functions.html#GTimeVal"><span class="type">GTimeVal</span></a> timeout</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.3.8.42.8"></a><h4>Returns</h4>
-<p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a> when if there is room in queue.
-<a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-ETIMEOUT:CAPS"><span class="type">GST_RTSP_ETIMEOUT</span></a> when <em class="parameter"><code>timeout</code></em>
+<a name="id-1.2.10.3.7.42.8"></a><h4>Returns</h4>
+<p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><code class="literal">GST_RTSP_OK</code></a> when if there is room in queue.
+<a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-ETIMEOUT:CAPS"><code class="literal">GST_RTSP_ETIMEOUT</code></a> when <em class="parameter"><code>timeout</code></em>
 was reached.
-<a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-EINTR:CAPS"><span class="type">GST_RTSP_EINTR</span></a> when <em class="parameter"><code>watch</code></em>
+<a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-EINTR:CAPS"><code class="literal">GST_RTSP_EINTR</code></a> when <em class="parameter"><code>watch</code></em>
 is flushing
-<a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-EINVAL:CAPS"><span class="type">GST_RTSP_EINVAL</span></a> when called with invalid parameters.</p>
+<a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-EINVAL:CAPS"><code class="literal">GST_RTSP_EINVAL</code></a> when called with invalid parameters.</p>
 <p></p>
 </div>
 <p class="since">Since 1.4</p>
@@ -2054,7 +2048,7 @@
 </pre>
 <p>Callback functions from a <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPWatch" title="GstRTSPWatch"><span class="type">GstRTSPWatch</span></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.10.3.9.4.5"></a><h4>Members</h4>
+<a name="id-1.2.10.3.8.4.5"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
@@ -2126,6 +2120,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstrtspdefs.html b/docs/libs/html/gst-plugins-base-libs-gstrtspdefs.html
index b865c06..9d0e15f 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstrtspdefs.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstrtspdefs.html
@@ -8,15 +8,14 @@
 <link rel="up" href="gstreamer-rtsp.html" title="RTSP Library">
 <link rel="prev" href="gst-plugins-base-libs-gstrtspconnection.html" title="gstrtspconnection">
 <link rel="next" href="gst-plugins-base-libs-gstrtspextension.html" title="gstrtspextension">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstrtspdefs.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstrtspdefs.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gstrtspdefs.description" class="shortcut">Description</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="gstreamer-rtsp.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -48,28 +47,28 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-strresult" title="gst_rtsp_strresult ()">gst_rtsp_strresult</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<td class="function_type">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-method-as-text" title="gst_rtsp_method_as_text ()">gst_rtsp_method_as_text</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<td class="function_type">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-version-as-text" title="gst_rtsp_version_as_text ()">gst_rtsp_version_as_text</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<td class="function_type">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-header-as-text" title="gst_rtsp_header_as_text ()">gst_rtsp_header_as_text</a> <span class="c_punctuation">()</span>
@@ -77,14 +76,14 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-header-allow-multiple" title="gst_rtsp_header_allow_multiple ()">gst_rtsp_header_allow_multiple</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<td class="function_type">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-status-as-text" title="gst_rtsp_status_as_text ()">gst_rtsp_status_as_text</a> <span class="c_punctuation">()</span>
@@ -92,7 +91,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-options-as-text" title="gst_rtsp_options_as_text ()">gst_rtsp_options_as_text</a> <span class="c_punctuation">()</span>
@@ -177,11 +176,6 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="gst-plugins-base-libs-gstrtspdefs.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">
-</pre>
-</div>
-<div class="refsect1">
 <a name="gst-plugins-base-libs-gstrtspdefs.includes"></a><h2>Includes</h2>
 <pre class="synopsis">#include &lt;gst/rtsp/gstrtspdefs.h&gt;
 </pre>
@@ -200,7 +194,7 @@
  when it does
 not equal <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.10.4.8.2.5"></a><h4>Parameters</h4>
+<a name="id-1.2.10.4.7.2.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -225,12 +219,12 @@
 <hr>
 <div class="refsect2">
 <a name="gst-rtsp-strresult"></a><h3>gst_rtsp_strresult ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_rtsp_strresult (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="type">GstRTSPResult</span></a> result</code></em>);</pre>
 <p>Convert <em class="parameter"><code>result</code></em>
  in a human readable string.</p>
 <div class="refsect3">
-<a name="id-1.2.10.4.8.3.5"></a><h4>Parameters</h4>
+<a name="id-1.2.10.4.7.3.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -245,20 +239,20 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.4.8.3.6"></a><h4>Returns</h4>
-<p> a newly allocated string. <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>
+<a name="id-1.2.10.4.7.3.6"></a><h4>Returns</h4>
+<p> a newly allocated string. <a href="https://developer.gnome.org/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> after usage.</p>
 <p></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtsp-method-as-text"></a><h3>gst_rtsp_method_as_text ()</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> *
+<pre class="programlisting">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_rtsp_method_as_text (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPMethod" title="enum GstRTSPMethod"><span class="type">GstRTSPMethod</span></a> method</code></em>);</pre>
 <p>Convert <em class="parameter"><code>method</code></em>
  to a string.</p>
 <div class="refsect3">
-<a name="id-1.2.10.4.8.4.5"></a><h4>Parameters</h4>
+<a name="id-1.2.10.4.7.4.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -273,7 +267,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.4.8.4.6"></a><h4>Returns</h4>
+<a name="id-1.2.10.4.7.4.6"></a><h4>Returns</h4>
 <p> a string representation of <em class="parameter"><code>method</code></em>
 .</p>
 <p></p>
@@ -282,12 +276,12 @@
 <hr>
 <div class="refsect2">
 <a name="gst-rtsp-version-as-text"></a><h3>gst_rtsp_version_as_text ()</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> *
+<pre class="programlisting">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_rtsp_version_as_text (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPVersion" title="enum GstRTSPVersion"><span class="type">GstRTSPVersion</span></a> version</code></em>);</pre>
 <p>Convert <em class="parameter"><code>version</code></em>
  to a string.</p>
 <div class="refsect3">
-<a name="id-1.2.10.4.8.5.5"></a><h4>Parameters</h4>
+<a name="id-1.2.10.4.7.5.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -302,7 +296,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.4.8.5.6"></a><h4>Returns</h4>
+<a name="id-1.2.10.4.7.5.6"></a><h4>Returns</h4>
 <p> a string representation of <em class="parameter"><code>version</code></em>
 .</p>
 <p></p>
@@ -311,12 +305,12 @@
 <hr>
 <div class="refsect2">
 <a name="gst-rtsp-header-as-text"></a><h3>gst_rtsp_header_as_text ()</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> *
+<pre class="programlisting">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_rtsp_header_as_text (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPHeaderField" title="enum GstRTSPHeaderField"><span class="type">GstRTSPHeaderField</span></a> field</code></em>);</pre>
 <p>Convert <em class="parameter"><code>field</code></em>
  to a string.</p>
 <div class="refsect3">
-<a name="id-1.2.10.4.8.6.5"></a><h4>Parameters</h4>
+<a name="id-1.2.10.4.7.6.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -331,7 +325,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.4.8.6.6"></a><h4>Returns</h4>
+<a name="id-1.2.10.4.7.6.6"></a><h4>Returns</h4>
 <p> a string representation of <em class="parameter"><code>field</code></em>
 .</p>
 <p></p>
@@ -340,12 +334,12 @@
 <hr>
 <div class="refsect2">
 <a name="gst-rtsp-header-allow-multiple"></a><h3>gst_rtsp_header_allow_multiple ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_rtsp_header_allow_multiple (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPHeaderField" title="enum GstRTSPHeaderField"><span class="type">GstRTSPHeaderField</span></a> field</code></em>);</pre>
 <p>Check whether <em class="parameter"><code>field</code></em>
  may appear multiple times in a message.</p>
 <div class="refsect3">
-<a name="id-1.2.10.4.8.7.5"></a><h4>Parameters</h4>
+<a name="id-1.2.10.4.7.7.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -360,20 +354,20 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.4.8.7.6"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if multiple headers are allowed.</p>
+<a name="id-1.2.10.4.7.7.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if multiple headers are allowed.</p>
 <p></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtsp-status-as-text"></a><h3>gst_rtsp_status_as_text ()</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> *
+<pre class="programlisting">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_rtsp_status_as_text (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPStatusCode" title="enum GstRTSPStatusCode"><span class="type">GstRTSPStatusCode</span></a> code</code></em>);</pre>
 <p>Convert <em class="parameter"><code>code</code></em>
  to a string.</p>
 <div class="refsect3">
-<a name="id-1.2.10.4.8.8.5"></a><h4>Parameters</h4>
+<a name="id-1.2.10.4.7.8.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -388,7 +382,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.4.8.8.6"></a><h4>Returns</h4>
+<a name="id-1.2.10.4.7.8.6"></a><h4>Returns</h4>
 <p> a string representation of <em class="parameter"><code>code</code></em>
 .</p>
 <p></p>
@@ -397,12 +391,12 @@
 <hr>
 <div class="refsect2">
 <a name="gst-rtsp-options-as-text"></a><h3>gst_rtsp_options_as_text ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_rtsp_options_as_text (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPMethod" title="enum GstRTSPMethod"><span class="type">GstRTSPMethod</span></a> options</code></em>);</pre>
 <p>Convert <em class="parameter"><code>options</code></em>
  to a string.</p>
 <div class="refsect3">
-<a name="id-1.2.10.4.8.9.5"></a><h4>Parameters</h4>
+<a name="id-1.2.10.4.7.9.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -417,9 +411,9 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.4.8.9.6"></a><h4>Returns</h4>
+<a name="id-1.2.10.4.7.9.6"></a><h4>Returns</h4>
 <p> a new string of <em class="parameter"><code>options</code></em>
-. <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>
+. <a href="https://developer.gnome.org/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> after usage.</p>
 <p></p>
 </div>
 </div>
@@ -427,12 +421,12 @@
 <div class="refsect2">
 <a name="gst-rtsp-options-from-text"></a><h3>gst_rtsp_options_from_text ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPMethod" title="enum GstRTSPMethod"><span class="returnvalue">GstRTSPMethod</span></a>
-gst_rtsp_options_from_text (<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> *options</code></em>);</pre>
+gst_rtsp_options_from_text (<em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *options</code></em>);</pre>
 <p>Convert the comma separated list <em class="parameter"><code>options</code></em>
  to a <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPMethod" title="enum GstRTSPMethod"><span class="type">GstRTSPMethod</span></a> bitwise or
 of methods. This functions is the reverse of <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-options-as-text" title="gst_rtsp_options_as_text ()"><code class="function">gst_rtsp_options_as_text()</code></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.10.4.8.10.5"></a><h4>Parameters</h4>
+<a name="id-1.2.10.4.7.10.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -447,7 +441,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.4.8.10.6"></a><h4>Returns</h4>
+<a name="id-1.2.10.4.7.10.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPMethod" title="enum GstRTSPMethod"><span class="type">GstRTSPMethod</span></a></p>
 <p></p>
 </div>
@@ -457,11 +451,11 @@
 <div class="refsect2">
 <a name="gst-rtsp-find-header-field"></a><h3>gst_rtsp_find_header_field ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPHeaderField" title="enum GstRTSPHeaderField"><span class="returnvalue">GstRTSPHeaderField</span></a>
-gst_rtsp_find_header_field (<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> *header</code></em>);</pre>
+gst_rtsp_find_header_field (<em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *header</code></em>);</pre>
 <p>Convert <em class="parameter"><code>header</code></em>
  to a <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPHeaderField" title="enum GstRTSPHeaderField"><span class="type">GstRTSPHeaderField</span></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.10.4.8.11.5"></a><h4>Parameters</h4>
+<a name="id-1.2.10.4.7.11.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -476,7 +470,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.4.8.11.6"></a><h4>Returns</h4>
+<a name="id-1.2.10.4.7.11.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPHeaderField" title="enum GstRTSPHeaderField"><span class="type">GstRTSPHeaderField</span></a> for <em class="parameter"><code>header</code></em>
 or <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-INVALID:CAPS"><span class="type">GST_RTSP_HDR_INVALID</span></a> if the
 header field is unknown.</p>
@@ -487,11 +481,11 @@
 <div class="refsect2">
 <a name="gst-rtsp-find-method"></a><h3>gst_rtsp_find_method ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPMethod" title="enum GstRTSPMethod"><span class="returnvalue">GstRTSPMethod</span></a>
-gst_rtsp_find_method (<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> *method</code></em>);</pre>
+gst_rtsp_find_method (<em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *method</code></em>);</pre>
 <p>Convert <em class="parameter"><code>method</code></em>
  to a <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPMethod" title="enum GstRTSPMethod"><span class="type">GstRTSPMethod</span></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.10.4.8.12.5"></a><h4>Parameters</h4>
+<a name="id-1.2.10.4.7.12.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -506,7 +500,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.4.8.12.6"></a><h4>Returns</h4>
+<a name="id-1.2.10.4.7.12.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPMethod" title="enum GstRTSPMethod"><span class="type">GstRTSPMethod</span></a> for <em class="parameter"><code>method</code></em>
 or <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-INVALID:CAPS"><span class="type">GST_RTSP_INVALID</span></a> if the
 method is unknown.</p>
@@ -527,7 +521,7 @@
 <a name="GstRTSPEvent"></a><h3>enum GstRTSPEvent</h3>
 <p>The possible events for the connection.</p>
 <div class="refsect3">
-<a name="id-1.2.10.4.9.3.4"></a><h4>Members</h4>
+<a name="id-1.2.10.4.8.3.4"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -558,7 +552,7 @@
 <a name="GstRTSPResult"></a><h3>enum GstRTSPResult</h3>
 <p>Result codes from the RTSP functions.</p>
 <div class="refsect3">
-<a name="id-1.2.10.4.9.4.4"></a><h4>Members</h4>
+<a name="id-1.2.10.4.8.4.4"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -701,7 +695,7 @@
 <a name="GstRTSPFamily"></a><h3>enum GstRTSPFamily</h3>
 <p>The possible network families.</p>
 <div class="refsect3">
-<a name="id-1.2.10.4.9.5.4"></a><h4>Members</h4>
+<a name="id-1.2.10.4.8.5.4"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -739,7 +733,7 @@
 <a name="GstRTSPState"></a><h3>enum GstRTSPState</h3>
 <p>The different RTSP states.</p>
 <div class="refsect3">
-<a name="id-1.2.10.4.9.6.4"></a><h4>Members</h4>
+<a name="id-1.2.10.4.8.6.4"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -798,7 +792,7 @@
 <a name="GstRTSPVersion"></a><h3>enum GstRTSPVersion</h3>
 <p>The supported RTSP versions.</p>
 <div class="refsect3">
-<a name="id-1.2.10.4.9.7.4"></a><h4>Members</h4>
+<a name="id-1.2.10.4.8.7.4"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -836,7 +830,7 @@
 <a name="GstRTSPMethod"></a><h3>enum GstRTSPMethod</h3>
 <p>The different supported RTSP methods.</p>
 <div class="refsect3">
-<a name="id-1.2.10.4.9.8.4"></a><h4>Members</h4>
+<a name="id-1.2.10.4.8.8.4"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -951,7 +945,7 @@
 <a name="GstRTSPAuthMethod"></a><h3>enum GstRTSPAuthMethod</h3>
 <p>Authentication methods, ordered by strength</p>
 <div class="refsect3">
-<a name="id-1.2.10.4.9.9.4"></a><h4>Members</h4>
+<a name="id-1.2.10.4.8.9.4"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -989,7 +983,7 @@
 <a name="GstRTSPHeaderField"></a><h3>enum GstRTSPHeaderField</h3>
 <p>Enumeration of rtsp header fields</p>
 <div class="refsect3">
-<a name="id-1.2.10.4.9.10.4"></a><h4>Members</h4>
+<a name="id-1.2.10.4.8.10.4"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -1426,7 +1420,7 @@
 <a name="GstRTSPStatusCode"></a><h3>enum GstRTSPStatusCode</h3>
 <p>Enumeration of rtsp status codes</p>
 <div class="refsect3">
-<a name="id-1.2.10.4.9.11.4"></a><h4>Members</h4>
+<a name="id-1.2.10.4.8.11.4"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -1676,6 +1670,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstrtspextension.html b/docs/libs/html/gst-plugins-base-libs-gstrtspextension.html
index 3f08058..7a7a74a 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstrtspextension.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstrtspextension.html
@@ -8,15 +8,14 @@
 <link rel="up" href="gstreamer-rtsp.html" title="RTSP Library">
 <link rel="prev" href="gst-plugins-base-libs-gstrtspdefs.html" title="gstrtspdefs">
 <link rel="next" href="gst-plugins-base-libs-gstrtspmessage.html" title="gstrtspmessage">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstrtspextension.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstrtspextension.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gstrtspextension.description" class="shortcut">Description</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="gstreamer-rtsp.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -52,11 +51,6 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="gst-plugins-base-libs-gstrtspextension.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">
-</pre>
-</div>
-<div class="refsect1">
 <a name="gst-plugins-base-libs-gstrtspextension.includes"></a><h2>Includes</h2>
 <pre class="synopsis">#include &lt;gst/rtsp/gstrtspextension.h&gt;
 </pre>
@@ -64,7 +58,7 @@
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstrtspextension.description"></a><h2>Description</h2>
 <div class="refsect2">
-<a name="id-1.2.10.5.6.2"></a><p>
+<a name="id-1.2.10.5.5.2"></a><p>
  This interface is implemented e.g. by the Windows Media Streaming RTSP
  exentension (rtspwms) and the RealMedia RTSP extension (rtspreal).
 </p>
@@ -112,6 +106,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstrtspmessage.html b/docs/libs/html/gst-plugins-base-libs-gstrtspmessage.html
index 1f47630..801fd6f 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstrtspmessage.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstrtspmessage.html
@@ -8,15 +8,14 @@
 <link rel="up" href="gstreamer-rtsp.html" title="RTSP Library">
 <link rel="prev" href="gst-plugins-base-libs-gstrtspextension.html" title="gstrtspextension">
 <link rel="next" href="gst-plugins-base-libs-gstrtsprange.html" title="gstrtsprange">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstrtspmessage.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstrtspmessage.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gstrtspmessage.description" class="shortcut">Description</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="gstreamer-rtsp.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -189,6 +188,38 @@
 <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>
 </td>
 <td class="function_name">
+<a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-add-header-by-name" title="gst_rtsp_message_add_header_by_name ()">gst_rtsp_message_add_header_by_name</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-take-header-by-name" title="gst_rtsp_message_take_header_by_name ()">gst_rtsp_message_take_header_by_name</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-remove-header-by-name" title="gst_rtsp_message_remove_header_by_name ()">gst_rtsp_message_remove_header_by_name</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-get-header-by-name" title="gst_rtsp_message_get_header_by_name ()">gst_rtsp_message_get_header_by_name</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>
+</td>
+<td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-append-headers" title="gst_rtsp_message_append_headers ()">gst_rtsp_message_append_headers</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
@@ -255,11 +286,6 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="gst-plugins-base-libs-gstrtspmessage.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">
-</pre>
-</div>
-<div class="refsect1">
 <a name="gst-plugins-base-libs-gstrtspmessage.includes"></a><h2>Includes</h2>
 <pre class="synopsis">#include &lt;gst/rtsp/gstrtspmessage.h&gt;
 </pre>
@@ -276,7 +302,7 @@
 gst_rtsp_message_new (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> **msg</code></em>);</pre>
 <p>Create a new initialized <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a>. Free with <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-free" title="gst_rtsp_message_free ()"><code class="function">gst_rtsp_message_free()</code></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.10.6.8.2.5"></a><h4>Parameters</h4>
+<a name="id-1.2.10.6.7.2.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -291,7 +317,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.6.8.2.6"></a><h4>Returns</h4>
+<a name="id-1.2.10.6.7.2.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="type">GstRTSPResult</span></a>.</p>
 <p></p>
 </div>
@@ -306,7 +332,7 @@
  is allocated on the
 stack. The reverse operation of this is <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-unset" title="gst_rtsp_message_unset ()"><code class="function">gst_rtsp_message_unset()</code></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.10.6.8.3.5"></a><h4>Parameters</h4>
+<a name="id-1.2.10.6.7.3.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -321,7 +347,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.6.8.3.6"></a><h4>Returns</h4>
+<a name="id-1.2.10.6.7.3.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="type">GstRTSPResult</span></a>.</p>
 <p></p>
 </div>
@@ -337,7 +363,7 @@
 <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-init-request" title="gst_rtsp_message_init_request ()"><code class="function">gst_rtsp_message_init_request()</code></a>, <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-init-response" title="gst_rtsp_message_init_response ()"><code class="function">gst_rtsp_message_init_response()</code></a> and
 <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-init-data" title="gst_rtsp_message_init_data ()"><code class="function">gst_rtsp_message_init_data()</code></a> on stack allocated <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> structures.</p>
 <div class="refsect3">
-<a name="id-1.2.10.6.8.4.5"></a><h4>Parameters</h4>
+<a name="id-1.2.10.6.7.4.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -352,7 +378,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.6.8.4.6"></a><h4>Returns</h4>
+<a name="id-1.2.10.6.7.4.6"></a><h4>Returns</h4>
 <p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a>.</p>
 <p></p>
 </div>
@@ -365,7 +391,7 @@
 <p>Free the memory used by <em class="parameter"><code>msg</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.10.6.8.5.5"></a><h4>Parameters</h4>
+<a name="id-1.2.10.6.7.5.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -380,7 +406,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.6.8.5.6"></a><h4>Returns</h4>
+<a name="id-1.2.10.6.7.5.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="type">GstRTSPResult</span></a>.</p>
 <p></p>
 </div>
@@ -393,7 +419,7 @@
 <p>Get the message type of <em class="parameter"><code>msg</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.10.6.8.6.5"></a><h4>Parameters</h4>
+<a name="id-1.2.10.6.7.6.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -408,7 +434,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.6.8.6.6"></a><h4>Returns</h4>
+<a name="id-1.2.10.6.7.6.6"></a><h4>Returns</h4>
 <p> the message type.</p>
 <p></p>
 </div>
@@ -419,14 +445,14 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>
 gst_rtsp_message_new_request (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> **msg</code></em>,
                               <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPMethod" title="enum GstRTSPMethod"><span class="type">GstRTSPMethod</span></a> method</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>);</pre>
+                              <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *uri</code></em>);</pre>
 <p>Create a new <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> with <em class="parameter"><code>method</code></em>
  and <em class="parameter"><code>uri</code></em>
  and store the result
 request message in <em class="parameter"><code>msg</code></em>
 . Free with <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-free" title="gst_rtsp_message_free ()"><code class="function">gst_rtsp_message_free()</code></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.10.6.8.7.5"></a><h4>Parameters</h4>
+<a name="id-1.2.10.6.7.7.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -453,7 +479,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.6.8.7.6"></a><h4>Returns</h4>
+<a name="id-1.2.10.6.7.7.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="type">GstRTSPResult</span></a>.</p>
 <p></p>
 </div>
@@ -464,7 +490,7 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>
 gst_rtsp_message_init_request (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *msg</code></em>,
                                <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPMethod" title="enum GstRTSPMethod"><span class="type">GstRTSPMethod</span></a> method</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>);</pre>
+                               <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *uri</code></em>);</pre>
 <p>Initialize <em class="parameter"><code>msg</code></em>
  as a request message with <em class="parameter"><code>method</code></em>
  and <em class="parameter"><code>uri</code></em>
@@ -472,7 +498,7 @@
 
 again, use <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-unset" title="gst_rtsp_message_unset ()"><code class="function">gst_rtsp_message_unset()</code></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.10.6.8.8.5"></a><h4>Parameters</h4>
+<a name="id-1.2.10.6.7.8.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -499,7 +525,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.6.8.8.6"></a><h4>Returns</h4>
+<a name="id-1.2.10.6.7.8.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="type">GstRTSPResult</span></a>.</p>
 <p></p>
 </div>
@@ -510,20 +536,20 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>
 gst_rtsp_message_parse_request (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *msg</code></em>,
                                 <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPMethod" title="enum GstRTSPMethod"><span class="type">GstRTSPMethod</span></a> *method</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="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **uri</code></em>,
                                 <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPVersion" title="enum GstRTSPVersion"><span class="type">GstRTSPVersion</span></a> *version</code></em>);</pre>
 <p>Parse the request message <em class="parameter"><code>msg</code></em>
  and store the values <em class="parameter"><code>method</code></em>
 , <em class="parameter"><code>uri</code></em>
  and
 <em class="parameter"><code>version</code></em>
-. The result locations can be <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> if one is not interested in its
+. The result locations can be <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> if one is not interested in its
 value.</p>
 <p><em class="parameter"><code>uri</code></em>
  remains valid for as long as <em class="parameter"><code>msg</code></em>
  is valid and unchanged.</p>
 <div class="refsect3">
-<a name="id-1.2.10.6.8.9.6"></a><h4>Parameters</h4>
+<a name="id-1.2.10.6.7.9.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -539,23 +565,23 @@
 <tr>
 <td class="parameter_name"><p>method</p></td>
 <td class="parameter_description"><p> location to hold the method. </p></td>
-<td class="parameter_annotations"><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>
+<td class="parameter_annotations"><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 class="parameter_name"><p>uri</p></td>
 <td class="parameter_description"><p> location to hold the uri. </p></td>
-<td class="parameter_annotations"><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>
+<td class="parameter_annotations"><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 class="parameter_name"><p>version</p></td>
 <td class="parameter_description"><p> location to hold the version. </p></td>
-<td class="parameter_annotations"><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>
+<td class="parameter_annotations"><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>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.6.8.9.7"></a><h4>Returns</h4>
+<a name="id-1.2.10.6.7.9.7"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="type">GstRTSPResult</span></a>.</p>
 <p></p>
 </div>
@@ -566,7 +592,7 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>
 gst_rtsp_message_new_response (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> **msg</code></em>,
                                <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPStatusCode" title="enum GstRTSPStatusCode"><span class="type">GstRTSPStatusCode</span></a> code</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> *reason</code></em>,
+                               <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *reason</code></em>,
                                <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *request</code></em>);</pre>
 <p>Create a new response <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> with <em class="parameter"><code>code</code></em>
  and <em class="parameter"><code>reason</code></em>
@@ -574,13 +600,13 @@
 result message in <em class="parameter"><code>msg</code></em>
 . Free with <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-free" title="gst_rtsp_message_free ()"><code class="function">gst_rtsp_message_free()</code></a>.</p>
 <p>When <em class="parameter"><code>reason</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 default reason for <em class="parameter"><code>code</code></em>
+ is <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a>, the default reason for <em class="parameter"><code>code</code></em>
  will be used.</p>
 <p>When <em class="parameter"><code>request</code></em>
- is not <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a>, the relevant headers will be copied to the new
+ is not <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a>, the relevant headers will be copied to the new
 response message.</p>
 <div class="refsect3">
-<a name="id-1.2.10.6.8.10.7"></a><h4>Parameters</h4>
+<a name="id-1.2.10.6.7.10.7"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -600,19 +626,19 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>reason</p></td>
-<td class="parameter_description"><p> the status reason or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
+<td class="parameter_description"><p> the status reason or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
 </tr>
 <tr>
 <td class="parameter_name"><p>request</p></td>
-<td class="parameter_description"><p> the request that triggered the response or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
+<td class="parameter_description"><p> the request that triggered the response or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
 </tr>
 </tbody>
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.6.8.10.8"></a><h4>Returns</h4>
+<a name="id-1.2.10.6.7.10.8"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="type">GstRTSPResult</span></a>.</p>
 <p></p>
 </div>
@@ -623,20 +649,20 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>
 gst_rtsp_message_init_response (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *msg</code></em>,
                                 <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPStatusCode" title="enum GstRTSPStatusCode"><span class="type">GstRTSPStatusCode</span></a> code</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> *reason</code></em>,
+                                <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *reason</code></em>,
                                 <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *request</code></em>);</pre>
 <p>Initialize <em class="parameter"><code>msg</code></em>
  with <em class="parameter"><code>code</code></em>
  and <em class="parameter"><code>reason</code></em>
 .</p>
 <p>When <em class="parameter"><code>reason</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 default reason for <em class="parameter"><code>code</code></em>
+ is <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a>, the default reason for <em class="parameter"><code>code</code></em>
  will be used.</p>
 <p>When <em class="parameter"><code>request</code></em>
- is not <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a>, the relevant headers will be copied to the new
+ is not <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a>, the relevant headers will be copied to the new
 response message.</p>
 <div class="refsect3">
-<a name="id-1.2.10.6.8.11.7"></a><h4>Parameters</h4>
+<a name="id-1.2.10.6.7.11.7"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -656,19 +682,19 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>reason</p></td>
-<td class="parameter_description"><p> the status reason or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
+<td class="parameter_description"><p> the status reason or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
 </tr>
 <tr>
 <td class="parameter_name"><p>request</p></td>
-<td class="parameter_description"><p> the request that triggered the response or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
+<td class="parameter_description"><p> the request that triggered the response or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
 </tr>
 </tbody>
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.6.8.11.8"></a><h4>Returns</h4>
+<a name="id-1.2.10.6.7.11.8"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="type">GstRTSPResult</span></a>.</p>
 <p></p>
 </div>
@@ -679,20 +705,20 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>
 gst_rtsp_message_parse_response (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *msg</code></em>,
                                  <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPStatusCode" title="enum GstRTSPStatusCode"><span class="type">GstRTSPStatusCode</span></a> *code</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> **reason</code></em>,
+                                 <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **reason</code></em>,
                                  <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPVersion" title="enum GstRTSPVersion"><span class="type">GstRTSPVersion</span></a> *version</code></em>);</pre>
 <p>Parse the response message <em class="parameter"><code>msg</code></em>
  and store the values <em class="parameter"><code>code</code></em>
 , <em class="parameter"><code>reason</code></em>
  and
 <em class="parameter"><code>version</code></em>
-. The result locations can be <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> if one is not interested in its
+. The result locations can be <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> if one is not interested in its
 value.</p>
 <p><em class="parameter"><code>reason</code></em>
  remains valid for as long as <em class="parameter"><code>msg</code></em>
  is valid and unchanged.</p>
 <div class="refsect3">
-<a name="id-1.2.10.6.8.12.6"></a><h4>Parameters</h4>
+<a name="id-1.2.10.6.7.12.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -708,23 +734,23 @@
 <tr>
 <td class="parameter_name"><p>code</p></td>
 <td class="parameter_description"><p> location to hold the status code. </p></td>
-<td class="parameter_annotations"><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>
+<td class="parameter_annotations"><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 class="parameter_name"><p>reason</p></td>
 <td class="parameter_description"><p> location to hold the status reason. </p></td>
-<td class="parameter_annotations"><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>
+<td class="parameter_annotations"><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 class="parameter_name"><p>version</p></td>
 <td class="parameter_description"><p> location to hold the version. </p></td>
-<td class="parameter_annotations"><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>
+<td class="parameter_annotations"><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>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.6.8.12.7"></a><h4>Returns</h4>
+<a name="id-1.2.10.6.7.12.7"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="type">GstRTSPResult</span></a>.</p>
 <p></p>
 </div>
@@ -740,7 +766,7 @@
 result message in <em class="parameter"><code>msg</code></em>
 . Free with <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-free" title="gst_rtsp_message_free ()"><code class="function">gst_rtsp_message_free()</code></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.10.6.8.13.5"></a><h4>Parameters</h4>
+<a name="id-1.2.10.6.7.13.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -762,7 +788,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.6.8.13.6"></a><h4>Returns</h4>
+<a name="id-1.2.10.6.7.13.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="type">GstRTSPResult</span></a>.</p>
 <p></p>
 </div>
@@ -776,7 +802,7 @@
 <p>Initialize a new data <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> for <em class="parameter"><code>channel</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.10.6.8.14.5"></a><h4>Parameters</h4>
+<a name="id-1.2.10.6.7.14.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -798,7 +824,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.6.8.14.6"></a><h4>Returns</h4>
+<a name="id-1.2.10.6.7.14.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="type">GstRTSPResult</span></a>.</p>
 <p></p>
 </div>
@@ -813,7 +839,7 @@
  and store the channel in <em class="parameter"><code>channel</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.10.6.8.15.5"></a><h4>Parameters</h4>
+<a name="id-1.2.10.6.7.15.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -835,7 +861,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.6.8.15.6"></a><h4>Returns</h4>
+<a name="id-1.2.10.6.7.15.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="type">GstRTSPResult</span></a>.</p>
 <p></p>
 </div>
@@ -846,7 +872,7 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>
 gst_rtsp_message_add_header (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *msg</code></em>,
                              <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPHeaderField" title="enum GstRTSPHeaderField"><span class="type">GstRTSPHeaderField</span></a> field</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> *value</code></em>);</pre>
+                             <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *value</code></em>);</pre>
 <p>Add a header with key <em class="parameter"><code>field</code></em>
  and <em class="parameter"><code>value</code></em>
  to <em class="parameter"><code>msg</code></em>
@@ -854,7 +880,7 @@
 of <em class="parameter"><code>value</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.10.6.8.16.5"></a><h4>Parameters</h4>
+<a name="id-1.2.10.6.7.16.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -881,7 +907,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.6.8.16.6"></a><h4>Returns</h4>
+<a name="id-1.2.10.6.7.16.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="type">GstRTSPResult</span></a>.</p>
 <p></p>
 </div>
@@ -892,7 +918,7 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>
 gst_rtsp_message_take_header (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *msg</code></em>,
                               <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPHeaderField" title="enum GstRTSPHeaderField"><span class="type">GstRTSPHeaderField</span></a> field</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> *value</code></em>);</pre>
+                              <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *value</code></em>);</pre>
 <p>Add a header with key <em class="parameter"><code>field</code></em>
  and <em class="parameter"><code>value</code></em>
  to <em class="parameter"><code>msg</code></em>
@@ -900,7 +926,7 @@
 ownership of <em class="parameter"><code>value</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.10.6.8.17.5"></a><h4>Parameters</h4>
+<a name="id-1.2.10.6.7.17.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -927,7 +953,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.6.8.17.6"></a><h4>Returns</h4>
+<a name="id-1.2.10.6.7.17.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="type">GstRTSPResult</span></a>.</p>
 <p></p>
 </div>
@@ -938,7 +964,7 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>
 gst_rtsp_message_remove_header (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *msg</code></em>,
                                 <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPHeaderField" title="enum GstRTSPHeaderField"><span class="type">GstRTSPHeaderField</span></a> field</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> indx</code></em>);</pre>
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> indx</code></em>);</pre>
 <p>Remove the <em class="parameter"><code>indx</code></em>
  header with key <em class="parameter"><code>field</code></em>
  from <em class="parameter"><code>msg</code></em>
@@ -946,7 +972,7 @@
  equals -1, all
 headers will be removed.</p>
 <div class="refsect3">
-<a name="id-1.2.10.6.8.18.5"></a><h4>Parameters</h4>
+<a name="id-1.2.10.6.7.18.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -973,7 +999,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.6.8.18.6"></a><h4>Returns</h4>
+<a name="id-1.2.10.6.7.18.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="type">GstRTSPResult</span></a>.</p>
 <p></p>
 </div>
@@ -984,8 +1010,8 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>
 gst_rtsp_message_get_header (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *msg</code></em>,
                              <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPHeaderField" title="enum GstRTSPHeaderField"><span class="type">GstRTSPHeaderField</span></a> field</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> **value</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> indx</code></em>);</pre>
+                             <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **value</code></em>,
+                             <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> indx</code></em>);</pre>
 <p>Get the <em class="parameter"><code>indx</code></em>
  header value with key <em class="parameter"><code>field</code></em>
  from <em class="parameter"><code>msg</code></em>
@@ -994,7 +1020,7 @@
 stays valid as long as it remains present in <em class="parameter"><code>msg</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.10.6.8.19.5"></a><h4>Parameters</h4>
+<a name="id-1.2.10.6.7.19.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1026,7 +1052,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.6.8.19.6"></a><h4>Returns</h4>
+<a name="id-1.2.10.6.7.19.6"></a><h4>Returns</h4>
 <p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a> when <em class="parameter"><code>field</code></em>
 was found, <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-ENOTIMPL:CAPS"><span class="type">GST_RTSP_ENOTIMPL</span></a> if the key
 was not found.</p>
@@ -1035,16 +1061,215 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-rtsp-message-add-header-by-name"></a><h3>gst_rtsp_message_add_header_by_name ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>
+gst_rtsp_message_add_header_by_name (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *msg</code></em>,
+                                     <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *header</code></em>,
+                                     <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *value</code></em>);</pre>
+<p>Add a header with key <em class="parameter"><code>header</code></em>
+ and <em class="parameter"><code>value</code></em>
+ to <em class="parameter"><code>msg</code></em>
+. This function takes a copy
+of <em class="parameter"><code>value</code></em>
+.</p>
+<div class="refsect3">
+<a name="id-1.2.10.6.7.20.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>msg</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>header</p></td>
+<td class="parameter_description"><p> header string. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
+</tr>
+<tr>
+<td class="parameter_name"><p>value</p></td>
+<td class="parameter_description"><p> the value of the header. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.2.10.6.7.20.6"></a><h4>Returns</h4>
+<p> a <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="type">GstRTSPResult</span></a>.</p>
+<p></p>
+</div>
+<p class="since">Since 1.6</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-rtsp-message-take-header-by-name"></a><h3>gst_rtsp_message_take_header_by_name ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>
+gst_rtsp_message_take_header_by_name (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *msg</code></em>,
+                                      <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *header</code></em>,
+                                      <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *value</code></em>);</pre>
+<p>Add a header with key <em class="parameter"><code>header</code></em>
+ and <em class="parameter"><code>value</code></em>
+ to <em class="parameter"><code>msg</code></em>
+. This function takes
+ownership of <em class="parameter"><code>value</code></em>
+, but not of <em class="parameter"><code>header</code></em>
+.</p>
+<div class="refsect3">
+<a name="id-1.2.10.6.7.21.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>msg</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>header</p></td>
+<td class="parameter_description"><p> a header string. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
+</tr>
+<tr>
+<td class="parameter_name"><p>value</p></td>
+<td class="parameter_description"><p> the value of the header. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.2.10.6.7.21.6"></a><h4>Returns</h4>
+<p> a <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="type">GstRTSPResult</span></a>.</p>
+<p></p>
+</div>
+<p class="since">Since 1.6</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-rtsp-message-remove-header-by-name"></a><h3>gst_rtsp_message_remove_header_by_name ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>
+gst_rtsp_message_remove_header_by_name
+                               (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *msg</code></em>,
+                                <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *header</code></em>,
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> index</code></em>);</pre>
+<p>Remove the <em class="parameter"><code>index</code></em>
+ header with key <em class="parameter"><code>header</code></em>
+ from <em class="parameter"><code>msg</code></em>
+. If <em class="parameter"><code>index</code></em>
+ equals -1,
+all matching headers will be removed.</p>
+<div class="refsect3">
+<a name="id-1.2.10.6.7.22.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>msg</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>header</p></td>
+<td class="parameter_description"><p>the header string</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>index</p></td>
+<td class="parameter_description"><p>the index of the header</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.2.10.6.7.22.6"></a><h4>Returns</h4>
+<p> a <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="type">GstRTSPResult</span></a></p>
+<p></p>
+</div>
+<p class="since">Since 1.6</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-rtsp-message-get-header-by-name"></a><h3>gst_rtsp_message_get_header_by_name ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>
+gst_rtsp_message_get_header_by_name (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *msg</code></em>,
+                                     <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *header</code></em>,
+                                     <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **value</code></em>,
+                                     <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> index</code></em>);</pre>
+<p>Get the <em class="parameter"><code>index</code></em>
+ header value with key <em class="parameter"><code>header</code></em>
+ from <em class="parameter"><code>msg</code></em>
+. The result in <em class="parameter"><code>value</code></em>
+
+stays valid as long as it remains present in <em class="parameter"><code>msg</code></em>
+.</p>
+<div class="refsect3">
+<a name="id-1.2.10.6.7.23.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>msg</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>header</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPHeaderField" title="enum GstRTSPHeaderField"><span class="type">GstRTSPHeaderField</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>value</p></td>
+<td class="parameter_description"><p> pointer to hold the result. </p></td>
+<td class="parameter_annotations"><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>
+<tr>
+<td class="parameter_name"><p>index</p></td>
+<td class="parameter_description"><p>the index of the header</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.2.10.6.7.23.6"></a><h4>Returns</h4>
+<p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a> when <em class="parameter"><code>field</code></em>
+was found, <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-ENOTIMPL:CAPS"><span class="type">GST_RTSP_ENOTIMPL</span></a> if the key
+was not found.</p>
+<p></p>
+</div>
+<p class="since">Since 1.6</p>
+</div>
+<hr>
+<div class="refsect2">
 <a name="gst-rtsp-message-append-headers"></a><h3>gst_rtsp_message_append_headers ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>
 gst_rtsp_message_append_headers (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *msg</code></em>,
-                                 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Strings.html#GString"><span class="type">GString</span></a> *str</code></em>);</pre>
+                                 <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Strings.html#GString"><span class="type">GString</span></a> *str</code></em>);</pre>
 <p>Append the currently configured headers in <em class="parameter"><code>msg</code></em>
- to the <a href="http://library.gnome.org/devel/glib/unstable/glib-Strings.html#GString"><span class="type">GString</span></a> <em class="parameter"><code>str</code></em>
+ to the <a href="https://developer.gnome.org/glib/unstable/glib-Strings.html#GString"><span class="type">GString</span></a> <em class="parameter"><code>str</code></em>
  suitable
 for transmission.</p>
 <div class="refsect3">
-<a name="id-1.2.10.6.8.20.5"></a><h4>Parameters</h4>
+<a name="id-1.2.10.6.7.24.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1066,7 +1291,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.6.8.20.6"></a><h4>Returns</h4>
+<a name="id-1.2.10.6.7.24.6"></a><h4>Returns</h4>
 <p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a>.</p>
 <p></p>
 </div>
@@ -1077,12 +1302,12 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>
 gst_rtsp_message_set_body (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *msg</code></em>,
                            <em class="parameter"><code>const <span class="type">guint8</span> *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>
+                           <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);</pre>
 <p>Set the body of <em class="parameter"><code>msg</code></em>
  to a copy of <em class="parameter"><code>data</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.10.6.8.21.5"></a><h4>Parameters</h4>
+<a name="id-1.2.10.6.7.25.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1110,7 +1335,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.6.8.21.6"></a><h4>Returns</h4>
+<a name="id-1.2.10.6.7.25.6"></a><h4>Returns</h4>
 <p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a>.</p>
 <p></p>
 </div>
@@ -1121,7 +1346,7 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>
 gst_rtsp_message_take_body (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *msg</code></em>,
                             <em class="parameter"><code><span class="type">guint8</span> *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>
+                            <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);</pre>
 <p>Set the body of <em class="parameter"><code>msg</code></em>
  to <em class="parameter"><code>data</code></em>
  and <em class="parameter"><code>size</code></em>
@@ -1129,7 +1354,7 @@
 <em class="parameter"><code>data</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.10.6.8.22.5"></a><h4>Parameters</h4>
+<a name="id-1.2.10.6.7.26.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1157,7 +1382,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.6.8.22.6"></a><h4>Returns</h4>
+<a name="id-1.2.10.6.7.26.6"></a><h4>Returns</h4>
 <p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a>.</p>
 <p></p>
 </div>
@@ -1168,14 +1393,14 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>
 gst_rtsp_message_get_body (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *msg</code></em>,
                            <em class="parameter"><code><span class="type">guint8</span> **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>
+                           <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *size</code></em>);</pre>
 <p>Get the body of <em class="parameter"><code>msg</code></em>
 . <em class="parameter"><code>data</code></em>
  remains valid for as long as <em class="parameter"><code>msg</code></em>
  is valid and
 unchanged.</p>
 <div class="refsect3">
-<a name="id-1.2.10.6.8.23.5"></a><h4>Parameters</h4>
+<a name="id-1.2.10.6.7.27.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1203,7 +1428,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.6.8.23.6"></a><h4>Returns</h4>
+<a name="id-1.2.10.6.7.27.6"></a><h4>Returns</h4>
 <p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a>.</p>
 <p></p>
 </div>
@@ -1214,15 +1439,15 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>
 gst_rtsp_message_steal_body (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *msg</code></em>,
                              <em class="parameter"><code><span class="type">guint8</span> **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>
+                             <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *size</code></em>);</pre>
 <p>Take the body of <em class="parameter"><code>msg</code></em>
  and store it in <em class="parameter"><code>data</code></em>
  and <em class="parameter"><code>size</code></em>
 . After this method,
 the body and size of <em class="parameter"><code>msg</code></em>
- will be set to <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> and 0 respectively.</p>
+ will be set to <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> and 0 respectively.</p>
 <div class="refsect3">
-<a name="id-1.2.10.6.8.24.5"></a><h4>Parameters</h4>
+<a name="id-1.2.10.6.7.28.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1250,7 +1475,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.6.8.24.6"></a><h4>Returns</h4>
+<a name="id-1.2.10.6.7.28.6"></a><h4>Returns</h4>
 <p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a>.</p>
 <p></p>
 </div>
@@ -1263,7 +1488,7 @@
 <p>Dump the contents of <em class="parameter"><code>msg</code></em>
  to stdout.</p>
 <div class="refsect3">
-<a name="id-1.2.10.6.8.25.5"></a><h4>Parameters</h4>
+<a name="id-1.2.10.6.7.29.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1278,7 +1503,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.6.8.25.6"></a><h4>Returns</h4>
+<a name="id-1.2.10.6.7.29.6"></a><h4>Returns</h4>
 <p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a>.</p>
 <p></p>
 </div>
@@ -1290,7 +1515,7 @@
 <a name="GstRTSPMsgType"></a><h3>enum GstRTSPMsgType</h3>
 <p>The type of a message.</p>
 <div class="refsect3">
-<a name="id-1.2.10.6.9.2.4"></a><h4>Members</h4>
+<a name="id-1.2.10.6.8.2.4"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -1371,7 +1596,7 @@
 the <em class="parameter"><code>type</code></em>
 , the appropriate structure may be accessed.</p>
 <div class="refsect3">
-<a name="id-1.2.10.6.9.3.5"></a><h4>Members</h4>
+<a name="id-1.2.10.6.8.3.5"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
@@ -1394,6 +1619,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstrtsprange.html b/docs/libs/html/gst-plugins-base-libs-gstrtsprange.html
index c8dc853..dd5284b 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstrtsprange.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstrtsprange.html
@@ -8,15 +8,14 @@
 <link rel="up" href="gstreamer-rtsp.html" title="RTSP Library">
 <link rel="prev" href="gst-plugins-base-libs-gstrtspmessage.html" title="gstrtspmessage">
 <link rel="next" href="gst-plugins-base-libs-gstrtsptransport.html" title="gstrtsptransport">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstrtsprange.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstrtsprange.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gstrtsprange.description" class="shortcut">Description</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="gstreamer-rtsp.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -50,7 +49,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtsprange.html#gst-rtsp-range-get-times" title="gst_rtsp_range_get_times ()">gst_rtsp_range_get_times</a> <span class="c_punctuation">()</span>
@@ -58,7 +57,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtsprange.html#gst-rtsp-range-to-string" title="gst_rtsp_range_to_string ()">gst_rtsp_range_to_string</a> <span class="c_punctuation">()</span>
@@ -66,7 +65,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtsprange.html#gst-rtsp-range-convert-units" title="gst_rtsp_range_convert_units ()">gst_rtsp_range_convert_units</a> <span class="c_punctuation">()</span>
@@ -115,11 +114,6 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="gst-plugins-base-libs-gstrtsprange.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">
-</pre>
-</div>
-<div class="refsect1">
 <a name="gst-plugins-base-libs-gstrtsprange.includes"></a><h2>Includes</h2>
 <pre class="synopsis">#include &lt;gst/rtsp/gstrtsprange.h&gt;
 </pre>
@@ -133,12 +127,12 @@
 <div class="refsect2">
 <a name="gst-rtsp-range-parse"></a><h3>gst_rtsp_range_parse ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>
-gst_rtsp_range_parse (<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> *rangestr</code></em>,
+gst_rtsp_range_parse (<em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *rangestr</code></em>,
                       <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtsprange.html#GstRTSPTimeRange" title="struct GstRTSPTimeRange"><span class="type">GstRTSPTimeRange</span></a> **range</code></em>);</pre>
 <p>Parse <em class="parameter"><code>rangestr</code></em>
  to a <a class="link" href="gst-plugins-base-libs-gstrtsprange.html#GstRTSPTimeRange" title="struct GstRTSPTimeRange"><span class="type">GstRTSPTimeRange</span></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.10.7.8.2.5"></a><h4>Parameters</h4>
+<a name="id-1.2.10.7.7.2.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -160,7 +154,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.7.8.2.6"></a><h4>Returns</h4>
+<a name="id-1.2.10.7.7.2.6"></a><h4>Returns</h4>
 <p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a> on success.</p>
 <p></p>
 </div>
@@ -168,7 +162,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-rtsp-range-get-times"></a><h3>gst_rtsp_range_get_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>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_rtsp_range_get_times (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstrtsprange.html#GstRTSPTimeRange" title="struct GstRTSPTimeRange"><span class="type">GstRTSPTimeRange</span></a> *range</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</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</code></em>);</pre>
@@ -183,7 +177,7 @@
  respectively.</p>
 <p>UTC times will be converted to nanoseconds since 1900.</p>
 <div class="refsect3">
-<a name="id-1.2.10.7.8.3.7"></a><h4>Parameters</h4>
+<a name="id-1.2.10.7.7.3.7"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -210,8 +204,8 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.7.8.3.8"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success.</p>
+<a name="id-1.2.10.7.7.3.8"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success.</p>
 <p></p>
 </div>
 <p class="since">Since 1.2</p>
@@ -219,12 +213,12 @@
 <hr>
 <div class="refsect2">
 <a name="gst-rtsp-range-to-string"></a><h3>gst_rtsp_range_to_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> *
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_rtsp_range_to_string (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstrtsprange.html#GstRTSPTimeRange" title="struct GstRTSPTimeRange"><span class="type">GstRTSPTimeRange</span></a> *range</code></em>);</pre>
 <p>Convert <em class="parameter"><code>range</code></em>
  into a string representation.</p>
 <div class="refsect3">
-<a name="id-1.2.10.7.8.4.5"></a><h4>Parameters</h4>
+<a name="id-1.2.10.7.7.4.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -239,23 +233,23 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.7.8.4.6"></a><h4>Returns</h4>
+<a name="id-1.2.10.7.7.4.6"></a><h4>Returns</h4>
 <p> The string representation of <em class="parameter"><code>range</code></em>
-. <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>
+. <a href="https://developer.gnome.org/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> after usage.</p>
 <p></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtsp-range-convert-units"></a><h3>gst_rtsp_range_convert_units ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_rtsp_range_convert_units (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtsprange.html#GstRTSPTimeRange" title="struct GstRTSPTimeRange"><span class="type">GstRTSPTimeRange</span></a> *range</code></em>,
                               <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtsprange.html#GstRTSPRangeUnit" title="enum GstRTSPRangeUnit"><span class="type">GstRTSPRangeUnit</span></a> unit</code></em>);</pre>
 <p>Converts the range in-place between different types of units.
 Ranges containing the special value <a class="link" href="gst-plugins-base-libs-gstrtsprange.html#GST-RTSP-TIME-NOW:CAPS"><span class="type">GST_RTSP_TIME_NOW</span></a> can not be
 converted as these are only valid for <a class="link" href="gst-plugins-base-libs-gstrtsprange.html#GST-RTSP-RANGE-NPT:CAPS"><span class="type">GST_RTSP_RANGE_NPT</span></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.10.7.8.5.5"></a><h4>Parameters</h4>
+<a name="id-1.2.10.7.7.5.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -277,8 +271,8 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.7.8.5.6"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the range could be converted</p>
+<a name="id-1.2.10.7.7.5.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the range could be converted</p>
 <p></p>
 </div>
 </div>
@@ -290,7 +284,7 @@
 <p>Free the memory allocated by <em class="parameter"><code>range</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.10.7.8.6.5"></a><h4>Parameters</h4>
+<a name="id-1.2.10.7.7.6.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -312,7 +306,7 @@
 <a name="GstRTSPRangeUnit"></a><h3>enum GstRTSPRangeUnit</h3>
 <p>Different possible time range units.</p>
 <div class="refsect3">
-<a name="id-1.2.10.7.9.2.4"></a><h4>Members</h4>
+<a name="id-1.2.10.7.8.2.4"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -373,7 +367,7 @@
 </pre>
 <p>A time range.</p>
 <div class="refsect3">
-<a name="id-1.2.10.7.9.3.5"></a><h4>Members</h4>
+<a name="id-1.2.10.7.8.3.5"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
@@ -420,7 +414,7 @@
 </pre>
 <p>A time indication.</p>
 <div class="refsect3">
-<a name="id-1.2.10.7.9.4.5"></a><h4>Members</h4>
+<a name="id-1.2.10.7.8.4.5"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
@@ -434,7 +428,7 @@
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="GstRTSPTime.seconds"></a>seconds</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="GstRTSPTime.seconds"></a>seconds</code></em>;</p></td>
 <td class="struct_member_description"><p>seconds when <em class="parameter"><code>type</code></em>
 is GST_RTSP_TIME_SECONDS,
 GST_RTSP_TIME_UTC and GST_RTSP_TIME_FRAMES</p></td>
@@ -456,7 +450,7 @@
 </pre>
 <p>Extra fields for a time indication.</p>
 <div class="refsect3">
-<a name="id-1.2.10.7.9.5.5"></a><h4>Members</h4>
+<a name="id-1.2.10.7.8.5.5"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
@@ -465,23 +459,23 @@
 </colgroup>
 <tbody>
 <tr>
-<td class="struct_member_name"><p><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="GstRTSPTime2.frames"></a>frames</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="GstRTSPTime2.frames"></a>frames</code></em>;</p></td>
 <td class="struct_member_description"><p>frames and subframes when type in GstRTSPTime is
 GST_RTSP_TIME_FRAMES</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstRTSPTime2.year"></a>year</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstRTSPTime2.year"></a>year</code></em>;</p></td>
 <td class="struct_member_description"><p>year when type is GST_RTSP_TIME_UTC</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstRTSPTime2.month"></a>month</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstRTSPTime2.month"></a>month</code></em>;</p></td>
 <td class="struct_member_description"><p>month when type is GST_RTSP_TIME_UTC</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstRTSPTime2.day"></a>day</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstRTSPTime2.day"></a>day</code></em>;</p></td>
 <td class="struct_member_description"><p>day when type is GST_RTSP_TIME_UTC</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
@@ -495,7 +489,7 @@
 <a name="GstRTSPTimeType"></a><h3>enum GstRTSPTimeType</h3>
 <p>Possible time types.</p>
 <div class="refsect3">
-<a name="id-1.2.10.7.9.6.4"></a><h4>Members</h4>
+<a name="id-1.2.10.7.8.6.4"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -546,6 +540,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstrtsptransport.html b/docs/libs/html/gst-plugins-base-libs-gstrtsptransport.html
index 82504da..f0deb7d 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstrtsptransport.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstrtsptransport.html
@@ -8,15 +8,14 @@
 <link rel="up" href="gstreamer-rtsp.html" title="RTSP Library">
 <link rel="prev" href="gst-plugins-base-libs-gstrtsprange.html" title="gstrtsprange">
 <link rel="next" href="gst-plugins-base-libs-gstrtspurl.html" title="gstrtspurl">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstrtsptransport.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstrtsptransport.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gstrtsptransport.description" class="shortcut">Description</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="gstreamer-rtsp.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -66,7 +65,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtsptransport.html#gst-rtsp-transport-as-text" title="gst_rtsp_transport_as_text ()">gst_rtsp_transport_as_text</a> <span class="c_punctuation">()</span>
@@ -131,11 +130,6 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="gst-plugins-base-libs-gstrtsptransport.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">
-</pre>
-</div>
-<div class="refsect1">
 <a name="gst-plugins-base-libs-gstrtsptransport.includes"></a><h2>Includes</h2>
 <pre class="synopsis">#include &lt;gst/rtsp/gstrtsptransport.h&gt;
 </pre>
@@ -153,7 +147,7 @@
 <p>Allocate a new initialized <a class="link" href="gst-plugins-base-libs-gstrtsptransport.html#GstRTSPTransport" title="struct GstRTSPTransport"><span class="type">GstRTSPTransport</span></a>. Use <a class="link" href="gst-plugins-base-libs-gstrtsptransport.html#gst-rtsp-transport-free" title="gst_rtsp_transport_free ()"><code class="function">gst_rtsp_transport_free()</code></a>
 after usage.</p>
 <div class="refsect3">
-<a name="id-1.2.10.8.8.2.5"></a><h4>Parameters</h4>
+<a name="id-1.2.10.8.7.2.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -168,7 +162,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.8.8.2.6"></a><h4>Returns</h4>
+<a name="id-1.2.10.8.7.2.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="type">GstRTSPResult</span></a>. </p>
 <p></p>
 </div>
@@ -181,7 +175,7 @@
 <p>Initialize <em class="parameter"><code>transport</code></em>
  so that it can be used.</p>
 <div class="refsect3">
-<a name="id-1.2.10.8.8.3.5"></a><h4>Parameters</h4>
+<a name="id-1.2.10.8.7.3.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -196,7 +190,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.8.8.3.6"></a><h4>Returns</h4>
+<a name="id-1.2.10.8.7.3.6"></a><h4>Returns</h4>
 <p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a>. </p>
 <p></p>
 </div>
@@ -205,13 +199,13 @@
 <div class="refsect2">
 <a name="gst-rtsp-transport-parse"></a><h3>gst_rtsp_transport_parse ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>
-gst_rtsp_transport_parse (<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>,
+gst_rtsp_transport_parse (<em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *str</code></em>,
                           <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtsptransport.html#GstRTSPTransport" title="struct GstRTSPTransport"><span class="type">GstRTSPTransport</span></a> *transport</code></em>);</pre>
 <p>Parse the RTSP transport string <em class="parameter"><code>str</code></em>
  into <em class="parameter"><code>transport</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.10.8.8.4.5"></a><h4>Parameters</h4>
+<a name="id-1.2.10.8.7.4.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -233,7 +227,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.8.8.4.6"></a><h4>Returns</h4>
+<a name="id-1.2.10.8.7.4.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="type">GstRTSPResult</span></a>.</p>
 <p></p>
 </div>
@@ -241,13 +235,13 @@
 <hr>
 <div class="refsect2">
 <a name="gst-rtsp-transport-as-text"></a><h3>gst_rtsp_transport_as_text ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_rtsp_transport_as_text (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtsptransport.html#GstRTSPTransport" title="struct GstRTSPTransport"><span class="type">GstRTSPTransport</span></a> *transport</code></em>);</pre>
 <p>Convert <em class="parameter"><code>transport</code></em>
  into a string that can be used to signal the transport in
 an RTSP SETUP response.</p>
 <div class="refsect3">
-<a name="id-1.2.10.8.8.5.5"></a><h4>Parameters</h4>
+<a name="id-1.2.10.8.7.5.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -262,8 +256,8 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.8.8.5.6"></a><h4>Returns</h4>
-<p> a string describing the RTSP transport or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> when the transport
+<a name="id-1.2.10.8.7.5.6"></a><h4>Returns</h4>
+<p> a string describing the RTSP transport or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> when the transport
 is invalid.</p>
 <p></p>
 </div>
@@ -273,18 +267,18 @@
 <a name="gst-rtsp-transport-get-mime"></a><h3>gst_rtsp_transport_get_mime ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>
 gst_rtsp_transport_get_mime (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtsptransport.html#GstRTSPTransMode" title="enum GstRTSPTransMode"><span class="type">GstRTSPTransMode</span></a> trans</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> **mime</code></em>);</pre>
+                             <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **mime</code></em>);</pre>
 <div class="warning">
 <p><code class="literal">gst_rtsp_transport_get_mime</code> is deprecated and should not be used in newly-written code.</p>
-<p>This functions only deals with the GstRTSPTransMode and only</p>
+<p>This functions only deals with the GstRTSPTransMode and only
+   returns the mime type for <a class="link" href="gst-plugins-base-libs-gstrtsptransport.html#GST-RTSP-PROFILE-AVP:CAPS"><span class="type">GST_RTSP_PROFILE_AVP</span></a>. Use
+   <code class="function">gst_rtsp_transport_get_media_type()</code> instead.</p>
 </div>
 <p>Get the mime type of the transport mode <em class="parameter"><code>trans</code></em>
 . This mime type is typically
-used to generate <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> events.</p>
-<p>returns the mime type for <a class="link" href="gst-plugins-base-libs-gstrtsptransport.html#GST-RTSP-PROFILE-AVP:CAPS"><span class="type">GST_RTSP_PROFILE_AVP</span></a>. Use
-   <code class="function">gst_rtsp_transport_get_media_type()</code> instead.</p>
+used to generate <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> events.</p>
 <div class="refsect3">
-<a name="id-1.2.10.8.8.6.7"></a><h4>Parameters</h4>
+<a name="id-1.2.10.8.7.6.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -306,7 +300,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.8.8.6.8"></a><h4>Returns</h4>
+<a name="id-1.2.10.8.7.6.7"></a><h4>Returns</h4>
 <p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a>.</p>
 <p></p>
 </div>
@@ -316,19 +310,19 @@
 <a name="gst-rtsp-transport-get-manager"></a><h3>gst_rtsp_transport_get_manager ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>
 gst_rtsp_transport_get_manager (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtsptransport.html#GstRTSPTransMode" title="enum GstRTSPTransMode"><span class="type">GstRTSPTransMode</span></a> trans</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> **manager</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> option</code></em>);</pre>
+                                <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **manager</code></em>,
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> option</code></em>);</pre>
 <p>Get the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> that can handle the buffers transported over <em class="parameter"><code>trans</code></em>
 .</p>
 <p>It is possible that there are several managers available, use <em class="parameter"><code>option</code></em>
  to
 selected one.</p>
 <p><em class="parameter"><code>manager</code></em>
- will contain an element name or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> when no manager is
+ will contain an element name or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> when no manager is
 needed/available for <em class="parameter"><code>trans</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.10.8.8.7.7"></a><h4>Parameters</h4>
+<a name="id-1.2.10.8.7.7.7"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -355,7 +349,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.8.8.7.8"></a><h4>Returns</h4>
+<a name="id-1.2.10.8.7.7.8"></a><h4>Returns</h4>
 <p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a>. </p>
 <p></p>
 </div>
@@ -368,7 +362,7 @@
 <p>Free the memory used by <em class="parameter"><code>transport</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.10.8.8.8.5"></a><h4>Parameters</h4>
+<a name="id-1.2.10.8.7.8.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -383,7 +377,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.8.8.8.6"></a><h4>Returns</h4>
+<a name="id-1.2.10.8.7.8.6"></a><h4>Returns</h4>
 <p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a>.</p>
 <p></p>
 </div>
@@ -395,7 +389,7 @@
 <a name="GstRTSPTransMode"></a><h3>enum GstRTSPTransMode</h3>
 <p>The transfer mode to use.</p>
 <div class="refsect3">
-<a name="id-1.2.10.8.9.2.4"></a><h4>Members</h4>
+<a name="id-1.2.10.8.8.2.4"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -433,7 +427,7 @@
 <a name="GstRTSPProfile"></a><h3>enum GstRTSPProfile</h3>
 <p>The transfer profile to use.</p>
 <div class="refsect3">
-<a name="id-1.2.10.8.9.3.4"></a><h4>Members</h4>
+<a name="id-1.2.10.8.8.3.4"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -490,7 +484,7 @@
 </pre>
 <p>A type to specify a range.</p>
 <div class="refsect3">
-<a name="id-1.2.10.8.9.4.5"></a><h4>Members</h4>
+<a name="id-1.2.10.8.8.4.5"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
@@ -499,12 +493,12 @@
 </colgroup>
 <tbody>
 <tr>
-<td class="struct_member_name"><p><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="GstRTSPRange.min"></a>min</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstRTSPRange.min"></a>min</code></em>;</p></td>
 <td class="struct_member_description"><p>minimum value of the range</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstRTSPRange.max"></a>max</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstRTSPRange.max"></a>max</code></em>;</p></td>
 <td class="struct_member_description"><p>maximum value of the range</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
@@ -517,7 +511,7 @@
 <a name="GstRTSPLowerTrans"></a><h3>enum GstRTSPLowerTrans</h3>
 <p>The different transport methods.</p>
 <div class="refsect3">
-<a name="id-1.2.10.8.9.5.4"></a><h4>Members</h4>
+<a name="id-1.2.10.8.8.5.4"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -600,7 +594,7 @@
 </pre>
 <p>A structure holding the RTSP transport values.</p>
 <div class="refsect3">
-<a name="id-1.2.10.8.9.6.5"></a><h4>Members</h4>
+<a name="id-1.2.10.8.8.6.5"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
@@ -624,32 +618,32 @@
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstRTSPTransport.destination"></a>destination</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstRTSPTransport.destination"></a>destination</code></em>;</p></td>
 <td class="struct_member_description"><p>the destination ip/hostname</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstRTSPTransport.source"></a>source</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstRTSPTransport.source"></a>source</code></em>;</p></td>
 <td class="struct_member_description"><p>the source ip/hostname</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstRTSPTransport.layers"></a>layers</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstRTSPTransport.layers"></a>layers</code></em>;</p></td>
 <td class="struct_member_description"><p>the number of layers</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstRTSPTransport.mode-play"></a>mode_play</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> <em class="structfield"><code><a name="GstRTSPTransport.mode-play"></a>mode_play</code></em>;</p></td>
 <td class="struct_member_description"><p>if play mode was selected</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstRTSPTransport.mode-record"></a>mode_record</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> <em class="structfield"><code><a name="GstRTSPTransport.mode-record"></a>mode_record</code></em>;</p></td>
 <td class="struct_member_description"><p>if record mode was selected</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstRTSPTransport.append"></a>append</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> <em class="structfield"><code><a name="GstRTSPTransport.append"></a>append</code></em>;</p></td>
 <td class="struct_member_description"><p>is append mode was selected</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
@@ -659,7 +653,7 @@
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstRTSPTransport.ttl"></a>ttl</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstRTSPTransport.ttl"></a>ttl</code></em>;</p></td>
 <td class="struct_member_description"><p>the time to live for multicast UDP</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
@@ -683,7 +677,7 @@
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstRTSPTransport.ssrc"></a>ssrc</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstRTSPTransport.ssrc"></a>ssrc</code></em>;</p></td>
 <td class="struct_member_description"><p>the ssrc that the sender/receiver will use</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
@@ -695,6 +689,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstrtspurl.html b/docs/libs/html/gst-plugins-base-libs-gstrtspurl.html
index 44ae396..378da7b 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstrtspurl.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstrtspurl.html
@@ -8,15 +8,14 @@
 <link rel="up" href="gstreamer-rtsp.html" title="RTSP Library">
 <link rel="prev" href="gst-plugins-base-libs-gstrtsptransport.html" title="gstrtsptransport">
 <link rel="next" href="gstreamer-sdp.html" title="SDP Library">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstrtspurl.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstrtspurl.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gstrtspurl.description" class="shortcut">Description</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="gstreamer-rtsp.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -66,7 +65,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtspurl.html#gst-rtsp-url-get-request-uri" title="gst_rtsp_url_get_request_uri ()">gst_rtsp_url_get_request_uri</a> <span class="c_punctuation">()</span>
@@ -90,7 +89,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> **
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> **
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstrtspurl.html#gst-rtsp-url-decode-path-components" title="gst_rtsp_url_decode_path_components ()">gst_rtsp_url_decode_path_components</a> <span class="c_punctuation">()</span>
@@ -119,11 +118,6 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="gst-plugins-base-libs-gstrtspurl.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">
-</pre>
-</div>
-<div class="refsect1">
 <a name="gst-plugins-base-libs-gstrtspurl.includes"></a><h2>Includes</h2>
 <pre class="synopsis">#include &lt;gst/rtsp/gstrtspurl.h&gt;
 </pre>
@@ -137,13 +131,13 @@
 <div class="refsect2">
 <a name="gst-rtsp-url-parse"></a><h3>gst_rtsp_url_parse ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>
-gst_rtsp_url_parse (<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> *urlstr</code></em>,
+gst_rtsp_url_parse (<em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *urlstr</code></em>,
                     <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspurl.html#GstRTSPUrl" title="struct GstRTSPUrl"><span class="type">GstRTSPUrl</span></a> **url</code></em>);</pre>
 <p>Parse the RTSP <em class="parameter"><code>urlstr</code></em>
  into a newly allocated <a class="link" href="gst-plugins-base-libs-gstrtspurl.html#GstRTSPUrl" title="struct GstRTSPUrl"><span class="type">GstRTSPUrl</span></a>. Free after usage
 with <a class="link" href="gst-plugins-base-libs-gstrtspurl.html#gst-rtsp-url-free" title="gst_rtsp_url_free ()"><code class="function">gst_rtsp_url_free()</code></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.10.9.8.2.5"></a><h4>Parameters</h4>
+<a name="id-1.2.10.9.7.2.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -165,7 +159,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.9.8.2.6"></a><h4>Returns</h4>
+<a name="id-1.2.10.9.7.2.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="type">GstRTSPResult</span></a>.</p>
 <p></p>
 </div>
@@ -178,7 +172,7 @@
 <p>Make a copy of <em class="parameter"><code>url</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.10.9.8.3.5"></a><h4>Parameters</h4>
+<a name="id-1.2.10.9.7.3.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -193,7 +187,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.9.8.3.6"></a><h4>Returns</h4>
+<a name="id-1.2.10.9.7.3.6"></a><h4>Returns</h4>
 <p> a copy of <em class="parameter"><code>url</code></em>
 . Free with <a class="link" href="gst-plugins-base-libs-gstrtspurl.html#gst-rtsp-url-free" title="gst_rtsp_url_free ()"><code class="function">gst_rtsp_url_free()</code></a> after usage.</p>
 <p></p>
@@ -207,7 +201,7 @@
 <p>Free the memory used by <em class="parameter"><code>url</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.10.9.8.4.5"></a><h4>Parameters</h4>
+<a name="id-1.2.10.9.7.4.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -225,12 +219,12 @@
 <hr>
 <div class="refsect2">
 <a name="gst-rtsp-url-get-request-uri"></a><h3>gst_rtsp_url_get_request_uri ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_rtsp_url_get_request_uri (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstrtspurl.html#GstRTSPUrl" title="struct GstRTSPUrl"><span class="type">GstRTSPUrl</span></a> *url</code></em>);</pre>
 <p>Get a newly allocated string describing the request URI for <em class="parameter"><code>url</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.10.9.8.5.5"></a><h4>Parameters</h4>
+<a name="id-1.2.10.9.7.5.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -245,8 +239,8 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.9.8.5.6"></a><h4>Returns</h4>
-<p> a string with the request URI. <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>
+<a name="id-1.2.10.9.7.5.6"></a><h4>Returns</h4>
+<p> a string with the request URI. <a href="https://developer.gnome.org/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> after usage.</p>
 <p></p>
 </div>
 </div>
@@ -260,7 +254,7 @@
  to <em class="parameter"><code>port</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.10.9.8.6.5"></a><h4>Parameters</h4>
+<a name="id-1.2.10.9.7.6.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -282,7 +276,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.9.8.6.6"></a><h4>Returns</h4>
+<a name="id-1.2.10.9.7.6.6"></a><h4>Returns</h4>
 <p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a>.</p>
 <p></p>
 </div>
@@ -296,7 +290,7 @@
 <p>Get the port number of <em class="parameter"><code>url</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.10.9.8.7.5"></a><h4>Parameters</h4>
+<a name="id-1.2.10.9.7.7.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -318,7 +312,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.9.8.7.6"></a><h4>Returns</h4>
+<a name="id-1.2.10.9.7.7.6"></a><h4>Returns</h4>
 <p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a>.</p>
 <p></p>
 </div>
@@ -326,7 +320,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-rtsp-url-decode-path-components"></a><h3>gst_rtsp_url_decode_path_components ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> **
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> **
 gst_rtsp_url_decode_path_components (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstrtspurl.html#GstRTSPUrl" title="struct GstRTSPUrl"><span class="type">GstRTSPUrl</span></a> *url</code></em>);</pre>
 <p>Splits the path of <em class="parameter"><code>url</code></em>
  on '/' boundaries, decoding the resulting components,</p>
@@ -339,7 +333,7 @@
 <p>Also note that since paths usually start with a slash, the first component
 will usually be the empty string.</p>
 <div class="refsect3">
-<a name="id-1.2.10.9.8.8.7"></a><h4>Parameters</h4>
+<a name="id-1.2.10.9.7.8.7"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -354,9 +348,9 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.10.9.8.8.8"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>-terminated array of URL components. 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. </p>
+<a name="id-1.2.10.9.7.8.8"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>-terminated array of URL components. Free with
+<a href="https://developer.gnome.org/glib/unstable/glib-String-Utility-Functions.html#g-strfreev"><code class="function">g_strfreev()</code></a> when no longer needed. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
 </div>
@@ -385,7 +379,7 @@
 </pre>
 <p>This structure contains the result of a parsed RTSP URL</p>
 <div class="refsect3">
-<a name="id-1.2.10.9.9.3.5"></a><h4>Members</h4>
+<a name="id-1.2.10.9.8.3.5"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
@@ -404,17 +398,17 @@
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstRTSPUrl.user"></a>user</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstRTSPUrl.user"></a>user</code></em>;</p></td>
 <td class="struct_member_description"><p>the user</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstRTSPUrl.passwd"></a>passwd</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstRTSPUrl.passwd"></a>passwd</code></em>;</p></td>
 <td class="struct_member_description"><p>the password</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstRTSPUrl.host"></a>host</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstRTSPUrl.host"></a>host</code></em>;</p></td>
 <td class="struct_member_description"><p>the host</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
@@ -424,12 +418,12 @@
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstRTSPUrl.abspath"></a>abspath</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstRTSPUrl.abspath"></a>abspath</code></em>;</p></td>
 <td class="struct_member_description"><p>the absolute path</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstRTSPUrl.query"></a>query</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstRTSPUrl.query"></a>query</code></em>;</p></td>
 <td class="struct_member_description"><p>additional query parameters</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
@@ -441,6 +435,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstsdpmessage.html b/docs/libs/html/gst-plugins-base-libs-gstsdpmessage.html
index 9ee1280..1e59f35 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstsdpmessage.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstsdpmessage.html
@@ -8,15 +8,14 @@
 <link rel="up" href="gstreamer-sdp.html" title="SDP Library">
 <link rel="prev" href="gstreamer-sdp.html" title="SDP Library">
 <link rel="next" href="gstreamer-mikey.html" title="MIKEY Library">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstsdpmessage.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstsdpmessage.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gstsdpmessage.description" class="shortcut">Description</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="gstreamer-sdp.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -162,7 +161,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-as-text" title="gst_sdp_message_as_text ()">gst_sdp_message_as_text</a> <span class="c_punctuation">()</span>
@@ -178,7 +177,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-as-uri" title="gst_sdp_message_as_uri ()">gst_sdp_message_as_uri</a> <span class="c_punctuation">()</span>
@@ -186,14 +185,14 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-address-is-multicast" title="gst_sdp_address_is_multicast ()">gst_sdp_address_is_multicast</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<td class="function_type">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-version" title="gst_sdp_message_get_version ()">gst_sdp_message_get_version</a> <span class="c_punctuation">()</span>
@@ -223,7 +222,7 @@
 </td>
 </tr>
 <tr>
-<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<td class="function_type">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-session-name" title="gst_sdp_message_get_session_name ()">gst_sdp_message_get_session_name</a> <span class="c_punctuation">()</span>
@@ -238,7 +237,7 @@
 </td>
 </tr>
 <tr>
-<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<td class="function_type">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-information" title="gst_sdp_message_get_information ()">gst_sdp_message_get_information</a> <span class="c_punctuation">()</span>
@@ -253,7 +252,7 @@
 </td>
 </tr>
 <tr>
-<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<td class="function_type">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-uri" title="gst_sdp_message_get_uri ()">gst_sdp_message_get_uri</a> <span class="c_punctuation">()</span>
@@ -269,14 +268,14 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-emails-len" title="gst_sdp_message_emails_len ()">gst_sdp_message_emails_len</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<td class="function_type">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-email" title="gst_sdp_message_get_email ()">gst_sdp_message_get_email</a> <span class="c_punctuation">()</span>
@@ -316,14 +315,14 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-phones-len" title="gst_sdp_message_phones_len ()">gst_sdp_message_phones_len</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<td class="function_type">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-phone" title="gst_sdp_message_get_phone ()">gst_sdp_message_get_phone</a> <span class="c_punctuation">()</span>
@@ -378,7 +377,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-bandwidths-len" title="gst_sdp_message_bandwidths_len ()">gst_sdp_message_bandwidths_len</a> <span class="c_punctuation">()</span>
@@ -425,7 +424,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-times-len" title="gst_sdp_message_times_len ()">gst_sdp_message_times_len</a> <span class="c_punctuation">()</span>
@@ -472,7 +471,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-zones-len" title="gst_sdp_message_zones_len ()">gst_sdp_message_zones_len</a> <span class="c_punctuation">()</span>
@@ -534,7 +533,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-attributes-len" title="gst_sdp_message_attributes_len ()">gst_sdp_message_attributes_len</a> <span class="c_punctuation">()</span>
@@ -548,14 +547,14 @@
 </td>
 </tr>
 <tr>
-<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<td class="function_type">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-attribute-val" title="gst_sdp_message_get_attribute_val ()">gst_sdp_message_get_attribute_val</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<td class="function_type">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-attribute-val-n" title="gst_sdp_message_get_attribute_val_n ()">gst_sdp_message_get_attribute_val_n</a> <span class="c_punctuation">()</span>
@@ -595,7 +594,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-medias-len" title="gst_sdp_message_medias_len ()">gst_sdp_message_medias_len</a> <span class="c_punctuation">()</span>
@@ -658,14 +657,14 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-as-text" title="gst_sdp_media_as_text ()">gst_sdp_media_as_text</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<td class="function_type">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-media" title="gst_sdp_media_get_media ()">gst_sdp_media_get_media</a> <span class="c_punctuation">()</span>
@@ -681,7 +680,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-port" title="gst_sdp_media_get_port ()">gst_sdp_media_get_port</a> <span class="c_punctuation">()</span>
@@ -689,7 +688,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-num-ports" title="gst_sdp_media_get_num_ports ()">gst_sdp_media_get_num_ports</a> <span class="c_punctuation">()</span>
@@ -704,7 +703,7 @@
 </td>
 </tr>
 <tr>
-<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<td class="function_type">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-proto" title="gst_sdp_media_get_proto ()">gst_sdp_media_get_proto</a> <span class="c_punctuation">()</span>
@@ -720,14 +719,14 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-formats-len" title="gst_sdp_media_formats_len ()">gst_sdp_media_formats_len</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<td class="function_type">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-format" title="gst_sdp_media_get_format ()">gst_sdp_media_get_format</a> <span class="c_punctuation">()</span>
@@ -766,7 +765,7 @@
 </td>
 </tr>
 <tr>
-<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<td class="function_type">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-information" title="gst_sdp_media_get_information ()">gst_sdp_media_get_information</a> <span class="c_punctuation">()</span>
@@ -782,7 +781,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-connections-len" title="gst_sdp_media_connections_len ()">gst_sdp_media_connections_len</a> <span class="c_punctuation">()</span>
@@ -829,7 +828,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-bandwidths-len" title="gst_sdp_media_bandwidths_len ()">gst_sdp_media_bandwidths_len</a> <span class="c_punctuation">()</span>
@@ -891,7 +890,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-attributes-len" title="gst_sdp_media_attributes_len ()">gst_sdp_media_attributes_len</a> <span class="c_punctuation">()</span>
@@ -905,14 +904,14 @@
 </td>
 </tr>
 <tr>
-<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<td class="function_type">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-attribute-val" title="gst_sdp_media_get_attribute_val ()">gst_sdp_media_get_attribute_val</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<td class="function_type">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-attribute-val-n" title="gst_sdp_media_get_attribute_val_n ()">gst_sdp_media_get_attribute_val_n</a> <span class="c_punctuation">()</span>
@@ -1029,11 +1028,6 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="gst-plugins-base-libs-gstsdpmessage.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">
-</pre>
-</div>
-<div class="refsect1">
 <a name="gst-plugins-base-libs-gstsdpmessage.includes"></a><h2>Includes</h2>
 <pre class="synopsis">#include &lt;gst/sdp/gstsdpmessage.h&gt;
 </pre>
@@ -1041,7 +1035,7 @@
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstsdpmessage.description"></a><h2>Description</h2>
 <div class="refsect2">
-<a name="id-1.2.11.3.7.2"></a><p>
+<a name="id-1.2.11.3.6.2"></a><p>
 The GstSDPMessage helper functions makes it easy to parse and create SDP
 messages.
 </p>
@@ -1053,14 +1047,14 @@
 <a name="gst-sdp-connection-set"></a><h3>gst_sdp_connection_set ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_connection_set (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPConnection" title="GstSDPConnection"><span class="type">GstSDPConnection</span></a> *conn</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> *nettype</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> *addrtype</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#guint"><span class="type">guint</span></a> ttl</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> addr_number</code></em>);</pre>
+                        <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *nettype</code></em>,
+                        <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *addrtype</code></em>,
+                        <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *address</code></em>,
+                        <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> ttl</code></em>,
+                        <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> addr_number</code></em>);</pre>
 <p>Set the connection with the given parameters.</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.2.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.2.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1103,7 +1097,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.2.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.2.6"></a><h4>Returns</h4>
 <p> <em class="parameter"><code>GST_SDP_OK</code></em>
 .</p>
 <p></p>
@@ -1117,7 +1111,7 @@
 gst_sdp_connection_clear (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPConnection" title="GstSDPConnection"><span class="type">GstSDPConnection</span></a> *conn</code></em>);</pre>
 <p>Clear the connection.</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.3.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.3.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1132,7 +1126,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.3.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.3.6"></a><h4>Returns</h4>
 <p> <em class="parameter"><code>GST_SDP_OK</code></em>
 .</p>
 <p></p>
@@ -1144,12 +1138,12 @@
 <a name="gst-sdp-bandwidth-set"></a><h3>gst_sdp_bandwidth_set ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_bandwidth_set (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPBandwidth" title="GstSDPBandwidth"><span class="type">GstSDPBandwidth</span></a> *bw</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> *bwtype</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> bandwidth</code></em>);</pre>
+                       <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *bwtype</code></em>,
+                       <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> bandwidth</code></em>);</pre>
 <p>Set bandwidth information in <em class="parameter"><code>bw</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.4.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.4.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1176,7 +1170,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.4.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.4.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
 <p></p>
 </div>
@@ -1190,7 +1184,7 @@
 <p>Reset the bandwidth information in <em class="parameter"><code>bw</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.5.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.5.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1205,7 +1199,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.5.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.5.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
 <p></p>
 </div>
@@ -1216,16 +1210,16 @@
 <a name="gst-sdp-time-set"></a><h3>gst_sdp_time_set ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_time_set (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPTime" title="GstSDPTime"><span class="type">GstSDPTime</span></a> *t</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> *start</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> *stop</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> **repeat</code></em>);</pre>
+                  <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *start</code></em>,
+                  <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *stop</code></em>,
+                  <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **repeat</code></em>);</pre>
 <p>Set time information <em class="parameter"><code>start</code></em>
 , <em class="parameter"><code>stop</code></em>
  and <em class="parameter"><code>repeat</code></em>
  in <em class="parameter"><code>t</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.6.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.6.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1257,7 +1251,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.6.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.6.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
 <p></p>
 </div>
@@ -1271,7 +1265,7 @@
 <p>Reset the time information in <em class="parameter"><code>t</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.7.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.7.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1286,7 +1280,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.7.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.7.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
 <p></p>
 </div>
@@ -1297,12 +1291,12 @@
 <a name="gst-sdp-zone-set"></a><h3>gst_sdp_zone_set ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_zone_set (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPZone" title="GstSDPZone"><span class="type">GstSDPZone</span></a> *zone</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> *adj_time</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> *typed_time</code></em>);</pre>
+                  <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *adj_time</code></em>,
+                  <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *typed_time</code></em>);</pre>
 <p>Set zone information in <em class="parameter"><code>zone</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.8.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.8.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1329,7 +1323,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.8.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.8.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
 <p></p>
 </div>
@@ -1343,7 +1337,7 @@
 <p>Reset the zone information in <em class="parameter"><code>zone</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.9.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.9.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1358,7 +1352,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.9.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.9.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
 <p></p>
 </div>
@@ -1369,13 +1363,13 @@
 <a name="gst-sdp-attribute-set"></a><h3>gst_sdp_attribute_set ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_attribute_set (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPAttribute" title="GstSDPAttribute"><span class="type">GstSDPAttribute</span></a> *attr</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> *key</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> *value</code></em>);</pre>
+                       <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
+                       <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *value</code></em>);</pre>
 <p>Set the attribute with <em class="parameter"><code>key</code></em>
  and <em class="parameter"><code>value</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.10.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.10.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1402,7 +1396,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.10.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.10.6"></a><h4>Returns</h4>
 <p> <em class="parameter"><code>GST_SDP_OK</code></em>
 .</p>
 <p></p>
@@ -1416,7 +1410,7 @@
 gst_sdp_attribute_clear (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPAttribute" title="GstSDPAttribute"><span class="type">GstSDPAttribute</span></a> *attr</code></em>);</pre>
 <p>Clear the attribute.</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.11.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.11.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1431,7 +1425,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.11.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.11.6"></a><h4>Returns</h4>
 <p> <em class="parameter"><code>GST_SDP_OK</code></em>
 .</p>
 <p></p>
@@ -1446,7 +1440,7 @@
 <p>Allocate a new GstSDPMessage and store the result in <em class="parameter"><code>msg</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.12.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.12.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1461,7 +1455,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.12.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.12.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
 <p></p>
 </div>
@@ -1478,7 +1472,7 @@
 <p>When this function is invoked on newly allocated data (with malloc or on the
 stack), its contents should be set to 0 before calling this function.</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.13.6"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.13.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1493,7 +1487,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.13.7"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.13.7"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
 <p></p>
 </div>
@@ -1510,7 +1504,7 @@
  was allocated on the
 stack and initialized with <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-init" title="gst_sdp_message_init ()"><code class="function">gst_sdp_message_init()</code></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.14.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.14.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1525,7 +1519,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.14.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.14.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
 <p></p>
 </div>
@@ -1542,7 +1536,7 @@
  was dynamically
 allocated with <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-new" title="gst_sdp_message_new ()"><code class="function">gst_sdp_message_new()</code></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.15.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.15.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1557,7 +1551,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.15.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.15.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
 <p></p>
 </div>
@@ -1567,7 +1561,7 @@
 <a name="gst-sdp-message-parse-buffer"></a><h3>gst_sdp_message_parse_buffer ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_message_parse_buffer (<em class="parameter"><code>const <span class="type">guint8</span> *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>,
+                              <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>,
                               <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);</pre>
 <p>Parse the contents of <em class="parameter"><code>size</code></em>
  bytes pointed to by <em class="parameter"><code>data</code></em>
@@ -1575,7 +1569,7 @@
 <em class="parameter"><code>msg</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.16.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.16.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1602,7 +1596,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.16.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.16.6"></a><h4>Returns</h4>
 <p> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-OK:CAPS"><span class="type">GST_SDP_OK</span></a> on success.</p>
 <p></p>
 </div>
@@ -1610,12 +1604,12 @@
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-message-as-text"></a><h3>gst_sdp_message_as_text ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_sdp_message_as_text (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);</pre>
 <p>Convert the contents of <em class="parameter"><code>msg</code></em>
  to a text string.</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.17.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.17.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1630,7 +1624,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.17.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.17.6"></a><h4>Returns</h4>
 <p> A dynamically allocated string representing the SDP description.</p>
 <p></p>
 </div>
@@ -1639,7 +1633,7 @@
 <div class="refsect2">
 <a name="gst-sdp-message-parse-uri"></a><h3>gst_sdp_message_parse_uri ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
-gst_sdp_message_parse_uri (<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>,
+gst_sdp_message_parse_uri (<em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *uri</code></em>,
                            <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);</pre>
 <p>Parse the null-terminated <em class="parameter"><code>uri</code></em>
  and store the result in <em class="parameter"><code>msg</code></em>
@@ -1649,7 +1643,7 @@
 <p> where value is url encoded. This looslely resembles
  http://tools.ietf.org/html/draft-fujikawa-sdp-url-01</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.18.8"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.18.8"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1671,7 +1665,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.18.9"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.18.9"></a><h4>Returns</h4>
 <p> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-OK:CAPS"><span class="type">GST_SDP_OK</span></a> on success.</p>
 <p></p>
 </div>
@@ -1679,8 +1673,8 @@
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-message-as-uri"></a><h3>gst_sdp_message_as_uri ()</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_sdp_message_as_uri (<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> *scheme</code></em>,
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+gst_sdp_message_as_uri (<em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *scheme</code></em>,
                         <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);</pre>
 <p>Creates a uri from <em class="parameter"><code>msg</code></em>
  with the given <em class="parameter"><code>scheme</code></em>
@@ -1688,7 +1682,7 @@
 <p> @scheme:///[<span class="type">type</span>=value *[&amp;type=value]]</p>
 <p> Where each value is url encoded.</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.19.7"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.19.7"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1710,7 +1704,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.19.8"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.19.8"></a><h4>Returns</h4>
 <p> a uri for <em class="parameter"><code>msg</code></em>
 .</p>
 <p></p>
@@ -1719,14 +1713,14 @@
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-address-is-multicast"></a><h3>gst_sdp_address_is_multicast ()</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_sdp_address_is_multicast (<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> *nettype</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> *addrtype</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> *addr</code></em>);</pre>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gst_sdp_address_is_multicast (<em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *nettype</code></em>,
+                              <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *addrtype</code></em>,
+                              <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *addr</code></em>);</pre>
 <p>Check if the given <em class="parameter"><code>addr</code></em>
  is a multicast address.</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.20.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.20.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1753,7 +1747,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.20.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.20.6"></a><h4>Returns</h4>
 <p> TRUE when <em class="parameter"><code>addr</code></em>
 is multicast.</p>
 <p></p>
@@ -1762,12 +1756,12 @@
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-message-get-version"></a><h3>gst_sdp_message_get_version ()</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> *
+<pre class="programlisting">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_sdp_message_get_version (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);</pre>
 <p>Get the version in <em class="parameter"><code>msg</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.21.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.21.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1782,7 +1776,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.21.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.21.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
 <p></p>
 </div>
@@ -1792,11 +1786,11 @@
 <a name="gst-sdp-message-set-version"></a><h3>gst_sdp_message_set_version ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_message_set_version (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
-                             <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *version</code></em>);</pre>
+                             <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *version</code></em>);</pre>
 <p>Set the version in <em class="parameter"><code>msg</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.22.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.22.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1818,7 +1812,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.22.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.22.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
 <p></p>
 </div>
@@ -1831,7 +1825,7 @@
 <p>Get the origin of <em class="parameter"><code>msg</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.23.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.23.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1846,7 +1840,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.23.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.23.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPOrigin" title="GstSDPOrigin"><span class="type">GstSDPOrigin</span></a>. The result remains valid as long as <em class="parameter"><code>msg</code></em>
 is valid.</p>
 <p></p>
@@ -1857,16 +1851,16 @@
 <a name="gst-sdp-message-set-origin"></a><h3>gst_sdp_message_set_origin ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_message_set_origin (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
-                            <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *username</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> *sess_id</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> *sess_version</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> *nettype</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> *addrtype</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> *addr</code></em>);</pre>
+                            <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *username</code></em>,
+                            <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *sess_id</code></em>,
+                            <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *sess_version</code></em>,
+                            <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *nettype</code></em>,
+                            <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *addrtype</code></em>,
+                            <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *addr</code></em>);</pre>
 <p>Configure the SDP origin in <em class="parameter"><code>msg</code></em>
  with the given parameters.</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.24.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.24.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1913,7 +1907,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.24.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.24.6"></a><h4>Returns</h4>
 <p> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-OK:CAPS"><span class="type">GST_SDP_OK</span></a>.</p>
 <p></p>
 </div>
@@ -1921,12 +1915,12 @@
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-message-get-session-name"></a><h3>gst_sdp_message_get_session_name ()</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> *
+<pre class="programlisting">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_sdp_message_get_session_name (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);</pre>
 <p>Get the session name in <em class="parameter"><code>msg</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.25.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.25.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1941,7 +1935,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.25.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.25.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
 <p></p>
 </div>
@@ -1951,11 +1945,11 @@
 <a name="gst-sdp-message-set-session-name"></a><h3>gst_sdp_message_set_session_name ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_message_set_session_name (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
-                                  <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *session_name</code></em>);</pre>
+                                  <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *session_name</code></em>);</pre>
 <p>Set the session name in <em class="parameter"><code>msg</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.26.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.26.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1977,7 +1971,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.26.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.26.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
 <p></p>
 </div>
@@ -1985,12 +1979,12 @@
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-message-get-information"></a><h3>gst_sdp_message_get_information ()</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> *
+<pre class="programlisting">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_sdp_message_get_information (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);</pre>
 <p>Get the information in <em class="parameter"><code>msg</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.27.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.27.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2005,7 +1999,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.27.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.27.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
 <p></p>
 </div>
@@ -2015,11 +2009,11 @@
 <a name="gst-sdp-message-set-information"></a><h3>gst_sdp_message_set_information ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_message_set_information (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
-                                 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *information</code></em>);</pre>
+                                 <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *information</code></em>);</pre>
 <p>Set the information in <em class="parameter"><code>msg</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.28.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.28.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2041,7 +2035,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.28.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.28.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
 <p></p>
 </div>
@@ -2049,12 +2043,12 @@
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-message-get-uri"></a><h3>gst_sdp_message_get_uri ()</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> *
+<pre class="programlisting">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_sdp_message_get_uri (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);</pre>
 <p>Get the URI in <em class="parameter"><code>msg</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.29.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.29.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2069,7 +2063,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.29.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.29.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
 <p></p>
 </div>
@@ -2079,11 +2073,11 @@
 <a name="gst-sdp-message-set-uri"></a><h3>gst_sdp_message_set_uri ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_message_set_uri (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
-                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *uri</code></em>);</pre>
+                         <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *uri</code></em>);</pre>
 <p>Set the URI in <em class="parameter"><code>msg</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.30.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.30.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2105,7 +2099,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.30.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.30.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
 <p></p>
 </div>
@@ -2113,12 +2107,12 @@
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-message-emails-len"></a><h3>gst_sdp_message_emails_len ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_sdp_message_emails_len (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);</pre>
 <p>Get the number of emails in <em class="parameter"><code>msg</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.31.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.31.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2133,7 +2127,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.31.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.31.6"></a><h4>Returns</h4>
 <p> the number of emails in <em class="parameter"><code>msg</code></em>
 .</p>
 <p></p>
@@ -2142,14 +2136,14 @@
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-message-get-email"></a><h3>gst_sdp_message_get_email ()</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> *
+<pre class="programlisting">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_sdp_message_get_email (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
-                           <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
+                           <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
 <p>Get the email with number <em class="parameter"><code>idx</code></em>
  from <em class="parameter"><code>msg</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.32.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.32.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2171,7 +2165,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.32.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.32.6"></a><h4>Returns</h4>
 <p> the email at position <em class="parameter"><code>idx</code></em>
 .</p>
 <p></p>
@@ -2182,8 +2176,8 @@
 <a name="gst-sdp-message-insert-email"></a><h3>gst_sdp_message_insert_email ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_message_insert_email (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
-                              <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> idx</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> *email</code></em>);</pre>
+                              <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> idx</code></em>,
+                              <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *email</code></em>);</pre>
 <p>Insert <em class="parameter"><code>email</code></em>
  into the array of emails in <em class="parameter"><code>msg</code></em>
  at index <em class="parameter"><code>idx</code></em>
@@ -2191,7 +2185,7 @@
 When -1 is given as <em class="parameter"><code>idx</code></em>
 , the email is inserted at the end.</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.33.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.33.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2218,7 +2212,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.33.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.33.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
 <p></p>
 </div>
@@ -2229,14 +2223,14 @@
 <a name="gst-sdp-message-replace-email"></a><h3>gst_sdp_message_replace_email ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_message_replace_email (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
-                               <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</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> *email</code></em>);</pre>
+                               <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>,
+                               <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *email</code></em>);</pre>
 <p>Replace the email in <em class="parameter"><code>msg</code></em>
  at index <em class="parameter"><code>idx</code></em>
  with <em class="parameter"><code>email</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.34.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.34.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2263,7 +2257,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.34.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.34.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
 <p></p>
 </div>
@@ -2274,12 +2268,12 @@
 <a name="gst-sdp-message-remove-email"></a><h3>gst_sdp_message_remove_email ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_message_remove_email (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
-                              <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
+                              <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
 <p>Remove the email in <em class="parameter"><code>msg</code></em>
  at index <em class="parameter"><code>idx</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.35.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.35.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2301,7 +2295,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.35.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.35.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
 <p></p>
 </div>
@@ -2312,12 +2306,12 @@
 <a name="gst-sdp-message-add-email"></a><h3>gst_sdp_message_add_email ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_message_add_email (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
-                           <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *email</code></em>);</pre>
+                           <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *email</code></em>);</pre>
 <p>Add <em class="parameter"><code>email</code></em>
  to the list of emails in <em class="parameter"><code>msg</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.36.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.36.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2339,7 +2333,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.36.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.36.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
 <p></p>
 </div>
@@ -2347,12 +2341,12 @@
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-message-phones-len"></a><h3>gst_sdp_message_phones_len ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_sdp_message_phones_len (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);</pre>
 <p>Get the number of phones in <em class="parameter"><code>msg</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.37.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.37.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2367,7 +2361,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.37.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.37.6"></a><h4>Returns</h4>
 <p> the number of phones in <em class="parameter"><code>msg</code></em>
 .</p>
 <p></p>
@@ -2376,14 +2370,14 @@
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-message-get-phone"></a><h3>gst_sdp_message_get_phone ()</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> *
+<pre class="programlisting">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_sdp_message_get_phone (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
-                           <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
+                           <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
 <p>Get the phone with number <em class="parameter"><code>idx</code></em>
  from <em class="parameter"><code>msg</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.38.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.38.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2405,7 +2399,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.38.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.38.6"></a><h4>Returns</h4>
 <p> the phone at position <em class="parameter"><code>idx</code></em>
 .</p>
 <p></p>
@@ -2416,8 +2410,8 @@
 <a name="gst-sdp-message-insert-phone"></a><h3>gst_sdp_message_insert_phone ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_message_insert_phone (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
-                              <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> idx</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> *phone</code></em>);</pre>
+                              <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> idx</code></em>,
+                              <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *phone</code></em>);</pre>
 <p>Insert <em class="parameter"><code>phone</code></em>
  into the array of phone numbers in <em class="parameter"><code>msg</code></em>
  at index <em class="parameter"><code>idx</code></em>
@@ -2425,7 +2419,7 @@
 When -1 is given as <em class="parameter"><code>idx</code></em>
 , the phone is inserted at the end.</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.39.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.39.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2452,7 +2446,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.39.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.39.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
 <p></p>
 </div>
@@ -2463,14 +2457,14 @@
 <a name="gst-sdp-message-replace-phone"></a><h3>gst_sdp_message_replace_phone ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_message_replace_phone (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
-                               <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</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> *phone</code></em>);</pre>
+                               <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>,
+                               <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *phone</code></em>);</pre>
 <p>Replace the phone number in <em class="parameter"><code>msg</code></em>
  at index <em class="parameter"><code>idx</code></em>
  with <em class="parameter"><code>phone</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.40.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.40.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2497,7 +2491,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.40.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.40.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
 <p></p>
 </div>
@@ -2508,12 +2502,12 @@
 <a name="gst-sdp-message-remove-phone"></a><h3>gst_sdp_message_remove_phone ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_message_remove_phone (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
-                              <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
+                              <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
 <p>Remove the phone number in <em class="parameter"><code>msg</code></em>
  at index <em class="parameter"><code>idx</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.41.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.41.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2535,7 +2529,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.41.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.41.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
 <p></p>
 </div>
@@ -2546,12 +2540,12 @@
 <a name="gst-sdp-message-add-phone"></a><h3>gst_sdp_message_add_phone ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_message_add_phone (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
-                           <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *phone</code></em>);</pre>
+                           <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *phone</code></em>);</pre>
 <p>Add <em class="parameter"><code>phone</code></em>
  to the list of phones in <em class="parameter"><code>msg</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.42.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.42.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2573,7 +2567,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.42.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.42.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
 <p></p>
 </div>
@@ -2586,7 +2580,7 @@
 <p>Get the connection of <em class="parameter"><code>msg</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.43.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.43.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2601,7 +2595,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.43.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.43.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPConnection" title="GstSDPConnection"><span class="type">GstSDPConnection</span></a>. The result remains valid as long as <em class="parameter"><code>msg</code></em>
 is valid.</p>
 <p></p>
@@ -2612,15 +2606,15 @@
 <a name="gst-sdp-message-set-connection"></a><h3>gst_sdp_message_set_connection ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_message_set_connection (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
-                                <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *nettype</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> *addrtype</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#guint"><span class="type">guint</span></a> ttl</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> addr_number</code></em>);</pre>
+                                <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *nettype</code></em>,
+                                <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *addrtype</code></em>,
+                                <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *address</code></em>,
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> ttl</code></em>,
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> addr_number</code></em>);</pre>
 <p>Configure the SDP connection in <em class="parameter"><code>msg</code></em>
  with the given parameters.</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.44.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.44.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2663,7 +2657,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.44.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.44.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
 <p></p>
 </div>
@@ -2671,12 +2665,12 @@
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-message-bandwidths-len"></a><h3>gst_sdp_message_bandwidths_len ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_sdp_message_bandwidths_len (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);</pre>
 <p>Get the number of bandwidth information in <em class="parameter"><code>msg</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.45.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.45.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2691,7 +2685,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.45.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.45.6"></a><h4>Returns</h4>
 <p> the number of bandwidth information in <em class="parameter"><code>msg</code></em>
 .</p>
 <p></p>
@@ -2702,12 +2696,12 @@
 <a name="gst-sdp-message-get-bandwidth"></a><h3>gst_sdp_message_get_bandwidth ()</h3>
 <pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPBandwidth" title="GstSDPBandwidth"><span class="returnvalue">GstSDPBandwidth</span></a> *
 gst_sdp_message_get_bandwidth (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
-                               <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
+                               <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
 <p>Get the bandwidth at index <em class="parameter"><code>idx</code></em>
  from <em class="parameter"><code>msg</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.46.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.46.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2729,7 +2723,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.46.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.46.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPBandwidth" title="GstSDPBandwidth"><span class="type">GstSDPBandwidth</span></a>.</p>
 <p></p>
 </div>
@@ -2739,7 +2733,7 @@
 <a name="gst-sdp-message-insert-bandwidth"></a><h3>gst_sdp_message_insert_bandwidth ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_message_insert_bandwidth (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
-                                  <em class="parameter"><code><a href="http://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 href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> idx</code></em>,
                                   <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPBandwidth" title="GstSDPBandwidth"><span class="type">GstSDPBandwidth</span></a> *bw</code></em>);</pre>
 <p>Insert bandwidth parameters into the array of bandwidths in <em class="parameter"><code>msg</code></em>
 
@@ -2748,7 +2742,7 @@
 When -1 is given as <em class="parameter"><code>idx</code></em>
 , the bandwidth is inserted at the end.</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.47.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.47.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2775,7 +2769,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.47.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.47.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
 <p></p>
 </div>
@@ -2786,14 +2780,14 @@
 <a name="gst-sdp-message-replace-bandwidth"></a><h3>gst_sdp_message_replace_bandwidth ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_message_replace_bandwidth (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
-                                   <em class="parameter"><code><a href="http://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="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>,
                                    <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPBandwidth" title="GstSDPBandwidth"><span class="type">GstSDPBandwidth</span></a> *bw</code></em>);</pre>
 <p>Replace the bandwidth information in <em class="parameter"><code>msg</code></em>
  at index <em class="parameter"><code>idx</code></em>
  with <em class="parameter"><code>bw</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.48.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.48.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2820,7 +2814,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.48.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.48.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
 <p></p>
 </div>
@@ -2831,12 +2825,12 @@
 <a name="gst-sdp-message-remove-bandwidth"></a><h3>gst_sdp_message_remove_bandwidth ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_message_remove_bandwidth (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
-                                  <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
+                                  <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
 <p>Remove the bandwidth information in <em class="parameter"><code>msg</code></em>
  at index <em class="parameter"><code>idx</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.49.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.49.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2858,7 +2852,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.49.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.49.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
 <p></p>
 </div>
@@ -2869,12 +2863,12 @@
 <a name="gst-sdp-message-add-bandwidth"></a><h3>gst_sdp_message_add_bandwidth ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_message_add_bandwidth (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
-                               <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *bwtype</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> bandwidth</code></em>);</pre>
+                               <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *bwtype</code></em>,
+                               <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> bandwidth</code></em>);</pre>
 <p>Add the specified bandwidth information to <em class="parameter"><code>msg</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.50.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.50.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2901,7 +2895,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.50.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.50.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
 <p></p>
 </div>
@@ -2909,12 +2903,12 @@
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-message-times-len"></a><h3>gst_sdp_message_times_len ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_sdp_message_times_len (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);</pre>
 <p>Get the number of time information entries in <em class="parameter"><code>msg</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.51.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.51.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2929,7 +2923,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.51.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.51.6"></a><h4>Returns</h4>
 <p> the number of time information entries in <em class="parameter"><code>msg</code></em>
 .</p>
 <p></p>
@@ -2940,12 +2934,12 @@
 <a name="gst-sdp-message-get-time"></a><h3>gst_sdp_message_get_time ()</h3>
 <pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPTime" title="GstSDPTime"><span class="returnvalue">GstSDPTime</span></a> *
 gst_sdp_message_get_time (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
-                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
+                          <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
 <p>Get time information with index <em class="parameter"><code>idx</code></em>
  from <em class="parameter"><code>msg</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.52.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.52.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2967,7 +2961,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.52.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.52.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPTime" title="GstSDPTime"><span class="type">GstSDPTime</span></a>.</p>
 <p></p>
 </div>
@@ -2977,7 +2971,7 @@
 <a name="gst-sdp-message-insert-time"></a><h3>gst_sdp_message_insert_time ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_message_insert_time (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
-                             <em class="parameter"><code><a href="http://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 href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> idx</code></em>,
                              <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPTime" title="GstSDPTime"><span class="type">GstSDPTime</span></a> *t</code></em>);</pre>
 <p>Insert time parameters into the array of times in <em class="parameter"><code>msg</code></em>
 
@@ -2986,7 +2980,7 @@
 When -1 is given as <em class="parameter"><code>idx</code></em>
 , the times are inserted at the end.</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.53.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.53.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3013,7 +3007,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.53.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.53.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
 <p></p>
 </div>
@@ -3024,14 +3018,14 @@
 <a name="gst-sdp-message-replace-time"></a><h3>gst_sdp_message_replace_time ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_message_replace_time (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
-                              <em class="parameter"><code><a href="http://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="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>,
                               <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPTime" title="GstSDPTime"><span class="type">GstSDPTime</span></a> *t</code></em>);</pre>
 <p>Replace the time information in <em class="parameter"><code>msg</code></em>
  at index <em class="parameter"><code>idx</code></em>
  with <em class="parameter"><code>t</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.54.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.54.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3058,7 +3052,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.54.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.54.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
 <p></p>
 </div>
@@ -3069,12 +3063,12 @@
 <a name="gst-sdp-message-remove-time"></a><h3>gst_sdp_message_remove_time ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_message_remove_time (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
-                             <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
+                             <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
 <p>Remove the time information in <em class="parameter"><code>msg</code></em>
  at index <em class="parameter"><code>idx</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.55.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.55.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3096,7 +3090,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.55.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.55.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
 <p></p>
 </div>
@@ -3107,15 +3101,15 @@
 <a name="gst-sdp-message-add-time"></a><h3>gst_sdp_message_add_time ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_message_add_time (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
-                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *start</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> *stop</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> **repeat</code></em>);</pre>
+                          <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *start</code></em>,
+                          <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *stop</code></em>,
+                          <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **repeat</code></em>);</pre>
 <p>Add time information <em class="parameter"><code>start</code></em>
  and <em class="parameter"><code>stop</code></em>
  to <em class="parameter"><code>msg</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.56.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.56.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3147,7 +3141,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.56.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.56.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
 <p></p>
 </div>
@@ -3155,12 +3149,12 @@
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-message-zones-len"></a><h3>gst_sdp_message_zones_len ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_sdp_message_zones_len (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);</pre>
 <p>Get the number of time zone information entries in <em class="parameter"><code>msg</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.57.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.57.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3175,7 +3169,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.57.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.57.6"></a><h4>Returns</h4>
 <p> the number of time zone information entries in <em class="parameter"><code>msg</code></em>
 .</p>
 <p></p>
@@ -3186,12 +3180,12 @@
 <a name="gst-sdp-message-get-zone"></a><h3>gst_sdp_message_get_zone ()</h3>
 <pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPZone" title="GstSDPZone"><span class="returnvalue">GstSDPZone</span></a> *
 gst_sdp_message_get_zone (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
-                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
+                          <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
 <p>Get time zone information with index <em class="parameter"><code>idx</code></em>
  from <em class="parameter"><code>msg</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.58.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.58.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3213,7 +3207,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.58.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.58.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPZone" title="GstSDPZone"><span class="type">GstSDPZone</span></a>.</p>
 <p></p>
 </div>
@@ -3223,7 +3217,7 @@
 <a name="gst-sdp-message-insert-zone"></a><h3>gst_sdp_message_insert_zone ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_message_insert_zone (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
-                             <em class="parameter"><code><a href="http://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 href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> idx</code></em>,
                              <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPZone" title="GstSDPZone"><span class="type">GstSDPZone</span></a> *zone</code></em>);</pre>
 <p>Insert zone parameters into the array of zones in <em class="parameter"><code>msg</code></em>
 
@@ -3232,7 +3226,7 @@
 When -1 is given as <em class="parameter"><code>idx</code></em>
 , the zone is inserted at the end.</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.59.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.59.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3256,7 +3250,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.59.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.59.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
 <p></p>
 </div>
@@ -3267,14 +3261,14 @@
 <a name="gst-sdp-message-replace-zone"></a><h3>gst_sdp_message_replace_zone ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_message_replace_zone (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
-                              <em class="parameter"><code><a href="http://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="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>,
                               <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPZone" title="GstSDPZone"><span class="type">GstSDPZone</span></a> *zone</code></em>);</pre>
 <p>Replace the zone information in <em class="parameter"><code>msg</code></em>
  at index <em class="parameter"><code>idx</code></em>
  with <em class="parameter"><code>zone</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.60.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.60.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3301,7 +3295,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.60.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.60.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
 <p></p>
 </div>
@@ -3312,12 +3306,12 @@
 <a name="gst-sdp-message-remove-zone"></a><h3>gst_sdp_message_remove_zone ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_message_remove_zone (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
-                             <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
+                             <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
 <p>Remove the zone information in <em class="parameter"><code>msg</code></em>
  at index <em class="parameter"><code>idx</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.61.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.61.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3339,7 +3333,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.61.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.61.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
 <p></p>
 </div>
@@ -3350,12 +3344,12 @@
 <a name="gst-sdp-message-add-zone"></a><h3>gst_sdp_message_add_zone ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_message_add_zone (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
-                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *adj_time</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> *typed_time</code></em>);</pre>
+                          <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *adj_time</code></em>,
+                          <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *typed_time</code></em>);</pre>
 <p>Add time zone information to <em class="parameter"><code>msg</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.62.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.62.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3382,7 +3376,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.62.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.62.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
 <p></p>
 </div>
@@ -3395,7 +3389,7 @@
 <p>Get the encryption information from <em class="parameter"><code>msg</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.63.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.63.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3410,7 +3404,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.63.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.63.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPKey" title="GstSDPKey"><span class="type">GstSDPKey</span></a>.</p>
 <p></p>
 </div>
@@ -3420,12 +3414,12 @@
 <a name="gst-sdp-message-set-key"></a><h3>gst_sdp_message_set_key ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_message_set_key (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
-                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</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> *data</code></em>);</pre>
+                         <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *type</code></em>,
+                         <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *data</code></em>);</pre>
 <p>Adds the encryption information to <em class="parameter"><code>msg</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.64.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.64.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3452,7 +3446,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.64.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.64.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
 <p></p>
 </div>
@@ -3460,12 +3454,12 @@
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-message-attributes-len"></a><h3>gst_sdp_message_attributes_len ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_sdp_message_attributes_len (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);</pre>
 <p>Get the number of attributes in <em class="parameter"><code>msg</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.65.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.65.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3480,7 +3474,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.65.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.65.6"></a><h4>Returns</h4>
 <p> the number of attributes in <em class="parameter"><code>msg</code></em>
 .</p>
 <p></p>
@@ -3491,12 +3485,12 @@
 <a name="gst-sdp-message-get-attribute"></a><h3>gst_sdp_message_get_attribute ()</h3>
 <pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPAttribute" title="GstSDPAttribute"><span class="returnvalue">GstSDPAttribute</span></a> *
 gst_sdp_message_get_attribute (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
-                               <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
+                               <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
 <p>Get the attribute at position <em class="parameter"><code>idx</code></em>
  in <em class="parameter"><code>msg</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.66.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.66.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3518,7 +3512,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.66.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.66.6"></a><h4>Returns</h4>
 <p> the <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPAttribute" title="GstSDPAttribute"><span class="type">GstSDPAttribute</span></a> at position <em class="parameter"><code>idx</code></em>
 .</p>
 <p></p>
@@ -3527,14 +3521,14 @@
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-message-get-attribute-val"></a><h3>gst_sdp_message_get_attribute_val ()</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> *
+<pre class="programlisting">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_sdp_message_get_attribute_val (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
-                                   <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>);</pre>
+                                   <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>);</pre>
 <p>Get the first attribute with key <em class="parameter"><code>key</code></em>
  in <em class="parameter"><code>msg</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.67.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.67.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3556,7 +3550,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.67.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.67.6"></a><h4>Returns</h4>
 <p> the attribute value of the first attribute with <em class="parameter"><code>key</code></em>
 .</p>
 <p></p>
@@ -3565,16 +3559,16 @@
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-message-get-attribute-val-n"></a><h3>gst_sdp_message_get_attribute_val_n ()</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> *
+<pre class="programlisting">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_sdp_message_get_attribute_val_n (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
-                                     <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</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> nth</code></em>);</pre>
+                                     <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
+                                     <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nth</code></em>);</pre>
 <p>Get the <em class="parameter"><code>nth</code></em>
  attribute with key <em class="parameter"><code>key</code></em>
  in <em class="parameter"><code>msg</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.68.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.68.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3601,7 +3595,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.68.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.68.6"></a><h4>Returns</h4>
 <p> the attribute value of the <em class="parameter"><code>nth</code></em>
 attribute with <em class="parameter"><code>key</code></em>
 .</p>
@@ -3613,7 +3607,7 @@
 <a name="gst-sdp-message-insert-attribute"></a><h3>gst_sdp_message_insert_attribute ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_message_insert_attribute (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
-                                  <em class="parameter"><code><a href="http://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 href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> idx</code></em>,
                                   <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPAttribute" title="GstSDPAttribute"><span class="type">GstSDPAttribute</span></a> *attr</code></em>);</pre>
 <p>Insert attribute into the array of attributes in <em class="parameter"><code>msg</code></em>
 
@@ -3622,7 +3616,7 @@
 When -1 is given as <em class="parameter"><code>idx</code></em>
 , the attribute is inserted at the end.</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.69.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.69.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3649,7 +3643,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.69.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.69.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
 <p></p>
 </div>
@@ -3660,14 +3654,14 @@
 <a name="gst-sdp-message-replace-attribute"></a><h3>gst_sdp_message_replace_attribute ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_message_replace_attribute (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
-                                   <em class="parameter"><code><a href="http://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="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>,
                                    <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPAttribute" title="GstSDPAttribute"><span class="type">GstSDPAttribute</span></a> *attr</code></em>);</pre>
 <p>Replace the attribute in <em class="parameter"><code>msg</code></em>
  at index <em class="parameter"><code>idx</code></em>
  with <em class="parameter"><code>attr</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.70.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.70.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3694,7 +3688,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.70.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.70.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
 <p></p>
 </div>
@@ -3705,12 +3699,12 @@
 <a name="gst-sdp-message-remove-attribute"></a><h3>gst_sdp_message_remove_attribute ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_message_remove_attribute (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
-                                  <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
+                                  <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
 <p>Remove the attribute in <em class="parameter"><code>msg</code></em>
  at index <em class="parameter"><code>idx</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.71.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.71.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3732,7 +3726,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.71.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.71.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
 <p></p>
 </div>
@@ -3743,14 +3737,14 @@
 <a name="gst-sdp-message-add-attribute"></a><h3>gst_sdp_message_add_attribute ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_message_add_attribute (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
-                               <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</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> *value</code></em>);</pre>
+                               <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
+                               <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *value</code></em>);</pre>
 <p>Add the attribute with <em class="parameter"><code>key</code></em>
  and <em class="parameter"><code>value</code></em>
  to <em class="parameter"><code>msg</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.72.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.72.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3777,7 +3771,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.72.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.72.6"></a><h4>Returns</h4>
 <p> <em class="parameter"><code>GST_SDP_OK</code></em>
 .</p>
 <p></p>
@@ -3786,12 +3780,12 @@
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-message-medias-len"></a><h3>gst_sdp_message_medias_len ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_sdp_message_medias_len (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);</pre>
 <p>Get the number of media descriptions in <em class="parameter"><code>msg</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.73.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.73.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3806,7 +3800,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.73.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.73.6"></a><h4>Returns</h4>
 <p> the number of media descriptions in <em class="parameter"><code>msg</code></em>
 .</p>
 <p></p>
@@ -3817,12 +3811,12 @@
 <a name="gst-sdp-message-get-media"></a><h3>gst_sdp_message_get_media ()</h3>
 <pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="returnvalue">GstSDPMedia</span></a> *
 gst_sdp_message_get_media (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
-                           <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
+                           <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
 <p>Get the media description at index <em class="parameter"><code>idx</code></em>
  in <em class="parameter"><code>msg</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.74.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.74.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3844,7 +3838,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.74.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.74.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a>.</p>
 <p></p>
 </div>
@@ -3863,7 +3857,7 @@
  will have to be reinitialized with
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-init" title="gst_sdp_media_init ()"><code class="function">gst_sdp_media_init()</code></a> before it can be used again.</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.75.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.75.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3885,7 +3879,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.75.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.75.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
 <p></p>
 </div>
@@ -3898,7 +3892,7 @@
 <p>Dump the parsed contents of <em class="parameter"><code>msg</code></em>
  to stdout.</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.76.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.76.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3913,7 +3907,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.76.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.76.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
 <p></p>
 </div>
@@ -3926,7 +3920,7 @@
 <p>Allocate a new GstSDPMedia and store the result in <em class="parameter"><code>media</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.77.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.77.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3941,7 +3935,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.77.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.77.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
 <p></p>
 </div>
@@ -3958,7 +3952,7 @@
 <p>When this function is invoked on newly allocated data (with malloc or on the
 stack), its contents should be set to 0 before calling this function.</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.78.6"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.78.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3973,7 +3967,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.78.7"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.78.7"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
 <p></p>
 </div>
@@ -3990,7 +3984,7 @@
  was allocated on the
 stack and initialized with <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-init" title="gst_sdp_media_init ()"><code class="function">gst_sdp_media_init()</code></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.79.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.79.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -4005,7 +3999,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.79.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.79.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
 <p></p>
 </div>
@@ -4022,7 +4016,7 @@
  was dynamically
 allocated with <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-new" title="gst_sdp_media_new ()"><code class="function">gst_sdp_media_new()</code></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.80.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.80.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -4037,7 +4031,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.80.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.80.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
 <p></p>
 </div>
@@ -4045,12 +4039,12 @@
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-media-as-text"></a><h3>gst_sdp_media_as_text ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_sdp_media_as_text (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);</pre>
 <p>Convert the contents of <em class="parameter"><code>media</code></em>
  to a text string.</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.81.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.81.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -4065,7 +4059,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.81.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.81.6"></a><h4>Returns</h4>
 <p> A dynamically allocated string representing the media.</p>
 <p></p>
 </div>
@@ -4073,12 +4067,12 @@
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-media-get-media"></a><h3>gst_sdp_media_get_media ()</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> *
+<pre class="programlisting">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_sdp_media_get_media (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);</pre>
 <p>Get the media description of <em class="parameter"><code>media</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.82.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.82.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -4093,7 +4087,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.82.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.82.6"></a><h4>Returns</h4>
 <p> the media description.</p>
 <p></p>
 </div>
@@ -4103,12 +4097,12 @@
 <a name="gst-sdp-media-set-media"></a><h3>gst_sdp_media_set_media ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_media_set_media (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
-                         <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> *med</code></em>);</pre>
+                         <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *med</code></em>);</pre>
 <p>Set the media description of <em class="parameter"><code>media</code></em>
  to <em class="parameter"><code>med</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.83.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.83.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -4130,7 +4124,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.83.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.83.6"></a><h4>Returns</h4>
 <p> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-OK:CAPS"><span class="type">GST_SDP_OK</span></a>.</p>
 <p></p>
 </div>
@@ -4138,12 +4132,12 @@
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-media-get-port"></a><h3>gst_sdp_media_get_port ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_sdp_media_get_port (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);</pre>
 <p>Get the port number for <em class="parameter"><code>media</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.84.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.84.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -4158,7 +4152,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.84.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.84.6"></a><h4>Returns</h4>
 <p> the port number of <em class="parameter"><code>media</code></em>
 .</p>
 <p></p>
@@ -4167,12 +4161,12 @@
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-media-get-num-ports"></a><h3>gst_sdp_media_get_num_ports ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_sdp_media_get_num_ports (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);</pre>
 <p>Get the number of ports for <em class="parameter"><code>media</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.85.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.85.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -4187,7 +4181,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.85.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.85.6"></a><h4>Returns</h4>
 <p> the number of ports for <em class="parameter"><code>media</code></em>
 .</p>
 <p></p>
@@ -4198,12 +4192,12 @@
 <a name="gst-sdp-media-set-port-info"></a><h3>gst_sdp_media_set_port_info ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_media_set_port_info (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
-                             <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> port</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> num_ports</code></em>);</pre>
+                             <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> port</code></em>,
+                             <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> num_ports</code></em>);</pre>
 <p>Set the port information in <em class="parameter"><code>media</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.86.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.86.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -4230,7 +4224,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.86.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.86.6"></a><h4>Returns</h4>
 <p> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-OK:CAPS"><span class="type">GST_SDP_OK</span></a>.</p>
 <p></p>
 </div>
@@ -4238,12 +4232,12 @@
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-media-get-proto"></a><h3>gst_sdp_media_get_proto ()</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> *
+<pre class="programlisting">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_sdp_media_get_proto (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);</pre>
 <p>Get the transport protocol of <em class="parameter"><code>media</code></em>
 </p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.87.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.87.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -4258,7 +4252,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.87.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.87.6"></a><h4>Returns</h4>
 <p> the transport protocol of <em class="parameter"><code>media</code></em>
 .</p>
 <p></p>
@@ -4269,12 +4263,12 @@
 <a name="gst-sdp-media-set-proto"></a><h3>gst_sdp_media_set_proto ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_media_set_proto (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
-                         <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> *proto</code></em>);</pre>
+                         <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *proto</code></em>);</pre>
 <p>Set the media transport protocol of <em class="parameter"><code>media</code></em>
  to <em class="parameter"><code>proto</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.88.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.88.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -4296,7 +4290,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.88.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.88.6"></a><h4>Returns</h4>
 <p> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-OK:CAPS"><span class="type">GST_SDP_OK</span></a>.</p>
 <p></p>
 </div>
@@ -4304,12 +4298,12 @@
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-media-formats-len"></a><h3>gst_sdp_media_formats_len ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_sdp_media_formats_len (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);</pre>
 <p>Get the number of formats in <em class="parameter"><code>media</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.89.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.89.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -4324,7 +4318,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.89.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.89.6"></a><h4>Returns</h4>
 <p> the number of formats in <em class="parameter"><code>media</code></em>
 .</p>
 <p></p>
@@ -4333,14 +4327,14 @@
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-media-get-format"></a><h3>gst_sdp_media_get_format ()</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> *
+<pre class="programlisting">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_sdp_media_get_format (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
-                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
+                          <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
 <p>Get the format information at position <em class="parameter"><code>idx</code></em>
  in <em class="parameter"><code>media</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.90.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.90.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -4362,7 +4356,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.90.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.90.6"></a><h4>Returns</h4>
 <p> the format at position <em class="parameter"><code>idx</code></em>
 .</p>
 <p></p>
@@ -4373,15 +4367,15 @@
 <a name="gst-sdp-media-insert-format"></a><h3>gst_sdp_media_insert_format ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_media_insert_format (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
-                             <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>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *format</code></em>);</pre>
+                             <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> idx</code></em>,
+                             <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *format</code></em>);</pre>
 <p>Insert the format information to <em class="parameter"><code>media</code></em>
  at <em class="parameter"><code>idx</code></em>
 . When <em class="parameter"><code>idx</code></em>
  is -1,
 the format is appended.</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.91.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.91.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -4408,7 +4402,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.91.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.91.6"></a><h4>Returns</h4>
 <p> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-OK:CAPS"><span class="type">GST_SDP_OK</span></a>.</p>
 <p></p>
 </div>
@@ -4419,14 +4413,14 @@
 <a name="gst-sdp-media-replace-format"></a><h3>gst_sdp_media_replace_format ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_media_replace_format (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
-                              <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>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *format</code></em>);</pre>
+                              <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>,
+                              <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *format</code></em>);</pre>
 <p>Replace the format information in <em class="parameter"><code>media</code></em>
  at <em class="parameter"><code>idx</code></em>
  with <em class="parameter"><code>format</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.92.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.92.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -4453,7 +4447,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.92.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.92.6"></a><h4>Returns</h4>
 <p> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-OK:CAPS"><span class="type">GST_SDP_OK</span></a>.</p>
 <p></p>
 </div>
@@ -4464,12 +4458,12 @@
 <a name="gst-sdp-media-remove-format"></a><h3>gst_sdp_media_remove_format ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_media_remove_format (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
-                             <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>
+                             <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
 <p>Remove the format information in <em class="parameter"><code>media</code></em>
  at <em class="parameter"><code>idx</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.93.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.93.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -4491,7 +4485,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.93.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.93.6"></a><h4>Returns</h4>
 <p> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-OK:CAPS"><span class="type">GST_SDP_OK</span></a>.</p>
 <p></p>
 </div>
@@ -4502,11 +4496,11 @@
 <a name="gst-sdp-media-add-format"></a><h3>gst_sdp_media_add_format ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_media_add_format (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
-                          <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> *format</code></em>);</pre>
+                          <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *format</code></em>);</pre>
 <p>Add the format information to <em class="parameter"><code>media</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.94.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.94.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -4528,7 +4522,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.94.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.94.6"></a><h4>Returns</h4>
 <p> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-OK:CAPS"><span class="type">GST_SDP_OK</span></a>.</p>
 <p></p>
 </div>
@@ -4536,12 +4530,12 @@
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-media-get-information"></a><h3>gst_sdp_media_get_information ()</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> *
+<pre class="programlisting">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_sdp_media_get_information (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);</pre>
 <p>Get the information of <em class="parameter"><code>media</code></em>
 </p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.95.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.95.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -4556,7 +4550,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.95.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.95.6"></a><h4>Returns</h4>
 <p> the information of <em class="parameter"><code>media</code></em>
 .</p>
 <p></p>
@@ -4567,12 +4561,12 @@
 <a name="gst-sdp-media-set-information"></a><h3>gst_sdp_media_set_information ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_media_set_information (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
-                               <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> *information</code></em>);</pre>
+                               <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *information</code></em>);</pre>
 <p>Set the media information of <em class="parameter"><code>media</code></em>
  to <em class="parameter"><code>information</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.96.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.96.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -4594,7 +4588,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.96.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.96.6"></a><h4>Returns</h4>
 <p> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-OK:CAPS"><span class="type">GST_SDP_OK</span></a>.</p>
 <p></p>
 </div>
@@ -4602,12 +4596,12 @@
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-media-connections-len"></a><h3>gst_sdp_media_connections_len ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_sdp_media_connections_len (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);</pre>
 <p>Get the number of connection fields in <em class="parameter"><code>media</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.97.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.97.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -4622,7 +4616,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.97.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.97.6"></a><h4>Returns</h4>
 <p> the number of connections in <em class="parameter"><code>media</code></em>
 .</p>
 <p></p>
@@ -4633,12 +4627,12 @@
 <a name="gst-sdp-media-get-connection"></a><h3>gst_sdp_media_get_connection ()</h3>
 <pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPConnection" title="GstSDPConnection"><span class="returnvalue">GstSDPConnection</span></a> *
 gst_sdp_media_get_connection (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
-                              <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
+                              <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
 <p>Get the connection at position <em class="parameter"><code>idx</code></em>
  in <em class="parameter"><code>media</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.98.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.98.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -4660,7 +4654,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.98.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.98.6"></a><h4>Returns</h4>
 <p> the <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPConnection" title="GstSDPConnection"><span class="type">GstSDPConnection</span></a> at position <em class="parameter"><code>idx</code></em>
 .</p>
 <p></p>
@@ -4671,7 +4665,7 @@
 <a name="gst-sdp-media-insert-connection"></a><h3>gst_sdp_media_insert_connection ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_media_insert_connection (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
-                                 <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 href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> idx</code></em>,
                                  <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPConnection" title="GstSDPConnection"><span class="type">GstSDPConnection</span></a> *conn</code></em>);</pre>
 <p>Insert the connection information to <em class="parameter"><code>media</code></em>
  at <em class="parameter"><code>idx</code></em>
@@ -4679,7 +4673,7 @@
  is -1,
 the connection is appended.</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.99.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.99.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -4706,7 +4700,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.99.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.99.6"></a><h4>Returns</h4>
 <p> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-OK:CAPS"><span class="type">GST_SDP_OK</span></a>.</p>
 <p></p>
 </div>
@@ -4717,14 +4711,14 @@
 <a name="gst-sdp-media-replace-connection"></a><h3>gst_sdp_media_replace_connection ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_media_replace_connection (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
-                                  <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="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>,
                                   <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPConnection" title="GstSDPConnection"><span class="type">GstSDPConnection</span></a> *conn</code></em>);</pre>
 <p>Replace the connection information in <em class="parameter"><code>media</code></em>
  at <em class="parameter"><code>idx</code></em>
  with <em class="parameter"><code>conn</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.100.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.100.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -4751,7 +4745,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.100.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.100.6"></a><h4>Returns</h4>
 <p> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-OK:CAPS"><span class="type">GST_SDP_OK</span></a>.</p>
 <p></p>
 </div>
@@ -4762,12 +4756,12 @@
 <a name="gst-sdp-media-remove-connection"></a><h3>gst_sdp_media_remove_connection ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_media_remove_connection (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
-                                 <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>
+                                 <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
 <p>Remove the connection information in <em class="parameter"><code>media</code></em>
  at <em class="parameter"><code>idx</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.101.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.101.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -4789,7 +4783,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.101.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.101.6"></a><h4>Returns</h4>
 <p> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-OK:CAPS"><span class="type">GST_SDP_OK</span></a>.</p>
 <p></p>
 </div>
@@ -4800,15 +4794,15 @@
 <a name="gst-sdp-media-add-connection"></a><h3>gst_sdp_media_add_connection ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_media_add_connection (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
-                              <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> *nettype</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> *addrtype</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#guint"><span class="type">guint</span></a> ttl</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> addr_number</code></em>);</pre>
+                              <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *nettype</code></em>,
+                              <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *addrtype</code></em>,
+                              <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *address</code></em>,
+                              <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> ttl</code></em>,
+                              <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> addr_number</code></em>);</pre>
 <p>Add the given connection parameters to <em class="parameter"><code>media</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.102.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.102.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -4851,7 +4845,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.102.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.102.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
 <p></p>
 </div>
@@ -4859,12 +4853,12 @@
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-media-bandwidths-len"></a><h3>gst_sdp_media_bandwidths_len ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_sdp_media_bandwidths_len (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);</pre>
 <p>Get the number of bandwidth fields in <em class="parameter"><code>media</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.103.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.103.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -4879,7 +4873,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.103.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.103.6"></a><h4>Returns</h4>
 <p> the number of bandwidths in <em class="parameter"><code>media</code></em>
 .</p>
 <p></p>
@@ -4890,12 +4884,12 @@
 <a name="gst-sdp-media-get-bandwidth"></a><h3>gst_sdp_media_get_bandwidth ()</h3>
 <pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPBandwidth" title="GstSDPBandwidth"><span class="returnvalue">GstSDPBandwidth</span></a> *
 gst_sdp_media_get_bandwidth (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
-                             <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
+                             <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
 <p>Get the bandwidth at position <em class="parameter"><code>idx</code></em>
  in <em class="parameter"><code>media</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.104.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.104.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -4917,7 +4911,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.104.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.104.6"></a><h4>Returns</h4>
 <p> the <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPBandwidth" title="GstSDPBandwidth"><span class="type">GstSDPBandwidth</span></a> at position <em class="parameter"><code>idx</code></em>
 .</p>
 <p></p>
@@ -4928,7 +4922,7 @@
 <a name="gst-sdp-media-insert-bandwidth"></a><h3>gst_sdp_media_insert_bandwidth ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_media_insert_bandwidth (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
-                                <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 href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> idx</code></em>,
                                 <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPBandwidth" title="GstSDPBandwidth"><span class="type">GstSDPBandwidth</span></a> *bw</code></em>);</pre>
 <p>Insert the bandwidth information to <em class="parameter"><code>media</code></em>
  at <em class="parameter"><code>idx</code></em>
@@ -4936,7 +4930,7 @@
  is -1,
 the bandwidth is appended.</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.105.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.105.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -4963,7 +4957,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.105.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.105.6"></a><h4>Returns</h4>
 <p> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-OK:CAPS"><span class="type">GST_SDP_OK</span></a>.</p>
 <p></p>
 </div>
@@ -4974,14 +4968,14 @@
 <a name="gst-sdp-media-replace-bandwidth"></a><h3>gst_sdp_media_replace_bandwidth ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_media_replace_bandwidth (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
-                                 <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="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>,
                                  <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPBandwidth" title="GstSDPBandwidth"><span class="type">GstSDPBandwidth</span></a> *bw</code></em>);</pre>
 <p>Replace the bandwidth information in <em class="parameter"><code>media</code></em>
  at <em class="parameter"><code>idx</code></em>
  with <em class="parameter"><code>bw</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.106.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.106.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -5008,7 +5002,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.106.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.106.6"></a><h4>Returns</h4>
 <p> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-OK:CAPS"><span class="type">GST_SDP_OK</span></a>.</p>
 <p></p>
 </div>
@@ -5019,12 +5013,12 @@
 <a name="gst-sdp-media-remove-bandwidth"></a><h3>gst_sdp_media_remove_bandwidth ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_media_remove_bandwidth (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
-                                <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>
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
 <p>Remove the bandwidth information in <em class="parameter"><code>media</code></em>
  at <em class="parameter"><code>idx</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.107.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.107.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -5046,7 +5040,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.107.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.107.6"></a><h4>Returns</h4>
 <p> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-OK:CAPS"><span class="type">GST_SDP_OK</span></a>.</p>
 <p></p>
 </div>
@@ -5057,14 +5051,14 @@
 <a name="gst-sdp-media-add-bandwidth"></a><h3>gst_sdp_media_add_bandwidth ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_media_add_bandwidth (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
-                             <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> *bwtype</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> bandwidth</code></em>);</pre>
+                             <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *bwtype</code></em>,
+                             <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> bandwidth</code></em>);</pre>
 <p>Add the bandwidth information with <em class="parameter"><code>bwtype</code></em>
  and <em class="parameter"><code>bandwidth</code></em>
  to <em class="parameter"><code>media</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.108.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.108.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -5091,7 +5085,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.108.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.108.6"></a><h4>Returns</h4>
 <p> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-OK:CAPS"><span class="type">GST_SDP_OK</span></a>.</p>
 <p></p>
 </div>
@@ -5104,7 +5098,7 @@
 <p>Get the encryption information from <em class="parameter"><code>media</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.109.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.109.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -5119,7 +5113,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.109.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.109.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPKey" title="GstSDPKey"><span class="type">GstSDPKey</span></a>.</p>
 <p></p>
 </div>
@@ -5129,12 +5123,12 @@
 <a name="gst-sdp-media-set-key"></a><h3>gst_sdp_media_set_key ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_media_set_key (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
-                       <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> *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> *data</code></em>);</pre>
+                       <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *type</code></em>,
+                       <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *data</code></em>);</pre>
 <p>Adds the encryption information to <em class="parameter"><code>media</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.110.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.110.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -5161,7 +5155,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.110.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.110.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
 <p></p>
 </div>
@@ -5169,12 +5163,12 @@
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-media-attributes-len"></a><h3>gst_sdp_media_attributes_len ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_sdp_media_attributes_len (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);</pre>
 <p>Get the number of attribute fields in <em class="parameter"><code>media</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.111.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.111.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -5189,7 +5183,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.111.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.111.6"></a><h4>Returns</h4>
 <p> the number of attributes in <em class="parameter"><code>media</code></em>
 .</p>
 <p></p>
@@ -5200,12 +5194,12 @@
 <a name="gst-sdp-media-get-attribute"></a><h3>gst_sdp_media_get_attribute ()</h3>
 <pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPAttribute" title="GstSDPAttribute"><span class="returnvalue">GstSDPAttribute</span></a> *
 gst_sdp_media_get_attribute (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
-                             <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
+                             <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
 <p>Get the attribute at position <em class="parameter"><code>idx</code></em>
  in <em class="parameter"><code>media</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.112.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.112.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -5227,7 +5221,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.112.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.112.6"></a><h4>Returns</h4>
 <p> the <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPAttribute" title="GstSDPAttribute"><span class="type">GstSDPAttribute</span></a> at position <em class="parameter"><code>idx</code></em>
 .</p>
 <p></p>
@@ -5236,14 +5230,14 @@
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-media-get-attribute-val"></a><h3>gst_sdp_media_get_attribute_val ()</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> *
+<pre class="programlisting">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_sdp_media_get_attribute_val (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
-                                 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>);</pre>
+                                 <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>);</pre>
 <p>Get the first attribute value for <em class="parameter"><code>key</code></em>
  in <em class="parameter"><code>media</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.113.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.113.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -5265,7 +5259,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.113.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.113.6"></a><h4>Returns</h4>
 <p> the first attribute value for <em class="parameter"><code>key</code></em>
 .</p>
 <p></p>
@@ -5274,16 +5268,16 @@
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-media-get-attribute-val-n"></a><h3>gst_sdp_media_get_attribute_val_n ()</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> *
+<pre class="programlisting">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_sdp_media_get_attribute_val_n (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
-                                   <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</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> nth</code></em>);</pre>
+                                   <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
+                                   <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nth</code></em>);</pre>
 <p>Get the <em class="parameter"><code>nth</code></em>
  attribute value for <em class="parameter"><code>key</code></em>
  in <em class="parameter"><code>media</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.114.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.114.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -5310,7 +5304,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.114.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.114.6"></a><h4>Returns</h4>
 <p> the <em class="parameter"><code>nth</code></em>
 attribute value.</p>
 <p></p>
@@ -5321,7 +5315,7 @@
 <a name="gst-sdp-media-insert-attribute"></a><h3>gst_sdp_media_insert_attribute ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_media_insert_attribute (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
-                                <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 href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> idx</code></em>,
                                 <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPAttribute" title="GstSDPAttribute"><span class="type">GstSDPAttribute</span></a> *attr</code></em>);</pre>
 <p>Insert the attribute to <em class="parameter"><code>media</code></em>
  at <em class="parameter"><code>idx</code></em>
@@ -5329,7 +5323,7 @@
  is -1,
 the attribute is appended.</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.115.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.115.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -5356,7 +5350,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.115.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.115.6"></a><h4>Returns</h4>
 <p> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-OK:CAPS"><span class="type">GST_SDP_OK</span></a>.</p>
 <p></p>
 </div>
@@ -5367,14 +5361,14 @@
 <a name="gst-sdp-media-replace-attribute"></a><h3>gst_sdp_media_replace_attribute ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_media_replace_attribute (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
-                                 <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="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>,
                                  <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPAttribute" title="GstSDPAttribute"><span class="type">GstSDPAttribute</span></a> *attr</code></em>);</pre>
 <p>Replace the attribute in <em class="parameter"><code>media</code></em>
  at <em class="parameter"><code>idx</code></em>
  with <em class="parameter"><code>attr</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.116.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.116.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -5401,7 +5395,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.116.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.116.6"></a><h4>Returns</h4>
 <p> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-OK:CAPS"><span class="type">GST_SDP_OK</span></a>.</p>
 <p></p>
 </div>
@@ -5412,12 +5406,12 @@
 <a name="gst-sdp-media-remove-attribute"></a><h3>gst_sdp_media_remove_attribute ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_media_remove_attribute (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
-                                <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>
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
 <p>Remove the attribute in <em class="parameter"><code>media</code></em>
  at <em class="parameter"><code>idx</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.117.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.117.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -5439,7 +5433,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.117.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.117.6"></a><h4>Returns</h4>
 <p> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-OK:CAPS"><span class="type">GST_SDP_OK</span></a>.</p>
 <p></p>
 </div>
@@ -5450,14 +5444,14 @@
 <a name="gst-sdp-media-add-attribute"></a><h3>gst_sdp_media_add_attribute ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_media_add_attribute (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
-                             <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> *key</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> *value</code></em>);</pre>
+                             <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
+                             <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *value</code></em>);</pre>
 <p>Add the attribute with <em class="parameter"><code>key</code></em>
  and <em class="parameter"><code>value</code></em>
  to <em class="parameter"><code>media</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.118.5"></a><h4>Parameters</h4>
+<a name="id-1.2.11.3.7.118.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -5484,7 +5478,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.11.3.8.118.6"></a><h4>Returns</h4>
+<a name="id-1.2.11.3.7.118.6"></a><h4>Returns</h4>
 <p> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-OK:CAPS"><span class="type">GST_SDP_OK</span></a>.</p>
 <p></p>
 </div>
@@ -5496,7 +5490,7 @@
 <a name="GstSDPResult"></a><h3>enum GstSDPResult</h3>
 <p>Return values for the SDP functions.</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.9.2.4"></a><h4>Members</h4>
+<a name="id-1.2.11.3.8.2.4"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -5538,7 +5532,7 @@
 (their username and the address of the user's host) plus a session id and
 session version number.</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.9.3.5"></a><h4>Members</h4>
+<a name="id-1.2.11.3.8.3.5"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
@@ -5547,13 +5541,13 @@
 </colgroup>
 <tbody>
 <tr>
-<td class="struct_member_name"><p><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="GstSDPOrigin.username"></a>username</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstSDPOrigin.username"></a>username</code></em>;</p></td>
 <td class="struct_member_description"><p>the user's login on the originating host, or it is "-"
 if the originating host does not support the concept of user ids.</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstSDPOrigin.sess-id"></a>sess_id</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstSDPOrigin.sess-id"></a>sess_id</code></em>;</p></td>
 <td class="struct_member_description"><p>is a numeric string such that the tuple of <em class="parameter"><code>username</code></em>
 , <em class="parameter"><code>sess_id</code></em>
 ,
@@ -5565,24 +5559,24 @@
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstSDPOrigin.sess-version"></a>sess_version</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstSDPOrigin.sess-version"></a>sess_version</code></em>;</p></td>
 <td class="struct_member_description"><p>a version number for this announcement</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstSDPOrigin.nettype"></a>nettype</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstSDPOrigin.nettype"></a>nettype</code></em>;</p></td>
 <td class="struct_member_description"><p>the type of network. "IN" is defined to have the meaning
 "Internet".</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstSDPOrigin.addrtype"></a>addrtype</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstSDPOrigin.addrtype"></a>addrtype</code></em>;</p></td>
 <td class="struct_member_description"><p>the type of <em class="parameter"><code>addr</code></em>
 .</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstSDPOrigin.addr"></a>addr</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstSDPOrigin.addr"></a>addr</code></em>;</p></td>
 <td class="struct_member_description"><p>the globally unique address of the machine from which the session was
 created.</p></td>
 <td class="struct_member_annotations"> </td>
@@ -5604,7 +5598,7 @@
 </pre>
 <p>The contents of the SDP "c=" field which contains connection data.</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.9.4.5"></a><h4>Members</h4>
+<a name="id-1.2.11.3.8.4.5"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
@@ -5613,29 +5607,29 @@
 </colgroup>
 <tbody>
 <tr>
-<td class="struct_member_name"><p><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="GstSDPConnection.nettype"></a>nettype</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstSDPConnection.nettype"></a>nettype</code></em>;</p></td>
 <td class="struct_member_description"><p>the type of network. "IN" is defined to have the meaning
 "Internet".</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstSDPConnection.addrtype"></a>addrtype</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstSDPConnection.addrtype"></a>addrtype</code></em>;</p></td>
 <td class="struct_member_description"><p>the type of <em class="parameter"><code>address</code></em>
 .</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstSDPConnection.address"></a>address</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstSDPConnection.address"></a>address</code></em>;</p></td>
 <td class="struct_member_description"><p>the address</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstSDPConnection.ttl"></a>ttl</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstSDPConnection.ttl"></a>ttl</code></em>;</p></td>
 <td class="struct_member_description"><p>the time to live of the address</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstSDPConnection.addr-number"></a>addr_number</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstSDPConnection.addr-number"></a>addr_number</code></em>;</p></td>
 <td class="struct_member_description"><p>the number of layers</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
@@ -5696,7 +5690,7 @@
 <p>The contents of the SDP "b=" field which specifies the proposed bandwidth to
 be used by the session or media.</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.9.11.5"></a><h4>Members</h4>
+<a name="id-1.2.11.3.8.11.5"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
@@ -5705,12 +5699,12 @@
 </colgroup>
 <tbody>
 <tr>
-<td class="struct_member_name"><p><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="GstSDPBandwidth.bwtype"></a>bwtype</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstSDPBandwidth.bwtype"></a>bwtype</code></em>;</p></td>
 <td class="struct_member_description"><p>the bandwidth modifier type</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstSDPBandwidth.bandwidth"></a>bandwidth</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstSDPBandwidth.bandwidth"></a>bandwidth</code></em>;</p></td>
 <td class="struct_member_description"><p>the bandwidth in kilobits per second</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
@@ -5730,7 +5724,7 @@
 <p>The contents of the SDP "t=" field which specify the start and stop times for
 a conference session.</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.9.12.5"></a><h4>Members</h4>
+<a name="id-1.2.11.3.8.12.5"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
@@ -5739,19 +5733,19 @@
 </colgroup>
 <tbody>
 <tr>
-<td class="struct_member_name"><p><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="GstSDPTime.start"></a>start</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstSDPTime.start"></a>start</code></em>;</p></td>
 <td class="struct_member_description"><p>start time for the conference. The value is the decimal
 representation of Network Time Protocol (NTP) time values in seconds</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstSDPTime.stop"></a>stop</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstSDPTime.stop"></a>stop</code></em>;</p></td>
 <td class="struct_member_description"><p>stop time for the conference. The value is the decimal
 representation of Network Time Protocol (NTP) time values in seconds</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><a href="http://library.gnome.org/devel/glib/unstable/glib-Arrays.html#GArray"><span class="type">GArray</span></a> *<em class="structfield"><code><a name="GstSDPTime.repeat"></a>repeat</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Arrays.html#GArray"><span class="type">GArray</span></a> *<em class="structfield"><code><a name="GstSDPTime.repeat"></a>repeat</code></em>;</p></td>
 <td class="struct_member_description"><p>repeat times for a session</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
@@ -5771,7 +5765,7 @@
 specify a list of time zone adjustments and offsets from the base
 time.</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.9.13.5"></a><h4>Members</h4>
+<a name="id-1.2.11.3.8.13.5"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
@@ -5780,12 +5774,12 @@
 </colgroup>
 <tbody>
 <tr>
-<td class="struct_member_name"><p><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="GstSDPZone.time"></a>time</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstSDPZone.time"></a>time</code></em>;</p></td>
 <td class="struct_member_description"><p>the NTP time that a time zone adjustment happens</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstSDPZone.typed-time"></a>typed_time</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstSDPZone.typed-time"></a>typed_time</code></em>;</p></td>
 <td class="struct_member_description"><p>the offset from the time when the session was first scheduled</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
@@ -5804,7 +5798,7 @@
 <p>The contents of the SDP "k=" field which is used to convey encryption
 keys.</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.9.14.5"></a><h4>Members</h4>
+<a name="id-1.2.11.3.8.14.5"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
@@ -5813,12 +5807,12 @@
 </colgroup>
 <tbody>
 <tr>
-<td class="struct_member_name"><p><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="GstSDPKey.type"></a>type</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstSDPKey.type"></a>type</code></em>;</p></td>
 <td class="struct_member_description"><p>the encryption type</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstSDPKey.data"></a>data</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstSDPKey.data"></a>data</code></em>;</p></td>
 <td class="struct_member_description"><p>the encryption data</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
@@ -5836,7 +5830,7 @@
 </pre>
 <p>The contents of the SDP "a=" field which contains a key/value pair.</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.9.15.5"></a><h4>Members</h4>
+<a name="id-1.2.11.3.8.15.5"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
@@ -5845,12 +5839,12 @@
 </colgroup>
 <tbody>
 <tr>
-<td class="struct_member_name"><p><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="GstSDPAttribute.key"></a>key</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstSDPAttribute.key"></a>key</code></em>;</p></td>
 <td class="struct_member_description"><p>the attribute key</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstSDPAttribute.value"></a>value</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstSDPAttribute.value"></a>value</code></em>;</p></td>
 <td class="struct_member_description"><p>the attribute value or NULL when it was a property attribute</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
@@ -5876,7 +5870,7 @@
 </pre>
 <p>The contents of the SDP "m=" field with all related fields.</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.9.16.5"></a><h4>Members</h4>
+<a name="id-1.2.11.3.8.16.5"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
@@ -5885,42 +5879,42 @@
 </colgroup>
 <tbody>
 <tr>
-<td class="struct_member_name"><p><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="GstSDPMedia.media"></a>media</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstSDPMedia.media"></a>media</code></em>;</p></td>
 <td class="struct_member_description"><p>the media type</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstSDPMedia.port"></a>port</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstSDPMedia.port"></a>port</code></em>;</p></td>
 <td class="struct_member_description"><p>the transport port to which the media stream will be sent</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstSDPMedia.num-ports"></a>num_ports</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstSDPMedia.num-ports"></a>num_ports</code></em>;</p></td>
 <td class="struct_member_description"><p>the number of ports or -1 if only one port was specified</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstSDPMedia.proto"></a>proto</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstSDPMedia.proto"></a>proto</code></em>;</p></td>
 <td class="struct_member_description"><p>the transport protocol</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><a href="http://library.gnome.org/devel/glib/unstable/glib-Arrays.html#GArray"><span class="type">GArray</span></a> *<em class="structfield"><code><a name="GstSDPMedia.fmts"></a>fmts</code></em>;</p></td>
-<td class="struct_member_description"><p>an array of <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> formats</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Arrays.html#GArray"><span class="type">GArray</span></a> *<em class="structfield"><code><a name="GstSDPMedia.fmts"></a>fmts</code></em>;</p></td>
+<td class="struct_member_description"><p>an array of <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> formats</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstSDPMedia.information"></a>information</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstSDPMedia.information"></a>information</code></em>;</p></td>
 <td class="struct_member_description"><p>the media title</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><a href="http://library.gnome.org/devel/glib/unstable/glib-Arrays.html#GArray"><span class="type">GArray</span></a> *<em class="structfield"><code><a name="GstSDPMedia.connections"></a>connections</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Arrays.html#GArray"><span class="type">GArray</span></a> *<em class="structfield"><code><a name="GstSDPMedia.connections"></a>connections</code></em>;</p></td>
 <td class="struct_member_description"><p>array of <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPConnection" title="GstSDPConnection"><span class="type">GstSDPConnection</span></a> with media connection information</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><a href="http://library.gnome.org/devel/glib/unstable/glib-Arrays.html#GArray"><span class="type">GArray</span></a> *<em class="structfield"><code><a name="GstSDPMedia.bandwidths"></a>bandwidths</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Arrays.html#GArray"><span class="type">GArray</span></a> *<em class="structfield"><code><a name="GstSDPMedia.bandwidths"></a>bandwidths</code></em>;</p></td>
 <td class="struct_member_description"><p>array of <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPBandwidth" title="GstSDPBandwidth"><span class="type">GstSDPBandwidth</span></a> with media bandwidth information</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
@@ -5930,7 +5924,7 @@
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><a href="http://library.gnome.org/devel/glib/unstable/glib-Arrays.html#GArray"><span class="type">GArray</span></a> *<em class="structfield"><code><a name="GstSDPMedia.attributes"></a>attributes</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Arrays.html#GArray"><span class="type">GArray</span></a> *<em class="structfield"><code><a name="GstSDPMedia.attributes"></a>attributes</code></em>;</p></td>
 <td class="struct_member_description"><p>array of <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPAttribute" title="GstSDPAttribute"><span class="type">GstSDPAttribute</span></a> with the additional media attributes</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
@@ -5960,7 +5954,7 @@
 </pre>
 <p>The contents of the SDP message.</p>
 <div class="refsect3">
-<a name="id-1.2.11.3.9.17.5"></a><h4>Members</h4>
+<a name="id-1.2.11.3.8.17.5"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
@@ -5969,7 +5963,7 @@
 </colgroup>
 <tbody>
 <tr>
-<td class="struct_member_name"><p><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="GstSDPMessage.version"></a>version</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstSDPMessage.version"></a>version</code></em>;</p></td>
 <td class="struct_member_description"><p>the protocol version</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
@@ -5979,28 +5973,28 @@
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstSDPMessage.session-name"></a>session_name</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstSDPMessage.session-name"></a>session_name</code></em>;</p></td>
 <td class="struct_member_description"><p>session name</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstSDPMessage.information"></a>information</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstSDPMessage.information"></a>information</code></em>;</p></td>
 <td class="struct_member_description"><p>session information</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstSDPMessage.uri"></a>uri</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstSDPMessage.uri"></a>uri</code></em>;</p></td>
 <td class="struct_member_description"><p>URI of description</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><a href="http://library.gnome.org/devel/glib/unstable/glib-Arrays.html#GArray"><span class="type">GArray</span></a> *<em class="structfield"><code><a name="GstSDPMessage.emails"></a>emails</code></em>;</p></td>
-<td class="struct_member_description"><p>array of <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> with email addresses</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Arrays.html#GArray"><span class="type">GArray</span></a> *<em class="structfield"><code><a name="GstSDPMessage.emails"></a>emails</code></em>;</p></td>
+<td class="struct_member_description"><p>array of <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> with email addresses</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><a href="http://library.gnome.org/devel/glib/unstable/glib-Arrays.html#GArray"><span class="type">GArray</span></a> *<em class="structfield"><code><a name="GstSDPMessage.phones"></a>phones</code></em>;</p></td>
-<td class="struct_member_description"><p>array of <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> with phone numbers</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Arrays.html#GArray"><span class="type">GArray</span></a> *<em class="structfield"><code><a name="GstSDPMessage.phones"></a>phones</code></em>;</p></td>
+<td class="struct_member_description"><p>array of <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> with phone numbers</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
@@ -6009,17 +6003,17 @@
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><a href="http://library.gnome.org/devel/glib/unstable/glib-Arrays.html#GArray"><span class="type">GArray</span></a> *<em class="structfield"><code><a name="GstSDPMessage.bandwidths"></a>bandwidths</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Arrays.html#GArray"><span class="type">GArray</span></a> *<em class="structfield"><code><a name="GstSDPMessage.bandwidths"></a>bandwidths</code></em>;</p></td>
 <td class="struct_member_description"><p>array of <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPBandwidth" title="GstSDPBandwidth"><span class="type">GstSDPBandwidth</span></a> with bandwidth information</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><a href="http://library.gnome.org/devel/glib/unstable/glib-Arrays.html#GArray"><span class="type">GArray</span></a> *<em class="structfield"><code><a name="GstSDPMessage.times"></a>times</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Arrays.html#GArray"><span class="type">GArray</span></a> *<em class="structfield"><code><a name="GstSDPMessage.times"></a>times</code></em>;</p></td>
 <td class="struct_member_description"><p>array of <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPTime" title="GstSDPTime"><span class="type">GstSDPTime</span></a> with time descriptions</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><a href="http://library.gnome.org/devel/glib/unstable/glib-Arrays.html#GArray"><span class="type">GArray</span></a> *<em class="structfield"><code><a name="GstSDPMessage.zones"></a>zones</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Arrays.html#GArray"><span class="type">GArray</span></a> *<em class="structfield"><code><a name="GstSDPMessage.zones"></a>zones</code></em>;</p></td>
 <td class="struct_member_description"><p>array of <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPZone" title="GstSDPZone"><span class="type">GstSDPZone</span></a> with time zone adjustments</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
@@ -6029,12 +6023,12 @@
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><a href="http://library.gnome.org/devel/glib/unstable/glib-Arrays.html#GArray"><span class="type">GArray</span></a> *<em class="structfield"><code><a name="GstSDPMessage.attributes"></a>attributes</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Arrays.html#GArray"><span class="type">GArray</span></a> *<em class="structfield"><code><a name="GstSDPMessage.attributes"></a>attributes</code></em>;</p></td>
 <td class="struct_member_description"><p>array of <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPAttribute" title="GstSDPAttribute"><span class="type">GstSDPAttribute</span></a> with session attributes</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><a href="http://library.gnome.org/devel/glib/unstable/glib-Arrays.html#GArray"><span class="type">GArray</span></a> *<em class="structfield"><code><a name="GstSDPMessage.medias"></a>medias</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Arrays.html#GArray"><span class="type">GArray</span></a> *<em class="structfield"><code><a name="GstSDPMessage.medias"></a>medias</code></em>;</p></td>
 <td class="struct_member_description"><p>array of <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> with media descriptions</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
@@ -6046,6 +6040,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gststreamvolume.html b/docs/libs/html/gst-plugins-base-libs-gststreamvolume.html
index d1d2fd3..9cd7b33 100644
--- a/docs/libs/html/gst-plugins-base-libs-gststreamvolume.html
+++ b/docs/libs/html/gst-plugins-base-libs-gststreamvolume.html
@@ -8,16 +8,16 @@
 <link rel="up" href="gstreamer-audio.html" title="Audio Library">
 <link rel="prev" href="gst-plugins-base-libs-gstaudioiec61937.html" title="gstaudioiec61937">
 <link rel="next" href="gstreamer-ffft.html" title="FFT Library">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gststreamvolume.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gststreamvolume.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_prerequisites"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gststreamvolume.prerequisites" class="shortcut">Prerequisites</a></span><span id="nav_properties"> <span class="dim">|</span> 
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gststreamvolume.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gststreamvolume.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_prerequisites">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gststreamvolume.prerequisites" class="shortcut">Prerequisites</a></span><span id="nav_properties">  <span class="dim">|</span> 
                   <a href="#gst-plugins-base-libs-gststreamvolume.properties" class="shortcut">Properties</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
@@ -44,7 +44,7 @@
 <tbody>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="returnvalue">gdouble</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gdouble"><span class="returnvalue">gdouble</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gststreamvolume.html#gst-stream-volume-get-volume" title="gst_stream_volume_get_volume ()">gst_stream_volume_get_volume</a> <span class="c_punctuation">()</span>
@@ -60,7 +60,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gststreamvolume.html#gst-stream-volume-get-mute" title="gst_stream_volume_get_mute ()">gst_stream_volume_get_mute</a> <span class="c_punctuation">()</span>
@@ -76,7 +76,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="returnvalue">gdouble</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gdouble"><span class="returnvalue">gdouble</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gststreamvolume.html#gst-stream-volume-convert-volume" title="gst_stream_volume_convert_volume ()">gst_stream_volume_convert_volume</a> <span class="c_punctuation">()</span>
@@ -95,12 +95,12 @@
 </colgroup>
 <tbody>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-libs-gststreamvolume.html#GstStreamVolume--mute" title="The “mute” property">mute</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-libs-gststreamvolume.html#GstStreamVolume--volume" title="The “volume” property">volume</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
@@ -128,7 +128,7 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gststreamvolume.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    GInterface
+<pre class="screen">    <a href="https://developer.gnome.org/gobject/unstable/GTypeModule.html">GInterface</a>
     <span class="lineart">╰──</span> GstStreamVolume
 </pre>
 </div>
@@ -136,7 +136,7 @@
 <a name="gst-plugins-base-libs-gststreamvolume.prerequisites"></a><h2>Prerequisites</h2>
 <p>
 GstStreamVolume requires
- <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>.</p>
+ <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>.</p>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gststreamvolume.includes"></a><h2>Includes</h2>
@@ -152,18 +152,18 @@
 </p>
 <p>
 Applications can use this interface to get or set the current stream volume. For this
-the "volume" <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property can be used or the helper functions <a class="link" href="gst-plugins-base-libs-gststreamvolume.html#gst-stream-volume-set-volume" title="gst_stream_volume_set_volume ()"><code class="function">gst_stream_volume_set_volume()</code></a>
+the "volume" <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property can be used or the helper functions <a class="link" href="gst-plugins-base-libs-gststreamvolume.html#gst-stream-volume-set-volume" title="gst_stream_volume_set_volume ()"><code class="function">gst_stream_volume_set_volume()</code></a>
 and <a class="link" href="gst-plugins-base-libs-gststreamvolume.html#gst-stream-volume-get-volume" title="gst_stream_volume_get_volume ()"><code class="function">gst_stream_volume_get_volume()</code></a>. This volume is always a linear factor, i.e. 0.0 is muted
 1.0 is 100%. For showing the volume in a GUI it might make sense to convert it to
 a different format by using <a class="link" href="gst-plugins-base-libs-gststreamvolume.html#gst-stream-volume-convert-volume" title="gst_stream_volume_convert_volume ()"><code class="function">gst_stream_volume_convert_volume()</code></a>. Volume sliders should usually
 use a cubic volume.
 
-Separate from the volume the stream can also be muted by the "mute" <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property or
+Separate from the volume the stream can also be muted by the "mute" <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> property or
 <a class="link" href="gst-plugins-base-libs-gststreamvolume.html#gst-stream-volume-set-mute" title="gst_stream_volume_set_mute ()"><code class="function">gst_stream_volume_set_mute()</code></a> and <a class="link" href="gst-plugins-base-libs-gststreamvolume.html#gst-stream-volume-get-mute" title="gst_stream_volume_get_mute ()"><code class="function">gst_stream_volume_get_mute()</code></a>.
 </p>
 <p>
 Elements that provide some kind of stream volume should implement the "volume" and
-"mute" <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> properties and handle setting and getting of them properly.
+"mute" <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> properties and handle setting and getting of them properly.
 The volume property is defined to be a linear volume factor.
 </p>
 </div>
@@ -172,7 +172,7 @@
 <a name="gst-plugins-base-libs-gststreamvolume.functions_details"></a><h2>Functions</h2>
 <div class="refsect2">
 <a name="gst-stream-volume-get-volume"></a><h3>gst_stream_volume_get_volume ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="returnvalue">gdouble</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gdouble"><span class="returnvalue">gdouble</span></a>
 gst_stream_volume_get_volume (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gststreamvolume.html#GstStreamVolume"><span class="type">GstStreamVolume</span></a> *volume</code></em>,
                               <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gststreamvolume.html#GstStreamVolumeFormat" title="enum GstStreamVolumeFormat"><span class="type">GstStreamVolumeFormat</span></a> format</code></em>);</pre>
 <div class="refsect3">
@@ -209,7 +209,7 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_stream_volume_set_volume (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gststreamvolume.html#GstStreamVolume"><span class="type">GstStreamVolume</span></a> *volume</code></em>,
                               <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gststreamvolume.html#GstStreamVolumeFormat" title="enum GstStreamVolumeFormat"><span class="type">GstStreamVolumeFormat</span></a> format</code></em>,
-                              <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> val</code></em>);</pre>
+                              <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> val</code></em>);</pre>
 <div class="refsect3">
 <a name="id-1.2.6.17.11.3.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
@@ -242,7 +242,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-stream-volume-get-mute"></a><h3>gst_stream_volume_get_mute ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_stream_volume_get_mute (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gststreamvolume.html#GstStreamVolume"><span class="type">GstStreamVolume</span></a> *volume</code></em>);</pre>
 <div class="refsect3">
 <a name="id-1.2.6.17.11.4.4"></a><h4>Parameters</h4>
@@ -261,7 +261,7 @@
 </div>
 <div class="refsect3">
 <a name="id-1.2.6.17.11.4.5"></a><h4>Returns</h4>
-<p> Returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the stream is muted</p>
+<p> Returns <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the stream is muted</p>
 <p></p>
 </div>
 </div>
@@ -270,7 +270,7 @@
 <a name="gst-stream-volume-set-mute"></a><h3>gst_stream_volume_set_mute ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_stream_volume_set_mute (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gststreamvolume.html#GstStreamVolume"><span class="type">GstStreamVolume</span></a> *volume</code></em>,
-                            <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> mute</code></em>);</pre>
+                            <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> mute</code></em>);</pre>
 <div class="refsect3">
 <a name="id-1.2.6.17.11.5.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
@@ -297,10 +297,10 @@
 <hr>
 <div class="refsect2">
 <a name="gst-stream-volume-convert-volume"></a><h3>gst_stream_volume_convert_volume ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="returnvalue">gdouble</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gdouble"><span class="returnvalue">gdouble</span></a>
 gst_stream_volume_convert_volume (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gststreamvolume.html#GstStreamVolumeFormat" title="enum GstStreamVolumeFormat"><span class="type">GstStreamVolumeFormat</span></a> from</code></em>,
                                   <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gststreamvolume.html#GstStreamVolumeFormat" title="enum GstStreamVolumeFormat"><span class="type">GstStreamVolumeFormat</span></a> to</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> val</code></em>);</pre>
+                                  <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> val</code></em>);</pre>
 <div class="refsect3">
 <a name="id-1.2.6.17.11.6.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
@@ -388,7 +388,7 @@
 <a name="gst-plugins-base-libs-gststreamvolume.property-details"></a><h2>Property Details</h2>
 <div class="refsect2">
 <a name="GstStreamVolume--mute"></a><h3>The <code class="literal">“mute”</code> property</h3>
-<pre class="programlisting">  “mute”                     <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<pre class="programlisting">  “mute”                     <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
 <p>Mute the audio channel without changing the volume.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: FALSE</p>
@@ -396,7 +396,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstStreamVolume--volume"></a><h3>The <code class="literal">“volume”</code> property</h3>
-<pre class="programlisting">  “volume”                   <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></pre>
+<pre class="programlisting">  “volume”                   <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></pre>
 <p>Linear volume factor, 1.0=100%.</p>
 <p>Flags: Read / Write</p>
 <p>Allowed values: &gt;= 0</p>
@@ -406,6 +406,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gsttag.html b/docs/libs/html/gst-plugins-base-libs-gsttag.html
index 21945f3..35784b0 100644
--- a/docs/libs/html/gst-plugins-base-libs-gsttag.html
+++ b/docs/libs/html/gst-plugins-base-libs-gsttag.html
@@ -8,15 +8,14 @@
 <link rel="up" href="gstreamer-tag.html" title="Tag Support Library">
 <link rel="prev" href="gstreamer-tag.html" title="Tag Support Library">
 <link rel="next" href="gst-plugins-base-libs-gsttagvorbis.html" title="gsttagvorbis">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gsttag.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gsttag.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gsttag.description" class="shortcut">Description</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="gstreamer-tag.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -50,7 +49,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gsttag.html#gst-tag-freeform-string-to-utf8" title="gst_tag_freeform_string_to_utf8 ()">gst_tag_freeform_string_to_utf8</a> <span class="c_punctuation">()</span>
@@ -58,7 +57,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gsttag.html#gst-tag-parse-extended-comment" title="gst_tag_parse_extended_comment ()">gst_tag_parse_extended_comment</a> <span class="c_punctuation">()</span>
@@ -215,11 +214,6 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="gst-plugins-base-libs-gsttag.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">
-</pre>
-</div>
-<div class="refsect1">
 <a name="gst-plugins-base-libs-gsttag.includes"></a><h2>Includes</h2>
 <pre class="synopsis">#include &lt;gst/tag/tag.h&gt;
 </pre>
@@ -227,7 +221,7 @@
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gsttag.description"></a><h2>Description</h2>
 <div class="refsect2">
-<a name="id-1.2.13.3.7.2"></a><p>
+<a name="id-1.2.13.3.6.2"></a><p>
 Contains additional standardized GStreamer tag definitions for plugins
 and applications, and functions to register them with the GStreamer
 tag system.
@@ -247,10 +241,10 @@
 <hr>
 <div class="refsect2">
 <a name="gst-tag-freeform-string-to-utf8"></a><h3>gst_tag_freeform_string_to_utf8 ()</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_tag_freeform_string_to_utf8 (<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> *data</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> 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> **env_vars</code></em>);</pre>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+gst_tag_freeform_string_to_utf8 (<em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *data</code></em>,
+                                 <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> size</code></em>,
+                                 <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **env_vars</code></em>);</pre>
 <p>Convenience function to read a string with unknown character encoding. If
 the string is already in UTF-8 encoding, it will be returned right away.
 If not it tries to detect byte-order-mark for UTF-16/32 cases and use that.
@@ -261,7 +255,7 @@
 are specified, the current locale will be tried. If that also doesn't work,
 WINDOWS-1252/ISO-8859-1 is assumed (which will almost always succeed).</p>
 <div class="refsect3">
-<a name="id-1.2.13.3.8.3.5"></a><h4>Parameters</h4>
+<a name="id-1.2.13.3.7.3.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -289,7 +283,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.13.3.8.3.6"></a><h4>Returns</h4>
+<a name="id-1.2.13.3.7.3.6"></a><h4>Returns</h4>
 <p> a newly-allocated string in UTF-8 encoding, or NULL</p>
 <p></p>
 </div>
@@ -297,25 +291,25 @@
 <hr>
 <div class="refsect2">
 <a name="gst-tag-parse-extended-comment"></a><h3>gst_tag_parse_extended_comment ()</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_parse_extended_comment (<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> *ext_comment</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> **key</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> **lang</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> **value</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> fail_if_no_key</code></em>);</pre>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gst_tag_parse_extended_comment (<em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *ext_comment</code></em>,
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **key</code></em>,
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **lang</code></em>,
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **value</code></em>,
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> fail_if_no_key</code></em>);</pre>
 <p>Convenience function to parse a GST_TAG_EXTENDED_COMMENT string and
 separate it into its components.</p>
 <p>If successful, <em class="parameter"><code>key</code></em>
 , <em class="parameter"><code>lang</code></em>
  and/or <em class="parameter"><code>value</code></em>
  will be set to newly allocated
-strings that you need to 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. <em class="parameter"><code>key</code></em>
+strings that you need to free with <a href="https://developer.gnome.org/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> when done. <em class="parameter"><code>key</code></em>
  and <em class="parameter"><code>lang</code></em>
 
 may also be set to NULL by this function if there is no key or no language
 code in the extended comment string.</p>
 <div class="refsect3">
-<a name="id-1.2.13.3.8.4.6"></a><h4>Parameters</h4>
+<a name="id-1.2.13.3.7.4.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -325,7 +319,7 @@
 <tbody>
 <tr>
 <td class="parameter_name"><p>ext_comment</p></td>
-<td class="parameter_description"><p>an extended comment string, see <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GST-TAG-EXTENDED-COMMENT:CAPS"><span class="type">GST_TAG_EXTENDED_COMMENT</span></a></p></td>
+<td class="parameter_description"><p>an extended comment string, see <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagList.html#GST-TAG-EXTENDED-COMMENT:CAPS"><span class="type">GST_TAG_EXTENDED_COMMENT</span></a></p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
@@ -352,7 +346,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.13.3.8.4.7"></a><h4>Returns</h4>
+<a name="id-1.2.13.3.7.4.7"></a><h4>Returns</h4>
 <p> TRUE if the string could be parsed, otherwise FALSE</p>
 <p></p>
 </div>
@@ -666,7 +660,7 @@
 <p>Type of image contained in an image tag (specified as "image-type" field in
 the info structure in the image's <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstSample.html"><span class="type">GstSample</span></a>)</p>
 <div class="refsect3">
-<a name="id-1.2.13.3.9.35.4"></a><h4>Members</h4>
+<a name="id-1.2.13.3.8.35.4"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -823,11 +817,11 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gsttag.see-also"></a><h2>See Also</h2>
-<p><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a></p>
+<p><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagList.html"><span class="type">GstTagList</span></a></p>
 </div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gsttagdemux.html b/docs/libs/html/gst-plugins-base-libs-gsttagdemux.html
index d946559..ff11e14 100644
--- a/docs/libs/html/gst-plugins-base-libs-gsttagdemux.html
+++ b/docs/libs/html/gst-plugins-base-libs-gsttagdemux.html
@@ -8,15 +8,14 @@
 <link rel="up" href="gstreamer-tag.html" title="Tag Support Library">
 <link rel="prev" href="gst-plugins-base-libs-gsttagxmpwriter.html" title="gsttagxmpwriter">
 <link rel="next" href="gst-plugins-base-libs-gsttagmux.html" title="gsttagmux">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gsttagdemux.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gsttagdemux.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gsttagdemux.description" class="shortcut">Description</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="gstreamer-tag.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -57,11 +56,6 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="gst-plugins-base-libs-gsttagdemux.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">
-</pre>
-</div>
-<div class="refsect1">
 <a name="gst-plugins-base-libs-gsttagdemux.includes"></a><h2>Includes</h2>
 <pre class="synopsis">#include &lt;gst/tag/gsttagdemux.h&gt;
 </pre>
@@ -69,7 +63,7 @@
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gsttagdemux.description"></a><h2>Description</h2>
 <div class="refsect2">
-<a name="id-1.2.13.9.6.2"></a><h3>Deriving from GstTagDemux</h3>
+<a name="id-1.2.13.9.5.2"></a><h3>Deriving from GstTagDemux</h3>
 <p>
 Provides a base class for demuxing tags at the beginning or end of a
 stream and handles things like typefinding, querying, seeking, and
@@ -126,7 +120,7 @@
 </pre>
 <p>Opaque <a class="link" href="gst-plugins-base-libs-gsttagdemux.html#GstTagDemux" title="struct GstTagDemux"><span class="type">GstTagDemux</span></a> structure.</p>
 <div class="refsect3">
-<a name="id-1.2.13.9.8.2.5"></a><h4>Members</h4>
+<a name="id-1.2.13.9.7.2.5"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
@@ -179,7 +173,7 @@
 <p>The <a class="link" href="gst-plugins-base-libs-gsttagdemux.html#GstTagDemuxClass" title="struct GstTagDemuxClass"><span class="type">GstTagDemuxClass</span></a> structure.  See documentation at beginning of section
 for details about what subclasses need to override and do.</p>
 <div class="refsect3">
-<a name="id-1.2.13.9.8.3.5"></a><h4>Members</h4>
+<a name="id-1.2.13.9.7.3.5"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
@@ -193,14 +187,14 @@
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstTagDemuxClass.min-start-size"></a>min_start_size</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstTagDemuxClass.min-start-size"></a>min_start_size</code></em>;</p></td>
 <td class="struct_member_description"><p>minimum size required to identify a tag at the start and
 determine its total size. Set to 0 if not interested in start tags.
 Subclasses should set this in their class_init function.</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstTagDemuxClass.min-end-size"></a>min_end_size</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstTagDemuxClass.min-end-size"></a>min_end_size</code></em>;</p></td>
 <td class="struct_member_description"><p>minimum size required to identify a tag at the end and
 determine its total size. Set to 0 if not interested in end tags.
 Subclasses should set this in their class_init function.</p></td>
@@ -240,7 +234,7 @@
 <a name="GstTagDemuxResult"></a><h3>enum GstTagDemuxResult</h3>
 <p>Result values from the parse_tag virtual function.</p>
 <div class="refsect3">
-<a name="id-1.2.13.9.8.4.4"></a><h4>Members</h4>
+<a name="id-1.2.13.9.7.4.4"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -281,6 +275,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gsttagexif.html b/docs/libs/html/gst-plugins-base-libs-gsttagexif.html
index 07938c8..ba7fca8 100644
--- a/docs/libs/html/gst-plugins-base-libs-gsttagexif.html
+++ b/docs/libs/html/gst-plugins-base-libs-gsttagexif.html
@@ -8,15 +8,14 @@
 <link rel="up" href="gstreamer-tag.html" title="Tag Support Library">
 <link rel="prev" href="gst-plugins-base-libs-gsttagid3.html" title="gsttagid3">
 <link rel="next" href="gst-plugins-base-libs-gsttagxmp.html" title="gsttagxmp">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gsttagexif.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gsttagexif.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gsttagexif.description" class="shortcut">Description</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="gstreamer-tag.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -43,7 +42,7 @@
 <tbody>
 <tr>
 <td class="function_type">
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="returnvalue">GstBuffer</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gsttagexif.html#gst-tag-list-to-exif-buffer" title="gst_tag_list_to_exif_buffer ()">gst_tag_list_to_exif_buffer</a> <span class="c_punctuation">()</span>
@@ -51,7 +50,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="returnvalue">GstBuffer</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gsttagexif.html#gst-tag-list-to-exif-buffer-with-tiff-header" title="gst_tag_list_to_exif_buffer_with_tiff_header ()">gst_tag_list_to_exif_buffer_with_tiff_header</a> <span class="c_punctuation">()</span>
@@ -59,7 +58,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="returnvalue">GstTagList</span></a> *
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagList.html"><span class="returnvalue">GstTagList</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gsttagexif.html#gst-tag-list-from-exif-buffer" title="gst_tag_list_from_exif_buffer ()">gst_tag_list_from_exif_buffer</a> <span class="c_punctuation">()</span>
@@ -67,7 +66,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="returnvalue">GstTagList</span></a> *
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagList.html"><span class="returnvalue">GstTagList</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gsttagexif.html#gst-tag-list-from-exif-buffer-with-tiff-header" title="gst_tag_list_from_exif_buffer_with_tiff_header ()">gst_tag_list_from_exif_buffer_with_tiff_header</a> <span class="c_punctuation">()</span>
@@ -77,33 +76,28 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="gst-plugins-base-libs-gsttagexif.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">
-</pre>
-</div>
-<div class="refsect1">
 <a name="gst-plugins-base-libs-gsttagexif.includes"></a><h2>Includes</h2>
 <pre class="synopsis">#include &lt;gst/tag/tag.h&gt;
 </pre>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gsttagexif.description"></a><h2>Description</h2>
-<p>Contains utility function to parse <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a>s from exif
-buffers and to create exif buffers from <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a>s</p>
+<p>Contains utility function to parse <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagList.html"><span class="type">GstTagList</span></a>s from exif
+buffers and to create exif buffers from <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagList.html"><span class="type">GstTagList</span></a>s</p>
 <p>Note that next IFD fields on the created exif buffers are set to 0.</p>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gsttagexif.functions_details"></a><h2>Functions</h2>
 <div class="refsect2">
 <a name="gst-tag-list-to-exif-buffer"></a><h3>gst_tag_list_to_exif_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_tag_list_to_exif_buffer (<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a> *taglist</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> byte_order</code></em>,
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="returnvalue">GstBuffer</span></a> *
+gst_tag_list_to_exif_buffer (<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagList.html"><span class="type">GstTagList</span></a> *taglist</code></em>,
+                             <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> byte_order</code></em>,
                              <em class="parameter"><code><span class="type">guint32</span> base_offset</code></em>);</pre>
 <p>Formats the tags in taglist on exif format. The resulting buffer contains
 the tags IFD and is followed by the data pointed by the tag entries.</p>
 <div class="refsect3">
-<a name="id-1.2.13.6.7.2.5"></a><h4>Parameters</h4>
+<a name="id-1.2.13.6.6.2.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -130,7 +124,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.13.6.7.2.6"></a><h4>Returns</h4>
+<a name="id-1.2.13.6.6.2.6"></a><h4>Returns</h4>
 <p> A GstBuffer containing the tag entries followed by the tag data</p>
 <p></p>
 </div>
@@ -138,13 +132,13 @@
 <hr>
 <div class="refsect2">
 <a name="gst-tag-list-to-exif-buffer-with-tiff-header"></a><h3>gst_tag_list_to_exif_buffer_with_tiff_header ()</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> *
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="returnvalue">GstBuffer</span></a> *
 gst_tag_list_to_exif_buffer_with_tiff_header
-                               (<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a> *taglist</code></em>);</pre>
+                               (<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagList.html"><span class="type">GstTagList</span></a> *taglist</code></em>);</pre>
 <p>Formats the tags in taglist into exif structure, a tiff header
 is put in the beginning of the buffer.</p>
 <div class="refsect3">
-<a name="id-1.2.13.6.7.3.5"></a><h4>Parameters</h4>
+<a name="id-1.2.13.6.6.3.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -159,7 +153,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.13.6.7.3.6"></a><h4>Returns</h4>
+<a name="id-1.2.13.6.6.3.6"></a><h4>Returns</h4>
 <p> A GstBuffer containing the data</p>
 <p></p>
 </div>
@@ -167,16 +161,16 @@
 <hr>
 <div class="refsect2">
 <a name="gst-tag-list-from-exif-buffer"></a><h3>gst_tag_list_from_exif_buffer ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="returnvalue">GstTagList</span></a> *
-gst_tag_list_from_exif_buffer (<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="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> byte_order</code></em>,
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagList.html"><span class="returnvalue">GstTagList</span></a> *
+gst_tag_list_from_exif_buffer (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> *buffer</code></em>,
+                               <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> byte_order</code></em>,
                                <em class="parameter"><code><span class="type">guint32</span> base_offset</code></em>);</pre>
 <p>Parses the IFD and IFD tags data contained in the buffer and puts it
 on a taglist. The base_offset is used to subtract from the offset in
 the tag entries and be able to get the offset relative to the buffer
 start</p>
 <div class="refsect3">
-<a name="id-1.2.13.6.7.4.5"></a><h4>Parameters</h4>
+<a name="id-1.2.13.6.6.4.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -203,7 +197,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.13.6.7.4.6"></a><h4>Returns</h4>
+<a name="id-1.2.13.6.6.4.6"></a><h4>Returns</h4>
 <p> The parsed taglist</p>
 <p></p>
 </div>
@@ -211,12 +205,12 @@
 <hr>
 <div class="refsect2">
 <a name="gst-tag-list-from-exif-buffer-with-tiff-header"></a><h3>gst_tag_list_from_exif_buffer_with_tiff_header ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="returnvalue">GstTagList</span></a> *
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagList.html"><span class="returnvalue">GstTagList</span></a> *
 gst_tag_list_from_exif_buffer_with_tiff_header
-                               (<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="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> *buffer</code></em>);</pre>
 <p>Parses the exif tags starting with a tiff header structure.</p>
 <div class="refsect3">
-<a name="id-1.2.13.6.7.5.5"></a><h4>Parameters</h4>
+<a name="id-1.2.13.6.6.5.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -231,7 +225,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.13.6.7.5.6"></a><h4>Returns</h4>
+<a name="id-1.2.13.6.6.5.6"></a><h4>Returns</h4>
 <p> The taglist</p>
 <p></p>
 </div>
@@ -242,11 +236,11 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gsttagexif.see-also"></a><h2>See Also</h2>
-<p><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a></p>
+<p><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagList.html"><span class="type">GstTagList</span></a></p>
 </div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gsttagid3.html b/docs/libs/html/gst-plugins-base-libs-gsttagid3.html
index fbebee5..60ccf96 100644
--- a/docs/libs/html/gst-plugins-base-libs-gsttagid3.html
+++ b/docs/libs/html/gst-plugins-base-libs-gsttagid3.html
@@ -8,15 +8,14 @@
 <link rel="up" href="gstreamer-tag.html" title="Tag Support Library">
 <link rel="prev" href="gst-plugins-base-libs-gsttagvorbis.html" title="gsttagvorbis">
 <link rel="next" href="gst-plugins-base-libs-gsttagexif.html" title="gsttagexif">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gsttagid3.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gsttagid3.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gsttagid3.description" class="shortcut">Description</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="gstreamer-tag.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -43,14 +42,14 @@
 <tbody>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gsttagid3.html#gst-tag-id3-genre-count" title="gst_tag_id3_genre_count ()">gst_tag_id3_genre_count</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<td class="function_type">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gsttagid3.html#gst-tag-id3-genre-get" title="gst_tag_id3_genre_get ()">gst_tag_id3_genre_get</a> <span class="c_punctuation">()</span>
@@ -58,28 +57,28 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="returnvalue">GstTagList</span></a> *
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagList.html"><span class="returnvalue">GstTagList</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gsttagid3.html#gst-tag-list-new-from-id3v1" title="gst_tag_list_new_from_id3v1 ()">gst_tag_list_new_from_id3v1</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<td class="function_type">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gsttagid3.html#gst-tag-from-id3-tag" title="gst_tag_from_id3_tag ()">gst_tag_from_id3_tag</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<td class="function_type">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gsttagid3.html#gst-tag-from-id3-user-tag" title="gst_tag_from_id3_user_tag ()">gst_tag_from_id3_user_tag</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<td class="function_type">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gsttagid3.html#gst-tag-to-id3-tag" title="gst_tag_to_id3_tag ()">gst_tag_to_id3_tag</a> <span class="c_punctuation">()</span>
@@ -87,7 +86,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gsttagid3.html#gst-tag-list-add-id3-image" title="gst_tag_list_add_id3_image ()">gst_tag_list_add_id3_image</a> <span class="c_punctuation">()</span>
@@ -95,7 +94,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gsttagid3.html#gst-tag-get-id3v2-tag-size" title="gst_tag_get_id3v2_tag_size ()">gst_tag_get_id3v2_tag_size</a> <span class="c_punctuation">()</span>
@@ -103,7 +102,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="returnvalue">GstTagList</span></a> *
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagList.html"><span class="returnvalue">GstTagList</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gsttagid3.html#gst-tag-list-from-id3v2-tag" title="gst_tag_list_from_id3v2_tag ()">gst_tag_list_from_id3v2_tag</a> <span class="c_punctuation">()</span>
@@ -113,11 +112,6 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="gst-plugins-base-libs-gsttagid3.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">
-</pre>
-</div>
-<div class="refsect1">
 <a name="gst-plugins-base-libs-gsttagid3.includes"></a><h2>Includes</h2>
 <pre class="synopsis">#include &lt;gst/tag/tag.h&gt;
 </pre>
@@ -125,7 +119,7 @@
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gsttagid3.description"></a><h2>Description</h2>
 <div class="refsect2">
-<a name="id-1.2.13.5.6.2"></a><p>
+<a name="id-1.2.13.5.5.2"></a><p>
 Contains various utility functions for plugins to parse or create
 ID3 tags and map ID3v2 identifiers to and from GStreamer identifiers.
 </p>
@@ -135,12 +129,12 @@
 <a name="gst-plugins-base-libs-gsttagid3.functions_details"></a><h2>Functions</h2>
 <div class="refsect2">
 <a name="gst-tag-id3-genre-count"></a><h3>gst_tag_id3_genre_count ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_tag_id3_genre_count (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
 <p>Gets the number of ID3v1 genres that can be identified. Winamp genres are 
 included.</p>
 <div class="refsect3">
-<a name="id-1.2.13.5.7.2.5"></a><h4>Returns</h4>
+<a name="id-1.2.13.5.6.2.5"></a><h4>Returns</h4>
 <p> the number of ID3v1 genres that can be identified</p>
 <p></p>
 </div>
@@ -148,11 +142,11 @@
 <hr>
 <div class="refsect2">
 <a name="gst-tag-id3-genre-get"></a><h3>gst_tag_id3_genre_get ()</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_tag_id3_genre_get (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> id</code></em>);</pre>
+<pre class="programlisting">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+gst_tag_id3_genre_get (<em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> id</code></em>);</pre>
 <p>Gets the ID3v1 genre name for a given ID.</p>
 <div class="refsect3">
-<a name="id-1.2.13.5.7.3.5"></a><h4>Parameters</h4>
+<a name="id-1.2.13.5.6.3.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -167,7 +161,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.13.5.7.3.6"></a><h4>Returns</h4>
+<a name="id-1.2.13.5.6.3.6"></a><h4>Returns</h4>
 <p> the genre or NULL if no genre is associated with that ID.</p>
 <p></p>
 </div>
@@ -175,12 +169,12 @@
 <hr>
 <div class="refsect2">
 <a name="gst-tag-list-new-from-id3v1"></a><h3>gst_tag_list_new_from_id3v1 ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="returnvalue">GstTagList</span></a> *
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagList.html"><span class="returnvalue">GstTagList</span></a> *
 gst_tag_list_new_from_id3v1 (<em class="parameter"><code>const <span class="type">guint8</span> *data</code></em>);</pre>
-<p>Parses the data containing an ID3v1 tag and returns a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a> from the
+<p>Parses the data containing an ID3v1 tag and returns a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagList.html"><span class="type">GstTagList</span></a> from the
 parsed data.</p>
 <div class="refsect3">
-<a name="id-1.2.13.5.7.4.5"></a><h4>Parameters</h4>
+<a name="id-1.2.13.5.6.4.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -195,7 +189,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.13.5.7.4.6"></a><h4>Returns</h4>
+<a name="id-1.2.13.5.6.4.6"></a><h4>Returns</h4>
 <p> A new tag list or NULL if the data was not an ID3v1 tag.</p>
 <p></p>
 </div>
@@ -203,11 +197,11 @@
 <hr>
 <div class="refsect2">
 <a name="gst-tag-from-id3-tag"></a><h3>gst_tag_from_id3_tag ()</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_tag_from_id3_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> *id3_tag</code></em>);</pre>
+<pre class="programlisting">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+gst_tag_from_id3_tag (<em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *id3_tag</code></em>);</pre>
 <p>Looks up the GStreamer tag for a ID3v2 tag.</p>
 <div class="refsect3">
-<a name="id-1.2.13.5.7.5.5"></a><h4>Parameters</h4>
+<a name="id-1.2.13.5.6.5.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -222,7 +216,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.13.5.7.5.6"></a><h4>Returns</h4>
+<a name="id-1.2.13.5.6.5.6"></a><h4>Returns</h4>
 <p> The corresponding GStreamer tag or NULL if none exists.</p>
 <p></p>
 </div>
@@ -230,13 +224,13 @@
 <hr>
 <div class="refsect2">
 <a name="gst-tag-from-id3-user-tag"></a><h3>gst_tag_from_id3_user_tag ()</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_tag_from_id3_user_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> *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> *id3_user_tag</code></em>);</pre>
+<pre class="programlisting">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+gst_tag_from_id3_user_tag (<em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *type</code></em>,
+                           <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *id3_user_tag</code></em>);</pre>
 <p>Looks up the GStreamer tag for an ID3v2 user tag (e.g. description in
 TXXX frame or owner in UFID frame).</p>
 <div class="refsect3">
-<a name="id-1.2.13.5.7.6.5"></a><h4>Parameters</h4>
+<a name="id-1.2.13.5.6.6.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -258,7 +252,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.13.5.7.6.6"></a><h4>Returns</h4>
+<a name="id-1.2.13.5.6.6.6"></a><h4>Returns</h4>
 <p> The corresponding GStreamer tag or NULL if none exists.</p>
 <p></p>
 </div>
@@ -266,11 +260,11 @@
 <hr>
 <div class="refsect2">
 <a name="gst-tag-to-id3-tag"></a><h3>gst_tag_to_id3_tag ()</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_tag_to_id3_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> *gst_tag</code></em>);</pre>
+<pre class="programlisting">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+gst_tag_to_id3_tag (<em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *gst_tag</code></em>);</pre>
 <p>Looks up the ID3v2 tag for a GStreamer tag.</p>
 <div class="refsect3">
-<a name="id-1.2.13.5.7.7.5"></a><h4>Parameters</h4>
+<a name="id-1.2.13.5.6.7.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -285,7 +279,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.13.5.7.7.6"></a><h4>Returns</h4>
+<a name="id-1.2.13.5.6.7.6"></a><h4>Returns</h4>
 <p> The corresponding ID3v2 tag or NULL if none exists.</p>
 <p></p>
 </div>
@@ -293,16 +287,16 @@
 <hr>
 <div class="refsect2">
 <a name="gst-tag-list-add-id3-image"></a><h3>gst_tag_list_add_id3_image ()</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_add_id3_image (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a> *tag_list</code></em>,
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gst_tag_list_add_id3_image (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagList.html"><span class="type">GstTagList</span></a> *tag_list</code></em>,
                             <em class="parameter"><code>const <span class="type">guint8</span> *image_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> image_data_len</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> id3_picture_type</code></em>);</pre>
+                            <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> image_data_len</code></em>,
+                            <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> id3_picture_type</code></em>);</pre>
 <p>Adds an image from an ID3 APIC frame (or similar, such as used in FLAC)
 to the given tag list. Also see <code class="function">gst_tag_image_data_to_image_sample()</code> for
 more information on image tags in GStreamer.</p>
 <div class="refsect3">
-<a name="id-1.2.13.5.7.8.5"></a><h4>Parameters</h4>
+<a name="id-1.2.13.5.6.8.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -336,20 +330,20 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.13.5.7.8.6"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the image was processed, otherwise <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a></p>
+<a name="id-1.2.13.5.6.8.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the image was processed, otherwise <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a></p>
 <p></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-tag-get-id3v2-tag-size"></a><h3>gst_tag_get_id3v2_tag_size ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
-gst_tag_get_id3v2_tag_size (<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>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+gst_tag_get_id3v2_tag_size (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> *buffer</code></em>);</pre>
 <p>Determines size of an ID3v2 tag on buffer containing at least ID3v2 header,
 i.e. at least <a class="link" href="gst-plugins-base-libs-gsttag.html#GST-TAG-ID3V2-HEADER-SIZE:CAPS" title="GST_TAG_ID3V2_HEADER_SIZE"><span class="type">GST_TAG_ID3V2_HEADER_SIZE</span></a> (10) bytes;</p>
 <div class="refsect3">
-<a name="id-1.2.13.5.7.9.5"></a><h4>Parameters</h4>
+<a name="id-1.2.13.5.6.9.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -364,7 +358,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.13.5.7.9.6"></a><h4>Returns</h4>
+<a name="id-1.2.13.5.6.9.6"></a><h4>Returns</h4>
 <p> Size of tag, or 0 if header is invalid or too small.</p>
 <p></p>
 </div>
@@ -372,12 +366,12 @@
 <hr>
 <div class="refsect2">
 <a name="gst-tag-list-from-id3v2-tag"></a><h3>gst_tag_list_from_id3v2_tag ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="returnvalue">GstTagList</span></a> *
-gst_tag_list_from_id3v2_tag (<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>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagList.html"><span class="returnvalue">GstTagList</span></a> *
+gst_tag_list_from_id3v2_tag (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> *buffer</code></em>);</pre>
 <p>Creates a new tag list that contains the information parsed out of a
 ID3 tag.</p>
 <div class="refsect3">
-<a name="id-1.2.13.5.7.10.5"></a><h4>Parameters</h4>
+<a name="id-1.2.13.5.6.10.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -392,8 +386,8 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.13.5.7.10.6"></a><h4>Returns</h4>
-<p> A new <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a> with all tags that could be extracted from the
+<a name="id-1.2.13.5.6.10.6"></a><h4>Returns</h4>
+<p> A new <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagList.html"><span class="type">GstTagList</span></a> with all tags that could be extracted from the
 given vorbiscomment buffer or NULL on error.</p>
 <p></p>
 </div>
@@ -404,11 +398,11 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gsttagid3.see-also"></a><h2>See Also</h2>
-<p><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a></p>
+<p><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagList.html"><span class="type">GstTagList</span></a></p>
 </div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gsttaglanguagecodes.html b/docs/libs/html/gst-plugins-base-libs-gsttaglanguagecodes.html
index 15bb84f..b5b3228 100644
--- a/docs/libs/html/gst-plugins-base-libs-gsttaglanguagecodes.html
+++ b/docs/libs/html/gst-plugins-base-libs-gsttaglanguagecodes.html
@@ -8,15 +8,14 @@
 <link rel="up" href="gstreamer-tag.html" title="Tag Support Library">
 <link rel="prev" href="gst-plugins-base-libs-gsttagmux.html" title="gsttagmux">
 <link rel="next" href="gst-plugins-base-libs-gsttaglicenses.html" title="gsttaglicenses">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gsttaglanguagecodes.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gsttaglanguagecodes.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gsttaglanguagecodes.description" class="shortcut">Description</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="gstreamer-tag.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -42,14 +41,14 @@
 <tbody>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> **
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> **
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gsttaglanguagecodes.html#gst-tag-get-language-codes" title="gst_tag_get_language_codes ()">gst_tag_get_language_codes</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<td class="function_type">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gsttaglanguagecodes.html#gst-tag-get-language-name" title="gst_tag_get_language_name ()">gst_tag_get_language_name</a> <span class="c_punctuation">()</span>
@@ -62,21 +61,21 @@
 </td>
 </tr>
 <tr>
-<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<td class="function_type">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gsttaglanguagecodes.html#gst-tag-get-language-code-iso-639-1" title="gst_tag_get_language_code_iso_639_1 ()">gst_tag_get_language_code_iso_639_1</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<td class="function_type">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gsttaglanguagecodes.html#gst-tag-get-language-code-iso-639-2B" title="gst_tag_get_language_code_iso_639_2B ()">gst_tag_get_language_code_iso_639_2B</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<td class="function_type">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gsttaglanguagecodes.html#gst-tag-get-language-code-iso-639-2T" title="gst_tag_get_language_code_iso_639_2T ()">gst_tag_get_language_code_iso_639_2T</a> <span class="c_punctuation">()</span>
@@ -84,7 +83,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gsttaglanguagecodes.html#gst-tag-check-language-code" title="gst_tag_check_language_code ()">gst_tag_check_language_code</a> <span class="c_punctuation">()</span>
@@ -94,11 +93,6 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="gst-plugins-base-libs-gsttaglanguagecodes.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">
-</pre>
-</div>
-<div class="refsect1">
 <a name="gst-plugins-base-libs-gsttaglanguagecodes.includes"></a><h2>Includes</h2>
 <pre class="synopsis">#include &lt;gst/tag/tag.h&gt;
 </pre>
@@ -106,7 +100,7 @@
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gsttaglanguagecodes.description"></a><h2>Description</h2>
 <div class="refsect2">
-<a name="id-1.2.13.11.6.2"></a><p>
+<a name="id-1.2.13.11.5.2"></a><p>
 Provides helper functions to convert between the various ISO-639 language
 codes, and to map language codes to language names.
 </p>
@@ -116,31 +110,31 @@
 <a name="gst-plugins-base-libs-gsttaglanguagecodes.functions_details"></a><h2>Functions</h2>
 <div class="refsect2">
 <a name="gst-tag-get-language-codes"></a><h3>gst_tag_get_language_codes ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> **
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> **
 gst_tag_get_language_codes (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
 <p>Returns a list of known language codes (in form of two-letter ISO-639-1
 codes). This is useful for UIs to build a list of available languages for
 tagging purposes (e.g. to tag an audio track appropriately in a video or
 audio editor).</p>
 <div class="refsect3">
-<a name="id-1.2.13.11.7.2.5"></a><h4>Returns</h4>
+<a name="id-1.2.13.11.6.2.5"></a><h4>Returns</h4>
 <p> NULL-terminated string array with two-letter
-language codes. 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. </p>
+language codes. Free with <a href="https://developer.gnome.org/glib/unstable/glib-String-Utility-Functions.html#g-strfreev"><code class="function">g_strfreev()</code></a> when no longer needed. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-tag-get-language-name"></a><h3>gst_tag_get_language_name ()</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_tag_get_language_name (<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> *language_code</code></em>);</pre>
+<pre class="programlisting">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+gst_tag_get_language_name (<em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *language_code</code></em>);</pre>
 <p>Returns the name of the language given an ISO-639 language code as
 found in a GST_TAG_LANGUAGE_CODE tag. The name will be translated
 according to the current locale (if the library was built against the
 iso-codes package, otherwise the English name will be returned).</p>
 <p>Language codes are case-sensitive and expected to be lower case.</p>
 <div class="refsect3">
-<a name="id-1.2.13.11.7.3.6"></a><h4>Parameters</h4>
+<a name="id-1.2.13.11.6.3.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -155,7 +149,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.13.11.7.3.7"></a><h4>Returns</h4>
+<a name="id-1.2.13.11.6.3.7"></a><h4>Returns</h4>
 <p> language name in UTF-8 format, or NULL if <em class="parameter"><code>language_code</code></em>
 could
 not be mapped to a language name. The returned string must not be
@@ -170,7 +164,7 @@
 <pre class="programlisting">#define             gst_tag_get_language_code(lang_code)</pre>
 <p>Convenience macro wrapping <a class="link" href="gst-plugins-base-libs-gsttaglanguagecodes.html#gst-tag-get-language-code-iso-639-1" title="gst_tag_get_language_code_iso_639_1 ()"><code class="function">gst_tag_get_language_code_iso_639_1()</code></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.13.11.7.4.5"></a><h4>Parameters</h4>
+<a name="id-1.2.13.11.6.4.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -188,14 +182,14 @@
 <hr>
 <div class="refsect2">
 <a name="gst-tag-get-language-code-iso-639-1"></a><h3>gst_tag_get_language_code_iso_639_1 ()</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_tag_get_language_code_iso_639_1 (<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> *lang_code</code></em>);</pre>
+<pre class="programlisting">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+gst_tag_get_language_code_iso_639_1 (<em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *lang_code</code></em>);</pre>
 <p>Returns two-letter ISO-639-1 language code given a three-letter ISO-639-2
 language code or two-letter ISO-639-1 language code (both are accepted for
 convenience).</p>
 <p>Language codes are case-sensitive and expected to be lower case.</p>
 <div class="refsect3">
-<a name="id-1.2.13.11.7.5.6"></a><h4>Parameters</h4>
+<a name="id-1.2.13.11.6.5.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -210,7 +204,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.13.11.7.5.7"></a><h4>Returns</h4>
+<a name="id-1.2.13.11.6.5.7"></a><h4>Returns</h4>
 <p> two-letter ISO-639-1 language code string that maps to <em class="parameter"><code>lang_code</code></em>
 ,
 or NULL if no mapping is known. The returned string must not be
@@ -221,8 +215,8 @@
 <hr>
 <div class="refsect2">
 <a name="gst-tag-get-language-code-iso-639-2B"></a><h3>gst_tag_get_language_code_iso_639_2B ()</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_tag_get_language_code_iso_639_2B (<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> *lang_code</code></em>);</pre>
+<pre class="programlisting">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+gst_tag_get_language_code_iso_639_2B (<em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *lang_code</code></em>);</pre>
 <p>Returns three-letter ISO-639-2 "bibliographic" language code given a
 two-letter ISO-639-1 language code or a three-letter ISO-639-2 language
 code (both are accepted for convenience).</p>
@@ -231,7 +225,7 @@
 "terminological" codes are prefered.</p>
 <p>Language codes are case-sensitive and expected to be lower case.</p>
 <div class="refsect3">
-<a name="id-1.2.13.11.7.6.7"></a><h4>Parameters</h4>
+<a name="id-1.2.13.11.6.6.7"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -246,7 +240,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.13.11.7.6.8"></a><h4>Returns</h4>
+<a name="id-1.2.13.11.6.6.8"></a><h4>Returns</h4>
 <p> three-letter ISO-639-2 language code string that maps to <em class="parameter"><code>lang_code</code></em>
 ,
 or NULL if no mapping is known. The returned string must not be
@@ -257,8 +251,8 @@
 <hr>
 <div class="refsect2">
 <a name="gst-tag-get-language-code-iso-639-2T"></a><h3>gst_tag_get_language_code_iso_639_2T ()</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_tag_get_language_code_iso_639_2T (<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> *lang_code</code></em>);</pre>
+<pre class="programlisting">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+gst_tag_get_language_code_iso_639_2T (<em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *lang_code</code></em>);</pre>
 <p>Returns three-letter ISO-639-2 "terminological" language code given a
 two-letter ISO-639-1 language code or a three-letter ISO-639-2 language
 code (both are accepted for convenience).</p>
@@ -267,7 +261,7 @@
 "terminological" codes are prefered over the "bibliographic" ones.</p>
 <p>Language codes are case-sensitive and expected to be lower case.</p>
 <div class="refsect3">
-<a name="id-1.2.13.11.7.7.7"></a><h4>Parameters</h4>
+<a name="id-1.2.13.11.6.7.7"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -282,7 +276,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.13.11.7.7.8"></a><h4>Returns</h4>
+<a name="id-1.2.13.11.6.7.8"></a><h4>Returns</h4>
 <p> three-letter ISO-639-2 language code string that maps to <em class="parameter"><code>lang_code</code></em>
 ,
 or NULL if no mapping is known. The returned string must not be
@@ -293,15 +287,15 @@
 <hr>
 <div class="refsect2">
 <a name="gst-tag-check-language-code"></a><h3>gst_tag_check_language_code ()</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_check_language_code (<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> *lang_code</code></em>);</pre>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gst_tag_check_language_code (<em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *lang_code</code></em>);</pre>
 <p>Check if a given string contains a known ISO 639 language code.</p>
 <p>This is useful in situations where it's not clear whether a given
-string is a language code (which should be put into a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GST-TAG-LANGUAGE-CODE:CAPS"><span class="type">GST_TAG_LANGUAGE_CODE</span></a>
+string is a language code (which should be put into a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagList.html#GST-TAG-LANGUAGE-CODE:CAPS"><span class="type">GST_TAG_LANGUAGE_CODE</span></a>
 tag) or a free-form language name descriptor (which should be put into a
 <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagList.html#GST-TAG-LANGUAGE-NAME:CAPS"><span class="type">GST_TAG_LANGUAGE_NAME</span></a> tag instead).</p>
 <div class="refsect3">
-<a name="id-1.2.13.11.7.8.6"></a><h4>Parameters</h4>
+<a name="id-1.2.13.11.6.8.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -316,7 +310,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.13.11.7.8.7"></a><h4>Returns</h4>
+<a name="id-1.2.13.11.6.8.7"></a><h4>Returns</h4>
 <p> TRUE if the two- or three-letter language code in <em class="parameter"><code>lang_code</code></em>
 is a valid ISO-639 language code.</p>
 <p></p>
@@ -328,11 +322,11 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gsttaglanguagecodes.see-also"></a><h2>See Also</h2>
-<p><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a></p>
+<p><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagList.html"><span class="type">GstTagList</span></a></p>
 </div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gsttaglicenses.html b/docs/libs/html/gst-plugins-base-libs-gsttaglicenses.html
index f244d16..daa6f07 100644
--- a/docs/libs/html/gst-plugins-base-libs-gsttaglicenses.html
+++ b/docs/libs/html/gst-plugins-base-libs-gsttaglicenses.html
@@ -8,15 +8,14 @@
 <link rel="up" href="gstreamer-tag.html" title="Tag Support Library">
 <link rel="prev" href="gst-plugins-base-libs-gsttaglanguagecodes.html" title="gsttaglanguagecodes">
 <link rel="next" href="gstreamer-base-utils.html" title="Base Utils Library">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gsttaglicenses.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gsttaglicenses.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gsttaglicenses.description" class="shortcut">Description</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="gstreamer-tag.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -49,35 +48,35 @@
 </td>
 </tr>
 <tr>
-<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<td class="function_type">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gsttaglicenses.html#gst-tag-get-license-nick" title="gst_tag_get_license_nick ()">gst_tag_get_license_nick</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<td class="function_type">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gsttaglicenses.html#gst-tag-get-license-title" title="gst_tag_get_license_title ()">gst_tag_get_license_title</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<td class="function_type">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gsttaglicenses.html#gst-tag-get-license-description" title="gst_tag_get_license_description ()">gst_tag_get_license_description</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<td class="function_type">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gsttaglicenses.html#gst-tag-get-license-jurisdiction" title="gst_tag_get_license_jurisdiction ()">gst_tag_get_license_jurisdiction</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<td class="function_type">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gsttaglicenses.html#gst-tag-get-license-version" title="gst_tag_get_license_version ()">gst_tag_get_license_version</a> <span class="c_punctuation">()</span>
@@ -85,7 +84,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> **
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> **
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gsttaglicenses.html#gst-tag-get-licenses" title="gst_tag_get_licenses ()">gst_tag_get_licenses</a> <span class="c_punctuation">()</span>
@@ -108,11 +107,6 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="gst-plugins-base-libs-gsttaglicenses.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">
-</pre>
-</div>
-<div class="refsect1">
 <a name="gst-plugins-base-libs-gsttaglicenses.includes"></a><h2>Includes</h2>
 <pre class="synopsis">#include &lt;gst/tag/tag.h&gt;
 </pre>
@@ -129,11 +123,11 @@
 <div class="refsect2">
 <a name="gst-tag-get-license-flags"></a><h3>gst_tag_get_license_flags ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gsttaglicenses.html#GstTagLicenseFlags" title="enum GstTagLicenseFlags"><span class="returnvalue">GstTagLicenseFlags</span></a>
-gst_tag_get_license_flags (<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> *license_ref</code></em>);</pre>
+gst_tag_get_license_flags (<em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *license_ref</code></em>);</pre>
 <p>Get the flags of a license, which describe most of the features of
 a license in their most general form.</p>
 <div class="refsect3">
-<a name="id-1.2.13.12.8.2.5"></a><h4>Parameters</h4>
+<a name="id-1.2.13.12.7.2.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -149,7 +143,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.13.12.8.2.6"></a><h4>Returns</h4>
+<a name="id-1.2.13.12.7.2.6"></a><h4>Returns</h4>
 <p> the flags of the license, or 0 if the license is unknown</p>
 <p></p>
 </div>
@@ -157,12 +151,12 @@
 <hr>
 <div class="refsect2">
 <a name="gst-tag-get-license-nick"></a><h3>gst_tag_get_license_nick ()</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_tag_get_license_nick (<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> *license_ref</code></em>);</pre>
+<pre class="programlisting">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+gst_tag_get_license_nick (<em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *license_ref</code></em>);</pre>
 <p>Get the nick name of a license, which is a short (untranslated) string
 such as e.g. "CC BY-NC-ND 2.0 UK".</p>
 <div class="refsect3">
-<a name="id-1.2.13.12.8.3.5"></a><h4>Parameters</h4>
+<a name="id-1.2.13.12.7.3.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -178,7 +172,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.13.12.8.3.6"></a><h4>Returns</h4>
+<a name="id-1.2.13.12.7.3.6"></a><h4>Returns</h4>
 <p> the nick name of the license, or NULL if the license is unknown</p>
 <p></p>
 </div>
@@ -186,12 +180,12 @@
 <hr>
 <div class="refsect2">
 <a name="gst-tag-get-license-title"></a><h3>gst_tag_get_license_title ()</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_tag_get_license_title (<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> *license_ref</code></em>);</pre>
+<pre class="programlisting">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+gst_tag_get_license_title (<em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *license_ref</code></em>);</pre>
 <p>Get the title of a license, which is a short translated description
 of the license's features (generally not very pretty though).</p>
 <div class="refsect3">
-<a name="id-1.2.13.12.8.4.5"></a><h4>Parameters</h4>
+<a name="id-1.2.13.12.7.4.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -207,7 +201,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.13.12.8.4.6"></a><h4>Returns</h4>
+<a name="id-1.2.13.12.7.4.6"></a><h4>Returns</h4>
 <p> the title of the license, or NULL if the license is unknown or
 no title is available.</p>
 <p></p>
@@ -216,12 +210,12 @@
 <hr>
 <div class="refsect2">
 <a name="gst-tag-get-license-description"></a><h3>gst_tag_get_license_description ()</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_tag_get_license_description (<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> *license_ref</code></em>);</pre>
+<pre class="programlisting">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+gst_tag_get_license_description (<em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *license_ref</code></em>);</pre>
 <p>Get the description of a license, which is a translated description
 of the license's main features.</p>
 <div class="refsect3">
-<a name="id-1.2.13.12.8.5.5"></a><h4>Parameters</h4>
+<a name="id-1.2.13.12.7.5.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -237,7 +231,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.13.12.8.5.6"></a><h4>Returns</h4>
+<a name="id-1.2.13.12.7.5.6"></a><h4>Returns</h4>
 <p> the description of the license, or NULL if the license is unknown
 or a description is not available.</p>
 <p></p>
@@ -246,8 +240,8 @@
 <hr>
 <div class="refsect2">
 <a name="gst-tag-get-license-jurisdiction"></a><h3>gst_tag_get_license_jurisdiction ()</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_tag_get_license_jurisdiction (<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> *license_ref</code></em>);</pre>
+<pre class="programlisting">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+gst_tag_get_license_jurisdiction (<em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *license_ref</code></em>);</pre>
 <p>Get the jurisdiction code of a license. This is usually a two-letter
 ISO 3166-1 alpha-2 code, but there is also the special case of Scotland,
 for which no code exists and which is thus represented as "scotland".</p>
@@ -255,7 +249,7 @@
 dk, es, fi, fr, hr, hu, il, in, it, jp, kr, mk, mt, mx, my, nl, pe, pl,
 pt, scotland, se, si, tw, uk, us, za.</p>
 <div class="refsect3">
-<a name="id-1.2.13.12.8.6.6"></a><h4>Parameters</h4>
+<a name="id-1.2.13.12.7.6.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -271,7 +265,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.13.12.8.6.7"></a><h4>Returns</h4>
+<a name="id-1.2.13.12.7.6.7"></a><h4>Returns</h4>
 <p> the jurisdiction code of the license, or NULL if the license is
 unknown or is not specific to a particular jurisdiction.</p>
 <p></p>
@@ -280,11 +274,11 @@
 <hr>
 <div class="refsect2">
 <a name="gst-tag-get-license-version"></a><h3>gst_tag_get_license_version ()</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_tag_get_license_version (<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> *license_ref</code></em>);</pre>
+<pre class="programlisting">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+gst_tag_get_license_version (<em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *license_ref</code></em>);</pre>
 <p>Get the version of a license.</p>
 <div class="refsect3">
-<a name="id-1.2.13.12.8.7.5"></a><h4>Parameters</h4>
+<a name="id-1.2.13.12.7.7.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -300,7 +294,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.13.12.8.7.6"></a><h4>Returns</h4>
+<a name="id-1.2.13.12.7.7.6"></a><h4>Returns</h4>
 <p> the version of the license, or NULL if the license is not known or
 has no version</p>
 <p></p>
@@ -309,16 +303,16 @@
 <hr>
 <div class="refsect2">
 <a name="gst-tag-get-licenses"></a><h3>gst_tag_get_licenses ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> **
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> **
 gst_tag_get_licenses (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
 <p>Returns a list of known license references (in form of URIs). This is
 useful for UIs to build a list of available licenses for tagging purposes
 (e.g. to tag an audio track appropriately in a video or audio editor, or
 an image in a camera application).</p>
 <div class="refsect3">
-<a name="id-1.2.13.12.8.8.5"></a><h4>Returns</h4>
+<a name="id-1.2.13.12.7.8.5"></a><h4>Returns</h4>
 <p> NULL-terminated array of license strings. 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. </p>
+with <a href="https://developer.gnome.org/glib/unstable/glib-String-Utility-Functions.html#g-strfreev"><code class="function">g_strfreev()</code></a> when no longer needed. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
 </div>
@@ -329,7 +323,7 @@
 <a name="GstTagLicenseFlags"></a><h3>enum GstTagLicenseFlags</h3>
 <p>See http://creativecommons.org/ns for more information.</p>
 <div class="refsect3">
-<a name="id-1.2.13.12.9.2.4"></a><h4>Members</h4>
+<a name="id-1.2.13.12.8.2.4"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -460,11 +454,11 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gsttaglicenses.see-also"></a><h2>See Also</h2>
-<p><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a></p>
+<p><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagList.html"><span class="type">GstTagList</span></a></p>
 </div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gsttagmux.html b/docs/libs/html/gst-plugins-base-libs-gsttagmux.html
index 0e9f937..7597bf0 100644
--- a/docs/libs/html/gst-plugins-base-libs-gsttagmux.html
+++ b/docs/libs/html/gst-plugins-base-libs-gsttagmux.html
@@ -8,15 +8,14 @@
 <link rel="up" href="gstreamer-tag.html" title="Tag Support Library">
 <link rel="prev" href="gst-plugins-base-libs-gsttagdemux.html" title="gsttagdemux">
 <link rel="next" href="gst-plugins-base-libs-gsttaglanguagecodes.html" title="gsttaglanguagecodes">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gsttagmux.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gsttagmux.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gsttagmux.description" class="shortcut">Description</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="gstreamer-tag.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -53,11 +52,6 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="gst-plugins-base-libs-gsttagmux.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">
-</pre>
-</div>
-<div class="refsect1">
 <a name="gst-plugins-base-libs-gsttagmux.includes"></a><h2>Includes</h2>
 <pre class="synopsis">#include &lt;gst/tag/gsttagmux.h&gt;
 </pre>
@@ -65,7 +59,7 @@
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gsttagmux.description"></a><h2>Description</h2>
 <div class="refsect2">
-<a name="id-1.2.13.10.6.2"></a><h3>Deriving from GstTagMux</h3>
+<a name="id-1.2.13.10.5.2"></a><h3>Deriving from GstTagMux</h3>
 <p>
 Provides a base class for adding tags at the beginning or end of a
 stream.
@@ -103,7 +97,7 @@
 </pre>
 <p>Opaque <a class="link" href="gst-plugins-base-libs-gsttagmux.html#GstTagMux" title="struct GstTagMux"><span class="type">GstTagMux</span></a> structure.</p>
 <div class="refsect3">
-<a name="id-1.2.13.10.8.2.5"></a><h4>Members</h4>
+<a name="id-1.2.13.10.7.2.5"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
@@ -132,7 +126,7 @@
 <p>The <a class="link" href="gst-plugins-base-libs-gsttagmux.html#GstTagMuxClass" title="struct GstTagMuxClass"><span class="type">GstTagMuxClass</span></a> structure. Subclasses need to override at least one
 of the two render vfuncs.</p>
 <div class="refsect3">
-<a name="id-1.2.13.10.8.3.5"></a><h4>Members</h4>
+<a name="id-1.2.13.10.7.3.5"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
@@ -169,6 +163,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gsttagvorbis.html b/docs/libs/html/gst-plugins-base-libs-gsttagvorbis.html
index 8563b49..631014c 100644
--- a/docs/libs/html/gst-plugins-base-libs-gsttagvorbis.html
+++ b/docs/libs/html/gst-plugins-base-libs-gsttagvorbis.html
@@ -8,15 +8,14 @@
 <link rel="up" href="gstreamer-tag.html" title="Tag Support Library">
 <link rel="prev" href="gst-plugins-base-libs-gsttag.html" title="gsttag">
 <link rel="next" href="gst-plugins-base-libs-gsttagid3.html" title="gsttagid3">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gsttagvorbis.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gsttagvorbis.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gsttagvorbis.description" class="shortcut">Description</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="gstreamer-tag.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -42,14 +41,14 @@
 </colgroup>
 <tbody>
 <tr>
-<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<td class="function_type">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gsttagvorbis.html#gst-tag-from-vorbis-tag" title="gst_tag_from_vorbis_tag ()">gst_tag_from_vorbis_tag</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<td class="function_type">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gsttagvorbis.html#gst-tag-to-vorbis-tag" title="gst_tag_to_vorbis_tag ()">gst_tag_to_vorbis_tag</a> <span class="c_punctuation">()</span>
@@ -65,7 +64,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
+<a href="https://developer.gnome.org/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gsttagvorbis.html#gst-tag-to-vorbis-comments" title="gst_tag_to_vorbis_comments ()">gst_tag_to_vorbis_comments</a> <span class="c_punctuation">()</span>
@@ -73,7 +72,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="returnvalue">GstTagList</span></a> *
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagList.html"><span class="returnvalue">GstTagList</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gsttagvorbis.html#gst-tag-list-from-vorbiscomment" title="gst_tag_list_from_vorbiscomment ()">gst_tag_list_from_vorbiscomment</a> <span class="c_punctuation">()</span>
@@ -81,7 +80,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="returnvalue">GstTagList</span></a> *
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagList.html"><span class="returnvalue">GstTagList</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gsttagvorbis.html#gst-tag-list-from-vorbiscomment-buffer" title="gst_tag_list_from_vorbiscomment_buffer ()">gst_tag_list_from_vorbiscomment_buffer</a> <span class="c_punctuation">()</span>
@@ -89,7 +88,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="returnvalue">GstBuffer</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gsttagvorbis.html#gst-tag-list-to-vorbiscomment-buffer" title="gst_tag_list_to_vorbiscomment_buffer ()">gst_tag_list_to_vorbiscomment_buffer</a> <span class="c_punctuation">()</span>
@@ -99,11 +98,6 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="gst-plugins-base-libs-gsttagvorbis.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">
-</pre>
-</div>
-<div class="refsect1">
 <a name="gst-plugins-base-libs-gsttagvorbis.includes"></a><h2>Includes</h2>
 <pre class="synopsis">#include &lt;gst/tag/tag.h&gt;
 </pre>
@@ -111,9 +105,9 @@
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gsttagvorbis.description"></a><h2>Description</h2>
 <div class="refsect2">
-<a name="id-1.2.13.4.6.2"></a><p>
+<a name="id-1.2.13.4.5.2"></a><p>
 Contains various utility functions for plugins to parse or create
-vorbiscomments and map them to and from <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a>s.
+vorbiscomments and map them to and from <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagList.html"><span class="type">GstTagList</span></a>s.
 </p>
 </div>
 </div>
@@ -121,11 +115,11 @@
 <a name="gst-plugins-base-libs-gsttagvorbis.functions_details"></a><h2>Functions</h2>
 <div class="refsect2">
 <a name="gst-tag-from-vorbis-tag"></a><h3>gst_tag_from_vorbis_tag ()</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_tag_from_vorbis_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> *vorbis_tag</code></em>);</pre>
+<pre class="programlisting">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+gst_tag_from_vorbis_tag (<em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *vorbis_tag</code></em>);</pre>
 <p>Looks up the GStreamer tag for a vorbiscomment tag.</p>
 <div class="refsect3">
-<a name="id-1.2.13.4.7.2.5"></a><h4>Parameters</h4>
+<a name="id-1.2.13.4.6.2.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -140,7 +134,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.13.4.7.2.6"></a><h4>Returns</h4>
+<a name="id-1.2.13.4.6.2.6"></a><h4>Returns</h4>
 <p> The corresponding GStreamer tag or NULL if none exists.</p>
 <p></p>
 </div>
@@ -148,11 +142,11 @@
 <hr>
 <div class="refsect2">
 <a name="gst-tag-to-vorbis-tag"></a><h3>gst_tag_to_vorbis_tag ()</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_tag_to_vorbis_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> *gst_tag</code></em>);</pre>
+<pre class="programlisting">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+gst_tag_to_vorbis_tag (<em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *gst_tag</code></em>);</pre>
 <p>Looks up the vorbiscomment tag for a GStreamer tag.</p>
 <div class="refsect3">
-<a name="id-1.2.13.4.7.3.5"></a><h4>Parameters</h4>
+<a name="id-1.2.13.4.6.3.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -167,7 +161,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.13.4.7.3.6"></a><h4>Returns</h4>
+<a name="id-1.2.13.4.6.3.6"></a><h4>Returns</h4>
 <p> The corresponding vorbiscomment tag or NULL if none exists.</p>
 <p></p>
 </div>
@@ -176,17 +170,17 @@
 <div class="refsect2">
 <a name="gst-vorbis-tag-add"></a><h3>gst_vorbis_tag_add ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
-gst_vorbis_tag_add (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#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>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *value</code></em>);</pre>
+gst_vorbis_tag_add (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagList.html"><span class="type">GstTagList</span></a> *list</code></em>,
+                    <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
+                    <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *value</code></em>);</pre>
 <p>Convenience function using <a class="link" href="gst-plugins-base-libs-gsttagvorbis.html#gst-tag-from-vorbis-tag" title="gst_tag_from_vorbis_tag ()"><code class="function">gst_tag_from_vorbis_tag()</code></a>, parsing
 a vorbis comment string into the right type and adding it to the
 given taglist <em class="parameter"><code>list</code></em>
 .</p>
 <p>Unknown vorbiscomment tags will be added to the tag list in form
-of a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GST-TAG-EXTENDED-COMMENT:CAPS"><span class="type">GST_TAG_EXTENDED_COMMENT</span></a>.</p>
+of a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagList.html#GST-TAG-EXTENDED-COMMENT:CAPS"><span class="type">GST_TAG_EXTENDED_COMMENT</span></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.13.4.7.4.6"></a><h4>Parameters</h4>
+<a name="id-1.2.13.4.6.4.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -196,7 +190,7 @@
 <tbody>
 <tr>
 <td class="parameter_name"><p>list</p></td>
-<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a></p></td>
+<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagList.html"><span class="type">GstTagList</span></a></p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
@@ -216,13 +210,13 @@
 <hr>
 <div class="refsect2">
 <a name="gst-tag-to-vorbis-comments"></a><h3>gst_tag_to_vorbis_comments ()</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_tag_to_vorbis_comments (<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#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>);</pre>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
+gst_tag_to_vorbis_comments (<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagList.html"><span class="type">GstTagList</span></a> *list</code></em>,
+                            <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>);</pre>
 <p>Creates a new tag list that contains the information parsed out of a
 vorbiscomment packet.</p>
 <div class="refsect3">
-<a name="id-1.2.13.4.7.5.5"></a><h4>Parameters</h4>
+<a name="id-1.2.13.4.6.5.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -232,20 +226,20 @@
 <tbody>
 <tr>
 <td class="parameter_name"><p>list</p></td>
-<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a></p></td>
+<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagList.html"><span class="type">GstTagList</span></a></p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
 <td class="parameter_name"><p>tag</p></td>
-<td class="parameter_description"><p>a GStreamer tag identifier, such as <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GST-TAG-ARTIST:CAPS"><span class="type">GST_TAG_ARTIST</span></a></p></td>
+<td class="parameter_description"><p>a GStreamer tag identifier, such as <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagList.html#GST-TAG-ARTIST:CAPS"><span class="type">GST_TAG_ARTIST</span></a></p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.13.4.7.5.6"></a><h4>Returns</h4>
-<p> A <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of newly-allocated
+<a name="id-1.2.13.4.6.5.6"></a><h4>Returns</h4>
+<p> A <a href="https://developer.gnome.org/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of newly-allocated
 key=value strings. Free with g_list_foreach (list, (GFunc) g_free, NULL)
 plus g_list_free (list). </p>
 <p><span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> utf8][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
@@ -254,16 +248,16 @@
 <hr>
 <div class="refsect2">
 <a name="gst-tag-list-from-vorbiscomment"></a><h3>gst_tag_list_from_vorbiscomment ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="returnvalue">GstTagList</span></a> *
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagList.html"><span class="returnvalue">GstTagList</span></a> *
 gst_tag_list_from_vorbiscomment (<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>const <span class="type">guint8</span> *id_data</code></em>,
-                                 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> id_data_length</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> **vendor_string</code></em>);</pre>
+                                 <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> id_data_length</code></em>,
+                                 <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **vendor_string</code></em>);</pre>
 <p>Creates a new tag list that contains the information parsed out of a
 vorbiscomment packet.</p>
 <div class="refsect3">
-<a name="id-1.2.13.4.7.6.5"></a><h4>Parameters</h4>
+<a name="id-1.2.13.4.6.6.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -302,8 +296,8 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.13.4.7.6.6"></a><h4>Returns</h4>
-<p> A new <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a> with all tags that could be extracted from the
+<a name="id-1.2.13.4.6.6.6"></a><h4>Returns</h4>
+<p> A new <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagList.html"><span class="type">GstTagList</span></a> with all tags that could be extracted from the
 given vorbiscomment buffer or NULL on error.</p>
 <p></p>
 </div>
@@ -311,16 +305,16 @@
 <hr>
 <div class="refsect2">
 <a name="gst-tag-list-from-vorbiscomment-buffer"></a><h3>gst_tag_list_from_vorbiscomment_buffer ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="returnvalue">GstTagList</span></a> *
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagList.html"><span class="returnvalue">GstTagList</span></a> *
 gst_tag_list_from_vorbiscomment_buffer
-                               (<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="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> *buffer</code></em>,
                                 <em class="parameter"><code>const <span class="type">guint8</span> *id_data</code></em>,
-                                <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> id_data_length</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> **vendor_string</code></em>);</pre>
+                                <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> id_data_length</code></em>,
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **vendor_string</code></em>);</pre>
 <p>Creates a new tag list that contains the information parsed out of a
 vorbiscomment packet.</p>
 <div class="refsect3">
-<a name="id-1.2.13.4.7.7.5"></a><h4>Parameters</h4>
+<a name="id-1.2.13.4.6.7.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -353,8 +347,8 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.13.4.7.7.6"></a><h4>Returns</h4>
-<p> A new <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a> with all tags that could be extracted from the
+<a name="id-1.2.13.4.6.7.6"></a><h4>Returns</h4>
+<p> A new <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagList.html"><span class="type">GstTagList</span></a> with all tags that could be extracted from the
 given vorbiscomment buffer or NULL on error.</p>
 <p></p>
 </div>
@@ -362,14 +356,14 @@
 <hr>
 <div class="refsect2">
 <a name="gst-tag-list-to-vorbiscomment-buffer"></a><h3>gst_tag_list_to_vorbiscomment_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_tag_list_to_vorbiscomment_buffer (<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="returnvalue">GstBuffer</span></a> *
+gst_tag_list_to_vorbiscomment_buffer (<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagList.html"><span class="type">GstTagList</span></a> *list</code></em>,
                                       <em class="parameter"><code>const <span class="type">guint8</span> *id_data</code></em>,
-                                      <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> id_data_length</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> *vendor_string</code></em>);</pre>
+                                      <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> id_data_length</code></em>,
+                                      <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *vendor_string</code></em>);</pre>
 <p>Creates a new vorbiscomment buffer from a tag list.</p>
 <div class="refsect3">
-<a name="id-1.2.13.4.7.8.5"></a><h4>Parameters</h4>
+<a name="id-1.2.13.4.6.8.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -402,8 +396,8 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.13.4.7.8.6"></a><h4>Returns</h4>
-<p> A new <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> containing a vorbiscomment buffer with all tags
+<a name="id-1.2.13.4.6.8.6"></a><h4>Returns</h4>
+<p> A new <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> containing a vorbiscomment buffer with all tags
 that could be converted from the given tag list.</p>
 <p></p>
 </div>
@@ -414,11 +408,11 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gsttagvorbis.see-also"></a><h2>See Also</h2>
-<p><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a></p>
+<p><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagList.html"><span class="type">GstTagList</span></a></p>
 </div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gsttagxmp.html b/docs/libs/html/gst-plugins-base-libs-gsttagxmp.html
index fa00360..af196d8 100644
--- a/docs/libs/html/gst-plugins-base-libs-gsttagxmp.html
+++ b/docs/libs/html/gst-plugins-base-libs-gsttagxmp.html
@@ -8,15 +8,14 @@
 <link rel="up" href="gstreamer-tag.html" title="Tag Support Library">
 <link rel="prev" href="gst-plugins-base-libs-gsttagexif.html" title="gsttagexif">
 <link rel="next" href="gst-plugins-base-libs-gsttagxmpwriter.html" title="gsttagxmpwriter">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gsttagxmp.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gsttagxmp.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gsttagxmp.description" class="shortcut">Description</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="gstreamer-tag.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -43,7 +42,7 @@
 <tbody>
 <tr>
 <td class="function_type">
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="returnvalue">GstTagList</span></a> *
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagList.html"><span class="returnvalue">GstTagList</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gsttagxmp.html#gst-tag-list-from-xmp-buffer" title="gst_tag_list_from_xmp_buffer ()">gst_tag_list_from_xmp_buffer</a> <span class="c_punctuation">()</span>
@@ -51,14 +50,14 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="returnvalue">GstBuffer</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gsttagxmp.html#gst-tag-list-to-xmp-buffer" title="gst_tag_list_to_xmp_buffer ()">gst_tag_list_to_xmp_buffer</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> **
+<td class="function_type">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> **
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gsttagxmp.html#gst-tag-xmp-list-schemas" title="gst_tag_xmp_list_schemas ()">gst_tag_xmp_list_schemas</a> <span class="c_punctuation">()</span>
@@ -68,11 +67,6 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="gst-plugins-base-libs-gsttagxmp.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">
-</pre>
-</div>
-<div class="refsect1">
 <a name="gst-plugins-base-libs-gsttagxmp.includes"></a><h2>Includes</h2>
 <pre class="synopsis">#include &lt;gst/tag/tag.h&gt;
 </pre>
@@ -80,18 +74,18 @@
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gsttagxmp.description"></a><h2>Description</h2>
 <p>Contains various utility functions for plugins to parse or create
-xmp packets and map them to and from <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a>s.</p>
+xmp packets and map them to and from <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagList.html"><span class="type">GstTagList</span></a>s.</p>
 <p>Please note that the xmp parser is very lightweight and not strict at all.</p>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gsttagxmp.functions_details"></a><h2>Functions</h2>
 <div class="refsect2">
 <a name="gst-tag-list-from-xmp-buffer"></a><h3>gst_tag_list_from_xmp_buffer ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="returnvalue">GstTagList</span></a> *
-gst_tag_list_from_xmp_buffer (<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>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagList.html"><span class="returnvalue">GstTagList</span></a> *
+gst_tag_list_from_xmp_buffer (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> *buffer</code></em>);</pre>
 <p>Parse a xmp packet into a taglist.</p>
 <div class="refsect3">
-<a name="id-1.2.13.7.7.2.5"></a><h4>Parameters</h4>
+<a name="id-1.2.13.7.6.2.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -106,23 +100,23 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.13.7.7.2.6"></a><h4>Returns</h4>
-<p> new taglist or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, free the list when done</p>
+<a name="id-1.2.13.7.6.2.6"></a><h4>Returns</h4>
+<p> new taglist or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, free the list when done</p>
 <p></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-tag-list-to-xmp-buffer"></a><h3>gst_tag_list_to_xmp_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_tag_list_to_xmp_buffer (<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a> *list</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> read_only</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> **schemas</code></em>);</pre>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="returnvalue">GstBuffer</span></a> *
+gst_tag_list_to_xmp_buffer (<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagList.html"><span class="type">GstTagList</span></a> *list</code></em>,
+                            <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> read_only</code></em>,
+                            <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **schemas</code></em>);</pre>
 <p>Formats a taglist as a xmp packet using only the selected
-schemas. An empty list (<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>) means that all schemas should
+schemas. An empty list (<a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>) means that all schemas should
 be used</p>
 <div class="refsect3">
-<a name="id-1.2.13.7.7.3.5"></a><h4>Parameters</h4>
+<a name="id-1.2.13.7.6.3.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -142,27 +136,27 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>schemas</p></td>
-<td class="parameter_description"><p><a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> terminated array of schemas to be used on serialization</p></td>
+<td class="parameter_description"><p><a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> terminated array of schemas to be used on serialization</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.13.7.7.3.6"></a><h4>Returns</h4>
-<p> new buffer or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, unref the buffer when done</p>
+<a name="id-1.2.13.7.6.3.6"></a><h4>Returns</h4>
+<p> new buffer or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, unref the buffer when done</p>
 <p></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-tag-xmp-list-schemas"></a><h3>gst_tag_xmp_list_schemas ()</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> **
+<pre class="programlisting">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> **
 gst_tag_xmp_list_schemas (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
 <p>Gets the list of supported schemas in the xmp lib</p>
 <div class="refsect3">
-<a name="id-1.2.13.7.7.4.5"></a><h4>Returns</h4>
-<p> 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 strings with the
+<a name="id-1.2.13.7.6.4.5"></a><h4>Returns</h4>
+<p> a <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> terminated array of strings with the
 schema names. </p>
 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
 </div>
@@ -173,11 +167,11 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gsttagxmp.see-also"></a><h2>See Also</h2>
-<p><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a></p>
+<p><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagList.html"><span class="type">GstTagList</span></a></p>
 </div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gsttagxmpwriter.html b/docs/libs/html/gst-plugins-base-libs-gsttagxmpwriter.html
index 15da727..9882c2b 100644
--- a/docs/libs/html/gst-plugins-base-libs-gsttagxmpwriter.html
+++ b/docs/libs/html/gst-plugins-base-libs-gsttagxmpwriter.html
@@ -8,15 +8,14 @@
 <link rel="up" href="gstreamer-tag.html" title="Tag Support Library">
 <link rel="prev" href="gst-plugins-base-libs-gsttagxmp.html" title="gsttagxmp">
 <link rel="next" href="gst-plugins-base-libs-gsttagdemux.html" title="gsttagdemux">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gsttagxmpwriter.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gsttagxmpwriter.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gsttagxmpwriter.description" class="shortcut">Description</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="gstreamer-tag.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -58,7 +57,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gsttagxmpwriter.html#gst-tag-xmp-writer-has-schema" title="gst_tag_xmp_writer_has_schema ()">gst_tag_xmp_writer_has_schema</a> <span class="c_punctuation">()</span>
@@ -82,7 +81,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="returnvalue">GstBuffer</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gsttagxmpwriter.html#gst-tag-xmp-writer-tag-list-to-xmp-buffer" title="gst_tag_xmp_writer_tag_list_to_xmp_buffer ()">gst_tag_xmp_writer_tag_list_to_xmp_buffer</a> <span class="c_punctuation">()</span>
@@ -92,14 +91,9 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="gst-plugins-base-libs-gsttagxmpwriter.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">
-</pre>
-</div>
-<div class="refsect1">
 <a name="gst-plugins-base-libs-gsttagxmpwriter.description"></a><h2>Description</h2>
 <div class="refsect2">
-<a name="id-1.2.13.8.5.2"></a><p>
+<a name="id-1.2.13.8.4.2"></a><p>
 This interface is implemented by elements that are able to do XMP serialization. Examples for
 such elements are <span class="type">jifmux</span> and <span class="type">qtmux</span>.
 </p>
@@ -119,7 +113,7 @@
 <p>Adds all available XMP schemas to the configuration. Meaning that
 all will be used.</p>
 <div class="refsect3">
-<a name="id-1.2.13.8.6.2.5"></a><h4>Parameters</h4>
+<a name="id-1.2.13.8.5.2.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -139,11 +133,11 @@
 <a name="gst-tag-xmp-writer-add-schema"></a><h3>gst_tag_xmp_writer_add_schema ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_tag_xmp_writer_add_schema (<em class="parameter"><code><span class="type">GstTagXmpWriter</span> *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> *schema</code></em>);</pre>
+                               <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *schema</code></em>);</pre>
 <p>Adds <em class="parameter"><code>schema</code></em>
  to the list schemas</p>
 <div class="refsect3">
-<a name="id-1.2.13.8.6.3.5"></a><h4>Parameters</h4>
+<a name="id-1.2.13.8.5.3.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -168,13 +162,13 @@
 <hr>
 <div class="refsect2">
 <a name="gst-tag-xmp-writer-has-schema"></a><h3>gst_tag_xmp_writer_has_schema ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_tag_xmp_writer_has_schema (<em class="parameter"><code><span class="type">GstTagXmpWriter</span> *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> *schema</code></em>);</pre>
+                               <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *schema</code></em>);</pre>
 <p>Checks if <em class="parameter"><code>schema</code></em>
  is going to be used</p>
 <div class="refsect3">
-<a name="id-1.2.13.8.6.4.5"></a><h4>Parameters</h4>
+<a name="id-1.2.13.8.5.4.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -196,8 +190,8 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.13.8.6.4.6"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if it is going to be used</p>
+<a name="id-1.2.13.8.5.4.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if it is going to be used</p>
 <p></p>
 </div>
 </div>
@@ -206,11 +200,11 @@
 <a name="gst-tag-xmp-writer-remove-schema"></a><h3>gst_tag_xmp_writer_remove_schema ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_tag_xmp_writer_remove_schema (<em class="parameter"><code><span class="type">GstTagXmpWriter</span> *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> *schema</code></em>);</pre>
+                                  <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *schema</code></em>);</pre>
 <p>Removes a schema from the list of schemas to use. Nothing is done if
 the schema wasn't in the list</p>
 <div class="refsect3">
-<a name="id-1.2.13.8.6.5.5"></a><h4>Parameters</h4>
+<a name="id-1.2.13.8.5.5.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -240,7 +234,7 @@
 <p>Removes all schemas from the list of schemas to use. Meaning that no
 XMP will be generated.</p>
 <div class="refsect3">
-<a name="id-1.2.13.8.6.6.5"></a><h4>Parameters</h4>
+<a name="id-1.2.13.8.5.6.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -258,11 +252,11 @@
 <hr>
 <div class="refsect2">
 <a name="gst-tag-xmp-writer-tag-list-to-xmp-buffer"></a><h3>gst_tag_xmp_writer_tag_list_to_xmp_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> *
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="returnvalue">GstBuffer</span></a> *
 gst_tag_xmp_writer_tag_list_to_xmp_buffer
                                (<em class="parameter"><code><span class="type">GstTagXmpWriter</span> *config</code></em>,
-                                <em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a> *taglist</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> read_only</code></em>);</pre>
+                                <em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagList.html"><span class="type">GstTagList</span></a> *taglist</code></em>,
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> read_only</code></em>);</pre>
 </div>
 </div>
 <div class="refsect1">
@@ -271,6 +265,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstvideo.html b/docs/libs/html/gst-plugins-base-libs-gstvideo.html
index 525c49e..cca6297 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstvideo.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstvideo.html
@@ -8,15 +8,14 @@
 <link rel="up" href="gstreamer-video.html" title="Video Library">
 <link rel="prev" href="gstreamer-video.html" title="Video Library">
 <link rel="next" href="gst-plugins-base-libs-gstvideometa.html" title="gstvideometa">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstvideo.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstvideo.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gstvideo.description" class="shortcut">Description</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="gstreamer-video.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -42,7 +41,7 @@
 <tbody>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-calculate-display-ratio" title="gst_video_calculate_display_ratio ()">gst_video_calculate_display_ratio</a> <span class="c_punctuation">()</span>
@@ -50,6 +49,14 @@
 </tr>
 <tr>
 <td class="function_type">
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-guess-framerate" title="gst_video_guess_framerate ()">gst_video_guess_framerate</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
 <span class="returnvalue">void</span>
 </td>
 <td class="function_name">
@@ -82,7 +89,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstEvent.html#GstEvent"><span class="returnvalue">GstEvent</span></a> *
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstEvent.html"><span class="returnvalue">GstEvent</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-event-new-still-frame" title="gst_video_event_new_still_frame ()">gst_video_event_new_still_frame</a> <span class="c_punctuation">()</span>
@@ -90,7 +97,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-event-parse-still-frame" title="gst_video_event_parse_still_frame ()">gst_video_event_parse_still_frame</a> <span class="c_punctuation">()</span>
@@ -98,7 +105,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstEvent.html#GstEvent"><span class="returnvalue">GstEvent</span></a> *
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstEvent.html"><span class="returnvalue">GstEvent</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-event-new-downstream-force-key-unit" title="gst_video_event_new_downstream_force_key_unit ()">gst_video_event_new_downstream_force_key_unit</a> <span class="c_punctuation">()</span>
@@ -106,7 +113,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-event-parse-downstream-force-key-unit" title="gst_video_event_parse_downstream_force_key_unit ()">gst_video_event_parse_downstream_force_key_unit</a> <span class="c_punctuation">()</span>
@@ -114,7 +121,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstEvent.html#GstEvent"><span class="returnvalue">GstEvent</span></a> *
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstEvent.html"><span class="returnvalue">GstEvent</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-event-new-upstream-force-key-unit" title="gst_video_event_new_upstream_force_key_unit ()">gst_video_event_new_upstream_force_key_unit</a> <span class="c_punctuation">()</span>
@@ -122,7 +129,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-event-parse-upstream-force-key-unit" title="gst_video_event_parse_upstream_force_key_unit ()">gst_video_event_parse_upstream_force_key_unit</a> <span class="c_punctuation">()</span>
@@ -130,7 +137,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-event-is-force-key-unit" title="gst_video_event_is_force_key_unit ()">gst_video_event_is_force_key_unit</a> <span class="c_punctuation">()</span>
@@ -138,21 +145,6 @@
 </tr>
 <tr>
 <td class="function_type">
-<a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoChromaSite" title="enum GstVideoChromaSite"><span class="returnvalue">GstVideoChromaSite</span></a>
-</td>
-<td class="function_name">
-<a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-chroma-from-string" title="gst_video_chroma_from_string ()">gst_video_chroma_from_string</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
-</td>
-<td class="function_name">
-<a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-chroma-to-string" title="gst_video_chroma_to_string ()">gst_video_chroma_to_string</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
 <span class="returnvalue">void</span>
 </td>
 <td class="function_name">
@@ -374,7 +366,7 @@
 </td>
 </tr>
 <tr>
-<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<td class="function_type">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-format-to-string" title="gst_video_format_to_string ()">gst_video_format_to_string</a> <span class="c_punctuation">()</span>
@@ -395,7 +387,39 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-color-range-offsets" title="gst_video_color_range_offsets ()">gst_video_color_range_offsets</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-color-matrix-get-Kr-Kb" title="gst_video_color_matrix_get_Kr_Kb ()">gst_video_color_matrix_get_Kr_Kb</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gdouble"><span class="returnvalue">gdouble</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-color-transfer-decode" title="gst_video_color_transfer_decode ()">gst_video_color_transfer_decode</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gdouble"><span class="returnvalue">gdouble</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-color-transfer-encode" title="gst_video_color_transfer_encode ()">gst_video_color_transfer_encode</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-colorimetry-matches" title="gst_video_colorimetry_matches ()">gst_video_colorimetry_matches</a> <span class="c_punctuation">()</span>
@@ -403,7 +427,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-colorimetry-from-string" title="gst_video_colorimetry_from_string ()">gst_video_colorimetry_from_string</a> <span class="c_punctuation">()</span>
@@ -411,21 +435,13 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-colorimetry-to-string" title="gst_video_colorimetry_to_string ()">gst_video_colorimetry_to_string</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td class="function_type">
-<span class="returnvalue">void</span>
-</td>
-<td class="function_name">
-<a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-color-range-offsets" title="gst_video_color_range_offsets ()">gst_video_color_range_offsets</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
 <td class="define_keyword">#define</td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-FORMAT:CAPS" title="GST_VIDEO_INFO_FORMAT()">GST_VIDEO_INFO_FORMAT</a><span class="c_punctuation">()</span>
@@ -641,7 +657,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-info-from-caps" title="gst_video_info_from_caps ()">gst_video_info_from_caps</a> <span class="c_punctuation">()</span>
@@ -649,7 +665,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="returnvalue">GstCaps</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-info-to-caps" title="gst_video_info_to_caps ()">gst_video_info_to_caps</a> <span class="c_punctuation">()</span>
@@ -657,7 +673,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-info-convert" title="gst_video_info_convert ()">gst_video_info_convert</a> <span class="c_punctuation">()</span>
@@ -665,7 +681,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-info-is-equal" title="gst_video_info_is_equal ()">gst_video_info_is_equal</a> <span class="c_punctuation">()</span>
@@ -681,7 +697,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-frame-map-id" title="gst_video_frame_map_id ()">gst_video_frame_map_id</a> <span class="c_punctuation">()</span>
@@ -689,7 +705,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-frame-map" title="gst_video_frame_map ()">gst_video_frame_map</a> <span class="c_punctuation">()</span>
@@ -705,7 +721,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-frame-copy" title="gst_video_frame_copy ()">gst_video_frame_copy</a> <span class="c_punctuation">()</span>
@@ -713,7 +729,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-frame-copy-plane" title="gst_video_frame_copy_plane ()">gst_video_frame_copy_plane</a> <span class="c_punctuation">()</span>
@@ -865,7 +881,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-tile-get-index" title="gst_video_tile_get_index ()">gst_video_tile_get_index</a> <span class="c_punctuation">()</span>
@@ -907,6 +923,61 @@
 <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-TILE-Y-TILES:CAPS" title="GST_VIDEO_TILE_Y_TILES()">GST_VIDEO_TILE_Y_TILES</a><span class="c_punctuation">()</span>
 </td>
 </tr>
+<tr>
+<td class="function_type">
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-blend" title="gst_video_blend ()">gst_video_blend</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-blend-scale-linear-RGBA" title="gst_video_blend_scale_linear_RGBA ()">gst_video_blend_scale_linear_RGBA</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoConverter" title="GstVideoConverter"><span class="returnvalue">GstVideoConverter</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-converter-new" title="gst_video_converter_new ()">gst_video_converter_new</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-converter-free" title="gst_video_converter_free ()">gst_video_converter_free</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstStructure.html"><span class="returnvalue">GstStructure</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-converter-get-config" title="gst_video_converter_get_config ()">gst_video_converter_get_config</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-converter-set-config" title="gst_video_converter_set_config ()">gst_video_converter_set_config</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-converter-frame" title="gst_video_converter_frame ()">gst_video_converter_frame</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
 </tbody>
 </table></div>
 </div>
@@ -956,10 +1027,6 @@
 </tr>
 <tr>
 <td class="datatype_keyword">enum</td>
-<td class="function_name"><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoChromaSite" title="enum GstVideoChromaSite">GstVideoChromaSite</a></td>
-</tr>
-<tr>
-<td class="datatype_keyword">enum</td>
 <td class="function_name"><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormatFlags" title="enum GstVideoFormatFlags">GstVideoFormatFlags</a></td>
 </tr>
 <tr>
@@ -988,11 +1055,11 @@
 </tr>
 <tr>
 <td class="datatype_keyword">enum</td>
-<td class="function_name"><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoTransferFunction" title="enum GstVideoTransferFunction">GstVideoTransferFunction</a></td>
+<td class="function_name"><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoColorPrimaries" title="enum GstVideoColorPrimaries">GstVideoColorPrimaries</a></td>
 </tr>
 <tr>
 <td class="datatype_keyword">enum</td>
-<td class="function_name"><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoColorPrimaries" title="enum GstVideoColorPrimaries">GstVideoColorPrimaries</a></td>
+<td class="function_name"><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoTransferFunction" title="enum GstVideoTransferFunction">GstVideoTransferFunction</a></td>
 </tr>
 <tr>
 <td class="datatype_keyword"> </td>
@@ -1030,15 +1097,14 @@
 <td class="datatype_keyword">enum</td>
 <td class="function_name"><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoTileMode" title="enum GstVideoTileMode">GstVideoTileMode</a></td>
 </tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoConverter" title="GstVideoConverter">GstVideoConverter</a></td>
+</tr>
 </tbody>
 </table></div>
 </div>
 <div class="refsect1">
-<a name="gst-plugins-base-libs-gstvideo.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">
-</pre>
-</div>
-<div class="refsect1">
 <a name="gst-plugins-base-libs-gstvideo.includes"></a><h2>Includes</h2>
 <pre class="synopsis">#include &lt;gst/video/video.h&gt;
 </pre>
@@ -1046,7 +1112,7 @@
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstvideo.description"></a><h2>Description</h2>
 <div class="refsect2">
-<a name="id-1.2.15.3.7.2"></a><p>
+<a name="id-1.2.15.3.6.2"></a><p>
 This library contains some helper functions and includes the
 videosink and videofilter base classes.
 </p>
@@ -1056,20 +1122,20 @@
 <a name="gst-plugins-base-libs-gstvideo.functions_details"></a><h2>Functions</h2>
 <div class="refsect2">
 <a name="gst-video-calculate-display-ratio"></a><h3>gst_video_calculate_display_ratio ()</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_video_calculate_display_ratio (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *dar_n</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> *dar_d</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> video_width</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> video_height</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> video_par_n</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> video_par_d</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> display_par_n</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> display_par_d</code></em>);</pre>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gst_video_calculate_display_ratio (<em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *dar_n</code></em>,
+                                   <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *dar_d</code></em>,
+                                   <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> video_width</code></em>,
+                                   <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> video_height</code></em>,
+                                   <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> video_par_n</code></em>,
+                                   <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> video_par_d</code></em>,
+                                   <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> display_par_n</code></em>,
+                                   <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> display_par_d</code></em>);</pre>
 <p>Given the Pixel Aspect Ratio and size of an input video frame, and the
 pixel aspect ratio of the intended display device, calculates the actual
 display ratio the video will be rendered with.</p>
 <div class="refsect3">
-<a name="id-1.2.15.3.8.2.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.3.7.2.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1121,7 +1187,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.3.8.2.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.3.7.2.6"></a><h4>Returns</h4>
 <p> A boolean indicating success and a calculated Display Ratio in the
 dar_n and dar_d parameters.
 The return value is FALSE in the case of integer overflow or other error.</p>
@@ -1130,25 +1196,73 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-video-guess-framerate"></a><h3>gst_video_guess_framerate ()</h3>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gst_video_guess_framerate (<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> duration</code></em>,
+                           <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *dest_n</code></em>,
+                           <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *dest_d</code></em>);</pre>
+<p>Given the nominal duration of one video frame,
+this function will check some standard framerates for
+a close match (within 0.1%) and return one if possible,</p>
+<p>It will calculate an arbitrary framerate if no close
+match was found, and return <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>.</p>
+<p>It returns <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if a duration of 0 is passed.</p>
+<div class="refsect3">
+<a name="id-1.2.15.3.7.3.7"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>duration</p></td>
+<td class="parameter_description"><p>Nominal duration of one frame</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>dest_n</p></td>
+<td class="parameter_description"><p> Numerator of the calculated framerate. </p></td>
+<td class="parameter_annotations"><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 class="parameter_name"><p>dest_d</p></td>
+<td class="parameter_description"><p> Denominator of the calculated framerate. </p></td>
+<td class="parameter_annotations"><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>
+</div>
+<div class="refsect3">
+<a name="id-1.2.15.3.7.3.8"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if a close "standard" framerate was
+recognised, and <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise.</p>
+<p></p>
+</div>
+<p class="since">Since 1.6</p>
+</div>
+<hr>
+<div class="refsect2">
 <a name="GstVideoConvertSampleCallback"></a><h3>GstVideoConvertSampleCallback ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 <span class="c_punctuation">(</span>*GstVideoConvertSampleCallback<span class="c_punctuation">)</span> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstSample.html"><span class="type">GstSample</span></a> *sample</code></em>,
-                                  <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>,
-                                  <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>
+                                  <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> *error</code></em>,
+                                  <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-video-convert-sample"></a><h3>gst_video_convert_sample ()</h3>
 <pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstSample.html"><span class="returnvalue">GstSample</span></a> *
 gst_video_convert_sample (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstSample.html"><span class="type">GstSample</span></a> *sample</code></em>,
-                          <em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *to_caps</code></em>,
+                          <em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> *to_caps</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> timeout</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>
+                          <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
 <p>Converts a raw video buffer into the specified output caps.</p>
 <p>The output caps can be any raw video formats or any image formats (jpeg, png, ...).</p>
 <p>The width, height and pixel-aspect-ratio can also be specified in the output caps.</p>
 <div class="refsect3">
-<a name="id-1.2.15.3.8.4.7"></a><h4>Parameters</h4>
+<a name="id-1.2.15.3.7.5.7"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1163,7 +1277,7 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>to_caps</p></td>
-<td class="parameter_description"><p>the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> to convert to</p></td>
+<td class="parameter_description"><p>the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> to convert to</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
@@ -1173,16 +1287,16 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>error</p></td>
-<td class="parameter_description"><p>pointer to a <a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a>. Can be <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p></td>
+<td class="parameter_description"><p>pointer to a <a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a>. Can be <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.3.8.4.8"></a><h4>Returns</h4>
-<p> The converted <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstSample.html"><span class="type">GstSample</span></a>, 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 happened (in which case <em class="parameter"><code>err</code></em>
-will point to the <a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a>).</p>
+<a name="id-1.2.15.3.7.5.8"></a><h4>Returns</h4>
+<p> The converted <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstSample.html"><span class="type">GstSample</span></a>, or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if an error happened (in which case <em class="parameter"><code>err</code></em>
+will point to the <a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a>).</p>
 <p></p>
 </div>
 </div>
@@ -1191,11 +1305,11 @@
 <a name="gst-video-convert-sample-async"></a><h3>gst_video_convert_sample_async ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_video_convert_sample_async (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstSample.html"><span class="type">GstSample</span></a> *sample</code></em>,
-                                <em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *to_caps</code></em>,
+                                <em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> *to_caps</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> timeout</code></em>,
                                 <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoConvertSampleCallback" title="GstVideoConvertSampleCallback ()"><span class="type">GstVideoConvertSampleCallback</span></a> callback</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_notify</code></em>);</pre>
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> destroy_notify</code></em>);</pre>
 <p>Converts a raw video buffer into the specified output caps.</p>
 <p>The output caps can be any raw video formats or any image formats (jpeg, png, ...).</p>
 <p>The width, height and pixel-aspect-ratio can also be specified in the output caps.</p>
@@ -1204,14 +1318,14 @@
 finish after <em class="parameter"><code>timeout</code></em>
 . <em class="parameter"><code>callback</code></em>
  will always be called from the thread default
-<a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#GMainContext"><code class="literal">GMainContext</code></a>, see <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-context-get-thread-default"><code class="function">g_main_context_get_thread_default()</code></a>. If GLib before 2.22 is used,
+<a href="https://developer.gnome.org/glib/unstable/glib-The-Main-Event-Loop.html#GMainContext"><code class="literal">GMainContext</code></a>, see <a href="https://developer.gnome.org/glib/unstable/glib-The-Main-Event-Loop.html#g-main-context-get-thread-default"><code class="function">g_main_context_get_thread_default()</code></a>. If GLib before 2.22 is used,
 this will always be the global default main context.</p>
 <p><em class="parameter"><code>destroy_notify</code></em>
  will be called after the callback was called and <em class="parameter"><code>user_data</code></em>
  is not needed
 anymore.</p>
 <div class="refsect3">
-<a name="id-1.2.15.3.8.5.9"></a><h4>Parameters</h4>
+<a name="id-1.2.15.3.7.6.9"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1226,7 +1340,7 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>to_caps</p></td>
-<td class="parameter_description"><p>the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> to convert to</p></td>
+<td class="parameter_description"><p>the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> to convert to</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
@@ -1247,7 +1361,7 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>destroy_notify</p></td>
-<td class="parameter_description"><p><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><code class="literal">GDestroyNotify</code></a> to be called after <em class="parameter"><code>user_data</code></em>
+<td class="parameter_description"><p><a href="https://developer.gnome.org/glib/unstable/glib-Datasets.html#GDestroyNotify"><code class="literal">GDestroyNotify</code></a> to be called after <em class="parameter"><code>user_data</code></em>
 is not needed anymore</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
@@ -1263,7 +1377,7 @@
 <p>Set <em class="parameter"><code>align</code></em>
  to its default values with no padding and no alignment.</p>
 <div class="refsect3">
-<a name="id-1.2.15.3.8.6.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.3.7.7.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1281,16 +1395,16 @@
 <hr>
 <div class="refsect2">
 <a name="gst-video-event-new-still-frame"></a><h3>gst_video_event_new_still_frame ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstEvent.html#GstEvent"><span class="returnvalue">GstEvent</span></a> *
-gst_video_event_new_still_frame (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> in_still</code></em>);</pre>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstEvent.html"><span class="returnvalue">GstEvent</span></a> *
+gst_video_event_new_still_frame (<em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> in_still</code></em>);</pre>
 <p>Creates a new Still Frame event. If <em class="parameter"><code>in_still</code></em>
- is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, then the event
-represents the start of a still frame sequence. If it is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>, then
+ is <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, then the event
+represents the start of a still frame sequence. If it is <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>, then
 the event ends a still frame sequence.</p>
 <p>To parse an event created by <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-event-new-still-frame" title="gst_video_event_new_still_frame ()"><code class="function">gst_video_event_new_still_frame()</code></a> use
 <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-event-parse-still-frame" title="gst_video_event_parse_still_frame ()"><code class="function">gst_video_event_parse_still_frame()</code></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.15.3.8.7.6"></a><h4>Parameters</h4>
+<a name="id-1.2.15.3.7.8.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1305,7 +1419,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.3.8.7.7"></a><h4>Returns</h4>
+<a name="id-1.2.15.3.7.8.7"></a><h4>Returns</h4>
 <p> The new GstEvent</p>
 <p></p>
 </div>
@@ -1313,10 +1427,10 @@
 <hr>
 <div class="refsect2">
 <a name="gst-video-event-parse-still-frame"></a><h3>gst_video_event_parse_still_frame ()</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_video_event_parse_still_frame (<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="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *in_still</code></em>);</pre>
-<p>Parse a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstEvent.html#GstEvent"><span class="type">GstEvent</span></a>, identify if it is a Still Frame event, and
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gst_video_event_parse_still_frame (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstEvent.html"><span class="type">GstEvent</span></a> *event</code></em>,
+                                   <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *in_still</code></em>);</pre>
+<p>Parse a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstEvent.html"><span class="type">GstEvent</span></a>, identify if it is a Still Frame event, and
 return the still-frame state from the event if it is.
 If the event represents the start of a still frame, the in_still
 variable will be set to TRUE, otherwise FALSE. It is OK to pass NULL for the
@@ -1324,7 +1438,7 @@
 event.</p>
 <p>Create a still frame event using <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-event-new-still-frame" title="gst_video_event_new_still_frame ()"><code class="function">gst_video_event_new_still_frame()</code></a></p>
 <div class="refsect3">
-<a name="id-1.2.15.3.8.8.6"></a><h4>Parameters</h4>
+<a name="id-1.2.15.3.7.9.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1334,7 +1448,7 @@
 <tbody>
 <tr>
 <td class="parameter_name"><p>event</p></td>
-<td class="parameter_description"><p>A <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstEvent.html#GstEvent"><span class="type">GstEvent</span></a> to parse</p></td>
+<td class="parameter_description"><p>A <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstEvent.html"><span class="type">GstEvent</span></a> to parse</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
@@ -1346,21 +1460,21 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.3.8.8.7"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the event is a valid still-frame event. <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if not</p>
+<a name="id-1.2.15.3.7.9.7"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the event is a valid still-frame event. <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if not</p>
 <p></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-video-event-new-downstream-force-key-unit"></a><h3>gst_video_event_new_downstream_force_key_unit ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstEvent.html#GstEvent"><span class="returnvalue">GstEvent</span></a> *
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstEvent.html"><span class="returnvalue">GstEvent</span></a> *
 gst_video_event_new_downstream_force_key_unit
                                (<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="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> stream_time</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> running_time</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> all_headers</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> count</code></em>);</pre>
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> all_headers</code></em>,
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> count</code></em>);</pre>
 <p>Creates a new downstream force key unit event. A downstream force key unit
 event can be sent down the pipeline to request downstream elements to produce
 a key unit. A downstream force key unit event must also be sent when handling
@@ -1369,7 +1483,7 @@
 <p>To parse an event created by <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-event-new-downstream-force-key-unit" title="gst_video_event_new_downstream_force_key_unit ()"><code class="function">gst_video_event_new_downstream_force_key_unit()</code></a> use
 <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-event-parse-downstream-force-key-unit" title="gst_video_event_parse_downstream_force_key_unit ()"><code class="function">gst_video_event_parse_downstream_force_key_unit()</code></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.15.3.8.9.6"></a><h4>Parameters</h4>
+<a name="id-1.2.15.3.7.10.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1394,7 +1508,7 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>all_headers</p></td>
-<td class="parameter_description"><p><a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> to produce headers when starting a new key unit</p></td>
+<td class="parameter_description"><p><a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> to produce headers when starting a new key unit</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
@@ -1406,7 +1520,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.3.8.9.7"></a><h4>Returns</h4>
+<a name="id-1.2.15.3.7.10.7"></a><h4>Returns</h4>
 <p> The new GstEvent</p>
 <p></p>
 </div>
@@ -1414,21 +1528,21 @@
 <hr>
 <div class="refsect2">
 <a name="gst-video-event-parse-downstream-force-key-unit"></a><h3>gst_video_event_parse_downstream_force_key_unit ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_video_event_parse_downstream_force_key_unit
-                               (<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="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstEvent.html"><span class="type">GstEvent</span></a> *event</code></em>,
                                 <em class="parameter"><code><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="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *stream_time</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> *running_time</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> *all_headers</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> *count</code></em>);</pre>
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *all_headers</code></em>,
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *count</code></em>);</pre>
 <p>Get timestamp, stream-time, running-time, all-headers and count in the force
 key unit event. See <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-event-new-downstream-force-key-unit" title="gst_video_event_new_downstream_force_key_unit ()"><code class="function">gst_video_event_new_downstream_force_key_unit()</code></a> for a
 full description of the downstream force key unit event.</p>
 <p><em class="parameter"><code>running_time</code></em>
  will be adjusted for any pad offsets of pads it was passing through.</p>
 <div class="refsect3">
-<a name="id-1.2.15.3.8.10.6"></a><h4>Parameters</h4>
+<a name="id-1.2.15.3.7.11.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1438,7 +1552,7 @@
 <tbody>
 <tr>
 <td class="parameter_name"><p>event</p></td>
-<td class="parameter_description"><p>A <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstEvent.html#GstEvent"><span class="type">GstEvent</span></a> to parse</p></td>
+<td class="parameter_description"><p>A <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstEvent.html"><span class="type">GstEvent</span></a> to parse</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
@@ -1470,19 +1584,19 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.3.8.10.7"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the event is a valid downstream force key unit event.</p>
+<a name="id-1.2.15.3.7.11.7"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the event is a valid downstream force key unit event.</p>
 <p></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-video-event-new-upstream-force-key-unit"></a><h3>gst_video_event_new_upstream_force_key_unit ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstEvent.html#GstEvent"><span class="returnvalue">GstEvent</span></a> *
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstEvent.html"><span class="returnvalue">GstEvent</span></a> *
 gst_video_event_new_upstream_force_key_unit
                                (<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> running_time</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> all_headers</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> count</code></em>);</pre>
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> all_headers</code></em>,
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> count</code></em>);</pre>
 <p>Creates a new upstream force key unit event. An upstream force key unit event
 can be sent to request upstream elements to produce a key unit. </p>
 <p><em class="parameter"><code>running_time</code></em>
@@ -1492,7 +1606,7 @@
 <p>To parse an event created by <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-event-new-downstream-force-key-unit" title="gst_video_event_new_downstream_force_key_unit ()"><code class="function">gst_video_event_new_downstream_force_key_unit()</code></a> use
 <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-event-parse-downstream-force-key-unit" title="gst_video_event_parse_downstream_force_key_unit ()"><code class="function">gst_video_event_parse_downstream_force_key_unit()</code></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.15.3.8.11.7"></a><h4>Parameters</h4>
+<a name="id-1.2.15.3.7.12.7"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1507,7 +1621,7 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>all_headers</p></td>
-<td class="parameter_description"><p><a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> to produce headers when starting a new key unit</p></td>
+<td class="parameter_description"><p><a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> to produce headers when starting a new key unit</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
@@ -1519,7 +1633,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.3.8.11.8"></a><h4>Returns</h4>
+<a name="id-1.2.15.3.7.12.8"></a><h4>Returns</h4>
 <p> The new GstEvent</p>
 <p></p>
 </div>
@@ -1527,12 +1641,12 @@
 <hr>
 <div class="refsect2">
 <a name="gst-video-event-parse-upstream-force-key-unit"></a><h3>gst_video_event_parse_upstream_force_key_unit ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_video_event_parse_upstream_force_key_unit
-                               (<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="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstEvent.html"><span class="type">GstEvent</span></a> *event</code></em>,
                                 <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *running_time</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> *all_headers</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> *count</code></em>);</pre>
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *all_headers</code></em>,
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *count</code></em>);</pre>
 <p>Get running-time, all-headers and count in the force key unit event. See
 <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-event-new-upstream-force-key-unit" title="gst_video_event_new_upstream_force_key_unit ()"><code class="function">gst_video_event_new_upstream_force_key_unit()</code></a> for a full description of the
 upstream force key unit event.</p>
@@ -1540,7 +1654,7 @@
 <p><em class="parameter"><code>running_time</code></em>
  will be adjusted for any pad offsets of pads it was passing through.</p>
 <div class="refsect3">
-<a name="id-1.2.15.3.8.12.7"></a><h4>Parameters</h4>
+<a name="id-1.2.15.3.7.13.7"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1550,7 +1664,7 @@
 <tbody>
 <tr>
 <td class="parameter_name"><p>event</p></td>
-<td class="parameter_description"><p>A <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstEvent.html#GstEvent"><span class="type">GstEvent</span></a> to parse</p></td>
+<td class="parameter_description"><p>A <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstEvent.html"><span class="type">GstEvent</span></a> to parse</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
@@ -1572,20 +1686,20 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.3.8.12.8"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the event is a valid upstream force-key-unit event. <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if not</p>
+<a name="id-1.2.15.3.7.13.8"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the event is a valid upstream force-key-unit event. <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if not</p>
 <p></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-video-event-is-force-key-unit"></a><h3>gst_video_event_is_force_key_unit ()</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_video_event_is_force_key_unit (<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>);</pre>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gst_video_event_is_force_key_unit (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstEvent.html"><span class="type">GstEvent</span></a> *event</code></em>);</pre>
 <p>Checks if an event is a force key unit event. Returns true for both upstream
 and downstream force key unit events.</p>
 <div class="refsect3">
-<a name="id-1.2.15.3.8.13.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.3.7.14.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1594,73 +1708,14 @@
 </colgroup>
 <tbody><tr>
 <td class="parameter_name"><p>event</p></td>
-<td class="parameter_description"><p>A <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstEvent.html#GstEvent"><span class="type">GstEvent</span></a> to check</p></td>
+<td class="parameter_description"><p>A <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstEvent.html"><span class="type">GstEvent</span></a> to check</p></td>
 <td class="parameter_annotations"> </td>
 </tr></tbody>
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.3.8.13.6"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the event is a valid force key unit event</p>
-<p></p>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-video-chroma-from-string"></a><h3>gst_video_chroma_from_string ()</h3>
-<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoChromaSite" title="enum GstVideoChromaSite"><span class="returnvalue">GstVideoChromaSite</span></a>
-gst_video_chroma_from_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> *s</code></em>);</pre>
-<p>Convert <em class="parameter"><code>s</code></em>
- to a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoChromaSite" title="enum GstVideoChromaSite"><span class="type">GstVideoChromaSite</span></a></p>
-<div class="refsect3">
-<a name="id-1.2.15.3.8.14.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody><tr>
-<td class="parameter_name"><p>s</p></td>
-<td class="parameter_description"><p>a chromasite string</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="id-1.2.15.3.8.14.6"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoChromaSite" title="enum GstVideoChromaSite"><span class="type">GstVideoChromaSite</span></a> or <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CHROMA-SITE-UNKNOWN:CAPS"><code class="literal">GST_VIDEO_CHROMA_SITE_UNKNOWN</code></a> when <em class="parameter"><code>s</code></em>
-does
-not contain a valid chroma description.</p>
-<p></p>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-video-chroma-to-string"></a><h3>gst_video_chroma_to_string ()</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_video_chroma_to_string (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoChromaSite" title="enum GstVideoChromaSite"><span class="type">GstVideoChromaSite</span></a> site</code></em>);</pre>
-<p>Converts <em class="parameter"><code>site</code></em>
- to its string representation.</p>
-<div class="refsect3">
-<a name="id-1.2.15.3.8.15.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody><tr>
-<td class="parameter_name"><p>site</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoChromaSite" title="enum GstVideoChromaSite"><span class="type">GstVideoChromaSite</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="id-1.2.15.3.8.15.6"></a><h4>Returns</h4>
-<p> a string describing <em class="parameter"><code>site</code></em>
-.</p>
+<a name="id-1.2.15.3.7.14.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the event is a valid force key unit event</p>
 <p></p>
 </div>
 </div>
@@ -1670,12 +1725,12 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 <span class="c_punctuation">(</span>*GstVideoFormatUnpack<span class="c_punctuation">)</span> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormatInfo" title="struct GstVideoFormatInfo"><span class="type">GstVideoFormatInfo</span></a> *info</code></em>,
                          <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoPackFlags" title="enum GstVideoPackFlags"><span class="type">GstVideoPackFlags</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> dest</code></em>,
-                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data[GST_VIDEO_MAX_PLANES]</code></em>,
-                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> stride[GST_VIDEO_MAX_PLANES]</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> x</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> y</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> width</code></em>);</pre>
+                         <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> dest</code></em>,
+                         <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data[GST_VIDEO_MAX_PLANES]</code></em>,
+                         <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> stride[GST_VIDEO_MAX_PLANES]</code></em>,
+                         <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> x</code></em>,
+                         <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> y</code></em>,
+                         <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> width</code></em>);</pre>
 <p>Unpacks <em class="parameter"><code>width</code></em>
  pixels from the given planes and strides containing data of
 format <em class="parameter"><code>info</code></em>
@@ -1689,7 +1744,7 @@
 array. Reconstruction of the missing components can be performed in a
 separate step after unpacking.</p>
 <div class="refsect3">
-<a name="id-1.2.15.3.8.16.6"></a><h4>Parameters</h4>
+<a name="id-1.2.15.3.7.15.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1747,13 +1802,13 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 <span class="c_punctuation">(</span>*GstVideoFormatPack<span class="c_punctuation">)</span> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormatInfo" title="struct GstVideoFormatInfo"><span class="type">GstVideoFormatInfo</span></a> *info</code></em>,
                        <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoPackFlags" title="enum GstVideoPackFlags"><span class="type">GstVideoPackFlags</span></a> flags</code></em>,
-                       <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> src</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> sstride</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[GST_VIDEO_MAX_PLANES]</code></em>,
-                       <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> stride[GST_VIDEO_MAX_PLANES]</code></em>,
-                       <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoChromaSite" title="enum GstVideoChromaSite"><span class="type">GstVideoChromaSite</span></a> chroma_site</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> y</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> width</code></em>);</pre>
+                       <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> src</code></em>,
+                       <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> sstride</code></em>,
+                       <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data[GST_VIDEO_MAX_PLANES]</code></em>,
+                       <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> stride[GST_VIDEO_MAX_PLANES]</code></em>,
+                       <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#GstVideoChromaSite" title="enum GstVideoChromaSite"><span class="type">GstVideoChromaSite</span></a> chroma_site</code></em>,
+                       <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> y</code></em>,
+                       <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> width</code></em>);</pre>
 <p>Packs <em class="parameter"><code>width</code></em>
  pixels from <em class="parameter"><code>src</code></em>
  to the given planes and strides in the
@@ -1767,14 +1822,15 @@
  and <em class="parameter"><code>y</code></em>
 
 should be a multiple of pack_lines.</p>
-<p>Subsampled formats will use the horizontally cosited component in the
-destination. Subsampling should be performed before packing.</p>
-<p>Because tis function does not have a x coordinate, it is not possible to
+<p>Subsampled formats will use the horizontally and vertically cosited
+component from the source. Subsampling should be performed before
+packing.</p>
+<p>Because this function does not have a x coordinate, it is not possible to
 pack pixels starting from an unaligned position. For tiled images this
 means that packing should start from a tile coordinate. For subsampled
 formats this means that a complete pixel need to be packed.</p>
 <div class="refsect3">
-<a name="id-1.2.15.3.8.17.8"></a><h4>Parameters</h4>
+<a name="id-1.2.15.3.7.16.8"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2026,16 +2082,16 @@
 <div class="refsect2">
 <a name="gst-video-format-from-masks"></a><h3>gst_video_format_from_masks ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="returnvalue">GstVideoFormat</span></a>
-gst_video_format_from_masks (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> depth</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> bpp</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> endianness</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> red_mask</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> green_mask</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> blue_mask</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> alpha_mask</code></em>);</pre>
+gst_video_format_from_masks (<em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> depth</code></em>,
+                             <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> bpp</code></em>,
+                             <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> endianness</code></em>,
+                             <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> red_mask</code></em>,
+                             <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> green_mask</code></em>,
+                             <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> blue_mask</code></em>,
+                             <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> alpha_mask</code></em>);</pre>
 <p>Find the <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> for the given parameters.</p>
 <div class="refsect3">
-<a name="id-1.2.15.3.8.47.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.3.7.46.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2057,7 +2113,7 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>endianness</p></td>
-<td class="parameter_description"><p>the endianness of the masks, <a href="http://library.gnome.org/devel/glib/unstable/glib-Byte-Order-Macros.html#G-LITTLE-ENDIAN:CAPS"><span class="type">G_LITTLE_ENDIAN</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Byte-Order-Macros.html#G-BIG-ENDIAN:CAPS"><span class="type">G_BIG_ENDIAN</span></a></p></td>
+<td class="parameter_description"><p>the endianness of the masks, <a href="https://developer.gnome.org/glib/unstable/glib-Byte-Order-Macros.html#G-LITTLE-ENDIAN:CAPS"><span class="type">G_LITTLE_ENDIAN</span></a> or <a href="https://developer.gnome.org/glib/unstable/glib-Byte-Order-Macros.html#G-BIG-ENDIAN:CAPS"><span class="type">G_BIG_ENDIAN</span></a></p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
@@ -2084,7 +2140,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.3.8.47.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.3.7.46.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> or GST_VIDEO_FORMAT_UNKNOWN when the parameters to
 not specify a known format.</p>
 <p></p>
@@ -2099,7 +2155,7 @@
 If the FOURCC cannot be represented by <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a>,
 <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-UNKNOWN:CAPS"><span class="type">GST_VIDEO_FORMAT_UNKNOWN</span></a> is returned.</p>
 <div class="refsect3">
-<a name="id-1.2.15.3.8.48.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.3.7.47.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2114,7 +2170,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.3.8.48.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.3.7.47.6"></a><h4>Returns</h4>
 <p> the <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> describing the FOURCC value</p>
 <p></p>
 </div>
@@ -2129,7 +2185,7 @@
  has
 no corresponding FOURCC value, 0 is returned.</p>
 <div class="refsect3">
-<a name="id-1.2.15.3.8.49.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.3.7.48.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2144,7 +2200,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.3.8.49.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.3.7.48.6"></a><h4>Returns</h4>
 <p> the FOURCC corresponding to <em class="parameter"><code>format</code></em>
 </p>
 <p></p>
@@ -2154,11 +2210,11 @@
 <div class="refsect2">
 <a name="gst-video-format-from-string"></a><h3>gst_video_format_from_string ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="returnvalue">GstVideoFormat</span></a>
-gst_video_format_from_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> *format</code></em>);</pre>
+gst_video_format_from_string (<em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *format</code></em>);</pre>
 <p>Convert the <em class="parameter"><code>format</code></em>
  string to its <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.15.3.8.50.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.3.7.49.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2173,7 +2229,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.3.8.50.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.3.7.49.6"></a><h4>Returns</h4>
 <p> the <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> for <em class="parameter"><code>format</code></em>
 or GST_VIDEO_FORMAT_UNKNOWN when the
 string is not a known format.</p>
@@ -2183,8 +2239,31 @@
 <hr>
 <div class="refsect2">
 <a name="gst-video-format-to-string"></a><h3>gst_video_format_to_string ()</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> *
+<pre class="programlisting">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_video_format_to_string (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> format</code></em>);</pre>
+<p>Returns a string containing a descriptive name for
+the <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> if there is one, or NULL otherwise.</p>
+<div class="refsect3">
+<a name="id-1.2.15.3.7.50.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>format</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> video format</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.2.15.3.7.50.6"></a><h4>Returns</h4>
+<p> the name corresponding to <em class="parameter"><code>format</code></em>
+</p>
+<p></p>
+</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -2194,7 +2273,7 @@
 <p>Get the <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormatInfo" title="struct GstVideoFormatInfo"><span class="type">GstVideoFormatInfo</span></a> for <em class="parameter"><code>format</code></em>
 </p>
 <div class="refsect3">
-<a name="id-1.2.15.3.8.52.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.3.7.51.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2209,7 +2288,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.3.8.52.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.3.7.51.6"></a><h4>Returns</h4>
 <p> The <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormatInfo" title="struct GstVideoFormatInfo"><span class="type">GstVideoFormatInfo</span></a> for <em class="parameter"><code>format</code></em>
 .</p>
 <p></p>
@@ -2221,7 +2300,7 @@
 <pre class="programlisting">#define             GST_VIDEO_CAPS_MAKE(format)</pre>
 <p>Generic caps string for video, for use in pad templates.</p>
 <div class="refsect3">
-<a name="id-1.2.15.3.8.53.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.3.7.52.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2239,120 +2318,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-video-colorimetry-matches"></a><h3>gst_video_colorimetry_matches ()</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_video_colorimetry_matches (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoColorimetry" title="GstVideoColorimetry"><span class="type">GstVideoColorimetry</span></a> *cinfo</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> *color</code></em>);</pre>
-<p>Check if the colorimetry information in <em class="parameter"><code>info</code></em>
- matches that of the
-string <em class="parameter"><code>color</code></em>
-.</p>
-<div class="refsect3">
-<a name="id-1.2.15.3.8.54.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="parameter_name"><p>cinfo</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>color</p></td>
-<td class="parameter_description"><p>a colorimetry string</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="id-1.2.15.3.8.54.6"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><span class="type">TRUE</span></a> if <em class="parameter"><code>color</code></em>
-conveys the same colorimetry info as the color
-information in <em class="parameter"><code>info</code></em>
-.</p>
-<p></p>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-video-colorimetry-from-string"></a><h3>gst_video_colorimetry_from_string ()</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_video_colorimetry_from_string (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoColorimetry" title="GstVideoColorimetry"><span class="type">GstVideoColorimetry</span></a> *cinfo</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> *color</code></em>);</pre>
-<p>Parse the colorimetry string and update <em class="parameter"><code>cinfo</code></em>
- with the parsed
-values.</p>
-<div class="refsect3">
-<a name="id-1.2.15.3.8.55.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="parameter_name"><p>cinfo</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoColorimetry" title="GstVideoColorimetry"><span class="type">GstVideoColorimetry</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>color</p></td>
-<td class="parameter_description"><p>a colorimetry string</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="id-1.2.15.3.8.55.6"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><span class="type">TRUE</span></a> if <em class="parameter"><code>color</code></em>
-points to valid colorimetry info.</p>
-<p></p>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-video-colorimetry-to-string"></a><h3>gst_video_colorimetry_to_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_video_colorimetry_to_string (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoColorimetry" title="GstVideoColorimetry"><span class="type">GstVideoColorimetry</span></a> *cinfo</code></em>);</pre>
-<p>Make a string representation of <em class="parameter"><code>cinfo</code></em>
-.</p>
-<div class="refsect3">
-<a name="id-1.2.15.3.8.56.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody><tr>
-<td class="parameter_name"><p>cinfo</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoColorimetry" title="GstVideoColorimetry"><span class="type">GstVideoColorimetry</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="id-1.2.15.3.8.56.6"></a><h4>Returns</h4>
-<p> a string representation of <em class="parameter"><code>cinfo</code></em>
-.</p>
-<p></p>
-</div>
-</div>
-<hr>
-<div class="refsect2">
 <a name="gst-video-color-range-offsets"></a><h3>gst_video_color_range_offsets ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_video_color_range_offsets (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoColorRange" title="enum GstVideoColorRange"><span class="type">GstVideoColorRange</span></a> range</code></em>,
                                <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormatInfo" title="struct GstVideoFormatInfo"><span class="type">GstVideoFormatInfo</span></a> *info</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> offset[GST_VIDEO_MAX_COMPONENTS]</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> scale[GST_VIDEO_MAX_COMPONENTS]</code></em>);</pre>
+                               <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> offset[GST_VIDEO_MAX_COMPONENTS]</code></em>,
+                               <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> scale[GST_VIDEO_MAX_COMPONENTS]</code></em>);</pre>
 <p>Compute the offset and scale values for each component of <em class="parameter"><code>info</code></em>
 . For each
 component, (c[i] - offset[i]) / scale[i] will scale the component c[i] to the
@@ -2363,7 +2334,7 @@
  and <em class="parameter"><code>range</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.15.3.8.57.6"></a><h4>Parameters</h4>
+<a name="id-1.2.15.3.7.53.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2397,6 +2368,322 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-video-color-matrix-get-Kr-Kb"></a><h3>gst_video_color_matrix_get_Kr_Kb ()</h3>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gst_video_color_matrix_get_Kr_Kb (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoColorMatrix" title="enum GstVideoColorMatrix"><span class="type">GstVideoColorMatrix</span></a> matrix</code></em>,
+                                  <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *Kr</code></em>,
+                                  <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *Kb</code></em>);</pre>
+<p>Get the coefficients used to convert between Y'PbPr and R'G'B' using <em class="parameter"><code>matrix</code></em>
+.</p>
+<p>When:</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</pre></td>
+        <td class="listing_code"><pre class="programlisting"><span class="number">0.0</span> <span class="gtkdoc opt">&lt;= [</span>Y<span class="string">',R'</span><span class="gtkdoc opt">,</span>G<span class="string">',B'</span><span class="gtkdoc opt">] &lt;=</span> <span class="number">1.0</span><span class="gtkdoc opt">)</span>
+<span class="gtkdoc opt">(-</span><span class="number">0.5</span> <span class="gtkdoc opt">&lt;= [</span>Pb<span class="gtkdoc opt">,</span>Pr<span class="gtkdoc opt">] &lt;=</span> <span class="number">0.5</span><span class="gtkdoc opt">)</span></pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
+<p></p>
+<p>the general conversion is given by:</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</pre></td>
+        <td class="listing_code"><pre class="programlisting">Y<span class="string">' = Kr*R'</span> <span class="gtkdoc opt">+ (</span><span class="number">1</span><span class="gtkdoc opt">-</span>Kr<span class="gtkdoc opt">-</span>Kb<span class="gtkdoc opt">)*</span>G<span class="string">' + Kb*B'</span>
+Pb <span class="gtkdoc opt">= (</span>B<span class="string">'-Y'</span><span class="gtkdoc opt">)/(</span><span class="number">2</span><span class="gtkdoc opt">*(</span><span class="number">1</span><span class="gtkdoc opt">-</span>Kb<span class="gtkdoc opt">))</span>
+Pr <span class="gtkdoc opt">= (</span>R<span class="string">'-Y'</span><span class="gtkdoc opt">)/(</span><span class="number">2</span><span class="gtkdoc opt">*(</span><span class="number">1</span><span class="gtkdoc opt">-</span>Kr<span class="gtkdoc opt">))</span></pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
+<p></p>
+<p>and the other way around:</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</pre></td>
+        <td class="listing_code"><pre class="programlisting">R<span class="string">' = Y'</span> <span class="gtkdoc opt">+</span> Cr<span class="gtkdoc opt">*</span><span class="number">2</span><span class="gtkdoc opt">*(</span><span class="number">1</span><span class="gtkdoc opt">-</span>Kr<span class="gtkdoc opt">)</span>
+G<span class="string">' = Y'</span> <span class="gtkdoc opt">-</span> Cb<span class="gtkdoc opt">*</span><span class="number">2</span><span class="gtkdoc opt">*(</span><span class="number">1</span><span class="gtkdoc opt">-</span>Kb<span class="gtkdoc opt">)*</span>Kb<span class="gtkdoc opt">/(</span><span class="number">1</span><span class="gtkdoc opt">-</span>Kr<span class="gtkdoc opt">-</span>Kb<span class="gtkdoc opt">) -</span> Cr<span class="gtkdoc opt">*</span><span class="number">2</span><span class="gtkdoc opt">*(</span><span class="number">1</span><span class="gtkdoc opt">-</span>Kr<span class="gtkdoc opt">)*</span>Kr<span class="gtkdoc opt">/(</span><span class="number">1</span><span class="gtkdoc opt">-</span>Kr<span class="gtkdoc opt">-</span>Kb<span class="gtkdoc opt">)</span>
+B<span class="string">' = Y'</span> <span class="gtkdoc opt">+</span> Cb<span class="gtkdoc opt">*</span><span class="number">2</span><span class="gtkdoc opt">*(</span><span class="number">1</span><span class="gtkdoc opt">-</span>Kb<span class="gtkdoc opt">)</span></pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
+<p></p>
+<div class="refsect3">
+<a name="id-1.2.15.3.7.54.14"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>matrix</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoColorMatrix" title="enum GstVideoColorMatrix"><span class="type">GstVideoColorMatrix</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>Kr</p></td>
+<td class="parameter_description"><p>result red channel coefficient</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>Kb</p></td>
+<td class="parameter_description"><p>result blue channel coefficient</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.2.15.3.7.54.15"></a><h4>Returns</h4>
+<p> TRUE if <em class="parameter"><code>matrix</code></em>
+was a YUV color format and <em class="parameter"><code>Kr</code></em>
+and <em class="parameter"><code>Kb</code></em>
+contain valid
+values.</p>
+<p></p>
+</div>
+<p class="since">Since 1.6</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-color-transfer-decode"></a><h3>gst_video_color_transfer_decode ()</h3>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gdouble"><span class="returnvalue">gdouble</span></a>
+gst_video_color_transfer_decode (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoTransferFunction" title="enum GstVideoTransferFunction"><span class="type">GstVideoTransferFunction</span></a> func</code></em>,
+                                 <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> val</code></em>);</pre>
+<p>Convert <em class="parameter"><code>val</code></em>
+ to its gamma decoded value. This is the inverse operation of
+<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-color-transfer-encode" title="gst_video_color_transfer_encode ()"><code class="function">gst_video_color_transfer_encode()</code></a></code></em>
+.</p>
+<p>For a non-linear value L' in the range [0..1], conversion to the linear
+L is in general performed with a power function like:</p>
+<div class="informalexample">
+  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+    <tbody>
+      <tr>
+        <td class="listing_lines" align="right"><pre>1</pre></td>
+        <td class="listing_code"><pre class="programlisting">L <span class="gtkdoc opt">=</span> L<span class="string">' ^ gamma</span></pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
+<p></p>
+<p>Depending on <em class="parameter"><code>func</code></em>
+, different formulas might be applied. Some formulas
+encode a linear segment in the lower range.</p>
+<div class="refsect3">
+<a name="id-1.2.15.3.7.55.9"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>func</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoTransferFunction" title="enum GstVideoTransferFunction"><span class="type">GstVideoTransferFunction</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>val</p></td>
+<td class="parameter_description"><p>a value</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.2.15.3.7.55.10"></a><h4>Returns</h4>
+<p> the gamme decoded value of <em class="parameter"><code>val</code></em>
+</p>
+<p></p>
+</div>
+<p class="since">Since 1.6</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-color-transfer-encode"></a><h3>gst_video_color_transfer_encode ()</h3>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gdouble"><span class="returnvalue">gdouble</span></a>
+gst_video_color_transfer_encode (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoTransferFunction" title="enum GstVideoTransferFunction"><span class="type">GstVideoTransferFunction</span></a> func</code></em>,
+                                 <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> val</code></em>);</pre>
+<p>Convert <em class="parameter"><code>val</code></em>
+ to its gamma encoded value.</p>
+<p>For a linear value L in the range [0..1], conversion to the non-linear
+(gamma encoded) L' is in general performed with a power function like:</p>
+<div class="informalexample">
+  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+    <tbody>
+      <tr>
+        <td class="listing_lines" align="right"><pre>1</pre></td>
+        <td class="listing_code"><pre class="programlisting">L<span class="string">' = L ^ (1 / gamma)</span></pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
+<p></p>
+<p>Depending on <em class="parameter"><code>func</code></em>
+, different formulas might be applied. Some formulas
+encode a linear segment in the lower range.</p>
+<div class="refsect3">
+<a name="id-1.2.15.3.7.56.9"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>func</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoTransferFunction" title="enum GstVideoTransferFunction"><span class="type">GstVideoTransferFunction</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>val</p></td>
+<td class="parameter_description"><p>a value</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.2.15.3.7.56.10"></a><h4>Returns</h4>
+<p> the gamme encoded value of <em class="parameter"><code>val</code></em>
+</p>
+<p></p>
+</div>
+<p class="since">Since 1.6</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-colorimetry-matches"></a><h3>gst_video_colorimetry_matches ()</h3>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gst_video_colorimetry_matches (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoColorimetry" title="GstVideoColorimetry"><span class="type">GstVideoColorimetry</span></a> *cinfo</code></em>,
+                               <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *color</code></em>);</pre>
+<p>Check if the colorimetry information in <em class="parameter"><code>info</code></em>
+ matches that of the
+string <em class="parameter"><code>color</code></em>
+.</p>
+<div class="refsect3">
+<a name="id-1.2.15.3.7.57.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>cinfo</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>color</p></td>
+<td class="parameter_description"><p>a colorimetry string</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.2.15.3.7.57.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><span class="type">TRUE</span></a> if <em class="parameter"><code>color</code></em>
+conveys the same colorimetry info as the color
+information in <em class="parameter"><code>info</code></em>
+.</p>
+<p></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-colorimetry-from-string"></a><h3>gst_video_colorimetry_from_string ()</h3>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gst_video_colorimetry_from_string (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoColorimetry" title="GstVideoColorimetry"><span class="type">GstVideoColorimetry</span></a> *cinfo</code></em>,
+                                   <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *color</code></em>);</pre>
+<p>Parse the colorimetry string and update <em class="parameter"><code>cinfo</code></em>
+ with the parsed
+values.</p>
+<div class="refsect3">
+<a name="id-1.2.15.3.7.58.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>cinfo</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoColorimetry" title="GstVideoColorimetry"><span class="type">GstVideoColorimetry</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>color</p></td>
+<td class="parameter_description"><p>a colorimetry string</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.2.15.3.7.58.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><span class="type">TRUE</span></a> if <em class="parameter"><code>color</code></em>
+points to valid colorimetry info.</p>
+<p></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-colorimetry-to-string"></a><h3>gst_video_colorimetry_to_string ()</h3>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+gst_video_colorimetry_to_string (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoColorimetry" title="GstVideoColorimetry"><span class="type">GstVideoColorimetry</span></a> *cinfo</code></em>);</pre>
+<p>Make a string representation of <em class="parameter"><code>cinfo</code></em>
+.</p>
+<div class="refsect3">
+<a name="id-1.2.15.3.7.59.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>cinfo</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoColorimetry" title="GstVideoColorimetry"><span class="type">GstVideoColorimetry</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.2.15.3.7.59.6"></a><h4>Returns</h4>
+<p> a string representation of <em class="parameter"><code>cinfo</code></em>
+.</p>
+<p></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
 <a name="GST-VIDEO-INFO-FORMAT:CAPS"></a><h3>GST_VIDEO_INFO_FORMAT()</h3>
 <pre class="programlisting">#define GST_VIDEO_INFO_FORMAT(i)         (GST_VIDEO_FORMAT_INFO_FORMAT((i)-&gt;finfo))
 </pre>
@@ -2601,7 +2888,7 @@
 <p>Initialize <em class="parameter"><code>info</code></em>
  with default values.</p>
 <div class="refsect3">
-<a name="id-1.2.15.3.8.91.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.3.7.93.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2622,16 +2909,18 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_video_info_set_format (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a> *info</code></em>,
                            <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> format</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> width</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> height</code></em>);</pre>
+                           <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> width</code></em>,
+                           <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> height</code></em>);</pre>
 <p>Set the default info for a video frame of <em class="parameter"><code>format</code></em>
  and <em class="parameter"><code>width</code></em>
  and <em class="parameter"><code>height</code></em>
 .</p>
 <p>Note: This initializes <em class="parameter"><code>info</code></em>
- first, no values are preserved.</p>
+ first, no values are preserved. This function
+does not set the offsets correctly for interlaced vertically
+subsampled formats.</p>
 <div class="refsect3">
-<a name="id-1.2.15.3.8.92.6"></a><h4>Parameters</h4>
+<a name="id-1.2.15.3.7.94.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2666,14 +2955,14 @@
 <hr>
 <div class="refsect2">
 <a name="gst-video-info-from-caps"></a><h3>gst_video_info_from_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>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_video_info_from_caps (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a> *info</code></em>,
-                          <em class="parameter"><code>const <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>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> *caps</code></em>);</pre>
 <p>Parse <em class="parameter"><code>caps</code></em>
  and update <em class="parameter"><code>info</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.15.3.8.93.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.3.7.95.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2688,14 +2977,14 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>caps</p></td>
-<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a></p></td>
+<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a></p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.3.8.93.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.3.7.95.6"></a><h4>Returns</h4>
 <p> TRUE if <em class="parameter"><code>caps</code></em>
 could be parsed</p>
 <p></p>
@@ -2704,12 +2993,12 @@
 <hr>
 <div class="refsect2">
 <a name="gst-video-info-to-caps"></a><h3>gst_video_info_to_caps ()</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> *
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="returnvalue">GstCaps</span></a> *
 gst_video_info_to_caps (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a> *info</code></em>);</pre>
 <p>Convert the values of <em class="parameter"><code>info</code></em>
- into a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>.</p>
+ into a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.15.3.8.94.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.3.7.96.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2724,8 +3013,8 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.3.8.94.6"></a><h4>Returns</h4>
-<p> a new <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> containing the info of <em class="parameter"><code>info</code></em>
+<a name="id-1.2.15.3.7.96.6"></a><h4>Returns</h4>
+<p> a new <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> containing the info of <em class="parameter"><code>info</code></em>
 .</p>
 <p></p>
 </div>
@@ -2733,7 +3022,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-video-info-convert"></a><h3>gst_video_info_convert ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_video_info_convert (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a> *info</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><span class="type">gint64</span> src_value</code></em>,
@@ -2744,7 +3033,7 @@
 raw video, GST_FORMAT_DEFAULT corresponds to video frames.  This
 function can be used to handle pad queries of the type GST_QUERY_CONVERT.</p>
 <div class="refsect3">
-<a name="id-1.2.15.3.8.95.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.3.7.97.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2783,7 +3072,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.3.8.95.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.3.7.97.6"></a><h4>Returns</h4>
 <p> TRUE if the conversion was successful.</p>
 <p></p>
 </div>
@@ -2791,12 +3080,12 @@
 <hr>
 <div class="refsect2">
 <a name="gst-video-info-is-equal"></a><h3>gst_video_info_is_equal ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_video_info_is_equal (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a> *info</code></em>,
                          <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a> *other</code></em>);</pre>
 <p>Compares two <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a> and returns whether they are equal or not</p>
 <div class="refsect3">
-<a name="id-1.2.15.3.8.96.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.3.7.98.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2818,10 +3107,10 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.3.8.96.6"></a><h4>Returns</h4>
-<p> <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>info</code></em>
+<a name="id-1.2.15.3.7.98.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>info</code></em>
 and <em class="parameter"><code>other</code></em>
-are equal, else <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>.</p>
+are equal, else <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>.</p>
 <p></p>
 </div>
 </div>
@@ -2839,7 +3128,7 @@
 is required and <em class="parameter"><code>align</code></em>
  will be updated with the new padding values.</p>
 <div class="refsect3">
-<a name="id-1.2.15.3.8.97.6"></a><h4>Parameters</h4>
+<a name="id-1.2.15.3.7.99.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2864,11 +3153,11 @@
 <hr>
 <div class="refsect2">
 <a name="gst-video-frame-map-id"></a><h3>gst_video_frame_map_id ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_video_frame_map_id (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFrame" title="struct GstVideoFrame"><span class="type">GstVideoFrame</span></a> *frame</code></em>,
                         <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a> *info</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="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> id</code></em>,
+                        <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> *buffer</code></em>,
+                        <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> id</code></em>,
                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMemory.html#GstMapFlags"><span class="type">GstMapFlags</span></a> flags</code></em>);</pre>
 <p>Use <em class="parameter"><code>info</code></em>
  and <em class="parameter"><code>buffer</code></em>
@@ -2879,13 +3168,13 @@
 <p>When <em class="parameter"><code>id</code></em>
  is -1, the default frame is mapped. When <em class="parameter"><code>id</code></em>
  != -1, this function
-will return <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> when there is no GstVideoMeta with that id.</p>
+will return <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> when there is no GstVideoMeta with that id.</p>
 <p>All video planes of <em class="parameter"><code>buffer</code></em>
  will be mapped and the pointers will be set in
 <em class="parameter"><code>frame-&gt;data</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.15.3.8.98.7"></a><h4>Parameters</h4>
+<a name="id-1.2.15.3.7.100.7"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2922,18 +3211,18 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.3.8.98.8"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success.</p>
+<a name="id-1.2.15.3.7.100.8"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success.</p>
 <p></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-video-frame-map"></a><h3>gst_video_frame_map ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_video_frame_map (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFrame" title="struct GstVideoFrame"><span class="type">GstVideoFrame</span></a> *frame</code></em>,
                      <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a> *info</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="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> *buffer</code></em>,
                      <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMemory.html#GstMapFlags"><span class="type">GstMapFlags</span></a> flags</code></em>);</pre>
 <p>Use <em class="parameter"><code>info</code></em>
  and <em class="parameter"><code>buffer</code></em>
@@ -2944,7 +3233,7 @@
 <em class="parameter"><code>frame-&gt;data</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.15.3.8.99.6"></a><h4>Parameters</h4>
+<a name="id-1.2.15.3.7.101.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2976,8 +3265,8 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.3.8.99.7"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success.</p>
+<a name="id-1.2.15.3.7.101.7"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success.</p>
 <p></p>
 </div>
 </div>
@@ -2988,7 +3277,7 @@
 gst_video_frame_unmap (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFrame" title="struct GstVideoFrame"><span class="type">GstVideoFrame</span></a> *frame</code></em>);</pre>
 <p>Unmap the memory previously mapped with gst_video_frame_map.</p>
 <div class="refsect3">
-<a name="id-1.2.15.3.8.100.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.3.7.102.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3006,14 +3295,14 @@
 <hr>
 <div class="refsect2">
 <a name="gst-video-frame-copy"></a><h3>gst_video_frame_copy ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_video_frame_copy (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFrame" title="struct GstVideoFrame"><span class="type">GstVideoFrame</span></a> *dest</code></em>,
                       <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFrame" title="struct GstVideoFrame"><span class="type">GstVideoFrame</span></a> *src</code></em>);</pre>
 <p>Copy the contents from <em class="parameter"><code>src</code></em>
  to <em class="parameter"><code>dest</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.15.3.8.101.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.3.7.103.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3035,7 +3324,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.3.8.101.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.3.7.103.6"></a><h4>Returns</h4>
 <p> TRUE if the contents could be copied.</p>
 <p></p>
 </div>
@@ -3043,16 +3332,16 @@
 <hr>
 <div class="refsect2">
 <a name="gst-video-frame-copy-plane"></a><h3>gst_video_frame_copy_plane ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_video_frame_copy_plane (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFrame" title="struct GstVideoFrame"><span class="type">GstVideoFrame</span></a> *dest</code></em>,
                             <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFrame" title="struct GstVideoFrame"><span class="type">GstVideoFrame</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> plane</code></em>);</pre>
+                            <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> plane</code></em>);</pre>
 <p>Copy the plane with index <em class="parameter"><code>plane</code></em>
  from <em class="parameter"><code>src</code></em>
  to <em class="parameter"><code>dest</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.15.3.8.102.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.3.7.104.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3079,7 +3368,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.3.8.102.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.3.7.104.6"></a><h4>Returns</h4>
 <p> TRUE if the contents could be copied.</p>
 <p></p>
 </div>
@@ -3231,12 +3520,12 @@
 <hr>
 <div class="refsect2">
 <a name="gst-video-tile-get-index"></a><h3>gst_video_tile_get_index ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_video_tile_get_index (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoTileMode" title="enum GstVideoTileMode"><span class="type">GstVideoTileMode</span></a> mode</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> x</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> y</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> x_tiles</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> y_tiles</code></em>);</pre>
+                          <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> x</code></em>,
+                          <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> y</code></em>,
+                          <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> x_tiles</code></em>,
+                          <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> y_tiles</code></em>);</pre>
 <p>Get the tile index of the tile at coordinates <em class="parameter"><code>x</code></em>
  and <em class="parameter"><code>y</code></em>
  in the tiled
@@ -3244,9 +3533,9 @@
  by <em class="parameter"><code>y_tiles</code></em>
 .</p>
 <p>Use this method when <em class="parameter"><code>mode</code></em>
- is of type <span class="type">GST_VIDEO_TILE_MODE_INDEXED</span>.</p>
+ is of type <code class="literal">GST_VIDEO_TILE_MODE_INDEXED</code>.</p>
 <div class="refsect3">
-<a name="id-1.2.15.3.8.127.6"></a><h4>Parameters</h4>
+<a name="id-1.2.15.3.7.129.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3283,7 +3572,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.3.8.127.7"></a><h4>Returns</h4>
+<a name="id-1.2.15.3.7.129.7"></a><h4>Returns</h4>
 <p> the index of the tile at <em class="parameter"><code>x</code></em>
 and <em class="parameter"><code>y</code></em>
 in the tiled image of
@@ -3292,6 +3581,7 @@
 .</p>
 <p></p>
 </div>
+<p class="since">Since 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -3299,7 +3589,7 @@
 <pre class="programlisting">#define             GST_VIDEO_TILE_MAKE_MODE(num, type)</pre>
 <p>use this macro to create new tile modes.</p>
 <div class="refsect3">
-<a name="id-1.2.15.3.8.128.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.3.7.130.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3329,7 +3619,7 @@
 <p>Get the tile mode type of <em class="parameter"><code>mode</code></em>
 </p>
 <div class="refsect3">
-<a name="id-1.2.15.3.8.129.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.3.7.131.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3352,7 +3642,7 @@
 <p>Check if <em class="parameter"><code>mode</code></em>
  is an indexed tile type</p>
 <div class="refsect3">
-<a name="id-1.2.15.3.8.130.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.3.7.132.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3373,7 +3663,7 @@
 <pre class="programlisting">#define             GST_VIDEO_TILE_MAKE_STRIDE(x_tiles, y_tiles)</pre>
 <p>Encode the number of tile in X and Y into the stride.</p>
 <div class="refsect3">
-<a name="id-1.2.15.3.8.131.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.3.7.133.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3402,7 +3692,7 @@
 </pre>
 <p>Extract the number of tiles in X from the stride value.</p>
 <div class="refsect3">
-<a name="id-1.2.15.3.8.132.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.3.7.134.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3424,7 +3714,7 @@
 </pre>
 <p>Extract the number of tiles in Y from the stride value.</p>
 <div class="refsect3">
-<a name="id-1.2.15.3.8.133.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.3.7.135.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3439,6 +3729,308 @@
 </table></div>
 </div>
 </div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-blend"></a><h3>gst_video_blend ()</h3>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gst_video_blend (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFrame" title="struct GstVideoFrame"><span class="type">GstVideoFrame</span></a> *dest</code></em>,
+                 <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFrame" title="struct GstVideoFrame"><span class="type">GstVideoFrame</span></a> *src</code></em>,
+                 <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> x</code></em>,
+                 <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> y</code></em>,
+                 <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> global_alpha</code></em>);</pre>
+<p>Lets you blend the <em class="parameter"><code>src</code></em>
+ image into the <em class="parameter"><code>dest</code></em>
+ image</p>
+<div class="refsect3">
+<a name="id-1.2.15.3.7.136.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>dest</p></td>
+<td class="parameter_description"><p>The <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFrame" title="struct GstVideoFrame"><span class="type">GstVideoFrame</span></a> where to blend <em class="parameter"><code>src</code></em>
+in</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>src</p></td>
+<td class="parameter_description"><p>the <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFrame" title="struct GstVideoFrame"><span class="type">GstVideoFrame</span></a> that we want to blend into</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>x</p></td>
+<td class="parameter_description"><p>The x offset in pixel where the <em class="parameter"><code>src</code></em>
+image should be blended</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y</p></td>
+<td class="parameter_description"><p>the y offset in pixel where the <em class="parameter"><code>src</code></em>
+image should be blended</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>global_alpha</p></td>
+<td class="parameter_description"><p>the global_alpha each per-pixel alpha value is multiplied
+with</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-blend-scale-linear-RGBA"></a><h3>gst_video_blend_scale_linear_RGBA ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gst_video_blend_scale_linear_RGBA (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a> *src</code></em>,
+                                   <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> *src_buffer</code></em>,
+                                   <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> dest_height</code></em>,
+                                   <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> dest_width</code></em>,
+                                   <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a> *dest</code></em>,
+                                   <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> **dest_buffer</code></em>);</pre>
+<p>Scales a buffer containing RGBA (or AYUV) video. This is an internal
+helper function which is used to scale subtitle overlays, and may be
+deprecated in the near future. Use <a class="link" href="gst-plugins-base-libs-GstVideoScaler.html#GstVideoScaler" title="GstVideoScaler"><span class="type">GstVideoScaler</span></a> to scale video buffers
+instead.</p>
+<div class="refsect3">
+<a name="id-1.2.15.3.7.137.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>src</p></td>
+<td class="parameter_description"><p>the <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a> describing the video data in <em class="parameter"><code>src_buffer</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>src_buffer</p></td>
+<td class="parameter_description"><p>the source buffer containing video pixels to scale</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>dest_height</p></td>
+<td class="parameter_description"><p>the height in pixels to scale the video data in <em class="parameter"><code>src_buffer</code></em>
+to</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>dest_width</p></td>
+<td class="parameter_description"><p>the width in pixels to scale the video data in <em class="parameter"><code>src_buffer</code></em>
+to</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>dest</p></td>
+<td class="parameter_description"><p> pointer to a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a> structure that will be filled in
+with the details for <em class="parameter"><code>dest_buffer</code></em>
+. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
+</tr>
+<tr>
+<td class="parameter_name"><p>dest_buffer</p></td>
+<td class="parameter_description"><p> a pointer to a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> variable, which will be
+set to a newly-allocated buffer containing the scaled pixels. </p></td>
+<td class="parameter_annotations"><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>
+<hr>
+<div class="refsect2">
+<a name="gst-video-converter-new"></a><h3>gst_video_converter_new ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoConverter" title="GstVideoConverter"><span class="returnvalue">GstVideoConverter</span></a> *
+gst_video_converter_new (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a> *in_info</code></em>,
+                         <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a> *out_info</code></em>,
+                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstStructure.html"><span class="type">GstStructure</span></a> *config</code></em>);</pre>
+<p>Create a new converter object to convert between <em class="parameter"><code>in_info</code></em>
+ and <em class="parameter"><code>out_info</code></em>
+
+with <em class="parameter"><code>config</code></em>
+.</p>
+<div class="refsect3">
+<a name="id-1.2.15.3.7.138.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>in_info</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>out_info</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>config</p></td>
+<td class="parameter_description"><p> a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstStructure.html"><span class="type">GstStructure</span></a> with configuration options. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.2.15.3.7.138.6"></a><h4>Returns</h4>
+<p> a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoConverter" title="GstVideoConverter"><span class="type">GstVideoConverter</span></a> or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if conversion is not possible.</p>
+<p></p>
+</div>
+<p class="since">Since 1.6</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-converter-free"></a><h3>gst_video_converter_free ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gst_video_converter_free (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoConverter" title="GstVideoConverter"><span class="type">GstVideoConverter</span></a> *convert</code></em>);</pre>
+<p>Free <em class="parameter"><code>convert</code></em>
+</p>
+<div class="refsect3">
+<a name="id-1.2.15.3.7.139.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>convert</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoConverter" title="GstVideoConverter"><span class="type">GstVideoConverter</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<p class="since">Since 1.6</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-converter-get-config"></a><h3>gst_video_converter_get_config ()</h3>
+<pre class="programlisting">const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstStructure.html"><span class="returnvalue">GstStructure</span></a> *
+gst_video_converter_get_config (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoConverter" title="GstVideoConverter"><span class="type">GstVideoConverter</span></a> *convert</code></em>);</pre>
+<p>Get the current configuration of <em class="parameter"><code>convert</code></em>
+.</p>
+<div class="refsect3">
+<a name="id-1.2.15.3.7.140.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>convert</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoConverter" title="GstVideoConverter"><span class="type">GstVideoConverter</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.2.15.3.7.140.6"></a><h4>Returns</h4>
+<p> a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstStructure.html"><span class="type">GstStructure</span></a> that remains valid for as long as <em class="parameter"><code>convert</code></em>
+is valid
+or until <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-converter-set-config" title="gst_video_converter_set_config ()"><code class="function">gst_video_converter_set_config()</code></a> is called.</p>
+<p></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-converter-set-config"></a><h3>gst_video_converter_set_config ()</h3>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gst_video_converter_set_config (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoConverter" title="GstVideoConverter"><span class="type">GstVideoConverter</span></a> *convert</code></em>,
+                                <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstStructure.html"><span class="type">GstStructure</span></a> *config</code></em>);</pre>
+<p>Set <em class="parameter"><code>config</code></em>
+ as extra configuraion for <em class="parameter"><code>convert</code></em>
+.</p>
+<p>If the parameters in <em class="parameter"><code>config</code></em>
+ can not be set exactly, this function returns
+<a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> and will try to update as much state as possible. The new state can
+then be retrieved and refined with <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-converter-get-config" title="gst_video_converter_get_config ()"><code class="function">gst_video_converter_get_config()</code></a>.</p>
+<p>Look at the <span class="type">GST_VIDEO_CONVERTER_OPT_</span>* fields to check valid configuration
+option and values.</p>
+<div class="refsect3">
+<a name="id-1.2.15.3.7.141.7"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>convert</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoConverter" title="GstVideoConverter"><span class="type">GstVideoConverter</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>config</p></td>
+<td class="parameter_description"><p> a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstStructure.html"><span class="type">GstStructure</span></a>. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.2.15.3.7.141.8"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> when <em class="parameter"><code>config</code></em>
+could be set.</p>
+<p></p>
+</div>
+<p class="since">Since 1.6</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-converter-frame"></a><h3>gst_video_converter_frame ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gst_video_converter_frame (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoConverter" title="GstVideoConverter"><span class="type">GstVideoConverter</span></a> *convert</code></em>,
+                           <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFrame" title="struct GstVideoFrame"><span class="type">GstVideoFrame</span></a> *src</code></em>,
+                           <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFrame" title="struct GstVideoFrame"><span class="type">GstVideoFrame</span></a> *dest</code></em>);</pre>
+<p>Convert the pixels of <em class="parameter"><code>src</code></em>
+ into <em class="parameter"><code>dest</code></em>
+ using <em class="parameter"><code>convert</code></em>
+.</p>
+<div class="refsect3">
+<a name="id-1.2.15.3.7.142.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>convert</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoConverter" title="GstVideoConverter"><span class="type">GstVideoConverter</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>dest</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFrame" title="struct GstVideoFrame"><span class="type">GstVideoFrame</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>src</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFrame" title="struct GstVideoFrame"><span class="type">GstVideoFrame</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since 1.6</p>
+</div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstvideo.other_details"></a><h2>Types and Values</h2>
@@ -3456,7 +4048,7 @@
 structure is usually used to configure the bufferpool if it supports the
 <a class="link" href="gst-plugins-base-libs-GstVideoPool.html#GST-BUFFER-POOL-OPTION-VIDEO-ALIGNMENT:CAPS" title="GST_BUFFER_POOL_OPTION_VIDEO_ALIGNMENT"><span class="type">GST_BUFFER_POOL_OPTION_VIDEO_ALIGNMENT</span></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.15.3.9.2.5"></a><h4>Members</h4>
+<a name="id-1.2.15.3.8.2.5"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
@@ -3465,27 +4057,27 @@
 </colgroup>
 <tbody>
 <tr>
-<td class="struct_member_name"><p><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="GstVideoAlignment.padding-top"></a>padding_top</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstVideoAlignment.padding-top"></a>padding_top</code></em>;</p></td>
 <td class="struct_member_description"><p>extra pixels on the top</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstVideoAlignment.padding-bottom"></a>padding_bottom</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstVideoAlignment.padding-bottom"></a>padding_bottom</code></em>;</p></td>
 <td class="struct_member_description"><p>extra pixels on the bottom</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstVideoAlignment.padding-left"></a>padding_left</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstVideoAlignment.padding-left"></a>padding_left</code></em>;</p></td>
 <td class="struct_member_description"><p>extra pixels on the left side</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstVideoAlignment.padding-right"></a>padding_right</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstVideoAlignment.padding-right"></a>padding_right</code></em>;</p></td>
 <td class="struct_member_description"><p>extra pixels on the right side</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstVideoAlignment.stride-align"></a>stride_align</code></em>[GST_VIDEO_MAX_PLANES];</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstVideoAlignment.stride-align"></a>stride_align</code></em>[GST_VIDEO_MAX_PLANES];</p></td>
 <td class="struct_member_description"><p>array with extra alignment requirements for the strides</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
@@ -3530,7 +4122,7 @@
 <a name="GstVideoFormat"></a><h3>enum GstVideoFormat</h3>
 <p>Enum value describing the most common video formats.</p>
 <div class="refsect3">
-<a name="id-1.2.15.3.9.7.4"></a><h4>Members</h4>
+<a name="id-1.2.15.3.8.7.4"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -3919,6 +4511,48 @@
 </td>
 <td class="enum_member_annotations"> </td>
 </tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-VIDEO-FORMAT-A420-10BE:CAPS"></a>GST_VIDEO_FORMAT_A420_10BE</p></td>
+<td class="enum_member_description">
+<p>planar 4:4:2:0 YUV, 10 bits per channel</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-VIDEO-FORMAT-A420-10LE:CAPS"></a>GST_VIDEO_FORMAT_A420_10LE</p></td>
+<td class="enum_member_description">
+<p>planar 4:4:2:0 YUV, 10 bits per channel</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-VIDEO-FORMAT-A422-10BE:CAPS"></a>GST_VIDEO_FORMAT_A422_10BE</p></td>
+<td class="enum_member_description">
+<p>planar 4:4:2:2 YUV, 10 bits per channel</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-VIDEO-FORMAT-A422-10LE:CAPS"></a>GST_VIDEO_FORMAT_A422_10LE</p></td>
+<td class="enum_member_description">
+<p>planar 4:4:2:2 YUV, 10 bits per channel</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-VIDEO-FORMAT-A444-10BE:CAPS"></a>GST_VIDEO_FORMAT_A444_10BE</p></td>
+<td class="enum_member_description">
+<p>planar 4:4:4:4 YUV, 10 bits per channel</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-VIDEO-FORMAT-A444-10LE:CAPS"></a>GST_VIDEO_FORMAT_A444_10LE</p></td>
+<td class="enum_member_description">
+<p>planar 4:4:4:4 YUV, 10 bits per channel</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
 </tbody>
 </table></div>
 </div>
@@ -3968,7 +4602,7 @@
 </pre>
 <p>Information for a video format.</p>
 <div class="refsect3">
-<a name="id-1.2.15.3.9.10.5"></a><h4>Members</h4>
+<a name="id-1.2.15.3.8.10.5"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
@@ -3982,12 +4616,12 @@
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p>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="GstVideoFormatInfo.name"></a>name</code></em>;</p></td>
+<td class="struct_member_name"><p>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstVideoFormatInfo.name"></a>name</code></em>;</p></td>
 <td class="struct_member_description"><p>string representation of the format</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p>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="GstVideoFormatInfo.description"></a>description</code></em>;</p></td>
+<td class="struct_member_name"><p>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstVideoFormatInfo.description"></a>description</code></em>;</p></td>
 <td class="struct_member_description"><p>use readable description of the format</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
@@ -3997,7 +4631,7 @@
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstVideoFormatInfo.bits"></a>bits</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstVideoFormatInfo.bits"></a>bits</code></em>;</p></td>
 <td class="struct_member_description"><p>The number of bits used to pack data items. This can be less than 8
 when multiple pixels are stored in a byte. for values &gt; 8 multiple bytes
 should be read according to the endianness flag before applying the shift
@@ -4005,22 +4639,22 @@
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstVideoFormatInfo.n-components"></a>n_components</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstVideoFormatInfo.n-components"></a>n_components</code></em>;</p></td>
 <td class="struct_member_description"><p>the number of components in the video format.</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstVideoFormatInfo.shift"></a>shift</code></em>[GST_VIDEO_MAX_COMPONENTS];</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstVideoFormatInfo.shift"></a>shift</code></em>[GST_VIDEO_MAX_COMPONENTS];</p></td>
 <td class="struct_member_description"><p>the number of bits to shift away to get the component data</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstVideoFormatInfo.depth"></a>depth</code></em>[GST_VIDEO_MAX_COMPONENTS];</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstVideoFormatInfo.depth"></a>depth</code></em>[GST_VIDEO_MAX_COMPONENTS];</p></td>
 <td class="struct_member_description"><p>the depth in bits for each component</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstVideoFormatInfo.pixel-stride"></a>pixel_stride</code></em>[GST_VIDEO_MAX_COMPONENTS];</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstVideoFormatInfo.pixel-stride"></a>pixel_stride</code></em>[GST_VIDEO_MAX_COMPONENTS];</p></td>
 <td class="struct_member_description"><p>the pixel stride of each component. This is the amount of
 bytes to the pixel immediately to the right. When bits &lt; 8, the stride is
 expressed in bits. For 24-bit RGB, this would be 3 bytes, for example,
@@ -4028,31 +4662,31 @@
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstVideoFormatInfo.n-planes"></a>n_planes</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstVideoFormatInfo.n-planes"></a>n_planes</code></em>;</p></td>
 <td class="struct_member_description"><p>the number of planes for this format. The number of planes can be
 less than the amount of components when multiple components are packed into
 one plane.</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstVideoFormatInfo.plane"></a>plane</code></em>[GST_VIDEO_MAX_COMPONENTS];</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstVideoFormatInfo.plane"></a>plane</code></em>[GST_VIDEO_MAX_COMPONENTS];</p></td>
 <td class="struct_member_description"><p>the plane number where a component can be found</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstVideoFormatInfo.poffset"></a>poffset</code></em>[GST_VIDEO_MAX_COMPONENTS];</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstVideoFormatInfo.poffset"></a>poffset</code></em>[GST_VIDEO_MAX_COMPONENTS];</p></td>
 <td class="struct_member_description"><p>the offset in the plane where the first pixel of the components
 can be found.</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstVideoFormatInfo.w-sub"></a>w_sub</code></em>[GST_VIDEO_MAX_COMPONENTS];</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstVideoFormatInfo.w-sub"></a>w_sub</code></em>[GST_VIDEO_MAX_COMPONENTS];</p></td>
 <td class="struct_member_description"><p>subsampling factor of the width for the component. Use
 GST_VIDEO_SUB_SCALE to scale a width.</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstVideoFormatInfo.h-sub"></a>h_sub</code></em>[GST_VIDEO_MAX_COMPONENTS];</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstVideoFormatInfo.h-sub"></a>h_sub</code></em>[GST_VIDEO_MAX_COMPONENTS];</p></td>
 <td class="struct_member_description"><p>subsampling factor of the height for the component. Use
 GST_VIDEO_SUB_SCALE to scale a height.</p></td>
 <td class="struct_member_annotations"> </td>
@@ -4069,7 +4703,7 @@
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstVideoFormatInfo.pack-lines"></a>pack_lines</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstVideoFormatInfo.pack-lines"></a>pack_lines</code></em>;</p></td>
 <td class="struct_member_description"><p>the amount of lines that will be packed</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
@@ -4088,17 +4722,17 @@
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstVideoFormatInfo.tile-ws"></a>tile_ws</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstVideoFormatInfo.tile-ws"></a>tile_ws</code></em>;</p></td>
 <td> </td>
 <td> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstVideoFormatInfo.tile-hs"></a>tile_hs</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstVideoFormatInfo.tile-hs"></a>tile_hs</code></em>;</p></td>
 <td> </td>
 <td> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> <em class="structfield"><code><a name="GstVideoFormatInfo.-gst-reserved"></a>_gst_reserved</code></em>[GST_PADDING];</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> <em class="structfield"><code><a name="GstVideoFormatInfo.-gst-reserved"></a>_gst_reserved</code></em>[GST_PADDING];</p></td>
 <td> </td>
 <td> </td>
 </tr>
@@ -4108,90 +4742,10 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="GstVideoChromaSite"></a><h3>enum GstVideoChromaSite</h3>
-<p>Various Chroma sitings.</p>
-<div class="refsect3">
-<a name="id-1.2.15.3.9.11.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
-<colgroup>
-<col width="300px" class="enum_members_name">
-<col class="enum_members_description">
-<col width="200px" class="enum_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="enum_member_name"><p><a name="GST-VIDEO-CHROMA-SITE-UNKNOWN:CAPS"></a>GST_VIDEO_CHROMA_SITE_UNKNOWN</p></td>
-<td class="enum_member_description">
-<p>unknown cositing</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="GST-VIDEO-CHROMA-SITE-NONE:CAPS"></a>GST_VIDEO_CHROMA_SITE_NONE</p></td>
-<td class="enum_member_description">
-<p>no cositing</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="GST-VIDEO-CHROMA-SITE-H-COSITED:CAPS"></a>GST_VIDEO_CHROMA_SITE_H_COSITED</p></td>
-<td class="enum_member_description">
-<p>chroma is horizontally cosited</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="GST-VIDEO-CHROMA-SITE-V-COSITED:CAPS"></a>GST_VIDEO_CHROMA_SITE_V_COSITED</p></td>
-<td class="enum_member_description">
-<p>chroma is vertically cosited</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="GST-VIDEO-CHROMA-SITE-ALT-LINE:CAPS"></a>GST_VIDEO_CHROMA_SITE_ALT_LINE</p></td>
-<td class="enum_member_description">
-<p>choma samples are sited on alternate lines</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="GST-VIDEO-CHROMA-SITE-COSITED:CAPS"></a>GST_VIDEO_CHROMA_SITE_COSITED</p></td>
-<td class="enum_member_description">
-<p>chroma samples cosited with luma samples</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="GST-VIDEO-CHROMA-SITE-JPEG:CAPS"></a>GST_VIDEO_CHROMA_SITE_JPEG</p></td>
-<td class="enum_member_description">
-<p>jpeg style cositing, also for mpeg1 and mjpeg</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="GST-VIDEO-CHROMA-SITE-MPEG2:CAPS"></a>GST_VIDEO_CHROMA_SITE_MPEG2</p></td>
-<td class="enum_member_description">
-<p>mpeg2 style cositing</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="GST-VIDEO-CHROMA-SITE-DV:CAPS"></a>GST_VIDEO_CHROMA_SITE_DV</p></td>
-<td class="enum_member_description">
-<p>DV style cositing</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-</div>
-<hr>
-<div class="refsect2">
 <a name="GstVideoFormatFlags"></a><h3>enum GstVideoFormatFlags</h3>
 <p>The different video flags that a format info can have.</p>
 <div class="refsect3">
-<a name="id-1.2.15.3.9.12.4"></a><h4>Members</h4>
+<a name="id-1.2.15.3.8.11.4"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -4280,7 +4834,7 @@
 <a name="GstVideoPackFlags"></a><h3>enum GstVideoPackFlags</h3>
 <p>The different flags that can be used when packing and unpacking.</p>
 <div class="refsect3">
-<a name="id-1.2.15.3.9.13.4"></a><h4>Members</h4>
+<a name="id-1.2.15.3.8.12.4"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -4342,7 +4896,7 @@
 <p>Possible color range values. These constants are defined for 8 bit color
 values and can be scaled for other bit depths.</p>
 <div class="refsect3">
-<a name="id-1.2.15.3.9.17.4"></a><h4>Members</h4>
+<a name="id-1.2.15.3.8.16.4"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -4382,7 +4936,7 @@
 <p>The color matrix is used to convert between Y'PbPr and
 non-linear RGB (R'G'B')</p>
 <div class="refsect3">
-<a name="id-1.2.15.3.9.18.4"></a><h4>Members</h4>
+<a name="id-1.2.15.3.8.17.4"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -4432,6 +4986,87 @@
 </td>
 <td class="enum_member_annotations"> </td>
 </tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-VIDEO-COLOR-MATRIX-BT2020:CAPS"></a>GST_VIDEO_COLOR_MATRIX_BT2020</p></td>
+<td class="enum_member_description">
+<p>ITU-R BT.2020 color matrix. Since: 1.6.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVideoColorPrimaries"></a><h3>enum GstVideoColorPrimaries</h3>
+<p>The color primaries define the how to transform linear RGB values to and from
+the CIE XYZ colorspace.</p>
+<div class="refsect3">
+<a name="id-1.2.15.3.8.18.4"></a><h4>Members</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="enum_member_name"><p><a name="GST-VIDEO-COLOR-PRIMARIES-UNKNOWN:CAPS"></a>GST_VIDEO_COLOR_PRIMARIES_UNKNOWN</p></td>
+<td class="enum_member_description">
+<p>unknown color primaries</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-VIDEO-COLOR-PRIMARIES-BT709:CAPS"></a>GST_VIDEO_COLOR_PRIMARIES_BT709</p></td>
+<td class="enum_member_description">
+<p>BT709 primaries</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-VIDEO-COLOR-PRIMARIES-BT470M:CAPS"></a>GST_VIDEO_COLOR_PRIMARIES_BT470M</p></td>
+<td class="enum_member_description">
+<p>BT470M primaries</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-VIDEO-COLOR-PRIMARIES-BT470BG:CAPS"></a>GST_VIDEO_COLOR_PRIMARIES_BT470BG</p></td>
+<td class="enum_member_description">
+<p>BT470BG primaries</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-VIDEO-COLOR-PRIMARIES-SMPTE170M:CAPS"></a>GST_VIDEO_COLOR_PRIMARIES_SMPTE170M</p></td>
+<td class="enum_member_description">
+<p>SMPTE170M primaries</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-VIDEO-COLOR-PRIMARIES-SMPTE240M:CAPS"></a>GST_VIDEO_COLOR_PRIMARIES_SMPTE240M</p></td>
+<td class="enum_member_description">
+<p>SMPTE240M primaries</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-VIDEO-COLOR-PRIMARIES-FILM:CAPS"></a>GST_VIDEO_COLOR_PRIMARIES_FILM</p></td>
+<td class="enum_member_description">
+<p>Generic film</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-VIDEO-COLOR-PRIMARIES-BT2020:CAPS"></a>GST_VIDEO_COLOR_PRIMARIES_BT2020</p></td>
+<td class="enum_member_description">
+<p>BT2020 primaries. Since: 1.6.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
 </tbody>
 </table></div>
 </div>
@@ -4442,7 +5077,7 @@
 <p>The video transfer function defines the formula for converting between
 non-linear RGB (R'G'B') and linear RGB</p>
 <div class="refsect3">
-<a name="id-1.2.15.3.9.19.4"></a><h4>Members</h4>
+<a name="id-1.2.15.3.8.19.4"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -4532,70 +5167,12 @@
 </td>
 <td class="enum_member_annotations"> </td>
 </tr>
-</tbody>
-</table></div>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstVideoColorPrimaries"></a><h3>enum GstVideoColorPrimaries</h3>
-<p>The color primaries define the how to transform linear RGB values to and from
-the CIE XYZ colorspace.</p>
-<div class="refsect3">
-<a name="id-1.2.15.3.9.20.4"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
-<colgroup>
-<col width="300px" class="enum_members_name">
-<col class="enum_members_description">
-<col width="200px" class="enum_members_annotations">
-</colgroup>
-<tbody>
 <tr>
-<td class="enum_member_name"><p><a name="GST-VIDEO-COLOR-PRIMARIES-UNKNOWN:CAPS"></a>GST_VIDEO_COLOR_PRIMARIES_UNKNOWN</p></td>
+<td class="enum_member_name"><p><a name="GST-VIDEO-TRANSFER-BT2020-12:CAPS"></a>GST_VIDEO_TRANSFER_BT2020_12</p></td>
 <td class="enum_member_description">
-<p>unknown color primaries</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="GST-VIDEO-COLOR-PRIMARIES-BT709:CAPS"></a>GST_VIDEO_COLOR_PRIMARIES_BT709</p></td>
-<td class="enum_member_description">
-<p>BT709 primaries</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="GST-VIDEO-COLOR-PRIMARIES-BT470M:CAPS"></a>GST_VIDEO_COLOR_PRIMARIES_BT470M</p></td>
-<td class="enum_member_description">
-<p>BT470M primaries</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="GST-VIDEO-COLOR-PRIMARIES-BT470BG:CAPS"></a>GST_VIDEO_COLOR_PRIMARIES_BT470BG</p></td>
-<td class="enum_member_description">
-<p>BT470BG primaries</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="GST-VIDEO-COLOR-PRIMARIES-SMPTE170M:CAPS"></a>GST_VIDEO_COLOR_PRIMARIES_SMPTE170M</p></td>
-<td class="enum_member_description">
-<p>SMPTE170M primaries</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="GST-VIDEO-COLOR-PRIMARIES-SMPTE240M:CAPS"></a>GST_VIDEO_COLOR_PRIMARIES_SMPTE240M</p></td>
-<td class="enum_member_description">
-<p>SMPTE240M primaries</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="GST-VIDEO-COLOR-PRIMARIES-FILM:CAPS"></a>GST_VIDEO_COLOR_PRIMARIES_FILM</p></td>
-<td class="enum_member_description">
-<p>Generic film</p>
+<p>Gamma 2.2 curve with a linear segment in the lower
+                               range. Used for BT.2020 with 12 bits per
+                               component. Since: 1.6.</p>
 </td>
 <td class="enum_member_annotations"> </td>
 </tr>
@@ -4615,7 +5192,7 @@
 </pre>
 <p>Structure describing the color info.</p>
 <div class="refsect3">
-<a name="id-1.2.15.3.9.21.5"></a><h4>Members</h4>
+<a name="id-1.2.15.3.8.20.5"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
@@ -4680,7 +5257,7 @@
 <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-frame-map" title="gst_video_frame_map ()"><code class="function">gst_video_frame_map()</code></a>.</p>
 <p>Use the provided macros to access the info in this structure.</p>
 <div class="refsect3">
-<a name="id-1.2.15.3.9.22.6"></a><h4>Members</h4>
+<a name="id-1.2.15.3.8.21.6"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
@@ -4704,12 +5281,12 @@
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstVideoInfo.width"></a>width</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstVideoInfo.width"></a>width</code></em>;</p></td>
 <td class="struct_member_description"><p>the width of the video</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstVideoInfo.height"></a>height</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstVideoInfo.height"></a>height</code></em>;</p></td>
 <td class="struct_member_description"><p>the height of the video</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
@@ -4719,13 +5296,13 @@
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstVideoInfo.views"></a>views</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstVideoInfo.views"></a>views</code></em>;</p></td>
 <td class="struct_member_description"><p>the number of views for multiview video</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoChromaSite" title="enum GstVideoChromaSite"><span class="type">GstVideoChromaSite</span></a> <em class="structfield"><code><a name="GstVideoInfo.chroma-site"></a>chroma_site</code></em>;</p></td>
-<td class="struct_member_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoChromaSite" title="enum GstVideoChromaSite"><span class="type">GstVideoChromaSite</span></a>.</p></td>
+<td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#GstVideoChromaSite" title="enum GstVideoChromaSite"><span class="type">GstVideoChromaSite</span></a> <em class="structfield"><code><a name="GstVideoInfo.chroma-site"></a>chroma_site</code></em>;</p></td>
+<td class="struct_member_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#GstVideoChromaSite" title="enum GstVideoChromaSite"><span class="type">GstVideoChromaSite</span></a>.</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
@@ -4734,22 +5311,22 @@
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstVideoInfo.par-n"></a>par_n</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstVideoInfo.par-n"></a>par_n</code></em>;</p></td>
 <td class="struct_member_description"><p>the pixel-aspect-ratio numerator</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstVideoInfo.par-d"></a>par_d</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstVideoInfo.par-d"></a>par_d</code></em>;</p></td>
 <td class="struct_member_description"><p>the pixel-aspect-ratio demnominator</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstVideoInfo.fps-n"></a>fps_n</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstVideoInfo.fps-n"></a>fps_n</code></em>;</p></td>
 <td class="struct_member_description"><p>the framerate numerator</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstVideoInfo.fps-d"></a>fps_d</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstVideoInfo.fps-d"></a>fps_d</code></em>;</p></td>
 <td class="struct_member_description"><p>the framerate demnominator</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
@@ -4759,7 +5336,7 @@
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstVideoInfo.stride"></a>stride</code></em>[GST_VIDEO_MAX_PLANES];</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstVideoInfo.stride"></a>stride</code></em>[GST_VIDEO_MAX_PLANES];</p></td>
 <td class="struct_member_description"><p>strides of the planes</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
@@ -4773,7 +5350,7 @@
 <p>The possible values of the <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInterlaceMode" title="enum GstVideoInterlaceMode"><span class="type">GstVideoInterlaceMode</span></a> describing the interlace
 mode of the stream.</p>
 <div class="refsect3">
-<a name="id-1.2.15.3.9.23.4"></a><h4>Members</h4>
+<a name="id-1.2.15.3.8.22.4"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -4826,7 +5403,7 @@
 <a name="GstVideoFlags"></a><h3>enum GstVideoFlags</h3>
 <p>Extra video flags</p>
 <div class="refsect3">
-<a name="id-1.2.15.3.9.24.4"></a><h4>Members</h4>
+<a name="id-1.2.15.3.8.23.4"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -4878,7 +5455,7 @@
 </pre>
 <p>A video frame obtained from <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-frame-map" title="gst_video_frame_map ()"><code class="function">gst_video_frame_map()</code></a></p>
 <div class="refsect3">
-<a name="id-1.2.15.3.9.25.5"></a><h4>Members</h4>
+<a name="id-1.2.15.3.8.24.5"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
@@ -4893,27 +5470,27 @@
 </tr>
 <tr>
 <td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFrameFlags" title="enum GstVideoFrameFlags"><span class="type">GstVideoFrameFlags</span></a> <em class="structfield"><code><a name="GstVideoFrame.flags"></a>flags</code></em>;</p></td>
-<td> </td>
-<td> </td>
+<td class="struct_member_description"><p><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFrameFlags" title="enum GstVideoFrameFlags"><span class="type">GstVideoFrameFlags</span></a> for the frame</p></td>
+<td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *<em class="structfield"><code><a name="GstVideoFrame.buffer"></a>buffer</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> *<em class="structfield"><code><a name="GstVideoFrame.buffer"></a>buffer</code></em>;</p></td>
 <td class="struct_member_description"><p>the mapped buffer</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstVideoFrame.meta"></a>meta</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> <em class="structfield"><code><a name="GstVideoFrame.meta"></a>meta</code></em>;</p></td>
 <td class="struct_member_description"><p>pointer to metadata if any</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstVideoFrame.id"></a>id</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstVideoFrame.id"></a>id</code></em>;</p></td>
 <td class="struct_member_description"><p>id of the mapped frame. the id can for example be used to
 indentify the frame in case of multiview video.</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstVideoFrame.data"></a>data</code></em>[GST_VIDEO_MAX_PLANES];</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> <em class="structfield"><code><a name="GstVideoFrame.data"></a>data</code></em>[GST_VIDEO_MAX_PLANES];</p></td>
 <td class="struct_member_description"><p>pointers to the plane data</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
@@ -4931,7 +5508,7 @@
 <a name="GstVideoFrameFlags"></a><h3>enum GstVideoFrameFlags</h3>
 <p>Extra video frame flags</p>
 <div class="refsect3">
-<a name="id-1.2.15.3.9.26.4"></a><h4>Members</h4>
+<a name="id-1.2.15.3.8.25.4"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -4985,7 +5562,7 @@
 <a name="GstVideoBufferFlags"></a><h3>enum GstVideoBufferFlags</h3>
 <p>Additional video buffer flags.</p>
 <div class="refsect3">
-<a name="id-1.2.15.3.9.27.4"></a><h4>Members</h4>
+<a name="id-1.2.15.3.8.26.4"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -4996,7 +5573,7 @@
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-BUFFER-FLAG-INTERLACED:CAPS"></a>GST_VIDEO_BUFFER_FLAG_INTERLACED</p></td>
 <td class="enum_member_description">
-<p>If the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> is interlaced. In mixed
+<p>If the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> is interlaced. In mixed
                                     interlace-mode, this flags specifies if the frame is
                                     interlaced or progressive.</p>
 </td>
@@ -5005,7 +5582,7 @@
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-BUFFER-FLAG-TFF:CAPS"></a>GST_VIDEO_BUFFER_FLAG_TFF</p></td>
 <td class="enum_member_description">
-<p>If the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> is interlaced, then the first field
+<p>If the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> is interlaced, then the first field
                                     in the video frame is the top field.  If unset, the
                                     bottom field is first.</p>
 </td>
@@ -5014,8 +5591,8 @@
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-BUFFER-FLAG-RFF:CAPS"></a>GST_VIDEO_BUFFER_FLAG_RFF</p></td>
 <td class="enum_member_description">
-<p>If the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> is interlaced, then the first field
-                                    (as defined by the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BUFFER-TFF:CAPS"><code class="literal">GST_VIDEO_BUFFER_TFF</code></a> flag setting)
+<p>If the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> is interlaced, then the first field
+                                    (as defined by the <code class="literal">GST_VIDEO_BUFFER_TFF</code> flag setting)
                                     is repeated.</p>
 </td>
 <td class="enum_member_annotations"> </td>
@@ -5023,16 +5600,18 @@
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-BUFFER-FLAG-ONEFIELD:CAPS"></a>GST_VIDEO_BUFFER_FLAG_ONEFIELD</p></td>
 <td class="enum_member_description">
-<p>If the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> is interlaced, then only the
-                                    first field (as defined by the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BUFFER-TFF:CAPS"><code class="literal">GST_VIDEO_BUFFER_TFF</code></a>
+<p>If the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> is interlaced, then only the
+                                    first field (as defined by the <code class="literal">GST_VIDEO_BUFFER_TFF</code>
                                     flag setting) is to be displayed.</p>
 </td>
 <td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-BUFFER-FLAG-LAST:CAPS"></a>GST_VIDEO_BUFFER_FLAG_LAST</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>Offset to define more flags</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
@@ -5043,7 +5622,7 @@
 <a name="GstVideoTileType"></a><h3>enum GstVideoTileType</h3>
 <p>Enum value describing the most common tiling types.</p>
 <div class="refsect3">
-<a name="id-1.2.15.3.9.28.4"></a><h4>Members</h4>
+<a name="id-1.2.15.3.8.27.4"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -5067,7 +5646,7 @@
 <a name="GstVideoTileMode"></a><h3>enum GstVideoTileMode</h3>
 <p>Enum value describing the available tiling modes.</p>
 <div class="refsect3">
-<a name="id-1.2.15.3.9.29.4"></a><h4>Members</h4>
+<a name="id-1.2.15.3.8.28.4"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -5096,10 +5675,15 @@
 </table></div>
 </div>
 </div>
+<hr>
+<div class="refsect2">
+<a name="GstVideoConverter"></a><h3>GstVideoConverter</h3>
+<pre class="programlisting">typedef struct _GstVideoConverter GstVideoConverter;</pre>
+</div>
 </div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstvideofilter.html b/docs/libs/html/gst-plugins-base-libs-gstvideofilter.html
index 86638a2..c71a1b8 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstvideofilter.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstvideofilter.html
@@ -7,21 +7,21 @@
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-video.html" title="Video Library">
 <link rel="prev" href="gst-plugins-base-libs-gstvideooverlaycomposition.html" title="gstvideooverlaycomposition">
-<link rel="next" href="gst-plugins-base-libs-gstvideosink.html" title="gstvideosink">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<link rel="next" href="gst-plugins-base-libs-GstVideoDither.html" title="GstVideoDither">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstvideofilter.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gstvideofilter.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
                   <a href="#gst-plugins-base-libs-gstvideofilter.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="gstreamer-video.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
 <td><a accesskey="p" href="gst-plugins-base-libs-gstvideooverlaycomposition.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-base-libs-gstvideosink.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-base-libs-GstVideoDither.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-base-libs-gstvideofilter"></a><div class="titlepage"></div>
@@ -53,8 +53,8 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstvideofilter.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-    <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+<pre class="screen">    <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
         <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
             <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
                 <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a>
@@ -141,6 +141,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstvideometa.html b/docs/libs/html/gst-plugins-base-libs-gstvideometa.html
index e5677ad..d9bb808 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstvideometa.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstvideometa.html
@@ -8,15 +8,14 @@
 <link rel="up" href="gstreamer-video.html" title="Video Library">
 <link rel="prev" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">
 <link rel="next" href="gst-plugins-base-libs-gstvideooverlaycomposition.html" title="gstvideooverlaycomposition">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstvideometa.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstvideometa.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gstvideometa.description" class="shortcut">Description</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="gstreamer-video.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -42,7 +41,7 @@
 <tbody>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstvideometa.html#gst-video-meta-map" title="gst_video_meta_map ()">gst_video_meta_map</a> <span class="c_punctuation">()</span>
@@ -50,7 +49,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstvideometa.html#gst-video-meta-unmap" title="gst_video_meta_unmap ()">gst_video_meta_unmap</a> <span class="c_punctuation">()</span>
@@ -137,7 +136,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <span class="c_punctuation">(</span><a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoGLTextureUpload" title="GstVideoGLTextureUpload ()">*GstVideoGLTextureUpload</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span>
@@ -159,7 +158,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstvideometa.html#gst-video-gl-texture-upload-meta-upload" title="gst_video_gl_texture_upload_meta_upload ()">gst_video_gl_texture_upload_meta_upload</a> <span class="c_punctuation">()</span>
@@ -204,11 +203,6 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="gst-plugins-base-libs-gstvideometa.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">
-</pre>
-</div>
-<div class="refsect1">
 <a name="gst-plugins-base-libs-gstvideometa.includes"></a><h2>Includes</h2>
 <pre class="synopsis">#include &lt;gst/video/gstvideometa.h&gt;
 </pre>
@@ -220,19 +214,19 @@
 <a name="gst-plugins-base-libs-gstvideometa.functions_details"></a><h2>Functions</h2>
 <div class="refsect2">
 <a name="gst-video-meta-map"></a><h3>gst_video_meta_map ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_video_meta_map (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoMeta" title="struct GstVideoMeta"><span class="type">GstVideoMeta</span></a> *meta</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> plane</code></em>,
+                    <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> plane</code></em>,
                     <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMemory.html#GstMapInfo"><span class="type">GstMapInfo</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> *data</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> *stride</code></em>,
+                    <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> *data</code></em>,
+                    <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *stride</code></em>,
                     <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMemory.html#GstMapFlags"><span class="type">GstMapFlags</span></a> flags</code></em>);</pre>
 <p>Map the video plane with index <em class="parameter"><code>plane</code></em>
  in <em class="parameter"><code>meta</code></em>
  and return a pointer to the
 first byte of the plane and the stride of the plane.</p>
 <div class="refsect3">
-<a name="id-1.2.15.4.8.2.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.4.7.2.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -277,7 +271,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.4.8.2.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.4.7.2.6"></a><h4>Returns</h4>
 <p> TRUE if the map operation was successful.</p>
 <p></p>
 </div>
@@ -285,13 +279,13 @@
 <hr>
 <div class="refsect2">
 <a name="gst-video-meta-unmap"></a><h3>gst_video_meta_unmap ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_video_meta_unmap (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoMeta" title="struct GstVideoMeta"><span class="type">GstVideoMeta</span></a> *meta</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> plane</code></em>,
+                      <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> plane</code></em>,
                       <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMemory.html#GstMapInfo"><span class="type">GstMapInfo</span></a> *info</code></em>);</pre>
 <p>Unmap a previously mapped plane with <a class="link" href="gst-plugins-base-libs-gstvideometa.html#gst-video-meta-map" title="gst_video_meta_map ()"><code class="function">gst_video_meta_map()</code></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.15.4.8.3.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.4.7.3.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -318,7 +312,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.4.8.3.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.4.7.3.6"></a><h4>Returns</h4>
 <p> TRUE if the memory was successfully unmapped.</p>
 <p></p>
 </div>
@@ -333,11 +327,11 @@
 <div class="refsect2">
 <a name="gst-buffer-add-video-meta"></a><h3>gst_buffer_add_video_meta ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoMeta" title="struct GstVideoMeta"><span class="returnvalue">GstVideoMeta</span></a> *
-gst_buffer_add_video_meta (<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>,
+gst_buffer_add_video_meta (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> *buffer</code></em>,
                            <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFrameFlags" title="enum GstVideoFrameFlags"><span class="type">GstVideoFrameFlags</span></a> flags</code></em>,
                            <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> format</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> width</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> height</code></em>);</pre>
+                           <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> width</code></em>,
+                           <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> height</code></em>);</pre>
 <p>Attaches GstVideoMeta metadata to <em class="parameter"><code>buffer</code></em>
  with the given parameters and the
 default offsets and strides for <em class="parameter"><code>format</code></em>
@@ -347,7 +341,7 @@
 <p>This function calculates the default offsets and strides and then calls
 <a class="link" href="gst-plugins-base-libs-gstvideometa.html#gst-buffer-add-video-meta-full" title="gst_buffer_add_video_meta_full ()"><code class="function">gst_buffer_add_video_meta_full()</code></a> with them.</p>
 <div class="refsect3">
-<a name="id-1.2.15.4.8.5.6"></a><h4>Parameters</h4>
+<a name="id-1.2.15.4.7.5.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -357,7 +351,7 @@
 <tbody>
 <tr>
 <td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a></p></td>
+<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a></p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
@@ -384,7 +378,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.4.8.5.7"></a><h4>Returns</h4>
+<a name="id-1.2.15.4.7.5.7"></a><h4>Returns</h4>
 <p> the <a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoMeta" title="struct GstVideoMeta"><span class="type">GstVideoMeta</span></a> on <em class="parameter"><code>buffer</code></em>
 .</p>
 <p></p>
@@ -394,18 +388,18 @@
 <div class="refsect2">
 <a name="gst-buffer-add-video-meta-full"></a><h3>gst_buffer_add_video_meta_full ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoMeta" title="struct GstVideoMeta"><span class="returnvalue">GstVideoMeta</span></a> *
-gst_buffer_add_video_meta_full (<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>,
+gst_buffer_add_video_meta_full (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> *buffer</code></em>,
                                 <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFrameFlags" title="enum GstVideoFrameFlags"><span class="type">GstVideoFrameFlags</span></a> flags</code></em>,
                                 <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> format</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> width</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> height</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_planes</code></em>,
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> width</code></em>,
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> height</code></em>,
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_planes</code></em>,
                                 <em class="parameter"><code><span class="type">gsize</span> offset[GST_VIDEO_MAX_PLANES]</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> stride[GST_VIDEO_MAX_PLANES]</code></em>);</pre>
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> stride[GST_VIDEO_MAX_PLANES]</code></em>);</pre>
 <p>Attaches GstVideoMeta metadata to <em class="parameter"><code>buffer</code></em>
  with the given parameters.</p>
 <div class="refsect3">
-<a name="id-1.2.15.4.8.6.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.4.7.6.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -415,7 +409,7 @@
 <tbody>
 <tr>
 <td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a></p></td>
+<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a></p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
@@ -457,7 +451,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.4.8.6.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.4.7.6.6"></a><h4>Returns</h4>
 <p> the <a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoMeta" title="struct GstVideoMeta"><span class="type">GstVideoMeta</span></a> on <em class="parameter"><code>buffer</code></em>
 .</p>
 <p></p>
@@ -473,15 +467,15 @@
 <div class="refsect2">
 <a name="gst-buffer-get-video-meta-id"></a><h3>gst_buffer_get_video_meta_id ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoMeta" title="struct GstVideoMeta"><span class="returnvalue">GstVideoMeta</span></a> *
-gst_buffer_get_video_meta_id (<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="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> id</code></em>);</pre>
+gst_buffer_get_video_meta_id (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> *buffer</code></em>,
+                              <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> id</code></em>);</pre>
 <p>Find the <a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoMeta" title="struct GstVideoMeta"><span class="type">GstVideoMeta</span></a> on <em class="parameter"><code>buffer</code></em>
  with the given <em class="parameter"><code>id</code></em>
 .</p>
 <p>Buffers can contain multiple <a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoMeta" title="struct GstVideoMeta"><span class="type">GstVideoMeta</span></a> metadata items when dealing with
 multiview buffers.</p>
 <div class="refsect3">
-<a name="id-1.2.15.4.8.8.6"></a><h4>Parameters</h4>
+<a name="id-1.2.15.4.7.8.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -491,7 +485,7 @@
 <tbody>
 <tr>
 <td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a></p></td>
+<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a></p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
@@ -503,9 +497,9 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.4.8.8.7"></a><h4>Returns</h4>
+<a name="id-1.2.15.4.7.8.7"></a><h4>Returns</h4>
 <p> the <a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoMeta" title="struct GstVideoMeta"><span class="type">GstVideoMeta</span></a> with <em class="parameter"><code>id</code></em>
-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 such metadata
+or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> when there is no such metadata
 on <em class="parameter"><code>buffer</code></em>
 .</p>
 <p></p>
@@ -528,17 +522,17 @@
 <a name="gst-buffer-add-video-region-of-interest-meta"></a><h3>gst_buffer_add_video_region_of_interest_meta ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoRegionOfInterestMeta" title="GstVideoRegionOfInterestMeta"><span class="returnvalue">GstVideoRegionOfInterestMeta</span></a> *
 gst_buffer_add_video_region_of_interest_meta
-                               (<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>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *roi_type</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> x</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> y</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> w</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> h</code></em>);</pre>
+                               (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> *buffer</code></em>,
+                                <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *roi_type</code></em>,
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> x</code></em>,
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> y</code></em>,
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> w</code></em>,
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> h</code></em>);</pre>
 <p>Attaches <a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoRegionOfInterestMeta" title="GstVideoRegionOfInterestMeta"><span class="type">GstVideoRegionOfInterestMeta</span></a> metadata to <em class="parameter"><code>buffer</code></em>
  with the given
 parameters.</p>
 <div class="refsect3">
-<a name="id-1.2.15.4.8.11.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.4.7.11.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -548,7 +542,7 @@
 <tbody>
 <tr>
 <td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a></p></td>
+<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a></p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
@@ -580,7 +574,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.4.8.11.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.4.7.11.6"></a><h4>Returns</h4>
 <p> the <a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoRegionOfInterestMeta" title="GstVideoRegionOfInterestMeta"><span class="type">GstVideoRegionOfInterestMeta</span></a> on <em class="parameter"><code>buffer</code></em>
 .</p>
 <p></p>
@@ -591,17 +585,17 @@
 <a name="gst-buffer-add-video-region-of-interest-meta-id"></a><h3>gst_buffer_add_video_region_of_interest_meta_id ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoRegionOfInterestMeta" title="GstVideoRegionOfInterestMeta"><span class="returnvalue">GstVideoRegionOfInterestMeta</span></a> *
 gst_buffer_add_video_region_of_interest_meta_id
-                               (<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="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> roi_type</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> x</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> y</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> w</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> h</code></em>);</pre>
+                               (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> *buffer</code></em>,
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> roi_type</code></em>,
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> x</code></em>,
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> y</code></em>,
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> w</code></em>,
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> h</code></em>);</pre>
 <p>Attaches <a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoRegionOfInterestMeta" title="GstVideoRegionOfInterestMeta"><span class="type">GstVideoRegionOfInterestMeta</span></a> metadata to <em class="parameter"><code>buffer</code></em>
  with the given
 parameters.</p>
 <div class="refsect3">
-<a name="id-1.2.15.4.8.12.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.4.7.12.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -611,7 +605,7 @@
 <tbody>
 <tr>
 <td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a></p></td>
+<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a></p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
@@ -643,7 +637,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.4.8.12.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.4.7.12.6"></a><h4>Returns</h4>
 <p> the <a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoRegionOfInterestMeta" title="GstVideoRegionOfInterestMeta"><span class="type">GstVideoRegionOfInterestMeta</span></a> on <em class="parameter"><code>buffer</code></em>
 .</p>
 <p></p>
@@ -659,15 +653,15 @@
 <a name="gst-buffer-get-video-region-of-interest-meta-id"></a><h3>gst_buffer_get_video_region_of_interest_meta_id ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoRegionOfInterestMeta" title="GstVideoRegionOfInterestMeta"><span class="returnvalue">GstVideoRegionOfInterestMeta</span></a> *
 gst_buffer_get_video_region_of_interest_meta_id
-                               (<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="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> id</code></em>);</pre>
+                               (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> *buffer</code></em>,
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> id</code></em>);</pre>
 <p>Find the <a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoRegionOfInterestMeta" title="GstVideoRegionOfInterestMeta"><span class="type">GstVideoRegionOfInterestMeta</span></a> on <em class="parameter"><code>buffer</code></em>
  with the given <em class="parameter"><code>id</code></em>
 .</p>
 <p>Buffers can contain multiple <a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoRegionOfInterestMeta" title="GstVideoRegionOfInterestMeta"><span class="type">GstVideoRegionOfInterestMeta</span></a> metadata items if
 multiple regions of interests are marked on a frame.</p>
 <div class="refsect3">
-<a name="id-1.2.15.4.8.14.6"></a><h4>Parameters</h4>
+<a name="id-1.2.15.4.7.14.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -677,7 +671,7 @@
 <tbody>
 <tr>
 <td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a></p></td>
+<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a></p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
@@ -689,9 +683,9 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.4.8.14.7"></a><h4>Returns</h4>
-<p> the <span class="type">GstVideoeRegionOfInterestMeta</span> with <em class="parameter"><code>id</code></em>
-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
+<a name="id-1.2.15.4.7.14.7"></a><h4>Returns</h4>
+<p> the <a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoRegionOfInterestMeta" title="GstVideoRegionOfInterestMeta"><span class="type">GstVideoRegionOfInterestMeta</span></a> with <em class="parameter"><code>id</code></em>
+or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> when there is
 no such metadata on <em class="parameter"><code>buffer</code></em>
 .</p>
 <p></p>
@@ -700,28 +694,28 @@
 <hr>
 <div class="refsect2">
 <a name="GstVideoGLTextureUpload"></a><h3>GstVideoGLTextureUpload ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 <span class="c_punctuation">(</span>*GstVideoGLTextureUpload<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoGLTextureUploadMeta" title="struct GstVideoGLTextureUploadMeta"><span class="type">GstVideoGLTextureUploadMeta</span></a> *meta</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> texture_id[4]</code></em>);</pre>
+                            <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> texture_id[4]</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-buffer-add-video-gl-texture-upload-meta"></a><h3>gst_buffer_add_video_gl_texture_upload_meta ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoGLTextureUploadMeta" title="struct GstVideoGLTextureUploadMeta"><span class="returnvalue">GstVideoGLTextureUploadMeta</span></a> *
 gst_buffer_add_video_gl_texture_upload_meta
-                               (<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="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> *buffer</code></em>,
                                 <em class="parameter"><code><span class="type">GstVideoGLTextureOrientation</span> texture_orientation</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_textures</code></em>,
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_textures</code></em>,
                                 <em class="parameter"><code><span class="type">GstVideoGLTextureType</span> texture_type[4]</code></em>,
                                 <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoGLTextureUpload" title="GstVideoGLTextureUpload ()"><span class="type">GstVideoGLTextureUpload</span></a> upload</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/gobject/unstable/gobject-Boxed-Types.html#GBoxedCopyFunc"><span class="type">GBoxedCopyFunc</span></a> user_data_copy</code></em>,
-                                <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Boxed-Types.html#GBoxedFreeFunc"><span class="type">GBoxedFreeFunc</span></a> user_data_free</code></em>);</pre>
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
+                                <em class="parameter"><code><a href="https://developer.gnome.org/gobject/unstable/gobject-Boxed-Types.html#GBoxedCopyFunc"><span class="type">GBoxedCopyFunc</span></a> user_data_copy</code></em>,
+                                <em class="parameter"><code><a href="https://developer.gnome.org/gobject/unstable/gobject-Boxed-Types.html#GBoxedFreeFunc"><span class="type">GBoxedFreeFunc</span></a> user_data_free</code></em>);</pre>
 <p>Attaches GstVideoGLTextureUploadMeta metadata to <em class="parameter"><code>buffer</code></em>
  with the given
 parameters.</p>
 <div class="refsect3">
-<a name="id-1.2.15.4.8.16.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.4.7.16.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -731,7 +725,7 @@
 <tbody>
 <tr>
 <td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a></p></td>
+<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a></p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
@@ -761,7 +755,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.4.8.16.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.4.7.16.6"></a><h4>Returns</h4>
 <p> the <a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoGLTextureUploadMeta" title="struct GstVideoGLTextureUploadMeta"><span class="type">GstVideoGLTextureUploadMeta</span></a> on <em class="parameter"><code>buffer</code></em>
 .</p>
 <p></p>
@@ -776,13 +770,13 @@
 <hr>
 <div class="refsect2">
 <a name="gst-video-gl-texture-upload-meta-upload"></a><h3>gst_video_gl_texture_upload_meta_upload ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_video_gl_texture_upload_meta_upload
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoGLTextureUploadMeta" title="struct GstVideoGLTextureUploadMeta"><span class="type">GstVideoGLTextureUploadMeta</span></a> *meta</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> texture_id[4]</code></em>);</pre>
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> texture_id[4]</code></em>);</pre>
 <p>Uploads the buffer which owns the meta to a specific texture ID.</p>
 <div class="refsect3">
-<a name="id-1.2.15.4.8.18.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.4.7.18.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -804,8 +798,8 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.4.8.18.6"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if uploading succeeded, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise.</p>
+<a name="id-1.2.15.4.7.18.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if uploading succeeded, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise.</p>
 <p></p>
 </div>
 </div>
@@ -836,7 +830,7 @@
 </pre>
 <p>Extra buffer metadata describing image properties</p>
 <div class="refsect3">
-<a name="id-1.2.15.4.9.2.5"></a><h4>Members</h4>
+<a name="id-1.2.15.4.8.2.5"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
@@ -850,7 +844,7 @@
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *<em class="structfield"><code><a name="GstVideoMeta.buffer"></a>buffer</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> *<em class="structfield"><code><a name="GstVideoMeta.buffer"></a>buffer</code></em>;</p></td>
 <td class="struct_member_description"><p>the buffer this metadata belongs to</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
@@ -865,22 +859,22 @@
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstVideoMeta.id"></a>id</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstVideoMeta.id"></a>id</code></em>;</p></td>
 <td class="struct_member_description"><p>identifier of the frame</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstVideoMeta.width"></a>width</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstVideoMeta.width"></a>width</code></em>;</p></td>
 <td class="struct_member_description"><p>the video width</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstVideoMeta.height"></a>height</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstVideoMeta.height"></a>height</code></em>;</p></td>
 <td class="struct_member_description"><p>the video height</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstVideoMeta.n-planes"></a>n_planes</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstVideoMeta.n-planes"></a>n_planes</code></em>;</p></td>
 <td class="struct_member_description"><p>the number of planes in the image</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
@@ -892,7 +886,7 @@
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstVideoMeta.stride"></a>stride</code></em>[GST_VIDEO_MAX_PLANES];</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstVideoMeta.stride"></a>stride</code></em>[GST_VIDEO_MAX_PLANES];</p></td>
 <td class="struct_member_description"><p>array of strides for the planes. This field might not always be
 valid, it is used by the default implementation of <em class="parameter"><code>map</code></em>
 .</p></td>
@@ -923,7 +917,7 @@
 <p>Extra data passed to a video transform <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMeta.html#GstMetaTransformFunction"><span class="type">GstMetaTransformFunction</span></a> such as:
 "gst-video-scale".</p>
 <div class="refsect3">
-<a name="id-1.2.15.4.9.3.5"></a><h4>Members</h4>
+<a name="id-1.2.15.4.8.3.5"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
@@ -959,7 +953,7 @@
 </pre>
 <p>Extra buffer metadata describing image cropping.</p>
 <div class="refsect3">
-<a name="id-1.2.15.4.9.4.5"></a><h4>Members</h4>
+<a name="id-1.2.15.4.8.4.5"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
@@ -973,22 +967,22 @@
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstVideoCropMeta.x"></a>x</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstVideoCropMeta.x"></a>x</code></em>;</p></td>
 <td class="struct_member_description"><p>the horizontal offset</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstVideoCropMeta.y"></a>y</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstVideoCropMeta.y"></a>y</code></em>;</p></td>
 <td class="struct_member_description"><p>the vertical offset</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstVideoCropMeta.width"></a>width</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstVideoCropMeta.width"></a>width</code></em>;</p></td>
 <td class="struct_member_description"><p>the cropped width</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstVideoCropMeta.height"></a>height</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstVideoCropMeta.height"></a>height</code></em>;</p></td>
 <td class="struct_member_description"><p>the cropped height</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
@@ -1014,7 +1008,7 @@
 </pre>
 <p>Extra buffer metadata describing an image region of interest</p>
 <div class="refsect3">
-<a name="id-1.2.15.4.9.5.5"></a><h4>Members</h4>
+<a name="id-1.2.15.4.8.5.5"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
@@ -1028,39 +1022,39 @@
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> <em class="structfield"><code><a name="GstVideoRegionOfInterestMeta.roi-type"></a>roi_type</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> <em class="structfield"><code><a name="GstVideoRegionOfInterestMeta.roi-type"></a>roi_type</code></em>;</p></td>
 <td class="struct_member_description"><p>GQuark describing the semantic of the Roi (f.i. a face, a pedestrian)</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstVideoRegionOfInterestMeta.id"></a>id</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstVideoRegionOfInterestMeta.id"></a>id</code></em>;</p></td>
 <td class="struct_member_description"><p>identifier of this particular ROI</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstVideoRegionOfInterestMeta.parent-id"></a>parent_id</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstVideoRegionOfInterestMeta.parent-id"></a>parent_id</code></em>;</p></td>
 <td class="struct_member_description"><p>identifier of its parent ROI, used f.i. for ROI hierarchisation.</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstVideoRegionOfInterestMeta.x"></a>x</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstVideoRegionOfInterestMeta.x"></a>x</code></em>;</p></td>
 <td class="struct_member_description"><p>x component of upper-left corner</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstVideoRegionOfInterestMeta.y"></a>y</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstVideoRegionOfInterestMeta.y"></a>y</code></em>;</p></td>
 <td class="struct_member_description"><p>y component of upper-left corner</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstVideoRegionOfInterestMeta.w"></a>w</code></em>;</p></td>
-<td> </td>
-<td> </td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstVideoRegionOfInterestMeta.w"></a>w</code></em>;</p></td>
+<td class="struct_member_description"><p>bounding box width</p></td>
+<td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstVideoRegionOfInterestMeta.h"></a>h</code></em>;</p></td>
-<td> </td>
-<td> </td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstVideoRegionOfInterestMeta.h"></a>h</code></em>;</p></td>
+<td class="struct_member_description"><p>bounding box height</p></td>
+<td class="struct_member_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
@@ -1094,7 +1088,7 @@
 have OpenGL set up and call this from a thread where it is valid
 to upload something to an OpenGL texture.</p>
 <div class="refsect3">
-<a name="id-1.2.15.4.9.7.5"></a><h4>Members</h4>
+<a name="id-1.2.15.4.8.7.5"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
@@ -1113,7 +1107,7 @@
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstVideoGLTextureUploadMeta.n-textures"></a>n_textures</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstVideoGLTextureUploadMeta.n-textures"></a>n_textures</code></em>;</p></td>
 <td class="struct_member_description"><p>Number of textures that are generated</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
@@ -1130,6 +1124,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstvideoorientation.html b/docs/libs/html/gst-plugins-base-libs-gstvideoorientation.html
index a68ec34..447d7fd 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstvideoorientation.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstvideoorientation.html
@@ -8,14 +8,14 @@
 <link rel="up" href="gstreamer-video.html" title="Video Library">
 <link rel="prev" href="gst-plugins-base-libs-gstcolorbalancechannel.html" title="gstcolorbalancechannel">
 <link rel="next" href="gst-plugins-base-libs-gstvideooverlay.html" title="gstvideooverlay">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstvideoorientation.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gstvideoorientation.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
                   <a href="#gst-plugins-base-libs-gstvideoorientation.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
@@ -43,7 +43,7 @@
 <tbody>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstvideoorientation.html#gst-video-orientation-get-hcenter" title="gst_video_orientation_get_hcenter ()">gst_video_orientation_get_hcenter</a> <span class="c_punctuation">()</span>
@@ -51,7 +51,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstvideoorientation.html#gst-video-orientation-get-hflip" title="gst_video_orientation_get_hflip ()">gst_video_orientation_get_hflip</a> <span class="c_punctuation">()</span>
@@ -59,7 +59,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstvideoorientation.html#gst-video-orientation-get-vcenter" title="gst_video_orientation_get_vcenter ()">gst_video_orientation_get_vcenter</a> <span class="c_punctuation">()</span>
@@ -67,7 +67,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstvideoorientation.html#gst-video-orientation-get-vflip" title="gst_video_orientation_get_vflip ()">gst_video_orientation_get_vflip</a> <span class="c_punctuation">()</span>
@@ -75,7 +75,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstvideoorientation.html#gst-video-orientation-set-hcenter" title="gst_video_orientation_set_hcenter ()">gst_video_orientation_set_hcenter</a> <span class="c_punctuation">()</span>
@@ -83,7 +83,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstvideoorientation.html#gst-video-orientation-set-hflip" title="gst_video_orientation_set_hflip ()">gst_video_orientation_set_hflip</a> <span class="c_punctuation">()</span>
@@ -91,7 +91,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstvideoorientation.html#gst-video-orientation-set-vcenter" title="gst_video_orientation_set_vcenter ()">gst_video_orientation_set_vcenter</a> <span class="c_punctuation">()</span>
@@ -99,7 +99,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstvideoorientation.html#gst-video-orientation-set-vflip" title="gst_video_orientation_set_vflip ()">gst_video_orientation_set_vflip</a> <span class="c_punctuation">()</span>
@@ -129,7 +129,7 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstvideoorientation.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    GInterface
+<pre class="screen">    <a href="https://developer.gnome.org/gobject/unstable/GTypeModule.html">GInterface</a>
     <span class="lineart">╰──</span> GstVideoOrientation
 </pre>
 </div>
@@ -147,12 +147,12 @@
 <a name="gst-plugins-base-libs-gstvideoorientation.functions_details"></a><h2>Functions</h2>
 <div class="refsect2">
 <a name="gst-video-orientation-get-hcenter"></a><h3>gst_video_orientation_get_hcenter ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_video_orientation_get_hcenter (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideoorientation.html#GstVideoOrientation"><span class="type">GstVideoOrientation</span></a> *video_orientation</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> *center</code></em>);</pre>
+                                   <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *center</code></em>);</pre>
 <p>Get the horizontal centering offset from the given object.</p>
 <div class="refsect3">
-<a name="id-1.2.15.10.9.2.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.14.9.2.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -174,20 +174,20 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.10.9.2.6"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> in case the element supports centering</p>
+<a name="id-1.2.15.14.9.2.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> in case the element supports centering</p>
 <p></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-video-orientation-get-hflip"></a><h3>gst_video_orientation_get_hflip ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_video_orientation_get_hflip (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideoorientation.html#GstVideoOrientation"><span class="type">GstVideoOrientation</span></a> *video_orientation</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> *flip</code></em>);</pre>
-<p>Get the horizontal flipping state (<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> for flipped) from the given object.</p>
+                                 <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *flip</code></em>);</pre>
+<p>Get the horizontal flipping state (<a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> for flipped) from the given object.</p>
 <div class="refsect3">
-<a name="id-1.2.15.10.9.3.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.14.9.3.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -209,20 +209,20 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.10.9.3.6"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> in case the element supports flipping</p>
+<a name="id-1.2.15.14.9.3.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> in case the element supports flipping</p>
 <p></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-video-orientation-get-vcenter"></a><h3>gst_video_orientation_get_vcenter ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_video_orientation_get_vcenter (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideoorientation.html#GstVideoOrientation"><span class="type">GstVideoOrientation</span></a> *video_orientation</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> *center</code></em>);</pre>
+                                   <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *center</code></em>);</pre>
 <p>Get the vertical centering offset from the given object.</p>
 <div class="refsect3">
-<a name="id-1.2.15.10.9.4.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.14.9.4.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -244,20 +244,20 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.10.9.4.6"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> in case the element supports centering</p>
+<a name="id-1.2.15.14.9.4.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> in case the element supports centering</p>
 <p></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-video-orientation-get-vflip"></a><h3>gst_video_orientation_get_vflip ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_video_orientation_get_vflip (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideoorientation.html#GstVideoOrientation"><span class="type">GstVideoOrientation</span></a> *video_orientation</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> *flip</code></em>);</pre>
-<p>Get the vertical flipping state (<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> for flipped) from the given object.</p>
+                                 <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *flip</code></em>);</pre>
+<p>Get the vertical flipping state (<a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> for flipped) from the given object.</p>
 <div class="refsect3">
-<a name="id-1.2.15.10.9.5.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.14.9.5.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -279,20 +279,20 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.10.9.5.6"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> in case the element supports flipping</p>
+<a name="id-1.2.15.14.9.5.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> in case the element supports flipping</p>
 <p></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-video-orientation-set-hcenter"></a><h3>gst_video_orientation_set_hcenter ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_video_orientation_set_hcenter (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideoorientation.html#GstVideoOrientation"><span class="type">GstVideoOrientation</span></a> *video_orientation</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> center</code></em>);</pre>
+                                   <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> center</code></em>);</pre>
 <p>Set the horizontal centering offset for the given object.</p>
 <div class="refsect3">
-<a name="id-1.2.15.10.9.6.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.14.9.6.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -314,20 +314,20 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.10.9.6.6"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> in case the element supports centering</p>
+<a name="id-1.2.15.14.9.6.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> in case the element supports centering</p>
 <p></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-video-orientation-set-hflip"></a><h3>gst_video_orientation_set_hflip ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_video_orientation_set_hflip (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideoorientation.html#GstVideoOrientation"><span class="type">GstVideoOrientation</span></a> *video_orientation</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> flip</code></em>);</pre>
-<p>Set the horizontal flipping state (<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> for flipped) for the given object.</p>
+                                 <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> flip</code></em>);</pre>
+<p>Set the horizontal flipping state (<a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> for flipped) for the given object.</p>
 <div class="refsect3">
-<a name="id-1.2.15.10.9.7.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.14.9.7.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -349,20 +349,20 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.10.9.7.6"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> in case the element supports flipping</p>
+<a name="id-1.2.15.14.9.7.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> in case the element supports flipping</p>
 <p></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-video-orientation-set-vcenter"></a><h3>gst_video_orientation_set_vcenter ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_video_orientation_set_vcenter (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideoorientation.html#GstVideoOrientation"><span class="type">GstVideoOrientation</span></a> *video_orientation</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> center</code></em>);</pre>
+                                   <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> center</code></em>);</pre>
 <p>Set the vertical centering offset for the given object.</p>
 <div class="refsect3">
-<a name="id-1.2.15.10.9.8.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.14.9.8.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -384,20 +384,20 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.10.9.8.6"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> in case the element supports centering</p>
+<a name="id-1.2.15.14.9.8.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> in case the element supports centering</p>
 <p></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-video-orientation-set-vflip"></a><h3>gst_video_orientation_set_vflip ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_video_orientation_set_vflip (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideoorientation.html#GstVideoOrientation"><span class="type">GstVideoOrientation</span></a> *video_orientation</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> flip</code></em>);</pre>
-<p>Set the vertical flipping state (<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> for flipped) for the given object.</p>
+                                 <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> flip</code></em>);</pre>
+<p>Set the vertical flipping state (<a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> for flipped) for the given object.</p>
 <div class="refsect3">
-<a name="id-1.2.15.10.9.9.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.14.9.9.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -419,8 +419,8 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.10.9.9.6"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> in case the element supports flipping</p>
+<a name="id-1.2.15.14.9.9.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> in case the element supports flipping</p>
 <p></p>
 </div>
 </div>
@@ -456,7 +456,7 @@
 </pre>
 <p><a class="link" href="gst-plugins-base-libs-gstvideoorientation.html#GstVideoOrientationInterface" title="struct GstVideoOrientationInterface"><span class="type">GstVideoOrientationInterface</span></a> interface.</p>
 <div class="refsect3">
-<a name="id-1.2.15.10.10.3.5"></a><h4>Members</h4>
+<a name="id-1.2.15.14.10.3.5"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
@@ -465,7 +465,7 @@
 </colgroup>
 <tbody>
 <tr>
-<td class="struct_member_name"><p><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="GstVideoOrientationInterface.iface"></a>iface</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/gobject/unstable/gobject-Type-Information.html#GTypeInterface"><span class="type">GTypeInterface</span></a> <em class="structfield"><code><a name="GstVideoOrientationInterface.iface"></a>iface</code></em>;</p></td>
 <td class="struct_member_description"><p>parent interface type.</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
@@ -517,6 +517,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstvideooverlay.html b/docs/libs/html/gst-plugins-base-libs-gstvideooverlay.html
index 76dd7f5..7b066f5 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstvideooverlay.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstvideooverlay.html
@@ -8,14 +8,14 @@
 <link rel="up" href="gstreamer-video.html" title="Video Library">
 <link rel="prev" href="gst-plugins-base-libs-gstvideoorientation.html" title="gstvideoorientation">
 <link rel="next" href="gst-plugins-base-libs-GstVideoDecoder.html" title="GstVideoDecoder">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstvideooverlay.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gstvideooverlay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
                   <a href="#gst-plugins-base-libs-gstvideooverlay.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
@@ -84,7 +84,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstvideooverlay.html#gst-video-overlay-set-render-rectangle" title="gst_video_overlay_set_render_rectangle ()">gst_video_overlay_set_render_rectangle</a> <span class="c_punctuation">()</span>
@@ -92,7 +92,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstvideooverlay.html#gst-is-video-overlay-prepare-window-handle-message" title="gst_is_video_overlay_prepare_window_handle_message ()">gst_is_video_overlay_prepare_window_handle_message</a> <span class="c_punctuation">()</span>
@@ -122,7 +122,7 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstvideooverlay.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    GInterface
+<pre class="screen">    <a href="https://developer.gnome.org/gobject/unstable/GTypeModule.html">GInterface</a>
     <span class="lineart">╰──</span> GstVideoOverlay
 </pre>
 </div>
@@ -134,7 +134,7 @@
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstvideooverlay.description"></a><h2>Description</h2>
 <div class="refsect2">
-<a name="id-1.2.15.11.8.2"></a><p>
+<a name="id-1.2.15.15.8.2"></a><p>
 The <a class="link" href="gst-plugins-base-libs-gstvideooverlay.html#GstVideoOverlay"><span class="type">GstVideoOverlay</span></a> interface is used for 2 main purposes :
 </p>
 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
@@ -146,7 +146,7 @@
 </p></li>
 <li class="listitem"><p>
 To force a redrawing of the latest video frame the video sink element
-displayed on the Window. Indeed if the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPipeline.html"><span class="type">GstPipeline</span></a> is in <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>
+displayed on the Window. Indeed if the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPipeline.html"><span class="type">GstPipeline</span></a> is in <span class="type">GST_STATE_PAUSED</span>
 state, moving the Window around will damage its content. Application
 developers will want to handle the Expose events themselves and force the
 video sink element to refresh the Window's content.
@@ -164,7 +164,7 @@
 Setting a specific Window identifier on the video sink element is the most
 flexible solution but it has some issues. Indeed the application needs to set
 its Window identifier at the right time to avoid internal Window creation
-from the video sink element. To solve this issue a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="type">GstMessage</span></a> is posted on
+from the video sink element. To solve this issue a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMessage.html"><span class="type">GstMessage</span></a> is posted on
 the bus to inform the application that it should set the Window identifier
 immediately. Here is an example on how to do that correctly:
 </p>
@@ -219,10 +219,10 @@
 
  <span class="function">XSync</span> <span class="gtkdoc opt">(</span>disp<span class="gtkdoc opt">,</span> FALSE<span class="gtkdoc opt">);</span>
 
- <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideooverlay.html#gst-video-overlay-set-window-handle">gst_video_overlay_set_window_handle</a></span> <span class="gtkdoc opt">(</span><span class="function">GST_VIDEO_OVERLAY</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-SRC:CAPS">GST_MESSAGE_SRC</a></span> <span class="gtkdoc opt">(</span>message<span class="gtkdoc opt">)),</span>
+ <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideooverlay.html#gst-video-overlay-set-window-handle">gst_video_overlay_set_window_handle</a></span> <span class="gtkdoc opt">(</span><span class="function">GST_VIDEO_OVERLAY</span> <span class="gtkdoc opt">(</span><span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMessage.html#GST-MESSAGE-SRC:CAPS">GST_MESSAGE_SRC</a></span> <span class="gtkdoc opt">(</span>message<span class="gtkdoc opt">)),</span>
      win<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-unref">gst_message_unref</a></span> <span class="gtkdoc opt">(</span>message<span class="gtkdoc opt">);</span>
+ <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMessage.html#gst-message-unref">gst_message_unref</a></span> <span class="gtkdoc opt">(</span>message<span class="gtkdoc opt">);</span>
 
  <span class="keyword">return</span> GST_BUS_DROP<span class="gtkdoc opt">;</span>
 <span class="gtkdoc opt">}</span>
@@ -246,7 +246,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.15.11.8.3"></a><h3>Two basic usage scenarios</h3>
+<a name="id-1.2.15.15.8.3"></a><h3>Two basic usage scenarios</h3>
 <p>
 There are two basic usage scenarios: in the simplest case, the application
 uses <span class="type">playbin</span> or <span class="type">plasink</span> or knows exactly what particular element is used
@@ -284,16 +284,16 @@
 windowing systems are not thread-safe at all and a lot of care would be
 required to co-ordinate the toolkit and window system calls of the
 different threads (Gtk+ users please note: prior to Gtk+ 2.18
-<a href="http://library.gnome.org/devel/gdk3/gdk2-X-Window-System-Interaction.html#GDK-WINDOW-XID:CAPS"><code class="function">GDK_WINDOW_XID()</code></a> was just a simple structure access, so generally fine to do
+<a href="http://developer.gnome.org/gdk2/gdk3-X-Window-System-Interaction.html#GDK-WINDOW-XID:CAPS"><code class="function">GDK_WINDOW_XID()</code></a> was just a simple structure access, so generally fine to do
 within the bus sync handler; this macro was changed to a function call in
 Gtk+ 2.18 and later, which is likely to cause problems when called from a
-sync handler; see below for a better approach without <a href="http://library.gnome.org/devel/gdk3/gdk2-X-Window-System-Interaction.html#GDK-WINDOW-XID:CAPS"><code class="function">GDK_WINDOW_XID()</code></a>
+sync handler; see below for a better approach without <a href="http://developer.gnome.org/gdk2/gdk3-X-Window-System-Interaction.html#GDK-WINDOW-XID:CAPS"><code class="function">GDK_WINDOW_XID()</code></a>
 used in the callback).
 </p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.15.11.8.4"></a><h3>GstVideoOverlay and Gtk+</h3>
+<a name="id-1.2.15.15.8.4"></a><h3>GstVideoOverlay and Gtk+</h3>
 <p>
 </p>
 <div class="informalexample">
@@ -418,13 +418,13 @@
    GstVideoOverlay <span class="gtkdoc opt">*</span>overlay<span class="gtkdoc opt">;</span>
 
    <span class="gtkdoc slc">// GST_MESSAGE_SRC (message) will be the video sink element</span>
-   overlay <span class="gtkdoc opt">=</span> <span class="function">GST_VIDEO_OVERLAY</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-SRC:CAPS">GST_MESSAGE_SRC</a></span> <span class="gtkdoc opt">(</span>message<span class="gtkdoc opt">));</span>
+   overlay <span class="gtkdoc opt">=</span> <span class="function">GST_VIDEO_OVERLAY</span> <span class="gtkdoc opt">(</span><span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMessage.html#GST-MESSAGE-SRC:CAPS">GST_MESSAGE_SRC</a></span> <span class="gtkdoc opt">(</span>message<span class="gtkdoc opt">));</span>
    <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideooverlay.html#gst-video-overlay-set-window-handle">gst_video_overlay_set_window_handle</a></span> <span class="gtkdoc opt">(</span>overlay<span class="gtkdoc opt">,</span> video_window_handle<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-Message-Logging.html#g-warning">g_warning</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;Should have obtained video_window_handle by now!&quot;</span><span class="gtkdoc opt">);</span>
+   <span class="function"><a href="https://developer.gnome.org/glib/unstable/glib-Message-Logging.html#g-warning">g_warning</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;Should have obtained video_window_handle by now!&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-GstMessage.html#gst-message-unref">gst_message_unref</a></span> <span class="gtkdoc opt">(</span>message<span class="gtkdoc opt">);</span>
+ <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMessage.html#gst-message-unref">gst_message_unref</a></span> <span class="gtkdoc opt">(</span>message<span class="gtkdoc opt">);</span>
  <span class="keyword">return</span> GST_BUS_DROP<span class="gtkdoc opt">;</span>
 <span class="gtkdoc opt">}</span>
 <span class="gtkdoc opt">...</span>
@@ -436,13 +436,13 @@
   <span class="gtkdoc slc">// drawing onto the parent widget.</span>
   <span class="gtkdoc slc">// This is here just for pedagogical purposes, GDK_WINDOW_XID will call</span>
   <span class="gtkdoc slc">// it as well in newer Gtk versions</span>
-  <span class="keyword">if</span> <span class="gtkdoc opt">(!</span><span class="function"><a href="http://library.gnome.org/devel/gdk3/gdk2-Windows.html#gdk-window-ensure-native">gdk_window_ensure_native</a></span> <span class="gtkdoc opt">(</span>widget<span class="gtkdoc opt">-&gt;</span>window<span class="gtkdoc opt">))</span>
-    <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Message-Logging.html#g-error">g_error</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;Couldn't create native window needed for GstVideoOverlay!&quot;</span><span class="gtkdoc opt">);</span>
+  <span class="keyword">if</span> <span class="gtkdoc opt">(!</span><span class="function"><a href="http://developer.gnome.org/gdk2/gdk3-Windows.html#gdk-window-ensure-native">gdk_window_ensure_native</a></span> <span class="gtkdoc opt">(</span>widget<span class="gtkdoc opt">-&gt;</span>window<span class="gtkdoc opt">))</span>
+    <span class="function"><a href="https://developer.gnome.org/glib/unstable/glib-Message-Logging.html#g-error">g_error</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;Couldn't create native window needed for GstVideoOverlay!&quot;</span><span class="gtkdoc opt">);</span>
 <span class="gtkdoc ppc">#endif</span>
 
 <span class="gtkdoc ppc">#ifdef GDK_WINDOWING_X11</span>
   <span class="gtkdoc opt">{</span>
-    gulong xid <span class="gtkdoc opt">=</span> <span class="function"><a href="http://library.gnome.org/devel/gdk3/gdk2-X-Window-System-Interaction.html#GDK-WINDOW-XID:CAPS">GDK_WINDOW_XID</a></span> <span class="gtkdoc opt">(</span><span class="function"><a href="http://developer.gnome.org/gtk2/GtkWidget.html#gtk-widget-get-window">gtk_widget_get_window</a></span> <span class="gtkdoc opt">(</span>video_window<span class="gtkdoc opt">));</span>
+    gulong xid <span class="gtkdoc opt">=</span> <span class="function"><a href="http://developer.gnome.org/gdk2/gdk3-X-Window-System-Interaction.html#GDK-WINDOW-XID:CAPS">GDK_WINDOW_XID</a></span> <span class="gtkdoc opt">(</span><span class="function"><a href="http://developer.gnome.org/gtk2/GtkWidget.html#gtk-widget-get-window">gtk_widget_get_window</a></span> <span class="gtkdoc opt">(</span>video_window<span class="gtkdoc opt">));</span>
     video_window_handle <span class="gtkdoc opt">=</span> xid<span class="gtkdoc opt">;</span>
   <span class="gtkdoc opt">}</span>
 <span class="gtkdoc ppc">#endif</span>
@@ -463,8 +463,8 @@
   app_window <span class="gtkdoc opt">=</span> <span class="function"><a href="http://developer.gnome.org/gtk2/GtkWindow.html#gtk-window-new">gtk_window_new</a></span> <span class="gtkdoc opt">(</span>GTK_WINDOW_TOPLEVEL<span class="gtkdoc opt">);</span>
   <span class="gtkdoc opt">...</span>
   video_window <span class="gtkdoc opt">=</span> <span class="function"><a href="http://developer.gnome.org/gtk2/GtkDrawingArea.html#gtk-drawing-area-new">gtk_drawing_area_new</a></span> <span class="gtkdoc opt">();</span>
-  <span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#g-signal-connect">g_signal_connect</a></span> <span class="gtkdoc opt">(</span>video_window<span class="gtkdoc opt">,</span> <span class="string">&quot;realize&quot;</span><span class="gtkdoc opt">,</span>
-      <span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Closures.html#G-CALLBACK:CAPS">G_CALLBACK</a></span> <span class="gtkdoc opt">(</span>video_widget_realize_cb<span class="gtkdoc opt">),</span> NULL<span class="gtkdoc opt">);</span>
+  <span class="function"><a href="https://developer.gnome.org/gobject/unstable/gobject-Signals.html#g-signal-connect">g_signal_connect</a></span> <span class="gtkdoc opt">(</span>video_window<span class="gtkdoc opt">,</span> <span class="string">&quot;realize&quot;</span><span class="gtkdoc opt">,</span>
+      <span class="function"><a href="https://developer.gnome.org/gobject/unstable/gobject-Closures.html#G-CALLBACK:CAPS">G_CALLBACK</a></span> <span class="gtkdoc opt">(</span>video_widget_realize_cb<span class="gtkdoc opt">),</span> NULL<span class="gtkdoc opt">);</span>
   <span class="function"><a href="http://developer.gnome.org/gtk2/GtkWidget.html#gtk-widget-set-double-buffered">gtk_widget_set_double_buffered</a></span> <span class="gtkdoc opt">(</span>video_window<span class="gtkdoc opt">,</span> FALSE<span class="gtkdoc opt">);</span>
   <span class="gtkdoc opt">...</span>
   <span class="gtkdoc slc">// usually the video_window will not be directly embedded into the</span>
@@ -481,7 +481,7 @@
   <span class="function"><a href="http://developer.gnome.org/gtk2/GtkWidget.html#gtk-widget-realize">gtk_widget_realize</a></span> <span class="gtkdoc opt">(</span>video_window<span class="gtkdoc opt">);</span>
 
   <span class="gtkdoc slc">// we should have the XID/HWND now</span>
-  <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Testing.html#g-assert">g_assert</a></span> <span class="gtkdoc opt">(</span>video_window_handle <span class="gtkdoc opt">!=</span> <span class="number">0</span><span class="gtkdoc opt">);</span>
+  <span class="function"><a href="https://developer.gnome.org/glib/unstable/glib-Testing.html#g-assert">g_assert</a></span> <span class="gtkdoc opt">(</span>video_window_handle <span class="gtkdoc opt">!=</span> <span class="number">0</span><span class="gtkdoc opt">);</span>
   <span class="gtkdoc opt">...</span>
   <span class="gtkdoc slc">// set up sync handler for setting the xid once the pipeline is started</span>
   bus <span class="gtkdoc opt">=</span> <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPipeline.html#gst-pipeline-get-bus">gst_pipeline_get_bus</a></span> <span class="gtkdoc opt">(</span><span class="function">GST_PIPELINE</span> <span class="gtkdoc opt">(</span>pipeline<span class="gtkdoc opt">));</span>
@@ -502,7 +502,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.15.11.8.5"></a><h3>GstVideoOverlay and Qt</h3>
+<a name="id-1.2.15.15.8.5"></a><h3>GstVideoOverlay and Qt</h3>
 <p>
 </p>
 <div class="informalexample">
@@ -572,8 +572,8 @@
 
 <span class="gtkdoc kwb">int</span> <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="keyword">if</span> <span class="gtkdoc opt">(!</span><span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Deprecated-Thread-APIs.html#g-thread-supported">g_thread_supported</a></span> <span class="gtkdoc opt">())</span>
-    <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>
+  <span class="keyword">if</span> <span class="gtkdoc opt">(!</span><span class="function"><a href="https://developer.gnome.org/glib/unstable/glib-Deprecated-Thread-APIs.html#g-thread-supported">g_thread_supported</a></span> <span class="gtkdoc opt">())</span>
+    <span class="function"><a href="https://developer.gnome.org/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>
 
   <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>
   QApplication <span class="function">app</span><span class="gtkdoc opt">(</span>argc<span class="gtkdoc opt">,</span> argv<span class="gtkdoc opt">);</span>
@@ -634,7 +634,7 @@
 <p>This will post a "have-window-handle" element message on the bus.</p>
 <p>This function should only be used by video overlay plugin developers.</p>
 <div class="refsect3">
-<a name="id-1.2.15.11.9.2.6"></a><h4>Parameters</h4>
+<a name="id-1.2.15.15.9.2.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -668,7 +668,7 @@
  will
 tell the overlay to stop using that window and create an internal one.</p>
 <div class="refsect3">
-<a name="id-1.2.15.11.9.3.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.15.9.3.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -702,7 +702,7 @@
 window.</p>
 <p>This function should only be used by video overlay plugin developers.</p>
 <div class="refsect3">
-<a name="id-1.2.15.11.9.4.6"></a><h4>Parameters</h4>
+<a name="id-1.2.15.15.9.4.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -725,7 +725,7 @@
 <p>Tell an overlay that it has been exposed. This will redraw the current frame
 in the drawable even if the pipeline is PAUSED.</p>
 <div class="refsect3">
-<a name="id-1.2.15.11.9.5.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.15.9.5.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -745,14 +745,14 @@
 <a name="gst-video-overlay-handle-events"></a><h3>gst_video_overlay_handle_events ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_video_overlay_handle_events (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlay.html#GstVideoOverlay"><span class="type">GstVideoOverlay</span></a> *overlay</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> handle_events</code></em>);</pre>
+                                 <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> handle_events</code></em>);</pre>
 <p>Tell an overlay that it should handle events from the window system. These
 events are forwarded upstream as navigation events. In some window system,
 events are not propagated in the window hierarchy if a client is listening
 for them. This method allows you to disable events handling completely
 from the <a class="link" href="gst-plugins-base-libs-gstvideooverlay.html#GstVideoOverlay"><span class="type">GstVideoOverlay</span></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.15.11.9.6.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.15.9.6.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -767,7 +767,7 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>handle_events</p></td>
-<td class="parameter_description"><p>a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> indicating if events should be handled or not.</p></td>
+<td class="parameter_description"><p>a <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> indicating if events should be handled or not.</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 </tbody>
@@ -777,13 +777,13 @@
 <hr>
 <div class="refsect2">
 <a name="gst-video-overlay-set-render-rectangle"></a><h3>gst_video_overlay_set_render_rectangle ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_video_overlay_set_render_rectangle
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlay.html#GstVideoOverlay"><span class="type">GstVideoOverlay</span></a> *overlay</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> x</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> y</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> width</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> height</code></em>);</pre>
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> x</code></em>,
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> y</code></em>,
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> width</code></em>,
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> height</code></em>);</pre>
 <p>Configure a subregion as a video target within the window set by
 <a class="link" href="gst-plugins-base-libs-gstvideooverlay.html#gst-video-overlay-set-window-handle" title="gst_video_overlay_set_window_handle ()"><code class="function">gst_video_overlay_set_window_handle()</code></a>. If this is not used or not supported
 the video will fill the area of the window set as the overlay to 100%.
@@ -796,7 +796,7 @@
 <p>This method is needed for non fullscreen video overlay in UI toolkits that
 do not support subwindows.</p>
 <div class="refsect3">
-<a name="id-1.2.15.11.9.7.6"></a><h4>Parameters</h4>
+<a name="id-1.2.15.15.9.7.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -833,21 +833,21 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.11.9.7.7"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if not supported by the sink.</p>
+<a name="id-1.2.15.15.9.7.7"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if not supported by the sink.</p>
 <p></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-is-video-overlay-prepare-window-handle-message"></a><h3>gst_is_video_overlay_prepare_window_handle_message ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_is_video_overlay_prepare_window_handle_message
-                               (<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> *msg</code></em>);</pre>
+                               (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMessage.html"><span class="type">GstMessage</span></a> *msg</code></em>);</pre>
 <p>Convenience function to check if the given message is a
 "prepare-window-handle" message from a <a class="link" href="gst-plugins-base-libs-gstvideooverlay.html#GstVideoOverlay"><span class="type">GstVideoOverlay</span></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.15.11.9.8.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.15.9.8.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -856,13 +856,13 @@
 </colgroup>
 <tbody><tr>
 <td class="parameter_name"><p>msg</p></td>
-<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="type">GstMessage</span></a></p></td>
+<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMessage.html"><span class="type">GstMessage</span></a></p></td>
 <td class="parameter_annotations"> </td>
 </tr></tbody>
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.11.9.8.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.15.9.8.6"></a><h4>Returns</h4>
 <p> whether <em class="parameter"><code>msg</code></em>
 is a "prepare-window-handle" message</p>
 <p></p>
@@ -896,7 +896,7 @@
 </pre>
 <p><a class="link" href="gst-plugins-base-libs-gstvideooverlay.html#GstVideoOverlay"><span class="type">GstVideoOverlay</span></a> interface</p>
 <div class="refsect3">
-<a name="id-1.2.15.11.10.3.5"></a><h4>Members</h4>
+<a name="id-1.2.15.15.10.3.5"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
@@ -905,7 +905,7 @@
 </colgroup>
 <tbody>
 <tr>
-<td class="struct_member_name"><p><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="GstVideoOverlayInterface.iface"></a>iface</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/gobject/unstable/gobject-Type-Information.html#GTypeInterface"><span class="type">GTypeInterface</span></a> <em class="structfield"><code><a name="GstVideoOverlayInterface.iface"></a>iface</code></em>;</p></td>
 <td class="struct_member_description"><p>parent interface type.</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
@@ -937,6 +937,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstvideooverlaycomposition.html b/docs/libs/html/gst-plugins-base-libs-gstvideooverlaycomposition.html
index 29c5328..4d5624c 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstvideooverlaycomposition.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstvideooverlaycomposition.html
@@ -8,15 +8,14 @@
 <link rel="up" href="gstreamer-video.html" title="Video Library">
 <link rel="prev" href="gst-plugins-base-libs-gstvideometa.html" title="gstvideometa">
 <link rel="next" href="gst-plugins-base-libs-gstvideofilter.html" title="gstvideofilter">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstvideooverlaycomposition.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstvideooverlaycomposition.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gstvideooverlaycomposition.description" class="shortcut">Description</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="gstreamer-video.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -74,7 +73,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-n-rectangles" title="gst_video_overlay_composition_n_rectangles ()">gst_video_overlay_composition_n_rectangles</a> <span class="c_punctuation">()</span>
@@ -90,7 +89,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-get-seqnum" title="gst_video_overlay_composition_get_seqnum ()">gst_video_overlay_composition_get_seqnum</a> <span class="c_punctuation">()</span>
@@ -114,7 +113,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-blend" title="gst_video_overlay_composition_blend ()">gst_video_overlay_composition_blend</a> <span class="c_punctuation">()</span>
@@ -173,7 +172,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="returnvalue">GstBuffer</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-get-pixels-raw" title="gst_video_overlay_rectangle_get_pixels_raw ()">gst_video_overlay_rectangle_get_pixels_raw</a> <span class="c_punctuation">()</span>
@@ -181,7 +180,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="returnvalue">GstBuffer</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-get-pixels-argb" title="gst_video_overlay_rectangle_get_pixels_argb ()">gst_video_overlay_rectangle_get_pixels_argb</a> <span class="c_punctuation">()</span>
@@ -189,7 +188,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="returnvalue">GstBuffer</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-get-pixels-ayuv" title="gst_video_overlay_rectangle_get_pixels_ayuv ()">gst_video_overlay_rectangle_get_pixels_ayuv</a> <span class="c_punctuation">()</span>
@@ -197,7 +196,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="returnvalue">GstBuffer</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-get-pixels-unscaled-raw" title="gst_video_overlay_rectangle_get_pixels_unscaled_raw ()">gst_video_overlay_rectangle_get_pixels_unscaled_raw</a> <span class="c_punctuation">()</span>
@@ -205,7 +204,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="returnvalue">GstBuffer</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-get-pixels-unscaled-argb" title="gst_video_overlay_rectangle_get_pixels_unscaled_argb ()">gst_video_overlay_rectangle_get_pixels_unscaled_argb</a> <span class="c_punctuation">()</span>
@@ -213,7 +212,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="returnvalue">GstBuffer</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-get-pixels-unscaled-ayuv" title="gst_video_overlay_rectangle_get_pixels_unscaled_ayuv ()">gst_video_overlay_rectangle_get_pixels_unscaled_ayuv</a> <span class="c_punctuation">()</span>
@@ -221,7 +220,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-get-render-rectangle" title="gst_video_overlay_rectangle_get_render_rectangle ()">gst_video_overlay_rectangle_get_render_rectangle</a> <span class="c_punctuation">()</span>
@@ -229,7 +228,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-get-seqnum" title="gst_video_overlay_rectangle_get_seqnum ()">gst_video_overlay_rectangle_get_seqnum</a> <span class="c_punctuation">()</span>
@@ -261,7 +260,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="returnvalue">gfloat</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gfloat"><span class="returnvalue">gfloat</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-get-global-alpha" title="gst_video_overlay_rectangle_get_global_alpha ()">gst_video_overlay_rectangle_get_global_alpha</a> <span class="c_punctuation">()</span>
@@ -310,11 +309,6 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="gst-plugins-base-libs-gstvideooverlaycomposition.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">
-</pre>
-</div>
-<div class="refsect1">
 <a name="gst-plugins-base-libs-gstvideooverlaycomposition.includes"></a><h2>Includes</h2>
 <pre class="synopsis">#include &lt;gst/video/video-overlay-composition.h&gt;
 </pre>
@@ -322,7 +316,7 @@
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstvideooverlaycomposition.description"></a><h2>Description</h2>
 <div class="refsect2">
-<a name="id-1.2.15.5.7.2"></a><p>
+<a name="id-1.2.15.5.6.2"></a><p>
 Functions to create and handle overlay compositions on video buffers.
 </p>
 <p>
@@ -360,7 +354,7 @@
 <p>Creates a new video overlay composition object to hold one or more
 overlay rectangles.</p>
 <div class="refsect3">
-<a name="id-1.2.15.5.8.2.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.5.7.2.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -376,7 +370,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.5.8.2.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.5.7.2.6"></a><h4>Returns</h4>
 <p> a new <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a>. Unref with
 <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-unref" title="gst_video_overlay_composition_unref ()"><code class="function">gst_video_overlay_composition_unref()</code></a> when no longer needed. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
@@ -393,7 +387,7 @@
 , use <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-make-writable" title="gst_video_overlay_composition_make_writable ()"><code class="function">gst_video_overlay_composition_make_writable()</code></a> to ensure
 a composition and its rectangles can be modified.</p>
 <div class="refsect3">
-<a name="id-1.2.15.5.8.3.6"></a><h4>Parameters</h4>
+<a name="id-1.2.15.5.7.3.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -408,7 +402,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.5.8.3.7"></a><h4>Returns</h4>
+<a name="id-1.2.15.5.7.3.7"></a><h4>Returns</h4>
 <p> <em class="parameter"><code>comp</code></em>
 . </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
@@ -422,7 +416,7 @@
 <p>Decreases the refcount of the composition. If the refcount reaches 0, the
 composition will be freed.</p>
 <div class="refsect3">
-<a name="id-1.2.15.5.8.4.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.5.7.4.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -447,7 +441,7 @@
 <p>Adds an overlay rectangle to an existing overlay composition object. This
 must be done right after creating the overlay composition.</p>
 <div class="refsect3">
-<a name="id-1.2.15.5.8.5.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.5.7.5.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -473,13 +467,13 @@
 <hr>
 <div class="refsect2">
 <a name="gst-video-overlay-composition-n-rectangles"></a><h3>gst_video_overlay_composition_n_rectangles ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_video_overlay_composition_n_rectangles
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> *comp</code></em>);</pre>
 <p>Returns the number of <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a>s contained in <em class="parameter"><code>comp</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.15.5.8.6.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.5.7.6.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -494,7 +488,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.5.8.6.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.5.7.6.6"></a><h4>Returns</h4>
 <p> the number of rectangles</p>
 <p></p>
 </div>
@@ -505,12 +499,12 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="returnvalue">GstVideoOverlayRectangle</span></a> *
 gst_video_overlay_composition_get_rectangle
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> *comp</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</code></em>);</pre>
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n</code></em>);</pre>
 <p>Returns the <em class="parameter"><code>n</code></em>
 -th <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> contained in <em class="parameter"><code>comp</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.15.5.8.7.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.5.7.7.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -532,7 +526,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.5.8.7.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.5.7.7.6"></a><h4>Returns</h4>
 <p> the <em class="parameter"><code>n</code></em>
 -th rectangle, or NULL if <em class="parameter"><code>n</code></em>
 is out of
@@ -545,7 +539,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-video-overlay-composition-get-seqnum"></a><h3>gst_video_overlay_composition_get_seqnum ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_video_overlay_composition_get_seqnum
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> *comp</code></em>);</pre>
 <p>Returns the sequence number of this composition. Sequence numbers are
@@ -553,7 +547,7 @@
 (meaning there will never be a rectangle with the same sequence number as
 a composition).</p>
 <div class="refsect3">
-<a name="id-1.2.15.5.8.8.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.5.7.8.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -568,7 +562,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.5.8.8.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.5.7.8.6"></a><h4>Returns</h4>
 <p> the sequence number of <em class="parameter"><code>comp</code></em>
 </p>
 <p></p>
@@ -586,7 +580,7 @@
 actual overlay pixel data buffers contained in the rectangles are not
 copied.</p>
 <div class="refsect3">
-<a name="id-1.2.15.5.8.9.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.5.7.9.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -601,7 +595,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.5.8.9.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.5.7.9.6"></a><h4>Returns</h4>
 <p> a new <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> equivalent
 to <em class="parameter"><code>comp</code></em>
 . </p>
@@ -625,7 +619,7 @@
 rectangles will also be copied, but the actual overlay pixel data buffers
 contained in the rectangles are not copied.</p>
 <div class="refsect3">
-<a name="id-1.2.15.5.8.10.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.5.7.10.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -640,7 +634,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.5.8.10.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.5.7.10.6"></a><h4>Returns</h4>
 <p> a writable <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a>
 equivalent to <em class="parameter"><code>comp</code></em>
 . </p>
@@ -650,7 +644,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-video-overlay-composition-blend"></a><h3>gst_video_overlay_composition_blend ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_video_overlay_composition_blend (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> *comp</code></em>,
                                      <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFrame" title="struct GstVideoFrame"><span class="type">GstVideoFrame</span></a> *video_buf</code></em>);</pre>
 <p>Blends the overlay rectangles in <em class="parameter"><code>comp</code></em>
@@ -660,7 +654,7 @@
  must be writable and
 mapped appropriately.</p>
 <div class="refsect3">
-<a name="id-1.2.15.5.8.11.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.5.7.11.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -694,14 +688,14 @@
 <a name="gst-buffer-add-video-overlay-composition-meta"></a><h3>gst_buffer_add_video_overlay_composition_meta ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayCompositionMeta" title="struct GstVideoOverlayCompositionMeta"><span class="returnvalue">GstVideoOverlayCompositionMeta</span></a> *
 gst_buffer_add_video_overlay_composition_meta
-                               (<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/GstBuffer.html"><span class="type">GstBuffer</span></a> *buf</code></em>,
                                 <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> *comp</code></em>);</pre>
 <p>Sets an overlay composition on a buffer. The buffer will obtain its own
 reference to the composition, meaning this function does not take ownership
 of <em class="parameter"><code>comp</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.15.5.8.13.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.5.7.13.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -711,13 +705,13 @@
 <tbody>
 <tr>
 <td class="parameter_name"><p>buf</p></td>
-<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a></p></td>
+<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a></p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
 <td class="parameter_name"><p>comp</p></td>
 <td class="parameter_description"><p> a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a>. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
 </tr>
 </tbody>
 </table></div>
@@ -737,11 +731,11 @@
 <div class="refsect2">
 <a name="gst-video-overlay-rectangle-new-raw"></a><h3>gst_video_overlay_rectangle_new_raw ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="returnvalue">GstVideoOverlayRectangle</span></a> *
-gst_video_overlay_rectangle_new_raw (<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> *pixels</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> render_x</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> render_y</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> render_width</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> render_height</code></em>,
+gst_video_overlay_rectangle_new_raw (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> *pixels</code></em>,
+                                     <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> render_x</code></em>,
+                                     <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> render_y</code></em>,
+                                     <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> render_width</code></em>,
+                                     <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> render_height</code></em>,
                                      <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayFormatFlags" title="enum GstVideoOverlayFormatFlags"><span class="type">GstVideoOverlayFormatFlags</span></a> flags</code></em>);</pre>
 <p>Creates a new video overlay rectangle with ARGB or AYUV pixel data.
 The layout in case of ARGB of the components in memory is B-G-R-A
@@ -755,7 +749,7 @@
 and also many rendering libraries such as Cairo, for example.
 The pixel data buffer must have <a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoMeta" title="struct GstVideoMeta"><span class="type">GstVideoMeta</span></a> set.</p>
 <div class="refsect3">
-<a name="id-1.2.15.5.8.16.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.5.7.16.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -765,7 +759,7 @@
 <tbody>
 <tr>
 <td class="parameter_name"><p>pixels</p></td>
-<td class="parameter_description"><p> a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> pointing to the pixel memory. </p></td>
+<td class="parameter_description"><p> a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> pointing to the pixel memory. </p></td>
 <td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
 </tr>
 <tr>
@@ -799,7 +793,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.5.8.16.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.5.7.16.6"></a><h4>Returns</h4>
 <p> a new <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a>. Unref with
 <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-unref" title="gst_video_overlay_rectangle_unref ()"><code class="function">gst_video_overlay_rectangle_unref()</code></a> when no longer needed. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
@@ -818,7 +812,7 @@
 it is unlikely that someone will hold the single reference to the rectangle
 and not know that that's the case).</p>
 <div class="refsect3">
-<a name="id-1.2.15.5.8.17.6"></a><h4>Parameters</h4>
+<a name="id-1.2.15.5.7.17.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -833,7 +827,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.5.8.17.7"></a><h4>Returns</h4>
+<a name="id-1.2.15.5.7.17.7"></a><h4>Returns</h4>
 <p> <em class="parameter"><code>comp</code></em>
 . </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
@@ -847,7 +841,7 @@
 <p>Decreases the refcount of the rectangle. If the refcount reaches 0, the
 rectangle will be freed.</p>
 <div class="refsect3">
-<a name="id-1.2.15.5.8.18.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.5.7.18.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -865,12 +859,12 @@
 <hr>
 <div class="refsect2">
 <a name="gst-video-overlay-rectangle-get-pixels-raw"></a><h3>gst_video_overlay_rectangle_get_pixels_raw ()</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> *
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="returnvalue">GstBuffer</span></a> *
 gst_video_overlay_rectangle_get_pixels_raw
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> *rectangle</code></em>,
                                 <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayFormatFlags" title="enum GstVideoOverlayFormatFlags"><span class="type">GstVideoOverlayFormatFlags</span></a> flags</code></em>);</pre>
 <div class="refsect3">
-<a name="id-1.2.15.5.8.19.4"></a><h4>Parameters</h4>
+<a name="id-1.2.15.5.7.19.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -896,25 +890,25 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.5.8.19.5"></a><h4>Returns</h4>
-<p> a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> holding the pixel data with
+<a name="id-1.2.15.5.7.19.5"></a><h4>Returns</h4>
+<p> a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> holding the pixel data with
 format as originally provided and specified in video meta with
 width and height of the render dimensions as per
 <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-get-render-rectangle" title="gst_video_overlay_rectangle_get_render_rectangle ()"><code class="function">gst_video_overlay_rectangle_get_render_rectangle()</code></a>. This function does
 not return a reference, the caller should obtain a reference of her own
-with <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#gst-buffer-ref"><code class="function">gst_buffer_ref()</code></a> if needed. </p>
+with <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html#gst-buffer-ref"><code class="function">gst_buffer_ref()</code></a> if needed. </p>
 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-video-overlay-rectangle-get-pixels-argb"></a><h3>gst_video_overlay_rectangle_get_pixels_argb ()</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> *
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="returnvalue">GstBuffer</span></a> *
 gst_video_overlay_rectangle_get_pixels_argb
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> *rectangle</code></em>,
                                 <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayFormatFlags" title="enum GstVideoOverlayFormatFlags"><span class="type">GstVideoOverlayFormatFlags</span></a> flags</code></em>);</pre>
 <div class="refsect3">
-<a name="id-1.2.15.5.8.20.4"></a><h4>Parameters</h4>
+<a name="id-1.2.15.5.7.20.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -940,24 +934,24 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.5.8.20.5"></a><h4>Returns</h4>
-<p> a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> holding the ARGB pixel data with
+<a name="id-1.2.15.5.7.20.5"></a><h4>Returns</h4>
+<p> a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> holding the ARGB pixel data with
 width and height of the render dimensions as per
 <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-get-render-rectangle" title="gst_video_overlay_rectangle_get_render_rectangle ()"><code class="function">gst_video_overlay_rectangle_get_render_rectangle()</code></a>. This function does
 not return a reference, the caller should obtain a reference of her own
-with <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#gst-buffer-ref"><code class="function">gst_buffer_ref()</code></a> if needed. </p>
+with <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html#gst-buffer-ref"><code class="function">gst_buffer_ref()</code></a> if needed. </p>
 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-video-overlay-rectangle-get-pixels-ayuv"></a><h3>gst_video_overlay_rectangle_get_pixels_ayuv ()</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> *
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="returnvalue">GstBuffer</span></a> *
 gst_video_overlay_rectangle_get_pixels_ayuv
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> *rectangle</code></em>,
                                 <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayFormatFlags" title="enum GstVideoOverlayFormatFlags"><span class="type">GstVideoOverlayFormatFlags</span></a> flags</code></em>);</pre>
 <div class="refsect3">
-<a name="id-1.2.15.5.8.21.4"></a><h4>Parameters</h4>
+<a name="id-1.2.15.5.7.21.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -983,19 +977,19 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.5.8.21.5"></a><h4>Returns</h4>
-<p> a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> holding the AYUV pixel data with
+<a name="id-1.2.15.5.7.21.5"></a><h4>Returns</h4>
+<p> a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> holding the AYUV pixel data with
 width and height of the render dimensions as per
 <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-get-render-rectangle" title="gst_video_overlay_rectangle_get_render_rectangle ()"><code class="function">gst_video_overlay_rectangle_get_render_rectangle()</code></a>. This function does
 not return a reference, the caller should obtain a reference of her own
-with <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#gst-buffer-ref"><code class="function">gst_buffer_ref()</code></a> if needed. </p>
+with <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html#gst-buffer-ref"><code class="function">gst_buffer_ref()</code></a> if needed. </p>
 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-video-overlay-rectangle-get-pixels-unscaled-raw"></a><h3>gst_video_overlay_rectangle_get_pixels_unscaled_raw ()</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> *
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="returnvalue">GstBuffer</span></a> *
 gst_video_overlay_rectangle_get_pixels_unscaled_raw
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> *rectangle</code></em>,
                                 <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayFormatFlags" title="enum GstVideoOverlayFormatFlags"><span class="type">GstVideoOverlayFormatFlags</span></a> flags</code></em>);</pre>
@@ -1004,7 +998,7 @@
 need to be scaled to the render dimensions, which can be retrieved using
 <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-get-render-rectangle" title="gst_video_overlay_rectangle_get_render_rectangle ()"><code class="function">gst_video_overlay_rectangle_get_render_rectangle()</code></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.15.5.8.22.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.5.7.22.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1030,17 +1024,17 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.5.8.22.6"></a><h4>Returns</h4>
-<p> a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> holding the pixel data with
+<a name="id-1.2.15.5.7.22.6"></a><h4>Returns</h4>
+<p> a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> holding the pixel data with
 <a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoMeta" title="struct GstVideoMeta"><span class="type">GstVideoMeta</span></a> set. This function does not return a reference, the caller
-should obtain a reference of her own with <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#gst-buffer-ref"><code class="function">gst_buffer_ref()</code></a> if needed. </p>
+should obtain a reference of her own with <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html#gst-buffer-ref"><code class="function">gst_buffer_ref()</code></a> if needed. </p>
 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-video-overlay-rectangle-get-pixels-unscaled-argb"></a><h3>gst_video_overlay_rectangle_get_pixels_unscaled_argb ()</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> *
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="returnvalue">GstBuffer</span></a> *
 gst_video_overlay_rectangle_get_pixels_unscaled_argb
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> *rectangle</code></em>,
                                 <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayFormatFlags" title="enum GstVideoOverlayFormatFlags"><span class="type">GstVideoOverlayFormatFlags</span></a> flags</code></em>);</pre>
@@ -1049,7 +1043,7 @@
 need to be scaled to the render dimensions, which can be retrieved using
 <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-get-render-rectangle" title="gst_video_overlay_rectangle_get_render_rectangle ()"><code class="function">gst_video_overlay_rectangle_get_render_rectangle()</code></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.15.5.8.23.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.5.7.23.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1075,17 +1069,17 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.5.8.23.6"></a><h4>Returns</h4>
-<p> a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> holding the ARGB pixel data with
+<a name="id-1.2.15.5.7.23.6"></a><h4>Returns</h4>
+<p> a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> holding the ARGB pixel data with
 <a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoMeta" title="struct GstVideoMeta"><span class="type">GstVideoMeta</span></a> set. This function does not return a reference, the caller
-should obtain a reference of her own with <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#gst-buffer-ref"><code class="function">gst_buffer_ref()</code></a> if needed. </p>
+should obtain a reference of her own with <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html#gst-buffer-ref"><code class="function">gst_buffer_ref()</code></a> if needed. </p>
 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-video-overlay-rectangle-get-pixels-unscaled-ayuv"></a><h3>gst_video_overlay_rectangle_get_pixels_unscaled_ayuv ()</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> *
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="returnvalue">GstBuffer</span></a> *
 gst_video_overlay_rectangle_get_pixels_unscaled_ayuv
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> *rectangle</code></em>,
                                 <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayFormatFlags" title="enum GstVideoOverlayFormatFlags"><span class="type">GstVideoOverlayFormatFlags</span></a> flags</code></em>);</pre>
@@ -1094,7 +1088,7 @@
 need to be scaled to the render dimensions, which can be retrieved using
 <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-get-render-rectangle" title="gst_video_overlay_rectangle_get_render_rectangle ()"><code class="function">gst_video_overlay_rectangle_get_render_rectangle()</code></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.15.5.8.24.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.5.7.24.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1120,27 +1114,27 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.5.8.24.6"></a><h4>Returns</h4>
-<p> a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> holding the AYUV pixel data with
+<a name="id-1.2.15.5.7.24.6"></a><h4>Returns</h4>
+<p> a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> holding the AYUV pixel data with
 <a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoMeta" title="struct GstVideoMeta"><span class="type">GstVideoMeta</span></a> set. This function does not return a reference, the caller
-should obtain a reference of her own with <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#gst-buffer-ref"><code class="function">gst_buffer_ref()</code></a> if needed. </p>
+should obtain a reference of her own with <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html#gst-buffer-ref"><code class="function">gst_buffer_ref()</code></a> if needed. </p>
 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
 </div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-video-overlay-rectangle-get-render-rectangle"></a><h3>gst_video_overlay_rectangle_get_render_rectangle ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_video_overlay_rectangle_get_render_rectangle
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> *rectangle</code></em>,
-                                <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *render_x</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> *render_y</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> *render_width</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> *render_height</code></em>);</pre>
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *render_x</code></em>,
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *render_y</code></em>,
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *render_width</code></em>,
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *render_height</code></em>);</pre>
 <p>Retrieves the render position and render dimension of the overlay
 rectangle on the video.</p>
 <div class="refsect3">
-<a name="id-1.2.15.5.8.25.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.5.7.25.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1156,28 +1150,28 @@
 <tr>
 <td class="parameter_name"><p>render_x</p></td>
 <td class="parameter_description"><p> address where to store the X render offset. </p></td>
-<td class="parameter_annotations"><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>
+<td class="parameter_annotations"><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 class="parameter_name"><p>render_y</p></td>
 <td class="parameter_description"><p> address where to store the Y render offset. </p></td>
-<td class="parameter_annotations"><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>
+<td class="parameter_annotations"><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 class="parameter_name"><p>render_width</p></td>
 <td class="parameter_description"><p> address where to store the render width. </p></td>
-<td class="parameter_annotations"><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>
+<td class="parameter_annotations"><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 class="parameter_name"><p>render_height</p></td>
 <td class="parameter_description"><p> address where to store the render height. </p></td>
-<td class="parameter_annotations"><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>
+<td class="parameter_annotations"><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>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.5.8.25.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.5.7.25.6"></a><h4>Returns</h4>
 <p> TRUE if valid render dimensions were retrieved.</p>
 <p></p>
 </div>
@@ -1185,7 +1179,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-video-overlay-rectangle-get-seqnum"></a><h3>gst_video_overlay_rectangle_get_seqnum ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_video_overlay_rectangle_get_seqnum
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> *rectangle</code></em>);</pre>
 <p>Returns the sequence number of this rectangle. Sequence numbers are
@@ -1202,7 +1196,7 @@
 renderer could also use the GstBuffer pointers as a hint for changed
 pixel-data.</p>
 <div class="refsect3">
-<a name="id-1.2.15.5.8.26.6"></a><h4>Parameters</h4>
+<a name="id-1.2.15.5.7.26.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1217,7 +1211,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.5.8.26.7"></a><h4>Returns</h4>
+<a name="id-1.2.15.5.7.26.7"></a><h4>Returns</h4>
 <p> the sequence number of <em class="parameter"><code>rectangle</code></em>
 </p>
 <p></p>
@@ -1229,10 +1223,10 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_video_overlay_rectangle_set_render_rectangle
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> *rectangle</code></em>,
-                                <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> render_x</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> render_y</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> render_width</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> render_height</code></em>);</pre>
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> render_x</code></em>,
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> render_y</code></em>,
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> render_width</code></em>,
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> render_height</code></em>);</pre>
 <p>Sets the render position and dimensions of the rectangle on the video.
 This function is mainly for elements that modify the size of the video
 in some way (e.g. through scaling or cropping) and need to adjust the
@@ -1243,7 +1237,7 @@
 <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-make-writable" title="gst_video_overlay_composition_make_writable ()"><code class="function">gst_video_overlay_composition_make_writable()</code></a> or
 <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-copy" title="gst_video_overlay_composition_copy ()"><code class="function">gst_video_overlay_composition_copy()</code></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.15.5.8.27.6"></a><h4>Parameters</h4>
+<a name="id-1.2.15.5.7.27.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1291,7 +1285,7 @@
 actual overlay pixel data buffers contained in the rectangle are not
 copied.</p>
 <div class="refsect3">
-<a name="id-1.2.15.5.8.28.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.5.7.28.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1306,7 +1300,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.5.8.28.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.5.7.28.6"></a><h4>Returns</h4>
 <p> a new <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> equivalent
 to <em class="parameter"><code>rectangle</code></em>
 . </p>
@@ -1324,7 +1318,7 @@
 uses premultiplied or not, it can request the pixel data in the format
 it is stored in, to avoid unnecessary conversion.</p>
 <div class="refsect3">
-<a name="id-1.2.15.5.8.29.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.5.7.29.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1339,7 +1333,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.5.8.29.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.5.7.29.6"></a><h4>Returns</h4>
 <p> the <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayFormatFlags" title="enum GstVideoOverlayFormatFlags"><span class="type">GstVideoOverlayFormatFlags</span></a> associated with the rectangle.</p>
 <p></p>
 </div>
@@ -1347,12 +1341,12 @@
 <hr>
 <div class="refsect2">
 <a name="gst-video-overlay-rectangle-get-global-alpha"></a><h3>gst_video_overlay_rectangle_get_global_alpha ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="returnvalue">gfloat</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gfloat"><span class="returnvalue">gfloat</span></a>
 gst_video_overlay_rectangle_get_global_alpha
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> *rectangle</code></em>);</pre>
 <p>Retrieves the global-alpha value associated with a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.15.5.8.30.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.5.7.30.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1367,7 +1361,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.5.8.30.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.5.7.30.6"></a><h4>Returns</h4>
 <p> the global-alpha value associated with the rectangle.</p>
 <p></p>
 </div>
@@ -1378,28 +1372,35 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_video_overlay_rectangle_set_global_alpha
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> *rectangle</code></em>,
-                                <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> global_alpha</code></em>);</pre>
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> global_alpha</code></em>);</pre>
 <p>Sets the global alpha value associated with a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a>. Per-
 pixel alpha values are multiplied with this value. Valid
 values: 0 &lt;= global_alpha &lt;= 1; 1 to deactivate.</p>
-<p> # <em class="parameter"><code>rectangle</code></em>
+<p><em class="parameter"><code>rectangle</code></em>
  must be writable, meaning its refcount must be 1. You can
 make the rectangles inside a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> writable using
 <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-make-writable" title="gst_video_overlay_composition_make_writable ()"><code class="function">gst_video_overlay_composition_make_writable()</code></a> or
 <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-copy" title="gst_video_overlay_composition_copy ()"><code class="function">gst_video_overlay_composition_copy()</code></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.15.5.8.31.6"></a><h4>Parameters</h4>
+<a name="id-1.2.15.5.7.31.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
 <col width="200px" class="parameters_annotations">
 </colgroup>
-<tbody><tr>
+<tbody>
+<tr>
 <td class="parameter_name"><p>rectangle</p></td>
 <td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a></p></td>
 <td class="parameter_annotations"> </td>
-</tr></tbody>
+</tr>
+<tr>
+<td class="parameter_name"><p>global_alpha</p></td>
+<td class="parameter_description"><p>Global alpha value (0 to 1.0)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
 </table></div>
 </div>
 </div>
@@ -1431,7 +1432,7 @@
 </pre>
 <p>Extra buffer metadata describing image overlay data.</p>
 <div class="refsect3">
-<a name="id-1.2.15.5.9.4.5"></a><h4>Members</h4>
+<a name="id-1.2.15.5.8.4.5"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
@@ -1458,7 +1459,7 @@
 <a name="GstVideoOverlayFormatFlags"></a><h3>enum GstVideoOverlayFormatFlags</h3>
 <p>Overlay format flags.</p>
 <div class="refsect3">
-<a name="id-1.2.15.5.9.5.4"></a><h4>Members</h4>
+<a name="id-1.2.15.5.8.5.4"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -1502,6 +1503,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstvideosink.html b/docs/libs/html/gst-plugins-base-libs-gstvideosink.html
index 02e24de..8ec0b68 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstvideosink.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstvideosink.html
@@ -6,22 +6,22 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-video.html" title="Video Library">
-<link rel="prev" href="gst-plugins-base-libs-gstvideofilter.html" title="gstvideofilter">
+<link rel="prev" href="gst-plugins-base-libs-GstVideoScaler.html" title="GstVideoScaler">
 <link rel="next" href="gst-plugins-base-libs-gstcolorbalance.html" title="gstcolorbalance">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstvideosink.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstvideosink.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> 
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gstvideosink.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gstvideosink.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
                   <a href="#gst-plugins-base-libs-gstvideosink.properties" class="shortcut">Properties</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="gstreamer-video.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-base-libs-gstvideofilter.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-base-libs-GstVideoScaler.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
 <td><a accesskey="n" href="gst-plugins-base-libs-gstcolorbalance.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
@@ -79,7 +79,7 @@
 <col width="200px" class="properties_flags">
 </colgroup>
 <tbody><tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-libs-gstvideosink.html#GstVideoSink--show-preroll-frame" title="The “show-preroll-frame” property">show-preroll-frame</a></td>
 <td class="property_flags">Read / Write / Construct</td>
 </tr></tbody>
@@ -110,8 +110,8 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstvideosink.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-    <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+<pre class="screen">    <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
         <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
             <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
                 <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSink.html">GstBaseSink</a>
@@ -126,7 +126,7 @@
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstvideosink.description"></a><h2>Description</h2>
 <div class="refsect2">
-<a name="id-1.2.15.7.9.2"></a><p>
+<a name="id-1.2.15.11.9.2"></a><p>
 Provides useful functions and a base class for video sinks. 
 </p>
 <p>
@@ -151,7 +151,7 @@
 <p>Get the sink <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> of <em class="parameter"><code>obj</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.15.7.10.3.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.11.10.3.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -179,7 +179,7 @@
 gst_video_sink_center_rect (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideosink.html#GstVideoRectangle" title="struct GstVideoRectangle"><span class="type">GstVideoRectangle</span></a> src</code></em>,
                             <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideosink.html#GstVideoRectangle" title="struct GstVideoRectangle"><span class="type">GstVideoRectangle</span></a> dst</code></em>,
                             <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideosink.html#GstVideoRectangle" title="struct GstVideoRectangle"><span class="type">GstVideoRectangle</span></a> *result</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> scaling</code></em>);</pre>
+                            <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> scaling</code></em>);</pre>
 <p>Takes <em class="parameter"><code>src</code></em>
  rectangle and position it at the center of <em class="parameter"><code>dst</code></em>
  rectangle with or
@@ -190,7 +190,7 @@
  one and <em class="parameter"><code>scaling</code></em>
  is set to FALSE.</p>
 <div class="refsect3">
-<a name="id-1.2.15.7.10.5.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.11.10.5.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -215,7 +215,7 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>scaling</p></td>
-<td class="parameter_description"><p>a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> indicating if scaling should be applied or not</p></td>
+<td class="parameter_description"><p>a <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> indicating if scaling should be applied or not</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 </tbody>
@@ -236,7 +236,7 @@
  and <em class="parameter"><code>width</code></em>
  members.</p>
 <div class="refsect3">
-<a name="id-1.2.15.7.11.2.5"></a><h4>Members</h4>
+<a name="id-1.2.15.11.11.2.5"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
@@ -245,12 +245,12 @@
 </colgroup>
 <tbody>
 <tr>
-<td class="struct_member_name"><p><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="GstVideoSink-struct.width"></a>width</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstVideoSink-struct.width"></a>width</code></em>;</p></td>
 <td class="struct_member_description"><p>video width (derived class needs to set this)</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstVideoSink-struct.height"></a>height</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstVideoSink-struct.height"></a>height</code></em>;</p></td>
 <td class="struct_member_description"><p>video height (derived class needs to set this)</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
@@ -271,7 +271,7 @@
 <em class="parameter"><code>show_frame</code></em>
  virtual function.</p>
 <div class="refsect3">
-<a name="id-1.2.15.7.11.3.5"></a><h4>Members</h4>
+<a name="id-1.2.15.11.11.3.5"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
@@ -289,7 +289,7 @@
 <td class="struct_member_description"><p>render a video frame. Maps to <code class="function">GstBaseSinkClass.render()</code> and
 <code class="function">GstBaseSinkClass.preroll()</code> vfuncs. Rendering during preroll will be
 suppressed if the <a class="link" href="gst-plugins-base-libs-gstvideosink.html#GstVideoSink--show-preroll-frame" title="The “show-preroll-frame” property"><span class="type">“show-preroll-frame”</span></a> property is set to
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>.</p></td>
+<a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>.</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 </tbody>
@@ -308,7 +308,7 @@
 </pre>
 <p>Helper structure representing a rectangular area.</p>
 <div class="refsect3">
-<a name="id-1.2.15.7.11.4.5"></a><h4>Members</h4>
+<a name="id-1.2.15.11.11.4.5"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
@@ -317,22 +317,22 @@
 </colgroup>
 <tbody>
 <tr>
-<td class="struct_member_name"><p><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="GstVideoRectangle.x"></a>x</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstVideoRectangle.x"></a>x</code></em>;</p></td>
 <td class="struct_member_description"><p>X coordinate of rectangle's top-left point</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstVideoRectangle.y"></a>y</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstVideoRectangle.y"></a>y</code></em>;</p></td>
 <td class="struct_member_description"><p>Y coordinate of rectangle's top-left point</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstVideoRectangle.w"></a>w</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstVideoRectangle.w"></a>w</code></em>;</p></td>
 <td class="struct_member_description"><p>width of the rectangle</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><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="GstVideoRectangle.h"></a>h</code></em>;</p></td>
+<td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstVideoRectangle.h"></a>h</code></em>;</p></td>
 <td class="struct_member_description"><p>height of the rectangle</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
@@ -345,8 +345,8 @@
 <a name="gst-plugins-base-libs-gstvideosink.property-details"></a><h2>Property Details</h2>
 <div class="refsect2">
 <a name="GstVideoSink--show-preroll-frame"></a><h3>The <code class="literal">“show-preroll-frame”</code> property</h3>
-<pre class="programlisting">  “show-preroll-frame”       <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
-<p>Whether to show video frames during preroll. If set to <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><span class="type">FALSE</span></a>, video
+<pre class="programlisting">  “show-preroll-frame”       <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<p>Whether to show video frames during preroll. If set to <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><span class="type">FALSE</span></a>, video
 frames will only be rendered in PLAYING state.</p>
 <p>Flags: Read / Write / Construct</p>
 <p>Default value: TRUE</p>
@@ -355,6 +355,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstvideoutils.html b/docs/libs/html/gst-plugins-base-libs-gstvideoutils.html
index e2b7254..1d1568b 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstvideoutils.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstvideoutils.html
@@ -8,15 +8,14 @@
 <link rel="up" href="gstreamer-video.html" title="Video Library">
 <link rel="prev" href="gst-plugins-base-libs-GstVideoPool.html" title="GstVideoPool">
 <link rel="next" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstvideoutils.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-libs-gstvideoutils.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-libs-gstvideoutils.description" class="shortcut">Description</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="gstreamer-video.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -156,7 +155,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="returnvalue">gpointer</span></a>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="returnvalue">gpointer</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#gst-video-codec-frame-get-user-data" title="gst_video_codec_frame_get_user_data ()">gst_video_codec_frame_get_user_data</a> <span class="c_punctuation">()</span>
@@ -205,11 +204,6 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="gst-plugins-base-libs-gstvideoutils.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">
-</pre>
-</div>
-<div class="refsect1">
 <a name="gst-plugins-base-libs-gstvideoutils.description"></a><h2>Description</h2>
 </div>
 <div class="refsect1">
@@ -221,7 +215,7 @@
 <p>The entire set of flags for the <em class="parameter"><code>frame</code></em>
 </p>
 <div class="refsect3">
-<a name="id-1.2.15.15.7.2.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.19.6.2.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -244,7 +238,7 @@
 <p>Checks whether the given <em class="parameter"><code>flag</code></em>
  is set</p>
 <div class="refsect3">
-<a name="id-1.2.15.15.7.3.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.19.6.3.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -273,7 +267,7 @@
 </pre>
 <p>This macro sets the given bits</p>
 <div class="refsect3">
-<a name="id-1.2.15.15.7.4.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.19.6.4.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -302,7 +296,7 @@
 </pre>
 <p>This macro usets the given bits.</p>
 <div class="refsect3">
-<a name="id-1.2.15.15.7.5.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.19.6.5.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -331,7 +325,7 @@
 </pre>
 <p>Tests if the buffer should only be decoded but not sent downstream.</p>
 <div class="refsect3">
-<a name="id-1.2.15.15.7.6.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.19.6.6.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -354,7 +348,7 @@
 <p>Tests if the frame must be encoded as a keyframe. Applies only to
 frames provided to encoders. Decoders can safely ignore this field.</p>
 <div class="refsect3">
-<a name="id-1.2.15.15.7.7.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.19.6.7.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -379,7 +373,7 @@
 <p>Applies only to frames provided to encoders. Decoders can safely
 ignore this field.</p>
 <div class="refsect3">
-<a name="id-1.2.15.15.7.8.6"></a><h4>Parameters</h4>
+<a name="id-1.2.15.19.6.8.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -402,7 +396,7 @@
 <p>Tests if the frame is a synchronization point (like a keyframe).</p>
 <p>Decoder implementations can use this to detect keyframes.</p>
 <div class="refsect3">
-<a name="id-1.2.15.15.7.9.6"></a><h4>Parameters</h4>
+<a name="id-1.2.15.19.6.9.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -427,7 +421,7 @@
 are not meant to be displayed.</p>
 <p>Encoder implementation can safely ignore this field.</p>
 <div class="refsect3">
-<a name="id-1.2.15.15.7.10.7"></a><h4>Parameters</h4>
+<a name="id-1.2.15.19.6.10.7"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -464,7 +458,7 @@
 <p>Decoder implementing parsing features should set this when they
 detect such a synchronization point.</p>
 <div class="refsect3">
-<a name="id-1.2.15.15.7.13.7"></a><h4>Parameters</h4>
+<a name="id-1.2.15.19.6.13.7"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -504,7 +498,7 @@
 gst_video_codec_frame_ref (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a> *frame</code></em>);</pre>
 <p>Increases the refcount of the given frame by one.</p>
 <div class="refsect3">
-<a name="id-1.2.15.15.7.17.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.19.6.17.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -519,7 +513,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.15.7.17.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.19.6.17.6"></a><h4>Returns</h4>
 <p> <em class="parameter"><code>buf</code></em>
 </p>
 <p></p>
@@ -533,7 +527,7 @@
 <p>Decreases the refcount of the frame. If the refcount reaches 0, the frame
 will be freed.</p>
 <div class="refsect3">
-<a name="id-1.2.15.15.7.18.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.19.6.18.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -553,10 +547,10 @@
 <a name="gst-video-codec-frame-set-user-data"></a><h3>gst_video_codec_frame_set_user_data ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_video_codec_frame_set_user_data (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a> *frame</code></em>,
-                                     <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><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
+                                     <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> notify</code></em>);</pre>
 <p>Sets <em class="parameter"><code>user_data</code></em>
- on the frame and the <a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> that will be called when
+ on the frame and the <a href="https://developer.gnome.org/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> that will be called when
 the frame is freed. Allows to attach private data by the subclass to frames.</p>
 <p>If a <em class="parameter"><code>user_data</code></em>
  was previously set, then the previous set <em class="parameter"><code>notify</code></em>
@@ -564,7 +558,7 @@
 before the <em class="parameter"><code>user_data</code></em>
  is replaced.</p>
 <div class="refsect3">
-<a name="id-1.2.15.15.7.19.6"></a><h4>Parameters</h4>
+<a name="id-1.2.15.19.6.19.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -584,7 +578,7 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>notify</p></td>
-<td class="parameter_description"><p> a <a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a>. </p></td>
+<td class="parameter_description"><p> a <a href="https://developer.gnome.org/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a>. </p></td>
 <td class="parameter_annotations"><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> user_data]</span></td>
 </tr>
 </tbody>
@@ -594,12 +588,12 @@
 <hr>
 <div class="refsect2">
 <a name="gst-video-codec-frame-get-user-data"></a><h3>gst_video_codec_frame_get_user_data ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="returnvalue">gpointer</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="returnvalue">gpointer</span></a>
 gst_video_codec_frame_get_user_data (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a> *frame</code></em>);</pre>
 <p>Gets private data set on the frame by the subclass via
 <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#gst-video-codec-frame-set-user-data" title="gst_video_codec_frame_set_user_data ()"><code class="function">gst_video_codec_frame_set_user_data()</code></a> previously.</p>
 <div class="refsect3">
-<a name="id-1.2.15.15.7.20.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.19.6.20.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -614,7 +608,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.15.7.20.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.19.6.20.6"></a><h4>Returns</h4>
 <p> The previously set user_data. </p>
 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
 </div>
@@ -626,7 +620,7 @@
 gst_video_codec_state_ref (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a> *state</code></em>);</pre>
 <p>Increases the refcount of the given state by one.</p>
 <div class="refsect3">
-<a name="id-1.2.15.15.7.21.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.19.6.21.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -641,7 +635,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.15.15.7.21.6"></a><h4>Returns</h4>
+<a name="id-1.2.15.19.6.21.6"></a><h4>Returns</h4>
 <p> <em class="parameter"><code>buf</code></em>
 </p>
 <p></p>
@@ -655,7 +649,7 @@
 <p>Decreases the refcount of the state. If the refcount reaches 0, the state
 will be freed.</p>
 <div class="refsect3">
-<a name="id-1.2.15.15.7.22.5"></a><h4>Parameters</h4>
+<a name="id-1.2.15.19.6.22.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -695,7 +689,7 @@
 <p>A <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a> represents a video frame both in raw and
 encoded form.</p>
 <div class="refsect3">
-<a name="id-1.2.15.15.8.2.5"></a><h4>Members</h4>
+<a name="id-1.2.15.19.7.2.5"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
@@ -742,14 +736,14 @@
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *<em class="structfield"><code><a name="GstVideoCodecFrame.input-buffer"></a>input_buffer</code></em>;</p></td>
-<td class="struct_member_description"><p>the input <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> that created this frame. The buffer is owned
+<td class="struct_member_name"><p><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> *<em class="structfield"><code><a name="GstVideoCodecFrame.input-buffer"></a>input_buffer</code></em>;</p></td>
+<td class="struct_member_description"><p>the input <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> that created this frame. The buffer is owned
 by the frame and references to the frame instead of the buffer should</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *<em class="structfield"><code><a name="GstVideoCodecFrame.output-buffer"></a>output_buffer</code></em>;</p></td>
-<td class="struct_member_description"><p>the output <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a>. Implementations should set this either
+<td class="struct_member_name"><p><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> *<em class="structfield"><code><a name="GstVideoCodecFrame.output-buffer"></a>output_buffer</code></em>;</p></td>
+<td class="struct_member_description"><p>the output <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a>. Implementations should set this either
 directly, or by using the
 <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-allocate-output-frame" title="gst_video_decoder_allocate_output_frame ()"><code class="function">gst_video_decoder_allocate_output_frame()</code></a></code></em>
 or
@@ -773,7 +767,7 @@
 <a name="GstVideoCodecFrameFlags"></a><h3>enum GstVideoCodecFrameFlags</h3>
 <p>Flags for <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a></p>
 <div class="refsect3">
-<a name="id-1.2.15.15.8.3.4"></a><h4>Members</h4>
+<a name="id-1.2.15.19.7.3.4"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -835,7 +829,7 @@
 <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#gst-video-encoder-set-output-state" title="gst_video_encoder_set_output_state ()"><code class="function">gst_video_encoder_set_output_state()</code></a></code></em>
  methods.</p>
 <div class="refsect3">
-<a name="id-1.2.15.15.8.4.7"></a><h4>Members</h4>
+<a name="id-1.2.15.19.7.4.7"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
@@ -849,13 +843,13 @@
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *<em class="structfield"><code><a name="GstVideoCodecState.caps"></a>caps</code></em>;</p></td>
-<td class="struct_member_description"><p>The <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a></p></td>
+<td class="struct_member_name"><p><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> *<em class="structfield"><code><a name="GstVideoCodecState.caps"></a>caps</code></em>;</p></td>
+<td class="struct_member_description"><p>The <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a></p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td class="struct_member_name"><p><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *<em class="structfield"><code><a name="GstVideoCodecState.codec-data"></a>codec_data</code></em>;</p></td>
-<td class="struct_member_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> corresponding to the
+<td class="struct_member_name"><p><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> *<em class="structfield"><code><a name="GstVideoCodecState.codec-data"></a>codec_data</code></em>;</p></td>
+<td class="struct_member_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> corresponding to the
 'codec_data' field of a stream, or NULL.</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
@@ -867,6 +861,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gstreamer-allocators.html b/docs/libs/html/gstreamer-allocators.html
index 2e255d2..27c5ba9 100644
--- a/docs/libs/html/gstreamer-allocators.html
+++ b/docs/libs/html/gstreamer-allocators.html
@@ -8,11 +8,11 @@
 <link rel="up" href="gstreamer-plugins-base.html" title="Part I. GStreamer Base Plugins Libraries">
 <link rel="prev" href="compiling.html" title="Compiling">
 <link rel="next" href="gst-plugins-base-libs-dmabuf.html" title="dmabuf">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="gstreamer-plugins-base.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -33,6 +33,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gstreamer-app.html b/docs/libs/html/gstreamer-app.html
index 5562bca..294ae02 100644
--- a/docs/libs/html/gstreamer-app.html
+++ b/docs/libs/html/gstreamer-app.html
@@ -8,11 +8,11 @@
 <link rel="up" href="gstreamer-plugins-base.html" title="Part I. GStreamer Base Plugins Libraries">
 <link rel="prev" href="gst-plugins-base-libs-dmabuf.html" title="dmabuf">
 <link rel="next" href="gst-plugins-base-libs-appsrc.html" title="appsrc">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="gstreamer-plugins-base.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -43,6 +43,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gstreamer-audio.html b/docs/libs/html/gstreamer-audio.html
index dcf9ce6..e36505e 100644
--- a/docs/libs/html/gstreamer-audio.html
+++ b/docs/libs/html/gstreamer-audio.html
@@ -8,11 +8,11 @@
 <link rel="up" href="gstreamer-plugins-base.html" title="Part I. GStreamer Base Plugins Libraries">
 <link rel="prev" href="gst-plugins-base-libs-appsink.html" title="appsink">
 <link rel="next" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="gstreamer-plugins-base.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -77,6 +77,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gstreamer-base-utils.html b/docs/libs/html/gstreamer-base-utils.html
index 9dd71e3..865c667 100644
--- a/docs/libs/html/gstreamer-base-utils.html
+++ b/docs/libs/html/gstreamer-base-utils.html
@@ -8,11 +8,11 @@
 <link rel="up" href="gstreamer-plugins-base.html" title="Part I. GStreamer Base Plugins Libraries">
 <link rel="prev" href="gst-plugins-base-libs-gsttaglicenses.html" title="gsttaglicenses">
 <link rel="next" href="gst-plugins-base-libs-gstpbutils.html" title="gstpbutils">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="gstreamer-plugins-base.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -58,6 +58,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gstreamer-ffft.html b/docs/libs/html/gstreamer-ffft.html
index fbe39e6..7af6d36 100644
--- a/docs/libs/html/gstreamer-ffft.html
+++ b/docs/libs/html/gstreamer-ffft.html
@@ -8,11 +8,11 @@
 <link rel="up" href="gstreamer-plugins-base.html" title="Part I. GStreamer Base Plugins Libraries">
 <link rel="prev" href="gst-plugins-base-libs-gststreamvolume.html" title="gststreamvolume">
 <link rel="next" href="gst-plugins-base-libs-gstfft.html" title="gstfft">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="gstreamer-plugins-base.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -52,6 +52,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gstreamer-libs-hierarchy.html b/docs/libs/html/gstreamer-libs-hierarchy.html
index d760534..561fa32 100644
--- a/docs/libs/html/gstreamer-libs-hierarchy.html
+++ b/docs/libs/html/gstreamer-libs-hierarchy.html
@@ -8,11 +8,11 @@
 <link rel="up" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="prev" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">
 <link rel="next" href="api-index-full.html" title="Index">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
@@ -23,8 +23,8 @@
 <div class="titlepage"><div><div><h1 class="title">
 <a name="gstreamer-libs-hierarchy"></a>Part II. Object Hierarchy</h1></div></div></div>
 <pre class="screen">
-    <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-    <span class="lineart">├──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+    <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">├──</span> <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
     <span class="lineart">│</span>   <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
     <span class="lineart">│</span>       <span class="lineart">├──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
     <span class="lineart">│</span>       <span class="lineart">│</span>   <span class="lineart">├──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSrc.html">GstBaseSrc</a>
@@ -56,7 +56,7 @@
     <span class="lineart">│</span>   <span class="lineart">╰──</span> <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingContainerProfile">GstEncodingContainerProfile</a>
     <span class="lineart">├──</span> <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget">GstEncodingTarget</a>
     <span class="lineart">╰──</span> <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo">GstDiscovererInfo</a>
-    GInterface
+    <a href="https://developer.gnome.org/gobject/unstable/GTypeModule.html">GInterface</a>
     <span class="lineart">├──</span> <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation">GstNavigation</a>
     <span class="lineart">├──</span> <a class="link" href="gst-plugins-base-libs-gststreamvolume.html#GstStreamVolume">GstStreamVolume</a>
     <span class="lineart">├──</span> <a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance">GstColorBalance</a>
@@ -66,6 +66,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gstreamer-mikey.html b/docs/libs/html/gstreamer-mikey.html
index 4ff8f03..f9cd79b 100644
--- a/docs/libs/html/gstreamer-mikey.html
+++ b/docs/libs/html/gstreamer-mikey.html
@@ -8,11 +8,11 @@
 <link rel="up" href="gstreamer-plugins-base.html" title="Part I. GStreamer Base Plugins Libraries">
 <link rel="prev" href="gst-plugins-base-libs-gstsdpmessage.html" title="gstsdpmessage">
 <link rel="next" href="gst-plugins-base-libs-gstmikey.html" title="gstmikey">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="gstreamer-plugins-base.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -33,6 +33,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gstreamer-plugins-base.html b/docs/libs/html/gstreamer-plugins-base.html
index d1d0bbb..a12fc61 100644
--- a/docs/libs/html/gstreamer-plugins-base.html
+++ b/docs/libs/html/gstreamer-plugins-base.html
@@ -8,11 +8,11 @@
 <link rel="up" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="prev" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="next" href="compiling.html" title="Compiling">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
@@ -253,6 +253,18 @@
 <span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideofilter.html">gstvideofilter</a></span><span class="refpurpose"> — Base class for video filters</span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-GstVideoDither.html">GstVideoDither</a></span><span class="refpurpose"> — Utility object for dithering and quantizing lines of video</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-GstVideoChroma.html">GstVideoChroma</a></span><span class="refpurpose"> — Functions and utility object for operating on chroma video planes</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-GstVideoResampler.html">GstVideoResampler</a></span><span class="refpurpose"> — Utility structure for resampler information</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-GstVideoScaler.html">GstVideoScaler</a></span><span class="refpurpose"> — Utility object for rescaling video frames</span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideosink.html">gstvideosink</a></span><span class="refpurpose"> — Base class for video sinks</span>
 </dt>
 <dt>
@@ -297,6 +309,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gstreamer-riff.html b/docs/libs/html/gstreamer-riff.html
index 4c63b0a..974802f 100644
--- a/docs/libs/html/gstreamer-riff.html
+++ b/docs/libs/html/gstreamer-riff.html
@@ -8,11 +8,11 @@
 <link rel="up" href="gstreamer-plugins-base.html" title="Part I. GStreamer Base Plugins Libraries">
 <link rel="prev" href="gst-plugins-base-libs-gstfftf64.html" title="gstfftf64">
 <link rel="next" href="gst-plugins-base-libs-gstriff.html" title="gstriff">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="gstreamer-plugins-base.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -33,6 +33,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gstreamer-rtp.html b/docs/libs/html/gstreamer-rtp.html
index fb4838a..6bfd2ae 100644
--- a/docs/libs/html/gstreamer-rtp.html
+++ b/docs/libs/html/gstreamer-rtp.html
@@ -8,11 +8,11 @@
 <link rel="up" href="gstreamer-plugins-base.html" title="Part I. GStreamer Base Plugins Libraries">
 <link rel="prev" href="gst-plugins-base-libs-gstriff.html" title="gstriff">
 <link rel="next" href="gst-plugins-base-libs-gstrtpbaseaudiopayload.html" title="gstrtpbaseaudiopayload">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="gstreamer-plugins-base.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -53,6 +53,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gstreamer-rtsp.html b/docs/libs/html/gstreamer-rtsp.html
index 4469205..c7ae508 100644
--- a/docs/libs/html/gstreamer-rtsp.html
+++ b/docs/libs/html/gstreamer-rtsp.html
@@ -8,11 +8,11 @@
 <link rel="up" href="gstreamer-plugins-base.html" title="Part I. GStreamer Base Plugins Libraries">
 <link rel="prev" href="gst-plugins-base-libs-gstrtphdrext.html" title="gstrtphdrext">
 <link rel="next" href="gst-plugins-base-libs-gstrtspconnection.html" title="gstrtspconnection">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="gstreamer-plugins-base.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -53,6 +53,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gstreamer-sdp.html b/docs/libs/html/gstreamer-sdp.html
index d6c65fd..ef2224d 100644
--- a/docs/libs/html/gstreamer-sdp.html
+++ b/docs/libs/html/gstreamer-sdp.html
@@ -8,11 +8,11 @@
 <link rel="up" href="gstreamer-plugins-base.html" title="Part I. GStreamer Base Plugins Libraries">
 <link rel="prev" href="gst-plugins-base-libs-gstrtspurl.html" title="gstrtspurl">
 <link rel="next" href="gst-plugins-base-libs-gstsdpmessage.html" title="gstsdpmessage">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="gstreamer-plugins-base.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -33,6 +33,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gstreamer-tag.html b/docs/libs/html/gstreamer-tag.html
index 02c02e8..2944bc5 100644
--- a/docs/libs/html/gstreamer-tag.html
+++ b/docs/libs/html/gstreamer-tag.html
@@ -8,11 +8,11 @@
 <link rel="up" href="gstreamer-plugins-base.html" title="Part I. GStreamer Base Plugins Libraries">
 <link rel="prev" href="gst-plugins-base-libs-gstmikey.html" title="gstmikey">
 <link rel="next" href="gst-plugins-base-libs-gsttag.html" title="gsttag">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="gstreamer-plugins-base.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -68,6 +68,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/gstreamer-video.html b/docs/libs/html/gstreamer-video.html
index ffc9772..3c2a4e4 100644
--- a/docs/libs/html/gstreamer-video.html
+++ b/docs/libs/html/gstreamer-video.html
@@ -8,11 +8,11 @@
 <link rel="up" href="gstreamer-plugins-base.html" title="Part I. GStreamer Base Plugins Libraries">
 <link rel="prev" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">
 <link rel="next" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="gstreamer-plugins-base.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -36,6 +36,18 @@
 <span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideofilter.html">gstvideofilter</a></span><span class="refpurpose"> — Base class for video filters</span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-GstVideoDither.html">GstVideoDither</a></span><span class="refpurpose"> — Utility object for dithering and quantizing lines of video</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-GstVideoChroma.html">GstVideoChroma</a></span><span class="refpurpose"> — Functions and utility object for operating on chroma video planes</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-GstVideoResampler.html">GstVideoResampler</a></span><span class="refpurpose"> — Utility structure for resampler information</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-GstVideoScaler.html">GstVideoScaler</a></span><span class="refpurpose"> — Utility object for rescaling video frames</span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideosink.html">gstvideosink</a></span><span class="refpurpose"> — Base class for video sinks</span>
 </dt>
 <dt>
@@ -79,6 +91,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/index.html b/docs/libs/html/index.html
index 19cb016..76a1e3c 100644
--- a/docs/libs/html/index.html
+++ b/docs/libs/html/index.html
@@ -6,7 +6,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="next" href="gstreamer-plugins-base.html" title="Part I. GStreamer Base Plugins Libraries">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -15,7 +15,7 @@
 <div>
 <div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">GStreamer Base Plugins 1.0 Library Reference Manual</p></th></tr></table></div>
 <div><p class="releaseinfo">
-      for GStreamer Base Library 1.0 (1.3.3)
+      for GStreamer Base Library 1.0 (1.5.0.1)
       <a class="ulink" href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/" target="_top">http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/</a>.
     </p></div>
 </div>
@@ -252,6 +252,18 @@
 <span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideofilter.html">gstvideofilter</a></span><span class="refpurpose"> — Base class for video filters</span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-GstVideoDither.html">GstVideoDither</a></span><span class="refpurpose"> — Utility object for dithering and quantizing lines of video</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-GstVideoChroma.html">GstVideoChroma</a></span><span class="refpurpose"> — Functions and utility object for operating on chroma video planes</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-GstVideoResampler.html">GstVideoResampler</a></span><span class="refpurpose"> — Utility structure for resampler information</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-GstVideoScaler.html">GstVideoScaler</a></span><span class="refpurpose"> — Utility object for rescaling video frames</span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideosink.html">gstvideosink</a></span><span class="refpurpose"> — Base class for video sinks</span>
 </dt>
 <dt>
@@ -296,6 +308,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libs/html/index.sgml b/docs/libs/html/index.sgml
index 9ee27da..3c88576 100644
--- a/docs/libs/html/index.sgml
+++ b/docs/libs/html/index.sgml
@@ -2,7 +2,6 @@
 <ANCHOR id="compiling" href="gst-plugins-base-libs-1.0/compiling.html">
 <ANCHOR id="gst-plugins-base-libs-dmabuf" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-dmabuf.html">
 <ANCHOR id="gst-plugins-base-libs-dmabuf.functions" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-dmabuf.html#gst-plugins-base-libs-dmabuf.functions">
-<ANCHOR id="gst-plugins-base-libs-dmabuf.object-hierarchy" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-dmabuf.html#gst-plugins-base-libs-dmabuf.object-hierarchy">
 <ANCHOR id="gst-plugins-base-libs-dmabuf.includes" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-dmabuf.html#gst-plugins-base-libs-dmabuf.includes">
 <ANCHOR id="gst-plugins-base-libs-dmabuf.description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-dmabuf.html#gst-plugins-base-libs-dmabuf.description">
 <ANCHOR id="gst-plugins-base-libs-dmabuf.functions_details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-dmabuf.html#gst-plugins-base-libs-dmabuf.functions_details">
@@ -14,7 +13,6 @@
 <ANCHOR id="gst-plugins-base-libs-appsrc" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-appsrc.html">
 <ANCHOR id="gst-plugins-base-libs-appsrc.functions" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-appsrc.html#gst-plugins-base-libs-appsrc.functions">
 <ANCHOR id="gst-plugins-base-libs-appsrc.other" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-appsrc.html#gst-plugins-base-libs-appsrc.other">
-<ANCHOR id="gst-plugins-base-libs-appsrc.object-hierarchy" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-appsrc.html#gst-plugins-base-libs-appsrc.object-hierarchy">
 <ANCHOR id="gst-plugins-base-libs-appsrc.includes" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-appsrc.html#gst-plugins-base-libs-appsrc.includes">
 <ANCHOR id="gst-plugins-base-libs-appsrc.description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-appsrc.html#gst-plugins-base-libs-appsrc.description">
 <ANCHOR id="gst-plugins-base-libs-appsrc.functions_details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-appsrc.html#gst-plugins-base-libs-appsrc.functions_details">
@@ -33,6 +31,7 @@
 <ANCHOR id="gst-app-src-set-emit-signals" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-appsrc.html#gst-app-src-set-emit-signals">
 <ANCHOR id="gst-app-src-set-callbacks" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-appsrc.html#gst-app-src-set-callbacks">
 <ANCHOR id="gst-app-src-push-buffer" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-appsrc.html#gst-app-src-push-buffer">
+<ANCHOR id="gst-app-src-push-sample" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-appsrc.html#gst-app-src-push-sample">
 <ANCHOR id="gst-app-src-end-of-stream" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-appsrc.html#gst-app-src-end-of-stream">
 <ANCHOR id="gst-plugins-base-libs-appsrc.other_details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-appsrc.html#gst-plugins-base-libs-appsrc.other_details">
 <ANCHOR id="GstAppStreamType" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-appsrc.html#GstAppStreamType">
@@ -41,7 +40,6 @@
 <ANCHOR id="gst-plugins-base-libs-appsink" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-appsink.html">
 <ANCHOR id="gst-plugins-base-libs-appsink.functions" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-appsink.html#gst-plugins-base-libs-appsink.functions">
 <ANCHOR id="gst-plugins-base-libs-appsink.other" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-appsink.html#gst-plugins-base-libs-appsink.other">
-<ANCHOR id="gst-plugins-base-libs-appsink.object-hierarchy" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-appsink.html#gst-plugins-base-libs-appsink.object-hierarchy">
 <ANCHOR id="gst-plugins-base-libs-appsink.includes" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-appsink.html#gst-plugins-base-libs-appsink.includes">
 <ANCHOR id="gst-plugins-base-libs-appsink.description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-appsink.html#gst-plugins-base-libs-appsink.description">
 <ANCHOR id="gst-plugins-base-libs-appsink.functions_details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-appsink.html#gst-plugins-base-libs-appsink.functions_details">
@@ -63,7 +61,6 @@
 <ANCHOR id="gst-plugins-base-libs-gstaudio" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudio.html">
 <ANCHOR id="gst-plugins-base-libs-gstaudio.functions" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudio.html#gst-plugins-base-libs-gstaudio.functions">
 <ANCHOR id="gst-plugins-base-libs-gstaudio.other" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudio.html#gst-plugins-base-libs-gstaudio.other">
-<ANCHOR id="gst-plugins-base-libs-gstaudio.object-hierarchy" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudio.html#gst-plugins-base-libs-gstaudio.object-hierarchy">
 <ANCHOR id="gst-plugins-base-libs-gstaudio.includes" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudio.html#gst-plugins-base-libs-gstaudio.includes">
 <ANCHOR id="gst-plugins-base-libs-gstaudio.description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudio.html#gst-plugins-base-libs-gstaudio.description">
 <ANCHOR id="gst-plugins-base-libs-gstaudio.functions_details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudio.html#gst-plugins-base-libs-gstaudio.functions_details">
@@ -138,7 +135,6 @@
 <ANCHOR id="gst-plugins-base-libs-gstaudiometa" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiometa.html">
 <ANCHOR id="gst-plugins-base-libs-gstaudiometa.functions" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiometa.html#gst-plugins-base-libs-gstaudiometa.functions">
 <ANCHOR id="gst-plugins-base-libs-gstaudiometa.other" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiometa.html#gst-plugins-base-libs-gstaudiometa.other">
-<ANCHOR id="gst-plugins-base-libs-gstaudiometa.object-hierarchy" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiometa.html#gst-plugins-base-libs-gstaudiometa.object-hierarchy">
 <ANCHOR id="gst-plugins-base-libs-gstaudiometa.includes" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiometa.html#gst-plugins-base-libs-gstaudiometa.includes">
 <ANCHOR id="gst-plugins-base-libs-gstaudiometa.description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiometa.html#gst-plugins-base-libs-gstaudiometa.description">
 <ANCHOR id="gst-plugins-base-libs-gstaudiometa.functions_details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiometa.html#gst-plugins-base-libs-gstaudiometa.functions_details">
@@ -388,7 +384,6 @@
 <ANCHOR id="gst-plugins-base-libs-gstaudiochannels" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiochannels.html">
 <ANCHOR id="gst-plugins-base-libs-gstaudiochannels.functions" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiochannels.html#gst-plugins-base-libs-gstaudiochannels.functions">
 <ANCHOR id="gst-plugins-base-libs-gstaudiochannels.other" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiochannels.html#gst-plugins-base-libs-gstaudiochannels.other">
-<ANCHOR id="gst-plugins-base-libs-gstaudiochannels.object-hierarchy" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiochannels.html#gst-plugins-base-libs-gstaudiochannels.object-hierarchy">
 <ANCHOR id="gst-plugins-base-libs-gstaudiochannels.includes" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiochannels.html#gst-plugins-base-libs-gstaudiochannels.includes">
 <ANCHOR id="gst-plugins-base-libs-gstaudiochannels.description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiochannels.html#gst-plugins-base-libs-gstaudiochannels.description">
 <ANCHOR id="gst-plugins-base-libs-gstaudiochannels.functions_details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiochannels.html#gst-plugins-base-libs-gstaudiochannels.functions_details">
@@ -452,7 +447,6 @@
 <ANCHOR id="gst-plugins-base-libs-gstaudioringbuffer.see-also" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudioringbuffer.html#gst-plugins-base-libs-gstaudioringbuffer.see-also">
 <ANCHOR id="gst-plugins-base-libs-gstaudioiec61937" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudioiec61937.html">
 <ANCHOR id="gst-plugins-base-libs-gstaudioiec61937.functions" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudioiec61937.html#gst-plugins-base-libs-gstaudioiec61937.functions">
-<ANCHOR id="gst-plugins-base-libs-gstaudioiec61937.object-hierarchy" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudioiec61937.html#gst-plugins-base-libs-gstaudioiec61937.object-hierarchy">
 <ANCHOR id="gst-plugins-base-libs-gstaudioiec61937.includes" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudioiec61937.html#gst-plugins-base-libs-gstaudioiec61937.includes">
 <ANCHOR id="gst-plugins-base-libs-gstaudioiec61937.description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudioiec61937.html#gst-plugins-base-libs-gstaudioiec61937.description">
 <ANCHOR id="gst-plugins-base-libs-gstaudioiec61937.functions_details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudioiec61937.html#gst-plugins-base-libs-gstaudioiec61937.functions_details">
@@ -483,7 +477,6 @@
 <ANCHOR id="gst-plugins-base-libs-gstfft" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstfft.html">
 <ANCHOR id="gst-plugins-base-libs-gstfft.functions" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstfft.html#gst-plugins-base-libs-gstfft.functions">
 <ANCHOR id="gst-plugins-base-libs-gstfft.other" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstfft.html#gst-plugins-base-libs-gstfft.other">
-<ANCHOR id="gst-plugins-base-libs-gstfft.object-hierarchy" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstfft.html#gst-plugins-base-libs-gstfft.object-hierarchy">
 <ANCHOR id="gst-plugins-base-libs-gstfft.includes" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstfft.html#gst-plugins-base-libs-gstfft.includes">
 <ANCHOR id="gst-plugins-base-libs-gstfft.description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstfft.html#gst-plugins-base-libs-gstfft.description">
 <ANCHOR id="gst-plugins-base-libs-gstfft.functions_details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstfft.html#gst-plugins-base-libs-gstfft.functions_details">
@@ -493,7 +486,6 @@
 <ANCHOR id="gst-plugins-base-libs-gstffts16" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstffts16.html">
 <ANCHOR id="gst-plugins-base-libs-gstffts16.functions" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstffts16.html#gst-plugins-base-libs-gstffts16.functions">
 <ANCHOR id="gst-plugins-base-libs-gstffts16.other" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstffts16.html#gst-plugins-base-libs-gstffts16.other">
-<ANCHOR id="gst-plugins-base-libs-gstffts16.object-hierarchy" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstffts16.html#gst-plugins-base-libs-gstffts16.object-hierarchy">
 <ANCHOR id="gst-plugins-base-libs-gstffts16.includes" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstffts16.html#gst-plugins-base-libs-gstffts16.includes">
 <ANCHOR id="gst-plugins-base-libs-gstffts16.description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstffts16.html#gst-plugins-base-libs-gstffts16.description">
 <ANCHOR id="gst-plugins-base-libs-gstffts16.functions_details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstffts16.html#gst-plugins-base-libs-gstffts16.functions_details">
@@ -508,7 +500,6 @@
 <ANCHOR id="gst-plugins-base-libs-gstffts32" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstffts32.html">
 <ANCHOR id="gst-plugins-base-libs-gstffts32.functions" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstffts32.html#gst-plugins-base-libs-gstffts32.functions">
 <ANCHOR id="gst-plugins-base-libs-gstffts32.other" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstffts32.html#gst-plugins-base-libs-gstffts32.other">
-<ANCHOR id="gst-plugins-base-libs-gstffts32.object-hierarchy" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstffts32.html#gst-plugins-base-libs-gstffts32.object-hierarchy">
 <ANCHOR id="gst-plugins-base-libs-gstffts32.includes" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstffts32.html#gst-plugins-base-libs-gstffts32.includes">
 <ANCHOR id="gst-plugins-base-libs-gstffts32.description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstffts32.html#gst-plugins-base-libs-gstffts32.description">
 <ANCHOR id="gst-plugins-base-libs-gstffts32.functions_details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstffts32.html#gst-plugins-base-libs-gstffts32.functions_details">
@@ -523,7 +514,6 @@
 <ANCHOR id="gst-plugins-base-libs-gstfftf32" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstfftf32.html">
 <ANCHOR id="gst-plugins-base-libs-gstfftf32.functions" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstfftf32.html#gst-plugins-base-libs-gstfftf32.functions">
 <ANCHOR id="gst-plugins-base-libs-gstfftf32.other" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstfftf32.html#gst-plugins-base-libs-gstfftf32.other">
-<ANCHOR id="gst-plugins-base-libs-gstfftf32.object-hierarchy" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstfftf32.html#gst-plugins-base-libs-gstfftf32.object-hierarchy">
 <ANCHOR id="gst-plugins-base-libs-gstfftf32.includes" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstfftf32.html#gst-plugins-base-libs-gstfftf32.includes">
 <ANCHOR id="gst-plugins-base-libs-gstfftf32.description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstfftf32.html#gst-plugins-base-libs-gstfftf32.description">
 <ANCHOR id="gst-plugins-base-libs-gstfftf32.functions_details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstfftf32.html#gst-plugins-base-libs-gstfftf32.functions_details">
@@ -538,7 +528,6 @@
 <ANCHOR id="gst-plugins-base-libs-gstfftf64" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstfftf64.html">
 <ANCHOR id="gst-plugins-base-libs-gstfftf64.functions" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstfftf64.html#gst-plugins-base-libs-gstfftf64.functions">
 <ANCHOR id="gst-plugins-base-libs-gstfftf64.other" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstfftf64.html#gst-plugins-base-libs-gstfftf64.other">
-<ANCHOR id="gst-plugins-base-libs-gstfftf64.object-hierarchy" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstfftf64.html#gst-plugins-base-libs-gstfftf64.object-hierarchy">
 <ANCHOR id="gst-plugins-base-libs-gstfftf64.includes" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstfftf64.html#gst-plugins-base-libs-gstfftf64.includes">
 <ANCHOR id="gst-plugins-base-libs-gstfftf64.description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstfftf64.html#gst-plugins-base-libs-gstfftf64.description">
 <ANCHOR id="gst-plugins-base-libs-gstfftf64.functions_details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstfftf64.html#gst-plugins-base-libs-gstfftf64.functions_details">
@@ -552,7 +541,6 @@
 <ANCHOR id="GstFFTF64Complex" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstfftf64.html#GstFFTF64Complex">
 <ANCHOR id="gst-plugins-base-libs-gstriff" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstriff.html">
 <ANCHOR id="gst-plugins-base-libs-gstriff.functions" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstriff.html#gst-plugins-base-libs-gstriff.functions">
-<ANCHOR id="gst-plugins-base-libs-gstriff.object-hierarchy" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstriff.html#gst-plugins-base-libs-gstriff.object-hierarchy">
 <ANCHOR id="gst-plugins-base-libs-gstriff.includes" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstriff.html#gst-plugins-base-libs-gstriff.includes">
 <ANCHOR id="gst-plugins-base-libs-gstriff.description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstriff.html#gst-plugins-base-libs-gstriff.description">
 <ANCHOR id="gst-plugins-base-libs-gstriff.functions_details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstriff.html#gst-plugins-base-libs-gstriff.functions_details">
@@ -649,7 +637,6 @@
 <ANCHOR id="gst-plugins-base-libs-gstrtpbuffer" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtpbuffer.html">
 <ANCHOR id="gst-plugins-base-libs-gstrtpbuffer.functions" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtpbuffer.html#gst-plugins-base-libs-gstrtpbuffer.functions">
 <ANCHOR id="gst-plugins-base-libs-gstrtpbuffer.other" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtpbuffer.html#gst-plugins-base-libs-gstrtpbuffer.other">
-<ANCHOR id="gst-plugins-base-libs-gstrtpbuffer.object-hierarchy" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtpbuffer.html#gst-plugins-base-libs-gstrtpbuffer.object-hierarchy">
 <ANCHOR id="gst-plugins-base-libs-gstrtpbuffer.includes" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtpbuffer.html#gst-plugins-base-libs-gstrtpbuffer.includes">
 <ANCHOR id="gst-plugins-base-libs-gstrtpbuffer.description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtpbuffer.html#gst-plugins-base-libs-gstrtpbuffer.description">
 <ANCHOR id="gst-plugins-base-libs-gstrtpbuffer.functions_details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtpbuffer.html#gst-plugins-base-libs-gstrtpbuffer.functions_details">
@@ -707,7 +694,6 @@
 <ANCHOR id="gst-plugins-base-libs-gstrtcpbuffer" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtcpbuffer.html">
 <ANCHOR id="gst-plugins-base-libs-gstrtcpbuffer.functions" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtcpbuffer.html#gst-plugins-base-libs-gstrtcpbuffer.functions">
 <ANCHOR id="gst-plugins-base-libs-gstrtcpbuffer.other" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtcpbuffer.html#gst-plugins-base-libs-gstrtcpbuffer.other">
-<ANCHOR id="gst-plugins-base-libs-gstrtcpbuffer.object-hierarchy" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtcpbuffer.html#gst-plugins-base-libs-gstrtcpbuffer.object-hierarchy">
 <ANCHOR id="gst-plugins-base-libs-gstrtcpbuffer.includes" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtcpbuffer.html#gst-plugins-base-libs-gstrtcpbuffer.includes">
 <ANCHOR id="gst-plugins-base-libs-gstrtcpbuffer.description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtcpbuffer.html#gst-plugins-base-libs-gstrtcpbuffer.description">
 <ANCHOR id="gst-plugins-base-libs-gstrtcpbuffer.functions_details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtcpbuffer.html#gst-plugins-base-libs-gstrtcpbuffer.functions_details">
@@ -783,7 +769,6 @@
 <ANCHOR id="gst-plugins-base-libs-gstrtppayloads" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtppayloads.html">
 <ANCHOR id="gst-plugins-base-libs-gstrtppayloads.functions" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtppayloads.html#gst-plugins-base-libs-gstrtppayloads.functions">
 <ANCHOR id="gst-plugins-base-libs-gstrtppayloads.other" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtppayloads.html#gst-plugins-base-libs-gstrtppayloads.other">
-<ANCHOR id="gst-plugins-base-libs-gstrtppayloads.object-hierarchy" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtppayloads.html#gst-plugins-base-libs-gstrtppayloads.object-hierarchy">
 <ANCHOR id="gst-plugins-base-libs-gstrtppayloads.includes" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtppayloads.html#gst-plugins-base-libs-gstrtppayloads.includes">
 <ANCHOR id="gst-plugins-base-libs-gstrtppayloads.description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtppayloads.html#gst-plugins-base-libs-gstrtppayloads.description">
 <ANCHOR id="gst-plugins-base-libs-gstrtppayloads.functions_details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtppayloads.html#gst-plugins-base-libs-gstrtppayloads.functions_details">
@@ -796,7 +781,6 @@
 <ANCHOR id="gst-plugins-base-libs-gstrtppayloads.see-also" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtppayloads.html#gst-plugins-base-libs-gstrtppayloads.see-also">
 <ANCHOR id="gst-plugins-base-libs-gstrtphdrext" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtphdrext.html">
 <ANCHOR id="gst-plugins-base-libs-gstrtphdrext.functions" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtphdrext.html#gst-plugins-base-libs-gstrtphdrext.functions">
-<ANCHOR id="gst-plugins-base-libs-gstrtphdrext.object-hierarchy" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtphdrext.html#gst-plugins-base-libs-gstrtphdrext.object-hierarchy">
 <ANCHOR id="gst-plugins-base-libs-gstrtphdrext.includes" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtphdrext.html#gst-plugins-base-libs-gstrtphdrext.includes">
 <ANCHOR id="gst-plugins-base-libs-gstrtphdrext.description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtphdrext.html#gst-plugins-base-libs-gstrtphdrext.description">
 <ANCHOR id="gst-plugins-base-libs-gstrtphdrext.functions_details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtphdrext.html#gst-plugins-base-libs-gstrtphdrext.functions_details">
@@ -808,7 +792,6 @@
 <ANCHOR id="gst-plugins-base-libs-gstrtspconnection" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspconnection.html">
 <ANCHOR id="gst-plugins-base-libs-gstrtspconnection.functions" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspconnection.html#gst-plugins-base-libs-gstrtspconnection.functions">
 <ANCHOR id="gst-plugins-base-libs-gstrtspconnection.other" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspconnection.html#gst-plugins-base-libs-gstrtspconnection.other">
-<ANCHOR id="gst-plugins-base-libs-gstrtspconnection.object-hierarchy" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspconnection.html#gst-plugins-base-libs-gstrtspconnection.object-hierarchy">
 <ANCHOR id="gst-plugins-base-libs-gstrtspconnection.includes" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspconnection.html#gst-plugins-base-libs-gstrtspconnection.includes">
 <ANCHOR id="gst-plugins-base-libs-gstrtspconnection.description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspconnection.html#gst-plugins-base-libs-gstrtspconnection.description">
 <ANCHOR id="gst-plugins-base-libs-gstrtspconnection.functions_details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspconnection.html#gst-plugins-base-libs-gstrtspconnection.functions_details">
@@ -861,7 +844,6 @@
 <ANCHOR id="gst-plugins-base-libs-gstrtspdefs" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html">
 <ANCHOR id="gst-plugins-base-libs-gstrtspdefs.functions" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#gst-plugins-base-libs-gstrtspdefs.functions">
 <ANCHOR id="gst-plugins-base-libs-gstrtspdefs.other" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#gst-plugins-base-libs-gstrtspdefs.other">
-<ANCHOR id="gst-plugins-base-libs-gstrtspdefs.object-hierarchy" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#gst-plugins-base-libs-gstrtspdefs.object-hierarchy">
 <ANCHOR id="gst-plugins-base-libs-gstrtspdefs.includes" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#gst-plugins-base-libs-gstrtspdefs.includes">
 <ANCHOR id="gst-plugins-base-libs-gstrtspdefs.description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#gst-plugins-base-libs-gstrtspdefs.description">
 <ANCHOR id="gst-plugins-base-libs-gstrtspdefs.functions_details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#gst-plugins-base-libs-gstrtspdefs.functions_details">
@@ -890,7 +872,6 @@
 <ANCHOR id="gst-plugins-base-libs-gstrtspdefs.see-also" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#gst-plugins-base-libs-gstrtspdefs.see-also">
 <ANCHOR id="gst-plugins-base-libs-gstrtspextension" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspextension.html">
 <ANCHOR id="gst-plugins-base-libs-gstrtspextension.other" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspextension.html#gst-plugins-base-libs-gstrtspextension.other">
-<ANCHOR id="gst-plugins-base-libs-gstrtspextension.object-hierarchy" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspextension.html#gst-plugins-base-libs-gstrtspextension.object-hierarchy">
 <ANCHOR id="gst-plugins-base-libs-gstrtspextension.includes" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspextension.html#gst-plugins-base-libs-gstrtspextension.includes">
 <ANCHOR id="gst-plugins-base-libs-gstrtspextension.description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspextension.html#gst-plugins-base-libs-gstrtspextension.description">
 <ANCHOR id="gst-plugins-base-libs-gstrtspextension.functions_details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspextension.html#gst-plugins-base-libs-gstrtspextension.functions_details">
@@ -900,7 +881,6 @@
 <ANCHOR id="gst-plugins-base-libs-gstrtspmessage" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspmessage.html">
 <ANCHOR id="gst-plugins-base-libs-gstrtspmessage.functions" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspmessage.html#gst-plugins-base-libs-gstrtspmessage.functions">
 <ANCHOR id="gst-plugins-base-libs-gstrtspmessage.other" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspmessage.html#gst-plugins-base-libs-gstrtspmessage.other">
-<ANCHOR id="gst-plugins-base-libs-gstrtspmessage.object-hierarchy" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspmessage.html#gst-plugins-base-libs-gstrtspmessage.object-hierarchy">
 <ANCHOR id="gst-plugins-base-libs-gstrtspmessage.includes" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspmessage.html#gst-plugins-base-libs-gstrtspmessage.includes">
 <ANCHOR id="gst-plugins-base-libs-gstrtspmessage.description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspmessage.html#gst-plugins-base-libs-gstrtspmessage.description">
 <ANCHOR id="gst-plugins-base-libs-gstrtspmessage.functions_details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspmessage.html#gst-plugins-base-libs-gstrtspmessage.functions_details">
@@ -922,6 +902,10 @@
 <ANCHOR id="gst-rtsp-message-take-header" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-take-header">
 <ANCHOR id="gst-rtsp-message-remove-header" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-remove-header">
 <ANCHOR id="gst-rtsp-message-get-header" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-get-header">
+<ANCHOR id="gst-rtsp-message-add-header-by-name" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-add-header-by-name">
+<ANCHOR id="gst-rtsp-message-take-header-by-name" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-take-header-by-name">
+<ANCHOR id="gst-rtsp-message-remove-header-by-name" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-remove-header-by-name">
+<ANCHOR id="gst-rtsp-message-get-header-by-name" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-get-header-by-name">
 <ANCHOR id="gst-rtsp-message-append-headers" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-append-headers">
 <ANCHOR id="gst-rtsp-message-set-body" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-set-body">
 <ANCHOR id="gst-rtsp-message-take-body" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-take-body">
@@ -935,7 +919,6 @@
 <ANCHOR id="gst-plugins-base-libs-gstrtsprange" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtsprange.html">
 <ANCHOR id="gst-plugins-base-libs-gstrtsprange.functions" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtsprange.html#gst-plugins-base-libs-gstrtsprange.functions">
 <ANCHOR id="gst-plugins-base-libs-gstrtsprange.other" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtsprange.html#gst-plugins-base-libs-gstrtsprange.other">
-<ANCHOR id="gst-plugins-base-libs-gstrtsprange.object-hierarchy" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtsprange.html#gst-plugins-base-libs-gstrtsprange.object-hierarchy">
 <ANCHOR id="gst-plugins-base-libs-gstrtsprange.includes" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtsprange.html#gst-plugins-base-libs-gstrtsprange.includes">
 <ANCHOR id="gst-plugins-base-libs-gstrtsprange.description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtsprange.html#gst-plugins-base-libs-gstrtsprange.description">
 <ANCHOR id="gst-plugins-base-libs-gstrtsprange.functions_details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtsprange.html#gst-plugins-base-libs-gstrtsprange.functions_details">
@@ -953,7 +936,6 @@
 <ANCHOR id="gst-plugins-base-libs-gstrtsptransport" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtsptransport.html">
 <ANCHOR id="gst-plugins-base-libs-gstrtsptransport.functions" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtsptransport.html#gst-plugins-base-libs-gstrtsptransport.functions">
 <ANCHOR id="gst-plugins-base-libs-gstrtsptransport.other" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtsptransport.html#gst-plugins-base-libs-gstrtsptransport.other">
-<ANCHOR id="gst-plugins-base-libs-gstrtsptransport.object-hierarchy" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtsptransport.html#gst-plugins-base-libs-gstrtsptransport.object-hierarchy">
 <ANCHOR id="gst-plugins-base-libs-gstrtsptransport.includes" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtsptransport.html#gst-plugins-base-libs-gstrtsptransport.includes">
 <ANCHOR id="gst-plugins-base-libs-gstrtsptransport.description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtsptransport.html#gst-plugins-base-libs-gstrtsptransport.description">
 <ANCHOR id="gst-plugins-base-libs-gstrtsptransport.functions_details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtsptransport.html#gst-plugins-base-libs-gstrtsptransport.functions_details">
@@ -973,7 +955,6 @@
 <ANCHOR id="gst-plugins-base-libs-gstrtspurl" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspurl.html">
 <ANCHOR id="gst-plugins-base-libs-gstrtspurl.functions" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspurl.html#gst-plugins-base-libs-gstrtspurl.functions">
 <ANCHOR id="gst-plugins-base-libs-gstrtspurl.other" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspurl.html#gst-plugins-base-libs-gstrtspurl.other">
-<ANCHOR id="gst-plugins-base-libs-gstrtspurl.object-hierarchy" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspurl.html#gst-plugins-base-libs-gstrtspurl.object-hierarchy">
 <ANCHOR id="gst-plugins-base-libs-gstrtspurl.includes" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspurl.html#gst-plugins-base-libs-gstrtspurl.includes">
 <ANCHOR id="gst-plugins-base-libs-gstrtspurl.description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspurl.html#gst-plugins-base-libs-gstrtspurl.description">
 <ANCHOR id="gst-plugins-base-libs-gstrtspurl.functions_details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspurl.html#gst-plugins-base-libs-gstrtspurl.functions_details">
@@ -990,7 +971,6 @@
 <ANCHOR id="gst-plugins-base-libs-gstsdpmessage" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html">
 <ANCHOR id="gst-plugins-base-libs-gstsdpmessage.functions" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-plugins-base-libs-gstsdpmessage.functions">
 <ANCHOR id="gst-plugins-base-libs-gstsdpmessage.other" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-plugins-base-libs-gstsdpmessage.other">
-<ANCHOR id="gst-plugins-base-libs-gstsdpmessage.object-hierarchy" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-plugins-base-libs-gstsdpmessage.object-hierarchy">
 <ANCHOR id="gst-plugins-base-libs-gstsdpmessage.includes" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-plugins-base-libs-gstsdpmessage.includes">
 <ANCHOR id="gst-plugins-base-libs-gstsdpmessage.description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-plugins-base-libs-gstsdpmessage.description">
 <ANCHOR id="gst-plugins-base-libs-gstsdpmessage.functions_details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-plugins-base-libs-gstsdpmessage.functions_details">
@@ -1131,14 +1111,12 @@
 <ANCHOR id="gst-plugins-base-libs-gstmikey" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmikey.html">
 <ANCHOR id="gst-plugins-base-libs-gstmikey.functions" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmikey.html#gst-plugins-base-libs-gstmikey.functions">
 <ANCHOR id="gst-plugins-base-libs-gstmikey.other" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmikey.html#gst-plugins-base-libs-gstmikey.other">
-<ANCHOR id="gst-plugins-base-libs-gstmikey.object-hierarchy" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmikey.html#gst-plugins-base-libs-gstmikey.object-hierarchy">
 <ANCHOR id="gst-plugins-base-libs-gstmikey.includes" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmikey.html#gst-plugins-base-libs-gstmikey.includes">
 <ANCHOR id="gst-plugins-base-libs-gstmikey.description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmikey.html#gst-plugins-base-libs-gstmikey.description">
 <ANCHOR id="gst-plugins-base-libs-gstmikey.functions_details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmikey.html#gst-plugins-base-libs-gstmikey.functions_details">
 <ANCHOR id="gst-mikey-message-new" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmikey.html#gst-mikey-message-new">
 <ANCHOR id="gst-mikey-message-new-from-bytes" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmikey.html#gst-mikey-message-new-from-bytes">
 <ANCHOR id="gst-mikey-message-new-from-data" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmikey.html#gst-mikey-message-new-from-data">
-<ANCHOR id="gst-mikey-message-free" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmikey.html#gst-mikey-message-free">
 <ANCHOR id="gst-mikey-message-to-bytes" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmikey.html#gst-mikey-message-to-bytes">
 <ANCHOR id="gst-mikey-message-set-info" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmikey.html#gst-mikey-message-set-info">
 <ANCHOR id="gst-mikey-message-get-n-cs" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmikey.html#gst-mikey-message-get-n-cs">
@@ -1154,11 +1132,8 @@
 <ANCHOR id="gst-mikey-message-remove-payload" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmikey.html#gst-mikey-message-remove-payload">
 <ANCHOR id="gst-mikey-message-replace-payload" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmikey.html#gst-mikey-message-replace-payload">
 <ANCHOR id="gst-mikey-message-add-payload" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmikey.html#gst-mikey-message-add-payload">
-<ANCHOR id="GstMIKEYPayloadClearFunc" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmikey.html#GstMIKEYPayloadClearFunc">
-<ANCHOR id="GstMIKEYPayloadCopyFunc" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmikey.html#GstMIKEYPayloadCopyFunc">
 <ANCHOR id="gst-mikey-payload-new" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmikey.html#gst-mikey-payload-new">
 <ANCHOR id="gst-mikey-payload-copy" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmikey.html#gst-mikey-payload-copy">
-<ANCHOR id="gst-mikey-payload-free" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmikey.html#gst-mikey-payload-free">
 <ANCHOR id="gst-mikey-payload-kemac-set" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmikey.html#gst-mikey-payload-kemac-set">
 <ANCHOR id="gst-mikey-payload-pke-set" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmikey.html#gst-mikey-payload-pke-set">
 <ANCHOR id="gst-mikey-message-add-pke" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmikey.html#gst-mikey-message-add-pke">
@@ -1197,7 +1172,6 @@
 <ANCHOR id="gst-plugins-base-libs-gsttag" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttag.html">
 <ANCHOR id="gst-plugins-base-libs-gsttag.functions" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttag.html#gst-plugins-base-libs-gsttag.functions">
 <ANCHOR id="gst-plugins-base-libs-gsttag.other" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttag.html#gst-plugins-base-libs-gsttag.other">
-<ANCHOR id="gst-plugins-base-libs-gsttag.object-hierarchy" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttag.html#gst-plugins-base-libs-gsttag.object-hierarchy">
 <ANCHOR id="gst-plugins-base-libs-gsttag.includes" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttag.html#gst-plugins-base-libs-gsttag.includes">
 <ANCHOR id="gst-plugins-base-libs-gsttag.description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttag.html#gst-plugins-base-libs-gsttag.description">
 <ANCHOR id="gst-plugins-base-libs-gsttag.functions_details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttag.html#gst-plugins-base-libs-gsttag.functions_details">
@@ -1242,7 +1216,6 @@
 <ANCHOR id="gst-plugins-base-libs-gsttag.see-also" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttag.html#gst-plugins-base-libs-gsttag.see-also">
 <ANCHOR id="gst-plugins-base-libs-gsttagvorbis" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttagvorbis.html">
 <ANCHOR id="gst-plugins-base-libs-gsttagvorbis.functions" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttagvorbis.html#gst-plugins-base-libs-gsttagvorbis.functions">
-<ANCHOR id="gst-plugins-base-libs-gsttagvorbis.object-hierarchy" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttagvorbis.html#gst-plugins-base-libs-gsttagvorbis.object-hierarchy">
 <ANCHOR id="gst-plugins-base-libs-gsttagvorbis.includes" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttagvorbis.html#gst-plugins-base-libs-gsttagvorbis.includes">
 <ANCHOR id="gst-plugins-base-libs-gsttagvorbis.description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttagvorbis.html#gst-plugins-base-libs-gsttagvorbis.description">
 <ANCHOR id="gst-plugins-base-libs-gsttagvorbis.functions_details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttagvorbis.html#gst-plugins-base-libs-gsttagvorbis.functions_details">
@@ -1257,7 +1230,6 @@
 <ANCHOR id="gst-plugins-base-libs-gsttagvorbis.see-also" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttagvorbis.html#gst-plugins-base-libs-gsttagvorbis.see-also">
 <ANCHOR id="gst-plugins-base-libs-gsttagid3" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttagid3.html">
 <ANCHOR id="gst-plugins-base-libs-gsttagid3.functions" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttagid3.html#gst-plugins-base-libs-gsttagid3.functions">
-<ANCHOR id="gst-plugins-base-libs-gsttagid3.object-hierarchy" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttagid3.html#gst-plugins-base-libs-gsttagid3.object-hierarchy">
 <ANCHOR id="gst-plugins-base-libs-gsttagid3.includes" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttagid3.html#gst-plugins-base-libs-gsttagid3.includes">
 <ANCHOR id="gst-plugins-base-libs-gsttagid3.description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttagid3.html#gst-plugins-base-libs-gsttagid3.description">
 <ANCHOR id="gst-plugins-base-libs-gsttagid3.functions_details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttagid3.html#gst-plugins-base-libs-gsttagid3.functions_details">
@@ -1274,7 +1246,6 @@
 <ANCHOR id="gst-plugins-base-libs-gsttagid3.see-also" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttagid3.html#gst-plugins-base-libs-gsttagid3.see-also">
 <ANCHOR id="gst-plugins-base-libs-gsttagexif" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttagexif.html">
 <ANCHOR id="gst-plugins-base-libs-gsttagexif.functions" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttagexif.html#gst-plugins-base-libs-gsttagexif.functions">
-<ANCHOR id="gst-plugins-base-libs-gsttagexif.object-hierarchy" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttagexif.html#gst-plugins-base-libs-gsttagexif.object-hierarchy">
 <ANCHOR id="gst-plugins-base-libs-gsttagexif.includes" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttagexif.html#gst-plugins-base-libs-gsttagexif.includes">
 <ANCHOR id="gst-plugins-base-libs-gsttagexif.description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttagexif.html#gst-plugins-base-libs-gsttagexif.description">
 <ANCHOR id="gst-plugins-base-libs-gsttagexif.functions_details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttagexif.html#gst-plugins-base-libs-gsttagexif.functions_details">
@@ -1286,7 +1257,6 @@
 <ANCHOR id="gst-plugins-base-libs-gsttagexif.see-also" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttagexif.html#gst-plugins-base-libs-gsttagexif.see-also">
 <ANCHOR id="gst-plugins-base-libs-gsttagxmp" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttagxmp.html">
 <ANCHOR id="gst-plugins-base-libs-gsttagxmp.functions" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttagxmp.html#gst-plugins-base-libs-gsttagxmp.functions">
-<ANCHOR id="gst-plugins-base-libs-gsttagxmp.object-hierarchy" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttagxmp.html#gst-plugins-base-libs-gsttagxmp.object-hierarchy">
 <ANCHOR id="gst-plugins-base-libs-gsttagxmp.includes" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttagxmp.html#gst-plugins-base-libs-gsttagxmp.includes">
 <ANCHOR id="gst-plugins-base-libs-gsttagxmp.description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttagxmp.html#gst-plugins-base-libs-gsttagxmp.description">
 <ANCHOR id="gst-plugins-base-libs-gsttagxmp.functions_details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttagxmp.html#gst-plugins-base-libs-gsttagxmp.functions_details">
@@ -1297,7 +1267,6 @@
 <ANCHOR id="gst-plugins-base-libs-gsttagxmp.see-also" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttagxmp.html#gst-plugins-base-libs-gsttagxmp.see-also">
 <ANCHOR id="gst-plugins-base-libs-gsttagxmpwriter" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttagxmpwriter.html">
 <ANCHOR id="gst-plugins-base-libs-gsttagxmpwriter.functions" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttagxmpwriter.html#gst-plugins-base-libs-gsttagxmpwriter.functions">
-<ANCHOR id="gst-plugins-base-libs-gsttagxmpwriter.object-hierarchy" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttagxmpwriter.html#gst-plugins-base-libs-gsttagxmpwriter.object-hierarchy">
 <ANCHOR id="gst-plugins-base-libs-gsttagxmpwriter.description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttagxmpwriter.html#gst-plugins-base-libs-gsttagxmpwriter.description">
 <ANCHOR id="gst-plugins-base-libs-gsttagxmpwriter.functions_details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttagxmpwriter.html#gst-plugins-base-libs-gsttagxmpwriter.functions_details">
 <ANCHOR id="gst-tag-xmp-writer-add-all-schemas" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttagxmpwriter.html#gst-tag-xmp-writer-add-all-schemas">
@@ -1309,7 +1278,6 @@
 <ANCHOR id="gst-plugins-base-libs-gsttagxmpwriter.other_details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttagxmpwriter.html#gst-plugins-base-libs-gsttagxmpwriter.other_details">
 <ANCHOR id="gst-plugins-base-libs-gsttagdemux" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttagdemux.html">
 <ANCHOR id="gst-plugins-base-libs-gsttagdemux.other" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttagdemux.html#gst-plugins-base-libs-gsttagdemux.other">
-<ANCHOR id="gst-plugins-base-libs-gsttagdemux.object-hierarchy" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttagdemux.html#gst-plugins-base-libs-gsttagdemux.object-hierarchy">
 <ANCHOR id="gst-plugins-base-libs-gsttagdemux.includes" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttagdemux.html#gst-plugins-base-libs-gsttagdemux.includes">
 <ANCHOR id="gst-plugins-base-libs-gsttagdemux.description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttagdemux.html#gst-plugins-base-libs-gsttagdemux.description">
 <ANCHOR id="gst-plugins-base-libs-gsttagdemux.functions_details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttagdemux.html#gst-plugins-base-libs-gsttagdemux.functions_details">
@@ -1320,7 +1288,6 @@
 <ANCHOR id="gst-plugins-base-libs-gsttagdemux.see-also" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttagdemux.html#gst-plugins-base-libs-gsttagdemux.see-also">
 <ANCHOR id="gst-plugins-base-libs-gsttagmux" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttagmux.html">
 <ANCHOR id="gst-plugins-base-libs-gsttagmux.other" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttagmux.html#gst-plugins-base-libs-gsttagmux.other">
-<ANCHOR id="gst-plugins-base-libs-gsttagmux.object-hierarchy" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttagmux.html#gst-plugins-base-libs-gsttagmux.object-hierarchy">
 <ANCHOR id="gst-plugins-base-libs-gsttagmux.includes" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttagmux.html#gst-plugins-base-libs-gsttagmux.includes">
 <ANCHOR id="gst-plugins-base-libs-gsttagmux.description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttagmux.html#gst-plugins-base-libs-gsttagmux.description">
 <ANCHOR id="gst-plugins-base-libs-gsttagmux.functions_details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttagmux.html#gst-plugins-base-libs-gsttagmux.functions_details">
@@ -1330,7 +1297,6 @@
 <ANCHOR id="gst-plugins-base-libs-gsttagmux.see-also" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttagmux.html#gst-plugins-base-libs-gsttagmux.see-also">
 <ANCHOR id="gst-plugins-base-libs-gsttaglanguagecodes" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttaglanguagecodes.html">
 <ANCHOR id="gst-plugins-base-libs-gsttaglanguagecodes.functions" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttaglanguagecodes.html#gst-plugins-base-libs-gsttaglanguagecodes.functions">
-<ANCHOR id="gst-plugins-base-libs-gsttaglanguagecodes.object-hierarchy" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttaglanguagecodes.html#gst-plugins-base-libs-gsttaglanguagecodes.object-hierarchy">
 <ANCHOR id="gst-plugins-base-libs-gsttaglanguagecodes.includes" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttaglanguagecodes.html#gst-plugins-base-libs-gsttaglanguagecodes.includes">
 <ANCHOR id="gst-plugins-base-libs-gsttaglanguagecodes.description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttaglanguagecodes.html#gst-plugins-base-libs-gsttaglanguagecodes.description">
 <ANCHOR id="gst-plugins-base-libs-gsttaglanguagecodes.functions_details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttaglanguagecodes.html#gst-plugins-base-libs-gsttaglanguagecodes.functions_details">
@@ -1346,7 +1312,6 @@
 <ANCHOR id="gst-plugins-base-libs-gsttaglicenses" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttaglicenses.html">
 <ANCHOR id="gst-plugins-base-libs-gsttaglicenses.functions" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttaglicenses.html#gst-plugins-base-libs-gsttaglicenses.functions">
 <ANCHOR id="gst-plugins-base-libs-gsttaglicenses.other" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttaglicenses.html#gst-plugins-base-libs-gsttaglicenses.other">
-<ANCHOR id="gst-plugins-base-libs-gsttaglicenses.object-hierarchy" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttaglicenses.html#gst-plugins-base-libs-gsttaglicenses.object-hierarchy">
 <ANCHOR id="gst-plugins-base-libs-gsttaglicenses.includes" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttaglicenses.html#gst-plugins-base-libs-gsttaglicenses.includes">
 <ANCHOR id="gst-plugins-base-libs-gsttaglicenses.description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttaglicenses.html#gst-plugins-base-libs-gsttaglicenses.description">
 <ANCHOR id="gst-plugins-base-libs-gsttaglicenses.functions_details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttaglicenses.html#gst-plugins-base-libs-gsttaglicenses.functions_details">
@@ -1362,7 +1327,6 @@
 <ANCHOR id="gst-plugins-base-libs-gsttaglicenses.see-also" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttaglicenses.html#gst-plugins-base-libs-gsttaglicenses.see-also">
 <ANCHOR id="gst-plugins-base-libs-gstpbutils" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstpbutils.html">
 <ANCHOR id="gst-plugins-base-libs-gstpbutils.functions" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstpbutils.html#gst-plugins-base-libs-gstpbutils.functions">
-<ANCHOR id="gst-plugins-base-libs-gstpbutils.object-hierarchy" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstpbutils.html#gst-plugins-base-libs-gstpbutils.object-hierarchy">
 <ANCHOR id="gst-plugins-base-libs-gstpbutils.includes" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstpbutils.html#gst-plugins-base-libs-gstpbutils.includes">
 <ANCHOR id="gst-plugins-base-libs-gstpbutils.description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstpbutils.html#gst-plugins-base-libs-gstpbutils.description">
 <ANCHOR id="gst-plugins-base-libs-gstpbutils.functions_details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstpbutils.html#gst-plugins-base-libs-gstpbutils.functions_details">
@@ -1370,7 +1334,6 @@
 <ANCHOR id="gst-plugins-base-libs-gstpbutils.other_details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstpbutils.html#gst-plugins-base-libs-gstpbutils.other_details">
 <ANCHOR id="gst-plugins-base-libs-gstpluginsbaseversion" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstpluginsbaseversion.html">
 <ANCHOR id="gst-plugins-base-libs-gstpluginsbaseversion.functions" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstpluginsbaseversion.html#gst-plugins-base-libs-gstpluginsbaseversion.functions">
-<ANCHOR id="gst-plugins-base-libs-gstpluginsbaseversion.object-hierarchy" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstpluginsbaseversion.html#gst-plugins-base-libs-gstpluginsbaseversion.object-hierarchy">
 <ANCHOR id="gst-plugins-base-libs-gstpluginsbaseversion.includes" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstpluginsbaseversion.html#gst-plugins-base-libs-gstpluginsbaseversion.includes">
 <ANCHOR id="gst-plugins-base-libs-gstpluginsbaseversion.description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstpluginsbaseversion.html#gst-plugins-base-libs-gstpluginsbaseversion.description">
 <ANCHOR id="gst-plugins-base-libs-gstpluginsbaseversion.functions_details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstpluginsbaseversion.html#gst-plugins-base-libs-gstpluginsbaseversion.functions_details">
@@ -1384,7 +1347,6 @@
 <ANCHOR id="gst-plugins-base-libs-gstpluginsbaseversion.other_details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstpluginsbaseversion.html#gst-plugins-base-libs-gstpluginsbaseversion.other_details">
 <ANCHOR id="gst-plugins-base-libs-gstpbutilscodecutils" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstpbutilscodecutils.html">
 <ANCHOR id="gst-plugins-base-libs-gstpbutilscodecutils.functions" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstpbutilscodecutils.html#gst-plugins-base-libs-gstpbutilscodecutils.functions">
-<ANCHOR id="gst-plugins-base-libs-gstpbutilscodecutils.object-hierarchy" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstpbutilscodecutils.html#gst-plugins-base-libs-gstpbutilscodecutils.object-hierarchy">
 <ANCHOR id="gst-plugins-base-libs-gstpbutilscodecutils.includes" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstpbutilscodecutils.html#gst-plugins-base-libs-gstpbutilscodecutils.includes">
 <ANCHOR id="gst-plugins-base-libs-gstpbutilscodecutils.description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstpbutilscodecutils.html#gst-plugins-base-libs-gstpbutilscodecutils.description">
 <ANCHOR id="gst-plugins-base-libs-gstpbutilscodecutils.functions_details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstpbutilscodecutils.html#gst-plugins-base-libs-gstpbutilscodecutils.functions_details">
@@ -1408,7 +1370,6 @@
 <ANCHOR id="gst-plugins-base-libs-gstpbutilscodecutils.other_details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstpbutilscodecutils.html#gst-plugins-base-libs-gstpbutilscodecutils.other_details">
 <ANCHOR id="gst-plugins-base-libs-gstpbutilsdescriptions" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstpbutilsdescriptions.html">
 <ANCHOR id="gst-plugins-base-libs-gstpbutilsdescriptions.functions" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-plugins-base-libs-gstpbutilsdescriptions.functions">
-<ANCHOR id="gst-plugins-base-libs-gstpbutilsdescriptions.object-hierarchy" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-plugins-base-libs-gstpbutilsdescriptions.object-hierarchy">
 <ANCHOR id="gst-plugins-base-libs-gstpbutilsdescriptions.includes" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-plugins-base-libs-gstpbutilsdescriptions.includes">
 <ANCHOR id="gst-plugins-base-libs-gstpbutilsdescriptions.description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-plugins-base-libs-gstpbutilsdescriptions.description">
 <ANCHOR id="gst-plugins-base-libs-gstpbutilsdescriptions.functions_details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-plugins-base-libs-gstpbutilsdescriptions.functions_details">
@@ -1422,7 +1383,6 @@
 <ANCHOR id="gst-plugins-base-libs-gstpbutilsdescriptions.other_details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-plugins-base-libs-gstpbutilsdescriptions.other_details">
 <ANCHOR id="gst-plugins-base-libs-gstpbutilsmissingplugins" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstpbutilsmissingplugins.html">
 <ANCHOR id="gst-plugins-base-libs-gstpbutilsmissingplugins.functions" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-plugins-base-libs-gstpbutilsmissingplugins.functions">
-<ANCHOR id="gst-plugins-base-libs-gstpbutilsmissingplugins.object-hierarchy" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-plugins-base-libs-gstpbutilsmissingplugins.object-hierarchy">
 <ANCHOR id="gst-plugins-base-libs-gstpbutilsmissingplugins.includes" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-plugins-base-libs-gstpbutilsmissingplugins.includes">
 <ANCHOR id="gst-plugins-base-libs-gstpbutilsmissingplugins.description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-plugins-base-libs-gstpbutilsmissingplugins.description">
 <ANCHOR id="gst-plugins-base-libs-gstpbutilsmissingplugins.functions_details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-plugins-base-libs-gstpbutilsmissingplugins.functions_details">
@@ -1443,7 +1403,6 @@
 <ANCHOR id="gst-plugins-base-libs-gstpbutilsinstallplugins" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstpbutilsinstallplugins.html">
 <ANCHOR id="gst-plugins-base-libs-gstpbutilsinstallplugins.functions" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-plugins-base-libs-gstpbutilsinstallplugins.functions">
 <ANCHOR id="gst-plugins-base-libs-gstpbutilsinstallplugins.other" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-plugins-base-libs-gstpbutilsinstallplugins.other">
-<ANCHOR id="gst-plugins-base-libs-gstpbutilsinstallplugins.object-hierarchy" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-plugins-base-libs-gstpbutilsinstallplugins.object-hierarchy">
 <ANCHOR id="gst-plugins-base-libs-gstpbutilsinstallplugins.includes" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-plugins-base-libs-gstpbutilsinstallplugins.includes">
 <ANCHOR id="gst-plugins-base-libs-gstpbutilsinstallplugins.description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-plugins-base-libs-gstpbutilsinstallplugins.description">
 <ANCHOR id="gst-plugins-base-libs-gstpbutilsinstallplugins.functions_details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-plugins-base-libs-gstpbutilsinstallplugins.functions_details">
@@ -1456,6 +1415,9 @@
 <ANCHOR id="gst-install-plugins-context-new" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-context-new">
 <ANCHOR id="gst-install-plugins-context-free" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-context-free">
 <ANCHOR id="gst-install-plugins-context-set-xid" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-context-set-xid">
+<ANCHOR id="gst-install-plugins-context-set-confirm-search" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-context-set-confirm-search">
+<ANCHOR id="gst-install-plugins-context-set-desktop-id" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-context-set-desktop-id">
+<ANCHOR id="gst-install-plugins-context-set-startup-notification-id" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-context-set-startup-notification-id">
 <ANCHOR id="gst-plugins-base-libs-gstpbutilsinstallplugins.other_details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-plugins-base-libs-gstpbutilsinstallplugins.other_details">
 <ANCHOR id="GstInstallPluginsReturn" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsReturn">
 <ANCHOR id="GstInstallPluginsContext" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsContext">
@@ -1613,11 +1575,11 @@
 <ANCHOR id="gst-plugins-base-libs-gstvideo" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html">
 <ANCHOR id="gst-plugins-base-libs-gstvideo.functions" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#gst-plugins-base-libs-gstvideo.functions">
 <ANCHOR id="gst-plugins-base-libs-gstvideo.other" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#gst-plugins-base-libs-gstvideo.other">
-<ANCHOR id="gst-plugins-base-libs-gstvideo.object-hierarchy" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#gst-plugins-base-libs-gstvideo.object-hierarchy">
 <ANCHOR id="gst-plugins-base-libs-gstvideo.includes" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#gst-plugins-base-libs-gstvideo.includes">
 <ANCHOR id="gst-plugins-base-libs-gstvideo.description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#gst-plugins-base-libs-gstvideo.description">
 <ANCHOR id="gst-plugins-base-libs-gstvideo.functions_details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#gst-plugins-base-libs-gstvideo.functions_details">
 <ANCHOR id="gst-video-calculate-display-ratio" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#gst-video-calculate-display-ratio">
+<ANCHOR id="gst-video-guess-framerate" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#gst-video-guess-framerate">
 <ANCHOR id="GstVideoConvertSampleCallback" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GstVideoConvertSampleCallback">
 <ANCHOR id="gst-video-convert-sample" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#gst-video-convert-sample">
 <ANCHOR id="gst-video-convert-sample-async" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#gst-video-convert-sample-async">
@@ -1629,8 +1591,6 @@
 <ANCHOR id="gst-video-event-new-upstream-force-key-unit" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#gst-video-event-new-upstream-force-key-unit">
 <ANCHOR id="gst-video-event-parse-upstream-force-key-unit" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#gst-video-event-parse-upstream-force-key-unit">
 <ANCHOR id="gst-video-event-is-force-key-unit" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#gst-video-event-is-force-key-unit">
-<ANCHOR id="gst-video-chroma-from-string" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#gst-video-chroma-from-string">
-<ANCHOR id="gst-video-chroma-to-string" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#gst-video-chroma-to-string">
 <ANCHOR id="GstVideoFormatUnpack" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GstVideoFormatUnpack">
 <ANCHOR id="GstVideoFormatPack" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GstVideoFormatPack">
 <ANCHOR id="GST-VIDEO-FORMAT-INFO-FORMAT:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-FORMAT:CAPS">
@@ -1669,10 +1629,13 @@
 <ANCHOR id="gst-video-format-to-string" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#gst-video-format-to-string">
 <ANCHOR id="gst-video-format-get-info" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#gst-video-format-get-info">
 <ANCHOR id="GST-VIDEO-CAPS-MAKE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CAPS-MAKE:CAPS">
+<ANCHOR id="gst-video-color-range-offsets" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#gst-video-color-range-offsets">
+<ANCHOR id="gst-video-color-matrix-get-Kr-Kb" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#gst-video-color-matrix-get-Kr-Kb">
+<ANCHOR id="gst-video-color-transfer-decode" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#gst-video-color-transfer-decode">
+<ANCHOR id="gst-video-color-transfer-encode" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#gst-video-color-transfer-encode">
 <ANCHOR id="gst-video-colorimetry-matches" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#gst-video-colorimetry-matches">
 <ANCHOR id="gst-video-colorimetry-from-string" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#gst-video-colorimetry-from-string">
 <ANCHOR id="gst-video-colorimetry-to-string" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#gst-video-colorimetry-to-string">
-<ANCHOR id="gst-video-color-range-offsets" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#gst-video-color-range-offsets">
 <ANCHOR id="GST-VIDEO-INFO-FORMAT:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-FORMAT:CAPS">
 <ANCHOR id="GST-VIDEO-INFO-NAME:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-NAME:CAPS">
 <ANCHOR id="GST-VIDEO-INFO-IS-YUV:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-IS-YUV:CAPS">
@@ -1749,6 +1712,13 @@
 <ANCHOR id="GST-VIDEO-TILE-MAKE-STRIDE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-TILE-MAKE-STRIDE:CAPS">
 <ANCHOR id="GST-VIDEO-TILE-X-TILES:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-TILE-X-TILES:CAPS">
 <ANCHOR id="GST-VIDEO-TILE-Y-TILES:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-TILE-Y-TILES:CAPS">
+<ANCHOR id="gst-video-blend" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#gst-video-blend">
+<ANCHOR id="gst-video-blend-scale-linear-RGBA" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#gst-video-blend-scale-linear-RGBA">
+<ANCHOR id="gst-video-converter-new" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#gst-video-converter-new">
+<ANCHOR id="gst-video-converter-free" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#gst-video-converter-free">
+<ANCHOR id="gst-video-converter-get-config" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#gst-video-converter-get-config">
+<ANCHOR id="gst-video-converter-set-config" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#gst-video-converter-set-config">
+<ANCHOR id="gst-video-converter-frame" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#gst-video-converter-frame">
 <ANCHOR id="gst-plugins-base-libs-gstvideo.other_details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#gst-plugins-base-libs-gstvideo.other_details">
 <ANCHOR id="GstVideoAlignment" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GstVideoAlignment">
 <ANCHOR id="GST-META-TAG-VIDEO-STR:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-META-TAG-VIDEO-STR:CAPS">
@@ -1759,7 +1729,6 @@
 <ANCHOR id="GST-VIDEO-MAX-PLANES:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-MAX-PLANES:CAPS">
 <ANCHOR id="GST-VIDEO-MAX-COMPONENTS:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-MAX-COMPONENTS:CAPS">
 <ANCHOR id="GstVideoFormatInfo" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GstVideoFormatInfo">
-<ANCHOR id="GstVideoChromaSite" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GstVideoChromaSite">
 <ANCHOR id="GstVideoFormatFlags" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GstVideoFormatFlags">
 <ANCHOR id="GstVideoPackFlags" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GstVideoPackFlags">
 <ANCHOR id="GST-VIDEO-SIZE-RANGE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-SIZE-RANGE:CAPS">
@@ -1767,8 +1736,8 @@
 <ANCHOR id="GST-VIDEO-FORMATS-ALL:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMATS-ALL:CAPS">
 <ANCHOR id="GstVideoColorRange" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GstVideoColorRange">
 <ANCHOR id="GstVideoColorMatrix" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GstVideoColorMatrix">
-<ANCHOR id="GstVideoTransferFunction" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GstVideoTransferFunction">
 <ANCHOR id="GstVideoColorPrimaries" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GstVideoColorPrimaries">
+<ANCHOR id="GstVideoTransferFunction" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GstVideoTransferFunction">
 <ANCHOR id="GstVideoColorimetry" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GstVideoColorimetry">
 <ANCHOR id="GstVideoInfo" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GstVideoInfo">
 <ANCHOR id="GstVideoInterlaceMode" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GstVideoInterlaceMode">
@@ -1778,10 +1747,10 @@
 <ANCHOR id="GstVideoBufferFlags" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GstVideoBufferFlags">
 <ANCHOR id="GstVideoTileType" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GstVideoTileType">
 <ANCHOR id="GstVideoTileMode" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GstVideoTileMode">
+<ANCHOR id="GstVideoConverter" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GstVideoConverter">
 <ANCHOR id="gst-plugins-base-libs-gstvideometa" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideometa.html">
 <ANCHOR id="gst-plugins-base-libs-gstvideometa.functions" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideometa.html#gst-plugins-base-libs-gstvideometa.functions">
 <ANCHOR id="gst-plugins-base-libs-gstvideometa.other" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideometa.html#gst-plugins-base-libs-gstvideometa.other">
-<ANCHOR id="gst-plugins-base-libs-gstvideometa.object-hierarchy" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideometa.html#gst-plugins-base-libs-gstvideometa.object-hierarchy">
 <ANCHOR id="gst-plugins-base-libs-gstvideometa.includes" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideometa.html#gst-plugins-base-libs-gstvideometa.includes">
 <ANCHOR id="gst-plugins-base-libs-gstvideometa.description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideometa.html#gst-plugins-base-libs-gstvideometa.description">
 <ANCHOR id="gst-plugins-base-libs-gstvideometa.functions_details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideometa.html#gst-plugins-base-libs-gstvideometa.functions_details">
@@ -1812,7 +1781,6 @@
 <ANCHOR id="gst-plugins-base-libs-gstvideooverlaycomposition" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideooverlaycomposition.html">
 <ANCHOR id="gst-plugins-base-libs-gstvideooverlaycomposition.functions" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-plugins-base-libs-gstvideooverlaycomposition.functions">
 <ANCHOR id="gst-plugins-base-libs-gstvideooverlaycomposition.other" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-plugins-base-libs-gstvideooverlaycomposition.other">
-<ANCHOR id="gst-plugins-base-libs-gstvideooverlaycomposition.object-hierarchy" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-plugins-base-libs-gstvideooverlaycomposition.object-hierarchy">
 <ANCHOR id="gst-plugins-base-libs-gstvideooverlaycomposition.includes" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-plugins-base-libs-gstvideooverlaycomposition.includes">
 <ANCHOR id="gst-plugins-base-libs-gstvideooverlaycomposition.description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-plugins-base-libs-gstvideooverlaycomposition.description">
 <ANCHOR id="gst-plugins-base-libs-gstvideooverlaycomposition.functions_details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-plugins-base-libs-gstvideooverlaycomposition.functions_details">
@@ -1862,6 +1830,70 @@
 <ANCHOR id="gst-plugins-base-libs-gstvideofilter.other_details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideofilter.html#gst-plugins-base-libs-gstvideofilter.other_details">
 <ANCHOR id="GstVideoFilter-struct" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideofilter.html#GstVideoFilter-struct">
 <ANCHOR id="GstVideoFilterClass" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideofilter.html#GstVideoFilterClass">
+<ANCHOR id="gst-plugins-base-libs-GstVideoDither" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoDither.html">
+<ANCHOR id="gst-plugins-base-libs-GstVideoDither.functions" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoDither.html#gst-plugins-base-libs-GstVideoDither.functions">
+<ANCHOR id="gst-plugins-base-libs-GstVideoDither.other" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoDither.html#gst-plugins-base-libs-GstVideoDither.other">
+<ANCHOR id="gst-plugins-base-libs-GstVideoDither.includes" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoDither.html#gst-plugins-base-libs-GstVideoDither.includes">
+<ANCHOR id="gst-plugins-base-libs-GstVideoDither.description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoDither.html#gst-plugins-base-libs-GstVideoDither.description">
+<ANCHOR id="gst-plugins-base-libs-GstVideoDither.functions_details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoDither.html#gst-plugins-base-libs-GstVideoDither.functions_details">
+<ANCHOR id="gst-video-dither-free" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoDither.html#gst-video-dither-free">
+<ANCHOR id="gst-video-dither-line" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoDither.html#gst-video-dither-line">
+<ANCHOR id="gst-video-dither-new" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoDither.html#gst-video-dither-new">
+<ANCHOR id="gst-plugins-base-libs-GstVideoDither.other_details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoDither.html#gst-plugins-base-libs-GstVideoDither.other_details">
+<ANCHOR id="GstVideoDither" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoDither.html#GstVideoDither">
+<ANCHOR id="GstVideoDitherFlags" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoDither.html#GstVideoDitherFlags">
+<ANCHOR id="GstVideoDitherMethod" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoDither.html#GstVideoDitherMethod">
+<ANCHOR id="gst-plugins-base-libs-GstVideoChroma" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoChroma.html">
+<ANCHOR id="gst-plugins-base-libs-GstVideoChroma.functions" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoChroma.html#gst-plugins-base-libs-GstVideoChroma.functions">
+<ANCHOR id="gst-plugins-base-libs-GstVideoChroma.other" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoChroma.html#gst-plugins-base-libs-GstVideoChroma.other">
+<ANCHOR id="gst-plugins-base-libs-GstVideoChroma.includes" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoChroma.html#gst-plugins-base-libs-GstVideoChroma.includes">
+<ANCHOR id="gst-plugins-base-libs-GstVideoChroma.description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoChroma.html#gst-plugins-base-libs-GstVideoChroma.description">
+<ANCHOR id="gst-plugins-base-libs-GstVideoChroma.functions_details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoChroma.html#gst-plugins-base-libs-GstVideoChroma.functions_details">
+<ANCHOR id="gst-video-chroma-from-string" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoChroma.html#gst-video-chroma-from-string">
+<ANCHOR id="gst-video-chroma-to-string" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoChroma.html#gst-video-chroma-to-string">
+<ANCHOR id="gst-video-chroma-resample" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoChroma.html#gst-video-chroma-resample">
+<ANCHOR id="gst-video-chroma-resample-free" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoChroma.html#gst-video-chroma-resample-free">
+<ANCHOR id="gst-video-chroma-resample-get-info" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoChroma.html#gst-video-chroma-resample-get-info">
+<ANCHOR id="gst-video-chroma-resample-new" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoChroma.html#gst-video-chroma-resample-new">
+<ANCHOR id="gst-plugins-base-libs-GstVideoChroma.other_details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoChroma.html#gst-plugins-base-libs-GstVideoChroma.other_details">
+<ANCHOR id="GstVideoChromaSite" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoChroma.html#GstVideoChromaSite">
+<ANCHOR id="GstVideoChromaFlags" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoChroma.html#GstVideoChromaFlags">
+<ANCHOR id="GstVideoChromaMethod" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoChroma.html#GstVideoChromaMethod">
+<ANCHOR id="GstVideoChromaResample" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoChroma.html#GstVideoChromaResample">
+<ANCHOR id="gst-plugins-base-libs-GstVideoResampler" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoResampler.html">
+<ANCHOR id="gst-plugins-base-libs-GstVideoResampler.functions" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoResampler.html#gst-plugins-base-libs-GstVideoResampler.functions">
+<ANCHOR id="gst-plugins-base-libs-GstVideoResampler.other" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoResampler.html#gst-plugins-base-libs-GstVideoResampler.other">
+<ANCHOR id="gst-plugins-base-libs-GstVideoResampler.includes" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoResampler.html#gst-plugins-base-libs-GstVideoResampler.includes">
+<ANCHOR id="gst-plugins-base-libs-GstVideoResampler.description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoResampler.html#gst-plugins-base-libs-GstVideoResampler.description">
+<ANCHOR id="gst-plugins-base-libs-GstVideoResampler.functions_details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoResampler.html#gst-plugins-base-libs-GstVideoResampler.functions_details">
+<ANCHOR id="gst-video-resampler-clear" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoResampler.html#gst-video-resampler-clear">
+<ANCHOR id="gst-video-resampler-init" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoResampler.html#gst-video-resampler-init">
+<ANCHOR id="gst-plugins-base-libs-GstVideoResampler.other_details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoResampler.html#gst-plugins-base-libs-GstVideoResampler.other_details">
+<ANCHOR id="GstVideoResampler" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoResampler.html#GstVideoResampler">
+<ANCHOR id="GstVideoResamplerFlags" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoResampler.html#GstVideoResamplerFlags">
+<ANCHOR id="GstVideoResamplerMethod" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoResampler.html#GstVideoResamplerMethod">
+<ANCHOR id="GST-VIDEO-RESAMPLER-OPT-CUBIC-B:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoResampler.html#GST-VIDEO-RESAMPLER-OPT-CUBIC-B:CAPS">
+<ANCHOR id="GST-VIDEO-RESAMPLER-OPT-CUBIC-C:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoResampler.html#GST-VIDEO-RESAMPLER-OPT-CUBIC-C:CAPS">
+<ANCHOR id="GST-VIDEO-RESAMPLER-OPT-ENVELOPE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoResampler.html#GST-VIDEO-RESAMPLER-OPT-ENVELOPE:CAPS">
+<ANCHOR id="GST-VIDEO-RESAMPLER-OPT-MAX-TAPS:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoResampler.html#GST-VIDEO-RESAMPLER-OPT-MAX-TAPS:CAPS">
+<ANCHOR id="GST-VIDEO-RESAMPLER-OPT-SHARPEN:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoResampler.html#GST-VIDEO-RESAMPLER-OPT-SHARPEN:CAPS">
+<ANCHOR id="GST-VIDEO-RESAMPLER-OPT-SHARPNESS:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoResampler.html#GST-VIDEO-RESAMPLER-OPT-SHARPNESS:CAPS">
+<ANCHOR id="gst-plugins-base-libs-GstVideoScaler" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoScaler.html">
+<ANCHOR id="gst-plugins-base-libs-GstVideoScaler.functions" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoScaler.html#gst-plugins-base-libs-GstVideoScaler.functions">
+<ANCHOR id="gst-plugins-base-libs-GstVideoScaler.other" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoScaler.html#gst-plugins-base-libs-GstVideoScaler.other">
+<ANCHOR id="gst-plugins-base-libs-GstVideoScaler.includes" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoScaler.html#gst-plugins-base-libs-GstVideoScaler.includes">
+<ANCHOR id="gst-plugins-base-libs-GstVideoScaler.description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoScaler.html#gst-plugins-base-libs-GstVideoScaler.description">
+<ANCHOR id="gst-plugins-base-libs-GstVideoScaler.functions_details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoScaler.html#gst-plugins-base-libs-GstVideoScaler.functions_details">
+<ANCHOR id="gst-video-scaler-2d" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoScaler.html#gst-video-scaler-2d">
+<ANCHOR id="gst-video-scaler-combine-packed-YUV" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoScaler.html#gst-video-scaler-combine-packed-YUV">
+<ANCHOR id="gst-video-scaler-free" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoScaler.html#gst-video-scaler-free">
+<ANCHOR id="gst-video-scaler-get-coeff" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoScaler.html#gst-video-scaler-get-coeff">
+<ANCHOR id="gst-video-scaler-horizontal" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoScaler.html#gst-video-scaler-horizontal">
+<ANCHOR id="gst-video-scaler-new" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoScaler.html#gst-video-scaler-new">
+<ANCHOR id="gst-video-scaler-vertical" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoScaler.html#gst-video-scaler-vertical">
+<ANCHOR id="gst-plugins-base-libs-GstVideoScaler.other_details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoScaler.html#gst-plugins-base-libs-GstVideoScaler.other_details">
+<ANCHOR id="GstVideoScaler" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoScaler.html#GstVideoScaler">
+<ANCHOR id="GstVideoScalerFlags" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoScaler.html#GstVideoScalerFlags">
 <ANCHOR id="gst-plugins-base-libs-gstvideosink" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideosink.html">
 <ANCHOR id="gst-plugins-base-libs-gstvideosink.functions" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideosink.html#gst-plugins-base-libs-gstvideosink.functions">
 <ANCHOR id="gst-plugins-base-libs-gstvideosink.properties" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideosink.html#gst-plugins-base-libs-gstvideosink.properties">
@@ -1954,7 +1986,6 @@
 <ANCHOR id="gst-plugins-base-libs-GstVideoDecoder" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoDecoder.html">
 <ANCHOR id="gst-plugins-base-libs-GstVideoDecoder.functions" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoDecoder.html#gst-plugins-base-libs-GstVideoDecoder.functions">
 <ANCHOR id="gst-plugins-base-libs-GstVideoDecoder.other" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoDecoder.html#gst-plugins-base-libs-GstVideoDecoder.other">
-<ANCHOR id="gst-plugins-base-libs-GstVideoDecoder.object-hierarchy" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoDecoder.html#gst-plugins-base-libs-GstVideoDecoder.object-hierarchy">
 <ANCHOR id="gst-plugins-base-libs-GstVideoDecoder.description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoDecoder.html#gst-plugins-base-libs-GstVideoDecoder.description">
 <ANCHOR id="gst-plugins-base-libs-GstVideoDecoder.functions_details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoDecoder.html#gst-plugins-base-libs-GstVideoDecoder.functions_details">
 <ANCHOR id="GST-VIDEO-DECODER-ERROR:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoDecoder.html#GST-VIDEO-DECODER-ERROR:CAPS">
@@ -2003,7 +2034,6 @@
 <ANCHOR id="gst-plugins-base-libs-GstVideoEncoder" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoEncoder.html">
 <ANCHOR id="gst-plugins-base-libs-GstVideoEncoder.functions" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoEncoder.html#gst-plugins-base-libs-GstVideoEncoder.functions">
 <ANCHOR id="gst-plugins-base-libs-GstVideoEncoder.other" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoEncoder.html#gst-plugins-base-libs-GstVideoEncoder.other">
-<ANCHOR id="gst-plugins-base-libs-GstVideoEncoder.object-hierarchy" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoEncoder.html#gst-plugins-base-libs-GstVideoEncoder.object-hierarchy">
 <ANCHOR id="gst-plugins-base-libs-GstVideoEncoder.description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoEncoder.html#gst-plugins-base-libs-GstVideoEncoder.description">
 <ANCHOR id="gst-plugins-base-libs-GstVideoEncoder.functions_details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoEncoder.html#gst-plugins-base-libs-GstVideoEncoder.functions_details">
 <ANCHOR id="GST-VIDEO-ENCODER-CAST:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoEncoder.html#GST-VIDEO-ENCODER-CAST:CAPS">
@@ -2038,7 +2068,6 @@
 <ANCHOR id="gst-plugins-base-libs-GstVideoPool" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoPool.html">
 <ANCHOR id="gst-plugins-base-libs-GstVideoPool.functions" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoPool.html#gst-plugins-base-libs-GstVideoPool.functions">
 <ANCHOR id="gst-plugins-base-libs-GstVideoPool.other" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoPool.html#gst-plugins-base-libs-GstVideoPool.other">
-<ANCHOR id="gst-plugins-base-libs-GstVideoPool.object-hierarchy" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoPool.html#gst-plugins-base-libs-GstVideoPool.object-hierarchy">
 <ANCHOR id="gst-plugins-base-libs-GstVideoPool.includes" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoPool.html#gst-plugins-base-libs-GstVideoPool.includes">
 <ANCHOR id="gst-plugins-base-libs-GstVideoPool.description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoPool.html#gst-plugins-base-libs-GstVideoPool.description">
 <ANCHOR id="gst-plugins-base-libs-GstVideoPool.functions_details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoPool.html#gst-plugins-base-libs-GstVideoPool.functions_details">
@@ -2054,7 +2083,6 @@
 <ANCHOR id="gst-plugins-base-libs-gstvideoutils" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideoutils.html">
 <ANCHOR id="gst-plugins-base-libs-gstvideoutils.functions" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideoutils.html#gst-plugins-base-libs-gstvideoutils.functions">
 <ANCHOR id="gst-plugins-base-libs-gstvideoutils.other" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideoutils.html#gst-plugins-base-libs-gstvideoutils.other">
-<ANCHOR id="gst-plugins-base-libs-gstvideoutils.object-hierarchy" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideoutils.html#gst-plugins-base-libs-gstvideoutils.object-hierarchy">
 <ANCHOR id="gst-plugins-base-libs-gstvideoutils.description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideoutils.html#gst-plugins-base-libs-gstvideoutils.description">
 <ANCHOR id="gst-plugins-base-libs-gstvideoutils.functions_details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideoutils.html#gst-plugins-base-libs-gstvideoutils.functions_details">
 <ANCHOR id="GST-VIDEO-CODEC-FRAME-FLAGS:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideoutils.html#GST-VIDEO-CODEC-FRAME-FLAGS:CAPS">
@@ -2131,8 +2159,10 @@
 <ANCHOR id="annotation-glossterm-array" href="gst-plugins-base-libs-1.0/annotation-glossary.html#annotation-glossterm-array">
 <ANCHOR id="annotation-glossterm-closure" href="gst-plugins-base-libs-1.0/annotation-glossary.html#annotation-glossterm-closure">
 <ANCHOR id="annotation-glossterm-element-type" href="gst-plugins-base-libs-1.0/annotation-glossary.html#annotation-glossterm-element-type">
+<ANCHOR id="annotation-glossterm-nullable" href="gst-plugins-base-libs-1.0/annotation-glossary.html#annotation-glossterm-nullable">
 <ANCHOR id="annotation-glossterm-out" href="gst-plugins-base-libs-1.0/annotation-glossary.html#annotation-glossterm-out">
 <ANCHOR id="annotation-glossterm-scope async" href="gst-plugins-base-libs-1.0/annotation-glossary.html#annotation-glossterm-scope async">
+<ANCHOR id="annotation-glossterm-transfer floating" href="gst-plugins-base-libs-1.0/annotation-glossary.html#annotation-glossterm-transfer floating">
 <ANCHOR id="annotation-glossterm-transfer full" href="gst-plugins-base-libs-1.0/annotation-glossary.html#annotation-glossterm-transfer full">
 <ANCHOR id="annotation-glossterm-transfer none" href="gst-plugins-base-libs-1.0/annotation-glossary.html#annotation-glossterm-transfer none">
 <ANCHOR id="annotation-glossterm-type" href="gst-plugins-base-libs-1.0/annotation-glossary.html#annotation-glossterm-type">
diff --git a/docs/libs/html/style.css b/docs/libs/html/style.css
index 705a5c9..c141ddd 100644
--- a/docs/libs/html/style.css
+++ b/docs/libs/html/style.css
@@ -30,127 +30,6 @@
   vertical-align: top;
 }
 
-@media screen {
-  sup a.footnote
-  {
-    position: relative;
-    top: 0em ! important;
-  }
-  /* this is needed so that the local anchors are displayed below the naviagtion */
-  div.footnote a[name], div.refnamediv a[name], div.refsect1 a[name], div.refsect2 a[name], div.index a[name], div.glossary a[name], div.sect1 a[name]
-  {
-    display: inline-block;
-    position: relative;
-    top:-5em;
-  }
-  /* this seems to be a bug in the xsl style sheets when generating indexes */
-  div.index div.index
-  {
-    top: 0em;
-  }
-  /* make space for the fixed navigation bar and add space at the bottom so that
-   * link targets appear somewhat close to top
-   */
-  body
-  {
-    padding-top: 5em;
-    padding-bottom: 500px;
-    max-width: 60em;
-  }
-  p
-  {
-    max-width: 60em;
-  }
-  /* style and size the navigation bar */
-  table.navigation#top
-  {
-    position: fixed;
-    background: #e2e2e2;
-    border-bottom: solid 1px #babdb6;
-    margin-top: 0;
-    margin-bottom: 0;
-    top: 0;
-    left: 0;
-    height: 3em;
-    z-index: 10;
-  }
-  .navigation a, .navigation a:visited
-  {
-    /* tango:sky blue 3 */
-    color: #204a87;
-  }
-  .navigation a:hover
-  {
-    /* tango:sky blue 2 */
-    color: #3465a4;
-  }
-  td.shortcuts
-  {
-    /* tango:sky blue 2 */
-    color: #3465a4;
-    font-size: 80%;
-    white-space: nowrap;
-  }
-  td.shortcuts .dim
-  {
-    color: #babdb6;
-  }
-}
-@media screen and (min-width: 60em) {
-  /* screen larger than 60em */
-  body { margin: auto; }
-}
-@media screen and (max-width: 60em) {
-  /* screen less than 60em */
-  #nav_hierarchy { display: none; }
-  #nav_interfaces { display: none; }
-  #nav_prerequisites { display: none; }
-  #nav_derived_interfaces { display: none; }
-  #nav_implementations { display: none; }
-  #nav_child_properties { display: none; }
-  #nav_style_properties { display: none; }
-  #nav_index { display: none; }
-  #nav_glossary { display: none; }
-  .gallery_image { display: none; }
-  .property_flags { display: none; }
-  .signal_flags { display: none; }
-  .parameter_annotations { display: none; }
-  .enum_member_annotations { display: none; }
-  .struct_member_annotations { display: none; }
-  .union_member_annotations { display: none; }
-  /* now that a column is hidden, optimize space */
-  col.parameters_name { width: auto; }
-  col.parameters_description { width: auto; }
-  col.struct_members_name { width: auto; }
-  col.struct_members_description { width: auto; }
-  col.enum_members_name { width: auto; }
-  col.enum_members_description { width: auto; }
-  col.union_members_name { width: auto; }
-  col.union_members_description { width: auto; }
-}
-@media print {
-  table.navigation {
-    visibility: collapse;
-    display: none;
-  }
-  div.titlepage table.navigation {
-    visibility: visible;
-    display: table;
-    background: #e2e2e2;
-    border: solid 1px #babdb6;
-    margin-top: 0;
-    margin-bottom: 0;
-    top: 0;
-    left: 0;
-    height: 3em;
-  }
-}
-
-.navigation .title
-{
-  font-size: 120%;
-}
-
 div.gallery-float
 {
   float: left;
@@ -181,7 +60,7 @@
 div.informaltable table
 {
   border-collapse: separate;
-  border-spacing: 20px 3px;
+  border-spacing: 1em 0.5em;
   border: none;
 }
 
@@ -239,6 +118,11 @@
  color: #729fcf;
 }
 
+td p
+{
+  margin: 0.25em;
+}
+
 div.table table
 {
   border-collapse: collapse;
@@ -404,21 +288,28 @@
   font-weight: normal;
 }
 
+acronym,abbr 
+{
+  border-bottom: 1px dotted gray;
+}
+
 /* code listings */
 
-.listing_code .programlisting .cbracket   { color: #a40000; } /* tango: scarlet red 3 */
-.listing_code .programlisting .comment    { color: #a1a39d; } /* tango: aluminium 4 */
-.listing_code .programlisting .function   { color: #000000; font-weight: bold; }
-.listing_code .programlisting .function a { color: #11326b; font-weight: bold; } /* tango: sky blue 4 */
-.listing_code .programlisting .keyword    { color: #4e9a06; } /* tango: chameleon 3  */
+.listing_code .programlisting .normal,
+.listing_code .programlisting .normal a,
+.listing_code .programlisting .number,
+.listing_code .programlisting .cbracket,
+.listing_code .programlisting .symbol     { color: #555753; }
+.listing_code .programlisting .comment,
 .listing_code .programlisting .linenum    { color: #babdb6; } /* tango: aluminium 3 */
-.listing_code .programlisting .normal     { color: #000000; }
-.listing_code .programlisting .number     { color: #75507b; } /* tango: plum 2 */
+.listing_code .programlisting .function,
+.listing_code .programlisting .function a,
 .listing_code .programlisting .preproc    { color: #204a87; } /* tango: sky blue 3  */
-.listing_code .programlisting .string     { color: #c17d11; } /* tango: chocolate 2 */
-.listing_code .programlisting .type       { color: #000000; }
-.listing_code .programlisting .type a     { color: #11326b; } /* tango: sky blue 4 */
-.listing_code .programlisting .symbol     { color: #ce5c00; } /* tango: orange 3 */
+.listing_code .programlisting .string     { color: #ad7fa8; } /* tango: plum */
+.listing_code .programlisting .keyword,
+.listing_code .programlisting .usertype,
+.listing_code .programlisting .type,
+.listing_code .programlisting .type a     { color: #4e9a06; } /* tango: chameleon 3  */
 
 .listing_frame {
   /* tango:sky blue 1 */
@@ -433,11 +324,6 @@
   padding: 0.5em;
 }
 .listing_lines {
-  /* this just adds visual clutter and
-     takes precious room from small screens */
-  display: none;
-}
-.listing_lines {
   /* tango:sky blue 0.5 */
   background: #a6c5e3;
   background: rgba(114, 159, 207, 0.2);
@@ -459,3 +345,132 @@
   margin: 0px;
 }
 
+@media screen {
+  sup a.footnote
+  {
+    position: relative;
+    top: 0em ! important;
+  }
+  /* this is needed so that the local anchors are displayed below the naviagtion */
+  div.footnote a[name], div.refnamediv a[name], div.refsect1 a[name], div.refsect2 a[name], div.index a[name], div.glossary a[name], div.sect1 a[name]
+  {
+    display: inline-block;
+    position: relative;
+    top:-5em;
+  }
+  /* this seems to be a bug in the xsl style sheets when generating indexes */
+  div.index div.index
+  {
+    top: 0em;
+  }
+  /* make space for the fixed navigation bar and add space at the bottom so that
+   * link targets appear somewhat close to top
+   */
+  body
+  {
+    padding-top: 2.5em;
+    padding-bottom: 500px;
+    max-width: 60em;
+  }
+  p
+  {
+    max-width: 60em;
+  }
+  /* style and size the navigation bar */
+  table.navigation#top
+  {
+    position: fixed;
+    background: #e2e2e2;
+    border-bottom: solid 1px #babdb6;
+    border-spacing: 5px;
+    margin-top: 0;
+    margin-bottom: 0;
+    top: 0;
+    left: 0;
+    z-index: 10;
+  }
+  table.navigation#top td
+  {
+    padding-left: 6px;
+    padding-right: 6px;
+  }
+  .navigation a, .navigation a:visited
+  {
+    /* tango:sky blue 3 */
+    color: #204a87;
+  }
+  .navigation a:hover
+  {
+    /* tango:sky blue 2 */
+    color: #3465a4;
+  }
+  td.shortcuts
+  {
+    /* tango:sky blue 2 */
+    color: #3465a4;
+    font-size: 80%;
+    white-space: nowrap;
+  }
+  td.shortcuts .dim
+  {
+    color: #babdb6;
+  }
+  .navigation .title
+  {
+    font-size: 80%;
+    max-width: none;
+    margin: 0px;
+    font-weight: normal;
+  }
+}
+@media screen and (min-width: 60em) {
+  /* screen larger than 60em */
+  body { margin: auto; }
+}
+@media screen and (max-width: 60em) {
+  /* screen less than 60em */
+  #nav_hierarchy { display: none; }
+  #nav_interfaces { display: none; }
+  #nav_prerequisites { display: none; }
+  #nav_derived_interfaces { display: none; }
+  #nav_implementations { display: none; }
+  #nav_child_properties { display: none; }
+  #nav_style_properties { display: none; }
+  #nav_index { display: none; }
+  #nav_glossary { display: none; }
+  .gallery_image { display: none; }
+  .property_flags { display: none; }
+  .signal_flags { display: none; }
+  .parameter_annotations { display: none; }
+  .enum_member_annotations { display: none; }
+  .struct_member_annotations { display: none; }
+  .union_member_annotations { display: none; }
+  /* now that a column is hidden, optimize space */
+  col.parameters_name { width: auto; }
+  col.parameters_description { width: auto; }
+  col.struct_members_name { width: auto; }
+  col.struct_members_description { width: auto; }
+  col.enum_members_name { width: auto; }
+  col.enum_members_description { width: auto; }
+  col.union_members_name { width: auto; }
+  col.union_members_description { width: auto; }
+  .listing_lines { display: none; }
+}
+@media print {
+  table.navigation {
+    visibility: collapse;
+    display: none;
+  }
+  div.titlepage table.navigation {
+    visibility: visible;
+    display: table;
+    background: #e2e2e2;
+    border: solid 1px #babdb6;
+    margin-top: 0;
+    margin-bottom: 0;
+    top: 0;
+    left: 0;
+    height: 3em;
+  }
+}
+
diff --git a/docs/plugins/Makefile.am b/docs/plugins/Makefile.am
index f6e467d..640948c 100644
--- a/docs/plugins/Makefile.am
+++ b/docs/plugins/Makefile.am
@@ -80,6 +80,7 @@
 	$(top_srcdir)/gst/audiorate/gstaudiorate.h \
 	$(top_srcdir)/gst/audioresample/gstaudioresample.h \
 	$(top_srcdir)/gst/tcp/gstmultisocketsink.h \
+	$(top_srcdir)/gst/tcp/gstsocketsrc.h \
 	$(top_srcdir)/gst/tcp/gsttcpclientsrc.h \
 	$(top_srcdir)/gst/tcp/gsttcpclientsink.h \
 	$(top_srcdir)/gst/tcp/gsttcpserversrc.h \
diff --git a/docs/plugins/Makefile.in b/docs/plugins/Makefile.in
index 84d2568..9aea7f8 100644
--- a/docs/plugins/Makefile.in
+++ b/docs/plugins/Makefile.in
@@ -119,7 +119,6 @@
 	$(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-x11.m4 \
 	$(top_srcdir)/common/m4/gst.m4 \
 	$(top_srcdir)/common/m4/gtk-doc.m4 \
 	$(top_srcdir)/common/m4/introspection.m4 \
@@ -220,6 +219,8 @@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_2_0_CFLAGS = @GIO_UNIX_2_0_CFLAGS@
+GIO_UNIX_2_0_LIBS = @GIO_UNIX_2_0_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
@@ -249,6 +250,8 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
+GST_NET_CFLAGS = @GST_NET_CFLAGS@
+GST_NET_LIBS = @GST_NET_LIBS@
 GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
 GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
@@ -276,7 +279,6 @@
 GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
 GTK_X11_LIBS = @GTK_X11_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
-HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -380,13 +382,12 @@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-XMKMF = @XMKMF@
+XSHM_CFLAGS = @XSHM_CFLAGS@
 XSHM_LIBS = @XSHM_LIBS@
+XVIDEO_CFLAGS = @XVIDEO_CFLAGS@
 XVIDEO_LIBS = @XVIDEO_LIBS@
 X_CFLAGS = @X_CFLAGS@
-X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
-X_PRE_LIBS = @X_PRE_LIBS@
 ZLIB_CFLAGS = @ZLIB_CFLAGS@
 ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
@@ -534,6 +535,7 @@
 	$(top_srcdir)/gst/audiorate/gstaudiorate.h \
 	$(top_srcdir)/gst/audioresample/gstaudioresample.h \
 	$(top_srcdir)/gst/tcp/gstmultisocketsink.h \
+	$(top_srcdir)/gst/tcp/gstsocketsrc.h \
 	$(top_srcdir)/gst/tcp/gsttcpclientsrc.h \
 	$(top_srcdir)/gst/tcp/gsttcpclientsink.h \
 	$(top_srcdir)/gst/tcp/gsttcpserversrc.h \
diff --git a/docs/plugins/gst-plugins-base-plugins-docs.sgml b/docs/plugins/gst-plugins-base-plugins-docs.sgml
index 6ae5478..ed48709 100644
--- a/docs/plugins/gst-plugins-base-plugins-docs.sgml
+++ b/docs/plugins/gst-plugins-base-plugins-docs.sgml
@@ -43,6 +43,7 @@
     <xi:include href="xml/element-playsink.xml" />
     <xi:include href="xml/element-streamsynchronizer.xml" />
     <xi:include href="xml/element-subtitleoverlay.xml" />
+    <xi:include href="xml/element-socketsrc.xml" />
     <xi:include href="xml/element-tcpclientsrc.xml" />
     <xi:include href="xml/element-tcpclientsink.xml" />
     <xi:include href="xml/element-tcpserversrc.xml" />
diff --git a/docs/plugins/gst-plugins-base-plugins-sections.txt b/docs/plugins/gst-plugins-base-plugins-sections.txt
index 858dd0b..7778167 100644
--- a/docs/plugins/gst-plugins-base-plugins-sections.txt
+++ b/docs/plugins/gst-plugins-base-plugins-sections.txt
@@ -486,6 +486,20 @@
 </SECTION>
 
 <SECTION>
+<FILE>element-socketsrc</FILE>
+<TITLE>socketsrc</TITLE>
+GstSocketSrc
+<SUBSECTION Standard>
+GstSocketSrcClass
+GST_SOCKET_SRC
+GST_SOCKET_SINK_CLASS
+GST_TYPE_SOCKET_SRC
+gst_socket_src_get_type
+GST_IS_SOCKET_SRC_CLASS
+GST_IS_SOCKET_SRC
+</SECTION>
+
+<SECTION>
 <FILE>element-streamsynchronizer</FILE>
 <TITLE>streamsynchronizer</TITLE>
 GstStreamSynchronizer
diff --git a/docs/plugins/gst-plugins-base-plugins.args b/docs/plugins/gst-plugins-base-plugins.args
index af2ff6a..7f2cac7 100644
--- a/docs/plugins/gst-plugins-base-plugins.args
+++ b/docs/plugins/gst-plugins-base-plugins.args
@@ -850,12 +850,12 @@
 
 <ARG>
 <NAME>GstVideoConvert::dither</NAME>
-<TYPE>GstVideoConvertDitherMethod</TYPE>
+<TYPE>GstVideoDitherMethod</TYPE>
 <RANGE></RANGE>
 <FLAGS>rw</FLAGS>
 <NICK>Dither</NICK>
 <BLURB>Apply dithering while converting.</BLURB>
-<DEFAULT>No dithering (default)</DEFAULT>
+<DEFAULT>GST_VIDEO_DITHER_NONE</DEFAULT>
 </ARG>
 
 <ARG>
@@ -1411,7 +1411,7 @@
 <ARG>
 <NAME>GstVideoTestSrc::timestamp-offset</NAME>
 <TYPE>gint64</TYPE>
-<RANGE></RANGE>
+<RANGE>>= 0</RANGE>
 <FLAGS>rw</FLAGS>
 <NICK>Timestamp offset</NICK>
 <BLURB>An offset added to timestamps set on buffers (in ns).</BLURB>
@@ -1823,7 +1823,7 @@
 <TYPE>gboolean</TYPE>
 <RANGE></RANGE>
 <FLAGS>rw</FLAGS>
-<NICK>Colorkey</NICK>
+<NICK>Draw Borders</NICK>
 <BLURB>Draw black borders to fill unused area in force-aspect-ratio mode.</BLURB>
 <DEFAULT>TRUE</DEFAULT>
 </ARG>
diff --git a/docs/plugins/gst-plugins-base-plugins.hierarchy b/docs/plugins/gst-plugins-base-plugins.hierarchy
index 32d2ae1..c65cd17 100644
--- a/docs/plugins/gst-plugins-base-plugins.hierarchy
+++ b/docs/plugins/gst-plugins-base-plugins.hierarchy
@@ -15,7 +15,6 @@
       GstElement
         GstAdder
         GstAudioDecoder
-          GstIVorbisDec
           GstVorbisDec
         GstAudioEncoder
           GstVorbisEnc
@@ -108,7 +107,7 @@
       GstPadTemplate
       GstPlugin
       GstPluginFeature
-        GstDeviceMonitorFactory
+        GstDeviceProviderFactory
         GstElementFactory
         GstTypeFindFactory
       GstRegistry
diff --git a/docs/plugins/gst-plugins-base-plugins.signals b/docs/plugins/gst-plugins-base-plugins.signals
index 74e285f..5c6b76f 100644
--- a/docs/plugins/gst-plugins-base-plugins.signals
+++ b/docs/plugins/gst-plugins-base-plugins.signals
@@ -320,6 +320,14 @@
 </SIGNAL>
 
 <SIGNAL>
+<NAME>GstAppSrc::push-sample</NAME>
+<RETURNS>GstFlowReturn</RETURNS>
+<FLAGS>la</FLAGS>
+GstAppSrc *gstappsrc
+GstSample *arg1
+</SIGNAL>
+
+<SIGNAL>
 <NAME>GstAppSink::eos</NAME>
 <RETURNS>void</RETURNS>
 <FLAGS>l</FLAGS>
diff --git a/docs/plugins/html/ch01.html b/docs/plugins/html/ch01.html
index 1bd670e..b963d5e 100644
--- a/docs/plugins/html/ch01.html
+++ b/docs/plugins/html/ch01.html
@@ -8,11 +8,11 @@
 <link rel="up" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="prev" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="next" href="gst-plugins-base-plugins-adder.html" title="adder">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
@@ -102,6 +102,9 @@
 <span class="refentrytitle"><a href="gst-plugins-base-plugins-subtitleoverlay.html">subtitleoverlay</a></span><span class="refpurpose"> — Overlays a video stream with subtitles</span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-base-plugins-socketsrc.html">socketsrc</a></span><span class="refpurpose"> — Receive data from a socket</span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-base-plugins-tcpclientsrc.html">tcpclientsrc</a></span><span class="refpurpose"> — Receive data as a client over the network via TCP</span>
 </dt>
 <dt>
@@ -168,6 +171,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/ch02.html b/docs/plugins/html/ch02.html
index a36e04e..6650057 100644
--- a/docs/plugins/html/ch02.html
+++ b/docs/plugins/html/ch02.html
@@ -8,11 +8,11 @@
 <link rel="up" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="prev" href="gst-plugins-base-plugins-xvimagesink.html" title="xvimagesink">
 <link rel="next" href="gst-plugins-base-plugins-plugin-adder.html" title="adder">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
@@ -105,6 +105,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-1.0.devhelp2 b/docs/plugins/html/gst-plugins-base-plugins-1.0.devhelp2
index c69f95b..991ee8a 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-1.0.devhelp2
+++ b/docs/plugins/html/gst-plugins-base-plugins-1.0.devhelp2
@@ -29,6 +29,7 @@
       <sub name="playsink" link="gst-plugins-base-plugins-playsink.html"/>
       <sub name="streamsynchronizer" link="gst-plugins-base-plugins-streamsynchronizer.html"/>
       <sub name="subtitleoverlay" link="gst-plugins-base-plugins-subtitleoverlay.html"/>
+      <sub name="socketsrc" link="gst-plugins-base-plugins-socketsrc.html"/>
       <sub name="tcpclientsrc" link="gst-plugins-base-plugins-tcpclientsrc.html"/>
       <sub name="tcpclientsink" link="gst-plugins-base-plugins-tcpclientsink.html"/>
       <sub name="tcpserversrc" link="gst-plugins-base-plugins-tcpserversrc.html"/>
@@ -106,6 +107,7 @@
     <keyword type="signal" name="The “need-data” signal" link="gst-plugins-base-plugins-appsrc.html#GstAppSrc-need-data"/>
     <keyword type="signal" name="The “push-buffer” signal" link="gst-plugins-base-plugins-appsrc.html#GstAppSrc-push-buffer"/>
     <keyword type="signal" name="The “seek-data” signal" link="gst-plugins-base-plugins-appsrc.html#GstAppSrc-seek-data"/>
+    <keyword type="signal" name="The “push-sample” signal" link="gst-plugins-base-plugins-appsrc.html#GstAppSrc-push-sample"/>
     <keyword type="" name="Element Information" link="gst-plugins-base-plugins-appsink.html#id-1.2.4.9.5.1.1"/>
     <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-appsink.html#id-1.2.4.9.5.1.2"/>
     <keyword type="struct" name="struct GstAppSink" link="gst-plugins-base-plugins-appsink.html#GstAppSink-struct"/>
@@ -374,37 +376,40 @@
     <keyword type="property" name="The “font-desc” property" link="gst-plugins-base-plugins-subtitleoverlay.html#GstSubtitleOverlay--font-desc"/>
     <keyword type="property" name="The “silent” property" link="gst-plugins-base-plugins-subtitleoverlay.html#GstSubtitleOverlay--silent"/>
     <keyword type="property" name="The “subtitle-encoding” property" link="gst-plugins-base-plugins-subtitleoverlay.html#GstSubtitleOverlay--subtitle-encoding"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-tcpclientsrc.html#id-1.2.28.7.2"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-tcpclientsrc.html#id-1.2.28.7.3.1"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-tcpclientsrc.html#id-1.2.28.7.3.2"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-socketsrc.html#id-1.2.28.4.7.3.1"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-socketsrc.html#id-1.2.28.4.7.3.2"/>
+    <keyword type="struct" name="struct GstSocketSrc" link="gst-plugins-base-plugins-socketsrc.html#GstSocketSrc"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-tcpclientsrc.html#id-1.2.29.7.2"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-tcpclientsrc.html#id-1.2.29.7.3.1"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-tcpclientsrc.html#id-1.2.29.7.3.2"/>
     <keyword type="struct" name="struct GstTCPClientSrc" link="gst-plugins-base-plugins-tcpclientsrc.html#GstTCPClientSrc-struct"/>
     <keyword type="property" name="The “host” property" link="gst-plugins-base-plugins-tcpclientsrc.html#GstTCPClientSrc--host"/>
     <keyword type="property" name="The “port” property" link="gst-plugins-base-plugins-tcpclientsrc.html#GstTCPClientSrc--port"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-tcpclientsink.html#id-1.2.29.7.2"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-tcpclientsink.html#id-1.2.29.7.3.1"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-tcpclientsink.html#id-1.2.29.7.3.2"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-tcpclientsink.html#id-1.2.30.7.2"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-tcpclientsink.html#id-1.2.30.7.3.1"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-tcpclientsink.html#id-1.2.30.7.3.2"/>
     <keyword type="struct" name="struct GstTCPClientSink" link="gst-plugins-base-plugins-tcpclientsink.html#GstTCPClientSink-struct"/>
     <keyword type="property" name="The “host” property" link="gst-plugins-base-plugins-tcpclientsink.html#GstTCPClientSink--host"/>
     <keyword type="property" name="The “port” property" link="gst-plugins-base-plugins-tcpclientsink.html#GstTCPClientSink--port"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-tcpserversrc.html#id-1.2.30.7.2"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-tcpserversrc.html#id-1.2.30.7.3.1"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-tcpserversrc.html#id-1.2.30.7.3.2"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-tcpserversrc.html#id-1.2.31.7.2"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-tcpserversrc.html#id-1.2.31.7.3.1"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-tcpserversrc.html#id-1.2.31.7.3.2"/>
     <keyword type="struct" name="struct GstTCPServerSrc" link="gst-plugins-base-plugins-tcpserversrc.html#GstTCPServerSrc-struct"/>
     <keyword type="property" name="The “current-port” property" link="gst-plugins-base-plugins-tcpserversrc.html#GstTCPServerSrc--current-port"/>
     <keyword type="property" name="The “host” property" link="gst-plugins-base-plugins-tcpserversrc.html#GstTCPServerSrc--host"/>
     <keyword type="property" name="The “port” property" link="gst-plugins-base-plugins-tcpserversrc.html#GstTCPServerSrc--port"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-tcpserversink.html#id-1.2.31.7.2"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-tcpserversink.html#id-1.2.31.7.3.1"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-tcpserversink.html#id-1.2.31.7.3.2"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-tcpserversink.html#id-1.2.32.7.2"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-tcpserversink.html#id-1.2.32.7.3.1"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-tcpserversink.html#id-1.2.32.7.3.2"/>
     <keyword type="struct" name="struct GstTCPServerSink" link="gst-plugins-base-plugins-tcpserversink.html#GstTCPServerSink-struct"/>
     <keyword type="property" name="The “current-port” property" link="gst-plugins-base-plugins-tcpserversink.html#GstTCPServerSink--current-port"/>
     <keyword type="property" name="The “host” property" link="gst-plugins-base-plugins-tcpserversink.html#GstTCPServerSink--host"/>
     <keyword type="property" name="The “port” property" link="gst-plugins-base-plugins-tcpserversink.html#GstTCPServerSink--port"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-textoverlay.html#id-1.2.32.6.2.1"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-textoverlay.html#id-1.2.32.6.2.2"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-textoverlay.html#id-1.2.33.6.2.1"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-textoverlay.html#id-1.2.33.6.2.2"/>
     <keyword type="struct" name="struct GstTextOverlay" link="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay-struct"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-textrender.html#id-1.2.33.7.2.1"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-textrender.html#id-1.2.33.7.2.2"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-textrender.html#id-1.2.34.7.2.1"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-textrender.html#id-1.2.34.7.2.2"/>
     <keyword type="struct" name="struct GstTextRender" link="gst-plugins-base-plugins-textrender.html#GstTextRender-struct"/>
     <keyword type="property" name="The “font-desc” property" link="gst-plugins-base-plugins-textrender.html#GstTextRender--font-desc"/>
     <keyword type="property" name="The “halignment” property" link="gst-plugins-base-plugins-textrender.html#GstTextRender--halignment"/>
@@ -412,11 +417,11 @@
     <keyword type="property" name="The “valignment” property" link="gst-plugins-base-plugins-textrender.html#GstTextRender--valignment"/>
     <keyword type="property" name="The “xpad” property" link="gst-plugins-base-plugins-textrender.html#GstTextRender--xpad"/>
     <keyword type="property" name="The “ypad” property" link="gst-plugins-base-plugins-textrender.html#GstTextRender--ypad"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-theoradec.html#id-1.2.34.6.2.1"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-theoradec.html#id-1.2.34.6.2.2"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-theoradec.html#id-1.2.35.6.2.1"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-theoradec.html#id-1.2.35.6.2.2"/>
     <keyword type="struct" name="struct GstTheoraDec" link="gst-plugins-base-plugins-theoradec.html#GstTheoraDec-struct"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-theoraenc.html#id-1.2.35.8.2.1"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-theoraenc.html#id-1.2.35.8.2.2"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-theoraenc.html#id-1.2.36.8.2.1"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-theoraenc.html#id-1.2.36.8.2.2"/>
     <keyword type="struct" name="struct GstTheoraEnc" link="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc-struct"/>
     <keyword type="property" name="The “bitrate” property" link="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--bitrate"/>
     <keyword type="property" name="The “cap-overflow” property" link="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--cap-overflow"/>
@@ -431,14 +436,14 @@
     <keyword type="property" name="The “rate-buffer” property" link="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--rate-buffer"/>
     <keyword type="property" name="The “speed-level” property" link="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--speed-level"/>
     <keyword type="property" name="The “vp3-compatible” property" link="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--vp3-compatible"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-theoraparse.html#id-1.2.36.6.2.1"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-theoraparse.html#id-1.2.36.6.2.2"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-theoraparse.html#id-1.2.37.6.2.1"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-theoraparse.html#id-1.2.37.6.2.2"/>
     <keyword type="struct" name="struct GstTheoraParse" link="gst-plugins-base-plugins-theoraparse.html#GstTheoraParse-struct"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-timeoverlay.html#id-1.2.37.6.2.1"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-timeoverlay.html#id-1.2.37.6.2.2"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-timeoverlay.html#id-1.2.38.6.2.1"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-timeoverlay.html#id-1.2.38.6.2.2"/>
     <keyword type="struct" name="struct GstTimeOverlay" link="gst-plugins-base-plugins-timeoverlay.html#GstTimeOverlay-struct"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-uridecodebin.html#id-1.2.38.9.2.2.1"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-uridecodebin.html#id-1.2.38.9.2.2.2"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-uridecodebin.html#id-1.2.39.9.2.2.1"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-uridecodebin.html#id-1.2.39.9.2.2.2"/>
     <keyword type="struct" name="struct GstURIDecodeBin" link="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin-struct"/>
     <keyword type="enum" name="enum GstAutoplugSelectResult" link="gst-plugins-base-plugins-uridecodebin.html#GstAutoplugSelectResult"/>
     <keyword type="property" name="The “buffer-duration” property" link="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin--buffer-duration"/>
@@ -460,9 +465,9 @@
     <keyword type="signal" name="The “drained” signal" link="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin-drained"/>
     <keyword type="signal" name="The “source-setup” signal" link="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin-source-setup"/>
     <keyword type="signal" name="The “unknown-type” signal" link="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin-unknown-type"/>
-    <keyword type="" name="Example pipelines" link="gst-plugins-base-plugins-videorate.html#id-1.2.39.7.10"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-videorate.html#id-1.2.39.7.11.1"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-videorate.html#id-1.2.39.7.11.2"/>
+    <keyword type="" name="Example pipelines" link="gst-plugins-base-plugins-videorate.html#id-1.2.40.7.10"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-videorate.html#id-1.2.40.7.11.1"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-videorate.html#id-1.2.40.7.11.2"/>
     <keyword type="struct" name="struct GstVideoRate" link="gst-plugins-base-plugins-videorate.html#GstVideoRate-struct"/>
     <keyword type="property" name="The “average-period” property" link="gst-plugins-base-plugins-videorate.html#GstVideoRate--average-period"/>
     <keyword type="property" name="The “drop” property" link="gst-plugins-base-plugins-videorate.html#GstVideoRate--drop"/>
@@ -474,9 +479,9 @@
     <keyword type="property" name="The “out” property" link="gst-plugins-base-plugins-videorate.html#GstVideoRate--out"/>
     <keyword type="property" name="The “silent” property" link="gst-plugins-base-plugins-videorate.html#GstVideoRate--silent"/>
     <keyword type="property" name="The “skip-to-first” property" link="gst-plugins-base-plugins-videorate.html#GstVideoRate--skip-to-first"/>
-    <keyword type="" name="Example pipelines" link="gst-plugins-base-plugins-videoscale.html#id-1.2.40.7.4"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-videoscale.html#id-1.2.40.7.5.1"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-videoscale.html#id-1.2.40.7.5.2"/>
+    <keyword type="" name="Example pipelines" link="gst-plugins-base-plugins-videoscale.html#id-1.2.41.7.4"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-videoscale.html#id-1.2.41.7.5.1"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-videoscale.html#id-1.2.41.7.5.2"/>
     <keyword type="struct" name="struct GstVideoScale" link="gst-plugins-base-plugins-videoscale.html#GstVideoScale-struct"/>
     <keyword type="enum" name="enum GstVideoScaleMethod" link="gst-plugins-base-plugins-videoscale.html#GstVideoScaleMethod"/>
     <keyword type="property" name="The “add-borders” property" link="gst-plugins-base-plugins-videoscale.html#GstVideoScale--add-borders"/>
@@ -485,9 +490,9 @@
     <keyword type="property" name="The “method” property" link="gst-plugins-base-plugins-videoscale.html#GstVideoScale--method"/>
     <keyword type="property" name="The “sharpen” property" link="gst-plugins-base-plugins-videoscale.html#GstVideoScale--sharpen"/>
     <keyword type="property" name="The “sharpness” property" link="gst-plugins-base-plugins-videoscale.html#GstVideoScale--sharpness"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-videotestsrc.html#id-1.2.41.7.3"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-videotestsrc.html#id-1.2.41.7.4.1"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-videotestsrc.html#id-1.2.41.7.4.2"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-videotestsrc.html#id-1.2.42.7.3"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-videotestsrc.html#id-1.2.42.7.4.1"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-videotestsrc.html#id-1.2.42.7.4.2"/>
     <keyword type="struct" name="struct GstVideoTestSrc" link="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc-struct"/>
     <keyword type="enum" name="enum GstVideoTestSrcPattern" link="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrcPattern"/>
     <keyword type="property" name="The “background-color” property" link="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--background-color"/>
@@ -508,17 +513,17 @@
     <keyword type="property" name="The “timestamp-offset” property" link="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--timestamp-offset"/>
     <keyword type="property" name="The “xoffset” property" link="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--xoffset"/>
     <keyword type="property" name="The “yoffset” property" link="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--yoffset"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-volume.html#id-1.2.42.8.3"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-volume.html#id-1.2.42.8.4.1"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-volume.html#id-1.2.42.8.4.2"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-volume.html#id-1.2.43.8.3"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-volume.html#id-1.2.43.8.4.1"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-volume.html#id-1.2.43.8.4.2"/>
     <keyword type="struct" name="struct GstVolume" link="gst-plugins-base-plugins-volume.html#GstVolume-struct"/>
     <keyword type="property" name="The “mute” property" link="gst-plugins-base-plugins-volume.html#GstVolume--mute"/>
     <keyword type="property" name="The “volume” property" link="gst-plugins-base-plugins-volume.html#GstVolume--volume"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-vorbisdec.html#id-1.2.43.6.2.1"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-vorbisdec.html#id-1.2.43.6.2.2"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-vorbisdec.html#id-1.2.44.6.2.1"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-vorbisdec.html#id-1.2.44.6.2.2"/>
     <keyword type="struct" name="struct GstVorbisDec" link="gst-plugins-base-plugins-vorbisdec.html#GstVorbisDec-struct"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-vorbisenc.html#id-1.2.44.8.2.1"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-vorbisenc.html#id-1.2.44.8.2.2"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-vorbisenc.html#id-1.2.45.8.2.1"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-vorbisenc.html#id-1.2.45.8.2.2"/>
     <keyword type="struct" name="struct GstVorbisEnc" link="gst-plugins-base-plugins-vorbisenc.html#GstVorbisEnc-struct"/>
     <keyword type="property" name="The “bitrate” property" link="gst-plugins-base-plugins-vorbisenc.html#GstVorbisEnc--bitrate"/>
     <keyword type="property" name="The “last-message” property" link="gst-plugins-base-plugins-vorbisenc.html#GstVorbisEnc--last-message"/>
@@ -526,14 +531,14 @@
     <keyword type="property" name="The “max-bitrate” property" link="gst-plugins-base-plugins-vorbisenc.html#GstVorbisEnc--max-bitrate"/>
     <keyword type="property" name="The “min-bitrate” property" link="gst-plugins-base-plugins-vorbisenc.html#GstVorbisEnc--min-bitrate"/>
     <keyword type="property" name="The “quality” property" link="gst-plugins-base-plugins-vorbisenc.html#GstVorbisEnc--quality"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-vorbisparse.html#id-1.2.45.6.2.1"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-vorbisparse.html#id-1.2.45.6.2.2"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-vorbisparse.html#id-1.2.46.6.2.1"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-vorbisparse.html#id-1.2.46.6.2.2"/>
     <keyword type="struct" name="struct GstVorbisParse" link="gst-plugins-base-plugins-vorbisparse.html#GstVorbisParse-struct"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-vorbistag.html#id-1.2.46.7.2.1"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-vorbistag.html#id-1.2.46.7.2.2"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-vorbistag.html#id-1.2.47.7.2.1"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-vorbistag.html#id-1.2.47.7.2.2"/>
     <keyword type="struct" name="struct GstVorbisTag" link="gst-plugins-base-plugins-vorbistag.html#GstVorbisTag-struct"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-ximagesink.html#id-1.2.47.8.2.1"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-ximagesink.html#id-1.2.47.8.2.2"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-ximagesink.html#id-1.2.48.8.2.1"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-ximagesink.html#id-1.2.48.8.2.2"/>
     <keyword type="struct" name="struct GstXImageSink" link="gst-plugins-base-plugins-ximagesink.html#GstXImageSink-struct"/>
     <keyword type="property" name="The “display” property" link="gst-plugins-base-plugins-ximagesink.html#GstXImageSink--display"/>
     <keyword type="property" name="The “force-aspect-ratio” property" link="gst-plugins-base-plugins-ximagesink.html#GstXImageSink--force-aspect-ratio"/>
@@ -543,8 +548,8 @@
     <keyword type="property" name="The “synchronous” property" link="gst-plugins-base-plugins-ximagesink.html#GstXImageSink--synchronous"/>
     <keyword type="property" name="The “window-height” property" link="gst-plugins-base-plugins-ximagesink.html#GstXImageSink--window-height"/>
     <keyword type="property" name="The “window-width” property" link="gst-plugins-base-plugins-ximagesink.html#GstXImageSink--window-width"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-xvimagesink.html#id-1.2.48.8.2.1"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-xvimagesink.html#id-1.2.48.8.2.2"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-xvimagesink.html#id-1.2.49.8.2.1"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-xvimagesink.html#id-1.2.49.8.2.2"/>
     <keyword type="struct" name="struct GstXvImageSink" link="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink-struct"/>
     <keyword type="property" name="The “autopaint-colorkey” property" link="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--autopaint-colorkey"/>
     <keyword type="property" name="The “brightness” property" link="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--brightness"/>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-adder.html b/docs/plugins/html/gst-plugins-base-plugins-adder.html
index 662e8ac..0a5d2c7 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-adder.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-adder.html
@@ -8,16 +8,16 @@
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="next" href="gst-plugins-base-plugins-appsrc.html" title="appsrc">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-adder.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-adder.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-adder.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties"> <span class="dim">|</span> 
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-adder.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-adder.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-adder.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties">  <span class="dim">|</span> 
                   <a href="#gst-plugins-base-plugins-adder.properties" class="shortcut">Properties</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
@@ -44,7 +44,7 @@
 </colgroup>
 <tbody><tr>
 <td class="property_type">
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *</td>
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> *</td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-adder.html#GstAdder--caps" title="The “caps” property">caps</a></td>
 <td class="property_flags">Read / Write</td>
 </tr></tbody>
@@ -65,8 +65,8 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-adder.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-    <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+<pre class="screen">    <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
         <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
             <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
                 <span class="lineart">╰──</span> GstAdder
@@ -196,7 +196,7 @@
 <a name="gst-plugins-base-plugins-adder.property-details"></a><h2>Property Details</h2>
 <div class="refsect2">
 <a name="GstAdder--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> *</pre>
+<pre class="programlisting">  “caps”                     <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> *</pre>
 <p>Set target format for mixing (NULL means ANY). Setting this property takes a reference to the supplied GstCaps object.</p>
 <p>Flags: Read / Write</p>
 </div>
@@ -204,6 +204,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-alsasink.html b/docs/plugins/html/gst-plugins-base-plugins-alsasink.html
index 21083ce..362ec0e 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-alsasink.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-alsasink.html
@@ -8,15 +8,15 @@
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-appsink.html" title="appsink">
 <link rel="next" href="gst-plugins-base-plugins-alsasrc.html" title="alsasrc">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-alsasink.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-alsasink.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> 
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-alsasink.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-alsasink.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
                   <a href="#gst-plugins-base-plugins-alsasink.properties" class="shortcut">Properties</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
@@ -44,19 +44,19 @@
 <tbody>
 <tr>
 <td class="property_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-alsasink.html#GstAlsaSink--card-name" title="The “card-name” property">card-name</a></td>
 <td class="property_flags">Read</td>
 </tr>
 <tr>
 <td class="property_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-alsasink.html#GstAlsaSink--device" title="The “device” property">device</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
 <td class="property_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-alsasink.html#GstAlsaSink--device-name" title="The “device-name” property">device-name</a></td>
 <td class="property_flags">Read</td>
 </tr>
@@ -78,8 +78,8 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-alsasink.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-    <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+<pre class="screen">    <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
         <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
             <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
                 <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSink.html">GstBaseSink</a>
@@ -181,7 +181,7 @@
 <a name="gst-plugins-base-plugins-alsasink.property-details"></a><h2>Property Details</h2>
 <div class="refsect2">
 <a name="GstAlsaSink--card-name"></a><h3>The <code class="literal">“card-name”</code> property</h3>
-<pre class="programlisting">  “card-name”                <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
+<pre class="programlisting">  “card-name”                <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
 <p>Human-readable name of the sound card.</p>
 <p>Flags: Read</p>
 <p>Default value: ""</p>
@@ -189,7 +189,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstAlsaSink--device"></a><h3>The <code class="literal">“device”</code> property</h3>
-<pre class="programlisting">  “device”                   <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
+<pre class="programlisting">  “device”                   <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
 <p>ALSA device, as defined in an asound configuration file.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: "default"</p>
@@ -197,7 +197,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstAlsaSink--device-name"></a><h3>The <code class="literal">“device-name”</code> property</h3>
-<pre class="programlisting">  “device-name”              <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
+<pre class="programlisting">  “device-name”              <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
 <p>Human-readable name of the sound device.</p>
 <p>Flags: Read</p>
 <p>Default value: ""</p>
@@ -206,6 +206,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-alsasrc.html b/docs/plugins/html/gst-plugins-base-plugins-alsasrc.html
index 1cd47bb..0dcd4bf 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-alsasrc.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-alsasrc.html
@@ -8,15 +8,15 @@
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-alsasink.html" title="alsasink">
 <link rel="next" href="gst-plugins-base-plugins-audioconvert.html" title="audioconvert">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-alsasrc.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-alsasrc.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> 
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-alsasrc.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-alsasrc.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
                   <a href="#gst-plugins-base-plugins-alsasrc.properties" class="shortcut">Properties</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
@@ -44,19 +44,19 @@
 <tbody>
 <tr>
 <td class="property_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-alsasrc.html#GstAlsaSrc--card-name" title="The “card-name” property">card-name</a></td>
 <td class="property_flags">Read</td>
 </tr>
 <tr>
 <td class="property_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-alsasrc.html#GstAlsaSrc--device" title="The “device” property">device</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
 <td class="property_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-alsasrc.html#GstAlsaSrc--device-name" title="The “device-name” property">device-name</a></td>
 <td class="property_flags">Read</td>
 </tr>
@@ -78,8 +78,8 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-alsasrc.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-    <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+<pre class="screen">    <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
         <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
             <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
                 <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSrc.html">GstBaseSrc</a>
@@ -166,7 +166,7 @@
 <a name="gst-plugins-base-plugins-alsasrc.property-details"></a><h2>Property Details</h2>
 <div class="refsect2">
 <a name="GstAlsaSrc--card-name"></a><h3>The <code class="literal">“card-name”</code> property</h3>
-<pre class="programlisting">  “card-name”                <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
+<pre class="programlisting">  “card-name”                <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
 <p>Human-readable name of the sound card.</p>
 <p>Flags: Read</p>
 <p>Default value: ""</p>
@@ -174,7 +174,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstAlsaSrc--device"></a><h3>The <code class="literal">“device”</code> property</h3>
-<pre class="programlisting">  “device”                   <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
+<pre class="programlisting">  “device”                   <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
 <p>ALSA device, as defined in an asound configuration file.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: "default"</p>
@@ -182,7 +182,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstAlsaSrc--device-name"></a><h3>The <code class="literal">“device-name”</code> property</h3>
-<pre class="programlisting">  “device-name”              <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
+<pre class="programlisting">  “device-name”              <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
 <p>Human-readable name of the sound device.</p>
 <p>Flags: Read</p>
 <p>Default value: ""</p>
@@ -191,6 +191,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-appsink.html b/docs/plugins/html/gst-plugins-base-plugins-appsink.html
index 6b39109..18d6b2e 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-appsink.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-appsink.html
@@ -8,17 +8,17 @@
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-appsrc.html" title="appsrc">
 <link rel="next" href="gst-plugins-base-plugins-alsasink.html" title="alsasink">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-appsink.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-appsink.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-appsink.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-appsink.properties" class="shortcut">Properties</a></span><span id="nav_signals"> <span class="dim">|</span> 
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-appsink.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-appsink.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-appsink.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-appsink.properties" class="shortcut">Properties</a></span><span id="nav_signals">  <span class="dim">|</span> 
                   <a href="#gst-plugins-base-plugins-appsink.signals" class="shortcut">Signals</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
@@ -46,27 +46,27 @@
 <tbody>
 <tr>
 <td class="property_type">
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *</td>
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> *</td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-appsink.html#GstAppSink--caps" title="The “caps” property">caps</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-appsink.html#GstAppSink--drop" title="The “drop” property">drop</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-appsink.html#GstAppSink--emit-signals" title="The “emit-signals” property">emit-signals</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-appsink.html#GstAppSink--eos" title="The “eos” property">eos</a></td>
 <td class="property_flags">Read</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-appsink.html#GstAppSink--max-buffers" title="The “max-buffers” property">max-buffers</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
@@ -127,8 +127,8 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-appsink.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-    <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+<pre class="screen">    <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
         <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
             <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
                 <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSink.html">GstBaseSink</a>
@@ -224,14 +224,14 @@
 <a name="gst-plugins-base-plugins-appsink.property-details"></a><h2>Property Details</h2>
 <div class="refsect2">
 <a name="GstAppSink--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> *</pre>
+<pre class="programlisting">  “caps”                     <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> *</pre>
 <p>The allowed caps for the sink pad.</p>
 <p>Flags: Read / Write</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstAppSink--drop"></a><h3>The <code class="literal">“drop”</code> property</h3>
-<pre class="programlisting">  “drop”                     <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<pre class="programlisting">  “drop”                     <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
 <p>Drop old buffers when the buffer queue is filled.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: FALSE</p>
@@ -239,7 +239,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstAppSink--emit-signals"></a><h3>The <code class="literal">“emit-signals”</code> property</h3>
-<pre class="programlisting">  “emit-signals”             <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<pre class="programlisting">  “emit-signals”             <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
 <p>Emit new-preroll and new-sample signals.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: FALSE</p>
@@ -247,7 +247,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstAppSink--eos"></a><h3>The <code class="literal">“eos”</code> property</h3>
-<pre class="programlisting">  “eos”                      <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<pre class="programlisting">  “eos”                      <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
 <p>Check if the sink is EOS or not started.</p>
 <p>Flags: Read</p>
 <p>Default value: TRUE</p>
@@ -255,7 +255,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstAppSink--max-buffers"></a><h3>The <code class="literal">“max-buffers”</code> property</h3>
-<pre class="programlisting">  “max-buffers”              <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre>
+<pre class="programlisting">  “max-buffers”              <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre>
 <p>The maximum number of buffers to queue internally (0 = unlimited).</p>
 <p>Flags: Read / Write</p>
 <p>Default value: 0</p>
@@ -267,7 +267,7 @@
 <a name="GstAppSink-eos"></a><h3>The <code class="literal">“eos”</code> signal</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 user_function (<a class="link" href="gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *gstappsink,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>    user_data)</pre>
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>    user_data)</pre>
 <p>
 </p>
 <div class="refsect3">
@@ -299,7 +299,7 @@
 <a name="GstAppSink-new-preroll"></a><h3>The <code class="literal">“new-preroll”</code> signal</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>
 user_function (<a class="link" href="gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *gstappsink,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>    user_data)</pre>
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>    user_data)</pre>
 <p>
 </p>
 <div class="refsect3">
@@ -335,7 +335,7 @@
 <a name="GstAppSink-new-sample"></a><h3>The <code class="literal">“new-sample”</code> signal</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>
 user_function (<a class="link" href="gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *gstappsink,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>    user_data)</pre>
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>    user_data)</pre>
 <p>
 </p>
 <div class="refsect3">
@@ -371,7 +371,7 @@
 <a name="GstAppSink-pull-preroll"></a><h3>The <code class="literal">“pull-preroll”</code> signal</h3>
 <pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstSample.html"><span class="returnvalue">GstSample</span></a>*
 user_function (<a class="link" href="gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *gstappsink,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>    user_data)</pre>
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>    user_data)</pre>
 <p>
 </p>
 <div class="refsect3">
@@ -407,7 +407,7 @@
 <a name="GstAppSink-pull-sample"></a><h3>The <code class="literal">“pull-sample”</code> signal</h3>
 <pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstSample.html"><span class="returnvalue">GstSample</span></a>*
 user_function (<a class="link" href="gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *gstappsink,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>    user_data)</pre>
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>    user_data)</pre>
 <p>
 </p>
 <div class="refsect3">
@@ -442,6 +442,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-appsrc.html b/docs/plugins/html/gst-plugins-base-plugins-appsrc.html
index 24d97a5..328b133 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-appsrc.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-appsrc.html
@@ -8,17 +8,17 @@
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-adder.html" title="adder">
 <link rel="next" href="gst-plugins-base-plugins-appsink.html" title="appsink">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-appsrc.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-appsrc.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-appsrc.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-appsrc.properties" class="shortcut">Properties</a></span><span id="nav_signals"> <span class="dim">|</span> 
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-appsrc.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-appsrc.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-appsrc.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-appsrc.properties" class="shortcut">Properties</a></span><span id="nav_signals">  <span class="dim">|</span> 
                   <a href="#gst-plugins-base-plugins-appsrc.signals" class="shortcut">Signals</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
@@ -45,13 +45,13 @@
 </colgroup>
 <tbody>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-appsrc.html#GstAppSrc--block" title="The “block” property">block</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
 <td class="property_type">
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *</td>
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> *</td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-appsrc.html#GstAppSrc--caps" title="The “caps” property">caps</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
@@ -61,7 +61,7 @@
 <td class="property_flags">Read</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-appsrc.html#GstAppSrc--emit-signals" title="The “emit-signals” property">emit-signals</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
@@ -71,7 +71,7 @@
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-appsrc.html#GstAppSrc--is-live" title="The “is-live” property">is-live</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
@@ -91,7 +91,7 @@
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-appsrc.html#GstAppSrc--min-percent" title="The “min-percent” property">min-percent</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
@@ -138,10 +138,15 @@
 <td class="signal_flags">Action</td>
 </tr>
 <tr>
-<td class="signal_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a></td>
+<td class="signal_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a></td>
 <td class="signal_name"><a class="link" href="gst-plugins-base-plugins-appsrc.html#GstAppSrc-seek-data" title="The “seek-data” signal">seek-data</a></td>
 <td class="signal_flags">Run Last</td>
 </tr>
+<tr>
+<td class="signal_type"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a></td>
+<td class="signal_name"><a class="link" href="gst-plugins-base-plugins-appsrc.html#GstAppSrc-push-sample" title="The “push-sample” signal">push-sample</a></td>
+<td class="signal_flags">Action</td>
+</tr>
 </tbody>
 </table></div>
 </div>
@@ -160,8 +165,8 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-appsrc.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-    <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+<pre class="screen">    <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
         <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
             <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
                 <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSrc.html">GstBaseSrc</a>
@@ -257,7 +262,7 @@
 <a name="gst-plugins-base-plugins-appsrc.property-details"></a><h2>Property Details</h2>
 <div class="refsect2">
 <a name="GstAppSrc--block"></a><h3>The <code class="literal">“block”</code> property</h3>
-<pre class="programlisting">  “block”                    <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<pre class="programlisting">  “block”                    <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
 <p>Block push-buffer when max-bytes are queued.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: FALSE</p>
@@ -265,7 +270,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstAppSrc--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> *</pre>
+<pre class="programlisting">  “caps”                     <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> *</pre>
 <p>The allowed caps for the src pad.</p>
 <p>Flags: Read / Write</p>
 </div>
@@ -280,7 +285,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstAppSrc--emit-signals"></a><h3>The <code class="literal">“emit-signals”</code> property</h3>
-<pre class="programlisting">  “emit-signals”             <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<pre class="programlisting">  “emit-signals”             <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
 <p>Emit need-data, enough-data and seek-data signals.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: TRUE</p>
@@ -296,7 +301,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstAppSrc--is-live"></a><h3>The <code class="literal">“is-live”</code> property</h3>
-<pre class="programlisting">  “is-live”                  <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<pre class="programlisting">  “is-live”                  <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
 <p>Whether to act as a live source.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: FALSE</p>
@@ -330,7 +335,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstAppSrc--min-percent"></a><h3>The <code class="literal">“min-percent”</code> property</h3>
-<pre class="programlisting">  “min-percent”              <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre>
+<pre class="programlisting">  “min-percent”              <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre>
 <p>Emit need-data when queued bytes drops below this percent of max-bytes.</p>
 <p>Flags: Read / Write</p>
 <p>Allowed values: &lt;= 100</p>
@@ -360,7 +365,7 @@
 <a name="GstAppSrc-end-of-stream"></a><h3>The <code class="literal">“end-of-stream”</code> signal</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>
 user_function (<a class="link" href="gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *gstappsrc,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>   user_data)</pre>
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>   user_data)</pre>
 <p>
 </p>
 <div class="refsect3">
@@ -396,7 +401,7 @@
 <a name="GstAppSrc-enough-data"></a><h3>The <code class="literal">“enough-data”</code> signal</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 user_function (<a class="link" href="gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *gstappsrc,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>   user_data)</pre>
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>   user_data)</pre>
 <p>
 </p>
 <div class="refsect3">
@@ -428,8 +433,8 @@
 <a name="GstAppSrc-need-data"></a><h3>The <code class="literal">“need-data”</code> signal</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 user_function (<a class="link" href="gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *gstappsrc,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>      arg1,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>   user_data)</pre>
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>      arg1,
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>   user_data)</pre>
 <p>
 </p>
 <div class="refsect3">
@@ -461,8 +466,8 @@
 <a name="GstAppSrc-push-buffer"></a><h3>The <code class="literal">“push-buffer”</code> signal</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>
 user_function (<a class="link" href="gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *gstappsrc,
-               <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *arg1,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>   user_data)</pre>
+               <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> *arg1,
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>   user_data)</pre>
 <p>
 </p>
 <div class="refsect3">
@@ -496,10 +501,10 @@
 <hr>
 <div class="refsect2">
 <a name="GstAppSrc-seek-data"></a><h3>The <code class="literal">“seek-data”</code> signal</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 user_function (<a class="link" href="gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *gstappsrc,
                <span class="type">guint64</span>    arg1,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>   user_data)</pre>
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>   user_data)</pre>
 <p>
 </p>
 <div class="refsect3">
@@ -530,10 +535,47 @@
 </div>
 <p>Flags: Run Last</p>
 </div>
+<hr>
+<div class="refsect2">
+<a name="GstAppSrc-push-sample"></a><h3>The <code class="literal">“push-sample”</code> signal</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>
+user_function (<a class="link" href="gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *gstappsrc,
+               <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstSample.html"><span class="type">GstSample</span></a> *arg1,
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>   user_data)</pre>
+<p>
+</p>
+<div class="refsect3">
+<a name="id-1.2.3.13.7.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>gstappsrc</p></td>
+<td class="parameter_description"><p>the object which received the signal.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>user_data</p></td>
+<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.2.3.13.7.6"></a><h4>Returns</h4>
+<p></p>
+</div>
+<p>Flags: Action</p>
+</div>
 </div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-audioconvert.html b/docs/plugins/html/gst-plugins-base-plugins-audioconvert.html
index 87d498e..2040a52 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-audioconvert.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-audioconvert.html
@@ -8,15 +8,15 @@
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-alsasrc.html" title="alsasrc">
 <link rel="next" href="gst-plugins-base-plugins-audiorate.html" title="audiorate">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-audioconvert.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-audioconvert.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> 
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-audioconvert.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-audioconvert.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
                   <a href="#gst-plugins-base-plugins-audioconvert.properties" class="shortcut">Properties</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
@@ -80,8 +80,8 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-audioconvert.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-    <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+<pre class="screen">    <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
         <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
             <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
                 <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a>
@@ -332,6 +332,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-audiorate.html b/docs/plugins/html/gst-plugins-base-plugins-audiorate.html
index 1b52a7e..764d2fc 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-audiorate.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-audiorate.html
@@ -8,15 +8,15 @@
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-audioconvert.html" title="audioconvert">
 <link rel="next" href="gst-plugins-base-plugins-audioresample.html" title="audioresample">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-audiorate.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-audiorate.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> 
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-audiorate.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-audiorate.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
                   <a href="#gst-plugins-base-plugins-audiorate.properties" class="shortcut">Properties</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
@@ -63,12 +63,12 @@
 <td class="property_flags">Read</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-audiorate.html#GstAudioRate--silent" title="The “silent” property">silent</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-audiorate.html#GstAudioRate--skip-to-first" title="The “skip-to-first” property">skip-to-first</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
@@ -95,8 +95,8 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-audiorate.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-    <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+<pre class="screen">    <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
         <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
             <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
                 <span class="lineart">╰──</span> GstAudioRate
@@ -271,7 +271,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstAudioRate--silent"></a><h3>The <code class="literal">“silent”</code> property</h3>
-<pre class="programlisting">  “silent”                   <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<pre class="programlisting">  “silent”                   <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
 <p>Don't emit notify for dropped and duplicated frames.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: TRUE</p>
@@ -279,7 +279,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstAudioRate--skip-to-first"></a><h3>The <code class="literal">“skip-to-first”</code> property</h3>
-<pre class="programlisting">  “skip-to-first”            <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<pre class="programlisting">  “skip-to-first”            <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
 <p>Don't produce buffers before the first one we receive.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: FALSE</p>
@@ -301,6 +301,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-audioresample.html b/docs/plugins/html/gst-plugins-base-plugins-audioresample.html
index 5b89113..a7069bc 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-audioresample.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-audioresample.html
@@ -8,15 +8,15 @@
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-audiorate.html" title="audiorate">
 <link rel="next" href="gst-plugins-base-plugins-audiotestsrc.html" title="audiotestsrc">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-audioresample.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-audioresample.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> 
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-audioresample.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-audioresample.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
                   <a href="#gst-plugins-base-plugins-audioresample.properties" class="shortcut">Properties</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
@@ -43,12 +43,12 @@
 </colgroup>
 <tbody>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-audioresample.html#GstAudioResample--quality" title="The “quality” property">quality</a></td>
 <td class="property_flags">Read / Write / Construct</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-audioresample.html#GstAudioResample--sinc-filter-auto-threshold" title="The “sinc-filter-auto-threshold” property">sinc-filter-auto-threshold</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
@@ -75,8 +75,8 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-audioresample.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-    <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+<pre class="screen">    <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
         <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
             <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
                 <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a>
@@ -207,7 +207,7 @@
 <a name="gst-plugins-base-plugins-audioresample.property-details"></a><h2>Property Details</h2>
 <div class="refsect2">
 <a name="GstAudioResample--quality"></a><h3>The <code class="literal">“quality”</code> property</h3>
-<pre class="programlisting">  “quality”                  <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<pre class="programlisting">  “quality”                  <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
 <p>Resample quality with 0 being the lowest and 10 being the best.</p>
 <p>Flags: Read / Write / Construct</p>
 <p>Allowed values: [0,10]</p>
@@ -216,7 +216,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstAudioResample--sinc-filter-auto-threshold"></a><h3>The <code class="literal">“sinc-filter-auto-threshold”</code> property</h3>
-<pre class="programlisting">  “sinc-filter-auto-threshold” <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre>
+<pre class="programlisting">  “sinc-filter-auto-threshold” <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre>
 <p>Memory usage threshold to use if sinc filter mode is AUTO, given in bytes.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: 1048576</p>
@@ -233,6 +233,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-audiotestsrc.html b/docs/plugins/html/gst-plugins-base-plugins-audiotestsrc.html
index 857d55f..ac773f2 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-audiotestsrc.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-audiotestsrc.html
@@ -8,15 +8,15 @@
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-audioresample.html" title="audioresample">
 <link rel="next" href="gst-plugins-base-plugins-cdparanoiasrc.html" title="cdparanoiasrc">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-audiotestsrc.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-audiotestsrc.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> 
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-audiotestsrc.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-audiotestsrc.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
                   <a href="#gst-plugins-base-plugins-audiotestsrc.properties" class="shortcut">Properties</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
@@ -43,27 +43,27 @@
 </colgroup>
 <tbody>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-audiotestsrc.html#GstAudioTestSrc--can-activate-pull" title="The “can-activate-pull” property">can-activate-pull</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-audiotestsrc.html#GstAudioTestSrc--can-activate-push" title="The “can-activate-push” property">can-activate-push</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-audiotestsrc.html#GstAudioTestSrc--freq" title="The “freq” property">freq</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-audiotestsrc.html#GstAudioTestSrc--is-live" title="The “is-live” property">is-live</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-audiotestsrc.html#GstAudioTestSrc--samplesperbuffer" title="The “samplesperbuffer” property">samplesperbuffer</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
@@ -73,7 +73,7 @@
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-audiotestsrc.html#GstAudioTestSrc--volume" title="The “volume” property">volume</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
@@ -106,8 +106,8 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-audiotestsrc.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-    <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+<pre class="screen">    <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
         <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
             <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
                 <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSrc.html">GstBaseSrc</a>
@@ -328,7 +328,7 @@
 <a name="gst-plugins-base-plugins-audiotestsrc.property-details"></a><h2>Property Details</h2>
 <div class="refsect2">
 <a name="GstAudioTestSrc--can-activate-pull"></a><h3>The <code class="literal">“can-activate-pull”</code> property</h3>
-<pre class="programlisting">  “can-activate-pull”        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<pre class="programlisting">  “can-activate-pull”        <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
 <p>Can activate in pull mode.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: FALSE</p>
@@ -336,7 +336,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstAudioTestSrc--can-activate-push"></a><h3>The <code class="literal">“can-activate-push”</code> property</h3>
-<pre class="programlisting">  “can-activate-push”        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<pre class="programlisting">  “can-activate-push”        <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
 <p>Can activate in push mode.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: TRUE</p>
@@ -344,7 +344,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstAudioTestSrc--freq"></a><h3>The <code class="literal">“freq”</code> property</h3>
-<pre class="programlisting">  “freq”                     <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></pre>
+<pre class="programlisting">  “freq”                     <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></pre>
 <p>Frequency of test signal.</p>
 <p>Flags: Read / Write</p>
 <p>Allowed values: [0,20000]</p>
@@ -353,7 +353,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstAudioTestSrc--is-live"></a><h3>The <code class="literal">“is-live”</code> property</h3>
-<pre class="programlisting">  “is-live”                  <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<pre class="programlisting">  “is-live”                  <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
 <p>Whether to act as a live source.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: FALSE</p>
@@ -361,7 +361,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstAudioTestSrc--samplesperbuffer"></a><h3>The <code class="literal">“samplesperbuffer”</code> property</h3>
-<pre class="programlisting">  “samplesperbuffer”         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<pre class="programlisting">  “samplesperbuffer”         <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
 <p>Number of samples in each outgoing buffer.</p>
 <p>Flags: Read / Write</p>
 <p>Allowed values: &gt;= 1</p>
@@ -378,7 +378,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstAudioTestSrc--volume"></a><h3>The <code class="literal">“volume”</code> property</h3>
-<pre class="programlisting">  “volume”                   <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></pre>
+<pre class="programlisting">  “volume”                   <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></pre>
 <p>Volume of test signal.</p>
 <p>Flags: Read / Write</p>
 <p>Allowed values: [0,1]</p>
@@ -396,6 +396,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-cdparanoiasrc.html b/docs/plugins/html/gst-plugins-base-plugins-cdparanoiasrc.html
index 4395412..5ac556d 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-cdparanoiasrc.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-cdparanoiasrc.html
@@ -8,17 +8,17 @@
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-audiotestsrc.html" title="audiotestsrc">
 <link rel="next" href="gst-plugins-base-plugins-clockoverlay.html" title="clockoverlay">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-cdparanoiasrc.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-cdparanoiasrc.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-cdparanoiasrc.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-cdparanoiasrc.properties" class="shortcut">Properties</a></span><span id="nav_signals"> <span class="dim">|</span> 
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-cdparanoiasrc.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-cdparanoiasrc.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-cdparanoiasrc.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-cdparanoiasrc.properties" class="shortcut">Properties</a></span><span id="nav_signals">  <span class="dim">|</span> 
                   <a href="#gst-plugins-base-plugins-cdparanoiasrc.signals" class="shortcut">Signals</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
@@ -45,13 +45,13 @@
 </colgroup>
 <tbody>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-cdparanoiasrc.html#GstCdParanoiaSrc--cache-size" title="The “cache-size” property">cache-size</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
 <td class="property_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-cdparanoiasrc.html#GstCdParanoiaSrc--generic-device" title="The “generic-device” property">generic-device</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
@@ -61,12 +61,12 @@
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-cdparanoiasrc.html#GstCdParanoiaSrc--read-speed" title="The “read-speed” property">read-speed</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-cdparanoiasrc.html#GstCdParanoiaSrc--search-overlap" title="The “search-overlap” property">search-overlap</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
@@ -110,8 +110,8 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-cdparanoiasrc.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-    <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+<pre class="screen">    <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
         <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
             <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
                 <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSrc.html">GstBaseSrc</a>
@@ -203,7 +203,7 @@
 <a name="gst-plugins-base-plugins-cdparanoiasrc.property-details"></a><h2>Property Details</h2>
 <div class="refsect2">
 <a name="GstCdParanoiaSrc--cache-size"></a><h3>The <code class="literal">“cache-size”</code> property</h3>
-<pre class="programlisting">  “cache-size”               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<pre class="programlisting">  “cache-size”               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
 <p>Set CD cache size to n sectors (-1 = auto).</p>
 <p>Flags: Read / Write</p>
 <p>Allowed values: &gt;= G_MAXULONG</p>
@@ -212,7 +212,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstCdParanoiaSrc--generic-device"></a><h3>The <code class="literal">“generic-device”</code> property</h3>
-<pre class="programlisting">  “generic-device”           <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
+<pre class="programlisting">  “generic-device”           <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
 <p>Use specified generic scsi device.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: NULL</p>
@@ -228,7 +228,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstCdParanoiaSrc--read-speed"></a><h3>The <code class="literal">“read-speed”</code> property</h3>
-<pre class="programlisting">  “read-speed”               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<pre class="programlisting">  “read-speed”               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
 <p>Read from device at specified speed (-1 and 0 = full speed).</p>
 <p>Flags: Read / Write</p>
 <p>Allowed values: &gt;= G_MAXULONG</p>
@@ -237,7 +237,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstCdParanoiaSrc--search-overlap"></a><h3>The <code class="literal">“search-overlap”</code> property</h3>
-<pre class="programlisting">  “search-overlap”           <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<pre class="programlisting">  “search-overlap”           <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
 <p>Force minimum overlap search during verification to n sectors.</p>
 <p>Flags: Read / Write</p>
 <p>Allowed values: [G_MAXULONG,75]</p>
@@ -250,8 +250,8 @@
 <a name="GstCdParanoiaSrc-transport-error"></a><h3>The <code class="literal">“transport-error”</code> signal</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 user_function (<a class="link" href="gst-plugins-base-plugins-cdparanoiasrc.html#GstCdParanoiaSrc"><span class="type">GstCdParanoiaSrc</span></a> *gstcdparanoiasrc,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>              arg1,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>          user_data)</pre>
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>              arg1,
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>          user_data)</pre>
 <p>
 </p>
 <div class="refsect3">
@@ -283,8 +283,8 @@
 <a name="GstCdParanoiaSrc-uncorrected-error"></a><h3>The <code class="literal">“uncorrected-error”</code> signal</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 user_function (<a class="link" href="gst-plugins-base-plugins-cdparanoiasrc.html#GstCdParanoiaSrc"><span class="type">GstCdParanoiaSrc</span></a> *gstcdparanoiasrc,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>              arg1,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>          user_data)</pre>
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>              arg1,
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>          user_data)</pre>
 <p>
 </p>
 <div class="refsect3">
@@ -315,6 +315,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-clockoverlay.html b/docs/plugins/html/gst-plugins-base-plugins-clockoverlay.html
index 30262e4..aec6fb5 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-clockoverlay.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-clockoverlay.html
@@ -8,15 +8,15 @@
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-cdparanoiasrc.html" title="cdparanoiasrc">
 <link rel="next" href="gst-plugins-base-plugins-decodebin.html" title="decodebin">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-clockoverlay.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-clockoverlay.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> 
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-clockoverlay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-clockoverlay.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
                   <a href="#gst-plugins-base-plugins-clockoverlay.properties" class="shortcut">Properties</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
@@ -43,7 +43,7 @@
 </colgroup>
 <tbody><tr>
 <td class="property_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-clockoverlay.html#GstClockOverlay--time-format" title="The “time-format” property">time-format</a></td>
 <td class="property_flags">Read / Write</td>
 </tr></tbody>
@@ -64,8 +64,8 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-clockoverlay.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-    <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+<pre class="screen">    <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
         <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
             <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
                 <span class="lineart">╰──</span> GstBaseTextOverlay
@@ -181,7 +181,7 @@
 <a name="gst-plugins-base-plugins-clockoverlay.property-details"></a><h2>Property Details</h2>
 <div class="refsect2">
 <a name="GstClockOverlay--time-format"></a><h3>The <code class="literal">“time-format”</code> property</h3>
-<pre class="programlisting">  “time-format”              <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
+<pre class="programlisting">  “time-format”              <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
 <p>Format to use for time and date value, as in strftime.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: "%H:%M:%S"</p>
@@ -190,6 +190,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-decodebin.html b/docs/plugins/html/gst-plugins-base-plugins-decodebin.html
index fe758a9..6409ddd 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-decodebin.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-decodebin.html
@@ -8,17 +8,17 @@
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-clockoverlay.html" title="clockoverlay">
 <link rel="next" href="gst-plugins-base-plugins-encodebin.html" title="encodebin">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-decodebin.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-decodebin.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-decodebin.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-decodebin.properties" class="shortcut">Properties</a></span><span id="nav_signals"> <span class="dim">|</span> 
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-decodebin.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-decodebin.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-decodebin.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-decodebin.properties" class="shortcut">Properties</a></span><span id="nav_signals">  <span class="dim">|</span> 
                   <a href="#gst-plugins-base-plugins-decodebin.signals" class="shortcut">Signals</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
@@ -46,7 +46,7 @@
 <tbody>
 <tr>
 <td class="property_type">
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *</td>
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> *</td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-decodebin.html#GstDecodeBin--caps" title="The “caps” property">caps</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
@@ -56,27 +56,27 @@
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-decodebin.html#GstDecodeBin--expose-all-streams" title="The “expose-all-streams” property">expose-all-streams</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-decodebin.html#GstDecodeBin--high-percent" title="The “high-percent” property">high-percent</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-decodebin.html#GstDecodeBin--low-percent" title="The “low-percent” property">low-percent</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-decodebin.html#GstDecodeBin--max-size-buffers" title="The “max-size-buffers” property">max-size-buffers</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-decodebin.html#GstDecodeBin--max-size-bytes" title="The “max-size-bytes” property">max-size-bytes</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
@@ -86,24 +86,24 @@
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-decodebin.html#GstDecodeBin--post-stream-topology" title="The “post-stream-topology” property">post-stream-topology</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
 <td class="property_type">
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *</td>
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> *</td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-decodebin.html#GstDecodeBin--sink-caps" title="The “sink-caps” property">sink-caps</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
 <td class="property_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-decodebin.html#GstDecodeBin--subtitle-encoding" title="The “subtitle-encoding” property">subtitle-encoding</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-decodebin.html#GstDecodeBin--use-buffering" title="The “use-buffering” property">use-buffering</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
@@ -120,18 +120,18 @@
 </colgroup>
 <tbody>
 <tr>
-<td class="signal_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a></td>
+<td class="signal_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a></td>
 <td class="signal_name"><a class="link" href="gst-plugins-base-plugins-decodebin.html#GstDecodeBin-autoplug-continue" title="The “autoplug-continue” signal">autoplug-continue</a></td>
 <td class="signal_flags">Run Last</td>
 </tr>
 <tr>
 <td class="signal_type">
-<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Value-arrays.html#GValueArray"><span class="returnvalue">GValueArray</span></a>*</td>
+<a href="https://developer.gnome.org/gobject/unstable/gobject-Value-arrays.html#GValueArray"><span class="returnvalue">GValueArray</span></a>*</td>
 <td class="signal_name"><a class="link" href="gst-plugins-base-plugins-decodebin.html#GstDecodeBin-autoplug-factories" title="The “autoplug-factories” signal">autoplug-factories</a></td>
 <td class="signal_flags">Run Last</td>
 </tr>
 <tr>
-<td class="signal_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a></td>
+<td class="signal_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a></td>
 <td class="signal_name"><a class="link" href="gst-plugins-base-plugins-decodebin.html#GstDecodeBin-autoplug-query" title="The “autoplug-query” signal">autoplug-query</a></td>
 <td class="signal_flags">Run Last</td>
 </tr>
@@ -142,7 +142,7 @@
 </tr>
 <tr>
 <td class="signal_type">
-<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Value-arrays.html#GValueArray"><span class="returnvalue">GValueArray</span></a>*</td>
+<a href="https://developer.gnome.org/gobject/unstable/gobject-Value-arrays.html#GValueArray"><span class="returnvalue">GValueArray</span></a>*</td>
 <td class="signal_name"><a class="link" href="gst-plugins-base-plugins-decodebin.html#GstDecodeBin-autoplug-sort" title="The “autoplug-sort” signal">autoplug-sort</a></td>
 <td class="signal_flags">Run Last</td>
 </tr>
@@ -174,8 +174,8 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-decodebin.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-    <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+<pre class="screen">    <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
         <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
             <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
                 <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBin.html">GstBin</a>
@@ -293,7 +293,7 @@
 <a name="gst-plugins-base-plugins-decodebin.property-details"></a><h2>Property Details</h2>
 <div class="refsect2">
 <a name="GstDecodeBin--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> *</pre>
+<pre class="programlisting">  “caps”                     <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> *</pre>
 <p>The caps on which to stop decoding.</p>
 <p>Flags: Read / Write</p>
 </div>
@@ -309,7 +309,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstDecodeBin--expose-all-streams"></a><h3>The <code class="literal">“expose-all-streams”</code> property</h3>
-<pre class="programlisting">  “expose-all-streams”       <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<pre class="programlisting">  “expose-all-streams”       <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
 <p>Expose all streams, including those of unknown type or that don't match the 'caps' property.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: TRUE</p>
@@ -317,7 +317,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstDecodeBin--high-percent"></a><h3>The <code class="literal">“high-percent”</code> property</h3>
-<pre class="programlisting">  “high-percent”             <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<pre class="programlisting">  “high-percent”             <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
 <p>High threshold percent for buffering to finish.</p>
 <p>Flags: Read / Write</p>
 <p>Allowed values: [0,100]</p>
@@ -326,7 +326,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstDecodeBin--low-percent"></a><h3>The <code class="literal">“low-percent”</code> property</h3>
-<pre class="programlisting">  “low-percent”              <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<pre class="programlisting">  “low-percent”              <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
 <p>Low threshold percent for buffering to start.</p>
 <p>Flags: Read / Write</p>
 <p>Allowed values: [0,100]</p>
@@ -335,7 +335,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstDecodeBin--max-size-buffers"></a><h3>The <code class="literal">“max-size-buffers”</code> property</h3>
-<pre class="programlisting">  “max-size-buffers”         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre>
+<pre class="programlisting">  “max-size-buffers”         <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre>
 <p>Max amount of buffers in the queue (0=automatic).</p>
 <p>Flags: Read / Write</p>
 <p>Default value: 0</p>
@@ -343,7 +343,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstDecodeBin--max-size-bytes"></a><h3>The <code class="literal">“max-size-bytes”</code> property</h3>
-<pre class="programlisting">  “max-size-bytes”           <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre>
+<pre class="programlisting">  “max-size-bytes”           <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre>
 <p>Max amount of bytes in the queue (0=automatic).</p>
 <p>Flags: Read / Write</p>
 <p>Default value: 0</p>
@@ -359,7 +359,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstDecodeBin--post-stream-topology"></a><h3>The <code class="literal">“post-stream-topology”</code> property</h3>
-<pre class="programlisting">  “post-stream-topology”     <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<pre class="programlisting">  “post-stream-topology”     <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
 <p>Post stream-topology messages.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: FALSE</p>
@@ -367,14 +367,14 @@
 <hr>
 <div class="refsect2">
 <a name="GstDecodeBin--sink-caps"></a><h3>The <code class="literal">“sink-caps”</code> property</h3>
-<pre class="programlisting">  “sink-caps”                <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *</pre>
+<pre class="programlisting">  “sink-caps”                <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> *</pre>
 <p>The caps of the input data. (NULL = use typefind element).</p>
 <p>Flags: Read / Write</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstDecodeBin--subtitle-encoding"></a><h3>The <code class="literal">“subtitle-encoding”</code> property</h3>
-<pre class="programlisting">  “subtitle-encoding”        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
+<pre class="programlisting">  “subtitle-encoding”        <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
 <p>Encoding to assume if input subtitles are not in UTF-8 encoding. If not set, the GST_SUBTITLE_ENCODING environment variable will be checked for an encoding to use. If that is not set either, ISO-8859-15 will be assumed.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: NULL</p>
@@ -382,7 +382,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstDecodeBin--use-buffering"></a><h3>The <code class="literal">“use-buffering”</code> property</h3>
-<pre class="programlisting">  “use-buffering”            <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<pre class="programlisting">  “use-buffering”            <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
 <p>Emit GST_MESSAGE_BUFFERING based on low-/high-percent thresholds.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: FALSE</p>
@@ -392,20 +392,27 @@
 <a name="gst-plugins-base-plugins-decodebin.signal-details"></a><h2>Signal Details</h2>
 <div class="refsect2">
 <a name="GstDecodeBin-autoplug-continue"></a><h3>The <code class="literal">“autoplug-continue”</code> signal</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 user_function (<a class="link" href="gst-plugins-base-plugins-decodebin.html#GstDecodeBin"><span class="type">GstDecodeBin</span></a> *bin,
                <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a>       *pad,
-               <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="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>      user_data)</pre>
+               <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a>      *caps,
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>      user_data)</pre>
 <p>This signal is emitted whenever decodebin finds a new stream. It is
 emitted before looking for any elements that can handle that stream.</p>
 <div class="note">
   Invocation of signal handlers stops after the first signal handler
-returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><span class="type">FALSE</span></a>. Signal handlers are invoked in the order they were
+  returns <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><span class="type">FALSE</span></a>. Signal handlers are invoked in the order they were
   connected in.
 </div>
+<p>
+</p>
+<p></p>
+<p>
+@:
+@:
+@:</p>
 <div class="refsect3">
-<a name="id-1.2.13.13.2.6"></a><h4>Parameters</h4>
+<a name="id-1.2.13.13.2.7"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -425,7 +432,7 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>caps</p></td>
-<td class="parameter_description"><p>The <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> found.</p></td>
+<td class="parameter_description"><p>The <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> found.</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
@@ -437,10 +444,10 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.13.13.2.7"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><span class="type">TRUE</span></a> if you wish decodebin to look for elements that can
+<a name="id-1.2.13.13.2.8"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><span class="type">TRUE</span></a> if you wish decodebin to look for elements that can
 handle the given <em class="parameter"><code>caps</code></em>
-. If <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><span class="type">FALSE</span></a>, those caps will be considered as
+. If <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><span class="type">FALSE</span></a>, those caps will be considered as
 final and the pad will be exposed as such (see 'pad-added' signal of
 <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a>).</p>
 <p></p>
@@ -450,11 +457,11 @@
 <hr>
 <div class="refsect2">
 <a name="GstDecodeBin-autoplug-factories"></a><h3>The <code class="literal">“autoplug-factories”</code> signal</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Value-arrays.html#GValueArray"><span class="returnvalue">GValueArray</span></a>*
+<pre class="programlisting"><a href="https://developer.gnome.org/gobject/unstable/gobject-Value-arrays.html#GValueArray"><span class="returnvalue">GValueArray</span></a>*
 user_function (<a class="link" href="gst-plugins-base-plugins-decodebin.html#GstDecodeBin"><span class="type">GstDecodeBin</span></a> *bin,
                <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a>       *pad,
-               <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="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>      user_data)</pre>
+               <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a>      *caps,
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>      user_data)</pre>
 <p>This function is emited when an array of possible factories for <em class="parameter"><code>caps</code></em>
  on
 <em class="parameter"><code>pad</code></em>
@@ -469,8 +476,15 @@
   Don't connect signal handlers with the <span class="type">G_CONNECT_AFTER</span> flag to this
   signal, they will never be invoked!
 </div>
+<p>
+</p>
+<p></p>
+<p>
+@:
+@:
+@:</p>
 <div class="refsect3">
-<a name="id-1.2.13.13.3.8"></a><h4>Parameters</h4>
+<a name="id-1.2.13.13.3.9"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -490,7 +504,7 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>caps</p></td>
-<td class="parameter_description"><p>The <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> found.</p></td>
+<td class="parameter_description"><p>The <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> found.</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
@@ -502,8 +516,8 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.13.13.3.9"></a><h4>Returns</h4>
-<p> a <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Value-arrays.html#GValueArray"><span class="type">GValueArray</span></a>* with a list of factories to try. The factories are
+<a name="id-1.2.13.13.3.10"></a><h4>Returns</h4>
+<p> a <a href="https://developer.gnome.org/gobject/unstable/gobject-Value-arrays.html#GValueArray"><span class="type">GValueArray</span></a>* with a list of factories to try. The factories are
 by default tried in the returned order or based on the index returned by
 "autoplug-select".</p>
 <p></p>
@@ -513,16 +527,23 @@
 <hr>
 <div class="refsect2">
 <a name="GstDecodeBin-autoplug-query"></a><h3>The <code class="literal">“autoplug-query”</code> signal</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 user_function (<a class="link" href="gst-plugins-base-plugins-decodebin.html#GstDecodeBin"><span class="type">GstDecodeBin</span></a> *bin,
                <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a>       *child,
                <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a>   *pad,
-               <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstQuery.html#GstQuery"><span class="type">GstQuery</span></a>     *query,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>      user_data)</pre>
+               <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstQuery.html"><span class="type">GstQuery</span></a>     *query,
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>      user_data)</pre>
 <p>This signal is emitted whenever an autoplugged element that is
 not linked downstream yet and not exposed does a query. It can
 be used to tell the element about the downstream supported caps
 for example.</p>
+<p>
+</p>
+<p>
+@:
+@:
+@:
+@:</p>
 <div class="refsect3">
 <a name="id-1.2.13.13.4.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
@@ -549,7 +570,7 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>query</p></td>
-<td class="parameter_description"><p>The <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstQuery.html#GstQuery"><span class="type">GstQuery</span></a>.</p></td>
+<td class="parameter_description"><p>The <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstQuery.html"><span class="type">GstQuery</span></a>.</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
@@ -562,7 +583,7 @@
 </div>
 <div class="refsect3">
 <a name="id-1.2.13.13.4.6"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><span class="type">TRUE</span></a> if the query was handled, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><span class="type">FALSE</span></a> otherwise.</p>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><span class="type">TRUE</span></a> if the query was handled, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><span class="type">FALSE</span></a> otherwise.</p>
 <p></p>
 </div>
 <p>Flags: Run Last</p>
@@ -573,9 +594,9 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-plugins-uridecodebin.html#GstAutoplugSelectResult" title="enum GstAutoplugSelectResult"><span class="returnvalue">GstAutoplugSelectResult</span></a>
 user_function (<a class="link" href="gst-plugins-base-plugins-decodebin.html#GstDecodeBin"><span class="type">GstDecodeBin</span></a>      *bin,
                <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a>            *pad,
-               <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="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a>           *caps,
                <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElementFactory.html"><span class="type">GstElementFactory</span></a> *factory,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>           user_data)</pre>
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>           user_data)</pre>
 <p>This signal is emitted once decodebin has found all the possible
 <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElementFactory.html"><span class="type">GstElementFactory</span></a> that can be used to handle the given <em class="parameter"><code>caps</code></em>
 . For each of
@@ -598,8 +619,16 @@
   GST_AUTOPLUG_SELECT_TRY from one signal handler, handlers that get
   registered next (again, if any) can override that decision.
 </div>
+<p>
+</p>
+<p></p>
+<p>
+@:
+@:
+@:
+@:</p>
 <div class="refsect3">
-<a name="id-1.2.13.13.5.10"></a><h4>Parameters</h4>
+<a name="id-1.2.13.13.5.11"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -619,7 +648,7 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>caps</p></td>
-<td class="parameter_description"><p>The <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>.</p></td>
+<td class="parameter_description"><p>The <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a>.</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
@@ -636,7 +665,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.13.13.5.11"></a><h4>Returns</h4>
+<a name="id-1.2.13.13.5.12"></a><h4>Returns</h4>
 <p> a <span class="type">GST_TYPE_AUTOPLUG_SELECT_RESULT</span> that indicates the required
 operation. the default handler will always return
 <a class="link" href="gst-plugins-base-plugins-uridecodebin.html#GST-AUTOPLUG-SELECT-TRY:CAPS"><span class="type">GST_AUTOPLUG_SELECT_TRY</span></a>.</p>
@@ -647,12 +676,12 @@
 <hr>
 <div class="refsect2">
 <a name="GstDecodeBin-autoplug-sort"></a><h3>The <code class="literal">“autoplug-sort”</code> signal</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Value-arrays.html#GValueArray"><span class="returnvalue">GValueArray</span></a>*
+<pre class="programlisting"><a href="https://developer.gnome.org/gobject/unstable/gobject-Value-arrays.html#GValueArray"><span class="returnvalue">GValueArray</span></a>*
 user_function (<a class="link" href="gst-plugins-base-plugins-decodebin.html#GstDecodeBin"><span class="type">GstDecodeBin</span></a> *bin,
                <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a>       *pad,
-               <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="http://library.gnome.org/devel/gobject/unstable/gobject-Value-arrays.html#GValueArray"><span class="type">GValueArray</span></a>  *factories,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>      user_data)</pre>
+               <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a>      *caps,
+               <a href="https://developer.gnome.org/gobject/unstable/gobject-Value-arrays.html#GValueArray"><span class="type">GValueArray</span></a>  *factories,
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>      user_data)</pre>
 <p>Once decodebin has found the possible <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElementFactory.html"><span class="type">GstElementFactory</span></a> objects to try
 for <em class="parameter"><code>caps</code></em>
  on <em class="parameter"><code>pad</code></em>
@@ -660,17 +689,25 @@
 the application to perform additional sorting or filtering on the element
 factory array.</p>
 <p>The callee should copy and modify <em class="parameter"><code>factories</code></em>
- or return <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> if the
+ or return <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> if the
 order should not change.</p>
 <div class="note">
   Invocation of signal handlers stops after one signal handler has
-  returned something else than <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a>. Signal handlers are invoked in
+  returned something else than <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a>. Signal handlers are invoked in
   the order they were connected in.
   Don't connect signal handlers with the <span class="type">G_CONNECT_AFTER</span> flag to this
   signal, they will never be invoked!
 </div>
+<p>
+</p>
+<p></p>
+<p>
+@:
+@:
+@:
+@:</p>
 <div class="refsect3">
-<a name="id-1.2.13.13.6.7"></a><h4>Parameters</h4>
+<a name="id-1.2.13.13.6.8"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -690,12 +727,12 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>caps</p></td>
-<td class="parameter_description"><p>The <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>.</p></td>
+<td class="parameter_description"><p>The <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a>.</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
 <td class="parameter_name"><p>factories</p></td>
-<td class="parameter_description"><p>A <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Value-arrays.html#GValueArray"><span class="type">GValueArray</span></a> of possible <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElementFactory.html"><span class="type">GstElementFactory</span></a> to use.</p></td>
+<td class="parameter_description"><p>A <a href="https://developer.gnome.org/gobject/unstable/gobject-Value-arrays.html#GValueArray"><span class="type">GValueArray</span></a> of possible <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElementFactory.html"><span class="type">GstElementFactory</span></a> to use.</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
@@ -707,7 +744,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.13.13.6.8"></a><h4>Returns</h4>
+<a name="id-1.2.13.13.6.9"></a><h4>Returns</h4>
 <p> A new sorted array of <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElementFactory.html"><span class="type">GstElementFactory</span></a> objects.</p>
 <p></p>
 </div>
@@ -718,8 +755,12 @@
 <a name="GstDecodeBin-drained"></a><h3>The <code class="literal">“drained”</code> signal</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 user_function (<a class="link" href="gst-plugins-base-plugins-decodebin.html#GstDecodeBin"><span class="type">GstDecodeBin</span></a> *bin,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>      user_data)</pre>
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>      user_data)</pre>
 <p>This signal is emitted once decodebin has finished decoding all the data.</p>
+<p>
+</p>
+<p>
+@:</p>
 <div class="refsect3">
 <a name="id-1.2.13.13.7.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
@@ -750,10 +791,16 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 user_function (<a class="link" href="gst-plugins-base-plugins-decodebin.html#GstDecodeBin"><span class="type">GstDecodeBin</span></a> *bin,
                <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a>       *pad,
-               <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="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>      user_data)</pre>
+               <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a>      *caps,
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>      user_data)</pre>
 <p>This signal is emitted when a pad for which there is no further possible
 decoding is added to the decodebin.</p>
+<p>
+</p>
+<p>
+@:
+@:
+@:</p>
 <div class="refsect3">
 <a name="id-1.2.13.13.8.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
@@ -776,7 +823,7 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>caps</p></td>
-<td class="parameter_description"><p>The <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> of the pad that cannot be resolved.</p></td>
+<td class="parameter_description"><p>The <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> of the pad that cannot be resolved.</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
@@ -793,6 +840,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-encodebin.html b/docs/plugins/html/gst-plugins-base-plugins-encodebin.html
index 424ca2f..2cb36e2 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-encodebin.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-encodebin.html
@@ -8,17 +8,17 @@
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-decodebin.html" title="decodebin">
 <link rel="next" href="gst-plugins-base-plugins-videoconvert.html" title="videoconvert">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-encodebin.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-encodebin.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-encodebin.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-encodebin.properties" class="shortcut">Properties</a></span><span id="nav_signals"> <span class="dim">|</span> 
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-encodebin.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-encodebin.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-encodebin.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-encodebin.properties" class="shortcut">Properties</a></span><span id="nav_signals">  <span class="dim">|</span> 
                   <a href="#gst-plugins-base-plugins-encodebin.signals" class="shortcut">Signals</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
@@ -50,7 +50,7 @@
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-encodebin.html#GstEncodeBin--avoid-reencoding" title="The “avoid-reencoding” property">avoid-reencoding</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
@@ -66,12 +66,12 @@
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-encodebin.html#GstEncodeBin--queue-buffers-max" title="The “queue-buffers-max” property">queue-buffers-max</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-encodebin.html#GstEncodeBin--queue-bytes-max" title="The “queue-bytes-max” property">queue-bytes-max</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
@@ -122,8 +122,8 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-encodebin.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-    <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+<pre class="screen">    <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
         <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
             <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
                 <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBin.html">GstBin</a>
@@ -200,7 +200,7 @@
 </li>
 <li class="listitem">
 Missing plugin support. If a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> is missing to encode/mux to the
-request profile formats, a missing-plugin <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="type">GstMessage</span></a> will be posted on the
+request profile formats, a missing-plugin <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMessage.html"><span class="type">GstMessage</span></a> will be posted on the
 <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBus.html"><span class="type">GstBus</span></a>, allowing systems that support the missing-plugin system to offer the
 user a way to install the missing element.
 </li>
@@ -361,7 +361,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstEncodeBin--avoid-reencoding"></a><h3>The <code class="literal">“avoid-reencoding”</code> property</h3>
-<pre class="programlisting">  “avoid-reencoding”         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<pre class="programlisting">  “avoid-reencoding”         <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
 <p>Whether to re-encode portions of compatible video streams that lay on segment boundaries.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: FALSE</p>
@@ -378,13 +378,13 @@
 <a name="GstEncodeBin--profile"></a><h3>The <code class="literal">“profile”</code> property</h3>
 <pre class="programlisting">  “profile”                  <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *</pre>
 <p>The <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> to use. This property must be set before going
-to <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> or higher.</p>
+to <code class="literal">GST_STATE_PAUSED</code> or higher.</p>
 <p>Flags: Read / Write</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstEncodeBin--queue-buffers-max"></a><h3>The <code class="literal">“queue-buffers-max”</code> property</h3>
-<pre class="programlisting">  “queue-buffers-max”        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre>
+<pre class="programlisting">  “queue-buffers-max”        <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre>
 <p>Max. number of buffers in the queue (0=disable).</p>
 <p>Flags: Read / Write</p>
 <p>Default value: 200</p>
@@ -392,7 +392,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstEncodeBin--queue-bytes-max"></a><h3>The <code class="literal">“queue-bytes-max”</code> property</h3>
-<pre class="programlisting">  “queue-bytes-max”          <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre>
+<pre class="programlisting">  “queue-bytes-max”          <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre>
 <p>Max. amount of data in the queue (bytes, 0=disable).</p>
 <p>Flags: Read / Write</p>
 <p>Default value: 10485760</p>
@@ -412,8 +412,8 @@
 <a name="GstEncodeBin-request-pad"></a><h3>The <code class="literal">“request-pad”</code> signal</h3>
 <pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="returnvalue">GstPad</span></a>*
 user_function (<a class="link" href="gst-plugins-base-plugins-encodebin.html#GstEncodeBin"><span class="type">GstEncodeBin</span></a> *encodebin,
-               <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="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>      user_data)</pre>
+               <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a>      *caps,
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>      user_data)</pre>
 <p>Use this method to request an unused sink request <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> that can take the
 provided <em class="parameter"><code>caps</code></em>
  as input. You must release the pad with
@@ -434,7 +434,7 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>caps</p></td>
-<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a></p></td>
+<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a></p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
@@ -447,7 +447,7 @@
 </div>
 <div class="refsect3">
 <a name="id-1.2.14.13.2.6"></a><h4>Returns</h4>
-<p> A compatible <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if no compatible <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> could be
+<p> A compatible <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a>, or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if no compatible <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> could be
 created or is available.</p>
 <p></p>
 </div>
@@ -458,8 +458,8 @@
 <a name="GstEncodeBin-request-profile-pad"></a><h3>The <code class="literal">“request-profile-pad”</code> signal</h3>
 <pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="returnvalue">GstPad</span></a>*
 user_function (<a class="link" href="gst-plugins-base-plugins-encodebin.html#GstEncodeBin"><span class="type">GstEncodeBin</span></a> *encodebin,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>        *profilename,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>      user_data)</pre>
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>        *profilename,
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>      user_data)</pre>
 <p>Use this method to request an unused sink request <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> from the profile
 <em class="parameter"><code>profilename</code></em>
 . You must release the pad with
@@ -493,7 +493,7 @@
 </div>
 <div class="refsect3">
 <a name="id-1.2.14.13.3.6"></a><h4>Returns</h4>
-<p> A compatible <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if no compatible <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> could be
+<p> A compatible <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a>, or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if no compatible <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> could be
 created or is available.</p>
 <p></p>
 </div>
@@ -503,6 +503,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-giosink.html b/docs/plugins/html/gst-plugins-base-plugins-giosink.html
index c090dc8..f30276e 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-giosink.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-giosink.html
@@ -8,16 +8,16 @@
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-videoconvert.html" title="videoconvert">
 <link rel="next" href="gst-plugins-base-plugins-giosrc.html" title="giosrc">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-giosink.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-giosink.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-giosink.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties"> <span class="dim">|</span> 
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-giosink.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-giosink.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-giosink.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties">  <span class="dim">|</span> 
                   <a href="#gst-plugins-base-plugins-giosink.properties" class="shortcut">Properties</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
@@ -45,13 +45,13 @@
 <tbody>
 <tr>
 <td class="property_type">
-<a href="http://library.gnome.org/devel/gio/unstable/GFile.html"><span class="type">GFile</span></a> *</td>
+<a href="https://developer.gnome.org/gio/unstable/GFile.html"><span class="type">GFile</span></a> *</td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-giosink.html#GstGioSink--file" title="The “file” property">file</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
 <td class="property_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-giosink.html#GstGioSink--location" title="The “location” property">location</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
@@ -73,8 +73,8 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-giosink.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-    <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+<pre class="screen">    <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
         <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
             <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
                 <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSink.html">GstBaseSink</a>
@@ -94,9 +94,9 @@
 by an URI. This location can be specified using any protocol supported by
 the GIO library or it's VFS backends. Common protocols are 'file', 'ftp',
 or 'smb'.</p>
-<p>If the URI or <a href="http://library.gnome.org/devel/gio/unstable/GFile.html"><span class="type">GFile</span></a> already exists giosink will post a message of
-type <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GST-MESSAGE-ELEMENT:CAPS"><code class="literal">GST_MESSAGE_ELEMENT</code></a> with name "file-exists" on the bus. The message
-also contains the <a href="http://library.gnome.org/devel/gio/unstable/GFile.html"><span class="type">GFile</span></a> and the corresponding URI.
+<p>If the URI or <a href="https://developer.gnome.org/gio/unstable/GFile.html"><span class="type">GFile</span></a> already exists giosink will post a message of
+type <code class="literal">GST_MESSAGE_ELEMENT</code> with name "file-exists" on the bus. The message
+also contains the <a href="https://developer.gnome.org/gio/unstable/GFile.html"><span class="type">GFile</span></a> and the corresponding URI.
 Applications can use the "file-exists" message to notify the user about
 the problem and to set a different target location or to remove the
 existing file. Note that right after the "file-exists" message a normal
@@ -222,14 +222,14 @@
 <a name="gst-plugins-base-plugins-giosink.property-details"></a><h2>Property Details</h2>
 <div class="refsect2">
 <a name="GstGioSink--file"></a><h3>The <code class="literal">“file”</code> property</h3>
-<pre class="programlisting">  “file”                     <a href="http://library.gnome.org/devel/gio/unstable/GFile.html"><span class="type">GFile</span></a> *</pre>
-<p><a href="http://library.gnome.org/devel/gio/unstable/GFile.html"><code class="literal">GFile</code></a> to write to.</p>
+<pre class="programlisting">  “file”                     <a href="https://developer.gnome.org/gio/unstable/GFile.html"><span class="type">GFile</span></a> *</pre>
+<p><a href="https://developer.gnome.org/gio/unstable/GFile.html"><code class="literal">GFile</code></a> to write to.</p>
 <p>Flags: Read / Write</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstGioSink--location"></a><h3>The <code class="literal">“location”</code> property</h3>
-<pre class="programlisting">  “location”                 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
+<pre class="programlisting">  “location”                 <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
 <p>URI location to write to.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: NULL</p>
@@ -237,11 +237,11 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-giosink.see-also"></a><h2>See Also</h2>
-<p><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-plugins/html/gstreamer-plugins-filesink.html#GstFileSink"><span class="type">GstFileSink</span></a>, <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-gnomevfssink.html#GstGnomeVFSSink"><span class="type">GstGnomeVFSSink</span></a>, <a class="link" href="gst-plugins-base-plugins-giosrc.html#GstGioSrc"><span class="type">GstGioSrc</span></a></p>
+<p><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-plugins/html/gstreamer-plugins-filesink.html#GstFileSink"><span class="type">GstFileSink</span></a>, <span class="type">GstGnomeVFSSink</span>, <a class="link" href="gst-plugins-base-plugins-giosrc.html#GstGioSrc"><span class="type">GstGioSrc</span></a></p>
 </div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-giosrc.html b/docs/plugins/html/gst-plugins-base-plugins-giosrc.html
index 6b52feb..2a4f4cf 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-giosrc.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-giosrc.html
@@ -8,16 +8,16 @@
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-giosink.html" title="giosink">
 <link rel="next" href="gst-plugins-base-plugins-giostreamsink.html" title="giostreamsink">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-giosrc.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-giosrc.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-giosrc.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties"> <span class="dim">|</span> 
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-giosrc.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-giosrc.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-giosrc.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties">  <span class="dim">|</span> 
                   <a href="#gst-plugins-base-plugins-giosrc.properties" class="shortcut">Properties</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
@@ -45,13 +45,13 @@
 <tbody>
 <tr>
 <td class="property_type">
-<a href="http://library.gnome.org/devel/gio/unstable/GFile.html"><span class="type">GFile</span></a> *</td>
+<a href="https://developer.gnome.org/gio/unstable/GFile.html"><span class="type">GFile</span></a> *</td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-giosrc.html#GstGioSrc--file" title="The “file” property">file</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
 <td class="property_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-giosrc.html#GstGioSrc--location" title="The “location” property">location</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
@@ -73,8 +73,8 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-giosrc.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-    <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+<pre class="screen">    <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
         <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
             <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
                 <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSrc.html">GstBaseSrc</a>
@@ -94,11 +94,11 @@
 by an URI. This location can be specified using any protocol supported by
 the GIO library or it's VFS backends. Common protocols are 'file', 'http',
 'ftp', or 'smb'.</p>
-<p>If an URI or <a href="http://library.gnome.org/devel/gio/unstable/GFile.html"><span class="type">GFile</span></a> is not mounted giosrc will post a message of type
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GST-MESSAGE-ELEMENT:CAPS"><code class="literal">GST_MESSAGE_ELEMENT</code></a> with name "not-mounted" on the bus. The message
-also contains the <a href="http://library.gnome.org/devel/gio/unstable/GFile.html"><span class="type">GFile</span></a> and the corresponding URI.
-Applications can use the "not-mounted" message to mount the <a href="http://library.gnome.org/devel/gio/unstable/GFile.html"><span class="type">GFile</span></a>
-by calling <a href="http://library.gnome.org/devel/gio/unstable/GFile.html#g-file-mount-enclosing-volume"><code class="function">g_file_mount_enclosing_volume()</code></a> and then restart the
+<p>If an URI or <a href="https://developer.gnome.org/gio/unstable/GFile.html"><span class="type">GFile</span></a> is not mounted giosrc will post a message of type
+<code class="literal">GST_MESSAGE_ELEMENT</code> with name "not-mounted" on the bus. The message
+also contains the <a href="https://developer.gnome.org/gio/unstable/GFile.html"><span class="type">GFile</span></a> and the corresponding URI.
+Applications can use the "not-mounted" message to mount the <a href="https://developer.gnome.org/gio/unstable/GFile.html"><span class="type">GFile</span></a>
+by calling <a href="https://developer.gnome.org/gio/unstable/GFile.html#g-file-mount-enclosing-volume"><code class="function">g_file_mount_enclosing_volume()</code></a> and then restart the
 pipeline after the mounting has succeeded. Note that right after the
 "not-mounted" message a normal error message is posted on the bus which
 should be ignored if "not-mounted" is handled by the application, for
@@ -219,14 +219,14 @@
 <a name="gst-plugins-base-plugins-giosrc.property-details"></a><h2>Property Details</h2>
 <div class="refsect2">
 <a name="GstGioSrc--file"></a><h3>The <code class="literal">“file”</code> property</h3>
-<pre class="programlisting">  “file”                     <a href="http://library.gnome.org/devel/gio/unstable/GFile.html"><span class="type">GFile</span></a> *</pre>
-<p><a href="http://library.gnome.org/devel/gio/unstable/GFile.html"><code class="literal">GFile</code></a> to read from.</p>
+<pre class="programlisting">  “file”                     <a href="https://developer.gnome.org/gio/unstable/GFile.html"><span class="type">GFile</span></a> *</pre>
+<p><a href="https://developer.gnome.org/gio/unstable/GFile.html"><code class="literal">GFile</code></a> to read from.</p>
 <p>Flags: Read / Write</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstGioSrc--location"></a><h3>The <code class="literal">“location”</code> property</h3>
-<pre class="programlisting">  “location”                 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
+<pre class="programlisting">  “location”                 <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
 <p>URI location to read from.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: NULL</p>
@@ -234,11 +234,11 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-giosrc.see-also"></a><h2>See Also</h2>
-<p><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-plugins/html/gstreamer-plugins-filesrc.html#GstFileSrc"><span class="type">GstFileSrc</span></a>, <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-gnomevfssrc.html#GstGnomeVFSSrc"><span class="type">GstGnomeVFSSrc</span></a>, <a class="link" href="gst-plugins-base-plugins-giosink.html#GstGioSink"><span class="type">GstGioSink</span></a></p>
+<p><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-plugins/html/gstreamer-plugins-filesrc.html#GstFileSrc"><span class="type">GstFileSrc</span></a>, <span class="type">GstGnomeVFSSrc</span>, <a class="link" href="gst-plugins-base-plugins-giosink.html#GstGioSink"><span class="type">GstGioSink</span></a></p>
 </div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-giostreamsink.html b/docs/plugins/html/gst-plugins-base-plugins-giostreamsink.html
index d0166fe..cae09f8 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-giostreamsink.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-giostreamsink.html
@@ -8,15 +8,15 @@
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-giosrc.html" title="giosrc">
 <link rel="next" href="gst-plugins-base-plugins-giostreamsrc.html" title="giostreamsrc">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-giostreamsink.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-giostreamsink.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> 
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-giostreamsink.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-giostreamsink.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
                   <a href="#gst-plugins-base-plugins-giostreamsink.properties" class="shortcut">Properties</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
@@ -43,7 +43,7 @@
 </colgroup>
 <tbody><tr>
 <td class="property_type">
-<a href="http://library.gnome.org/devel/gio/unstable/GOutputStream.html"><span class="type">GOutputStream</span></a> *</td>
+<a href="https://developer.gnome.org/gio/unstable/GOutputStream.html"><span class="type">GOutputStream</span></a> *</td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-giostreamsink.html#GstGioStreamSink--stream" title="The “stream” property">stream</a></td>
 <td class="property_flags">Read / Write</td>
 </tr></tbody>
@@ -64,8 +64,8 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-giostreamsink.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-    <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+<pre class="screen">    <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
         <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
             <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
                 <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSink.html">GstBaseSink</a>
@@ -75,13 +75,13 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-giostreamsink.description"></a><h2>Description</h2>
-<p>This plugin writes incoming data to a custom GIO <a href="http://library.gnome.org/devel/gio/unstable/GOutputStream.html"><span class="type">GOutputStream</span></a>.</p>
+<p>This plugin writes incoming data to a custom GIO <a href="https://developer.gnome.org/gio/unstable/GOutputStream.html"><span class="type">GOutputStream</span></a>.</p>
 <p>It can, for example, be used to write a stream to memory with a
 <span class="type">GMemoryOuputStream</span> or to write to a file with a <span class="type">GFileOuputStream</span>.</p>
 <div class="refsect2">
 <a name="id-1.2.18.7.4"></a><h3>Example code</h3>
 <p>
-The following example writes the received data to a <a href="http://library.gnome.org/devel/gio/unstable/GMemoryOutputStream.html"><span class="type">GMemoryOutputStream</span></a>.
+The following example writes the received data to a <a href="https://developer.gnome.org/gio/unstable/GMemoryOutputStream.html"><span class="type">GMemoryOutputStream</span></a>.
 </p>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
@@ -122,10 +122,10 @@
 
 <span class="gtkdoc opt">...</span>
 
-stream <span class="gtkdoc opt">=</span> <span class="function">G_MEMORY_OUTPUT_STREAM</span> <span class="gtkdoc opt">(</span><span class="function"><a href="http://library.gnome.org/devel/gio/unstable/GMemoryOutputStream.html#g-memory-output-stream-new">g_memory_output_stream_new</a></span> <span class="gtkdoc opt">(</span>NULL<span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">,</span>
+stream <span class="gtkdoc opt">=</span> <span class="function">G_MEMORY_OUTPUT_STREAM</span> <span class="gtkdoc opt">(</span><span class="function"><a href="https://developer.gnome.org/gio/unstable/GMemoryOutputStream.html#g-memory-output-stream-new">g_memory_output_stream_new</a></span> <span class="gtkdoc opt">(</span>NULL<span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">,</span>
           <span class="gtkdoc opt">(</span>GReallocFunc<span class="gtkdoc opt">)</span> g_realloc<span class="gtkdoc opt">, (</span>GDestroyNotify<span class="gtkdoc opt">)</span> g_free<span class="gtkdoc opt">));</span>
 sink <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-make">gst_element_factory_make</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;giostreamsink&quot;</span><span class="gtkdoc opt">,</span> <span class="string">&quot;sink&quot;</span><span class="gtkdoc opt">);</span>
-<span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-set">g_object_set</a></span> <span class="gtkdoc opt">(</span><span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#G-OBJECT:CAPS">G_OBJECT</a></span> <span class="gtkdoc opt">(</span>sink<span class="gtkdoc opt">),</span> <span class="string">&quot;stream&quot;</span><span class="gtkdoc opt">,</span> stream<span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">);</span>
+<span class="function"><a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-set">g_object_set</a></span> <span class="gtkdoc opt">(</span><span class="function"><a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#G-OBJECT:CAPS">G_OBJECT</a></span> <span class="gtkdoc opt">(</span>sink<span class="gtkdoc opt">),</span> <span class="string">&quot;stream&quot;</span><span class="gtkdoc opt">,</span> stream<span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">);</span>
 
 <span class="gtkdoc opt">...</span>
 
@@ -215,7 +215,7 @@
 <a name="gst-plugins-base-plugins-giostreamsink.property-details"></a><h2>Property Details</h2>
 <div class="refsect2">
 <a name="GstGioStreamSink--stream"></a><h3>The <code class="literal">“stream”</code> property</h3>
-<pre class="programlisting">  “stream”                   <a href="http://library.gnome.org/devel/gio/unstable/GOutputStream.html"><span class="type">GOutputStream</span></a> *</pre>
+<pre class="programlisting">  “stream”                   <a href="https://developer.gnome.org/gio/unstable/GOutputStream.html"><span class="type">GOutputStream</span></a> *</pre>
 <p>Stream to write to.</p>
 <p>Flags: Read / Write</p>
 </div>
@@ -223,6 +223,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-giostreamsrc.html b/docs/plugins/html/gst-plugins-base-plugins-giostreamsrc.html
index efad485..e697e47 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-giostreamsrc.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-giostreamsrc.html
@@ -8,15 +8,15 @@
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-giostreamsink.html" title="giostreamsink">
 <link rel="next" href="gst-plugins-base-plugins-multifdsink.html" title="multifdsink">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-giostreamsrc.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-giostreamsrc.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> 
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-giostreamsrc.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-giostreamsrc.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
                   <a href="#gst-plugins-base-plugins-giostreamsrc.properties" class="shortcut">Properties</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
@@ -43,7 +43,7 @@
 </colgroup>
 <tbody><tr>
 <td class="property_type">
-<a href="http://library.gnome.org/devel/gio/unstable/GInputStream.html"><span class="type">GInputStream</span></a> *</td>
+<a href="https://developer.gnome.org/gio/unstable/GInputStream.html"><span class="type">GInputStream</span></a> *</td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-giostreamsrc.html#GstGioStreamSrc--stream" title="The “stream” property">stream</a></td>
 <td class="property_flags">Read / Write</td>
 </tr></tbody>
@@ -64,8 +64,8 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-giostreamsrc.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-    <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+<pre class="screen">    <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
         <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
             <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
                 <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSrc.html">GstBaseSrc</a>
@@ -75,14 +75,14 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-giostreamsrc.description"></a><h2>Description</h2>
-<p>This plugin reads data from a custom GIO <a href="http://library.gnome.org/devel/gio/unstable/GInputStream.html"><span class="type">GInputStream</span></a>.</p>
+<p>This plugin reads data from a custom GIO <a href="https://developer.gnome.org/gio/unstable/GInputStream.html"><span class="type">GInputStream</span></a>.</p>
 <p>It can, for example, be used to read data from memory with a
-<a href="http://library.gnome.org/devel/gio/unstable/GMemoryInputStream.html"><span class="type">GMemoryInputStream</span></a> or to read from a file with a
-<a href="http://library.gnome.org/devel/gio/unstable/GFileInputStream.html"><span class="type">GFileInputStream</span></a>.</p>
+<a href="https://developer.gnome.org/gio/unstable/GMemoryInputStream.html"><span class="type">GMemoryInputStream</span></a> or to read from a file with a
+<a href="https://developer.gnome.org/gio/unstable/GFileInputStream.html"><span class="type">GFileInputStream</span></a>.</p>
 <div class="refsect2">
 <a name="id-1.2.19.7.4"></a><h3>Example code</h3>
 <p>
-The following example reads data from a <a href="http://library.gnome.org/devel/gio/unstable/GMemoryInputStream.html"><span class="type">GMemoryInputStream</span></a>.
+The following example reads data from a <a href="https://developer.gnome.org/gio/unstable/GMemoryInputStream.html"><span class="type">GMemoryInputStream</span></a>.
 </p>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
@@ -122,14 +122,14 @@
 gint i<span class="gtkdoc opt">;</span>
 
 <span class="gtkdoc opt">...</span>
-in_data <span class="gtkdoc opt">=</span> <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-new">g_new</a></span> <span class="gtkdoc opt">(</span>guint8<span class="gtkdoc opt">,</span> <span class="number">512</span><span class="gtkdoc opt">);</span>
+in_data <span class="gtkdoc opt">=</span> <span class="function"><a href="https://developer.gnome.org/glib/unstable/glib-Memory-Allocation.html#g-new">g_new</a></span> <span class="gtkdoc opt">(</span>guint8<span class="gtkdoc opt">,</span> <span class="number">512</span><span class="gtkdoc opt">);</span>
 <span class="keyword">for</span> <span class="gtkdoc opt">(</span>i <span class="gtkdoc opt">=</span> <span class="number">0</span><span class="gtkdoc opt">;</span> i <span class="gtkdoc opt">&lt;</span> <span class="number">512</span><span class="gtkdoc opt">;</span> i<span class="gtkdoc opt">++)</span>
   in_data<span class="gtkdoc opt">[</span>i<span class="gtkdoc opt">] =</span> i <span class="gtkdoc opt">%</span> <span class="number">256</span><span class="gtkdoc opt">;</span>
 
-stream <span class="gtkdoc opt">=</span> <span class="function">G_MEMORY_INPUT_STREAM</span> <span class="gtkdoc opt">(</span><span class="function"><a href="http://library.gnome.org/devel/gio/unstable/GMemoryInputStream.html#g-memory-input-stream-new-from-data">g_memory_input_stream_new_from_data</a></span> <span class="gtkdoc opt">(</span>in_data<span class="gtkdoc opt">,</span> <span class="number">512</span><span class="gtkdoc opt">,</span>
+stream <span class="gtkdoc opt">=</span> <span class="function">G_MEMORY_INPUT_STREAM</span> <span class="gtkdoc opt">(</span><span class="function"><a href="https://developer.gnome.org/gio/unstable/GMemoryInputStream.html#g-memory-input-stream-new-from-data">g_memory_input_stream_new_from_data</a></span> <span class="gtkdoc opt">(</span>in_data<span class="gtkdoc opt">,</span> <span class="number">512</span><span class="gtkdoc opt">,</span>
           <span class="gtkdoc opt">(</span>GDestroyNotify<span class="gtkdoc opt">)</span> g_free<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-make">gst_element_factory_make</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;giostreamsrc&quot;</span><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/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-set">g_object_set</a></span> <span class="gtkdoc opt">(</span><span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#G-OBJECT:CAPS">G_OBJECT</a></span> <span class="gtkdoc opt">(</span>src<span class="gtkdoc opt">),</span> <span class="string">&quot;stream&quot;</span><span class="gtkdoc opt">,</span> stream<span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">);</span>
+<span class="function"><a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-set">g_object_set</a></span> <span class="gtkdoc opt">(</span><span class="function"><a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#G-OBJECT:CAPS">G_OBJECT</a></span> <span class="gtkdoc opt">(</span>src<span class="gtkdoc opt">),</span> <span class="string">&quot;stream&quot;</span><span class="gtkdoc opt">,</span> stream<span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">);</span>
 
 <span class="gtkdoc opt">...</span></pre></td>
       </tr>
@@ -214,7 +214,7 @@
 <a name="gst-plugins-base-plugins-giostreamsrc.property-details"></a><h2>Property Details</h2>
 <div class="refsect2">
 <a name="GstGioStreamSrc--stream"></a><h3>The <code class="literal">“stream”</code> property</h3>
-<pre class="programlisting">  “stream”                   <a href="http://library.gnome.org/devel/gio/unstable/GInputStream.html"><span class="type">GInputStream</span></a> *</pre>
+<pre class="programlisting">  “stream”                   <a href="https://developer.gnome.org/gio/unstable/GInputStream.html"><span class="type">GInputStream</span></a> *</pre>
 <p>Stream to read from.</p>
 <p>Flags: Read / Write</p>
 </div>
@@ -222,6 +222,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-multifdsink.html b/docs/plugins/html/gst-plugins-base-plugins-multifdsink.html
index fe131b2..c5a14c7 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-multifdsink.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-multifdsink.html
@@ -8,16 +8,16 @@
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-giostreamsrc.html" title="giostreamsrc">
 <link rel="next" href="gst-plugins-base-plugins-multisocketsink.html" title="multisocketsink">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-multifdsink.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-multifdsink.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-multifdsink.properties" class="shortcut">Properties</a></span><span id="nav_signals"> <span class="dim">|</span> 
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-multifdsink.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-multifdsink.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-multifdsink.properties" class="shortcut">Properties</a></span><span id="nav_signals">  <span class="dim">|</span> 
                   <a href="#gst-plugins-base-plugins-multifdsink.signals" class="shortcut">Signals</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
@@ -43,7 +43,7 @@
 <col width="200px" class="properties_flags">
 </colgroup>
 <tbody><tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--handle-read" title="The “handle-read” property">handle-read</a></td>
 <td class="property_flags">Read / Write</td>
 </tr></tbody>
@@ -85,7 +85,7 @@
 </tr>
 <tr>
 <td class="signal_type">
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="returnvalue">GstStructure</span></a>*</td>
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstStructure.html"><span class="returnvalue">GstStructure</span></a>*</td>
 <td class="signal_name"><a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink-get-stats" title="The “get-stats” signal">get-stats</a></td>
 <td class="signal_flags">Action</td>
 </tr>
@@ -131,8 +131,8 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-multifdsink.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-    <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+<pre class="screen">    <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
         <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
             <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
                 <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSink.html">GstBaseSink</a>
@@ -154,7 +154,7 @@
 each descriptor removed, the <a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink-client-removed" title="The “client-removed” signal"><span class="type">“client-removed”</span></a> signal will be called. The
 <a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink-client-removed" title="The “client-removed” signal"><span class="type">“client-removed”</span></a> signal can also be fired when multifdsink decides that a
 client is not active anymore or, depending on the value of the
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--recover-policy"><span class="type">“recover-policy”</span></a> property, if the client is reading too slowly.
+<span class="type">“recover-policy”</span> property, if the client is reading too slowly.
 In all cases, multifdsink will never close a file descriptor itself.
 The user of multifdsink is responsible for closing all file descriptors.
 This can for example be done in response to the <a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink-client-fd-removed" title="The “client-fd-removed” signal"><span class="type">“client-fd-removed”</span></a> signal.
@@ -167,7 +167,7 @@
 separate thread to send the buffers to the clients. This ensures that no
 client write can block the pipeline and that clients can read with different
 speeds.</p>
-<p>When adding a client to multifdsink, the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--sync-method"><span class="type">“sync-method”</span></a> property will define
+<p>When adding a client to multifdsink, the <span class="type">“sync-method”</span> property will define
 which buffer in the queued buffers will be sent first to the client. Clients 
 can be sent the most recent buffer (which might not be decodable by the 
 client if it is not a keyframe), the next keyframe received in 
@@ -175,7 +175,7 @@
 last received keyframe (which will cause a simple burst-on-connect). 
 Multifdsink will always keep at least one keyframe in its internal buffers
 when the sync-mode is set to latest-keyframe.</p>
-<p>There are additional values for the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--sync-method"><span class="type">“sync-method”</span></a>
+<p>There are additional values for the <span class="type">“sync-method”</span>
 property to allow finer control over burst-on-connect behaviour. By selecting
 the 'burst' method a minimum burst size can be chosen, 'burst-keyframe'
 additionally requires that the burst begin with a keyframe, and 
@@ -183,7 +183,7 @@
 prefer a minimum burst size even if it requires not starting with a keyframe.</p>
 <p>Multifdsink can be instructed to keep at least a minimum amount of data
 expressed in time or byte units in its internal queues with the 
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--time-min"><span class="type">“time-min”</span></a> and <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--bytes-min"><span class="type">“bytes-min”</span></a> properties respectively.
+<span class="type">“time-min”</span> and <span class="type">“bytes-min”</span> properties respectively.
 These properties are useful if the application adds clients with the 
 <a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink-add-full" title="The “add-full” signal"><span class="type">“add-full”</span></a> signal to make sure that a burst connect can
 actually be honored. </p>
@@ -192,11 +192,11 @@
 fast, no data will be send to the client until multifdsink receives more
 data. If the client, however, reads too slowly, data for that client will be 
 queued up in multifdsink. Two properties control the amount of data 
-(buffers) that is queued in multifdsink: <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--buffers-max"><span class="type">“buffers-max”</span></a> and 
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--buffers-soft-max"><span class="type">“buffers-soft-max”</span></a>. A client that falls behind by
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--buffers-max"><span class="type">“buffers-max”</span></a> is removed from multifdsink forcibly.</p>
-<p>A client with a lag of at least <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--buffers-soft-max"><span class="type">“buffers-soft-max”</span></a> enters the recovery
-procedure which is controlled with the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--recover-policy"><span class="type">“recover-policy”</span></a> property.
+(buffers) that is queued in multifdsink: <span class="type">“buffers-max”</span> and 
+<span class="type">“buffers-soft-max”</span>. A client that falls behind by
+<span class="type">“buffers-max”</span> is removed from multifdsink forcibly.</p>
+<p>A client with a lag of at least <span class="type">“buffers-soft-max”</span> enters the recovery
+procedure which is controlled with the <span class="type">“recover-policy”</span> property.
 A recover policy of NONE will do nothing, RESYNC_LATEST will send the most recently
 received buffer as the next buffer for the client, RESYNC_SOFT_LIMIT
 positions the client to the soft limit in the buffer queue and
@@ -456,7 +456,7 @@
 <a name="gst-plugins-base-plugins-multifdsink.property-details"></a><h2>Property Details</h2>
 <div class="refsect2">
 <a name="GstMultiFdSink--handle-read"></a><h3>The <code class="literal">“handle-read”</code> property</h3>
-<pre class="programlisting">  “handle-read”              <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<pre class="programlisting">  “handle-read”              <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
 <p>Handle client reads and discard the data.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: TRUE</p>
@@ -468,8 +468,8 @@
 <a name="GstMultiFdSink-add"></a><h3>The <code class="literal">“add”</code> signal</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 user_function (<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink"><span class="type">GstMultiFdSink</span></a> *gstmultifdsink,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>            fd,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>        user_data)</pre>
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>            fd,
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>        user_data)</pre>
 <p>Hand the given open file descriptor to multifdsink to write to.</p>
 <div class="refsect3">
 <a name="id-1.2.20.12.2.5"></a><h4>Parameters</h4>
@@ -505,13 +505,13 @@
 <a name="GstMultiFdSink-add-full"></a><h3>The <code class="literal">“add-full”</code> signal</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 user_function (<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink"><span class="type">GstMultiFdSink</span></a>              *gstmultifdsink,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                         fd,
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                         fd,
                <span class="type">GstMultiHandleSinkSyncMethod</span> sync,
                <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a>                    format_min,
                <span class="type">guint64</span>                      value_min,
                <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a>                    format_max,
                <span class="type">guint64</span>                      value_max,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>                     user_data)</pre>
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>                     user_data)</pre>
 <p>Hand the given open file descriptor to multifdsink to write to and
 specify the burst parameters for the new connection.</p>
 <div class="refsect3">
@@ -579,8 +579,8 @@
 <a name="GstMultiFdSink-client-added"></a><h3>The <code class="literal">“client-added”</code> signal</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 user_function (<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink"><span class="type">GstMultiFdSink</span></a> *gstmultifdsink,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>            fd,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>        user_data)</pre>
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>            fd,
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>        user_data)</pre>
 <p>The given file descriptor was added to multifdsink. This signal will
 be emitted from the streaming thread so application should be prepared
 for that.</p>
@@ -618,8 +618,8 @@
 <a name="GstMultiFdSink-client-fd-removed"></a><h3>The <code class="literal">“client-fd-removed”</code> signal</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 user_function (<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink"><span class="type">GstMultiFdSink</span></a> *gstmultifdsink,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>            fd,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>        user_data)</pre>
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>            fd,
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>        user_data)</pre>
 <p>The given file descriptor was removed from multifdsink. This signal will
 be emitted from the streaming thread so applications should be prepared
 for that.</p>
@@ -664,9 +664,9 @@
 <a name="GstMultiFdSink-client-removed"></a><h3>The <code class="literal">“client-removed”</code> signal</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 user_function (<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink"><span class="type">GstMultiFdSink</span></a>                *gstmultifdsink,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                           fd,
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                           fd,
                <span class="type">GstMultiHandleSinkClientStatus</span> status,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>                       user_data)</pre>
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>                       user_data)</pre>
 <p>The given file descriptor is about to be removed from multifdsink. This
 signal will be emitted from the streaming thread so applications should
 be prepared for that.</p>
@@ -713,10 +713,10 @@
 <hr>
 <div class="refsect2">
 <a name="GstMultiFdSink-get-stats"></a><h3>The <code class="literal">“get-stats”</code> signal</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="returnvalue">GstStructure</span></a>*
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstStructure.html"><span class="returnvalue">GstStructure</span></a>*
 user_function (<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink"><span class="type">GstMultiFdSink</span></a> *gstmultifdsink,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>            fd,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>        user_data)</pre>
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>            fd,
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>        user_data)</pre>
 <p>Get statistics about <em class="parameter"><code>fd</code></em>
 . This function returns a GValueArray to ease
 automatic wrapping for bindings.</p>
@@ -765,8 +765,8 @@
 <a name="GstMultiFdSink-remove"></a><h3>The <code class="literal">“remove”</code> signal</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 user_function (<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink"><span class="type">GstMultiFdSink</span></a> *gstmultifdsink,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>            fd,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>        user_data)</pre>
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>            fd,
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>        user_data)</pre>
 <p>Remove the given open file descriptor from multifdsink.</p>
 <div class="refsect3">
 <a name="id-1.2.20.12.8.5"></a><h4>Parameters</h4>
@@ -802,8 +802,8 @@
 <a name="GstMultiFdSink-remove-flush"></a><h3>The <code class="literal">“remove-flush”</code> signal</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 user_function (<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink"><span class="type">GstMultiFdSink</span></a> *gstmultifdsink,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>            fd,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>        user_data)</pre>
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>            fd,
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>        user_data)</pre>
 <p>Remove the given open file descriptor from multifdsink after flushing all
 the pending data to the fd.</p>
 <div class="refsect3">
@@ -843,6 +843,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-multisocketsink.html b/docs/plugins/html/gst-plugins-base-plugins-multisocketsink.html
index 1451cc5..ee6b661 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-multisocketsink.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-multisocketsink.html
@@ -8,15 +8,15 @@
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-multifdsink.html" title="multifdsink">
 <link rel="next" href="gst-plugins-base-plugins-oggdemux.html" title="oggdemux">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-multisocketsink.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-multisocketsink.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_signals"> <span class="dim">|</span> 
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-multisocketsink.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-multisocketsink.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_signals">  <span class="dim">|</span> 
                   <a href="#gst-plugins-base-plugins-multisocketsink.signals" class="shortcut">Signals</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
@@ -69,7 +69,7 @@
 </tr>
 <tr>
 <td class="signal_type">
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="returnvalue">GstStructure</span></a>*</td>
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstStructure.html"><span class="returnvalue">GstStructure</span></a>*</td>
 <td class="signal_name"><a class="link" href="gst-plugins-base-plugins-multisocketsink.html#GstMultiSocketSink-get-stats" title="The “get-stats” signal">get-stats</a></td>
 <td class="signal_flags">Action</td>
 </tr>
@@ -115,8 +115,8 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-multisocketsink.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-    <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+<pre class="screen">    <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
         <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
             <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
                 <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSink.html">GstBaseSink</a>
@@ -404,8 +404,8 @@
 <a name="GstMultiSocketSink-add"></a><h3>The <code class="literal">“add”</code> signal</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 user_function (<a class="link" href="gst-plugins-base-plugins-multisocketsink.html#GstMultiSocketSink"><span class="type">GstMultiSocketSink</span></a> *gstmultisocketsink,
-               <a href="http://library.gnome.org/devel/gio/unstable/GSocket.html"><span class="type">GSocket</span></a>            *socket,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>            user_data)</pre>
+               <a href="https://developer.gnome.org/gio/unstable/GSocket.html"><span class="type">GSocket</span></a>            *socket,
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>            user_data)</pre>
 <p>Hand the given open socket to multisocketsink to write to.</p>
 <div class="refsect3">
 <a name="id-1.2.21.10.2.5"></a><h4>Parameters</h4>
@@ -441,13 +441,13 @@
 <a name="GstMultiSocketSink-add-full"></a><h3>The <code class="literal">“add-full”</code> signal</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 user_function (<a class="link" href="gst-plugins-base-plugins-multisocketsink.html#GstMultiSocketSink"><span class="type">GstMultiSocketSink</span></a>          *gstmultisocketsink,
-               <a href="http://library.gnome.org/devel/gio/unstable/GSocket.html"><span class="type">GSocket</span></a>                     *socket,
+               <a href="https://developer.gnome.org/gio/unstable/GSocket.html"><span class="type">GSocket</span></a>                     *socket,
                <span class="type">GstMultiHandleSinkSyncMethod</span> sync,
                <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a>                    format_min,
                <span class="type">guint64</span>                      value_min,
                <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a>                    format_max,
                <span class="type">guint64</span>                      value_max,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>                     user_data)</pre>
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>                     user_data)</pre>
 <p>Hand the given open socket to multisocketsink to write to and
 specify the burst parameters for the new connection.</p>
 <div class="refsect3">
@@ -515,8 +515,8 @@
 <a name="GstMultiSocketSink-client-added"></a><h3>The <code class="literal">“client-added”</code> signal</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 user_function (<a class="link" href="gst-plugins-base-plugins-multisocketsink.html#GstMultiSocketSink"><span class="type">GstMultiSocketSink</span></a> *gstmultisocketsink,
-               <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a>            *socket,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>            user_data)</pre>
+               <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a>            *socket,
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>            user_data)</pre>
 <p>The given socket was added to multisocketsink. This signal will
 be emitted from the streaming thread so application should be prepared
 for that.</p>
@@ -554,9 +554,9 @@
 <a name="GstMultiSocketSink-client-removed"></a><h3>The <code class="literal">“client-removed”</code> signal</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 user_function (<a class="link" href="gst-plugins-base-plugins-multisocketsink.html#GstMultiSocketSink"><span class="type">GstMultiSocketSink</span></a>            *gstmultisocketsink,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                           socket,
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                           socket,
                <span class="type">GstMultiHandleSinkClientStatus</span> status,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>                       user_data)</pre>
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>                       user_data)</pre>
 <p>The given socket is about to be removed from multisocketsink. This
 signal will be emitted from the streaming thread so applications should
 be prepared for that.</p>
@@ -605,8 +605,8 @@
 <a name="GstMultiSocketSink-client-socket-removed"></a><h3>The <code class="literal">“client-socket-removed”</code> signal</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 user_function (<a class="link" href="gst-plugins-base-plugins-multisocketsink.html#GstMultiSocketSink"><span class="type">GstMultiSocketSink</span></a> *gstmultisocketsink,
-               <a href="http://library.gnome.org/devel/gio/unstable/GSocket.html"><span class="type">GSocket</span></a>            *socket,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>            user_data)</pre>
+               <a href="https://developer.gnome.org/gio/unstable/GSocket.html"><span class="type">GSocket</span></a>            *socket,
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>            user_data)</pre>
 <p>The given socket was removed from multisocketsink. This signal will
 be emitted from the streaming thread so applications should be prepared
 for that.</p>
@@ -649,10 +649,10 @@
 <hr>
 <div class="refsect2">
 <a name="GstMultiSocketSink-get-stats"></a><h3>The <code class="literal">“get-stats”</code> signal</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="returnvalue">GstStructure</span></a>*
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstStructure.html"><span class="returnvalue">GstStructure</span></a>*
 user_function (<a class="link" href="gst-plugins-base-plugins-multisocketsink.html#GstMultiSocketSink"><span class="type">GstMultiSocketSink</span></a> *gstmultisocketsink,
-               <a href="http://library.gnome.org/devel/gio/unstable/GSocket.html"><span class="type">GSocket</span></a>            *socket,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>            user_data)</pre>
+               <a href="https://developer.gnome.org/gio/unstable/GSocket.html"><span class="type">GSocket</span></a>            *socket,
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>            user_data)</pre>
 <p>Get statistics about <em class="parameter"><code>socket</code></em>
 . This function returns a GstStructure.</p>
 <div class="refsect3">
@@ -699,8 +699,8 @@
 <a name="GstMultiSocketSink-remove"></a><h3>The <code class="literal">“remove”</code> signal</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 user_function (<a class="link" href="gst-plugins-base-plugins-multisocketsink.html#GstMultiSocketSink"><span class="type">GstMultiSocketSink</span></a> *gstmultisocketsink,
-               <a href="http://library.gnome.org/devel/gio/unstable/GSocket.html"><span class="type">GSocket</span></a>            *socket,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>            user_data)</pre>
+               <a href="https://developer.gnome.org/gio/unstable/GSocket.html"><span class="type">GSocket</span></a>            *socket,
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>            user_data)</pre>
 <p>Remove the given open socket from multisocketsink.</p>
 <div class="refsect3">
 <a name="id-1.2.21.10.8.5"></a><h4>Parameters</h4>
@@ -736,8 +736,8 @@
 <a name="GstMultiSocketSink-remove-flush"></a><h3>The <code class="literal">“remove-flush”</code> signal</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 user_function (<a class="link" href="gst-plugins-base-plugins-multisocketsink.html#GstMultiSocketSink"><span class="type">GstMultiSocketSink</span></a> *gstmultisocketsink,
-               <a href="http://library.gnome.org/devel/gio/unstable/GSocket.html"><span class="type">GSocket</span></a>            *socket,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>            user_data)</pre>
+               <a href="https://developer.gnome.org/gio/unstable/GSocket.html"><span class="type">GSocket</span></a>            *socket,
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>            user_data)</pre>
 <p>Remove the given open socket from multisocketsink after flushing all
 the pending data to the socket.</p>
 <div class="refsect3">
@@ -777,6 +777,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-oggdemux.html b/docs/plugins/html/gst-plugins-base-plugins-oggdemux.html
index cf609b7..1022a10 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-oggdemux.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-oggdemux.html
@@ -8,14 +8,14 @@
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-multisocketsink.html" title="multisocketsink">
 <link rel="next" href="gst-plugins-base-plugins-oggmux.html" title="oggmux">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-oggdemux.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-oggdemux.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
                   <a href="#gst-plugins-base-plugins-oggdemux.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
@@ -47,8 +47,8 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-oggdemux.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-    <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+<pre class="screen">    <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
         <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
             <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
                 <span class="lineart">╰──</span> GstOggDemux
@@ -166,6 +166,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-oggmux.html b/docs/plugins/html/gst-plugins-base-plugins-oggmux.html
index ef922b0..6d9e59e 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-oggmux.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-oggmux.html
@@ -8,16 +8,16 @@
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-oggdemux.html" title="oggdemux">
 <link rel="next" href="gst-plugins-base-plugins-playbin.html" title="playbin">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-oggmux.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-oggmux.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-oggmux.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties"> <span class="dim">|</span> 
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-oggmux.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-oggmux.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-oggmux.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties">  <span class="dim">|</span> 
                   <a href="#gst-plugins-base-plugins-oggmux.properties" class="shortcut">Properties</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
@@ -59,7 +59,7 @@
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-oggmux.html#GstOggMux--skeleton" title="The “skeleton” property">skeleton</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
@@ -81,8 +81,8 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-oggmux.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-    <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+<pre class="screen">    <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
         <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
             <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
                 <span class="lineart">╰──</span> GstOggMux
@@ -323,7 +323,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstOggMux--skeleton"></a><h3>The <code class="literal">“skeleton”</code> property</h3>
-<pre class="programlisting">  “skeleton”                 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<pre class="programlisting">  “skeleton”                 <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
 <p>Whether to include a Skeleton track.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: FALSE</p>
@@ -332,6 +332,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-playbin.html b/docs/plugins/html/gst-plugins-base-plugins-playbin.html
index eab7c16..2447710 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-playbin.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-playbin.html
@@ -8,17 +8,17 @@
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-oggmux.html" title="oggmux">
 <link rel="next" href="gst-plugins-base-plugins-playsink.html" title="playsink">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-playbin.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-playbin.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-playbin.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-playbin.properties" class="shortcut">Properties</a></span><span id="nav_signals"> <span class="dim">|</span> 
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-playbin.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-playbin.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-playbin.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-playbin.properties" class="shortcut">Properties</a></span><span id="nav_signals">  <span class="dim">|</span> 
                   <a href="#gst-plugins-base-plugins-playbin.signals" class="shortcut">Signals</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
@@ -67,7 +67,7 @@
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-playbin.html#GstPlayBin--buffer-size" title="The “buffer-size” property">buffer-size</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
@@ -77,29 +77,29 @@
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-playbin.html#GstPlayBin--current-audio" title="The “current-audio” property">current-audio</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
 <td class="property_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-playbin.html#GstPlayBin--current-suburi" title="The “current-suburi” property">current-suburi</a></td>
 <td class="property_flags">Read</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-playbin.html#GstPlayBin--current-text" title="The “current-text” property">current-text</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
 <td class="property_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-playbin.html#GstPlayBin--current-uri" title="The “current-uri” property">current-uri</a></td>
 <td class="property_flags">Read</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-playbin.html#GstPlayBin--current-video" title="The “current-video” property">current-video</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
@@ -109,27 +109,27 @@
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-playbin.html#GstPlayBin--force-aspect-ratio" title="The “force-aspect-ratio” property">force-aspect-ratio</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-playbin.html#GstPlayBin--mute" title="The “mute” property">mute</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-playbin.html#GstPlayBin--n-audio" title="The “n-audio” property">n-audio</a></td>
 <td class="property_flags">Read</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-playbin.html#GstPlayBin--n-text" title="The “n-text” property">n-text</a></td>
 <td class="property_flags">Read</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-playbin.html#GstPlayBin--n-video" title="The “n-video” property">n-video</a></td>
 <td class="property_flags">Read</td>
 </tr>
@@ -152,19 +152,19 @@
 </tr>
 <tr>
 <td class="property_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-playbin.html#GstPlayBin--subtitle-encoding" title="The “subtitle-encoding” property">subtitle-encoding</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
 <td class="property_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-playbin.html#GstPlayBin--subtitle-font-desc" title="The “subtitle-font-desc” property">subtitle-font-desc</a></td>
 <td class="property_flags">Write</td>
 </tr>
 <tr>
 <td class="property_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-playbin.html#GstPlayBin--suburi" title="The “suburi” property">suburi</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
@@ -182,7 +182,7 @@
 </tr>
 <tr>
 <td class="property_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-playbin.html#GstPlayBin--uri" title="The “uri” property">uri</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
@@ -205,7 +205,7 @@
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-playbin.html#GstPlayBin--volume" title="The “volume” property">volume</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
@@ -262,7 +262,7 @@
 </tr>
 <tr>
 <td class="signal_type">
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="returnvalue">GstTagList</span></a>*</td>
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagList.html"><span class="returnvalue">GstTagList</span></a>*</td>
 <td class="signal_name"><a class="link" href="gst-plugins-base-plugins-playbin.html#GstPlayBin-get-audio-tags" title="The “get-audio-tags” signal">get-audio-tags</a></td>
 <td class="signal_flags">Action</td>
 </tr>
@@ -274,7 +274,7 @@
 </tr>
 <tr>
 <td class="signal_type">
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="returnvalue">GstTagList</span></a>*</td>
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagList.html"><span class="returnvalue">GstTagList</span></a>*</td>
 <td class="signal_name"><a class="link" href="gst-plugins-base-plugins-playbin.html#GstPlayBin-get-text-tags" title="The “get-text-tags” signal">get-text-tags</a></td>
 <td class="signal_flags">Action</td>
 </tr>
@@ -286,7 +286,7 @@
 </tr>
 <tr>
 <td class="signal_type">
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="returnvalue">GstTagList</span></a>*</td>
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagList.html"><span class="returnvalue">GstTagList</span></a>*</td>
 <td class="signal_name"><a class="link" href="gst-plugins-base-plugins-playbin.html#GstPlayBin-get-video-tags" title="The “get-video-tags” signal">get-video-tags</a></td>
 <td class="signal_flags">Action</td>
 </tr>
@@ -339,8 +339,8 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-playbin.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-    <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+<pre class="screen">    <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
         <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
             <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
                 <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBin.html">GstBin</a>
@@ -497,11 +497,11 @@
 7
 8
 9</pre></td>
-        <td class="listing_code"><pre class="programlisting"><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>
+        <td class="listing_code"><pre class="programlisting"><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/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_BUFFERING<span class="gtkdoc opt">: {</span>
     gint percent <span class="gtkdoc opt">=</span> <span class="number">0</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-parse-buffering">gst_message_parse_buffering</a></span> <span class="gtkdoc opt">(</span>msg<span class="gtkdoc opt">, &amp;</span>percent<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;Buffering (%%u percent done)&quot;</span><span class="gtkdoc opt">,</span> percent<span class="gtkdoc opt">);</span>
+    <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMessage.html#gst-message-parse-buffering">gst_message_parse_buffering</a></span> <span class="gtkdoc opt">(</span>msg<span class="gtkdoc opt">, &amp;</span>percent<span class="gtkdoc opt">);</span>
+    <span class="function"><a href="https://developer.gnome.org/glib/unstable/glib-Warnings-and-Assertions.html#g-print">g_print</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;Buffering (%u percent done)&quot;</span><span class="gtkdoc opt">,</span> percent<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>
@@ -780,7 +780,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstPlayBin--buffer-size"></a><h3>The <code class="literal">“buffer-size”</code> property</h3>
-<pre class="programlisting">  “buffer-size”              <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<pre class="programlisting">  “buffer-size”              <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
 <p>Buffer size when buffering network streams.</p>
 <p>Flags: Read / Write</p>
 <p>Allowed values: &gt;= G_MAXULONG</p>
@@ -798,7 +798,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstPlayBin--current-audio"></a><h3>The <code class="literal">“current-audio”</code> property</h3>
-<pre class="programlisting">  “current-audio”            <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<pre class="programlisting">  “current-audio”            <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
 <p>Get or set the currently playing audio stream. By default the first audio
 stream with data is played.</p>
 <p>Flags: Read / Write</p>
@@ -808,7 +808,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstPlayBin--current-suburi"></a><h3>The <code class="literal">“current-suburi”</code> property</h3>
-<pre class="programlisting">  “current-suburi”           <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
+<pre class="programlisting">  “current-suburi”           <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
 <p>The currently playing subtitle uri.</p>
 <p>Flags: Read</p>
 <p>Default value: NULL</p>
@@ -816,7 +816,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstPlayBin--current-text"></a><h3>The <code class="literal">“current-text”</code> property</h3>
-<pre class="programlisting">  “current-text”             <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<pre class="programlisting">  “current-text”             <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
 <p>Get or set the currently playing subtitle stream. By default the first
 subtitle stream with data is played.</p>
 <p>Flags: Read / Write</p>
@@ -826,7 +826,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstPlayBin--current-uri"></a><h3>The <code class="literal">“current-uri”</code> property</h3>
-<pre class="programlisting">  “current-uri”              <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
+<pre class="programlisting">  “current-uri”              <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
 <p>The currently playing uri.</p>
 <p>Flags: Read</p>
 <p>Default value: NULL</p>
@@ -834,7 +834,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstPlayBin--current-video"></a><h3>The <code class="literal">“current-video”</code> property</h3>
-<pre class="programlisting">  “current-video”            <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<pre class="programlisting">  “current-video”            <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
 <p>Get or set the currently playing video stream. By default the first video
 stream with data is played.</p>
 <p>Flags: Read / Write</p>
@@ -852,7 +852,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstPlayBin--force-aspect-ratio"></a><h3>The <code class="literal">“force-aspect-ratio”</code> property</h3>
-<pre class="programlisting">  “force-aspect-ratio”       <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<pre class="programlisting">  “force-aspect-ratio”       <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
 <p>When enabled, scaling will respect original aspect ratio.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: TRUE</p>
@@ -860,7 +860,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstPlayBin--mute"></a><h3>The <code class="literal">“mute”</code> property</h3>
-<pre class="programlisting">  “mute”                     <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<pre class="programlisting">  “mute”                     <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
 <p>Mute the audio channel without changing the volume.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: FALSE</p>
@@ -868,7 +868,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstPlayBin--n-audio"></a><h3>The <code class="literal">“n-audio”</code> property</h3>
-<pre class="programlisting">  “n-audio”                  <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<pre class="programlisting">  “n-audio”                  <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
 <p>Get the total number of available audio streams.</p>
 <p>Flags: Read</p>
 <p>Allowed values: &gt;= 0</p>
@@ -877,7 +877,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstPlayBin--n-text"></a><h3>The <code class="literal">“n-text”</code> property</h3>
-<pre class="programlisting">  “n-text”                   <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<pre class="programlisting">  “n-text”                   <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
 <p>Get the total number of available subtitle streams.</p>
 <p>Flags: Read</p>
 <p>Allowed values: &gt;= 0</p>
@@ -886,7 +886,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstPlayBin--n-video"></a><h3>The <code class="literal">“n-video”</code> property</h3>
-<pre class="programlisting">  “n-video”                  <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<pre class="programlisting">  “n-video”                  <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
 <p>Get the total number of available video streams.</p>
 <p>Flags: Read</p>
 <p>Allowed values: &gt;= 0</p>
@@ -907,7 +907,7 @@
 <a name="GstPlayBin--sample"></a><h3>The <code class="literal">“sample”</code> property</h3>
 <pre class="programlisting">  “sample”                   <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstSample.html"><span class="type">GstSample</span></a> *</pre>
 <p>Get the currently rendered or prerolled sample in the video sink.
-The <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> in the sample will describe the format of the buffer.</p>
+The <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> in the sample will describe the format of the buffer.</p>
 <p>Flags: Read</p>
 </div>
 <hr>
@@ -920,7 +920,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstPlayBin--subtitle-encoding"></a><h3>The <code class="literal">“subtitle-encoding”</code> property</h3>
-<pre class="programlisting">  “subtitle-encoding”        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
+<pre class="programlisting">  “subtitle-encoding”        <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
 <p>Encoding to assume if input subtitles are not in UTF-8 encoding. If not set, the GST_SUBTITLE_ENCODING environment variable will be checked for an encoding to use. If that is not set either, ISO-8859-15 will be assumed.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: NULL</p>
@@ -928,7 +928,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstPlayBin--subtitle-font-desc"></a><h3>The <code class="literal">“subtitle-font-desc”</code> property</h3>
-<pre class="programlisting">  “subtitle-font-desc”       <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
+<pre class="programlisting">  “subtitle-font-desc”       <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
 <p>Pango font description of font to be used for subtitle rendering.</p>
 <p>Flags: Write</p>
 <p>Default value: NULL</p>
@@ -936,7 +936,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstPlayBin--suburi"></a><h3>The <code class="literal">“suburi”</code> property</h3>
-<pre class="programlisting">  “suburi”                   <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
+<pre class="programlisting">  “suburi”                   <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
 <p>Set the next subtitle URI that playbin will play. This property can be
 set from the about-to-finish signal to queue the next subtitle media file.</p>
 <p>Flags: Read / Write</p>
@@ -960,7 +960,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstPlayBin--uri"></a><h3>The <code class="literal">“uri”</code> property</h3>
-<pre class="programlisting">  “uri”                      <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
+<pre class="programlisting">  “uri”                      <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
 <p>Set the next URI that playbin will play. This property can be set from the
 about-to-finish signal to queue the next media file.</p>
 <p>Flags: Read / Write</p>
@@ -991,7 +991,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstPlayBin--volume"></a><h3>The <code class="literal">“volume”</code> property</h3>
-<pre class="programlisting">  “volume”                   <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></pre>
+<pre class="programlisting">  “volume”                   <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></pre>
 <p>Get or set the current audio stream volume. 1.0 means 100%,
 0.0 means mute. This uses a linear volume scale.</p>
 <p>Flags: Read / Write</p>
@@ -1019,7 +1019,7 @@
 <a name="GstPlayBin-about-to-finish"></a><h3>The <code class="literal">“about-to-finish”</code> signal</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 user_function (<a class="link" href="gst-plugins-base-plugins-playbin.html#GstPlayBin"><span class="type">GstPlayBin</span></a> *playbin,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>    user_data)</pre>
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>    user_data)</pre>
 <p>This signal is emitted when the current uri is about to finish. You can
 set the uri and suburi to make sure that playback continues.</p>
 <p>This signal is emitted from the context of a GStreamer streaming thread.</p>
@@ -1052,12 +1052,12 @@
 <a name="GstPlayBin-audio-changed"></a><h3>The <code class="literal">“audio-changed”</code> signal</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 user_function (<a class="link" href="gst-plugins-base-plugins-playbin.html#GstPlayBin"><span class="type">GstPlayBin</span></a> *playbin,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>    user_data)</pre>
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>    user_data)</pre>
 <p>This signal is emitted whenever the number or order of the audio
 streams has changed. The application will most likely want to select
 a new audio stream.</p>
 <p>This signal may be emitted from the context of a GStreamer streaming thread.
-You can use <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#gst-message-new-application"><code class="function">gst_message_new_application()</code></a> and <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#gst-element-post-message"><code class="function">gst_element_post_message()</code></a>
+You can use <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMessage.html#gst-message-new-application"><code class="function">gst_message_new_application()</code></a> and <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#gst-element-post-message"><code class="function">gst_element_post_message()</code></a>
 to notify your application's main thread.</p>
 <div class="refsect3">
 <a name="id-1.2.24.13.3.6"></a><h4>Parameters</h4>
@@ -1088,12 +1088,12 @@
 <a name="GstPlayBin-audio-tags-changed"></a><h3>The <code class="literal">“audio-tags-changed”</code> signal</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 user_function (<a class="link" href="gst-plugins-base-plugins-playbin.html#GstPlayBin"><span class="type">GstPlayBin</span></a> *playbin,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>        stream,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>    user_data)</pre>
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>        stream,
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>    user_data)</pre>
 <p>This signal is emitted whenever the tags of an audio stream have changed.
 The application will most likely want to get the new tags.</p>
 <p>This signal may be emitted from the context of a GStreamer streaming thread.
-You can use <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#gst-message-new-application"><code class="function">gst_message_new_application()</code></a> and <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#gst-element-post-message"><code class="function">gst_element_post_message()</code></a>
+You can use <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMessage.html#gst-message-new-application"><code class="function">gst_message_new_application()</code></a> and <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#gst-element-post-message"><code class="function">gst_element_post_message()</code></a>
 to notify your application's main thread.</p>
 <div class="refsect3">
 <a name="id-1.2.24.13.4.6"></a><h4>Parameters</h4>
@@ -1129,13 +1129,13 @@
 <a name="GstPlayBin-convert-sample"></a><h3>The <code class="literal">“convert-sample”</code> signal</h3>
 <pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstSample.html"><span class="returnvalue">GstSample</span></a>*
 user_function (<a class="link" href="gst-plugins-base-plugins-playbin.html#GstPlayBin"><span class="type">GstPlayBin</span></a> *playbin,
-               <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="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>    user_data)</pre>
+               <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a>    *caps,
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>    user_data)</pre>
 <p>Action signal to retrieve the currently playing video frame in the format
 specified by <em class="parameter"><code>caps</code></em>
 .
 If <em class="parameter"><code>caps</code></em>
- is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, no conversion will be performed and this function is
+ is <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, no conversion will be performed and this function is
 equivalent to the <span class="type">“frame”</span> property.</p>
 <div class="refsect3">
 <a name="id-1.2.24.13.5.5"></a><h4>Parameters</h4>
@@ -1168,7 +1168,7 @@
 <a name="id-1.2.24.13.5.6"></a><h4>Returns</h4>
 <p> a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstSample.html"><span class="type">GstSample</span></a> of the current video frame converted to <span class="type">caps</span>.
 The caps on the sample will describe the final layout of the buffer data.
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> is returned when no current buffer can be retrieved or when the
+<a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> is returned when no current buffer can be retrieved or when the
 conversion failed.</p>
 <p></p>
 </div>
@@ -1179,8 +1179,8 @@
 <a name="GstPlayBin-get-audio-pad"></a><h3>The <code class="literal">“get-audio-pad”</code> signal</h3>
 <pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="returnvalue">GstPad</span></a>*
 user_function (<a class="link" href="gst-plugins-base-plugins-playbin.html#GstPlayBin"><span class="type">GstPlayBin</span></a> *playbin,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>        stream,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>    user_data)</pre>
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>        stream,
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>    user_data)</pre>
 <p>Action signal to retrieve the stream-combiner sinkpad for a specific
 audio stream.
 This pad can be used for notifications of caps changes, stream-specific
@@ -1222,10 +1222,10 @@
 <hr>
 <div class="refsect2">
 <a name="GstPlayBin-get-audio-tags"></a><h3>The <code class="literal">“get-audio-tags”</code> signal</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="returnvalue">GstTagList</span></a>*
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagList.html"><span class="returnvalue">GstTagList</span></a>*
 user_function (<a class="link" href="gst-plugins-base-plugins-playbin.html#GstPlayBin"><span class="type">GstPlayBin</span></a> *playbin,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>        stream,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>    user_data)</pre>
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>        stream,
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>    user_data)</pre>
 <p>Action signal to retrieve the tags of a specific audio stream number.
 This information can be used to select a stream.</p>
 <div class="refsect3">
@@ -1268,8 +1268,8 @@
 <a name="GstPlayBin-get-text-pad"></a><h3>The <code class="literal">“get-text-pad”</code> signal</h3>
 <pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="returnvalue">GstPad</span></a>*
 user_function (<a class="link" href="gst-plugins-base-plugins-playbin.html#GstPlayBin"><span class="type">GstPlayBin</span></a> *playbin,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>        stream,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>    user_data)</pre>
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>        stream,
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>    user_data)</pre>
 <p>Action signal to retrieve the stream-combiner sinkpad for a specific
 text stream.
 This pad can be used for notifications of caps changes, stream-specific
@@ -1311,10 +1311,10 @@
 <hr>
 <div class="refsect2">
 <a name="GstPlayBin-get-text-tags"></a><h3>The <code class="literal">“get-text-tags”</code> signal</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="returnvalue">GstTagList</span></a>*
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagList.html"><span class="returnvalue">GstTagList</span></a>*
 user_function (<a class="link" href="gst-plugins-base-plugins-playbin.html#GstPlayBin"><span class="type">GstPlayBin</span></a> *playbin,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>        stream,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>    user_data)</pre>
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>        stream,
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>    user_data)</pre>
 <p>Action signal to retrieve the tags of a specific text stream number.
 This information can be used to select a stream.</p>
 <div class="refsect3">
@@ -1357,8 +1357,8 @@
 <a name="GstPlayBin-get-video-pad"></a><h3>The <code class="literal">“get-video-pad”</code> signal</h3>
 <pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="returnvalue">GstPad</span></a>*
 user_function (<a class="link" href="gst-plugins-base-plugins-playbin.html#GstPlayBin"><span class="type">GstPlayBin</span></a> *playbin,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>        stream,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>    user_data)</pre>
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>        stream,
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>    user_data)</pre>
 <p>Action signal to retrieve the stream-combiner sinkpad for a specific
 video stream.
 This pad can be used for notifications of caps changes, stream-specific
@@ -1400,10 +1400,10 @@
 <hr>
 <div class="refsect2">
 <a name="GstPlayBin-get-video-tags"></a><h3>The <code class="literal">“get-video-tags”</code> signal</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="returnvalue">GstTagList</span></a>*
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagList.html"><span class="returnvalue">GstTagList</span></a>*
 user_function (<a class="link" href="gst-plugins-base-plugins-playbin.html#GstPlayBin"><span class="type">GstPlayBin</span></a> *playbin,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>        stream,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>    user_data)</pre>
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>        stream,
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>    user_data)</pre>
 <p>Action signal to retrieve the tags of a specific video stream number.
 This information can be used to select a stream.</p>
 <div class="refsect3">
@@ -1447,7 +1447,7 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 user_function (<a class="link" href="gst-plugins-base-plugins-playbin.html#GstPlayBin"><span class="type">GstPlayBin</span></a> *playbin,
                <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> *source,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>    user_data)</pre>
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>    user_data)</pre>
 <p>This signal is emitted after the source element has been created, so
 it can be configured by setting additional properties (e.g. set a
 proxy server for an http source, or set the device and read speed for
@@ -1489,12 +1489,12 @@
 <a name="GstPlayBin-text-changed"></a><h3>The <code class="literal">“text-changed”</code> signal</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 user_function (<a class="link" href="gst-plugins-base-plugins-playbin.html#GstPlayBin"><span class="type">GstPlayBin</span></a> *playbin,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>    user_data)</pre>
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>    user_data)</pre>
 <p>This signal is emitted whenever the number or order of the text
 streams has changed. The application will most likely want to select
 a new text stream.</p>
 <p>This signal may be emitted from the context of a GStreamer streaming thread.
-You can use <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#gst-message-new-application"><code class="function">gst_message_new_application()</code></a> and <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#gst-element-post-message"><code class="function">gst_element_post_message()</code></a>
+You can use <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMessage.html#gst-message-new-application"><code class="function">gst_message_new_application()</code></a> and <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#gst-element-post-message"><code class="function">gst_element_post_message()</code></a>
 to notify your application's main thread.</p>
 <div class="refsect3">
 <a name="id-1.2.24.13.13.6"></a><h4>Parameters</h4>
@@ -1525,12 +1525,12 @@
 <a name="GstPlayBin-text-tags-changed"></a><h3>The <code class="literal">“text-tags-changed”</code> signal</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 user_function (<a class="link" href="gst-plugins-base-plugins-playbin.html#GstPlayBin"><span class="type">GstPlayBin</span></a> *playbin,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>        stream,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>    user_data)</pre>
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>        stream,
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>    user_data)</pre>
 <p>This signal is emitted whenever the tags of a text stream have changed.
 The application will most likely want to get the new tags.</p>
 <p>This signal may be emitted from the context of a GStreamer streaming thread.
-You can use <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#gst-message-new-application"><code class="function">gst_message_new_application()</code></a> and <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#gst-element-post-message"><code class="function">gst_element_post_message()</code></a>
+You can use <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMessage.html#gst-message-new-application"><code class="function">gst_message_new_application()</code></a> and <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#gst-element-post-message"><code class="function">gst_element_post_message()</code></a>
 to notify your application's main thread.</p>
 <div class="refsect3">
 <a name="id-1.2.24.13.14.6"></a><h4>Parameters</h4>
@@ -1566,12 +1566,12 @@
 <a name="GstPlayBin-video-changed"></a><h3>The <code class="literal">“video-changed”</code> signal</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 user_function (<a class="link" href="gst-plugins-base-plugins-playbin.html#GstPlayBin"><span class="type">GstPlayBin</span></a> *playbin,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>    user_data)</pre>
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>    user_data)</pre>
 <p>This signal is emitted whenever the number or order of the video
 streams has changed. The application will most likely want to select
 a new video stream.</p>
 <p>This signal is usually emitted from the context of a GStreamer streaming
-thread. You can use <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#gst-message-new-application"><code class="function">gst_message_new_application()</code></a> and
+thread. You can use <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMessage.html#gst-message-new-application"><code class="function">gst_message_new_application()</code></a> and
 <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#gst-element-post-message"><code class="function">gst_element_post_message()</code></a> to notify your application's main thread.</p>
 <div class="refsect3">
 <a name="id-1.2.24.13.15.6"></a><h4>Parameters</h4>
@@ -1602,12 +1602,12 @@
 <a name="GstPlayBin-video-tags-changed"></a><h3>The <code class="literal">“video-tags-changed”</code> signal</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 user_function (<a class="link" href="gst-plugins-base-plugins-playbin.html#GstPlayBin"><span class="type">GstPlayBin</span></a> *playbin,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>        stream,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>    user_data)</pre>
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>        stream,
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>    user_data)</pre>
 <p>This signal is emitted whenever the tags of a video stream have changed.
 The application will most likely want to get the new tags.</p>
 <p>This signal may be emitted from the context of a GStreamer streaming thread.
-You can use <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#gst-message-new-application"><code class="function">gst_message_new_application()</code></a> and <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#gst-element-post-message"><code class="function">gst_element_post_message()</code></a>
+You can use <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMessage.html#gst-message-new-application"><code class="function">gst_message_new_application()</code></a> and <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#gst-element-post-message"><code class="function">gst_element_post_message()</code></a>
 to notify your application's main thread.</p>
 <div class="refsect3">
 <a name="id-1.2.24.13.16.6"></a><h4>Parameters</h4>
@@ -1642,6 +1642,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-playsink.html b/docs/plugins/html/gst-plugins-base-plugins-playsink.html
index 2b0db3c..dcc1904 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-playsink.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-playsink.html
@@ -8,17 +8,17 @@
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-playbin.html" title="playbin">
 <link rel="next" href="gst-plugins-base-plugins-streamsynchronizer.html" title="streamsynchronizer">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-playsink.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-playsink.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-playsink.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-playsink.properties" class="shortcut">Properties</a></span><span id="nav_signals"> <span class="dim">|</span> 
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-playsink.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-playsink.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-playsink.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-playsink.properties" class="shortcut">Properties</a></span><span id="nav_signals">  <span class="dim">|</span> 
                   <a href="#gst-plugins-base-plugins-playsink.signals" class="shortcut">Signals</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
@@ -61,12 +61,12 @@
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-playsink.html#GstPlaySink--force-aspect-ratio" title="The “force-aspect-ratio” property">force-aspect-ratio</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-playsink.html#GstPlaySink--mute" title="The “mute” property">mute</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
@@ -83,13 +83,13 @@
 </tr>
 <tr>
 <td class="property_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-playsink.html#GstPlaySink--subtitle-encoding" title="The “subtitle-encoding” property">subtitle-encoding</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
 <td class="property_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-playsink.html#GstPlaySink--subtitle-font-desc" title="The “subtitle-font-desc” property">subtitle-font-desc</a></td>
 <td class="property_flags">Write</td>
 </tr>
@@ -112,7 +112,7 @@
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-playsink.html#GstPlaySink--volume" title="The “volume” property">volume</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
@@ -147,7 +147,7 @@
 <td class="signal_flags">Action</td>
 </tr>
 <tr>
-<td class="signal_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a></td>
+<td class="signal_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a></td>
 <td class="signal_name"><a class="link" href="gst-plugins-base-plugins-playsink.html#GstPlaySink-reconfigure" title="The “reconfigure” signal">reconfigure</a></td>
 <td class="signal_flags">Action</td>
 </tr>
@@ -169,8 +169,8 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-playsink.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-    <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+<pre class="screen">    <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
         <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
             <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
                 <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBin.html">GstBin</a>
@@ -358,7 +358,7 @@
 <a name="GstPlaySink--audio-sink"></a><h3>The <code class="literal">“audio-sink”</code> property</h3>
 <pre class="programlisting">  “audio-sink”               <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> *</pre>
 <p>Set the used audio sink element. NULL will use the default sink. playsink
-must be in <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></p>
+must be in <code class="literal">GST_STATE_NULL</code></p>
 <p>Flags: Read / Write</p>
 </div>
 <hr>
@@ -382,7 +382,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstPlaySink--force-aspect-ratio"></a><h3>The <code class="literal">“force-aspect-ratio”</code> property</h3>
-<pre class="programlisting">  “force-aspect-ratio”       <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<pre class="programlisting">  “force-aspect-ratio”       <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
 <p>When enabled, scaling will respect original aspect ratio.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: TRUE</p>
@@ -390,7 +390,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstPlaySink--mute"></a><h3>The <code class="literal">“mute”</code> property</h3>
-<pre class="programlisting">  “mute”                     <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<pre class="programlisting">  “mute”                     <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
 <p>Mute the audio channel without changing the volume.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: FALSE</p>
@@ -400,7 +400,7 @@
 <a name="GstPlaySink--sample"></a><h3>The <code class="literal">“sample”</code> property</h3>
 <pre class="programlisting">  “sample”                   <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstSample.html"><span class="type">GstSample</span></a> *</pre>
 <p>Get the currently rendered or prerolled sample in the video sink.
-The <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> in the sample will describe the format of the buffer.</p>
+The <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> in the sample will describe the format of the buffer.</p>
 <p>Flags: Read</p>
 </div>
 <hr>
@@ -414,7 +414,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstPlaySink--subtitle-encoding"></a><h3>The <code class="literal">“subtitle-encoding”</code> property</h3>
-<pre class="programlisting">  “subtitle-encoding”        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
+<pre class="programlisting">  “subtitle-encoding”        <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
 <p>Encoding to assume if input subtitles are not in UTF-8 encoding. If not set, the GST_SUBTITLE_ENCODING environment variable will be checked for an encoding to use. If that is not set either, ISO-8859-15 will be assumed.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: NULL</p>
@@ -422,7 +422,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstPlaySink--subtitle-font-desc"></a><h3>The <code class="literal">“subtitle-font-desc”</code> property</h3>
-<pre class="programlisting">  “subtitle-font-desc”       <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
+<pre class="programlisting">  “subtitle-font-desc”       <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
 <p>Pango font description of font to be used for subtitle rendering.</p>
 <p>Flags: Write</p>
 <p>Default value: NULL</p>
@@ -432,7 +432,7 @@
 <a name="GstPlaySink--text-sink"></a><h3>The <code class="literal">“text-sink”</code> property</h3>
 <pre class="programlisting">  “text-sink”                <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> *</pre>
 <p>Set the used text sink element. NULL will use the default sink. playsink
-must be in <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></p>
+must be in <code class="literal">GST_STATE_NULL</code></p>
 <p>Flags: Read / Write</p>
 </div>
 <hr>
@@ -440,7 +440,7 @@
 <a name="GstPlaySink--video-sink"></a><h3>The <code class="literal">“video-sink”</code> property</h3>
 <pre class="programlisting">  “video-sink”               <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> *</pre>
 <p>Set the used video sink element. NULL will use the default sink. playsink
-must be in <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></p>
+must be in <code class="literal">GST_STATE_NULL</code></p>
 <p>Flags: Read / Write</p>
 </div>
 <hr>
@@ -453,7 +453,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstPlaySink--volume"></a><h3>The <code class="literal">“volume”</code> property</h3>
-<pre class="programlisting">  “volume”                   <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></pre>
+<pre class="programlisting">  “volume”                   <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></pre>
 <p>Get or set the current audio stream volume. 1.0 means 100%,
 0.0 means mute. This uses a linear volume scale.</p>
 <p>Flags: Read / Write</p>
@@ -466,7 +466,7 @@
 <pre class="programlisting">  “audio-filter”             <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> *</pre>
 <p>Set the audio filter element/bin to use. Will apply on a best-effort basis
 unless GST_PLAY_FLAG_FORCE_FILTERS is set. playsink must be in
-<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></p>
+<code class="literal">GST_STATE_NULL</code></p>
 <p>Flags: Read / Write</p>
 </div>
 <hr>
@@ -475,7 +475,7 @@
 <pre class="programlisting">  “video-filter”             <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> *</pre>
 <p>Set the video filter element/bin to use. Will apply on a best-effort basis
 unless GST_PLAY_FLAG_FORCE_FILTERS is set. playsink must be in
-<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></p>
+<code class="literal">GST_STATE_NULL</code></p>
 <p>Flags: Read / Write</p>
 </div>
 </div>
@@ -485,13 +485,13 @@
 <a name="GstPlaySink-convert-sample"></a><h3>The <code class="literal">“convert-sample”</code> signal</h3>
 <pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstSample.html"><span class="returnvalue">GstSample</span></a>*
 user_function (<a class="link" href="gst-plugins-base-plugins-playsink.html#GstPlaySink"><span class="type">GstPlaySink</span></a> *playsink,
-               <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="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>     user_data)</pre>
+               <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a>     *caps,
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>     user_data)</pre>
 <p>Action signal to retrieve the currently playing video sample in the format
 specified by <em class="parameter"><code>caps</code></em>
 .
 If <em class="parameter"><code>caps</code></em>
- is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, no conversion will be performed and this function is
+ is <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, no conversion will be performed and this function is
 equivalent to the <span class="type">“sample”</span> property.</p>
 <div class="refsect3">
 <a name="id-1.2.25.13.2.5"></a><h4>Parameters</h4>
@@ -524,7 +524,7 @@
 <a name="id-1.2.25.13.2.6"></a><h4>Returns</h4>
 <p> a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstSample.html"><span class="type">GstSample</span></a> of the current video sample converted to <span class="type">caps</span>.
 The caps in the sample will describe the final layout of the buffer data.
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> is returned when no current sample can be retrieved or when the
+<a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> is returned when no current sample can be retrieved or when the
 conversion failed.</p>
 <p></p>
 </div>
@@ -533,9 +533,9 @@
 <hr>
 <div class="refsect2">
 <a name="GstPlaySink-reconfigure"></a><h3>The <code class="literal">“reconfigure”</code> signal</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 user_function (<a class="link" href="gst-plugins-base-plugins-playsink.html#GstPlaySink"><span class="type">GstPlaySink</span></a> *gstplaysink,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>     user_data)</pre>
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>     user_data)</pre>
 <p>
 </p>
 <div class="refsect3">
@@ -570,6 +570,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-adder.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-adder.html
index 799cc1f..031c3ca 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-adder.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-adder.html
@@ -8,11 +8,11 @@
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="next" href="gst-plugins-base-plugins-plugin-alsa.html" title="alsa">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.3.3</td>
+<td>1.5.0.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -50,7 +50,7 @@
 </tr>
 <tr>
 <td><p><span class="term">package</span></p></td>
-<td>GStreamer Base Plug-ins source release</td>
+<td>GStreamer Base Plug-ins git</td>
 </tr>
 <tr>
 <td><p><span class="term">origin</span></p></td>
@@ -75,6 +75,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-alsa.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-alsa.html
index 48f3223..4a62559 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-alsa.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-alsa.html
@@ -8,11 +8,11 @@
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-adder.html" title="adder">
 <link rel="next" href="gst-plugins-base-plugins-plugin-app.html" title="app">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.3.3</td>
+<td>1.5.0.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -50,7 +50,7 @@
 </tr>
 <tr>
 <td><p><span class="term">package</span></p></td>
-<td>GStreamer Base Plug-ins source release</td>
+<td>GStreamer Base Plug-ins git</td>
 </tr>
 <tr>
 <td><p><span class="term">origin</span></p></td>
@@ -81,6 +81,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-app.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-app.html
index a7e189f..2b9e163 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-app.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-app.html
@@ -8,11 +8,11 @@
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-alsa.html" title="alsa">
 <link rel="next" href="gst-plugins-base-plugins-plugin-audioconvert.html" title="audioconvert">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.3.3</td>
+<td>1.5.0.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -50,7 +50,7 @@
 </tr>
 <tr>
 <td><p><span class="term">package</span></p></td>
-<td>GStreamer Base Plug-ins source release</td>
+<td>GStreamer Base Plug-ins git</td>
 </tr>
 <tr>
 <td><p><span class="term">origin</span></p></td>
@@ -81,6 +81,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-audioconvert.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-audioconvert.html
index 23091c6..4fa8a96 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-audioconvert.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-audioconvert.html
@@ -8,11 +8,11 @@
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-app.html" title="app">
 <link rel="next" href="gst-plugins-base-plugins-plugin-audiorate.html" title="audiorate">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.3.3</td>
+<td>1.5.0.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -50,7 +50,7 @@
 </tr>
 <tr>
 <td><p><span class="term">package</span></p></td>
-<td>GStreamer Base Plug-ins source release</td>
+<td>GStreamer Base Plug-ins git</td>
 </tr>
 <tr>
 <td><p><span class="term">origin</span></p></td>
@@ -75,6 +75,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-audiorate.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-audiorate.html
index 5b0d68f..01c6ef6 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-audiorate.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-audiorate.html
@@ -8,11 +8,11 @@
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-audioconvert.html" title="audioconvert">
 <link rel="next" href="gst-plugins-base-plugins-plugin-audioresample.html" title="audioresample">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.3.3</td>
+<td>1.5.0.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -50,7 +50,7 @@
 </tr>
 <tr>
 <td><p><span class="term">package</span></p></td>
-<td>GStreamer Base Plug-ins source release</td>
+<td>GStreamer Base Plug-ins git</td>
 </tr>
 <tr>
 <td><p><span class="term">origin</span></p></td>
@@ -75,6 +75,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-audioresample.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-audioresample.html
index bdf8a84..1c1975b 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-audioresample.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-audioresample.html
@@ -8,11 +8,11 @@
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-audiorate.html" title="audiorate">
 <link rel="next" href="gst-plugins-base-plugins-plugin-audiotestsrc.html" title="audiotestsrc">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.3.3</td>
+<td>1.5.0.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -50,7 +50,7 @@
 </tr>
 <tr>
 <td><p><span class="term">package</span></p></td>
-<td>GStreamer Base Plug-ins source release</td>
+<td>GStreamer Base Plug-ins git</td>
 </tr>
 <tr>
 <td><p><span class="term">origin</span></p></td>
@@ -75,6 +75,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-audiotestsrc.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-audiotestsrc.html
index 13c1e16..268344f 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-audiotestsrc.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-audiotestsrc.html
@@ -8,11 +8,11 @@
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-audioresample.html" title="audioresample">
 <link rel="next" href="gst-plugins-base-plugins-plugin-cdparanoia.html" title="cdparanoia">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.3.3</td>
+<td>1.5.0.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -50,7 +50,7 @@
 </tr>
 <tr>
 <td><p><span class="term">package</span></p></td>
-<td>GStreamer Base Plug-ins source release</td>
+<td>GStreamer Base Plug-ins git</td>
 </tr>
 <tr>
 <td><p><span class="term">origin</span></p></td>
@@ -75,6 +75,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-cdparanoia.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-cdparanoia.html
index 4c01cdf..95efc0e 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-cdparanoia.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-cdparanoia.html
@@ -8,11 +8,11 @@
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-audiotestsrc.html" title="audiotestsrc">
 <link rel="next" href="gst-plugins-base-plugins-plugin-encoding.html" title="encoding">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.3.3</td>
+<td>1.5.0.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -50,7 +50,7 @@
 </tr>
 <tr>
 <td><p><span class="term">package</span></p></td>
-<td>GStreamer Base Plug-ins source release</td>
+<td>GStreamer Base Plug-ins git</td>
 </tr>
 <tr>
 <td><p><span class="term">origin</span></p></td>
@@ -75,6 +75,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-encoding.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-encoding.html
index ff0ceb7..618f37a 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-encoding.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-encoding.html
@@ -8,11 +8,11 @@
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-cdparanoia.html" title="cdparanoia">
 <link rel="next" href="gst-plugins-base-plugins-plugin-videoconvert.html" title="videoconvert">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.3.3</td>
+<td>1.5.0.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -50,7 +50,7 @@
 </tr>
 <tr>
 <td><p><span class="term">package</span></p></td>
-<td>GStreamer Base Plug-ins source release</td>
+<td>GStreamer Base Plug-ins git</td>
 </tr>
 <tr>
 <td><p><span class="term">origin</span></p></td>
@@ -75,6 +75,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-gio.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-gio.html
index 82b19df..73b5010 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-gio.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-gio.html
@@ -8,11 +8,11 @@
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-videoconvert.html" title="videoconvert">
 <link rel="next" href="gst-plugins-base-plugins-plugin-libvisual.html" title="libvisual">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.3.3</td>
+<td>1.5.0.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -50,7 +50,7 @@
 </tr>
 <tr>
 <td><p><span class="term">package</span></p></td>
-<td>GStreamer Base Plug-ins source release</td>
+<td>GStreamer Base Plug-ins git</td>
 </tr>
 <tr>
 <td><p><span class="term">origin</span></p></td>
@@ -89,6 +89,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-libvisual.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-libvisual.html
index d98e26e..52b2911 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-libvisual.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-libvisual.html
@@ -8,11 +8,11 @@
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-gio.html" title="gio">
 <link rel="next" href="gst-plugins-base-plugins-plugin-ogg.html" title="ogg">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.3.3</td>
+<td>1.5.0.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -50,7 +50,7 @@
 </tr>
 <tr>
 <td><p><span class="term">package</span></p></td>
-<td>GStreamer Base Plug-ins source release</td>
+<td>GStreamer Base Plug-ins git</td>
 </tr>
 <tr>
 <td><p><span class="term">origin</span></p></td>
@@ -105,6 +105,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-ogg.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-ogg.html
index d1d2433..ec92730 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-ogg.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-ogg.html
@@ -8,11 +8,11 @@
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-libvisual.html" title="libvisual">
 <link rel="next" href="gst-plugins-base-plugins-plugin-pango.html" title="pango">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.3.3</td>
+<td>1.5.0.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -50,7 +50,7 @@
 </tr>
 <tr>
 <td><p><span class="term">package</span></p></td>
-<td>GStreamer Base Plug-ins source release</td>
+<td>GStreamer Base Plug-ins git</td>
 </tr>
 <tr>
 <td><p><span class="term">origin</span></p></td>
@@ -101,6 +101,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-pango.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-pango.html
index e1d1ac3..d9a033b 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-pango.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-pango.html
@@ -8,11 +8,11 @@
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-ogg.html" title="ogg">
 <link rel="next" href="gst-plugins-base-plugins-plugin-playback.html" title="playback">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.3.3</td>
+<td>1.5.0.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -50,7 +50,7 @@
 </tr>
 <tr>
 <td><p><span class="term">package</span></p></td>
-<td>GStreamer Base Plug-ins source release</td>
+<td>GStreamer Base Plug-ins git</td>
 </tr>
 <tr>
 <td><p><span class="term">origin</span></p></td>
@@ -89,6 +89,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-playback.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-playback.html
index 1c72d82..b2bfd8d 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-playback.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-playback.html
@@ -8,11 +8,11 @@
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-pango.html" title="pango">
 <link rel="next" href="gst-plugins-base-plugins-plugin-subparse.html" title="subparse">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.3.3</td>
+<td>1.5.0.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -50,7 +50,7 @@
 </tr>
 <tr>
 <td><p><span class="term">package</span></p></td>
-<td>GStreamer Base Plug-ins source release</td>
+<td>GStreamer Base Plug-ins git</td>
 </tr>
 <tr>
 <td><p><span class="term">origin</span></p></td>
@@ -97,6 +97,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-subparse.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-subparse.html
index 539d0cd..3b08351 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-subparse.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-subparse.html
@@ -8,11 +8,11 @@
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-playback.html" title="playback">
 <link rel="next" href="gst-plugins-base-plugins-plugin-tcp.html" title="tcp">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.3.3</td>
+<td>1.5.0.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -50,7 +50,7 @@
 </tr>
 <tr>
 <td><p><span class="term">package</span></p></td>
-<td>GStreamer Base Plug-ins source release</td>
+<td>GStreamer Base Plug-ins git</td>
 </tr>
 <tr>
 <td><p><span class="term">origin</span></p></td>
@@ -81,6 +81,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-tcp.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-tcp.html
index bf69064..c395ec6 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-tcp.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-tcp.html
@@ -8,11 +8,11 @@
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-subparse.html" title="subparse">
 <link rel="next" href="gst-plugins-base-plugins-plugin-theora.html" title="theora">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.3.3</td>
+<td>1.5.0.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -50,7 +50,7 @@
 </tr>
 <tr>
 <td><p><span class="term">package</span></p></td>
-<td>GStreamer Base Plug-ins source release</td>
+<td>GStreamer Base Plug-ins git</td>
 </tr>
 <tr>
 <td><p><span class="term">origin</span></p></td>
@@ -76,6 +76,10 @@
 <td>Send data to multiple sockets</td>
 </tr>
 <tr>
+<td><p><span class="term"><a class="link" href="gst-plugins-base-plugins-socketsrc.html" title="socketsrc">socketsrc</a></span></p></td>
+<td>Receive data from a socket</td>
+</tr>
+<tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-base-plugins-tcpclientsink.html" title="tcpclientsink">tcpclientsink</a></span></p></td>
 <td>Send data as a client over the network via TCP</td>
 </tr>
@@ -97,6 +101,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-theora.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-theora.html
index 3b3d714..57619c2 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-theora.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-theora.html
@@ -8,11 +8,11 @@
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-tcp.html" title="tcp">
 <link rel="next" href="gst-plugins-base-plugins-plugin-typefindfunctions.html" title="typefindfunctions">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.3.3</td>
+<td>1.5.0.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -50,7 +50,7 @@
 </tr>
 <tr>
 <td><p><span class="term">package</span></p></td>
-<td>GStreamer Base Plug-ins source release</td>
+<td>GStreamer Base Plug-ins git</td>
 </tr>
 <tr>
 <td><p><span class="term">origin</span></p></td>
@@ -85,6 +85,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-typefindfunctions.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-typefindfunctions.html
index 4717f18..020efea 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-typefindfunctions.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-typefindfunctions.html
@@ -8,11 +8,11 @@
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-theora.html" title="theora">
 <link rel="next" href="gst-plugins-base-plugins-plugin-videorate.html" title="videorate">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.3.3</td>
+<td>1.5.0.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -50,7 +50,7 @@
 </tr>
 <tr>
 <td><p><span class="term">package</span></p></td>
-<td>GStreamer Base Plug-ins source release</td>
+<td>GStreamer Base Plug-ins git</td>
 </tr>
 <tr>
 <td><p><span class="term">origin</span></p></td>
@@ -72,6 +72,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-videoconvert.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-videoconvert.html
index ed75a0d..53785e1 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-videoconvert.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-videoconvert.html
@@ -8,11 +8,11 @@
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-encoding.html" title="encoding">
 <link rel="next" href="gst-plugins-base-plugins-plugin-gio.html" title="gio">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.3.3</td>
+<td>1.5.0.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -50,7 +50,7 @@
 </tr>
 <tr>
 <td><p><span class="term">package</span></p></td>
-<td>GStreamer Base Plug-ins source release</td>
+<td>GStreamer Base Plug-ins git</td>
 </tr>
 <tr>
 <td><p><span class="term">origin</span></p></td>
@@ -75,6 +75,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-videorate.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-videorate.html
index 36379d8..483b809 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-videorate.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-videorate.html
@@ -8,11 +8,11 @@
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-typefindfunctions.html" title="typefindfunctions">
 <link rel="next" href="gst-plugins-base-plugins-plugin-videoscale.html" title="videoscale">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.3.3</td>
+<td>1.5.0.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -50,7 +50,7 @@
 </tr>
 <tr>
 <td><p><span class="term">package</span></p></td>
-<td>GStreamer Base Plug-ins source release</td>
+<td>GStreamer Base Plug-ins git</td>
 </tr>
 <tr>
 <td><p><span class="term">origin</span></p></td>
@@ -75,6 +75,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-videoscale.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-videoscale.html
index 9b9fb2d..a958d0a 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-videoscale.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-videoscale.html
@@ -8,11 +8,11 @@
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-videorate.html" title="videorate">
 <link rel="next" href="gst-plugins-base-plugins-plugin-videotestsrc.html" title="videotestsrc">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.3.3</td>
+<td>1.5.0.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -50,7 +50,7 @@
 </tr>
 <tr>
 <td><p><span class="term">package</span></p></td>
-<td>GStreamer Base Plug-ins source release</td>
+<td>GStreamer Base Plug-ins git</td>
 </tr>
 <tr>
 <td><p><span class="term">origin</span></p></td>
@@ -75,6 +75,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-videotestsrc.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-videotestsrc.html
index d86cbb8..86a6e7a 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-videotestsrc.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-videotestsrc.html
@@ -8,11 +8,11 @@
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-videoscale.html" title="videoscale">
 <link rel="next" href="gst-plugins-base-plugins-plugin-volume.html" title="volume">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.3.3</td>
+<td>1.5.0.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -50,7 +50,7 @@
 </tr>
 <tr>
 <td><p><span class="term">package</span></p></td>
-<td>GStreamer Base Plug-ins source release</td>
+<td>GStreamer Base Plug-ins git</td>
 </tr>
 <tr>
 <td><p><span class="term">origin</span></p></td>
@@ -75,6 +75,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-volume.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-volume.html
index e3df4e4..6df9c31 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-volume.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-volume.html
@@ -8,11 +8,11 @@
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-videotestsrc.html" title="videotestsrc">
 <link rel="next" href="gst-plugins-base-plugins-plugin-vorbis.html" title="vorbis">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.3.3</td>
+<td>1.5.0.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -50,7 +50,7 @@
 </tr>
 <tr>
 <td><p><span class="term">package</span></p></td>
-<td>GStreamer Base Plug-ins source release</td>
+<td>GStreamer Base Plug-ins git</td>
 </tr>
 <tr>
 <td><p><span class="term">origin</span></p></td>
@@ -75,6 +75,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-vorbis.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-vorbis.html
index 38dd9c9..f3c3b4f 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-vorbis.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-vorbis.html
@@ -8,11 +8,11 @@
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-volume.html" title="volume">
 <link rel="next" href="gst-plugins-base-plugins-plugin-ximagesink.html" title="ximagesink">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.3.3</td>
+<td>1.5.0.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -50,7 +50,7 @@
 </tr>
 <tr>
 <td><p><span class="term">package</span></p></td>
-<td>GStreamer Base Plug-ins source release</td>
+<td>GStreamer Base Plug-ins git</td>
 </tr>
 <tr>
 <td><p><span class="term">origin</span></p></td>
@@ -89,6 +89,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-ximagesink.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-ximagesink.html
index 8bad689..a2cbca5 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-ximagesink.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-ximagesink.html
@@ -8,11 +8,11 @@
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-vorbis.html" title="vorbis">
 <link rel="next" href="gst-plugins-base-plugins-plugin-xvimagesink.html" title="xvimagesink">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.3.3</td>
+<td>1.5.0.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -50,7 +50,7 @@
 </tr>
 <tr>
 <td><p><span class="term">package</span></p></td>
-<td>GStreamer Base Plug-ins source release</td>
+<td>GStreamer Base Plug-ins git</td>
 </tr>
 <tr>
 <td><p><span class="term">origin</span></p></td>
@@ -75,6 +75,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-xvimagesink.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-xvimagesink.html
index 0008f07..405dd39 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-xvimagesink.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-xvimagesink.html
@@ -7,11 +7,11 @@
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-ximagesink.html" title="ximagesink">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -41,7 +41,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.3.3</td>
+<td>1.5.0.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -49,7 +49,7 @@
 </tr>
 <tr>
 <td><p><span class="term">package</span></p></td>
-<td>GStreamer Base Plug-ins source release</td>
+<td>GStreamer Base Plug-ins git</td>
 </tr>
 <tr>
 <td><p><span class="term">origin</span></p></td>
@@ -74,6 +74,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-socketsrc.html b/docs/plugins/html/gst-plugins-base-plugins-socketsrc.html
new file mode 100644
index 0000000..cd2e875
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-base-plugins-socketsrc.html
@@ -0,0 +1,142 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GStreamer Base Plugins 1.0 Plugins Reference Manual: socketsrc</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
+<link rel="up" href="ch01.html" title="gst-plugins-base Elements">
+<link rel="prev" href="gst-plugins-base-plugins-subtitleoverlay.html" title="subtitleoverlay">
+<link rel="next" href="gst-plugins-base-plugins-tcpclientsrc.html" title="tcpclientsrc">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-socketsrc.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="gst-plugins-base-plugins-subtitleoverlay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-base-plugins-tcpclientsrc.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="gst-plugins-base-plugins-socketsrc"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="gst-plugins-base-plugins-socketsrc.top_of_page"></a>socketsrc</span></h2>
+<p>socketsrc — Receive data from a socket</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="gst-plugins-base-plugins-socketsrc.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody><tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="gst-plugins-base-plugins-socketsrc.html#GstSocketSrc" title="struct GstSocketSrc">GstSocketSrc</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-plugins-socketsrc.description"></a><h2>Description</h2>
+<p>Receive data from a socket.</p>
+<p>As compared to other elements:</p>
+<p>socketsrc can be considered a source counterpart to the <span class="type">multisocketsink</span>
+sink.</p>
+<p>socketsrc can also be considered a generalization of <span class="type">tcpclientsrc</span> and
+<span class="type">tcpserversrc</span>: it contains all the logic required to communicate over the
+socket but none of the logic for creating the sockets/establishing the
+connection in the first place, allowing the user to accomplish this
+externally in whatever manner they wish making it applicable to other types
+of sockets besides TCP.</p>
+<p>As compared to <span class="type">fdsrc</span> socketsrc is socket specific and deals with <a href="https://developer.gnome.org/gio/unstable/GSocket.html"><span class="type">GSocket</span></a>
+objects rather than sockets via integer file-descriptors.</p>
+<p><em class="parameter"><code>see_also</code></em>
+: <span class="type">multisocketsink</span></p>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.28.4.7.3.1"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term">plugin</span></p></td>
+<td>
+            <a class="link" href="gst-plugins-base-plugins-plugin-tcp.html#plugin-tcp">tcp</a>
+          </td>
+</tr>
+<tr>
+<td><p><span class="term">author</span></p></td>
+<td>William Manley &lt;will@williammanley.net&gt;</td>
+</tr>
+<tr>
+<td><p><span class="term">class</span></p></td>
+<td>Source/Network</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="id-1.2.28.4.7.3.2"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term">name</span></p></td>
+<td>src</td>
+</tr>
+<tr>
+<td><p><span class="term">direction</span></p></td>
+<td>source</td>
+</tr>
+<tr>
+<td><p><span class="term">presence</span></p></td>
+<td>always</td>
+</tr>
+<tr>
+<td><p><span class="term">details</span></p></td>
+<td>ANY</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<p>
+</p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-plugins-socketsrc.functions_details"></a><h2>Functions</h2>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-plugins-socketsrc.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstSocketSrc"></a><h3>struct GstSocketSrc</h3>
+<pre class="programlisting">struct GstSocketSrc {
+  GstPushSrc element;
+};
+</pre>
+<p>
+</p>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.21</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-streamsynchronizer.html b/docs/plugins/html/gst-plugins-base-plugins-streamsynchronizer.html
index 8a59441..acbf3f2 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-streamsynchronizer.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-streamsynchronizer.html
@@ -8,14 +8,14 @@
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-playsink.html" title="playsink">
 <link rel="next" href="gst-plugins-base-plugins-subtitleoverlay.html" title="subtitleoverlay">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-streamsynchronizer.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-streamsynchronizer.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
                   <a href="#gst-plugins-base-plugins-streamsynchronizer.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
@@ -47,8 +47,8 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-streamsynchronizer.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-    <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+<pre class="screen">    <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
         <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
             <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
                 <span class="lineart">╰──</span> GstStreamSynchronizer
@@ -154,6 +154,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-subtitleoverlay.html b/docs/plugins/html/gst-plugins-base-plugins-subtitleoverlay.html
index 28ac093..daf720c 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-subtitleoverlay.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-subtitleoverlay.html
@@ -7,23 +7,23 @@
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-streamsynchronizer.html" title="streamsynchronizer">
-<link rel="next" href="gst-plugins-base-plugins-tcpclientsrc.html" title="tcpclientsrc">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<link rel="next" href="gst-plugins-base-plugins-socketsrc.html" title="socketsrc">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-subtitleoverlay.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-subtitleoverlay.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-subtitleoverlay.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties"> <span class="dim">|</span> 
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-subtitleoverlay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-subtitleoverlay.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-subtitleoverlay.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties">  <span class="dim">|</span> 
                   <a href="#gst-plugins-base-plugins-subtitleoverlay.properties" class="shortcut">Properties</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
 <td><a accesskey="p" href="gst-plugins-base-plugins-streamsynchronizer.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-base-plugins-tcpclientsrc.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-base-plugins-socketsrc.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-base-plugins-subtitleoverlay"></a><div class="titlepage"></div>
@@ -45,18 +45,18 @@
 <tbody>
 <tr>
 <td class="property_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-subtitleoverlay.html#GstSubtitleOverlay--font-desc" title="The “font-desc” property">font-desc</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-subtitleoverlay.html#GstSubtitleOverlay--silent" title="The “silent” property">silent</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
 <td class="property_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-subtitleoverlay.html#GstSubtitleOverlay--subtitle-encoding" title="The “subtitle-encoding” property">subtitle-encoding</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
@@ -78,8 +78,8 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-subtitleoverlay.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-    <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+<pre class="screen">    <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
         <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
             <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
                 <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBin.html">GstBin</a>
@@ -235,7 +235,7 @@
 <a name="gst-plugins-base-plugins-subtitleoverlay.property-details"></a><h2>Property Details</h2>
 <div class="refsect2">
 <a name="GstSubtitleOverlay--font-desc"></a><h3>The <code class="literal">“font-desc”</code> property</h3>
-<pre class="programlisting">  “font-desc”                <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
+<pre class="programlisting">  “font-desc”                <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
 <p>Pango font description of font to be used for subtitle rendering.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: NULL</p>
@@ -243,7 +243,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstSubtitleOverlay--silent"></a><h3>The <code class="literal">“silent”</code> property</h3>
-<pre class="programlisting">  “silent”                   <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<pre class="programlisting">  “silent”                   <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
 <p>Whether to show subtitles.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: FALSE</p>
@@ -251,7 +251,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstSubtitleOverlay--subtitle-encoding"></a><h3>The <code class="literal">“subtitle-encoding”</code> property</h3>
-<pre class="programlisting">  “subtitle-encoding”        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
+<pre class="programlisting">  “subtitle-encoding”        <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
 <p>Encoding to assume if input subtitles are not in UTF-8 encoding. If not set, the GST_SUBTITLE_ENCODING environment variable will be checked for an encoding to use. If that is not set either, ISO-8859-15 will be assumed.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: NULL</p>
@@ -260,6 +260,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-tcpclientsink.html b/docs/plugins/html/gst-plugins-base-plugins-tcpclientsink.html
index 5d22d1c..a07ebad 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-tcpclientsink.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-tcpclientsink.html
@@ -8,15 +8,15 @@
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-tcpclientsrc.html" title="tcpclientsrc">
 <link rel="next" href="gst-plugins-base-plugins-tcpserversrc.html" title="tcpserversrc">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-tcpclientsink.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-tcpclientsink.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> 
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-tcpclientsink.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-tcpclientsink.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
                   <a href="#gst-plugins-base-plugins-tcpclientsink.properties" class="shortcut">Properties</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
@@ -44,12 +44,12 @@
 <tbody>
 <tr>
 <td class="property_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-tcpclientsink.html#GstTCPClientSink--host" title="The “host” property">host</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-tcpclientsink.html#GstTCPClientSink--port" title="The “port” property">port</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
@@ -71,8 +71,8 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-tcpclientsink.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-    <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+<pre class="screen">    <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
         <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
             <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
                 <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSink.html">GstBaseSink</a>
@@ -82,7 +82,7 @@
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-tcpclientsink.description"></a><h2>Description</h2>
 <div class="refsect2">
-<a name="id-1.2.29.7.2"></a><h3>Example launch line</h3>
+<a name="id-1.2.30.7.2"></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="id-1.2.29.7.3.1"></a><h3>Element Information</h3>
+<a name="id-1.2.30.7.3.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -130,7 +130,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.29.7.3.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.30.7.3.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -176,7 +176,7 @@
 <a name="gst-plugins-base-plugins-tcpclientsink.property-details"></a><h2>Property Details</h2>
 <div class="refsect2">
 <a name="GstTCPClientSink--host"></a><h3>The <code class="literal">“host”</code> property</h3>
-<pre class="programlisting">  “host”                     <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
+<pre class="programlisting">  “host”                     <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
 <p>The host/IP to send the packets to.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: "localhost"</p>
@@ -184,7 +184,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstTCPClientSink--port"></a><h3>The <code class="literal">“port”</code> property</h3>
-<pre class="programlisting">  “port”                     <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<pre class="programlisting">  “port”                     <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
 <p>The port to send the packets to.</p>
 <p>Flags: Read / Write</p>
 <p>Allowed values: [0,65535]</p>
@@ -198,6 +198,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-tcpclientsrc.html b/docs/plugins/html/gst-plugins-base-plugins-tcpclientsrc.html
index d78e6ad..9475893 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-tcpclientsrc.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-tcpclientsrc.html
@@ -6,22 +6,22 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
-<link rel="prev" href="gst-plugins-base-plugins-subtitleoverlay.html" title="subtitleoverlay">
+<link rel="prev" href="gst-plugins-base-plugins-socketsrc.html" title="socketsrc">
 <link rel="next" href="gst-plugins-base-plugins-tcpclientsink.html" title="tcpclientsink">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-tcpclientsrc.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-tcpclientsrc.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> 
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-tcpclientsrc.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-tcpclientsrc.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
                   <a href="#gst-plugins-base-plugins-tcpclientsrc.properties" class="shortcut">Properties</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-base-plugins-subtitleoverlay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-base-plugins-socketsrc.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
 <td><a accesskey="n" href="gst-plugins-base-plugins-tcpclientsink.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
@@ -44,12 +44,12 @@
 <tbody>
 <tr>
 <td class="property_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-tcpclientsrc.html#GstTCPClientSrc--host" title="The “host” property">host</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-tcpclientsrc.html#GstTCPClientSrc--port" title="The “port” property">port</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
@@ -71,8 +71,8 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-tcpclientsrc.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-    <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+<pre class="screen">    <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
         <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
             <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
                 <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSrc.html">GstBaseSrc</a>
@@ -83,7 +83,7 @@
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-tcpclientsrc.description"></a><h2>Description</h2>
 <div class="refsect2">
-<a name="id-1.2.28.7.2"></a><h3>Example launch line</h3>
+<a name="id-1.2.29.7.2"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -105,7 +105,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.28.7.3.1"></a><h3>Element Information</h3>
+<a name="id-1.2.29.7.3.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -131,7 +131,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.28.7.3.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.29.7.3.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -177,7 +177,7 @@
 <a name="gst-plugins-base-plugins-tcpclientsrc.property-details"></a><h2>Property Details</h2>
 <div class="refsect2">
 <a name="GstTCPClientSrc--host"></a><h3>The <code class="literal">“host”</code> property</h3>
-<pre class="programlisting">  “host”                     <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
+<pre class="programlisting">  “host”                     <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
 <p>The host IP address to receive packets from.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: "localhost"</p>
@@ -185,7 +185,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstTCPClientSrc--port"></a><h3>The <code class="literal">“port”</code> property</h3>
-<pre class="programlisting">  “port”                     <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<pre class="programlisting">  “port”                     <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
 <p>The port to receive packets from.</p>
 <p>Flags: Read / Write</p>
 <p>Allowed values: [0,65535]</p>
@@ -199,6 +199,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-tcpserversink.html b/docs/plugins/html/gst-plugins-base-plugins-tcpserversink.html
index 80aac6a..d96b784 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-tcpserversink.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-tcpserversink.html
@@ -8,15 +8,15 @@
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-tcpserversrc.html" title="tcpserversrc">
 <link rel="next" href="gst-plugins-base-plugins-textoverlay.html" title="textoverlay">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-tcpserversink.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-tcpserversink.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> 
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-tcpserversink.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-tcpserversink.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
                   <a href="#gst-plugins-base-plugins-tcpserversink.properties" class="shortcut">Properties</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
@@ -43,18 +43,18 @@
 </colgroup>
 <tbody>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-tcpserversink.html#GstTCPServerSink--current-port" title="The “current-port” property">current-port</a></td>
 <td class="property_flags">Read</td>
 </tr>
 <tr>
 <td class="property_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-tcpserversink.html#GstTCPServerSink--host" title="The “host” property">host</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-tcpserversink.html#GstTCPServerSink--port" title="The “port” property">port</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
@@ -76,8 +76,8 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-tcpserversink.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-    <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+<pre class="screen">    <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
         <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
             <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
                 <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSink.html">GstBaseSink</a>
@@ -89,7 +89,7 @@
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-tcpserversink.description"></a><h2>Description</h2>
 <div class="refsect2">
-<a name="id-1.2.31.7.2"></a><h3>Example launch line</h3>
+<a name="id-1.2.32.7.2"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -111,7 +111,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.31.7.3.1"></a><h3>Element Information</h3>
+<a name="id-1.2.32.7.3.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -137,7 +137,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.31.7.3.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.32.7.3.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -182,7 +182,7 @@
 <a name="gst-plugins-base-plugins-tcpserversink.property-details"></a><h2>Property Details</h2>
 <div class="refsect2">
 <a name="GstTCPServerSink--current-port"></a><h3>The <code class="literal">“current-port”</code> property</h3>
-<pre class="programlisting">  “current-port”             <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<pre class="programlisting">  “current-port”             <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
 <p>The port number the socket is currently bound to. Applications can use
 this property to retrieve the port number actually bound to in case
 the port requested was 0 (=allocate a random available port).</p>
@@ -194,7 +194,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstTCPServerSink--host"></a><h3>The <code class="literal">“host”</code> property</h3>
-<pre class="programlisting">  “host”                     <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
+<pre class="programlisting">  “host”                     <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
 <p>The host/IP to listen on.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: "localhost"</p>
@@ -202,7 +202,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstTCPServerSink--port"></a><h3>The <code class="literal">“port”</code> property</h3>
-<pre class="programlisting">  “port”                     <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<pre class="programlisting">  “port”                     <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
 <p>The port to listen to (0=random available port).</p>
 <p>Flags: Read / Write</p>
 <p>Allowed values: [0,65535]</p>
@@ -216,6 +216,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-tcpserversrc.html b/docs/plugins/html/gst-plugins-base-plugins-tcpserversrc.html
index dea34f1..cc129a9 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-tcpserversrc.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-tcpserversrc.html
@@ -8,15 +8,15 @@
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-tcpclientsink.html" title="tcpclientsink">
 <link rel="next" href="gst-plugins-base-plugins-tcpserversink.html" title="tcpserversink">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-tcpserversrc.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-tcpserversrc.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> 
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-tcpserversrc.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-tcpserversrc.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
                   <a href="#gst-plugins-base-plugins-tcpserversrc.properties" class="shortcut">Properties</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
@@ -43,18 +43,18 @@
 </colgroup>
 <tbody>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-tcpserversrc.html#GstTCPServerSrc--current-port" title="The “current-port” property">current-port</a></td>
 <td class="property_flags">Read</td>
 </tr>
 <tr>
 <td class="property_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-tcpserversrc.html#GstTCPServerSrc--host" title="The “host” property">host</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-tcpserversrc.html#GstTCPServerSrc--port" title="The “port” property">port</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
@@ -76,8 +76,8 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-tcpserversrc.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-    <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+<pre class="screen">    <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
         <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
             <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
                 <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSrc.html">GstBaseSrc</a>
@@ -88,7 +88,7 @@
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-tcpserversrc.description"></a><h2>Description</h2>
 <div class="refsect2">
-<a name="id-1.2.30.7.2"></a><h3>Example launch line</h3>
+<a name="id-1.2.31.7.2"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -110,7 +110,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.30.7.3.1"></a><h3>Element Information</h3>
+<a name="id-1.2.31.7.3.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -136,7 +136,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.30.7.3.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.31.7.3.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -182,7 +182,7 @@
 <a name="gst-plugins-base-plugins-tcpserversrc.property-details"></a><h2>Property Details</h2>
 <div class="refsect2">
 <a name="GstTCPServerSrc--current-port"></a><h3>The <code class="literal">“current-port”</code> property</h3>
-<pre class="programlisting">  “current-port”             <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<pre class="programlisting">  “current-port”             <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
 <p>The port number the socket is currently bound to. Applications can use
 this property to retrieve the port number actually bound to in case
 the port requested was 0 (=allocate a random available port).</p>
@@ -194,7 +194,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstTCPServerSrc--host"></a><h3>The <code class="literal">“host”</code> property</h3>
-<pre class="programlisting">  “host”                     <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
+<pre class="programlisting">  “host”                     <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
 <p>The hostname to listen as.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: NULL</p>
@@ -202,7 +202,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstTCPServerSrc--port"></a><h3>The <code class="literal">“port”</code> property</h3>
-<pre class="programlisting">  “port”                     <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<pre class="programlisting">  “port”                     <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
 <p>The port to listen to (0=random available port).</p>
 <p>Flags: Read / Write</p>
 <p>Allowed values: [0,65535]</p>
@@ -216,6 +216,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-textoverlay.html b/docs/plugins/html/gst-plugins-base-plugins-textoverlay.html
index cd5fc28..041953c 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-textoverlay.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-textoverlay.html
@@ -8,14 +8,14 @@
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-tcpserversink.html" title="tcpserversink">
 <link rel="next" href="gst-plugins-base-plugins-textrender.html" title="textrender">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-textoverlay.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-textoverlay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
                   <a href="#gst-plugins-base-plugins-textoverlay.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
@@ -47,8 +47,8 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-textoverlay.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-    <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+<pre class="screen">    <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
         <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
             <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
                 <span class="lineart">╰──</span> GstBaseTextOverlay
@@ -60,7 +60,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.32.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.33.6.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -86,7 +86,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.32.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.33.6.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -187,6 +187,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-textrender.html b/docs/plugins/html/gst-plugins-base-plugins-textrender.html
index 01e0aa1..493690d 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-textrender.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-textrender.html
@@ -8,15 +8,15 @@
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-textoverlay.html" title="textoverlay">
 <link rel="next" href="gst-plugins-base-plugins-theoradec.html" title="theoradec">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-textrender.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-textrender.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> 
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-textrender.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-textrender.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
                   <a href="#gst-plugins-base-plugins-textrender.properties" class="shortcut">Properties</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
@@ -44,7 +44,7 @@
 <tbody>
 <tr>
 <td class="property_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-textrender.html#GstTextRender--font-desc" title="The “font-desc” property">font-desc</a></td>
 <td class="property_flags">Write</td>
 </tr>
@@ -64,12 +64,12 @@
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-textrender.html#GstTextRender--xpad" title="The “xpad” property">xpad</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-textrender.html#GstTextRender--ypad" title="The “ypad” property">ypad</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
@@ -91,8 +91,8 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-textrender.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-    <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+<pre class="screen">    <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
         <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
             <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
                 <span class="lineart">╰──</span> GstTextRender
@@ -103,7 +103,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.33.7.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.34.7.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -129,7 +129,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.33.7.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.34.7.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -199,7 +199,7 @@
 <a name="gst-plugins-base-plugins-textrender.property-details"></a><h2>Property Details</h2>
 <div class="refsect2">
 <a name="GstTextRender--font-desc"></a><h3>The <code class="literal">“font-desc”</code> property</h3>
-<pre class="programlisting">  “font-desc”                <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
+<pre class="programlisting">  “font-desc”                <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
 <p>Pango font description of font to be used for rendering. See documentation of pango_font_description_from_string for syntax.</p>
 <p>Flags: Write</p>
 <p>Default value: ""</p>
@@ -231,7 +231,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstTextRender--xpad"></a><h3>The <code class="literal">“xpad”</code> property</h3>
-<pre class="programlisting">  “xpad”                     <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<pre class="programlisting">  “xpad”                     <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
 <p>Horizontal paddding when using left/right alignment.</p>
 <p>Flags: Read / Write</p>
 <p>Allowed values: &gt;= 0</p>
@@ -240,7 +240,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstTextRender--ypad"></a><h3>The <code class="literal">“ypad”</code> property</h3>
-<pre class="programlisting">  “ypad”                     <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<pre class="programlisting">  “ypad”                     <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
 <p>Vertical padding when using top/bottom alignment.</p>
 <p>Flags: Read / Write</p>
 <p>Allowed values: &gt;= 0</p>
@@ -250,6 +250,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-theoradec.html b/docs/plugins/html/gst-plugins-base-plugins-theoradec.html
index f42d1c8..7dbff6b 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-theoradec.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-theoradec.html
@@ -8,14 +8,14 @@
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-textrender.html" title="textrender">
 <link rel="next" href="gst-plugins-base-plugins-theoraenc.html" title="theoraenc">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-theoradec.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-theoradec.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
                   <a href="#gst-plugins-base-plugins-theoradec.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
@@ -47,8 +47,8 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-theoradec.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-    <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+<pre class="screen">    <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
         <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
             <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
                 <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder">GstVideoDecoder</a>
@@ -60,7 +60,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.34.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.35.6.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -86,7 +86,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.34.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.35.6.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -155,6 +155,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-theoraenc.html b/docs/plugins/html/gst-plugins-base-plugins-theoraenc.html
index 522b855..1e3b858 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-theoraenc.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-theoraenc.html
@@ -8,16 +8,16 @@
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-theoradec.html" title="theoradec">
 <link rel="next" href="gst-plugins-base-plugins-theoraparse.html" title="theoraparse">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-theoraenc.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-theoraenc.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-theoraenc.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties"> <span class="dim">|</span> 
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-theoraenc.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-theoraenc.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-theoraenc.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties">  <span class="dim">|</span> 
                   <a href="#gst-plugins-base-plugins-theoraenc.properties" class="shortcut">Properties</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
@@ -44,43 +44,43 @@
 </colgroup>
 <tbody>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--bitrate" title="The “bitrate” property">bitrate</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--cap-overflow" title="The “cap-overflow” property">cap-overflow</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--cap-underflow" title="The “cap-underflow” property">cap-underflow</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--drop-frames" title="The “drop-frames” property">drop-frames</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--keyframe-auto" title="The “keyframe-auto” property">keyframe-auto</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--keyframe-force" title="The “keyframe-force” property">keyframe-force</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--keyframe-freq" title="The “keyframe-freq” property">keyframe-freq</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
 <td class="property_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--multipass-cache-file" title="The “multipass-cache-file” property">multipass-cache-file</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
@@ -90,22 +90,22 @@
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--quality" title="The “quality” property">quality</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--rate-buffer" title="The “rate-buffer” property">rate-buffer</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--speed-level" title="The “speed-level” property">speed-level</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--vp3-compatible" title="The “vp3-compatible” property">vp3-compatible</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
@@ -127,8 +127,8 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-theoraenc.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-    <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+<pre class="screen">    <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
         <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
             <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
                 <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder">GstVideoEncoder</a>
@@ -146,7 +146,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.35.8.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.36.8.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -172,7 +172,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.35.8.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.36.8.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -242,7 +242,7 @@
 <a name="gst-plugins-base-plugins-theoraenc.property-details"></a><h2>Property Details</h2>
 <div class="refsect2">
 <a name="GstTheoraEnc--bitrate"></a><h3>The <code class="literal">“bitrate”</code> property</h3>
-<pre class="programlisting">  “bitrate”                  <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<pre class="programlisting">  “bitrate”                  <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
 <p>Compressed video bitrate (kbps).</p>
 <p>Flags: Read / Write</p>
 <p>Allowed values: [0,16777215]</p>
@@ -251,7 +251,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstTheoraEnc--cap-overflow"></a><h3>The <code class="literal">“cap-overflow”</code> property</h3>
-<pre class="programlisting">  “cap-overflow”             <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<pre class="programlisting">  “cap-overflow”             <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
 <p>Enable capping of bit reservoir overflows.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: TRUE</p>
@@ -259,7 +259,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstTheoraEnc--cap-underflow"></a><h3>The <code class="literal">“cap-underflow”</code> property</h3>
-<pre class="programlisting">  “cap-underflow”            <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<pre class="programlisting">  “cap-underflow”            <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
 <p>Enable capping of bit reservoir underflows.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: FALSE</p>
@@ -267,7 +267,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstTheoraEnc--drop-frames"></a><h3>The <code class="literal">“drop-frames”</code> property</h3>
-<pre class="programlisting">  “drop-frames”              <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<pre class="programlisting">  “drop-frames”              <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
 <p>Allow or disallow frame dropping.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: TRUE</p>
@@ -275,7 +275,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstTheoraEnc--keyframe-auto"></a><h3>The <code class="literal">“keyframe-auto”</code> property</h3>
-<pre class="programlisting">  “keyframe-auto”            <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<pre class="programlisting">  “keyframe-auto”            <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
 <p>Automatic keyframe detection.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: TRUE</p>
@@ -283,7 +283,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstTheoraEnc--keyframe-force"></a><h3>The <code class="literal">“keyframe-force”</code> property</h3>
-<pre class="programlisting">  “keyframe-force”           <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<pre class="programlisting">  “keyframe-force”           <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
 <p>Force keyframe every N frames.</p>
 <p>Flags: Read / Write</p>
 <p>Allowed values: [1,32768]</p>
@@ -292,7 +292,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstTheoraEnc--keyframe-freq"></a><h3>The <code class="literal">“keyframe-freq”</code> property</h3>
-<pre class="programlisting">  “keyframe-freq”            <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<pre class="programlisting">  “keyframe-freq”            <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
 <p>Keyframe frequency.</p>
 <p>Flags: Read / Write</p>
 <p>Allowed values: [1,32768]</p>
@@ -301,7 +301,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstTheoraEnc--multipass-cache-file"></a><h3>The <code class="literal">“multipass-cache-file”</code> property</h3>
-<pre class="programlisting">  “multipass-cache-file”     <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
+<pre class="programlisting">  “multipass-cache-file”     <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
 <p>Multipass cache file.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: NULL</p>
@@ -317,7 +317,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstTheoraEnc--quality"></a><h3>The <code class="literal">“quality”</code> property</h3>
-<pre class="programlisting">  “quality”                  <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<pre class="programlisting">  “quality”                  <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
 <p>Video quality.</p>
 <p>Flags: Read / Write</p>
 <p>Allowed values: [0,63]</p>
@@ -326,7 +326,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstTheoraEnc--rate-buffer"></a><h3>The <code class="literal">“rate-buffer”</code> property</h3>
-<pre class="programlisting">  “rate-buffer”              <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<pre class="programlisting">  “rate-buffer”              <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
 <p>Sets the size of the rate control buffer, in units of frames.  The default value of 0 instructs the encoder to automatically select an appropriate value.</p>
 <p>Flags: Read / Write</p>
 <p>Allowed values: [0,1000]</p>
@@ -335,7 +335,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstTheoraEnc--speed-level"></a><h3>The <code class="literal">“speed-level”</code> property</h3>
-<pre class="programlisting">  “speed-level”              <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<pre class="programlisting">  “speed-level”              <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
 <p>Controls the amount of motion vector searching done while encoding.</p>
 <p>Flags: Read / Write</p>
 <p>Allowed values: [0,3]</p>
@@ -344,7 +344,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstTheoraEnc--vp3-compatible"></a><h3>The <code class="literal">“vp3-compatible”</code> property</h3>
-<pre class="programlisting">  “vp3-compatible”           <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<pre class="programlisting">  “vp3-compatible”           <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
 <p>Disables non-VP3 compatible features.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: FALSE</p>
@@ -353,6 +353,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-theoraparse.html b/docs/plugins/html/gst-plugins-base-plugins-theoraparse.html
index 066c24f..f962f40 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-theoraparse.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-theoraparse.html
@@ -8,14 +8,14 @@
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-theoraenc.html" title="theoraenc">
 <link rel="next" href="gst-plugins-base-plugins-timeoverlay.html" title="timeoverlay">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-theoraparse.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-theoraparse.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
                   <a href="#gst-plugins-base-plugins-theoraparse.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
@@ -47,8 +47,8 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-theoraparse.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-    <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+<pre class="screen">    <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
         <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
             <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
                 <span class="lineart">╰──</span> GstTheoraParse
@@ -59,7 +59,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.36.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.37.6.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -85,7 +85,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.36.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.37.6.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -154,6 +154,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-timeoverlay.html b/docs/plugins/html/gst-plugins-base-plugins-timeoverlay.html
index 656d45f..2616eea 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-timeoverlay.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-timeoverlay.html
@@ -8,14 +8,14 @@
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-theoraparse.html" title="theoraparse">
 <link rel="next" href="gst-plugins-base-plugins-uridecodebin.html" title="uridecodebin">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-timeoverlay.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-timeoverlay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
                   <a href="#gst-plugins-base-plugins-timeoverlay.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
@@ -47,8 +47,8 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-timeoverlay.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-    <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+<pre class="screen">    <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
         <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
             <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
                 <span class="lineart">╰──</span> GstBaseTextOverlay
@@ -60,7 +60,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.37.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.38.6.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -86,7 +86,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.37.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.38.6.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -163,6 +163,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-uridecodebin.html b/docs/plugins/html/gst-plugins-base-plugins-uridecodebin.html
index 445798a..22398d7 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-uridecodebin.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-uridecodebin.html
@@ -8,17 +8,17 @@
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-timeoverlay.html" title="timeoverlay">
 <link rel="next" href="gst-plugins-base-plugins-videorate.html" title="videorate">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-uridecodebin.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-uridecodebin.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-uridecodebin.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-uridecodebin.properties" class="shortcut">Properties</a></span><span id="nav_signals"> <span class="dim">|</span> 
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-uridecodebin.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-uridecodebin.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-uridecodebin.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-uridecodebin.properties" class="shortcut">Properties</a></span><span id="nav_signals">  <span class="dim">|</span> 
                   <a href="#gst-plugins-base-plugins-uridecodebin.signals" class="shortcut">Signals</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
@@ -50,13 +50,13 @@
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin--buffer-size" title="The “buffer-size” property">buffer-size</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
 <td class="property_type">
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *</td>
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> *</td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin--caps" title="The “caps” property">caps</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
@@ -66,12 +66,12 @@
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin--download" title="The “download” property">download</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin--expose-all-streams" title="The “expose-all-streams” property">expose-all-streams</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
@@ -88,18 +88,18 @@
 </tr>
 <tr>
 <td class="property_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin--subtitle-encoding" title="The “subtitle-encoding” property">subtitle-encoding</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
 <td class="property_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin--uri" title="The “uri” property">uri</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin--use-buffering" title="The “use-buffering” property">use-buffering</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
@@ -116,18 +116,18 @@
 </colgroup>
 <tbody>
 <tr>
-<td class="signal_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a></td>
+<td class="signal_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a></td>
 <td class="signal_name"><a class="link" href="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin-autoplug-continue" title="The “autoplug-continue” signal">autoplug-continue</a></td>
 <td class="signal_flags">Run Last</td>
 </tr>
 <tr>
 <td class="signal_type">
-<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Value-arrays.html#GValueArray"><span class="returnvalue">GValueArray</span></a>*</td>
+<a href="https://developer.gnome.org/gobject/unstable/gobject-Value-arrays.html#GValueArray"><span class="returnvalue">GValueArray</span></a>*</td>
 <td class="signal_name"><a class="link" href="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin-autoplug-factories" title="The “autoplug-factories” signal">autoplug-factories</a></td>
 <td class="signal_flags">Run Last</td>
 </tr>
 <tr>
-<td class="signal_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a></td>
+<td class="signal_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a></td>
 <td class="signal_name"><a class="link" href="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin-autoplug-query" title="The “autoplug-query” signal">autoplug-query</a></td>
 <td class="signal_flags">Run Last</td>
 </tr>
@@ -138,7 +138,7 @@
 </tr>
 <tr>
 <td class="signal_type">
-<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Value-arrays.html#GValueArray"><span class="returnvalue">GValueArray</span></a>*</td>
+<a href="https://developer.gnome.org/gobject/unstable/gobject-Value-arrays.html#GValueArray"><span class="returnvalue">GValueArray</span></a>*</td>
 <td class="signal_name"><a class="link" href="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin-autoplug-sort" title="The “autoplug-sort” signal">autoplug-sort</a></td>
 <td class="signal_flags">Run Last</td>
 </tr>
@@ -181,8 +181,8 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-uridecodebin.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-    <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+<pre class="screen">    <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
         <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
             <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
                 <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBin.html">GstBin</a>
@@ -202,7 +202,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.38.9.2.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.39.9.2.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -228,7 +228,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.38.9.2.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.39.9.2.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -273,7 +273,7 @@
 <a name="GstAutoplugSelectResult"></a><h3>enum GstAutoplugSelectResult</h3>
 <p>return values for the autoplug-select signal.</p>
 <div class="refsect3">
-<a name="id-1.2.38.11.3.4"></a><h4>Members</h4>
+<a name="id-1.2.39.11.3.4"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -320,7 +320,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstURIDecodeBin--buffer-size"></a><h3>The <code class="literal">“buffer-size”</code> property</h3>
-<pre class="programlisting">  “buffer-size”              <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<pre class="programlisting">  “buffer-size”              <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
 <p>Buffer size when buffering streams (-1 default value).</p>
 <p>Flags: Read / Write</p>
 <p>Allowed values: &gt;= G_MAXULONG</p>
@@ -329,7 +329,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstURIDecodeBin--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> *</pre>
+<pre class="programlisting">  “caps”                     <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> *</pre>
 <p>The caps on which to stop decoding. (NULL = default).</p>
 <p>Flags: Read / Write</p>
 </div>
@@ -345,7 +345,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstURIDecodeBin--download"></a><h3>The <code class="literal">“download”</code> property</h3>
-<pre class="programlisting">  “download”                 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<pre class="programlisting">  “download”                 <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
 <p>Attempt download buffering when buffering network streams.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: FALSE</p>
@@ -353,7 +353,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstURIDecodeBin--expose-all-streams"></a><h3>The <code class="literal">“expose-all-streams”</code> property</h3>
-<pre class="programlisting">  “expose-all-streams”       <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<pre class="programlisting">  “expose-all-streams”       <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
 <p>Expose all streams, including those of unknown type or that don't match the 'caps' property.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: TRUE</p>
@@ -377,7 +377,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstURIDecodeBin--subtitle-encoding"></a><h3>The <code class="literal">“subtitle-encoding”</code> property</h3>
-<pre class="programlisting">  “subtitle-encoding”        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
+<pre class="programlisting">  “subtitle-encoding”        <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
 <p>Encoding to assume if input subtitles are not in UTF-8 encoding. If not set, the GST_SUBTITLE_ENCODING environment variable will be checked for an encoding to use. If that is not set either, ISO-8859-15 will be assumed.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: NULL</p>
@@ -385,7 +385,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstURIDecodeBin--uri"></a><h3>The <code class="literal">“uri”</code> property</h3>
-<pre class="programlisting">  “uri”                      <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
+<pre class="programlisting">  “uri”                      <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
 <p>URI to decode.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: NULL</p>
@@ -393,7 +393,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstURIDecodeBin--use-buffering"></a><h3>The <code class="literal">“use-buffering”</code> property</h3>
-<pre class="programlisting">  “use-buffering”            <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<pre class="programlisting">  “use-buffering”            <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
 <p>Perform buffering on demuxed/parsed media.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: FALSE</p>
@@ -403,20 +403,20 @@
 <a name="gst-plugins-base-plugins-uridecodebin.signal-details"></a><h2>Signal Details</h2>
 <div class="refsect2">
 <a name="GstURIDecodeBin-autoplug-continue"></a><h3>The <code class="literal">“autoplug-continue”</code> signal</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 user_function (<a class="link" href="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin"><span class="type">GstURIDecodeBin</span></a> *bin,
                <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a>          *pad,
-               <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/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)</pre>
+               <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a>         *caps,
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>         user_data)</pre>
 <p>This signal is emitted whenever uridecodebin finds a new stream. It is
 emitted before looking for any elements that can handle that stream.</p>
 <div class="note">
   Invocation of signal handlers stops after the first signal handler
-returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><span class="type">FALSE</span></a>. Signal handlers are invoked in the order they were
+  returns <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><span class="type">FALSE</span></a>. Signal handlers are invoked in the order they were
   connected in.
 </div>
 <div class="refsect3">
-<a name="id-1.2.38.13.2.6"></a><h4>Parameters</h4>
+<a name="id-1.2.39.13.2.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -436,7 +436,7 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>caps</p></td>
-<td class="parameter_description"><p>The <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> found.</p></td>
+<td class="parameter_description"><p>The <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> found.</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
@@ -448,10 +448,10 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.38.13.2.7"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><span class="type">TRUE</span></a> if you wish uridecodebin to look for elements that can
+<a name="id-1.2.39.13.2.7"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><span class="type">TRUE</span></a> if you wish uridecodebin to look for elements that can
 handle the given <em class="parameter"><code>caps</code></em>
-. If <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><span class="type">FALSE</span></a>, those caps will be considered as
+. If <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><span class="type">FALSE</span></a>, those caps will be considered as
 final and the pad will be exposed as such (see 'pad-added' signal of
 <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a>).</p>
 <p></p>
@@ -461,11 +461,11 @@
 <hr>
 <div class="refsect2">
 <a name="GstURIDecodeBin-autoplug-factories"></a><h3>The <code class="literal">“autoplug-factories”</code> signal</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Value-arrays.html#GValueArray"><span class="returnvalue">GValueArray</span></a>*
+<pre class="programlisting"><a href="https://developer.gnome.org/gobject/unstable/gobject-Value-arrays.html#GValueArray"><span class="returnvalue">GValueArray</span></a>*
 user_function (<a class="link" href="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin"><span class="type">GstURIDecodeBin</span></a> *bin,
                <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a>          *pad,
-               <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/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)</pre>
+               <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a>         *caps,
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>         user_data)</pre>
 <p>This function is emitted when an array of possible factories for <em class="parameter"><code>caps</code></em>
  on
 <em class="parameter"><code>pad</code></em>
@@ -481,7 +481,7 @@
   signal, they will never be invoked!
 </div>
 <div class="refsect3">
-<a name="id-1.2.38.13.3.8"></a><h4>Parameters</h4>
+<a name="id-1.2.39.13.3.8"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -501,7 +501,7 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>caps</p></td>
-<td class="parameter_description"><p>The <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> found.</p></td>
+<td class="parameter_description"><p>The <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> found.</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
@@ -513,8 +513,8 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.38.13.3.9"></a><h4>Returns</h4>
-<p> a <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Value-arrays.html#GValueArray"><span class="type">GValueArray</span></a>* with a list of factories to try. The factories are
+<a name="id-1.2.39.13.3.9"></a><h4>Returns</h4>
+<p> a <a href="https://developer.gnome.org/gobject/unstable/gobject-Value-arrays.html#GValueArray"><span class="type">GValueArray</span></a>* with a list of factories to try. The factories are
 by default tried in the returned order or based on the index returned by
 "autoplug-select".</p>
 <p></p>
@@ -524,16 +524,16 @@
 <hr>
 <div class="refsect2">
 <a name="GstURIDecodeBin-autoplug-query"></a><h3>The <code class="literal">“autoplug-query”</code> signal</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 user_function (<a class="link" href="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin"><span class="type">GstURIDecodeBin</span></a> *gsturidecodebin,
                <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a>          *arg1,
                <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a>      *arg2,
-               <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstQuery.html#GstQuery"><span class="type">GstQuery</span></a>        *arg3,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>         user_data)</pre>
+               <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstQuery.html"><span class="type">GstQuery</span></a>        *arg3,
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>         user_data)</pre>
 <p>
 </p>
 <div class="refsect3">
-<a name="id-1.2.38.13.4.5"></a><h4>Parameters</h4>
+<a name="id-1.2.39.13.4.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -555,7 +555,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.38.13.4.6"></a><h4>Returns</h4>
+<a name="id-1.2.39.13.4.6"></a><h4>Returns</h4>
 <p></p>
 </div>
 <p>Flags: Run Last</p>
@@ -566,9 +566,9 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-plugins-uridecodebin.html#GstAutoplugSelectResult" title="enum GstAutoplugSelectResult"><span class="returnvalue">GstAutoplugSelectResult</span></a>
 user_function (<a class="link" href="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin"><span class="type">GstURIDecodeBin</span></a>   *bin,
                <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a>            *pad,
-               <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>           *caps,
+               <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a>           *caps,
                <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElementFactory.html"><span class="type">GstElementFactory</span></a> *factory,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>           user_data)</pre>
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>           user_data)</pre>
 <p>This signal is emitted once uridecodebin has found all the possible
 <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElementFactory.html"><span class="type">GstElementFactory</span></a> that can be used to handle the given <em class="parameter"><code>caps</code></em>
 . For each of
@@ -592,7 +592,7 @@
   registered next (again, if any) can override that decision.
 </div>
 <div class="refsect3">
-<a name="id-1.2.38.13.5.10"></a><h4>Parameters</h4>
+<a name="id-1.2.39.13.5.10"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -612,7 +612,7 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>caps</p></td>
-<td class="parameter_description"><p>The <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>.</p></td>
+<td class="parameter_description"><p>The <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a>.</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
@@ -629,7 +629,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.38.13.5.11"></a><h4>Returns</h4>
+<a name="id-1.2.39.13.5.11"></a><h4>Returns</h4>
 <p> a <span class="type">GST_TYPE_AUTOPLUG_SELECT_RESULT</span> that indicates the required
 operation. The default handler will always return
 <a class="link" href="gst-plugins-base-plugins-uridecodebin.html#GST-AUTOPLUG-SELECT-TRY:CAPS"><span class="type">GST_AUTOPLUG_SELECT_TRY</span></a>.</p>
@@ -640,12 +640,12 @@
 <hr>
 <div class="refsect2">
 <a name="GstURIDecodeBin-autoplug-sort"></a><h3>The <code class="literal">“autoplug-sort”</code> signal</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Value-arrays.html#GValueArray"><span class="returnvalue">GValueArray</span></a>*
+<pre class="programlisting"><a href="https://developer.gnome.org/gobject/unstable/gobject-Value-arrays.html#GValueArray"><span class="returnvalue">GValueArray</span></a>*
 user_function (<a class="link" href="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin"><span class="type">GstURIDecodeBin</span></a> *bin,
                <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a>          *pad,
-               <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>         *caps,
-               <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Value-arrays.html#GValueArray"><span class="type">GValueArray</span></a>     *factories,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>         user_data)</pre>
+               <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a>         *caps,
+               <a href="https://developer.gnome.org/gobject/unstable/gobject-Value-arrays.html#GValueArray"><span class="type">GValueArray</span></a>     *factories,
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>         user_data)</pre>
 <p>Once decodebin has found the possible <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElementFactory.html"><span class="type">GstElementFactory</span></a> objects to try
 for <em class="parameter"><code>caps</code></em>
  on <em class="parameter"><code>pad</code></em>
@@ -653,17 +653,17 @@
 the application to perform additional sorting or filtering on the element
 factory array.</p>
 <p>The callee should copy and modify <em class="parameter"><code>factories</code></em>
- or return <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> if the
+ or return <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> if the
 order should not change.</p>
 <div class="note">
   Invocation of signal handlers stops after one signal handler has
-  returned something else than <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a>. Signal handlers are invoked in
+  returned something else than <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a>. Signal handlers are invoked in
   the order they were connected in.
   Don't connect signal handlers with the <span class="type">G_CONNECT_AFTER</span> flag to this
   signal, they will never be invoked!
 </div>
 <div class="refsect3">
-<a name="id-1.2.38.13.6.7"></a><h4>Parameters</h4>
+<a name="id-1.2.39.13.6.7"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -683,12 +683,12 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>caps</p></td>
-<td class="parameter_description"><p>The <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>.</p></td>
+<td class="parameter_description"><p>The <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a>.</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
 <td class="parameter_name"><p>factories</p></td>
-<td class="parameter_description"><p>A <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Value-arrays.html#GValueArray"><span class="type">GValueArray</span></a> of possible <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElementFactory.html"><span class="type">GstElementFactory</span></a> to use.</p></td>
+<td class="parameter_description"><p>A <a href="https://developer.gnome.org/gobject/unstable/gobject-Value-arrays.html#GValueArray"><span class="type">GValueArray</span></a> of possible <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElementFactory.html"><span class="type">GstElementFactory</span></a> to use.</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
@@ -700,7 +700,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.38.13.6.8"></a><h4>Returns</h4>
+<a name="id-1.2.39.13.6.8"></a><h4>Returns</h4>
 <p> A new sorted array of <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElementFactory.html"><span class="type">GstElementFactory</span></a> objects.</p>
 <p></p>
 </div>
@@ -712,10 +712,10 @@
 <a name="GstURIDecodeBin-drained"></a><h3>The <code class="literal">“drained”</code> signal</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 user_function (<a class="link" href="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin"><span class="type">GstURIDecodeBin</span></a> *arg0,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>         user_data)</pre>
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>         user_data)</pre>
 <p>This signal is emitted when the data for the current uri is played.</p>
 <div class="refsect3">
-<a name="id-1.2.38.13.7.5"></a><h4>Parameters</h4>
+<a name="id-1.2.39.13.7.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -737,14 +737,14 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 user_function (<a class="link" href="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin"><span class="type">GstURIDecodeBin</span></a> *bin,
                <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a>      *source,
-               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>         user_data)</pre>
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>         user_data)</pre>
 <p>This signal is emitted after the source element has been created, so
 it can be configured by setting additional properties (e.g. set a
 proxy server for an http source, or set the device and read speed for
 an audio cd source). This is functionally equivalent to connecting to
 the notify::source signal, but more convenient.</p>
 <div class="refsect3">
-<a name="id-1.2.38.13.8.5"></a><h4>Parameters</h4>
+<a name="id-1.2.39.13.8.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -779,12 +779,12 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 user_function (<a class="link" href="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin"><span class="type">GstURIDecodeBin</span></a> *bin,
                <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a>          *pad,
-               <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/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)</pre>
+               <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a>         *caps,
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>         user_data)</pre>
 <p>This signal is emitted when a pad for which there is no further possible
 decoding is added to the uridecodebin.</p>
 <div class="refsect3">
-<a name="id-1.2.38.13.9.5"></a><h4>Parameters</h4>
+<a name="id-1.2.39.13.9.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -805,7 +805,7 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>caps</p></td>
-<td class="parameter_description"><p>the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> of the pad that cannot be resolved.</p></td>
+<td class="parameter_description"><p>the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> of the pad that cannot be resolved.</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
@@ -822,6 +822,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-videoconvert.html b/docs/plugins/html/gst-plugins-base-plugins-videoconvert.html
index 44904a7..24332bb 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-videoconvert.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-videoconvert.html
@@ -8,15 +8,15 @@
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-encodebin.html" title="encodebin">
 <link rel="next" href="gst-plugins-base-plugins-giosink.html" title="giosink">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-videoconvert.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-videoconvert.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> 
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-videoconvert.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-videoconvert.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
                   <a href="#gst-plugins-base-plugins-videoconvert.properties" class="shortcut">Properties</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
@@ -42,7 +42,7 @@
 <col width="200px" class="properties_flags">
 </colgroup>
 <tbody><tr>
-<td class="property_type"><span class="type">GstVideoConvertDitherMethod</span></td>
+<td class="property_type"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-GstVideoDither.html#GstVideoDitherMethod"><span class="type">GstVideoDitherMethod</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-videoconvert.html#GstVideoConvert--dither" title="The “dither” property">dither</a></td>
 <td class="property_flags">Read / Write</td>
 </tr></tbody>
@@ -63,8 +63,8 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-videoconvert.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-    <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+<pre class="screen">    <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
         <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
             <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
                 <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a>
@@ -195,15 +195,15 @@
 <a name="gst-plugins-base-plugins-videoconvert.property-details"></a><h2>Property Details</h2>
 <div class="refsect2">
 <a name="GstVideoConvert--dither"></a><h3>The <code class="literal">“dither”</code> property</h3>
-<pre class="programlisting">  “dither”                   <span class="type">GstVideoConvertDitherMethod</span></pre>
+<pre class="programlisting">  “dither”                   <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-GstVideoDither.html#GstVideoDitherMethod"><span class="type">GstVideoDitherMethod</span></a></pre>
 <p>Apply dithering while converting.</p>
 <p>Flags: Read / Write</p>
-<p>Default value: No dithering (default)</p>
+<p>Default value: GST_VIDEO_DITHER_NONE</p>
 </div>
 </div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-videorate.html b/docs/plugins/html/gst-plugins-base-plugins-videorate.html
index 2a927ee..80c4c56 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-videorate.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-videorate.html
@@ -8,15 +8,15 @@
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-uridecodebin.html" title="uridecodebin">
 <link rel="next" href="gst-plugins-base-plugins-videoscale.html" title="videoscale">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-videorate.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-videorate.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> 
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-videorate.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-videorate.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
                   <a href="#gst-plugins-base-plugins-videorate.properties" class="shortcut">Properties</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
@@ -53,7 +53,7 @@
 <td class="property_flags">Read</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-videorate.html#GstVideoRate--drop-only" title="The “drop-only” property">drop-only</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
@@ -68,12 +68,12 @@
 <td class="property_flags">Read</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-videorate.html#GstVideoRate--max-rate" title="The “max-rate” property">max-rate</a></td>
 <td class="property_flags">Read / Write / Construct</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-videorate.html#GstVideoRate--new-pref" title="The “new-pref” property">new-pref</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
@@ -83,12 +83,12 @@
 <td class="property_flags">Read</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-videorate.html#GstVideoRate--silent" title="The “silent” property">silent</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-videorate.html#GstVideoRate--skip-to-first" title="The “skip-to-first” property">skip-to-first</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
@@ -110,8 +110,8 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-videorate.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-    <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+<pre class="screen">    <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
         <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
             <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
                 <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a>
@@ -145,7 +145,7 @@
 Note that property notification will happen from the streaming thread, so
 applications should be prepared for this.</p>
 <div class="refsect2">
-<a name="id-1.2.39.7.10"></a><h3>Example pipelines</h3>
+<a name="id-1.2.40.7.10"></a><h3>Example pipelines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -174,7 +174,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.39.7.11.1"></a><h3>Element Information</h3>
+<a name="id-1.2.40.7.11.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -200,7 +200,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.39.7.11.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.40.7.11.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -304,7 +304,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstVideoRate--drop-only"></a><h3>The <code class="literal">“drop-only”</code> property</h3>
-<pre class="programlisting">  “drop-only”                <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<pre class="programlisting">  “drop-only”                <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
 <p>Only drop frames, no duplicates are produced.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: FALSE</p>
@@ -328,7 +328,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstVideoRate--max-rate"></a><h3>The <code class="literal">“max-rate”</code> property</h3>
-<pre class="programlisting">  “max-rate”                 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<pre class="programlisting">  “max-rate”                 <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
 <p>maximum framerate to pass through</p>
 <p>Flags: Read / Write / Construct</p>
 <p>Allowed values: &gt;= 1</p>
@@ -337,7 +337,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstVideoRate--new-pref"></a><h3>The <code class="literal">“new-pref”</code> property</h3>
-<pre class="programlisting">  “new-pref”                 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></pre>
+<pre class="programlisting">  “new-pref”                 <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></pre>
 <p>Value indicating how much to prefer new frames (unused).</p>
 <p>Flags: Read / Write</p>
 <p>Allowed values: [0,1]</p>
@@ -354,7 +354,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstVideoRate--silent"></a><h3>The <code class="literal">“silent”</code> property</h3>
-<pre class="programlisting">  “silent”                   <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<pre class="programlisting">  “silent”                   <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
 <p>Don't emit notify for dropped and duplicated frames.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: TRUE</p>
@@ -362,7 +362,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstVideoRate--skip-to-first"></a><h3>The <code class="literal">“skip-to-first”</code> property</h3>
-<pre class="programlisting">  “skip-to-first”            <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<pre class="programlisting">  “skip-to-first”            <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
 <p>Don't produce buffers before the first one we receive.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: FALSE</p>
@@ -371,6 +371,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-videoscale.html b/docs/plugins/html/gst-plugins-base-plugins-videoscale.html
index 476a587..12e7192 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-videoscale.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-videoscale.html
@@ -8,15 +8,15 @@
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-videorate.html" title="videorate">
 <link rel="next" href="gst-plugins-base-plugins-videotestsrc.html" title="videotestsrc">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-videoscale.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-videoscale.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> 
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-videoscale.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-videoscale.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
                   <a href="#gst-plugins-base-plugins-videoscale.properties" class="shortcut">Properties</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
@@ -43,17 +43,17 @@
 </colgroup>
 <tbody>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-videoscale.html#GstVideoScale--add-borders" title="The “add-borders” property">add-borders</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-videoscale.html#GstVideoScale--dither" title="The “dither” property">dither</a></td>
 <td class="property_flags">Read / Write / Construct</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-videoscale.html#GstVideoScale--envelope" title="The “envelope” property">envelope</a></td>
 <td class="property_flags">Read / Write / Construct</td>
 </tr>
@@ -63,12 +63,12 @@
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-videoscale.html#GstVideoScale--sharpen" title="The “sharpen” property">sharpen</a></td>
 <td class="property_flags">Read / Write / Construct</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-videoscale.html#GstVideoScale--sharpness" title="The “sharpness” property">sharpness</a></td>
 <td class="property_flags">Read / Write / Construct</td>
 </tr>
@@ -96,8 +96,8 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-videoscale.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-    <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+<pre class="screen">    <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
         <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
             <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
                 <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a>
@@ -115,7 +115,7 @@
 RGB formats and is therefore generally able to operate anywhere in a
 pipeline.</p>
 <div class="refsect2">
-<a name="id-1.2.40.7.4"></a><h3>Example pipelines</h3>
+<a name="id-1.2.41.7.4"></a><h3>Example pipelines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -146,7 +146,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.40.7.5.1"></a><h3>Element Information</h3>
+<a name="id-1.2.41.7.5.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -172,7 +172,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.40.7.5.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.41.7.5.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -193,11 +193,11 @@
 </tr>
 <tr>
 <td><p><span class="term">details</span></p></td>
-<td>video/x-raw, format=(string){ I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, RGB15, ARGB64, AYUV64, NV12 }, width=(int)[ 1, 32767 ], height=(int)[ 1, 32767 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+<td>video/x-raw, format=(string){ I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, v210, v216, NV12, NV21, NV16, NV24, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, BGR16, RGB15, BGR15, UYVP, A420, RGB8P, YUV9, YVU9, IYU1, ARGB64, AYUV64, r210, I420_10LE, I420_10BE, I422_10LE, I422_10BE, Y444_10LE, Y444_10BE, GBR, GBR_10LE, GBR_10BE, NV12_64Z32 }, width=(int)[ 1, 32767 ], height=(int)[ 1, 32767 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> video/x-raw(ANY), format=(string){ I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, RGB15, ARGB64, AYUV64, NV12 }, width=(int)[ 1, 32767 ], height=(int)[ 1, 32767 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+<td> video/x-raw(ANY), format=(string){ I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, v210, v216, NV12, NV21, NV16, NV24, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, BGR16, RGB15, BGR15, UYVP, A420, RGB8P, YUV9, YVU9, IYU1, ARGB64, AYUV64, r210, I420_10LE, I420_10BE, I422_10LE, I422_10BE, Y444_10LE, Y444_10BE, GBR, GBR_10LE, GBR_10BE, NV12_64Z32 }, width=(int)[ 1, 32767 ], height=(int)[ 1, 32767 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
 </tr>
 </tbody>
 </table></div>
@@ -221,11 +221,11 @@
 </tr>
 <tr>
 <td><p><span class="term">details</span></p></td>
-<td>video/x-raw, format=(string){ I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, RGB15, ARGB64, AYUV64, NV12 }, width=(int)[ 1, 32767 ], height=(int)[ 1, 32767 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+<td>video/x-raw, format=(string){ I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, v210, v216, NV12, NV21, NV16, NV24, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, BGR16, RGB15, BGR15, UYVP, A420, RGB8P, YUV9, YVU9, IYU1, ARGB64, AYUV64, r210, I420_10LE, I420_10BE, I422_10LE, I422_10BE, Y444_10LE, Y444_10BE, GBR, GBR_10LE, GBR_10BE, NV12_64Z32 }, width=(int)[ 1, 32767 ], height=(int)[ 1, 32767 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> video/x-raw(ANY), format=(string){ I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, RGB15, ARGB64, AYUV64, NV12 }, width=(int)[ 1, 32767 ], height=(int)[ 1, 32767 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+<td> video/x-raw(ANY), format=(string){ I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, v210, v216, NV12, NV21, NV16, NV24, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, BGR16, RGB15, BGR15, UYVP, A420, RGB8P, YUV9, YVU9, IYU1, ARGB64, AYUV64, r210, I420_10LE, I420_10BE, I422_10LE, I422_10BE, Y444_10LE, Y444_10BE, GBR, GBR_10LE, GBR_10BE, NV12_64Z32 }, width=(int)[ 1, 32767 ], height=(int)[ 1, 32767 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
 </tr>
 </tbody>
 </table></div>
@@ -249,7 +249,7 @@
 <a name="GstVideoScaleMethod"></a><h3>enum GstVideoScaleMethod</h3>
 <p>The videoscale method to use.</p>
 <div class="refsect3">
-<a name="id-1.2.40.9.3.4"></a><h4>Members</h4>
+<a name="id-1.2.41.9.3.4"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -267,14 +267,14 @@
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-SCALE-BILINEAR:CAPS"></a>GST_VIDEO_SCALE_BILINEAR</p></td>
 <td class="enum_member_description">
-<p>use bilinear scaling (slower but prettier).</p>
+<p>use 2-tap bilinear scaling (slower but prettier).</p>
 </td>
 <td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-SCALE-4TAP:CAPS"></a>GST_VIDEO_SCALE_4TAP</p></td>
 <td class="enum_member_description">
-<p>use a 4-tap filter for scaling (slow).</p>
+<p>use a 4-tap sinc filter for scaling (slow).</p>
 </td>
 <td class="enum_member_annotations"> </td>
 </tr>
@@ -285,6 +285,48 @@
 </td>
 <td class="enum_member_annotations"> </td>
 </tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-VIDEO-SCALE-BILINEAR2:CAPS"></a>GST_VIDEO_SCALE_BILINEAR2</p></td>
+<td class="enum_member_description">
+<p>use a multitap bilinear filter</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-VIDEO-SCALE-SINC:CAPS"></a>GST_VIDEO_SCALE_SINC</p></td>
+<td class="enum_member_description">
+<p>use a multitap sinc filter</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-VIDEO-SCALE-HERMITE:CAPS"></a>GST_VIDEO_SCALE_HERMITE</p></td>
+<td class="enum_member_description">
+<p>use a multitap bicubic Hermite filter</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-VIDEO-SCALE-SPLINE:CAPS"></a>GST_VIDEO_SCALE_SPLINE</p></td>
+<td class="enum_member_description">
+<p>use a multitap bicubic spline filter</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-VIDEO-SCALE-CATROM:CAPS"></a>GST_VIDEO_SCALE_CATROM</p></td>
+<td class="enum_member_description">
+<p>use a multitap bicubic Catmull-Rom filter</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-VIDEO-SCALE-MITCHELL:CAPS"></a>GST_VIDEO_SCALE_MITCHELL</p></td>
+<td class="enum_member_description">
+<p>use a multitap bicubic Mitchell filter</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
 </tbody>
 </table></div>
 </div>
@@ -294,7 +336,7 @@
 <a name="gst-plugins-base-plugins-videoscale.property-details"></a><h2>Property Details</h2>
 <div class="refsect2">
 <a name="GstVideoScale--add-borders"></a><h3>The <code class="literal">“add-borders”</code> property</h3>
-<pre class="programlisting">  “add-borders”              <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<pre class="programlisting">  “add-borders”              <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
 <p>Add black borders if necessary to keep the display aspect ratio.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: TRUE</p>
@@ -302,7 +344,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstVideoScale--dither"></a><h3>The <code class="literal">“dither”</code> property</h3>
-<pre class="programlisting">  “dither”                   <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<pre class="programlisting">  “dither”                   <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
 <p>Add dither (only used for Lanczos method).</p>
 <p>Flags: Read / Write / Construct</p>
 <p>Default value: FALSE</p>
@@ -310,7 +352,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstVideoScale--envelope"></a><h3>The <code class="literal">“envelope”</code> property</h3>
-<pre class="programlisting">  “envelope”                 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></pre>
+<pre class="programlisting">  “envelope”                 <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></pre>
 <p>Size of filter envelope.</p>
 <p>Flags: Read / Write / Construct</p>
 <p>Allowed values: [1,5]</p>
@@ -327,7 +369,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstVideoScale--sharpen"></a><h3>The <code class="literal">“sharpen”</code> property</h3>
-<pre class="programlisting">  “sharpen”                  <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></pre>
+<pre class="programlisting">  “sharpen”                  <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></pre>
 <p>Sharpening.</p>
 <p>Flags: Read / Write / Construct</p>
 <p>Allowed values: [0,1]</p>
@@ -336,7 +378,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstVideoScale--sharpness"></a><h3>The <code class="literal">“sharpness”</code> property</h3>
-<pre class="programlisting">  “sharpness”                <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></pre>
+<pre class="programlisting">  “sharpness”                <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></pre>
 <p>Sharpness of filter.</p>
 <p>Flags: Read / Write / Construct</p>
 <p>Allowed values: [0.5,1.5]</p>
@@ -350,6 +392,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-videotestsrc.html b/docs/plugins/html/gst-plugins-base-plugins-videotestsrc.html
index 9992e1b..e8b216a 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-videotestsrc.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-videotestsrc.html
@@ -8,15 +8,15 @@
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-videoscale.html" title="videoscale">
 <link rel="next" href="gst-plugins-base-plugins-volume.html" title="volume">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-videotestsrc.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-videotestsrc.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> 
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-videotestsrc.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-videotestsrc.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
                   <a href="#gst-plugins-base-plugins-videotestsrc.properties" class="shortcut">Properties</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
@@ -43,72 +43,72 @@
 </colgroup>
 <tbody>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--background-color" title="The “background-color” property">background-color</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--foreground-color" title="The “foreground-color” property">foreground-color</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--horizontal-speed" title="The “horizontal-speed” property">horizontal-speed</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--is-live" title="The “is-live” property">is-live</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--k0" title="The “k0” property">k0</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--kt" title="The “kt” property">kt</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--kt2" title="The “kt2” property">kt2</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--kx" title="The “kx” property">kx</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--kx2" title="The “kx2” property">kx2</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--kxt" title="The “kxt” property">kxt</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--kxy" title="The “kxy” property">kxy</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--ky" title="The “ky” property">ky</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--ky2" title="The “ky2” property">ky2</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--kyt" title="The “kyt” property">kyt</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
@@ -123,12 +123,12 @@
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--xoffset" title="The “xoffset” property">xoffset</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--yoffset" title="The “yoffset” property">yoffset</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
@@ -156,8 +156,8 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-videotestsrc.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-    <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+<pre class="screen">    <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
         <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
             <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
                 <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSrc.html">GstBaseSrc</a>
@@ -171,7 +171,7 @@
 of formats. The video test data produced can be controlled with the "pattern"
 property.</p>
 <div class="refsect2">
-<a name="id-1.2.41.7.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.42.7.3"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -187,7 +187,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.41.7.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.42.7.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -213,7 +213,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.41.7.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.42.7.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -277,7 +277,7 @@
 pattern=zone-plate kx2=20 ky2=20 kt=1' to produce something
 interesting.</p>
 <div class="refsect3">
-<a name="id-1.2.41.9.3.6"></a><h4>Members</h4>
+<a name="id-1.2.42.9.3.6"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -444,6 +444,20 @@
 </td>
 <td class="enum_member_annotations"> </td>
 </tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-VIDEO-TEST-SRC-GRADIENT:CAPS"></a>GST_VIDEO_TEST_SRC_GRADIENT</p></td>
+<td class="enum_member_description">
+<p>Gradient</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-VIDEO-TEST-SRC-COLORS:CAPS"></a>GST_VIDEO_TEST_SRC_COLORS</p></td>
+<td class="enum_member_description">
+<p>All colors</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
 </tbody>
 </table></div>
 </div>
@@ -453,7 +467,7 @@
 <a name="gst-plugins-base-plugins-videotestsrc.property-details"></a><h2>Property Details</h2>
 <div class="refsect2">
 <a name="GstVideoTestSrc--background-color"></a><h3>The <code class="literal">“background-color”</code> property</h3>
-<pre class="programlisting">  “background-color”         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre>
+<pre class="programlisting">  “background-color”         <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre>
 <p>Color to use for background color of some patterns.  Default is
 black (0xff000000).</p>
 <p>Flags: Read / Write</p>
@@ -462,7 +476,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstVideoTestSrc--foreground-color"></a><h3>The <code class="literal">“foreground-color”</code> property</h3>
-<pre class="programlisting">  “foreground-color”         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre>
+<pre class="programlisting">  “foreground-color”         <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre>
 <p>Color to use for solid-color pattern and foreground color of other
 patterns.  Default is white (0xffffffff).</p>
 <p>Flags: Read / Write</p>
@@ -471,7 +485,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstVideoTestSrc--horizontal-speed"></a><h3>The <code class="literal">“horizontal-speed”</code> property</h3>
-<pre class="programlisting">  “horizontal-speed”         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<pre class="programlisting">  “horizontal-speed”         <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
 <p>Scroll image number of pixels per frame (positive is scroll to the left).</p>
 <p>Flags: Read / Write</p>
 <p>Default value: 0</p>
@@ -479,7 +493,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstVideoTestSrc--is-live"></a><h3>The <code class="literal">“is-live”</code> property</h3>
-<pre class="programlisting">  “is-live”                  <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<pre class="programlisting">  “is-live”                  <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
 <p>Whether to act as a live source.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: FALSE</p>
@@ -487,7 +501,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstVideoTestSrc--k0"></a><h3>The <code class="literal">“k0”</code> property</h3>
-<pre class="programlisting">  “k0”                       <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<pre class="programlisting">  “k0”                       <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
 <p>Zoneplate zero order phase, for generating plain fields or phase offsets.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: 0</p>
@@ -495,7 +509,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstVideoTestSrc--kt"></a><h3>The <code class="literal">“kt”</code> property</h3>
-<pre class="programlisting">  “kt”                       <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<pre class="programlisting">  “kt”                       <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
 <p>Zoneplate 1st order t phase, for generating phase rotation as a function of time.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: 0</p>
@@ -503,7 +517,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstVideoTestSrc--kt2"></a><h3>The <code class="literal">“kt2”</code> property</h3>
-<pre class="programlisting">  “kt2”                      <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<pre class="programlisting">  “kt2”                      <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
 <p>Zoneplate 2nd order t phase, t*t/256 cycles per picture.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: 0</p>
@@ -511,7 +525,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstVideoTestSrc--kx"></a><h3>The <code class="literal">“kx”</code> property</h3>
-<pre class="programlisting">  “kx”                       <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<pre class="programlisting">  “kx”                       <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
 <p>Zoneplate 1st order x phase, for generating constant horizontal frequencies.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: 0</p>
@@ -519,7 +533,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstVideoTestSrc--kx2"></a><h3>The <code class="literal">“kx2”</code> property</h3>
-<pre class="programlisting">  “kx2”                      <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<pre class="programlisting">  “kx2”                      <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
 <p>Zoneplate 2nd order x phase, normalised to kx2/256 cycles per horizontal pixel at width/2 from origin.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: 0</p>
@@ -527,7 +541,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstVideoTestSrc--kxt"></a><h3>The <code class="literal">“kxt”</code> property</h3>
-<pre class="programlisting">  “kxt”                      <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<pre class="programlisting">  “kxt”                      <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
 <p>Zoneplate x*t product phase, normalised to kxy/256 cycles per vertical pixel at width/2 from origin.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: 0</p>
@@ -535,7 +549,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstVideoTestSrc--kxy"></a><h3>The <code class="literal">“kxy”</code> property</h3>
-<pre class="programlisting">  “kxy”                      <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<pre class="programlisting">  “kxy”                      <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
 <p>Zoneplate x*y product phase.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: 0</p>
@@ -543,7 +557,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstVideoTestSrc--ky"></a><h3>The <code class="literal">“ky”</code> property</h3>
-<pre class="programlisting">  “ky”                       <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<pre class="programlisting">  “ky”                       <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
 <p>Zoneplate 1st order y phase, for generating contant vertical frequencies.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: 0</p>
@@ -551,7 +565,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstVideoTestSrc--ky2"></a><h3>The <code class="literal">“ky2”</code> property</h3>
-<pre class="programlisting">  “ky2”                      <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<pre class="programlisting">  “ky2”                      <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
 <p>Zoneplate 2nd order y phase, normailsed to ky2/256 cycles per vertical pixel at height/2 from origin.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: 0</p>
@@ -559,7 +573,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstVideoTestSrc--kyt"></a><h3>The <code class="literal">“kyt”</code> property</h3>
-<pre class="programlisting">  “kyt”                      <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<pre class="programlisting">  “kyt”                      <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
 <p>Zoneplate y*t product phase.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: 0</p>
@@ -578,12 +592,13 @@
 <pre class="programlisting">  “timestamp-offset”         <span class="type">gint64</span></pre>
 <p>An offset added to timestamps set on buffers (in ns).</p>
 <p>Flags: Read / Write</p>
+<p>Allowed values: &gt;= 0</p>
 <p>Default value: 0</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstVideoTestSrc--xoffset"></a><h3>The <code class="literal">“xoffset”</code> property</h3>
-<pre class="programlisting">  “xoffset”                  <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<pre class="programlisting">  “xoffset”                  <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
 <p>Zoneplate 2nd order products x offset.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: 0</p>
@@ -591,7 +606,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstVideoTestSrc--yoffset"></a><h3>The <code class="literal">“yoffset”</code> property</h3>
-<pre class="programlisting">  “yoffset”                  <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<pre class="programlisting">  “yoffset”                  <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
 <p>Zoneplate 2nd order products y offset.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: 0</p>
@@ -600,6 +615,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-volume.html b/docs/plugins/html/gst-plugins-base-plugins-volume.html
index 3d51b99..d3a54e2 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-volume.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-volume.html
@@ -8,16 +8,16 @@
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-videotestsrc.html" title="videotestsrc">
 <link rel="next" href="gst-plugins-base-plugins-vorbisdec.html" title="vorbisdec">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-volume.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-volume.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-volume.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties"> <span class="dim">|</span> 
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-volume.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-volume.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-volume.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties">  <span class="dim">|</span> 
                   <a href="#gst-plugins-base-plugins-volume.properties" class="shortcut">Properties</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
@@ -44,12 +44,12 @@
 </colgroup>
 <tbody>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-volume.html#GstVolume--mute" title="The “mute” property">mute</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-volume.html#GstVolume--volume" title="The “volume” property">volume</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
@@ -71,8 +71,8 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-volume.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-    <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+<pre class="screen">    <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
         <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
             <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
                 <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a>
@@ -90,7 +90,7 @@
 <a name="gst-plugins-base-plugins-volume.description"></a><h2>Description</h2>
 <p>The volume element changes the volume of the audio data.</p>
 <div class="refsect2">
-<a name="id-1.2.42.8.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.43.8.3"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -108,7 +108,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.42.8.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.43.8.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -134,7 +134,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.42.8.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.43.8.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -203,7 +203,7 @@
 <a name="gst-plugins-base-plugins-volume.property-details"></a><h2>Property Details</h2>
 <div class="refsect2">
 <a name="GstVolume--mute"></a><h3>The <code class="literal">“mute”</code> property</h3>
-<pre class="programlisting">  “mute”                     <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<pre class="programlisting">  “mute”                     <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
 <p>mute channel.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: FALSE</p>
@@ -211,7 +211,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstVolume--volume"></a><h3>The <code class="literal">“volume”</code> property</h3>
-<pre class="programlisting">  “volume”                   <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></pre>
+<pre class="programlisting">  “volume”                   <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></pre>
 <p>volume factor, 1.0=100%.</p>
 <p>Flags: Read / Write</p>
 <p>Allowed values: [0,10]</p>
@@ -221,6 +221,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-vorbisdec.html b/docs/plugins/html/gst-plugins-base-plugins-vorbisdec.html
index a489e54..3556d30 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-vorbisdec.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-vorbisdec.html
@@ -8,14 +8,14 @@
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-volume.html" title="volume">
 <link rel="next" href="gst-plugins-base-plugins-vorbisenc.html" title="vorbisenc">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-vorbisdec.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-vorbisdec.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
                   <a href="#gst-plugins-base-plugins-vorbisdec.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
@@ -47,8 +47,8 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-vorbisdec.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-    <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+<pre class="screen">    <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
         <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
             <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
                 <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder">GstAudioDecoder</a>
@@ -60,7 +60,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.43.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.44.6.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -86,7 +86,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.43.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.44.6.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -155,6 +155,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-vorbisenc.html b/docs/plugins/html/gst-plugins-base-plugins-vorbisenc.html
index fe8e8ec..e3ef982 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-vorbisenc.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-vorbisenc.html
@@ -8,16 +8,16 @@
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-vorbisdec.html" title="vorbisdec">
 <link rel="next" href="gst-plugins-base-plugins-vorbisparse.html" title="vorbisparse">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-vorbisenc.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-vorbisenc.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-vorbisenc.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties"> <span class="dim">|</span> 
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-vorbisenc.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-vorbisenc.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-vorbisenc.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties">  <span class="dim">|</span> 
                   <a href="#gst-plugins-base-plugins-vorbisenc.properties" class="shortcut">Properties</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
@@ -44,33 +44,33 @@
 </colgroup>
 <tbody>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-vorbisenc.html#GstVorbisEnc--bitrate" title="The “bitrate” property">bitrate</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
 <td class="property_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-vorbisenc.html#GstVorbisEnc--last-message" title="The “last-message” property">last-message</a></td>
 <td class="property_flags">Read</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-vorbisenc.html#GstVorbisEnc--managed" title="The “managed” property">managed</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-vorbisenc.html#GstVorbisEnc--max-bitrate" title="The “max-bitrate” property">max-bitrate</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-vorbisenc.html#GstVorbisEnc--min-bitrate" title="The “min-bitrate” property">min-bitrate</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-vorbisenc.html#GstVorbisEnc--quality" title="The “quality” property">quality</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
@@ -92,8 +92,8 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-vorbisenc.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-    <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+<pre class="screen">    <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
         <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
             <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
                 <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder">GstAudioEncoder</a>
@@ -111,7 +111,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.44.8.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.45.8.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -137,7 +137,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.44.8.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.45.8.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -207,7 +207,7 @@
 <a name="gst-plugins-base-plugins-vorbisenc.property-details"></a><h2>Property Details</h2>
 <div class="refsect2">
 <a name="GstVorbisEnc--bitrate"></a><h3>The <code class="literal">“bitrate”</code> property</h3>
-<pre class="programlisting">  “bitrate”                  <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<pre class="programlisting">  “bitrate”                  <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
 <p>Attempt to encode at a bitrate averaging this (in bps). This uses the bitrate management engine, and is not recommended for most users. Quality is a better alternative. (-1 == disabled).</p>
 <p>Flags: Read / Write</p>
 <p>Allowed values: [G_MAXULONG,250001]</p>
@@ -216,7 +216,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstVorbisEnc--last-message"></a><h3>The <code class="literal">“last-message”</code> property</h3>
-<pre class="programlisting">  “last-message”             <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
+<pre class="programlisting">  “last-message”             <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
 <p>The last status message.</p>
 <p>Flags: Read</p>
 <p>Default value: NULL</p>
@@ -224,7 +224,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstVorbisEnc--managed"></a><h3>The <code class="literal">“managed”</code> property</h3>
-<pre class="programlisting">  “managed”                  <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<pre class="programlisting">  “managed”                  <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
 <p>Enable bitrate management engine.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: FALSE</p>
@@ -232,7 +232,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstVorbisEnc--max-bitrate"></a><h3>The <code class="literal">“max-bitrate”</code> property</h3>
-<pre class="programlisting">  “max-bitrate”              <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<pre class="programlisting">  “max-bitrate”              <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
 <p>Specify a maximum bitrate (in bps). Useful for streaming applications. (-1 == disabled).</p>
 <p>Flags: Read / Write</p>
 <p>Allowed values: [G_MAXULONG,250001]</p>
@@ -241,7 +241,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstVorbisEnc--min-bitrate"></a><h3>The <code class="literal">“min-bitrate”</code> property</h3>
-<pre class="programlisting">  “min-bitrate”              <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<pre class="programlisting">  “min-bitrate”              <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
 <p>Specify a minimum bitrate (in bps). Useful for encoding for a fixed-size channel. (-1 == disabled).</p>
 <p>Flags: Read / Write</p>
 <p>Allowed values: [G_MAXULONG,250001]</p>
@@ -250,7 +250,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstVorbisEnc--quality"></a><h3>The <code class="literal">“quality”</code> property</h3>
-<pre class="programlisting">  “quality”                  <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a></pre>
+<pre class="programlisting">  “quality”                  <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a></pre>
 <p>Specify quality instead of specifying a particular bitrate.</p>
 <p>Flags: Read / Write</p>
 <p>Allowed values: [-0.1,1]</p>
@@ -260,6 +260,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-vorbisparse.html b/docs/plugins/html/gst-plugins-base-plugins-vorbisparse.html
index dc009da..d78c046 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-vorbisparse.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-vorbisparse.html
@@ -8,14 +8,14 @@
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-vorbisenc.html" title="vorbisenc">
 <link rel="next" href="gst-plugins-base-plugins-vorbistag.html" title="vorbistag">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-vorbisparse.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-vorbisparse.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
                   <a href="#gst-plugins-base-plugins-vorbisparse.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
@@ -47,8 +47,8 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-vorbisparse.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-    <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+<pre class="screen">    <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
         <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
             <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
                 <span class="lineart">╰──</span> GstVorbisParse
@@ -60,7 +60,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.45.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.46.6.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -86,7 +86,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.45.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.46.6.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -155,6 +155,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-vorbistag.html b/docs/plugins/html/gst-plugins-base-plugins-vorbistag.html
index 5cee899..67c0bc2 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-vorbistag.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-vorbistag.html
@@ -8,15 +8,15 @@
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-vorbisparse.html" title="vorbisparse">
 <link rel="next" href="gst-plugins-base-plugins-ximagesink.html" title="ximagesink">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-vorbistag.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-vorbistag.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces"> <span class="dim">|</span> 
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-vorbistag.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-vorbistag.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces">  <span class="dim">|</span> 
                   <a href="#gst-plugins-base-plugins-vorbistag.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
@@ -48,8 +48,8 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-vorbistag.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-    <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+<pre class="screen">    <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
         <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
             <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
                 <span class="lineart">╰──</span> <a class="link" href="gst-plugins-base-plugins-vorbisparse.html#GstVorbisParse">GstVorbisParse</a>
@@ -67,7 +67,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.46.7.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.47.7.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -93,7 +93,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.46.7.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.47.7.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -162,6 +162,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-ximagesink.html b/docs/plugins/html/gst-plugins-base-plugins-ximagesink.html
index 1e2d14d..04634cf 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-ximagesink.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-ximagesink.html
@@ -8,16 +8,16 @@
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-vorbistag.html" title="vorbistag">
 <link rel="next" href="gst-plugins-base-plugins-xvimagesink.html" title="xvimagesink">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-ximagesink.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-ximagesink.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-ximagesink.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties"> <span class="dim">|</span> 
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-ximagesink.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-ximagesink.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-ximagesink.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties">  <span class="dim">|</span> 
                   <a href="#gst-plugins-base-plugins-ximagesink.properties" class="shortcut">Properties</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
@@ -45,33 +45,33 @@
 <tbody>
 <tr>
 <td class="property_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-ximagesink.html#GstXImageSink--display" title="The “display” property">display</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-ximagesink.html#GstXImageSink--force-aspect-ratio" title="The “force-aspect-ratio” property">force-aspect-ratio</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-ximagesink.html#GstXImageSink--handle-events" title="The “handle-events” property">handle-events</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-ximagesink.html#GstXImageSink--handle-expose" title="The “handle-expose” property">handle-expose</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
 <td class="property_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-ximagesink.html#GstXImageSink--pixel-aspect-ratio" title="The “pixel-aspect-ratio” property">pixel-aspect-ratio</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-ximagesink.html#GstXImageSink--synchronous" title="The “synchronous” property">synchronous</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
@@ -103,8 +103,8 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-ximagesink.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-    <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+<pre class="screen">    <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
         <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
             <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
                 <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSink.html">GstBaseSink</a>
@@ -123,7 +123,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.47.8.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.48.8.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -149,7 +149,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.47.8.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.48.8.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -195,7 +195,7 @@
 <a name="gst-plugins-base-plugins-ximagesink.property-details"></a><h2>Property Details</h2>
 <div class="refsect2">
 <a name="GstXImageSink--display"></a><h3>The <code class="literal">“display”</code> property</h3>
-<pre class="programlisting">  “display”                  <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
+<pre class="programlisting">  “display”                  <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
 <p>X Display name.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: NULL</p>
@@ -203,7 +203,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstXImageSink--force-aspect-ratio"></a><h3>The <code class="literal">“force-aspect-ratio”</code> property</h3>
-<pre class="programlisting">  “force-aspect-ratio”       <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<pre class="programlisting">  “force-aspect-ratio”       <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
 <p>When enabled, reverse caps negotiation (scaling) will respect original aspect ratio.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: TRUE</p>
@@ -211,7 +211,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstXImageSink--handle-events"></a><h3>The <code class="literal">“handle-events”</code> property</h3>
-<pre class="programlisting">  “handle-events”            <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<pre class="programlisting">  “handle-events”            <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
 <p>When enabled, XEvents will be selected and handled.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: TRUE</p>
@@ -219,7 +219,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstXImageSink--handle-expose"></a><h3>The <code class="literal">“handle-expose”</code> property</h3>
-<pre class="programlisting">  “handle-expose”            <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<pre class="programlisting">  “handle-expose”            <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
 <p>When enabled, the current frame will always be drawn in response to X Expose events.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: TRUE</p>
@@ -227,7 +227,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstXImageSink--pixel-aspect-ratio"></a><h3>The <code class="literal">“pixel-aspect-ratio”</code> property</h3>
-<pre class="programlisting">  “pixel-aspect-ratio”       <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
+<pre class="programlisting">  “pixel-aspect-ratio”       <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
 <p>The pixel aspect ratio of the device.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: "1/1"</p>
@@ -235,7 +235,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstXImageSink--synchronous"></a><h3>The <code class="literal">“synchronous”</code> property</h3>
-<pre class="programlisting">  “synchronous”              <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<pre class="programlisting">  “synchronous”              <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
 <p>When enabled, runs the X display in synchronous mode. (unrelated to A/V sync, used only for debugging).</p>
 <p>Flags: Read / Write</p>
 <p>Default value: FALSE</p>
@@ -260,6 +260,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-base-plugins-xvimagesink.html b/docs/plugins/html/gst-plugins-base-plugins-xvimagesink.html
index 1213abe..af7b3b5 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-xvimagesink.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-xvimagesink.html
@@ -8,16 +8,16 @@
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-ximagesink.html" title="ximagesink">
 <link rel="next" href="ch02.html" title="gst-plugins-base Plugins">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-xvimagesink.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-xvimagesink.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces"> <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-xvimagesink.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties"> <span class="dim">|</span> 
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-xvimagesink.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-xvimagesink.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-xvimagesink.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties">  <span class="dim">|</span> 
                   <a href="#gst-plugins-base-plugins-xvimagesink.properties" class="shortcut">Properties</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
@@ -44,86 +44,86 @@
 </colgroup>
 <tbody>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--autopaint-colorkey" title="The “autopaint-colorkey” property">autopaint-colorkey</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--brightness" title="The “brightness” property">brightness</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--colorkey" title="The “colorkey” property">colorkey</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--contrast" title="The “contrast” property">contrast</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
 <td class="property_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--device" title="The “device” property">device</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
 <td class="property_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--device-name" title="The “device-name” property">device-name</a></td>
 <td class="property_flags">Read</td>
 </tr>
 <tr>
 <td class="property_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--display" title="The “display” property">display</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--double-buffer" title="The “double-buffer” property">double-buffer</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--draw-borders" title="The “draw-borders” property">draw-borders</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--force-aspect-ratio" title="The “force-aspect-ratio” property">force-aspect-ratio</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--handle-events" title="The “handle-events” property">handle-events</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--handle-expose" title="The “handle-expose” property">handle-expose</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--hue" title="The “hue” property">hue</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
 <td class="property_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--pixel-aspect-ratio" title="The “pixel-aspect-ratio” property">pixel-aspect-ratio</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--saturation" title="The “saturation” property">saturation</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--synchronous" title="The “synchronous” property">synchronous</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
@@ -155,8 +155,8 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-xvimagesink.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-    <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+<pre class="screen">    <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
         <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
             <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
                 <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSink.html">GstBaseSink</a>
@@ -175,7 +175,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.48.8.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.49.8.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -201,7 +201,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.48.8.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.49.8.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -247,7 +247,7 @@
 <a name="gst-plugins-base-plugins-xvimagesink.property-details"></a><h2>Property Details</h2>
 <div class="refsect2">
 <a name="GstXvImageSink--autopaint-colorkey"></a><h3>The <code class="literal">“autopaint-colorkey”</code> property</h3>
-<pre class="programlisting">  “autopaint-colorkey”       <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<pre class="programlisting">  “autopaint-colorkey”       <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
 <p>Whether to autofill overlay with colorkey.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: TRUE</p>
@@ -255,7 +255,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstXvImageSink--brightness"></a><h3>The <code class="literal">“brightness”</code> property</h3>
-<pre class="programlisting">  “brightness”               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<pre class="programlisting">  “brightness”               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
 <p>The brightness of the video.</p>
 <p>Flags: Read / Write</p>
 <p>Allowed values: [-1000,1000]</p>
@@ -264,7 +264,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstXvImageSink--colorkey"></a><h3>The <code class="literal">“colorkey”</code> property</h3>
-<pre class="programlisting">  “colorkey”                 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<pre class="programlisting">  “colorkey”                 <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
 <p>Color to use for the overlay mask.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: 0</p>
@@ -272,7 +272,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstXvImageSink--contrast"></a><h3>The <code class="literal">“contrast”</code> property</h3>
-<pre class="programlisting">  “contrast”                 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<pre class="programlisting">  “contrast”                 <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
 <p>The contrast of the video.</p>
 <p>Flags: Read / Write</p>
 <p>Allowed values: [-1000,1000]</p>
@@ -281,7 +281,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstXvImageSink--device"></a><h3>The <code class="literal">“device”</code> property</h3>
-<pre class="programlisting">  “device”                   <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
+<pre class="programlisting">  “device”                   <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
 <p>The number of the video adaptor.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: "0"</p>
@@ -289,7 +289,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstXvImageSink--device-name"></a><h3>The <code class="literal">“device-name”</code> property</h3>
-<pre class="programlisting">  “device-name”              <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
+<pre class="programlisting">  “device-name”              <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
 <p>The name of the video adaptor.</p>
 <p>Flags: Read</p>
 <p>Default value: NULL</p>
@@ -297,7 +297,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstXvImageSink--display"></a><h3>The <code class="literal">“display”</code> property</h3>
-<pre class="programlisting">  “display”                  <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
+<pre class="programlisting">  “display”                  <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
 <p>X Display name.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: NULL</p>
@@ -305,7 +305,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstXvImageSink--double-buffer"></a><h3>The <code class="literal">“double-buffer”</code> property</h3>
-<pre class="programlisting">  “double-buffer”            <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<pre class="programlisting">  “double-buffer”            <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
 <p>Whether to double-buffer the output.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: TRUE</p>
@@ -313,7 +313,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstXvImageSink--draw-borders"></a><h3>The <code class="literal">“draw-borders”</code> property</h3>
-<pre class="programlisting">  “draw-borders”             <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<pre class="programlisting">  “draw-borders”             <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
 <p>Draw black borders to fill unused area in force-aspect-ratio mode.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: TRUE</p>
@@ -321,7 +321,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstXvImageSink--force-aspect-ratio"></a><h3>The <code class="literal">“force-aspect-ratio”</code> property</h3>
-<pre class="programlisting">  “force-aspect-ratio”       <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<pre class="programlisting">  “force-aspect-ratio”       <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
 <p>When enabled, scaling will respect original aspect ratio.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: TRUE</p>
@@ -329,7 +329,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstXvImageSink--handle-events"></a><h3>The <code class="literal">“handle-events”</code> property</h3>
-<pre class="programlisting">  “handle-events”            <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<pre class="programlisting">  “handle-events”            <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
 <p>When enabled, XEvents will be selected and handled.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: TRUE</p>
@@ -337,7 +337,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstXvImageSink--handle-expose"></a><h3>The <code class="literal">“handle-expose”</code> property</h3>
-<pre class="programlisting">  “handle-expose”            <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<pre class="programlisting">  “handle-expose”            <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
 <p>When enabled, the current frame will always be drawn in response to X Expose events.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: TRUE</p>
@@ -345,7 +345,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstXvImageSink--hue"></a><h3>The <code class="literal">“hue”</code> property</h3>
-<pre class="programlisting">  “hue”                      <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<pre class="programlisting">  “hue”                      <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
 <p>The hue of the video.</p>
 <p>Flags: Read / Write</p>
 <p>Allowed values: [-1000,1000]</p>
@@ -354,7 +354,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstXvImageSink--pixel-aspect-ratio"></a><h3>The <code class="literal">“pixel-aspect-ratio”</code> property</h3>
-<pre class="programlisting">  “pixel-aspect-ratio”       <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
+<pre class="programlisting">  “pixel-aspect-ratio”       <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
 <p>The pixel aspect ratio of the device.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: "1/1"</p>
@@ -362,7 +362,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstXvImageSink--saturation"></a><h3>The <code class="literal">“saturation”</code> property</h3>
-<pre class="programlisting">  “saturation”               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<pre class="programlisting">  “saturation”               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
 <p>The saturation of the video.</p>
 <p>Flags: Read / Write</p>
 <p>Allowed values: [-1000,1000]</p>
@@ -371,7 +371,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstXvImageSink--synchronous"></a><h3>The <code class="literal">“synchronous”</code> property</h3>
-<pre class="programlisting">  “synchronous”              <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<pre class="programlisting">  “synchronous”              <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
 <p>When enabled, runs the X display in synchronous mode. (unrelated to A/V sync, used only for debugging).</p>
 <p>Flags: Read / Write</p>
 <p>Default value: FALSE</p>
@@ -396,6 +396,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/index.html b/docs/plugins/html/index.html
index 51193b4..f626e11 100644
--- a/docs/plugins/html/index.html
+++ b/docs/plugins/html/index.html
@@ -6,7 +6,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="next" href="ch01.html" title="gst-plugins-base Elements">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -15,7 +15,7 @@
 <div>
 <div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">GStreamer Base Plugins 1.0 Plugins Reference Manual</p></th></tr></table></div>
 <div><p class="releaseinfo">
-      for GStreamer Base Plugins 1.0 (1.3.3)
+      for GStreamer Base Plugins 1.0 (1.5.0.1)
       The latest version of this documentation can be found on-line at
       <a class="ulink" href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/" target="_top">http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/</a>.
     </p></div>
@@ -104,6 +104,9 @@
 <span class="refentrytitle"><a href="gst-plugins-base-plugins-subtitleoverlay.html">subtitleoverlay</a></span><span class="refpurpose"> — Overlays a video stream with subtitles</span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-base-plugins-socketsrc.html">socketsrc</a></span><span class="refpurpose"> — Receive data from a socket</span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-base-plugins-tcpclientsrc.html">tcpclientsrc</a></span><span class="refpurpose"> — Receive data as a client over the network via TCP</span>
 </dt>
 <dt>
@@ -252,6 +255,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.20</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/plugins/html/index.sgml b/docs/plugins/html/index.sgml
index dd01807..00c4e8a 100644
--- a/docs/plugins/html/index.sgml
+++ b/docs/plugins/html/index.sgml
@@ -41,6 +41,7 @@
 <ANCHOR id="GstAppSrc-need-data" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-appsrc.html#GstAppSrc-need-data">
 <ANCHOR id="GstAppSrc-push-buffer" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-appsrc.html#GstAppSrc-push-buffer">
 <ANCHOR id="GstAppSrc-seek-data" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-appsrc.html#GstAppSrc-seek-data">
+<ANCHOR id="GstAppSrc-push-sample" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-appsrc.html#GstAppSrc-push-sample">
 <ANCHOR id="gst-plugins-base-plugins-appsink" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-appsink.html">
 <ANCHOR id="gst-plugins-base-plugins-appsink.properties" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-appsink.html#gst-plugins-base-plugins-appsink.properties">
 <ANCHOR id="gst-plugins-base-plugins-appsink.signals" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-appsink.html#gst-plugins-base-plugins-appsink.signals">
@@ -483,6 +484,12 @@
 <ANCHOR id="GstSubtitleOverlay--font-desc" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-subtitleoverlay.html#GstSubtitleOverlay--font-desc">
 <ANCHOR id="GstSubtitleOverlay--silent" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-subtitleoverlay.html#GstSubtitleOverlay--silent">
 <ANCHOR id="GstSubtitleOverlay--subtitle-encoding" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-subtitleoverlay.html#GstSubtitleOverlay--subtitle-encoding">
+<ANCHOR id="gst-plugins-base-plugins-socketsrc" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-socketsrc.html">
+<ANCHOR id="gst-plugins-base-plugins-socketsrc.other" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-socketsrc.html#gst-plugins-base-plugins-socketsrc.other">
+<ANCHOR id="gst-plugins-base-plugins-socketsrc.description" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-socketsrc.html#gst-plugins-base-plugins-socketsrc.description">
+<ANCHOR id="gst-plugins-base-plugins-socketsrc.functions_details" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-socketsrc.html#gst-plugins-base-plugins-socketsrc.functions_details">
+<ANCHOR id="gst-plugins-base-plugins-socketsrc.other_details" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-socketsrc.html#gst-plugins-base-plugins-socketsrc.other_details">
+<ANCHOR id="GstSocketSrc" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-socketsrc.html#GstSocketSrc">
 <ANCHOR id="gst-plugins-base-plugins-tcpclientsrc" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-tcpclientsrc.html">
 <ANCHOR id="gst-plugins-base-plugins-tcpclientsrc.properties" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-tcpclientsrc.html#gst-plugins-base-plugins-tcpclientsrc.properties">
 <ANCHOR id="GstTCPClientSrc" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-tcpclientsrc.html#GstTCPClientSrc">
diff --git a/docs/plugins/html/style.css b/docs/plugins/html/style.css
index 705a5c9..c141ddd 100644
--- a/docs/plugins/html/style.css
+++ b/docs/plugins/html/style.css
@@ -30,127 +30,6 @@
   vertical-align: top;
 }
 
-@media screen {
-  sup a.footnote
-  {
-    position: relative;
-    top: 0em ! important;
-  }
-  /* this is needed so that the local anchors are displayed below the naviagtion */
-  div.footnote a[name], div.refnamediv a[name], div.refsect1 a[name], div.refsect2 a[name], div.index a[name], div.glossary a[name], div.sect1 a[name]
-  {
-    display: inline-block;
-    position: relative;
-    top:-5em;
-  }
-  /* this seems to be a bug in the xsl style sheets when generating indexes */
-  div.index div.index
-  {
-    top: 0em;
-  }
-  /* make space for the fixed navigation bar and add space at the bottom so that
-   * link targets appear somewhat close to top
-   */
-  body
-  {
-    padding-top: 5em;
-    padding-bottom: 500px;
-    max-width: 60em;
-  }
-  p
-  {
-    max-width: 60em;
-  }
-  /* style and size the navigation bar */
-  table.navigation#top
-  {
-    position: fixed;
-    background: #e2e2e2;
-    border-bottom: solid 1px #babdb6;
-    margin-top: 0;
-    margin-bottom: 0;
-    top: 0;
-    left: 0;
-    height: 3em;
-    z-index: 10;
-  }
-  .navigation a, .navigation a:visited
-  {
-    /* tango:sky blue 3 */
-    color: #204a87;
-  }
-  .navigation a:hover
-  {
-    /* tango:sky blue 2 */
-    color: #3465a4;
-  }
-  td.shortcuts
-  {
-    /* tango:sky blue 2 */
-    color: #3465a4;
-    font-size: 80%;
-    white-space: nowrap;
-  }
-  td.shortcuts .dim
-  {
-    color: #babdb6;
-  }
-}
-@media screen and (min-width: 60em) {
-  /* screen larger than 60em */
-  body { margin: auto; }
-}
-@media screen and (max-width: 60em) {
-  /* screen less than 60em */
-  #nav_hierarchy { display: none; }
-  #nav_interfaces { display: none; }
-  #nav_prerequisites { display: none; }
-  #nav_derived_interfaces { display: none; }
-  #nav_implementations { display: none; }
-  #nav_child_properties { display: none; }
-  #nav_style_properties { display: none; }
-  #nav_index { display: none; }
-  #nav_glossary { display: none; }
-  .gallery_image { display: none; }
-  .property_flags { display: none; }
-  .signal_flags { display: none; }
-  .parameter_annotations { display: none; }
-  .enum_member_annotations { display: none; }
-  .struct_member_annotations { display: none; }
-  .union_member_annotations { display: none; }
-  /* now that a column is hidden, optimize space */
-  col.parameters_name { width: auto; }
-  col.parameters_description { width: auto; }
-  col.struct_members_name { width: auto; }
-  col.struct_members_description { width: auto; }
-  col.enum_members_name { width: auto; }
-  col.enum_members_description { width: auto; }
-  col.union_members_name { width: auto; }
-  col.union_members_description { width: auto; }
-}
-@media print {
-  table.navigation {
-    visibility: collapse;
-    display: none;
-  }
-  div.titlepage table.navigation {
-    visibility: visible;
-    display: table;
-    background: #e2e2e2;
-    border: solid 1px #babdb6;
-    margin-top: 0;
-    margin-bottom: 0;
-    top: 0;
-    left: 0;
-    height: 3em;
-  }
-}
-
-.navigation .title
-{
-  font-size: 120%;
-}
-
 div.gallery-float
 {
   float: left;
@@ -181,7 +60,7 @@
 div.informaltable table
 {
   border-collapse: separate;
-  border-spacing: 20px 3px;
+  border-spacing: 1em 0.5em;
   border: none;
 }
 
@@ -239,6 +118,11 @@
  color: #729fcf;
 }
 
+td p
+{
+  margin: 0.25em;
+}
+
 div.table table
 {
   border-collapse: collapse;
@@ -404,21 +288,28 @@
   font-weight: normal;
 }
 
+acronym,abbr 
+{
+  border-bottom: 1px dotted gray;
+}
+
 /* code listings */
 
-.listing_code .programlisting .cbracket   { color: #a40000; } /* tango: scarlet red 3 */
-.listing_code .programlisting .comment    { color: #a1a39d; } /* tango: aluminium 4 */
-.listing_code .programlisting .function   { color: #000000; font-weight: bold; }
-.listing_code .programlisting .function a { color: #11326b; font-weight: bold; } /* tango: sky blue 4 */
-.listing_code .programlisting .keyword    { color: #4e9a06; } /* tango: chameleon 3  */
+.listing_code .programlisting .normal,
+.listing_code .programlisting .normal a,
+.listing_code .programlisting .number,
+.listing_code .programlisting .cbracket,
+.listing_code .programlisting .symbol     { color: #555753; }
+.listing_code .programlisting .comment,
 .listing_code .programlisting .linenum    { color: #babdb6; } /* tango: aluminium 3 */
-.listing_code .programlisting .normal     { color: #000000; }
-.listing_code .programlisting .number     { color: #75507b; } /* tango: plum 2 */
+.listing_code .programlisting .function,
+.listing_code .programlisting .function a,
 .listing_code .programlisting .preproc    { color: #204a87; } /* tango: sky blue 3  */
-.listing_code .programlisting .string     { color: #c17d11; } /* tango: chocolate 2 */
-.listing_code .programlisting .type       { color: #000000; }
-.listing_code .programlisting .type a     { color: #11326b; } /* tango: sky blue 4 */
-.listing_code .programlisting .symbol     { color: #ce5c00; } /* tango: orange 3 */
+.listing_code .programlisting .string     { color: #ad7fa8; } /* tango: plum */
+.listing_code .programlisting .keyword,
+.listing_code .programlisting .usertype,
+.listing_code .programlisting .type,
+.listing_code .programlisting .type a     { color: #4e9a06; } /* tango: chameleon 3  */
 
 .listing_frame {
   /* tango:sky blue 1 */
@@ -433,11 +324,6 @@
   padding: 0.5em;
 }
 .listing_lines {
-  /* this just adds visual clutter and
-     takes precious room from small screens */
-  display: none;
-}
-.listing_lines {
   /* tango:sky blue 0.5 */
   background: #a6c5e3;
   background: rgba(114, 159, 207, 0.2);
@@ -459,3 +345,132 @@
   margin: 0px;
 }
 
+@media screen {
+  sup a.footnote
+  {
+    position: relative;
+    top: 0em ! important;
+  }
+  /* this is needed so that the local anchors are displayed below the naviagtion */
+  div.footnote a[name], div.refnamediv a[name], div.refsect1 a[name], div.refsect2 a[name], div.index a[name], div.glossary a[name], div.sect1 a[name]
+  {
+    display: inline-block;
+    position: relative;
+    top:-5em;
+  }
+  /* this seems to be a bug in the xsl style sheets when generating indexes */
+  div.index div.index
+  {
+    top: 0em;
+  }
+  /* make space for the fixed navigation bar and add space at the bottom so that
+   * link targets appear somewhat close to top
+   */
+  body
+  {
+    padding-top: 2.5em;
+    padding-bottom: 500px;
+    max-width: 60em;
+  }
+  p
+  {
+    max-width: 60em;
+  }
+  /* style and size the navigation bar */
+  table.navigation#top
+  {
+    position: fixed;
+    background: #e2e2e2;
+    border-bottom: solid 1px #babdb6;
+    border-spacing: 5px;
+    margin-top: 0;
+    margin-bottom: 0;
+    top: 0;
+    left: 0;
+    z-index: 10;
+  }
+  table.navigation#top td
+  {
+    padding-left: 6px;
+    padding-right: 6px;
+  }
+  .navigation a, .navigation a:visited
+  {
+    /* tango:sky blue 3 */
+    color: #204a87;
+  }
+  .navigation a:hover
+  {
+    /* tango:sky blue 2 */
+    color: #3465a4;
+  }
+  td.shortcuts
+  {
+    /* tango:sky blue 2 */
+    color: #3465a4;
+    font-size: 80%;
+    white-space: nowrap;
+  }
+  td.shortcuts .dim
+  {
+    color: #babdb6;
+  }
+  .navigation .title
+  {
+    font-size: 80%;
+    max-width: none;
+    margin: 0px;
+    font-weight: normal;
+  }
+}
+@media screen and (min-width: 60em) {
+  /* screen larger than 60em */
+  body { margin: auto; }
+}
+@media screen and (max-width: 60em) {
+  /* screen less than 60em */
+  #nav_hierarchy { display: none; }
+  #nav_interfaces { display: none; }
+  #nav_prerequisites { display: none; }
+  #nav_derived_interfaces { display: none; }
+  #nav_implementations { display: none; }
+  #nav_child_properties { display: none; }
+  #nav_style_properties { display: none; }
+  #nav_index { display: none; }
+  #nav_glossary { display: none; }
+  .gallery_image { display: none; }
+  .property_flags { display: none; }
+  .signal_flags { display: none; }
+  .parameter_annotations { display: none; }
+  .enum_member_annotations { display: none; }
+  .struct_member_annotations { display: none; }
+  .union_member_annotations { display: none; }
+  /* now that a column is hidden, optimize space */
+  col.parameters_name { width: auto; }
+  col.parameters_description { width: auto; }
+  col.struct_members_name { width: auto; }
+  col.struct_members_description { width: auto; }
+  col.enum_members_name { width: auto; }
+  col.enum_members_description { width: auto; }
+  col.union_members_name { width: auto; }
+  col.union_members_description { width: auto; }
+  .listing_lines { display: none; }
+}
+@media print {
+  table.navigation {
+    visibility: collapse;
+    display: none;
+  }
+  div.titlepage table.navigation {
+    visibility: visible;
+    display: table;
+    background: #e2e2e2;
+    border: solid 1px #babdb6;
+    margin-top: 0;
+    margin-bottom: 0;
+    top: 0;
+    left: 0;
+    height: 3em;
+  }
+}
+
diff --git a/docs/plugins/inspect/plugin-adder.xml b/docs/plugins/inspect/plugin-adder.xml
index bd4dec2..8aa81fa 100644
--- a/docs/plugins/inspect/plugin-adder.xml
+++ b/docs/plugins/inspect/plugin-adder.xml
@@ -3,10 +3,10 @@
   <description>Adds multiple streams</description>
   <filename>../../gst/adder/.libs/libgstadder.so</filename>
   <basename>libgstadder.so</basename>
-  <version>1.3.3</version>
+  <version>1.5.0.1</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
-  <package>GStreamer Base Plug-ins source release</package>
+  <package>GStreamer Base Plug-ins git</package>
   <origin>Unknown package origin</origin>
   <elements>
     <element>
diff --git a/docs/plugins/inspect/plugin-alsa.xml b/docs/plugins/inspect/plugin-alsa.xml
index ada1e87..1ee1c5c 100644
--- a/docs/plugins/inspect/plugin-alsa.xml
+++ b/docs/plugins/inspect/plugin-alsa.xml
@@ -3,10 +3,10 @@
   <description>ALSA plugin library</description>
   <filename>../../ext/alsa/.libs/libgstalsa.so</filename>
   <basename>libgstalsa.so</basename>
-  <version>1.3.3</version>
+  <version>1.5.0.1</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
-  <package>GStreamer Base Plug-ins source release</package>
+  <package>GStreamer Base Plug-ins git</package>
   <origin>Unknown package origin</origin>
   <elements>
     <element>
diff --git a/docs/plugins/inspect/plugin-app.xml b/docs/plugins/inspect/plugin-app.xml
index bee8375..01aab72 100644
--- a/docs/plugins/inspect/plugin-app.xml
+++ b/docs/plugins/inspect/plugin-app.xml
@@ -3,10 +3,10 @@
   <description>Elements used to communicate with applications</description>
   <filename>../../gst/app/.libs/libgstapp.so</filename>
   <basename>libgstapp.so</basename>
-  <version>1.3.3</version>
+  <version>1.5.0.1</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
-  <package>GStreamer Base Plug-ins source release</package>
+  <package>GStreamer Base Plug-ins git</package>
   <origin>Unknown package origin</origin>
   <elements>
     <element>
diff --git a/docs/plugins/inspect/plugin-audioconvert.xml b/docs/plugins/inspect/plugin-audioconvert.xml
index e1c3085..885cae6 100644
--- a/docs/plugins/inspect/plugin-audioconvert.xml
+++ b/docs/plugins/inspect/plugin-audioconvert.xml
@@ -3,10 +3,10 @@
   <description>Convert audio to different formats</description>
   <filename>../../gst/audioconvert/.libs/libgstaudioconvert.so</filename>
   <basename>libgstaudioconvert.so</basename>
-  <version>1.3.3</version>
+  <version>1.5.0.1</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
-  <package>GStreamer Base Plug-ins source release</package>
+  <package>GStreamer Base Plug-ins git</package>
   <origin>Unknown package origin</origin>
   <elements>
     <element>
diff --git a/docs/plugins/inspect/plugin-audiorate.xml b/docs/plugins/inspect/plugin-audiorate.xml
index e7b7953..fe7e16d 100644
--- a/docs/plugins/inspect/plugin-audiorate.xml
+++ b/docs/plugins/inspect/plugin-audiorate.xml
@@ -3,10 +3,10 @@
   <description>Adjusts audio frames</description>
   <filename>../../gst/audiorate/.libs/libgstaudiorate.so</filename>
   <basename>libgstaudiorate.so</basename>
-  <version>1.3.3</version>
+  <version>1.5.0.1</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
-  <package>GStreamer Base Plug-ins source release</package>
+  <package>GStreamer Base Plug-ins git</package>
   <origin>Unknown package origin</origin>
   <elements>
     <element>
diff --git a/docs/plugins/inspect/plugin-audioresample.xml b/docs/plugins/inspect/plugin-audioresample.xml
index ae2dec8..d31bc81 100644
--- a/docs/plugins/inspect/plugin-audioresample.xml
+++ b/docs/plugins/inspect/plugin-audioresample.xml
@@ -3,10 +3,10 @@
   <description>Resamples audio</description>
   <filename>../../gst/audioresample/.libs/libgstaudioresample.so</filename>
   <basename>libgstaudioresample.so</basename>
-  <version>1.3.3</version>
+  <version>1.5.0.1</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
-  <package>GStreamer Base Plug-ins source release</package>
+  <package>GStreamer Base Plug-ins git</package>
   <origin>Unknown package origin</origin>
   <elements>
     <element>
diff --git a/docs/plugins/inspect/plugin-audiotestsrc.xml b/docs/plugins/inspect/plugin-audiotestsrc.xml
index 625d183..3b6bbea 100644
--- a/docs/plugins/inspect/plugin-audiotestsrc.xml
+++ b/docs/plugins/inspect/plugin-audiotestsrc.xml
@@ -3,10 +3,10 @@
   <description>Creates audio test signals of given frequency and volume</description>
   <filename>../../gst/audiotestsrc/.libs/libgstaudiotestsrc.so</filename>
   <basename>libgstaudiotestsrc.so</basename>
-  <version>1.3.3</version>
+  <version>1.5.0.1</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
-  <package>GStreamer Base Plug-ins source release</package>
+  <package>GStreamer Base Plug-ins git</package>
   <origin>Unknown package origin</origin>
   <elements>
     <element>
diff --git a/docs/plugins/inspect/plugin-cdparanoia.xml b/docs/plugins/inspect/plugin-cdparanoia.xml
index 321968f..86dfb1f 100644
--- a/docs/plugins/inspect/plugin-cdparanoia.xml
+++ b/docs/plugins/inspect/plugin-cdparanoia.xml
@@ -3,10 +3,10 @@
   <description>Read audio from CD in paranoid mode</description>
   <filename>../../ext/cdparanoia/.libs/libgstcdparanoia.so</filename>
   <basename>libgstcdparanoia.so</basename>
-  <version>1.3.3</version>
+  <version>1.5.0.1</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
-  <package>GStreamer Base Plug-ins source release</package>
+  <package>GStreamer Base Plug-ins git</package>
   <origin>Unknown package origin</origin>
   <elements>
     <element>
diff --git a/docs/plugins/inspect/plugin-encoding.xml b/docs/plugins/inspect/plugin-encoding.xml
index cc947b1..34e500f 100644
--- a/docs/plugins/inspect/plugin-encoding.xml
+++ b/docs/plugins/inspect/plugin-encoding.xml
@@ -3,10 +3,10 @@
   <description>various encoding-related elements</description>
   <filename>../../gst/encoding/.libs/libgstencodebin.so</filename>
   <basename>libgstencodebin.so</basename>
-  <version>1.3.3</version>
+  <version>1.5.0.1</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
-  <package>GStreamer Base Plug-ins source release</package>
+  <package>GStreamer Base Plug-ins git</package>
   <origin>Unknown package origin</origin>
   <elements>
     <element>
diff --git a/docs/plugins/inspect/plugin-gio.xml b/docs/plugins/inspect/plugin-gio.xml
index 52b6a53..bcd2cc9 100644
--- a/docs/plugins/inspect/plugin-gio.xml
+++ b/docs/plugins/inspect/plugin-gio.xml
@@ -3,10 +3,10 @@
   <description>GIO elements</description>
   <filename>../../gst/gio/.libs/libgstgio.so</filename>
   <basename>libgstgio.so</basename>
-  <version>1.3.3</version>
+  <version>1.5.0.1</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
-  <package>GStreamer Base Plug-ins source release</package>
+  <package>GStreamer Base Plug-ins git</package>
   <origin>Unknown package origin</origin>
   <elements>
     <element>
diff --git a/docs/plugins/inspect/plugin-ivorbisdec.xml b/docs/plugins/inspect/plugin-ivorbisdec.xml
index c72a084..3655ff8 100644
--- a/docs/plugins/inspect/plugin-ivorbisdec.xml
+++ b/docs/plugins/inspect/plugin-ivorbisdec.xml
@@ -3,7 +3,7 @@
   <description>Vorbis Tremor decoder</description>
   <filename>../../ext/vorbis/.libs/libgstivorbisdec.so</filename>
   <basename>libgstivorbisdec.so</basename>
-  <version>1.3.3</version>
+  <version>1.4.0</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-libvisual.xml b/docs/plugins/inspect/plugin-libvisual.xml
index 65124ba..ef0c556 100644
--- a/docs/plugins/inspect/plugin-libvisual.xml
+++ b/docs/plugins/inspect/plugin-libvisual.xml
@@ -3,10 +3,10 @@
   <description>libvisual visualization plugins</description>
   <filename>../../ext/libvisual/.libs/libgstlibvisual.so</filename>
   <basename>libgstlibvisual.so</basename>
-  <version>1.3.3</version>
+  <version>1.5.0.1</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
-  <package>GStreamer Base Plug-ins source release</package>
+  <package>GStreamer Base Plug-ins git</package>
   <origin>Unknown package origin</origin>
   <elements>
     <element>
diff --git a/docs/plugins/inspect/plugin-ogg.xml b/docs/plugins/inspect/plugin-ogg.xml
index abbd718..8c18eb9 100644
--- a/docs/plugins/inspect/plugin-ogg.xml
+++ b/docs/plugins/inspect/plugin-ogg.xml
@@ -3,10 +3,10 @@
   <description>ogg stream manipulation (info about ogg: http://xiph.org)</description>
   <filename>../../ext/ogg/.libs/libgstogg.so</filename>
   <basename>libgstogg.so</basename>
-  <version>1.3.3</version>
+  <version>1.5.0.1</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
-  <package>GStreamer Base Plug-ins source release</package>
+  <package>GStreamer Base Plug-ins git</package>
   <origin>Unknown package origin</origin>
   <elements>
     <element>
diff --git a/docs/plugins/inspect/plugin-pango.xml b/docs/plugins/inspect/plugin-pango.xml
index bf7c61b..fb86241 100644
--- a/docs/plugins/inspect/plugin-pango.xml
+++ b/docs/plugins/inspect/plugin-pango.xml
@@ -3,10 +3,10 @@
   <description>Pango-based text rendering and overlay</description>
   <filename>../../ext/pango/.libs/libgstpango.so</filename>
   <basename>libgstpango.so</basename>
-  <version>1.3.3</version>
+  <version>1.5.0.1</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
-  <package>GStreamer Base Plug-ins source release</package>
+  <package>GStreamer Base Plug-ins git</package>
   <origin>Unknown package origin</origin>
   <elements>
     <element>
diff --git a/docs/plugins/inspect/plugin-playback.xml b/docs/plugins/inspect/plugin-playback.xml
index 55e1b21..8700000 100644
--- a/docs/plugins/inspect/plugin-playback.xml
+++ b/docs/plugins/inspect/plugin-playback.xml
@@ -3,10 +3,10 @@
   <description>various playback elements</description>
   <filename>../../gst/playback/.libs/libgstplayback.so</filename>
   <basename>libgstplayback.so</basename>
-  <version>1.3.3</version>
+  <version>1.5.0.1</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
-  <package>GStreamer Base Plug-ins source release</package>
+  <package>GStreamer Base Plug-ins git</package>
   <origin>Unknown package origin</origin>
   <elements>
     <element>
diff --git a/docs/plugins/inspect/plugin-subparse.xml b/docs/plugins/inspect/plugin-subparse.xml
index 547aad9..ff085e1 100644
--- a/docs/plugins/inspect/plugin-subparse.xml
+++ b/docs/plugins/inspect/plugin-subparse.xml
@@ -3,10 +3,10 @@
   <description>Subtitle parsing</description>
   <filename>../../gst/subparse/.libs/libgstsubparse.so</filename>
   <basename>libgstsubparse.so</basename>
-  <version>1.3.3</version>
+  <version>1.5.0.1</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
-  <package>GStreamer Base Plug-ins source release</package>
+  <package>GStreamer Base Plug-ins git</package>
   <origin>Unknown package origin</origin>
   <elements>
     <element>
diff --git a/docs/plugins/inspect/plugin-tcp.xml b/docs/plugins/inspect/plugin-tcp.xml
index a62a667..1a24a30 100644
--- a/docs/plugins/inspect/plugin-tcp.xml
+++ b/docs/plugins/inspect/plugin-tcp.xml
@@ -3,10 +3,10 @@
   <description>transfer data over the network via TCP</description>
   <filename>../../gst/tcp/.libs/libgsttcp.so</filename>
   <basename>libgsttcp.so</basename>
-  <version>1.3.3</version>
+  <version>1.5.0.1</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
-  <package>GStreamer Base Plug-ins source release</package>
+  <package>GStreamer Base Plug-ins git</package>
   <origin>Unknown package origin</origin>
   <elements>
     <element>
@@ -40,6 +40,21 @@
       </pads>
     </element>
     <element>
+      <name>socketsrc</name>
+      <longname>socket source</longname>
+      <class>Source/Network</class>
+      <description>Receive data from a socket</description>
+      <author>William Manley &lt;will@williammanley.net&gt;</author>
+      <pads>
+        <caps>
+          <name>src</name>
+          <direction>source</direction>
+          <presence>always</presence>
+          <details>ANY</details>
+        </caps>
+      </pads>
+    </element>
+    <element>
       <name>tcpclientsink</name>
       <longname>TCP client sink</longname>
       <class>Sink/Network</class>
diff --git a/docs/plugins/inspect/plugin-theora.xml b/docs/plugins/inspect/plugin-theora.xml
index d5e7361..577827b 100644
--- a/docs/plugins/inspect/plugin-theora.xml
+++ b/docs/plugins/inspect/plugin-theora.xml
@@ -3,10 +3,10 @@
   <description>Theora plugin library</description>
   <filename>../../ext/theora/.libs/libgsttheora.so</filename>
   <basename>libgsttheora.so</basename>
-  <version>1.3.3</version>
+  <version>1.5.0.1</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
-  <package>GStreamer Base Plug-ins source release</package>
+  <package>GStreamer Base Plug-ins git</package>
   <origin>Unknown package origin</origin>
   <elements>
     <element>
diff --git a/docs/plugins/inspect/plugin-typefindfunctions.xml b/docs/plugins/inspect/plugin-typefindfunctions.xml
index 39561c1..92d6753 100644
--- a/docs/plugins/inspect/plugin-typefindfunctions.xml
+++ b/docs/plugins/inspect/plugin-typefindfunctions.xml
@@ -3,10 +3,10 @@
   <description>default typefind functions</description>
   <filename>../../gst/typefind/.libs/libgsttypefindfunctions.so</filename>
   <basename>libgsttypefindfunctions.so</basename>
-  <version>1.3.3</version>
+  <version>1.5.0.1</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
-  <package>GStreamer Base Plug-ins source release</package>
+  <package>GStreamer Base Plug-ins git</package>
   <origin>Unknown package origin</origin>
   <elements>
   </elements>
diff --git a/docs/plugins/inspect/plugin-videoconvert.xml b/docs/plugins/inspect/plugin-videoconvert.xml
index 0468c2e..69b8014 100644
--- a/docs/plugins/inspect/plugin-videoconvert.xml
+++ b/docs/plugins/inspect/plugin-videoconvert.xml
@@ -3,10 +3,10 @@
   <description>Colorspace conversion</description>
   <filename>../../gst/videoconvert/.libs/libgstvideoconvert.so</filename>
   <basename>libgstvideoconvert.so</basename>
-  <version>1.3.3</version>
+  <version>1.5.0.1</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
-  <package>GStreamer Base Plug-ins source release</package>
+  <package>GStreamer Base Plug-ins git</package>
   <origin>Unknown package origin</origin>
   <elements>
     <element>
diff --git a/docs/plugins/inspect/plugin-videorate.xml b/docs/plugins/inspect/plugin-videorate.xml
index 361fe35..3bbf10c 100644
--- a/docs/plugins/inspect/plugin-videorate.xml
+++ b/docs/plugins/inspect/plugin-videorate.xml
@@ -3,10 +3,10 @@
   <description>Adjusts video frames</description>
   <filename>../../gst/videorate/.libs/libgstvideorate.so</filename>
   <basename>libgstvideorate.so</basename>
-  <version>1.3.3</version>
+  <version>1.5.0.1</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
-  <package>GStreamer Base Plug-ins source release</package>
+  <package>GStreamer Base Plug-ins git</package>
   <origin>Unknown package origin</origin>
   <elements>
     <element>
diff --git a/docs/plugins/inspect/plugin-videoscale.xml b/docs/plugins/inspect/plugin-videoscale.xml
index 1936599..9443f13 100644
--- a/docs/plugins/inspect/plugin-videoscale.xml
+++ b/docs/plugins/inspect/plugin-videoscale.xml
@@ -3,10 +3,10 @@
   <description>Resizes video</description>
   <filename>../../gst/videoscale/.libs/libgstvideoscale.so</filename>
   <basename>libgstvideoscale.so</basename>
-  <version>1.3.3</version>
+  <version>1.5.0.1</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
-  <package>GStreamer Base Plug-ins source release</package>
+  <package>GStreamer Base Plug-ins git</package>
   <origin>Unknown package origin</origin>
   <elements>
     <element>
@@ -20,13 +20,13 @@
           <name>sink</name>
           <direction>sink</direction>
           <presence>always</presence>
-          <details>video/x-raw, format=(string){ I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, RGB15, ARGB64, AYUV64, NV12 }, width=(int)[ 1, 32767 ], height=(int)[ 1, 32767 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(ANY), format=(string){ I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, RGB15, ARGB64, AYUV64, NV12 }, width=(int)[ 1, 32767 ], height=(int)[ 1, 32767 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
+          <details>video/x-raw, format=(string){ I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, v210, v216, NV12, NV21, NV16, NV24, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, BGR16, RGB15, BGR15, UYVP, A420, RGB8P, YUV9, YVU9, IYU1, ARGB64, AYUV64, r210, I420_10LE, I420_10BE, I422_10LE, I422_10BE, Y444_10LE, Y444_10BE, GBR, GBR_10LE, GBR_10BE, NV12_64Z32 }, width=(int)[ 1, 32767 ], height=(int)[ 1, 32767 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(ANY), format=(string){ I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, v210, v216, NV12, NV21, NV16, NV24, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, BGR16, RGB15, BGR15, UYVP, A420, RGB8P, YUV9, YVU9, IYU1, ARGB64, AYUV64, r210, I420_10LE, I420_10BE, I422_10LE, I422_10BE, Y444_10LE, Y444_10BE, GBR, GBR_10LE, GBR_10BE, NV12_64Z32 }, width=(int)[ 1, 32767 ], height=(int)[ 1, 32767 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
         </caps>
         <caps>
           <name>src</name>
           <direction>source</direction>
           <presence>always</presence>
-          <details>video/x-raw, format=(string){ I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, RGB15, ARGB64, AYUV64, NV12 }, width=(int)[ 1, 32767 ], height=(int)[ 1, 32767 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(ANY), format=(string){ I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, RGB15, ARGB64, AYUV64, NV12 }, width=(int)[ 1, 32767 ], height=(int)[ 1, 32767 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
+          <details>video/x-raw, format=(string){ I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, v210, v216, NV12, NV21, NV16, NV24, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, BGR16, RGB15, BGR15, UYVP, A420, RGB8P, YUV9, YVU9, IYU1, ARGB64, AYUV64, r210, I420_10LE, I420_10BE, I422_10LE, I422_10BE, Y444_10LE, Y444_10BE, GBR, GBR_10LE, GBR_10BE, NV12_64Z32 }, width=(int)[ 1, 32767 ], height=(int)[ 1, 32767 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(ANY), format=(string){ I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, v210, v216, NV12, NV21, NV16, NV24, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, BGR16, RGB15, BGR15, UYVP, A420, RGB8P, YUV9, YVU9, IYU1, ARGB64, AYUV64, r210, I420_10LE, I420_10BE, I422_10LE, I422_10BE, Y444_10LE, Y444_10BE, GBR, GBR_10LE, GBR_10BE, NV12_64Z32 }, width=(int)[ 1, 32767 ], height=(int)[ 1, 32767 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
         </caps>
       </pads>
     </element>
diff --git a/docs/plugins/inspect/plugin-videotestsrc.xml b/docs/plugins/inspect/plugin-videotestsrc.xml
index e52b664..102ab02 100644
--- a/docs/plugins/inspect/plugin-videotestsrc.xml
+++ b/docs/plugins/inspect/plugin-videotestsrc.xml
@@ -3,10 +3,10 @@
   <description>Creates a test video stream</description>
   <filename>../../gst/videotestsrc/.libs/libgstvideotestsrc.so</filename>
   <basename>libgstvideotestsrc.so</basename>
-  <version>1.3.3</version>
+  <version>1.5.0.1</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
-  <package>GStreamer Base Plug-ins source release</package>
+  <package>GStreamer Base Plug-ins git</package>
   <origin>Unknown package origin</origin>
   <elements>
     <element>
diff --git a/docs/plugins/inspect/plugin-volume.xml b/docs/plugins/inspect/plugin-volume.xml
index fb60313..7da8e74 100644
--- a/docs/plugins/inspect/plugin-volume.xml
+++ b/docs/plugins/inspect/plugin-volume.xml
@@ -3,10 +3,10 @@
   <description>plugin for controlling audio volume</description>
   <filename>../../gst/volume/.libs/libgstvolume.so</filename>
   <basename>libgstvolume.so</basename>
-  <version>1.3.3</version>
+  <version>1.5.0.1</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
-  <package>GStreamer Base Plug-ins source release</package>
+  <package>GStreamer Base Plug-ins git</package>
   <origin>Unknown package origin</origin>
   <elements>
     <element>
diff --git a/docs/plugins/inspect/plugin-vorbis.xml b/docs/plugins/inspect/plugin-vorbis.xml
index 2b3cc34..77fba73 100644
--- a/docs/plugins/inspect/plugin-vorbis.xml
+++ b/docs/plugins/inspect/plugin-vorbis.xml
@@ -3,10 +3,10 @@
   <description>Vorbis plugin library</description>
   <filename>../../ext/vorbis/.libs/libgstvorbis.so</filename>
   <basename>libgstvorbis.so</basename>
-  <version>1.3.3</version>
+  <version>1.5.0.1</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
-  <package>GStreamer Base Plug-ins source release</package>
+  <package>GStreamer Base Plug-ins git</package>
   <origin>Unknown package origin</origin>
   <elements>
     <element>
diff --git a/docs/plugins/inspect/plugin-ximagesink.xml b/docs/plugins/inspect/plugin-ximagesink.xml
index e6b6d89..aeed80d 100644
--- a/docs/plugins/inspect/plugin-ximagesink.xml
+++ b/docs/plugins/inspect/plugin-ximagesink.xml
@@ -3,10 +3,10 @@
   <description>X11 video output element based on standard Xlib calls</description>
   <filename>../../sys/ximage/.libs/libgstximagesink.so</filename>
   <basename>libgstximagesink.so</basename>
-  <version>1.3.3</version>
+  <version>1.5.0.1</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
-  <package>GStreamer Base Plug-ins source release</package>
+  <package>GStreamer Base Plug-ins git</package>
   <origin>Unknown package origin</origin>
   <elements>
     <element>
diff --git a/docs/plugins/inspect/plugin-xvimagesink.xml b/docs/plugins/inspect/plugin-xvimagesink.xml
index d67c29d..5c13416 100644
--- a/docs/plugins/inspect/plugin-xvimagesink.xml
+++ b/docs/plugins/inspect/plugin-xvimagesink.xml
@@ -3,10 +3,10 @@
   <description>XFree86 video output plugin using Xv extension</description>
   <filename>../../sys/xvimage/.libs/libgstxvimagesink.so</filename>
   <basename>libgstxvimagesink.so</basename>
-  <version>1.3.3</version>
+  <version>1.5.0.1</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
-  <package>GStreamer Base Plug-ins source release</package>
+  <package>GStreamer Base Plug-ins git</package>
   <origin>Unknown package origin</origin>
   <elements>
     <element>
diff --git a/ext/Makefile.in b/ext/Makefile.in
index 5719a5d..ddd12a1 100644
--- a/ext/Makefile.in
+++ b/ext/Makefile.in
@@ -106,7 +106,6 @@
 	$(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-x11.m4 \
 	$(top_srcdir)/common/m4/gst.m4 \
 	$(top_srcdir)/common/m4/gtk-doc.m4 \
 	$(top_srcdir)/common/m4/introspection.m4 \
@@ -266,6 +265,8 @@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_2_0_CFLAGS = @GIO_UNIX_2_0_CFLAGS@
+GIO_UNIX_2_0_LIBS = @GIO_UNIX_2_0_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
@@ -295,6 +296,8 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
+GST_NET_CFLAGS = @GST_NET_CFLAGS@
+GST_NET_LIBS = @GST_NET_LIBS@
 GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
 GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
@@ -322,7 +325,6 @@
 GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
 GTK_X11_LIBS = @GTK_X11_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
-HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -426,13 +428,12 @@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-XMKMF = @XMKMF@
+XSHM_CFLAGS = @XSHM_CFLAGS@
 XSHM_LIBS = @XSHM_LIBS@
+XVIDEO_CFLAGS = @XVIDEO_CFLAGS@
 XVIDEO_LIBS = @XVIDEO_LIBS@
 X_CFLAGS = @X_CFLAGS@
-X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
-X_PRE_LIBS = @X_PRE_LIBS@
 ZLIB_CFLAGS = @ZLIB_CFLAGS@
 ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
diff --git a/ext/alsa/Makefile.in b/ext/alsa/Makefile.in
index 09d2042..73beb3e 100644
--- a/ext/alsa/Makefile.in
+++ b/ext/alsa/Makefile.in
@@ -103,7 +103,6 @@
 	$(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-x11.m4 \
 	$(top_srcdir)/common/m4/gst.m4 \
 	$(top_srcdir)/common/m4/gtk-doc.m4 \
 	$(top_srcdir)/common/m4/introspection.m4 \
@@ -289,6 +288,8 @@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_2_0_CFLAGS = @GIO_UNIX_2_0_CFLAGS@
+GIO_UNIX_2_0_LIBS = @GIO_UNIX_2_0_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
@@ -318,6 +319,8 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
+GST_NET_CFLAGS = @GST_NET_CFLAGS@
+GST_NET_LIBS = @GST_NET_LIBS@
 GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
 GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
@@ -345,7 +348,6 @@
 GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
 GTK_X11_LIBS = @GTK_X11_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
-HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -449,13 +451,12 @@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-XMKMF = @XMKMF@
+XSHM_CFLAGS = @XSHM_CFLAGS@
 XSHM_LIBS = @XSHM_LIBS@
+XVIDEO_CFLAGS = @XVIDEO_CFLAGS@
 XVIDEO_LIBS = @XVIDEO_LIBS@
 X_CFLAGS = @X_CFLAGS@
-X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
-X_PRE_LIBS = @X_PRE_LIBS@
 ZLIB_CFLAGS = @ZLIB_CFLAGS@
 ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
diff --git a/ext/alsa/gstalsa.c b/ext/alsa/gstalsa.c
index d702a23..9d2a973 100644
--- a/ext/alsa/gstalsa.c
+++ b/ext/alsa/gstalsa.c
@@ -149,7 +149,8 @@
 
   finfo = gst_audio_format_get_info (format);
 
-  if (GST_AUDIO_FORMAT_INFO_ENDIANNESS (finfo) != endianness)
+  if (GST_AUDIO_FORMAT_INFO_ENDIANNESS (finfo) != endianness
+      && GST_AUDIO_FORMAT_INFO_ENDIANNESS (finfo) != 0)
     return FALSE;
 
   pcm_format = gst_alsa_get_pcm_format (format);
@@ -713,38 +714,40 @@
 #define ITEM(x, y) \
   [SND_CHMAP_ ## x] = GST_AUDIO_CHANNEL_POSITION_ ## y + 1
 
-static GstAudioChannelPosition gst_pos[SND_CHMAP_LAST + 1] = {
-  ITEM(MONO, MONO),
-  ITEM(FL, FRONT_LEFT),
-  ITEM(FR, FRONT_RIGHT),
-  ITEM(FC, FRONT_CENTER),
-  ITEM(RL, REAR_LEFT),
-  ITEM(RR, REAR_RIGHT),
-  ITEM(RC, REAR_CENTER),
-  ITEM(LFE, LFE1),
-  ITEM(SL, SIDE_LEFT),
-  ITEM(SR, SIDE_RIGHT),
-  ITEM(FLC, FRONT_LEFT_OF_CENTER),
-  ITEM(FRC, FRONT_RIGHT_OF_CENTER),
-  ITEM(FLW, WIDE_LEFT),
-  ITEM(FRW, WIDE_RIGHT),
-  ITEM(TC, TOP_CENTER),
-  ITEM(TFL, TOP_FRONT_LEFT),
-  ITEM(TFR, TOP_FRONT_RIGHT),
-  ITEM(TFC, TOP_FRONT_CENTER),
-  ITEM(TRL, TOP_REAR_LEFT),
-  ITEM(TRR, TOP_REAR_RIGHT),
-  ITEM(TRC, TOP_REAR_CENTER),
-  ITEM(LLFE, LFE1),
-  ITEM(RLFE, LFE2),
-  ITEM(BC, BOTTOM_FRONT_CENTER),
-  ITEM(BLC, BOTTOM_FRONT_LEFT),
-  ITEM(BRC, BOTTOM_FRONT_LEFT),
+static const GstAudioChannelPosition gst_pos[SND_CHMAP_LAST + 1] = {
+  ITEM (MONO, MONO),
+  ITEM (FL, FRONT_LEFT),
+  ITEM (FR, FRONT_RIGHT),
+  ITEM (FC, FRONT_CENTER),
+  ITEM (RL, REAR_LEFT),
+  ITEM (RR, REAR_RIGHT),
+  ITEM (RC, REAR_CENTER),
+  ITEM (LFE, LFE1),
+  ITEM (SL, SIDE_LEFT),
+  ITEM (SR, SIDE_RIGHT),
+  ITEM (FLC, FRONT_LEFT_OF_CENTER),
+  ITEM (FRC, FRONT_RIGHT_OF_CENTER),
+  ITEM (FLW, WIDE_LEFT),
+  ITEM (FRW, WIDE_RIGHT),
+  ITEM (TC, TOP_CENTER),
+  ITEM (TFL, TOP_FRONT_LEFT),
+  ITEM (TFR, TOP_FRONT_RIGHT),
+  ITEM (TFC, TOP_FRONT_CENTER),
+  ITEM (TRL, TOP_REAR_LEFT),
+  ITEM (TRR, TOP_REAR_RIGHT),
+  ITEM (TRC, TOP_REAR_CENTER),
+  ITEM (LLFE, LFE1),
+  ITEM (RLFE, LFE2),
+  ITEM (BC, BOTTOM_FRONT_CENTER),
+  ITEM (BLC, BOTTOM_FRONT_LEFT),
+  ITEM (BRC, BOTTOM_FRONT_LEFT),
 };
+
 #undef ITEM
 
-gboolean alsa_chmap_to_channel_positions (const snd_pcm_chmap_t *chmap,
-					  GstAudioChannelPosition *pos)
+gboolean
+alsa_chmap_to_channel_positions (const snd_pcm_chmap_t * chmap,
+    GstAudioChannelPosition * pos)
 {
   int c;
 
diff --git a/ext/alsa/gstalsasink.c b/ext/alsa/gstalsasink.c
index 7d7b443..5c6a958 100644
--- a/ext/alsa/gstalsasink.c
+++ b/ext/alsa/gstalsasink.c
@@ -52,6 +52,10 @@
 #include <gst/audio/gstaudioiec61937.h>
 #include <gst/gst-i18n-plugin.h>
 
+#ifndef ESTRPIPE
+#define ESTRPIPE EPIPE
+#endif
+
 #define DEFAULT_DEVICE		"default"
 #define DEFAULT_DEVICE_NAME	""
 #define DEFAULT_CARD_NAME	""
@@ -982,7 +986,7 @@
 static gint
 xrun_recovery (GstAlsaSink * alsa, snd_pcm_t * handle, gint err)
 {
-  GST_DEBUG_OBJECT (alsa, "xrun recovery %d: %s", err, g_strerror (-err));
+  GST_WARNING_OBJECT (alsa, "xrun recovery %d: %s", err, g_strerror (-err));
 
   if (err == -EPIPE) {          /* under-run */
     err = snd_pcm_prepare (handle);
diff --git a/ext/alsa/gstalsasrc.c b/ext/alsa/gstalsasrc.c
index 43b82b1..6d11ba4 100644
--- a/ext/alsa/gstalsasrc.c
+++ b/ext/alsa/gstalsasrc.c
@@ -49,6 +49,10 @@
 
 #include <gst/gst-i18n-plugin.h>
 
+#ifndef ESTRPIPE
+#define ESTRPIPE EPIPE
+#endif
+
 #define DEFAULT_PROP_DEVICE		"default"
 #define DEFAULT_PROP_DEVICE_NAME	""
 #define DEFAULT_PROP_CARD_NAME	        ""
@@ -721,8 +725,7 @@
   alsa = GST_ALSA_SRC (asrc);
 
   CHECK (snd_pcm_open (&alsa->handle, alsa->device, SND_PCM_STREAM_CAPTURE,
-          (alsa->driver_timestamps == TRUE) ? 0 : SND_PCM_NONBLOCK),
-      open_error);
+          (alsa->driver_timestamps) ? 0 : SND_PCM_NONBLOCK), open_error);
 
   return TRUE;
 
@@ -787,7 +790,8 @@
     if (chmap && chmap->channels == alsa->channels) {
       GstAudioChannelPosition pos[8];
       if (alsa_chmap_to_channel_positions (chmap, pos))
-	gst_audio_ring_buffer_set_channel_positions (GST_AUDIO_BASE_SRC (alsa)->ringbuffer, pos);
+        gst_audio_ring_buffer_set_channel_positions (GST_AUDIO_BASE_SRC
+            (alsa)->ringbuffer, pos);
     }
     free (chmap);
   }
@@ -861,13 +865,13 @@
 static gint
 xrun_recovery (GstAlsaSrc * alsa, snd_pcm_t * handle, gint err)
 {
-  GST_DEBUG_OBJECT (alsa, "xrun recovery %d: %s", err, g_strerror (err));
+  GST_WARNING_OBJECT (alsa, "xrun recovery %d: %s", err, g_strerror (-err));
 
   if (err == -EPIPE) {          /* under-run */
     err = snd_pcm_prepare (handle);
     if (err < 0)
       GST_WARNING_OBJECT (alsa,
-          "Can't recovery from underrun, prepare failed: %s",
+          "Can't recover from underrun, prepare failed: %s",
           snd_strerror (err));
     return 0;
   } else if (err == -ESTRPIPE) {
@@ -878,7 +882,7 @@
       err = snd_pcm_prepare (handle);
       if (err < 0)
         GST_WARNING_OBJECT (alsa,
-            "Can't recovery from suspend, prepare failed: %s",
+            "Can't recover from suspend, prepare failed: %s",
             snd_strerror (err));
     }
     return 0;
diff --git a/ext/cdparanoia/Makefile.in b/ext/cdparanoia/Makefile.in
index 805cd67..7d5c831 100644
--- a/ext/cdparanoia/Makefile.in
+++ b/ext/cdparanoia/Makefile.in
@@ -103,7 +103,6 @@
 	$(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-x11.m4 \
 	$(top_srcdir)/common/m4/gst.m4 \
 	$(top_srcdir)/common/m4/gtk-doc.m4 \
 	$(top_srcdir)/common/m4/introspection.m4 \
@@ -289,6 +288,8 @@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_2_0_CFLAGS = @GIO_UNIX_2_0_CFLAGS@
+GIO_UNIX_2_0_LIBS = @GIO_UNIX_2_0_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
@@ -318,6 +319,8 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
+GST_NET_CFLAGS = @GST_NET_CFLAGS@
+GST_NET_LIBS = @GST_NET_LIBS@
 GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
 GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
@@ -345,7 +348,6 @@
 GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
 GTK_X11_LIBS = @GTK_X11_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
-HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -449,13 +451,12 @@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-XMKMF = @XMKMF@
+XSHM_CFLAGS = @XSHM_CFLAGS@
 XSHM_LIBS = @XSHM_LIBS@
+XVIDEO_CFLAGS = @XVIDEO_CFLAGS@
 XVIDEO_LIBS = @XVIDEO_LIBS@
 X_CFLAGS = @X_CFLAGS@
-X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
-X_PRE_LIBS = @X_PRE_LIBS@
 ZLIB_CFLAGS = @ZLIB_CFLAGS@
 ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
diff --git a/ext/cdparanoia/gstcdparanoiasrc.h b/ext/cdparanoia/gstcdparanoiasrc.h
index 0183e92..6c2e038 100644
--- a/ext/cdparanoia/gstcdparanoiasrc.h
+++ b/ext/cdparanoia/gstcdparanoiasrc.h
@@ -30,7 +30,7 @@
 /* on OSX the cdparanoia headers include IOKit framework headers (in particular
  * SCSICmds_INQUIRY_Definitions.h) which define a structure that has a member
  * named VERSION, so we must #undef VERSION here for things to compile on OSX */
-static char GST_PLUGINS_BASE_VERSION[] = VERSION;
+static const char GST_PLUGINS_BASE_VERSION[] = VERSION;
 #undef VERSION
 
 #ifdef CDPARANOIA_HEADERS_IN_DIR
diff --git a/ext/libvisual/Makefile.in b/ext/libvisual/Makefile.in
index 5f8c788..62d6c08 100644
--- a/ext/libvisual/Makefile.in
+++ b/ext/libvisual/Makefile.in
@@ -103,7 +103,6 @@
 	$(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-x11.m4 \
 	$(top_srcdir)/common/m4/gst.m4 \
 	$(top_srcdir)/common/m4/gtk-doc.m4 \
 	$(top_srcdir)/common/m4/introspection.m4 \
@@ -290,6 +289,8 @@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_2_0_CFLAGS = @GIO_UNIX_2_0_CFLAGS@
+GIO_UNIX_2_0_LIBS = @GIO_UNIX_2_0_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
@@ -319,6 +320,8 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
+GST_NET_CFLAGS = @GST_NET_CFLAGS@
+GST_NET_LIBS = @GST_NET_LIBS@
 GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
 GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
@@ -346,7 +349,6 @@
 GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
 GTK_X11_LIBS = @GTK_X11_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
-HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -450,13 +452,12 @@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-XMKMF = @XMKMF@
+XSHM_CFLAGS = @XSHM_CFLAGS@
 XSHM_LIBS = @XSHM_LIBS@
+XVIDEO_CFLAGS = @XVIDEO_CFLAGS@
 XVIDEO_LIBS = @XVIDEO_LIBS@
 X_CFLAGS = @X_CFLAGS@
-X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
-X_PRE_LIBS = @X_PRE_LIBS@
 ZLIB_CFLAGS = @ZLIB_CFLAGS@
 ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
diff --git a/ext/libvisual/gstaudiovisualizer.c b/ext/libvisual/gstaudiovisualizer.c
index b34a5d6..598d2fc 100644
--- a/ext/libvisual/gstaudiovisualizer.c
+++ b/ext/libvisual/gstaudiovisualizer.c
@@ -63,7 +63,7 @@
     guint prop_id, const GValue * value, GParamSpec * pspec);
 static void gst_audio_visualizer_get_property (GObject * object,
     guint prop_id, GValue * value, GParamSpec * pspec);
-static void gst_audio_visualizer_dispose (GObject * object);
+static void gst_audio_visualizer_finalize (GObject * object);
 
 static gboolean gst_audio_visualizer_src_negotiate (GstAudioVisualizer * scope);
 static gboolean gst_audio_visualizer_src_setcaps (GstAudioVisualizer *
@@ -500,10 +500,13 @@
   GstAllocator *allocator;
   GstAllocationParams params;
   GstQuery *query;
+
+  guint dropped;                /* frames dropped / not dropped */
+  guint processed;
 };
 
 GType
-gst_audio_visualizer_get_type (void)
+libvisual_gst_audio_visualizer_get_type (void)
 {
   static volatile gsize audio_visualizer_type = 0;
 
@@ -546,7 +549,7 @@
 
   gobject_class->set_property = gst_audio_visualizer_set_property;
   gobject_class->get_property = gst_audio_visualizer_get_property;
-  gobject_class->dispose = gst_audio_visualizer_dispose;
+  gobject_class->finalize = gst_audio_visualizer_finalize;
 
   element_class->change_state =
       GST_DEBUG_FUNCPTR (gst_audio_visualizer_change_state);
@@ -653,7 +656,7 @@
 }
 
 static void
-gst_audio_visualizer_dispose (GObject * object)
+gst_audio_visualizer_finalize (GObject * object)
 {
   GstAudioVisualizer *scope = GST_AUDIO_VISUALIZER (object);
 
@@ -670,11 +673,10 @@
     gst_buffer_unref (scope->tempbuf);
     scope->tempbuf = NULL;
   }
-  if (scope->config_lock.p) {
-    g_mutex_clear (&scope->config_lock);
-    scope->config_lock.p = NULL;
-  }
-  G_OBJECT_CLASS (parent_class)->dispose (object);
+
+  g_mutex_clear (&scope->config_lock);
+
+  G_OBJECT_CLASS (parent_class)->finalize (object);
 }
 
 static void
@@ -686,6 +688,8 @@
   GST_OBJECT_LOCK (scope);
   scope->proportion = 1.0;
   scope->earliest_time = -1;
+  scope->priv->dropped = 0;
+  scope->priv->processed = 0;
   GST_OBJECT_UNLOCK (scope);
 }
 
@@ -750,8 +754,8 @@
   gst_video_frame_map (&scope->tempframe, &scope->vinfo, scope->tempbuf,
       GST_MAP_READWRITE);
 
-  if (klass->setup)
-    res = klass->setup (scope);
+  if (klass->setup && !klass->setup (scope))
+    goto setup_failed;
 
   GST_DEBUG_OBJECT (scope, "video: dimension %dx%d, framerate %d/%d",
       GST_VIDEO_INFO_WIDTH (&info), GST_VIDEO_INFO_HEIGHT (&info),
@@ -763,15 +767,23 @@
 
   /* find a pool for the negotiated caps now */
   res = gst_audio_visualizer_do_bufferpool (scope, caps);
+  gst_caps_unref (caps);
 
   return res;
 
   /* ERRORS */
 wrong_caps:
   {
+    gst_caps_unref (caps);
     GST_DEBUG_OBJECT (scope, "error parsing caps");
     return FALSE;
   }
+
+setup_failed:
+  {
+    GST_WARNING_OBJECT (scope, "failed to set up");
+    return FALSE;
+  }
 }
 
 static gboolean
@@ -1087,27 +1099,46 @@
       ts += gst_util_uint64_scale_int (dist, GST_SECOND, rate);
     }
 
+    /* check for QoS, don't compute buffers that are known to be late */
     if (GST_CLOCK_TIME_IS_VALID (ts)) {
+      GstClockTime earliest_time;
+      gdouble proportion;
       gint64 qostime;
-      gboolean need_skip;
 
       qostime =
           gst_segment_to_running_time (&scope->segment, GST_FORMAT_TIME, ts) +
           scope->frame_duration;
 
       GST_OBJECT_LOCK (scope);
-      /* check for QoS, don't compute buffers that are known to be late */
-      need_skip = scope->earliest_time != -1 && qostime <= scope->earliest_time;
+      earliest_time = scope->earliest_time;
+      proportion = scope->proportion;
       GST_OBJECT_UNLOCK (scope);
 
-      if (need_skip) {
-        GST_WARNING_OBJECT (scope,
+      if (GST_CLOCK_TIME_IS_VALID (earliest_time) && qostime <= earliest_time) {
+        GstClockTime stream_time, jitter;
+        GstMessage *qos_msg;
+
+        GST_DEBUG_OBJECT (scope,
             "QoS: skip ts: %" GST_TIME_FORMAT ", earliest: %" GST_TIME_FORMAT,
-            GST_TIME_ARGS (qostime), GST_TIME_ARGS (scope->earliest_time));
+            GST_TIME_ARGS (qostime), GST_TIME_ARGS (earliest_time));
+
+        ++scope->priv->dropped;
+        stream_time = gst_segment_to_stream_time (&scope->segment,
+            GST_FORMAT_TIME, ts);
+        jitter = GST_CLOCK_DIFF (qostime, earliest_time);
+        qos_msg = gst_message_new_qos (GST_OBJECT (scope), FALSE, qostime,
+            stream_time, ts, GST_BUFFER_DURATION (buffer));
+        gst_message_set_qos_values (qos_msg, jitter, proportion, 1000000);
+        gst_message_set_qos_stats (qos_msg, GST_FORMAT_BUFFERS,
+            scope->priv->processed, scope->priv->dropped);
+        gst_element_post_message (GST_ELEMENT (scope), qos_msg);
+
         goto skip;
       }
     }
 
+    ++scope->priv->processed;
+
     g_mutex_unlock (&scope->config_lock);
     ret = default_prepare_output_buffer (scope, &outbuf);
     g_mutex_lock (&scope->config_lock);
@@ -1150,6 +1181,8 @@
     if (klass->render) {
       if (!klass->render (scope, inbuf, &outframe)) {
         ret = GST_FLOW_ERROR;
+        gst_video_frame_unmap (&outframe);
+        goto beach;
       } else {
         /* run various post processing (shading and geometric transformation) */
         /* FIXME: SHADER assumes 32bpp */
@@ -1260,6 +1293,7 @@
 
       gst_event_parse_caps (event, &caps);
       res = gst_audio_visualizer_sink_setcaps (scope, caps);
+      gst_event_unref (event);
       break;
     }
     case GST_EVENT_FLUSH_STOP:
diff --git a/ext/libvisual/gstaudiovisualizer.h b/ext/libvisual/gstaudiovisualizer.h
index 7f8f8d8..a9b7a9c 100644
--- a/ext/libvisual/gstaudiovisualizer.h
+++ b/ext/libvisual/gstaudiovisualizer.h
@@ -29,7 +29,7 @@
 #include <gst/base/gstadapter.h>
 
 G_BEGIN_DECLS
-#define GST_TYPE_AUDIO_VISUALIZER            (gst_audio_visualizer_get_type())
+#define GST_TYPE_AUDIO_VISUALIZER            (libvisual_gst_audio_visualizer_get_type())
 #define GST_AUDIO_VISUALIZER(obj)            (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_AUDIO_VISUALIZER,GstAudioVisualizer))
 #define GST_AUDIO_VISUALIZER_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_AUDIO_VISUALIZER,GstAudioVisualizerClass))
 #define GST_AUDIO_VISUALIZER_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS((obj),GST_TYPE_AUDIO_VISUALIZER,GstAudioVisualizerClass))
@@ -121,7 +121,7 @@
   gboolean (*decide_allocation)   (GstAudioVisualizer * scope, GstQuery *query);
 };
 
-GType gst_audio_visualizer_get_type (void);
+GType libvisual_gst_audio_visualizer_get_type (void);
 
 G_END_DECLS
 #endif /* __GST_AUDIO_VISUALIZER_H__ */
diff --git a/ext/libvisual/plugin.c b/ext/libvisual/plugin.c
index 7c2aad5..3ce18e4 100644
--- a/ext/libvisual/plugin.c
+++ b/ext/libvisual/plugin.c
@@ -58,21 +58,10 @@
   gboolean is_gl;
   gint depth;
 
-#if !defined(VISUAL_API_VERSION)
-
-  depth = VISUAL_PLUGIN_ACTOR (plugin)->depth;
-  is_gl = (depth == VISUAL_VIDEO_DEPTH_GL);
-
-#elif VISUAL_API_VERSION >= 4000 && VISUAL_API_VERSION < 5000
-
   depth = VISUAL_ACTOR_PLUGIN (plugin)->vidoptions.depth;
   /* FIXME: how to figure this out correctly in 0.4? */
   is_gl = (depth & VISUAL_VIDEO_DEPTH_GL) == VISUAL_VIDEO_DEPTH_GL;
 
-#else
-# error what libvisual version is this?
-#endif
-
   if (!is_gl) {
     GST_DEBUG ("plugin %s is not a GL plugin (%d), registering", name, depth);
   } else {
@@ -111,11 +100,7 @@
 
   list = visual_actor_get_list ();
 
-#if !defined(VISUAL_API_VERSION)
-  count = visual_list_count (list);
-#elif VISUAL_API_VERSION >= 4000 && VISUAL_API_VERSION < 5000
   count = visual_collection_size (VISUAL_COLLECTION (list));
-#endif
 
   for (i = 0; i < count; i++) {
     VisPluginRef *ref = visual_list_get (list, i);
diff --git a/ext/libvisual/visual.c b/ext/libvisual/visual.c
index 3d660ca..460c106 100644
--- a/ext/libvisual/visual.c
+++ b/ext/libvisual/visual.c
@@ -48,12 +48,7 @@
     GST_STATIC_CAPS ("audio/x-raw, "
         "format = (string) " GST_AUDIO_NE (S16) ", "
         "layout = (string) interleaved, " "channels = (int) { 1, 2 }, "
-#if defined(VISUAL_API_VERSION) && VISUAL_API_VERSION >= 4000 && VISUAL_API_VERSION < 5000
-        "rate = (int) { 8000, 11250, 22500, 32000, 44100, 48000, 96000 }"
-#else
-        "rate = (int) [ 1000, MAX ]"
-#endif
-    )
+        "rate = (int) { 8000, 11250, 22500, 32000, 44100, 48000, 96000 }")
     );
 
 
@@ -224,6 +219,9 @@
   const guint16 *adata;
   gint i, channels;
   gboolean res = TRUE;
+  VisBuffer *lbuf, *rbuf;
+  guint16 ldata[VISUAL_SAMPLES], rdata[VISUAL_SAMPLES];
+  VisAudioSampleRateType vrate;
 
   visual_video_set_buffer (visual->video, GST_VIDEO_FRAME_PLANE_DATA (video,
           0));
@@ -235,74 +233,10 @@
   gst_buffer_map (audio, &amap, GST_MAP_READ);
   adata = (const guint16 *) amap.data;
 
-#if defined(VISUAL_API_VERSION) && VISUAL_API_VERSION >= 4000 && VISUAL_API_VERSION < 5000
-  {
-    VisBuffer *lbuf, *rbuf;
-    guint16 ldata[VISUAL_SAMPLES], rdata[VISUAL_SAMPLES];
-    VisAudioSampleRateType vrate;
+  lbuf = visual_buffer_new_with_buffer (ldata, sizeof (ldata), NULL);
+  rbuf = visual_buffer_new_with_buffer (rdata, sizeof (rdata), NULL);
 
-    lbuf = visual_buffer_new_with_buffer (ldata, sizeof (ldata), NULL);
-    rbuf = visual_buffer_new_with_buffer (rdata, sizeof (rdata), NULL);
-
-    if (channels == 2) {
-      for (i = 0; i < VISUAL_SAMPLES; i++) {
-        ldata[i] = *adata++;
-        rdata[i] = *adata++;
-      }
-    } else {
-      for (i = 0; i < VISUAL_SAMPLES; i++) {
-        ldata[i] = *adata;
-        rdata[i] = *adata++;
-      }
-    }
-
-    /* TODO(ensonic): move to setup */
-    switch (bscope->ainfo.rate) {
-      case 8000:
-        vrate = VISUAL_AUDIO_SAMPLE_RATE_8000;
-        break;
-      case 11250:
-        vrate = VISUAL_AUDIO_SAMPLE_RATE_11250;
-        break;
-      case 22500:
-        vrate = VISUAL_AUDIO_SAMPLE_RATE_22500;
-        break;
-      case 32000:
-        vrate = VISUAL_AUDIO_SAMPLE_RATE_32000;
-        break;
-      case 44100:
-        vrate = VISUAL_AUDIO_SAMPLE_RATE_44100;
-        break;
-      case 48000:
-        vrate = VISUAL_AUDIO_SAMPLE_RATE_48000;
-        break;
-      case 96000:
-        vrate = VISUAL_AUDIO_SAMPLE_RATE_96000;
-        break;
-      default:
-        visual_object_unref (VISUAL_OBJECT (lbuf));
-        visual_object_unref (VISUAL_OBJECT (rbuf));
-        GST_ERROR_OBJECT (visual, "unsupported rate %d", bscope->ainfo.rate);
-        res = FALSE;
-        goto done;
-    }
-
-    visual_audio_samplepool_input_channel (visual->audio->samplepool,
-        lbuf,
-        vrate, VISUAL_AUDIO_SAMPLE_FORMAT_S16,
-        (char *) VISUAL_AUDIO_CHANNEL_LEFT);
-    visual_audio_samplepool_input_channel (visual->audio->samplepool, rbuf,
-        vrate, VISUAL_AUDIO_SAMPLE_FORMAT_S16,
-        (char *) VISUAL_AUDIO_CHANNEL_RIGHT);
-
-    visual_object_unref (VISUAL_OBJECT (lbuf));
-    visual_object_unref (VISUAL_OBJECT (rbuf));
-
-  }
-#else
   if (channels == 2) {
-    guint16 *ldata = visual->audio->plugpcm[0];
-    guint16 *rdata = visual->audio->plugpcm[1];
     for (i = 0; i < VISUAL_SAMPLES; i++) {
       ldata[i] = *adata++;
       rdata[i] = *adata++;
@@ -313,7 +247,48 @@
       rdata[i] = *adata++;
     }
   }
-#endif
+
+  /* TODO(ensonic): move to setup */
+  switch (bscope->ainfo.rate) {
+    case 8000:
+      vrate = VISUAL_AUDIO_SAMPLE_RATE_8000;
+      break;
+    case 11250:
+      vrate = VISUAL_AUDIO_SAMPLE_RATE_11250;
+      break;
+    case 22500:
+      vrate = VISUAL_AUDIO_SAMPLE_RATE_22500;
+      break;
+    case 32000:
+      vrate = VISUAL_AUDIO_SAMPLE_RATE_32000;
+      break;
+    case 44100:
+      vrate = VISUAL_AUDIO_SAMPLE_RATE_44100;
+      break;
+    case 48000:
+      vrate = VISUAL_AUDIO_SAMPLE_RATE_48000;
+      break;
+    case 96000:
+      vrate = VISUAL_AUDIO_SAMPLE_RATE_96000;
+      break;
+    default:
+      visual_object_unref (VISUAL_OBJECT (lbuf));
+      visual_object_unref (VISUAL_OBJECT (rbuf));
+      GST_ERROR_OBJECT (visual, "unsupported rate %d", bscope->ainfo.rate);
+      res = FALSE;
+      goto done;
+  }
+
+  visual_audio_samplepool_input_channel (visual->audio->samplepool,
+      lbuf,
+      vrate, VISUAL_AUDIO_SAMPLE_FORMAT_S16,
+      (char *) VISUAL_AUDIO_CHANNEL_LEFT);
+  visual_audio_samplepool_input_channel (visual->audio->samplepool, rbuf,
+      vrate, VISUAL_AUDIO_SAMPLE_FORMAT_S16,
+      (char *) VISUAL_AUDIO_CHANNEL_RIGHT);
+
+  visual_object_unref (VISUAL_OBJECT (lbuf));
+  visual_object_unref (VISUAL_OBJECT (rbuf));
 
   visual_audio_analyze (visual->audio);
   visual_actor_run (visual->actor, visual->audio);
diff --git a/ext/ogg/Makefile.in b/ext/ogg/Makefile.in
index 4d0c7cc..6461597 100644
--- a/ext/ogg/Makefile.in
+++ b/ext/ogg/Makefile.in
@@ -103,7 +103,6 @@
 	$(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-x11.m4 \
 	$(top_srcdir)/common/m4/gst.m4 \
 	$(top_srcdir)/common/m4/gtk-doc.m4 \
 	$(top_srcdir)/common/m4/introspection.m4 \
@@ -294,6 +293,8 @@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_2_0_CFLAGS = @GIO_UNIX_2_0_CFLAGS@
+GIO_UNIX_2_0_LIBS = @GIO_UNIX_2_0_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
@@ -323,6 +324,8 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
+GST_NET_CFLAGS = @GST_NET_CFLAGS@
+GST_NET_LIBS = @GST_NET_LIBS@
 GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
 GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
@@ -350,7 +353,6 @@
 GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
 GTK_X11_LIBS = @GTK_X11_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
-HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -454,13 +456,12 @@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-XMKMF = @XMKMF@
+XSHM_CFLAGS = @XSHM_CFLAGS@
 XSHM_LIBS = @XSHM_LIBS@
+XVIDEO_CFLAGS = @XVIDEO_CFLAGS@
 XVIDEO_LIBS = @XVIDEO_LIBS@
 X_CFLAGS = @X_CFLAGS@
-X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
-X_PRE_LIBS = @X_PRE_LIBS@
 ZLIB_CFLAGS = @ZLIB_CFLAGS@
 ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
diff --git a/ext/ogg/gstoggdemux.c b/ext/ogg/gstoggdemux.c
index 1ea27a1..86615bf 100644
--- a/ext/ogg/gstoggdemux.c
+++ b/ext/ogg/gstoggdemux.c
@@ -59,6 +59,8 @@
 #define GST_FLOW_LIMIT GST_FLOW_CUSTOM_ERROR
 #define GST_FLOW_SKIP_PUSH GST_FLOW_CUSTOM_SUCCESS_1
 
+#define SEEK_GIVE_UP_THRESHOLD (3*GST_SECOND)
+
 #define GST_CHAIN_LOCK(ogg)     g_mutex_lock(&(ogg)->chain_lock)
 #define GST_CHAIN_UNLOCK(ogg)   g_mutex_unlock(&(ogg)->chain_lock)
 
@@ -177,6 +179,7 @@
   gst_pad_use_fixed_caps (GST_PAD (pad));
 
   pad->current_granule = -1;
+  pad->prev_granule = -1;
   pad->keyframe_granule = -1;
 
   pad->start_time = GST_CLOCK_TIME_NONE;
@@ -458,6 +461,7 @@
   pad->last_ret = GST_FLOW_OK;
   pad->position = GST_CLOCK_TIME_NONE;
   pad->current_granule = -1;
+  pad->prev_granule = -1;
   pad->keyframe_granule = -1;
   pad->is_eos = FALSE;
 }
@@ -640,8 +644,21 @@
               GST_SECOND * pad->map.granulerate_d, pad->map.granulerate_n);
         }
       } else {
-        out_timestamp = gst_ogg_stream_granule_to_time (&pad->map,
-            pad->current_granule - duration);
+        /* The last packet may be clipped. This will be represented
+           by the last granule being smaller than what it would otherwise
+           have been, had no content been clipped. In that case, we
+           cannot calculate the PTS of the audio from the packet length
+           and granule. */
+        if (packet->e_o_s) {
+          if (pad->prev_granule >= 0)
+            out_timestamp = gst_ogg_stream_granule_to_time (&pad->map,
+                pad->prev_granule);
+          else
+            out_timestamp = 0;
+        } else {
+          out_timestamp = gst_ogg_stream_granule_to_time (&pad->map,
+              pad->current_granule - duration);
+        }
         out_duration =
             gst_ogg_stream_granule_to_time (&pad->map,
             pad->current_granule) - out_timestamp;
@@ -652,6 +669,7 @@
       out_offset =
           gst_ogg_stream_granule_to_time (&pad->map, pad->current_granule);
     }
+    pad->prev_granule = pad->current_granule;
   }
 
   if (pad->map.is_ogm_text) {
@@ -687,7 +705,9 @@
   /* Mark discont on the buffer */
   if (pad->discont) {
     GST_BUFFER_FLAG_SET (buf, GST_BUFFER_FLAG_DISCONT);
-    pad->discont = FALSE;
+    if GST_BUFFER_TIMESTAMP_IS_VALID
+      (buf)
+          pad->discont = FALSE;
   }
 
   pad->position = ogg->segment.position;
@@ -695,6 +715,7 @@
   /* don't push the header packets when we are asked to skip them */
   if (!packet->b_o_s || push_headers) {
     if (pad->last_ret == GST_FLOW_OK) {
+      GST_LOG_OBJECT (ogg, "Pushing buf %" GST_PTR_FORMAT, buf);
       ret = gst_pad_push (GST_PAD_CAST (pad), buf);
     } else {
       GST_DEBUG_OBJECT (ogg, "not pushing buffer on error pad");
@@ -732,8 +753,8 @@
   /* and store as the current position */
   ogg->segment.position = current_time;
 
-  GST_DEBUG_OBJECT (ogg, "ogg current time %" GST_TIME_FORMAT,
-      GST_TIME_ARGS (current_time));
+  GST_DEBUG_OBJECT (ogg, "ogg current time %" GST_TIME_FORMAT
+      " (%" G_GINT64_FORMAT ")", GST_TIME_ARGS (current_time), current_time);
 
   /* check stream eos */
   if (!pad->is_eos && !delta_unit &&
@@ -919,9 +940,11 @@
 
   granule = gst_ogg_stream_granulepos_to_granule (&pad->map,
       packet->granulepos);
-  if (granule >= 0) {
+  if (granule > 0) {
     GST_DEBUG_OBJECT (ogg, "%p has granulepos %" G_GINT64_FORMAT, pad, granule);
     pad->current_granule = granule;
+  } else if (granule == 0) {
+    /* headers */
   } else if (granule != -1) {
     GST_ERROR_OBJECT (ogg,
         "granulepos %" G_GINT64_FORMAT " yielded granule %" G_GINT64_FORMAT,
@@ -993,7 +1016,8 @@
             (gint64) packet->granulepos, granule, pad->map.accumulated_granule);
       } else {
         packet->granulepos = gst_ogg_stream_granule_to_granulepos (&pad->map,
-            pad->map.accumulated_granule, pad->keyframe_granule);
+            pad->map.accumulated_granule + pad->current_granule,
+            pad->keyframe_granule);
       }
     }
   } else {
@@ -1053,19 +1077,20 @@
                 GST_TIME_ARGS (start_time));
             segment.rate = ogg->push_seek_rate;
             segment.start = ogg->push_seek_time_original_target;
+            segment.position = ogg->push_seek_time_original_target;
             segment.stop = ogg->push_seek_time_original_stop;
             segment.time = ogg->push_seek_time_original_target;
-            segment.base = ogg->push_seek_time_original_target;
+            segment.base = ogg->segment.base;
             event = gst_event_new_segment (&segment);
-            gst_event_set_seqnum (event, ogg->push_seek_seqnum);
             ogg->push_state = PUSH_PLAYING;
           } else {
             segment.rate = ogg->segment.rate;
             segment.applied_rate = ogg->segment.applied_rate;
             segment.start = start_time;
+            segment.position = start_time;
             segment.stop = chain->segment_stop;
             segment.time = segment_time;
-            segment.base = segment_time;
+            segment.base = ogg->segment.base;
             event = gst_event_new_segment (&segment);
           }
           GST_PUSH_UNLOCK (ogg);
@@ -1090,9 +1115,10 @@
           segment.rate = ogg->segment.rate;
           segment.applied_rate = ogg->segment.applied_rate;
           segment.start = chain->segment_start;
+          segment.position = chain->segment_start;
           segment.stop = chain->segment_stop;
           segment.time = chain->begin_time;
-          segment.base = chain->begin_time;
+          segment.base = ogg->segment.base;
           event = gst_event_new_segment (&segment);
         }
       }
@@ -1190,6 +1216,64 @@
 }
 
 static void
+gst_ogg_demux_setup_first_granule (GstOggDemux * ogg, GstOggPad * pad,
+    ogg_page * page)
+{
+  /* When we submit a page, we check if we have started tracking granules.
+   * If not, we calculate the granule corresponding to the first packet
+   * on the page. */
+  if (pad->current_granule == -1) {
+    ogg_int64_t granpos = ogg_page_granulepos (page);
+    if (granpos > 0) {
+      ogg_int64_t granule =
+          gst_ogg_stream_granulepos_to_granule (&pad->map, granpos), duration;
+      int packets = ogg_page_packets (page), n;
+      GST_DEBUG_OBJECT (pad,
+          "This page completes %d packets, granule %" G_GINT64_FORMAT, packets,
+          granule);
+      if (packets > 0) {
+        ogg_stream_state os;
+        ogg_packet op;
+        int last_size = pad->map.last_size;
+
+        memcpy (&os, &pad->map.stream, sizeof (os));
+        for (n = 0; n < packets; ++n) {
+          int ret = ogg_stream_packetout (&os, &op);
+          if (ret < 0) {
+            GST_WARNING_OBJECT (pad, "Failed to read packets off first page");
+            granule = -1;
+            break;
+          }
+          if (ret == 0) {
+            GST_WARNING_OBJECT (pad,
+                "Short read getting %d packets off first page", packets);
+            granule = -1;
+            break;
+          }
+          duration = gst_ogg_stream_get_packet_duration (&pad->map, &op);
+          GST_DEBUG_OBJECT (pad, "Packet %d has duration %" G_GINT64_FORMAT, n,
+              duration);
+          granule -= duration;
+        }
+        pad->map.last_size = last_size;
+        if (granule >= 0) {
+          pad->current_granule = granule;
+          GST_INFO_OBJECT (pad, "Starting with first granule %" G_GINT64_FORMAT,
+              granule);
+        } else {
+          pad->current_granule = 0;
+          GST_INFO_OBJECT (pad, "Extrapolated first granule is negative, "
+              "used to clip samples at start");
+        }
+      } else {
+        GST_WARNING_OBJECT (pad,
+            "Ogg page finishing no packets, but a valid granule");
+      }
+    }
+  }
+}
+
+static void
 gst_ogg_demux_setup_bisection_bounds (GstOggDemux * ogg)
 {
   if (ogg->push_last_seek_time >= ogg->push_seek_time_target) {
@@ -1369,22 +1453,19 @@
 
   ogg->push_state = PUSH_PLAYING;
 
-  GST_PUSH_UNLOCK (ogg);
-
-  if (event) {
-    /* If there is one, perform it */
-    gst_ogg_demux_perform_seek_push (ogg, event);
-  } else {
-    /* If there wasn't, seek back at start to start normal playback */
+  /* If there is one, perform it. Otherwise, seek back at start to start
+   * normal playback  */
+  if (!event) {
     GST_INFO_OBJECT (ogg, "Seeking back to 0 after duration check");
     event = gst_event_new_seek (1.0, GST_FORMAT_BYTES,
         GST_SEEK_FLAG_ACCURATE | GST_SEEK_FLAG_FLUSH,
         GST_SEEK_TYPE_SET, 1, GST_SEEK_TYPE_SET, GST_CLOCK_TIME_NONE);
-    if (!gst_pad_push_event (ogg->sinkpad, event)) {
-      GST_WARNING_OBJECT (ogg, "Failed seeking back to start");
-      return GST_FLOW_ERROR;
-    }
   }
+  gst_event_replace (&ogg->seek_event, event);
+  GST_PUSH_UNLOCK (ogg);
+  g_mutex_lock (&ogg->seek_event_mutex);
+  g_cond_broadcast (&ogg->seek_event_cond);
+  g_mutex_unlock (&ogg->seek_event_mutex);
 
   return GST_FLOW_OK;
 }
@@ -1514,7 +1595,6 @@
     GstClockTime t;
     gint64 best = -1;
     GstEvent *sevent;
-    int res;
     gboolean close_enough;
     float seek_quality;
 
@@ -1523,6 +1603,8 @@
       GST_PUSH_UNLOCK (ogg);
       if (ogg_stream_pagein (&pad->map.stream, page) != 0)
         goto choked;
+      if (pad->current_granule == -1)
+        gst_ogg_demux_setup_first_granule (ogg, pad, page);
       return GST_FLOW_SKIP_PUSH;
     }
 
@@ -1542,6 +1624,8 @@
             "Not enough timing info collected for sync, waiting for more");
         if (ogg_stream_pagein (&pad->map.stream, page) != 0)
           goto choked;
+        if (pad->current_granule == -1)
+          gst_ogg_demux_setup_first_granule (ogg, pad, page);
         return GST_FLOW_SKIP_PUSH;
       }
       ogg->push_last_seek_time = sync_time;
@@ -1705,15 +1789,13 @@
           gst_event_new_seek (ogg->push_seek_rate, GST_FORMAT_BYTES,
           ogg->push_seek_flags, GST_SEEK_TYPE_SET, best,
           GST_SEEK_TYPE_NONE, -1);
-      gst_event_set_seqnum (sevent, ogg->push_seek_seqnum);
+      gst_event_set_seqnum (sevent, ogg->seqnum);
 
+      gst_event_replace (&ogg->seek_event, sevent);
       GST_PUSH_UNLOCK (ogg);
-      res = gst_pad_push_event (ogg->sinkpad, sevent);
-      if (!res) {
-        /* We failed to send the seek event, notify the pipeline */
-        GST_ELEMENT_ERROR (ogg, RESOURCE, SEEK, (NULL), ("Failed to seek"));
-        return GST_FLOW_ERROR;
-      }
+      g_mutex_lock (&ogg->seek_event_mutex);
+      g_cond_broadcast (&ogg->seek_event_cond);
+      g_mutex_unlock (&ogg->seek_event_mutex);
       return GST_FLOW_SKIP_PUSH;
     }
 
@@ -1737,6 +1819,36 @@
   }
 }
 
+static void
+gst_ogg_demux_query_duration_push (GstOggDemux * ogg)
+{
+  if (!ogg->pullmode && ogg->push_byte_length == -1) {
+    GstQuery *query;
+    gboolean seekable = FALSE;
+
+    query = gst_query_new_seeking (GST_FORMAT_BYTES);
+    if (gst_pad_peer_query (ogg->sinkpad, query))
+      gst_query_parse_seeking (query, NULL, &seekable, NULL, NULL);
+    gst_query_unref (query);
+
+    if (seekable) {
+      gint64 length = -1;
+      if (!gst_element_query_duration (GST_ELEMENT (ogg), GST_FORMAT_BYTES,
+              &length)
+          || length <= 0) {
+        GST_DEBUG_OBJECT (ogg,
+            "Unable to determine stream size, assuming live, seeking disabled");
+        ogg->push_disable_seeking = TRUE;
+      } else {
+        ogg->push_disable_seeking = FALSE;
+      }
+    } else {
+      GST_DEBUG_OBJECT (ogg, "Stream is not seekable, seeking disabled");
+      ogg->push_disable_seeking = TRUE;
+    }
+  }
+}
+
 /* submit a page to an oggpad, this function will then submit all
  * the packets in the page.
  */
@@ -1775,6 +1887,8 @@
     }
   }
 
+  gst_ogg_demux_query_duration_push (ogg);
+
   /* keep track of time in push mode */
   if (!ogg->pullmode) {
     result = gst_ogg_pad_handle_push_mode_state (pad, page);
@@ -1789,6 +1903,8 @@
 
   if (ogg_stream_pagein (&pad->map.stream, page) != 0)
     goto choked;
+  if (pad->current_granule == -1)
+    gst_ogg_demux_setup_first_granule (ogg, pad, page);
 
   /* flush all packets in the stream layer, this might not give a packet if
    * the page had no packets finishing on the page (npackets == 0). */
@@ -2116,11 +2232,13 @@
 
     stream->start_time = -1;
     stream->map.accumulated_granule = 0;
+    stream->current_granule = -1;
   }
   ogg->building_chain = chain;
   GST_DEBUG_OBJECT (ogg, "Resetting current chain");
   ogg->current_chain = NULL;
   ogg->resync = TRUE;
+  gst_ogg_chain_mark_discont (chain);
 
   ogg->chunk_size = CHUNKSIZE;
 }
@@ -2161,7 +2279,7 @@
           ogg->push_byte_offset = segment.start;
           ogg->push_last_seek_offset = segment.start;
 
-          if (gst_event_get_seqnum (event) == ogg->push_seek_seqnum) {
+          if (gst_event_get_seqnum (event) == ogg->seqnum) {
             GstSeekType stop_type = GST_SEEK_TYPE_NONE;
             if (ogg->push_seek_time_original_stop != -1)
               stop_type = GST_SEEK_TYPE_SET;
@@ -2171,12 +2289,43 @@
                 ogg->push_seek_time_original_stop, &update);
           }
 
+          if (!ogg->pullmode && !(ogg->push_seek_flags & GST_SEEK_FLAG_FLUSH)) {
+            int i;
+            GstOggChain *chain = ogg->current_chain;
+
+            ogg->push_seek_flags = 0;
+            if (!chain) {
+              /* This will happen when we bisect, as we clear the chain when
+                 we do the first seek. On subsequent ones, we just reset the
+                 ogg sync object as we already reset the chain */
+              GST_DEBUG_OBJECT (ogg, "No chain, just resetting ogg sync");
+              ogg_sync_reset (&ogg->sync);
+            } else {
+              /* reset pad push mode seeking state */
+              for (i = 0; i < chain->streams->len; i++) {
+                GstOggPad *pad = g_array_index (chain->streams, GstOggPad *, i);
+                pad->push_kf_time = GST_CLOCK_TIME_NONE;
+                pad->push_sync_time = GST_CLOCK_TIME_NONE;
+              }
+              ogg_sync_reset (&ogg->sync);
+              gst_ogg_demux_reset_streams (ogg);
+            }
+          }
+
+          if (!ogg->pullmode) {
+            if (ogg->seek_event_drop_till == gst_event_get_seqnum (event)) {
+              GST_DEBUG_OBJECT (ogg, "Got event seqnum %u, stopping dropping",
+                  ogg->seek_event_drop_till);
+              ogg->seek_event_drop_till = 0;
+            }
+          }
           GST_PUSH_UNLOCK (ogg);
         } else {
           GST_WARNING_OBJECT (ogg, "unexpected segment format: %s",
               gst_format_get_name (segment.format));
         }
       }
+
       gst_event_unref (event);
       res = TRUE;
       break;
@@ -2204,8 +2353,10 @@
 #endif
       res = gst_ogg_demux_send_event (ogg, event);
       if (ogg->current_chain == NULL) {
-        GST_ELEMENT_ERROR (ogg, STREAM, DEMUX, (NULL),
-            ("can't get first chain"));
+        GST_WARNING_OBJECT (ogg,
+            "EOS while trying to retrieve chain, seeking disabled");
+        ogg->push_disable_seeking = TRUE;
+        res = TRUE;
       }
       break;
     }
@@ -2971,6 +3122,8 @@
   GstFlowReturn ret;
   gint i, pending;
   gint serialno = 0;
+  gboolean found_keyframe = FALSE;
+  GstClockTime ts, first_ts = GST_CLOCK_TIME_NONE;
 
   position = segment->position;
 
@@ -3064,6 +3217,28 @@
       continue;
     }
 
+    /* We have a valid granpos, and we bail out when the time since the
+       first seen time to the time corresponding to this granpos is larger
+       then a threshold, to guard against some streams having large holes
+       (eg, a stream ending early, which would cause seeking after that
+       to fill up a queue for streams still active). */
+    ts = gst_ogg_stream_get_end_time_for_granulepos (&pad->map, granulepos);
+    if (GST_CLOCK_TIME_IS_VALID (ts)) {
+      if (first_ts == GST_CLOCK_TIME_NONE) {
+        GST_WARNING_OBJECT (pad, "Locking on ts %" GST_TIME_FORMAT,
+            GST_TIME_ARGS (ts));
+        first_ts = ts;
+      }
+      if (ts - first_ts > SEEK_GIVE_UP_THRESHOLD) {
+        GST_WARNING_OBJECT (pad,
+            "No data found for %" GST_TIME_FORMAT ", giving up",
+            GST_TIME_ARGS (SEEK_GIVE_UP_THRESHOLD));
+        found_keyframe = FALSE;
+        keytarget = target;
+        break;
+      }
+    }
+
     /* in reverse we want to go past the page with the lower timestamp */
     if (segment->rate < 0.0) {
       /* get time for this pad */
@@ -3101,6 +3276,7 @@
       if (keyframe_time < keytarget) {
         serialno = pad->map.serialno;
         keytarget = keyframe_time;
+        found_keyframe = TRUE;
       }
     }
 
@@ -3114,6 +3290,10 @@
   if (segment->rate < 0.0)
     goto done;
 
+  /* No keyframe found, no need to bisect again, keytarget == target here */
+  if (!found_keyframe)
+    best = 0;
+
   if (keytarget != target) {
     GST_LOG_OBJECT (ogg, "final seek to target %" GST_TIME_FORMAT,
         GST_TIME_ARGS (keytarget));
@@ -3388,7 +3568,6 @@
   /* In push mode, we get to the end of the stream to get the duration */
   gint64 position;
   GstEvent *sevent;
-  gboolean res;
 
   /* A full Ogg page can be almost 64 KB. There's no guarantee that there'll be a
      granpos there, but it's fairly likely */
@@ -3403,16 +3582,11 @@
   /* do not read the last byte */
   sevent = gst_event_new_seek (1.0, GST_FORMAT_BYTES, flags, GST_SEEK_TYPE_SET,
       position, GST_SEEK_TYPE_SET, ogg->push_byte_length - 1);
-  res = gst_pad_push_event (ogg->sinkpad, sevent);
-  if (res) {
-    GST_DEBUG_OBJECT (ogg, "Seek succesful");
-    return TRUE;
-  } else {
-    GST_INFO_OBJECT (ogg, "Seek failed, duration will stay unknown");
-    ogg->push_state = PUSH_PLAYING;
-    ogg->push_disable_seeking = TRUE;
-    return FALSE;
-  }
+  gst_event_replace (&ogg->seek_event, sevent);
+  g_mutex_lock (&ogg->seek_event_mutex);
+  g_cond_broadcast (&ogg->seek_event_cond);
+  g_mutex_unlock (&ogg->seek_event_mutex);
+  return TRUE;
 }
 
 static gboolean
@@ -3435,6 +3609,7 @@
       } else {
         GST_DEBUG_OBJECT (ogg, "File byte length unknown, assuming live");
         ogg->push_disable_seeking = TRUE;
+        gst_object_unref (peer);
         return TRUE;
       }
       res = gst_pad_query_duration (peer, GST_FORMAT_TIME, &length);
@@ -3499,11 +3674,6 @@
   if (stop_type == GST_SEEK_TYPE_NONE)
     stop = -1;
 
-  if (!(flags & GST_SEEK_FLAG_FLUSH)) {
-    GST_DEBUG_OBJECT (ogg, "can only do flushing seeks");
-    goto error;
-  }
-
   GST_DEBUG_OBJECT (ogg, "Push mode seek request: %" GST_TIME_FORMAT,
       GST_TIME_ARGS (start));
 
@@ -3586,7 +3756,7 @@
   ogg->push_offset1 = ogg->push_byte_length - 1;
   ogg->push_time0 = ogg->push_start_time;
   ogg->push_time1 = ogg->push_time_length;
-  ogg->push_seek_seqnum = gst_event_get_seqnum (event);
+  ogg->seqnum = gst_event_get_seqnum (event);
   ogg->push_seek_time_target = start;
   ogg->push_prev_seek_time = GST_CLOCK_TIME_NONE;
   ogg->push_seek_time_original_target = start;
@@ -3595,11 +3765,13 @@
   ogg->seek_secant = FALSE;
   ogg->seek_undershot = FALSE;
 
-  /* reset pad push mode seeking state */
-  for (i = 0; i < chain->streams->len; i++) {
-    GstOggPad *pad = g_array_index (chain->streams, GstOggPad *, i);
-    pad->push_kf_time = GST_CLOCK_TIME_NONE;
-    pad->push_sync_time = GST_CLOCK_TIME_NONE;
+  if (flags & GST_SEEK_FLAG_FLUSH) {
+    /* reset pad push mode seeking state */
+    for (i = 0; i < chain->streams->len; i++) {
+      GstOggPad *pad = g_array_index (chain->streams, GstOggPad *, i);
+      pad->push_kf_time = GST_CLOCK_TIME_NONE;
+      pad->push_sync_time = GST_CLOCK_TIME_NONE;
+    }
   }
 
   GST_DEBUG_OBJECT (ogg,
@@ -3620,8 +3792,11 @@
       start_type, best, GST_SEEK_TYPE_NONE, -1);
   gst_event_set_seqnum (sevent, gst_event_get_seqnum (event));
 
+  gst_event_replace (&ogg->seek_event, sevent);
   GST_PUSH_UNLOCK (ogg);
-  res = gst_pad_push_event (ogg->sinkpad, sevent);
+  g_mutex_lock (&ogg->seek_event_mutex);
+  g_cond_broadcast (&ogg->seek_event_cond);
+  g_mutex_unlock (&ogg->seek_event_mutex);
 
   return res;
 
@@ -4074,8 +4249,12 @@
    * ogg file. */
   gst_ogg_demux_seek (ogg, 0);
   ret = gst_ogg_demux_read_chain (ogg, &chain);
-  if (ret != GST_FLOW_OK)
-    goto no_first_chain;
+  if (ret != GST_FLOW_OK) {
+    if (ret == GST_FLOW_FLUSHING)
+      goto flushing;
+    else
+      goto no_first_chain;
+  }
 
   /* read page from end offset, we use this page to check if its serial
    * number is contained in the first chain. If this is the case then
@@ -4135,6 +4314,11 @@
       gst_ogg_chain_free (chain);
     return ret;
   }
+flushing:
+  {
+    GST_DEBUG_OBJECT (ogg, "Flushing, can't read chain");
+    return GST_FLOW_FLUSHING;
+  }
 }
 
 static void
@@ -4185,7 +4369,7 @@
       segment.start = start;
       segment.stop = chain->segment_stop;
       segment.time = chain->begin_time;
-      segment.base = chain->begin_time;
+      segment.base += chain->begin_time;
       event = gst_event_new_segment (&segment);
       gst_event_set_seqnum (event, ogg->seqnum);
 
@@ -4279,9 +4463,19 @@
   GstOggDemux *ogg;
   gint ret = 0;
   GstFlowReturn result = GST_FLOW_OK;
+  gboolean drop;
 
   ogg = GST_OGG_DEMUX (parent);
 
+  GST_PUSH_LOCK (ogg);
+  drop = (ogg->seek_event_drop_till > 0);
+  GST_PUSH_UNLOCK (ogg);
+  if (drop) {
+    GST_ERROR_OBJECT (ogg, "Dropping buffer because we have a pending seek");
+    gst_buffer_unref (buffer);
+    return GST_FLOW_OK;
+  }
+
   GST_DEBUG_OBJECT (ogg, "enter");
   result = gst_ogg_demux_submit_buffer (ogg, buffer);
   if (result < 0) {
@@ -4442,10 +4636,10 @@
   for (i = 0; i < chain->streams->len; i++) {
     GstOggPad *stream = g_array_index (chain->streams, GstOggPad *, i);
 
-    /* Theoretically, we should be doing this for all streams, but we're only
-     * doing it for known-to-be-sparse streams at the moment in order not to
-     * break things for wrongly-muxed streams (like we used to produce once) */
-    if (stream->map.is_sparse && stream->position != GST_CLOCK_TIME_NONE) {
+    /* Theoretically, we should be doing this for all streams, so we're doing
+     * it, but it might break things break things for wrongly-muxed streams
+     * (like we used to produce once) */
+    if ( /*stream->map.is_sparse && */ stream->position != GST_CLOCK_TIME_NONE) {
 
       /* Does this stream lag? Random threshold of 2 seconds */
       if (GST_CLOCK_DIFF (stream->position, cur) > (2 * GST_SECOND)) {
@@ -4588,6 +4782,55 @@
   }
 }
 
+/* The sink pad task function for push mode.
+ * It just sends any seek events queued by the streaming thread.
+ */
+static gpointer
+gst_ogg_demux_loop_push (GstOggDemux * ogg)
+{
+  GstEvent *event;
+
+  while (1) {
+    g_mutex_lock (&ogg->seek_event_mutex);
+    if (ogg->seek_event_thread_stop) {
+      g_mutex_unlock (&ogg->seek_event_mutex);
+      break;
+    }
+    g_cond_wait (&ogg->seek_event_cond, &ogg->seek_event_mutex);
+    if (ogg->seek_event_thread_stop) {
+      g_mutex_unlock (&ogg->seek_event_mutex);
+      break;
+    }
+    g_mutex_unlock (&ogg->seek_event_mutex);
+
+    GST_PUSH_LOCK (ogg);
+    event = ogg->seek_event;
+    ogg->seek_event = NULL;
+    if (event) {
+      ogg->seek_event_drop_till = gst_event_get_seqnum (event);
+    }
+    GST_PUSH_UNLOCK (ogg);
+
+    if (!event)
+      continue;
+
+    GST_ERROR ("Pushing event %" GST_PTR_FORMAT, event);
+    if (!gst_pad_push_event (ogg->sinkpad, event)) {
+      GST_WARNING_OBJECT (ogg, "Failed to push event");
+      GST_PUSH_LOCK (ogg);
+      if (!ogg->pullmode) {
+        ogg->push_state = PUSH_PLAYING;
+        ogg->push_disable_seeking = TRUE;
+      }
+      GST_PUSH_UNLOCK (ogg);
+    } else {
+      GST_ERROR ("Pushed event ok");
+    }
+  }
+  gst_object_unref (ogg);
+  return NULL;
+}
+
 static void
 gst_ogg_demux_clear_chains (GstOggDemux * ogg)
 {
@@ -4660,6 +4903,22 @@
     case GST_PAD_MODE_PUSH:
       ogg->pullmode = FALSE;
       ogg->resync = FALSE;
+      if (active) {
+        ogg->seek_event_thread_stop = FALSE;
+        g_mutex_init (&ogg->seek_event_mutex);
+        g_cond_init (&ogg->seek_event_cond);
+        ogg->seek_event_thread = g_thread_new ("seek_event_thread",
+            (GThreadFunc) gst_ogg_demux_loop_push, gst_object_ref (ogg));
+      } else {
+        g_mutex_lock (&ogg->seek_event_mutex);
+        ogg->seek_event_thread_stop = TRUE;
+        g_cond_broadcast (&ogg->seek_event_cond);
+        g_mutex_unlock (&ogg->seek_event_mutex);
+        g_thread_join (ogg->seek_event_thread);
+        g_cond_clear (&ogg->seek_event_cond);
+        g_mutex_clear (&ogg->seek_event_mutex);
+        ogg->seek_event_thread = NULL;
+      }
       res = TRUE;
       break;
     case GST_PAD_MODE_PULL:
@@ -4708,25 +4967,10 @@
       ogg->group_id = G_MAXUINT;
 
       ogg->push_disable_seeking = FALSE;
-      if (!ogg->pullmode) {
-        GstPad *peer;
-        if ((peer = gst_pad_get_peer (ogg->sinkpad)) != NULL) {
-          gint64 length = -1;
-          if (!gst_pad_query_duration (peer, GST_FORMAT_BYTES, &length)
-              || length <= 0) {
-            GST_DEBUG_OBJECT (ogg,
-                "Unable to determine stream size, assuming live, seeking disabled");
-            ogg->push_disable_seeking = TRUE;
-          }
-          gst_object_unref (peer);
-        }
-      }
-
+      gst_ogg_demux_query_duration_push (ogg);
       GST_PUSH_UNLOCK (ogg);
       gst_segment_init (&ogg->segment, GST_FORMAT_TIME);
       break;
-    case GST_STATE_CHANGE_PAUSED_TO_PLAYING:
-      break;
     default:
       break;
   }
diff --git a/ext/ogg/gstoggdemux.h b/ext/ogg/gstoggdemux.h
index d679f64..742392f 100644
--- a/ext/ogg/gstoggdemux.h
+++ b/ext/ogg/gstoggdemux.h
@@ -89,6 +89,7 @@
 
   gint64 packetno;
   gint64 current_granule;
+  gint64 prev_granule;
   gint64 keyframe_granule;
 
   GstClockTime start_time;      /* the timestamp of the first sample */
@@ -190,7 +191,6 @@
   gboolean seek_secant;
   gboolean seek_undershot;
   GstClockTime push_prev_seek_time;
-  guint32 push_seek_seqnum;
 
   gint push_bisection_steps[2];
   gint stats_bisection_steps[2];
@@ -200,6 +200,14 @@
   /* ogg stuff */
   ogg_sync_state sync;
   long chunk_size;
+
+  /* Seek events set up by the streaming thread in push mode */
+  GstEvent *seek_event;
+  GThread *seek_event_thread;
+  GMutex seek_event_mutex;
+  GCond seek_event_cond;
+  gboolean seek_event_thread_stop;
+  guint32 seek_event_drop_till;
 };
 
 struct _GstOggDemuxClass
diff --git a/ext/ogg/gstoggmux.c b/ext/ogg/gstoggmux.c
index b4f1816..ded27a2 100644
--- a/ext/ogg/gstoggmux.c
+++ b/ext/ogg/gstoggmux.c
@@ -63,20 +63,6 @@
 #define GST_GP_FORMAT "[gp %8" G_GINT64_FORMAT "]"
 #define GST_GP_CAST(_gp) ((gint64) _gp)
 
-typedef enum
-{
-  GST_OGG_FLAG_BOS = GST_ELEMENT_FLAG_LAST,
-  GST_OGG_FLAG_EOS
-}
-GstOggFlag;
-
-/* OggMux signals and args */
-enum
-{
-  /* FILL ME */
-  LAST_SIGNAL
-};
-
 /* set to 0.5 seconds by default */
 #define DEFAULT_MAX_DELAY       G_GINT64_CONSTANT(500000000)
 #define DEFAULT_MAX_PAGE_DELAY  G_GINT64_CONSTANT(500000000)
@@ -228,8 +214,6 @@
   gst_pad_set_event_function (ogg_mux->srcpad, gst_ogg_mux_handle_src_event);
   gst_element_add_pad (GST_ELEMENT (ogg_mux), ogg_mux->srcpad);
 
-  GST_OBJECT_FLAG_SET (GST_ELEMENT (ogg_mux), GST_OGG_FLAG_BOS);
-
   /* seed random number generator for creation of serial numbers */
   srand (time (NULL));
 
@@ -316,7 +300,7 @@
   GstOggMux *ogg_mux = GST_OGG_MUX (user_data);
   GstOggPadData *ogg_pad = (GstOggPadData *) pad;
 
-  GST_DEBUG_OBJECT (pad, "Got %s event", GST_EVENT_TYPE_NAME (event));
+  GST_DEBUG_OBJECT (pad->pad, "Got %s event", GST_EVENT_TYPE_NAME (event));
 
   switch (GST_EVENT_TYPE (event)) {
     case GST_EVENT_SEGMENT:
@@ -642,14 +626,14 @@
       }
     } else {
       /* We then need to check for a non-negative granulepos */
-      int i;
       gboolean valid = FALSE;
+      GList *l;
 
-      for (i = 0; i < pad->pagebuffers->length; i++) {
-        buf = g_queue_peek_nth (pad->pagebuffers, i);
+      for (l = pad->pagebuffers->head; l != NULL; l = l->next) {
+        buf = l->data;
         /* Here we check the OFFSET_END, which is actually temporarily the
          * granulepos value for this buffer */
-        if (GST_BUFFER_OFFSET_END (buf) != -1) {
+        if (GST_BUFFER_OFFSET_END_IS_VALID (buf)) {
           valid = TRUE;
           break;
         }
@@ -816,7 +800,7 @@
 gst_ogg_mux_decorate_buffer (GstOggMux * ogg_mux, GstOggPadData * pad,
     GstBuffer * buf)
 {
-  GstClockTime time;
+  GstClockTime time, end_time;
   gint64 duration, granule, limit;
   GstClockTime next_time;
   GstClockTimeDiff diff;
@@ -866,6 +850,25 @@
     goto no_granule;
   }
 
+  /* The last packet may have clipped samples. We need to test against
+   * the segment to ensure we do not use a granpos that encompasses those.
+   */
+  end_time =
+      gst_ogg_stream_granule_to_time (&pad->map, pad->next_granule + duration);
+  if (end_time > pad->segment.stop
+      && !GST_CLOCK_TIME_IS_VALID (gst_segment_to_running_time (&pad->segment,
+              GST_FORMAT_TIME, pad->segment.start + end_time))) {
+    gint64 actual_duration =
+        gst_util_uint64_scale_round (pad->segment.stop - time,
+        pad->map.granulerate_n,
+        GST_SECOND * pad->map.granulerate_d);
+    GST_INFO_OBJECT (ogg_mux,
+        "Got clipped last packet of duration %" G_GINT64_FORMAT " (%"
+        G_GINT64_FORMAT " clipped)", actual_duration,
+        duration - actual_duration);
+    duration = actual_duration;
+  }
+
   GST_LOG_OBJECT (pad->collect.pad, "buffer ts %" GST_TIME_FORMAT
       ", duration %" GST_TIME_FORMAT ", granule duration %" G_GINT64_FORMAT,
       GST_TIME_ARGS (time), GST_TIME_ARGS (GST_BUFFER_DURATION (buf)),
@@ -1976,7 +1979,7 @@
     GST_DEBUG_OBJECT (oggpad->collect.pad,
         "oggpad %p eos %d", oggpad, oggpad->eos);
 
-    if (oggpad->eos == FALSE)
+    if (!oggpad->eos)
       return FALSE;
 
     walk = g_slist_next (walk);
diff --git a/ext/pango/Makefile.in b/ext/pango/Makefile.in
index 1085dbc..be830dd 100644
--- a/ext/pango/Makefile.in
+++ b/ext/pango/Makefile.in
@@ -103,7 +103,6 @@
 	$(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-x11.m4 \
 	$(top_srcdir)/common/m4/gst.m4 \
 	$(top_srcdir)/common/m4/gtk-doc.m4 \
 	$(top_srcdir)/common/m4/introspection.m4 \
@@ -292,6 +291,8 @@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_2_0_CFLAGS = @GIO_UNIX_2_0_CFLAGS@
+GIO_UNIX_2_0_LIBS = @GIO_UNIX_2_0_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
@@ -321,6 +322,8 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
+GST_NET_CFLAGS = @GST_NET_CFLAGS@
+GST_NET_LIBS = @GST_NET_LIBS@
 GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
 GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
@@ -348,7 +351,6 @@
 GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
 GTK_X11_LIBS = @GTK_X11_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
-HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -452,13 +454,12 @@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-XMKMF = @XMKMF@
+XSHM_CFLAGS = @XSHM_CFLAGS@
 XSHM_LIBS = @XSHM_LIBS@
+XVIDEO_CFLAGS = @XVIDEO_CFLAGS@
 XVIDEO_LIBS = @XVIDEO_LIBS@
 X_CFLAGS = @X_CFLAGS@
-X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
-X_PRE_LIBS = @X_PRE_LIBS@
 ZLIB_CFLAGS = @ZLIB_CFLAGS@
 ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
diff --git a/ext/pango/gstbasetextoverlay.c b/ext/pango/gstbasetextoverlay.c
index 60c5eb2..a300f32 100644
--- a/ext/pango/gstbasetextoverlay.c
+++ b/ext/pango/gstbasetextoverlay.c
@@ -89,7 +89,6 @@
  *  - use proper strides and offset for I420
  *  - if text is wider than the video picture, it does not get
  *    clipped properly during blitting (if wrapping is disabled)
- *  - make 'shading_value' a property (or enum:  light/normal/dark/verydark)?
  */
 
 GST_DEBUG_CATEGORY (pango_debug);
@@ -114,9 +113,7 @@
 #define DEFAULT_PROP_VERTICAL_RENDER  FALSE
 #define DEFAULT_PROP_COLOR      0xffffffff
 #define DEFAULT_PROP_OUTLINE_COLOR 0xff000000
-
-/* make a property of me */
-#define DEFAULT_SHADING_VALUE    -80
+#define DEFAULT_PROP_SHADING_VALUE    80
 
 #define MINIMUM_OUTLINE_OFFSET 1.0
 #define DEFAULT_SCALE_BASIS    640
@@ -126,6 +123,7 @@
   PROP_0,
   PROP_TEXT,
   PROP_SHADING,
+  PROP_SHADING_VALUE,
   PROP_HALIGNMENT,
   PROP_VALIGNMENT,
   PROP_XPAD,
@@ -310,9 +308,11 @@
     const GValue * value, GParamSpec * pspec);
 static void gst_base_text_overlay_get_property (GObject * object, guint prop_id,
     GValue * value, GParamSpec * pspec);
+
 static void
 gst_base_text_overlay_adjust_values_with_fontdesc (GstBaseTextOverlay * overlay,
     PangoFontDescription * desc);
+static gboolean gst_base_text_overlay_can_handle_caps (GstCaps * incaps);
 
 GType
 gst_base_text_overlay_get_type (void)
@@ -401,6 +401,11 @@
       g_param_spec_boolean ("shaded-background", "shaded background",
           "Whether to shade the background under the text area",
           DEFAULT_PROP_SHADING, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+  g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_SHADING_VALUE,
+      g_param_spec_uint ("shading-value", "background shading value",
+          "Shading value to apply if shaded-background is true", 1, 255,
+          DEFAULT_PROP_SHADING_VALUE,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
   g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_VALIGNMENT,
       g_param_spec_enum ("valignment", "vertical alignment",
           "Vertical alignment of the text", GST_TYPE_BASE_TEXT_OVERLAY_VALIGN,
@@ -456,7 +461,7 @@
           "Pango font description of font to be used for rendering. "
           "See documentation of pango_font_description_from_string "
           "for syntax.", DEFAULT_PROP_FONT_DESC,
-          G_PARAM_WRITABLE | G_PARAM_STATIC_STRINGS));
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
   /**
    * GstBaseTextOverlay:color:
    *
@@ -629,7 +634,7 @@
   overlay->wrap_mode = DEFAULT_PROP_WRAP_MODE;
 
   overlay->want_shading = DEFAULT_PROP_SHADING;
-  overlay->shading_value = DEFAULT_SHADING_VALUE;
+  overlay->shading_value = DEFAULT_PROP_SHADING_VALUE;
   overlay->silent = DEFAULT_PROP_SILENT;
   overlay->wait_text = DEFAULT_PROP_WAIT_TEXT;
   overlay->auto_adjust_size = DEFAULT_PROP_AUTO_ADJUST_SIZE;
@@ -708,46 +713,114 @@
   return TRUE;
 }
 
-/* FIXME: upstream nego (e.g. when the video window is resized) */
-
 /* only negotiate/query video overlay composition support for now */
 static gboolean
-gst_base_text_overlay_negotiate (GstBaseTextOverlay * overlay)
+gst_base_text_overlay_negotiate (GstBaseTextOverlay * overlay, GstCaps * caps)
 {
-  GstCaps *target;
   GstQuery *query;
   gboolean attach = FALSE;
+  gboolean caps_has_meta = TRUE;
+  gboolean ret;
+  GstCapsFeatures *f;
+  GstCaps *original_caps;
+  gboolean original_has_meta = FALSE;
+  gboolean allocation_ret = TRUE;
 
   GST_DEBUG_OBJECT (overlay, "performing negotiation");
 
-  target = gst_pad_get_current_caps (overlay->srcpad);
+  if (!caps)
+    caps = gst_pad_get_current_caps (overlay->video_sinkpad);
+  else
+    gst_caps_ref (caps);
 
-  if (!target || gst_caps_is_empty (target))
+  if (!caps || gst_caps_is_empty (caps))
     goto no_format;
 
-  /* find supported meta */
-  query = gst_query_new_allocation (target, TRUE);
+  original_caps = caps;
 
-  if (!gst_pad_peer_query (overlay->srcpad, query)) {
-    /* no problem, we use the query defaults */
-    GST_DEBUG_OBJECT (overlay, "ALLOCATION query failed");
+  /* Try to use the overlay meta if possible */
+  f = gst_caps_get_features (caps, 0);
+
+  /* if the caps doesn't have the overlay meta, we query if downstream
+   * accepts it before trying the version without the meta
+   * If upstream already is using the meta then we can only use it */
+  if (!f
+      || !gst_caps_features_contains (f,
+          GST_CAPS_FEATURE_META_GST_VIDEO_OVERLAY_COMPOSITION)) {
+    GstCaps *overlay_caps;
+
+    /* In this case we added the meta, but we can work without it
+     * so preserve the original caps so we can use it as a fallback */
+    overlay_caps = gst_caps_copy (caps);
+
+    f = gst_caps_get_features (overlay_caps, 0);
+    gst_caps_features_add (f,
+        GST_CAPS_FEATURE_META_GST_VIDEO_OVERLAY_COMPOSITION);
+
+    ret = gst_pad_peer_query_accept_caps (overlay->srcpad, overlay_caps);
+    GST_DEBUG_OBJECT (overlay, "Downstream accepts the overlay meta: %d", ret);
+    if (ret) {
+      gst_caps_unref (caps);
+      caps = overlay_caps;
+
+    } else {
+      /* fallback to the original */
+      gst_caps_unref (overlay_caps);
+      caps_has_meta = FALSE;
+    }
+  } else {
+    original_has_meta = TRUE;
   }
+  GST_DEBUG_OBJECT (overlay, "Using caps %" GST_PTR_FORMAT, caps);
+  ret = gst_pad_set_caps (overlay->srcpad, caps);
 
-  if (gst_query_find_allocation_meta (query,
-          GST_VIDEO_OVERLAY_COMPOSITION_META_API_TYPE, NULL))
-    attach = TRUE;
+  if (ret) {
+    /* find supported meta */
+    query = gst_query_new_allocation (caps, FALSE);
+
+    if (!gst_pad_peer_query (overlay->srcpad, query)) {
+      /* no problem, we use the query defaults */
+      GST_DEBUG_OBJECT (overlay, "ALLOCATION query failed");
+      allocation_ret = FALSE;
+    }
+
+    if (caps_has_meta && gst_query_find_allocation_meta (query,
+            GST_VIDEO_OVERLAY_COMPOSITION_META_API_TYPE, NULL))
+      attach = TRUE;
+
+    gst_query_unref (query);
+  }
 
   overlay->attach_compo_to_buffer = attach;
 
-  gst_query_unref (query);
-  gst_caps_unref (target);
+  if (!allocation_ret && overlay->video_flushing) {
+    ret = FALSE;
+  } else if (original_caps && !original_has_meta && !attach) {
+    if (caps_has_meta) {
+      /* Some elements (fakesink) claim to accept the meta on caps but won't
+         put it in the allocation query result, this leads below
+         check to fail. Prevent this by removing the meta from caps */
+      gst_caps_unref (caps);
+      caps = gst_caps_ref (original_caps);
+      ret = gst_pad_set_caps (overlay->srcpad, caps);
+      if (ret && !gst_base_text_overlay_can_handle_caps (caps))
+        ret = FALSE;
+    }
+  }
 
-  return TRUE;
+  if (!ret) {
+    GST_DEBUG_OBJECT (overlay, "negotiation failed, schedule reconfigure");
+    gst_pad_mark_reconfigure (overlay->srcpad);
+  }
+
+  gst_caps_unref (caps);
+
+  return ret;
 
 no_format:
   {
-    if (target)
-      gst_caps_unref (target);
+    if (caps)
+      gst_caps_unref (caps);
     return FALSE;
   }
 }
@@ -775,29 +848,30 @@
   if (!gst_video_info_from_caps (&info, caps))
     goto invalid_caps;
 
+  /* Render again if size have changed */
+  if (GST_VIDEO_INFO_WIDTH (&info) != GST_VIDEO_INFO_WIDTH (&overlay->info) ||
+      GST_VIDEO_INFO_HEIGHT (&info) != GST_VIDEO_INFO_HEIGHT (&overlay->info))
+    overlay->need_render = TRUE;
+
   overlay->info = info;
   overlay->format = GST_VIDEO_INFO_FORMAT (&info);
   overlay->width = GST_VIDEO_INFO_WIDTH (&info);
   overlay->height = GST_VIDEO_INFO_HEIGHT (&info);
 
-  ret = gst_pad_set_caps (overlay->srcpad, caps);
+  ret = gst_base_text_overlay_negotiate (overlay, caps);
 
-  if (ret) {
-    GST_BASE_TEXT_OVERLAY_LOCK (overlay);
-    g_mutex_lock (GST_BASE_TEXT_OVERLAY_GET_CLASS (overlay)->pango_lock);
-    gst_base_text_overlay_negotiate (overlay);
-
-    if (!overlay->attach_compo_to_buffer &&
-        !gst_base_text_overlay_can_handle_caps (caps)) {
-      GST_DEBUG_OBJECT (overlay, "unsupported caps %" GST_PTR_FORMAT, caps);
-      ret = FALSE;
-    }
-
-    gst_base_text_overlay_update_wrap_mode (overlay);
-    g_mutex_unlock (GST_BASE_TEXT_OVERLAY_GET_CLASS (overlay)->pango_lock);
-    GST_BASE_TEXT_OVERLAY_UNLOCK (overlay);
+  GST_BASE_TEXT_OVERLAY_LOCK (overlay);
+  g_mutex_lock (GST_BASE_TEXT_OVERLAY_GET_CLASS (overlay)->pango_lock);
+  if (!overlay->attach_compo_to_buffer &&
+      !gst_base_text_overlay_can_handle_caps (caps)) {
+    GST_DEBUG_OBJECT (overlay, "unsupported caps %" GST_PTR_FORMAT, caps);
+    ret = FALSE;
   }
 
+  gst_base_text_overlay_update_wrap_mode (overlay);
+  g_mutex_unlock (GST_BASE_TEXT_OVERLAY_GET_CLASS (overlay)->pango_lock);
+  GST_BASE_TEXT_OVERLAY_UNLOCK (overlay);
+
   return ret;
 
   /* ERRORS */
@@ -904,6 +978,9 @@
       g_mutex_unlock (GST_BASE_TEXT_OVERLAY_GET_CLASS (overlay)->pango_lock);
       overlay->need_render = TRUE;
       break;
+    case PROP_SHADING_VALUE:
+      overlay->shading_value = g_value_get_uint (value);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -975,6 +1052,23 @@
     case PROP_OUTLINE_COLOR:
       g_value_set_uint (value, overlay->outline_color);
       break;
+    case PROP_SHADING_VALUE:
+      g_value_set_uint (value, overlay->shading_value);
+      break;
+    case PROP_FONT_DESC:
+    {
+      const PangoFontDescription *desc;
+
+      g_mutex_lock (GST_BASE_TEXT_OVERLAY_GET_CLASS (overlay)->pango_lock);
+      desc = pango_layout_get_font_description (overlay->layout);
+      if (!desc)
+        g_value_set_string (value, "");
+      else {
+        g_value_take_string (value, pango_font_description_to_string (desc));
+      }
+      g_mutex_unlock (GST_BASE_TEXT_OVERLAY_GET_CLASS (overlay)->pango_lock);
+      break;
+    }
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -1017,60 +1111,19 @@
 gst_base_text_overlay_src_event (GstPad * pad, GstObject * parent,
     GstEvent * event)
 {
-  gboolean ret = FALSE;
-  GstBaseTextOverlay *overlay = NULL;
+  GstBaseTextOverlay *overlay;
+  gboolean ret;
 
   overlay = GST_BASE_TEXT_OVERLAY (parent);
 
-  switch (GST_EVENT_TYPE (event)) {
-    case GST_EVENT_SEEK:{
-      GstSeekFlags flags;
-
-      /* We don't handle seek if we have not text pad */
-      if (!overlay->text_linked) {
-        GST_DEBUG_OBJECT (overlay, "seek received, pushing upstream");
-        ret = gst_pad_push_event (overlay->video_sinkpad, event);
-        goto beach;
-      }
-
-      GST_DEBUG_OBJECT (overlay, "seek received, driving from here");
-
-      gst_event_parse_seek (event, NULL, NULL, &flags, NULL, NULL, NULL, NULL);
-
-      /* Flush downstream, only for flushing seek */
-      if (flags & GST_SEEK_FLAG_FLUSH)
-        gst_pad_push_event (overlay->srcpad, gst_event_new_flush_start ());
-
-      /* Mark ourself as flushing, unblock chains */
-      GST_BASE_TEXT_OVERLAY_LOCK (overlay);
-      overlay->video_flushing = TRUE;
-      overlay->text_flushing = TRUE;
-      gst_base_text_overlay_pop_text (overlay);
-      GST_BASE_TEXT_OVERLAY_UNLOCK (overlay);
-
-      /* Seek on each sink pad */
-      gst_event_ref (event);
-      ret = gst_pad_push_event (overlay->video_sinkpad, event);
-      if (ret) {
-        ret = gst_pad_push_event (overlay->text_sinkpad, event);
-      } else {
-        gst_event_unref (event);
-      }
-      break;
-    }
-    default:
-      if (overlay->text_linked) {
-        gst_event_ref (event);
-        ret = gst_pad_push_event (overlay->video_sinkpad, event);
-        gst_pad_push_event (overlay->text_sinkpad, event);
-      } else {
-        ret = gst_pad_push_event (overlay->video_sinkpad, event);
-      }
-      break;
+  if (overlay->text_linked) {
+    gst_event_ref (event);
+    ret = gst_pad_push_event (overlay->video_sinkpad, event);
+    gst_pad_push_event (overlay->text_sinkpad, event);
+  } else {
+    ret = gst_pad_push_event (overlay->video_sinkpad, event);
   }
 
-beach:
-
   return ret;
 }
 
@@ -1187,16 +1240,8 @@
     GST_DEBUG_OBJECT (pad, "peer caps  %" GST_PTR_FORMAT, peer_caps);
 
     if (gst_caps_is_any (peer_caps)) {
-
       /* if peer returns ANY caps, return filtered src pad template caps */
       caps = gst_caps_copy (gst_pad_get_pad_template_caps (srcpad));
-      if (filter) {
-        GstCaps *intersection = gst_caps_intersect_full (filter, caps,
-            GST_CAPS_INTERSECT_FIRST);
-        gst_caps_unref (caps);
-        caps = intersection;
-      }
-
     } else {
 
       /* duplicate caps which contains the composition into one version with
@@ -1212,14 +1257,13 @@
   } else {
     /* no peer, our padtemplate is enough then */
     caps = gst_pad_get_pad_template_caps (pad);
-    if (filter) {
-      GstCaps *intersection;
+  }
 
-      intersection =
-          gst_caps_intersect_full (filter, caps, GST_CAPS_INTERSECT_FIRST);
-      gst_caps_unref (caps);
-      caps = intersection;
-    }
+  if (filter) {
+    GstCaps *intersection = gst_caps_intersect_full (filter, caps,
+        GST_CAPS_INTERSECT_FIRST);
+    gst_caps_unref (caps);
+    caps = intersection;
   }
 
   GST_DEBUG_OBJECT (overlay, "returning  %" GST_PTR_FORMAT, caps);
@@ -1261,12 +1305,6 @@
 
       /* if peer returns ANY caps, return filtered sink pad template caps */
       caps = gst_caps_copy (gst_pad_get_pad_template_caps (sinkpad));
-      if (filter) {
-        GstCaps *intersection = gst_caps_intersect_full (filter, caps,
-            GST_CAPS_INTERSECT_FIRST);
-        gst_caps_unref (caps);
-        caps = intersection;
-      }
 
     } else {
 
@@ -1283,16 +1321,16 @@
   } else {
     /* no peer, our padtemplate is enough then */
     caps = gst_pad_get_pad_template_caps (pad);
-    if (filter) {
-      GstCaps *intersection;
-
-      intersection =
-          gst_caps_intersect_full (filter, caps, GST_CAPS_INTERSECT_FIRST);
-      gst_caps_unref (caps);
-      caps = intersection;
-    }
   }
 
+  if (filter) {
+    GstCaps *intersection;
+
+    intersection =
+        gst_caps_intersect_full (filter, caps, GST_CAPS_INTERSECT_FIRST);
+    gst_caps_unref (caps);
+    caps = intersection;
+  }
   GST_DEBUG_OBJECT (overlay, "returning  %" GST_PTR_FORMAT, caps);
 
   return caps;
@@ -1507,9 +1545,6 @@
 
   cairo_set_operator (cr, CAIRO_OPERATOR_OVER);
 
-  if (overlay->want_shading)
-    cairo_paint_with_alpha (cr, overlay->shading_value);
-
   /* apply transformations */
   cairo_set_matrix (cr, &cairo_matrix);
 
@@ -1598,7 +1633,7 @@
 
   for (i = y0; i < y1; ++i) {
     for (j = x0; j < x1; ++j) {
-      gint y = dest_ptr[(i * dest_stride) + j] + overlay->shading_value;
+      gint y = dest_ptr[(i * dest_stride) + j] - overlay->shading_value;
 
       dest_ptr[(i * dest_stride) + j] = CLAMP (y, 0, 255);
     }
@@ -1633,7 +1668,7 @@
       gint y_pos;
 
       y_pos = (i * dest_stride) + j * pixel_stride;
-      y = dest_ptr[y_pos] + overlay->shading_value;
+      y = dest_ptr[y_pos] - overlay->shading_value;
 
       dest_ptr[y_pos] = CLAMP (y, 0, 255);
     }
@@ -1658,7 +1693,7 @@
 
       y_pos = (i * 4 * overlay->width) + j * 4;
       for (k = 0; k < 4; k++) {
-        y = dest_ptr[y_pos + k] + overlay->shading_value;
+        y = dest_ptr[y_pos + k] - overlay->shading_value;
         dest_ptr[y_pos + k] = CLAMP (y, 0, 255);
       }
     }
@@ -1674,7 +1709,7 @@
   gint y, x, stride, shading_val, tmp;
   guint8 *p;
 
-  shading_val = overlay->shading_value;
+  shading_val = -overlay->shading_value;
   stride = GST_VIDEO_FRAME_PLANE_STRIDE (frame, 0);
 
   for (y = y0; y < y1; ++y) {
@@ -1698,7 +1733,7 @@
   gint y, x, stride, shading_val, tmp;
   guint8 *p;
 
-  shading_val = overlay->shading_value;
+  shading_val = -overlay->shading_value;
   stride = GST_VIDEO_FRAME_PLANE_STRIDE (frame, 0);
 
   /* IYU1: packed 4:1:1 YUV (Cb-Y0-Y1-Cr-Y2-Y3 ...) */
@@ -1734,7 +1769,7 @@
       gint y, y_pos, k;\
       y_pos = (i * 4 * overlay->width) + j * 4;\
       for (k = OFFSET; k < 3+OFFSET; k++) {\
-        y = dest_ptr[y_pos + k] + overlay->shading_value;\
+        y = dest_ptr[y_pos + k] - overlay->shading_value;\
         dest_ptr[y_pos + k] = CLAMP (y, 0, 255);\
       }\
     }\
@@ -1861,7 +1896,7 @@
     goto done;
 
   if (gst_pad_check_reconfigure (overlay->srcpad))
-    gst_base_text_overlay_negotiate (overlay);
+    gst_base_text_overlay_negotiate (overlay, NULL);
 
   video_frame = gst_buffer_make_writable (video_frame);
 
@@ -2307,22 +2342,14 @@
    * duration (we only use those estimated values internally though, we
    * don't want to set bogus values on the buffer itself) */
   if (stop == -1) {
-    GstCaps *caps;
-    GstStructure *s;
-    gint fps_num, fps_denom;
-
-    /* FIXME, store this in setcaps */
-    caps = gst_pad_get_current_caps (pad);
-    s = gst_caps_get_structure (caps, 0);
-    if (gst_structure_get_fraction (s, "framerate", &fps_num, &fps_denom) &&
-        fps_num && fps_denom) {
+    if (overlay->info.fps_n && overlay->info.fps_d) {
       GST_DEBUG_OBJECT (overlay, "estimating duration based on framerate");
-      stop = start + gst_util_uint64_scale_int (GST_SECOND, fps_denom, fps_num);
+      stop = start + gst_util_uint64_scale_int (GST_SECOND,
+          overlay->info.fps_d, overlay->info.fps_n);
     } else {
       GST_LOG_OBJECT (overlay, "no duration, assuming minimal duration");
       stop = start + 1;         /* we need to assume some interval */
     }
-    gst_caps_unref (caps);
   }
 
   gst_object_sync_values (GST_OBJECT (overlay), GST_BUFFER_TIMESTAMP (buffer));
diff --git a/ext/pango/gstbasetextoverlay.h b/ext/pango/gstbasetextoverlay.h
index e31977b..4eac45e 100644
--- a/ext/pango/gstbasetextoverlay.h
+++ b/ext/pango/gstbasetextoverlay.h
@@ -1,3 +1,27 @@
+/* GStreamer
+ * Copyright (C) <1999> Erik Walthinsen <omega@cse.ogi.edu>
+ * Copyright (C) <2003> David Schleef <ds@schleef.org>
+ * Copyright (C) <2006> Julien Moutte <julien@moutte.net>
+ * Copyright (C) <2006> Zeeshan Ali <zeeshan.ali@nokia.com>
+ * Copyright (C) <2006-2008> Tim-Philipp Müller <tim centricular net>
+ * Copyright (C) <2009> Young-Ho Cha <ganadist@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
 #ifndef __GST_BASE_TEXT_OVERLAY_H__
 #define __GST_BASE_TEXT_OVERLAY_H__
 
diff --git a/ext/pango/gsttimeoverlay.c b/ext/pango/gsttimeoverlay.c
index ffd6124..535202f 100644
--- a/ext/pango/gsttimeoverlay.c
+++ b/ext/pango/gsttimeoverlay.c
@@ -1,6 +1,6 @@
 /* GStreamer
- * Copyright (C) <1999> Erik Walthinsen <omega@cse.ogi.edu>
- * Copyright (C) <2005> Tim-Philipp Müller <tim@centricular.net>
+ * Copyright (C) 1999 Erik Walthinsen <omega@cse.ogi.edu>
+ * Copyright (C) 2005-2014 Tim-Philipp Müller <tim@centricular.net>
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -50,9 +50,40 @@
 
 #include "gsttimeoverlay.h"
 
+#define DEFAULT_TIME_LINE GST_TIME_OVERLAY_TIME_LINE_BUFFER_TIME
+
+enum
+{
+  PROP_0,
+  PROP_TIME_LINE
+};
+
 #define gst_time_overlay_parent_class parent_class
 G_DEFINE_TYPE (GstTimeOverlay, gst_time_overlay, GST_TYPE_BASE_TEXT_OVERLAY);
 
+static void gst_time_overlay_set_property (GObject * object, guint prop_id,
+    const GValue * value, GParamSpec * pspec);
+static void gst_time_overlay_get_property (GObject * object, guint prop_id,
+    GValue * value, GParamSpec * pspec);
+
+#define GST_TYPE_TIME_OVERLAY_TIME_LINE (gst_time_overlay_time_line_type())
+static GType
+gst_time_overlay_time_line_type (void)
+{
+  static GType time_line_type = 0;
+  static const GEnumValue modes[] = {
+    {GST_TIME_OVERLAY_TIME_LINE_BUFFER_TIME, "buffer-time", "buffer-time"},
+    {GST_TIME_OVERLAY_TIME_LINE_STREAM_TIME, "stream-time", "stream-time"},
+    {GST_TIME_OVERLAY_TIME_LINE_RUNNING_TIME, "running-time", "running-time"},
+    {0, NULL, NULL},
+  };
+
+  if (!time_line_type) {
+    time_line_type = g_enum_register_static ("GstTimeOverlayTimeLine", modes);
+  }
+  return time_line_type;
+}
+
 static gchar *
 gst_time_overlay_render_time (GstTimeOverlay * overlay, GstClockTime time)
 {
@@ -74,21 +105,40 @@
 gst_time_overlay_get_text (GstBaseTextOverlay * overlay,
     GstBuffer * video_frame)
 {
-  GstClockTime time = GST_BUFFER_TIMESTAMP (video_frame);
+  GstTimeOverlayTimeLine time_line;
+  GstClockTime ts, ts_buffer;
+  GstSegment *segment = &overlay->segment;
   gchar *time_str, *txt, *ret;
 
   overlay->need_render = TRUE;
 
-  if (!GST_CLOCK_TIME_IS_VALID (time)) {
+  ts_buffer = GST_BUFFER_TIMESTAMP (video_frame);
+
+  if (!GST_CLOCK_TIME_IS_VALID (ts_buffer)) {
     GST_DEBUG ("buffer without valid timestamp");
     return g_strdup ("");
   }
 
-  GST_DEBUG ("buffer with timestamp %" GST_TIME_FORMAT, GST_TIME_ARGS (time));
+  GST_DEBUG ("buffer with timestamp %" GST_TIME_FORMAT,
+      GST_TIME_ARGS (ts_buffer));
+
+  time_line = g_atomic_int_get (&GST_TIME_OVERLAY_CAST (overlay)->time_line);
+  switch (time_line) {
+    case GST_TIME_OVERLAY_TIME_LINE_STREAM_TIME:
+      ts = gst_segment_to_stream_time (segment, GST_FORMAT_TIME, ts_buffer);
+      break;
+    case GST_TIME_OVERLAY_TIME_LINE_RUNNING_TIME:
+      ts = gst_segment_to_running_time (segment, GST_FORMAT_TIME, ts_buffer);
+      break;
+    case GST_TIME_OVERLAY_TIME_LINE_BUFFER_TIME:
+    default:
+      ts = ts_buffer;
+      break;
+  }
 
   txt = g_strdup (overlay->default_text);
 
-  time_str = gst_time_overlay_render_time (GST_TIME_OVERLAY (overlay), time);
+  time_str = gst_time_overlay_render_time (GST_TIME_OVERLAY (overlay), ts);
   if (txt != NULL && *txt != '\0') {
     ret = g_strdup_printf ("%s %s", txt, time_str);
   } else {
@@ -107,11 +157,13 @@
 {
   GstElementClass *gstelement_class;
   GstBaseTextOverlayClass *gsttextoverlay_class;
+  GObjectClass *gobject_class;
   PangoContext *context;
   PangoFontDescription *font_description;
 
   gsttextoverlay_class = (GstBaseTextOverlayClass *) klass;
   gstelement_class = (GstElementClass *) klass;
+  gobject_class = (GObjectClass *) klass;
 
   gst_element_class_set_static_metadata (gstelement_class, "Time overlay",
       "Filter/Editor/Video",
@@ -120,6 +172,14 @@
 
   gsttextoverlay_class->get_text = gst_time_overlay_get_text;
 
+  gobject_class->set_property = gst_time_overlay_set_property;
+  gobject_class->get_property = gst_time_overlay_get_property;
+
+  g_object_class_install_property (gobject_class, PROP_TIME_LINE,
+      g_param_spec_enum ("time-mode", "Time Mode", "What time to show",
+          GST_TYPE_TIME_OVERLAY_TIME_LINE, DEFAULT_TIME_LINE,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
   g_mutex_lock (gsttextoverlay_class->pango_lock);
   context = gsttextoverlay_class->pango_context;
 
@@ -147,4 +207,38 @@
 
   textoverlay->valign = GST_BASE_TEXT_OVERLAY_VALIGN_TOP;
   textoverlay->halign = GST_BASE_TEXT_OVERLAY_HALIGN_LEFT;
+
+  overlay->time_line = DEFAULT_TIME_LINE;
+}
+
+static void
+gst_time_overlay_set_property (GObject * object, guint prop_id,
+    const GValue * value, GParamSpec * pspec)
+{
+  GstTimeOverlay *overlay = GST_TIME_OVERLAY (object);
+
+  switch (prop_id) {
+    case PROP_TIME_LINE:
+      g_atomic_int_set (&overlay->time_line, g_value_get_enum (value));
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
+}
+
+static void
+gst_time_overlay_get_property (GObject * object, guint prop_id,
+    GValue * value, GParamSpec * pspec)
+{
+  GstTimeOverlay *overlay = GST_TIME_OVERLAY (object);
+
+  switch (prop_id) {
+    case PROP_TIME_LINE:
+      g_value_set_enum (value, g_atomic_int_get (&overlay->time_line));
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
 }
diff --git a/ext/pango/gsttimeoverlay.h b/ext/pango/gsttimeoverlay.h
index 3e37709..f895200 100644
--- a/ext/pango/gsttimeoverlay.h
+++ b/ext/pango/gsttimeoverlay.h
@@ -36,10 +36,17 @@
   (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_TIME_OVERLAY))
 #define GST_IS_TIME_OVERLAY_CLASS(klass) \
   (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_TIME_OVERLAY))
+#define GST_TIME_OVERLAY_CAST(obj) ((GstTimeOverlay*)(obj))
 
 typedef struct _GstTimeOverlay GstTimeOverlay;
 typedef struct _GstTimeOverlayClass GstTimeOverlayClass;
 
+typedef enum {
+  GST_TIME_OVERLAY_TIME_LINE_BUFFER_TIME,
+  GST_TIME_OVERLAY_TIME_LINE_STREAM_TIME,
+  GST_TIME_OVERLAY_TIME_LINE_RUNNING_TIME
+} GstTimeOverlayTimeLine;
+
 /**
  * GstTimeOverlay:
  *
@@ -47,6 +54,9 @@
  */
 struct _GstTimeOverlay {
   GstBaseTextOverlay textoverlay;
+
+  /*< private >*/
+  GstTimeOverlayTimeLine time_line;
 };
 
 struct _GstTimeOverlayClass {
diff --git a/ext/theora/Makefile.in b/ext/theora/Makefile.in
index efbda5e..957610c 100644
--- a/ext/theora/Makefile.in
+++ b/ext/theora/Makefile.in
@@ -103,7 +103,6 @@
 	$(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-x11.m4 \
 	$(top_srcdir)/common/m4/gst.m4 \
 	$(top_srcdir)/common/m4/gtk-doc.m4 \
 	$(top_srcdir)/common/m4/introspection.m4 \
@@ -292,6 +291,8 @@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_2_0_CFLAGS = @GIO_UNIX_2_0_CFLAGS@
+GIO_UNIX_2_0_LIBS = @GIO_UNIX_2_0_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
@@ -321,6 +322,8 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
+GST_NET_CFLAGS = @GST_NET_CFLAGS@
+GST_NET_LIBS = @GST_NET_LIBS@
 GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
 GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
@@ -348,7 +351,6 @@
 GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
 GTK_X11_LIBS = @GTK_X11_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
-HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -452,13 +454,12 @@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-XMKMF = @XMKMF@
+XSHM_CFLAGS = @XSHM_CFLAGS@
 XSHM_LIBS = @XSHM_LIBS@
+XVIDEO_CFLAGS = @XVIDEO_CFLAGS@
 XVIDEO_LIBS = @XVIDEO_LIBS@
 X_CFLAGS = @X_CFLAGS@
-X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
-X_PRE_LIBS = @X_PRE_LIBS@
 ZLIB_CFLAGS = @ZLIB_CFLAGS@
 ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
diff --git a/ext/theora/gsttheoradec.c b/ext/theora/gsttheoradec.c
index 11ecffd..5adb057 100644
--- a/ext/theora/gsttheoradec.c
+++ b/ext/theora/gsttheoradec.c
@@ -418,7 +418,7 @@
   }
   /* theora has:
    *
-   *  width/height : dimension of the encoded frame 
+   *  width/height : dimension of the encoded frame
    *  pic_width/pic_height : dimension of the visible part
    *  pic_x/pic_y : offset in encoded frame where visible part starts
    */
@@ -507,6 +507,8 @@
       break;
   }
 
+  dec->uncropped_info = state->info;
+
   gst_video_decoder_negotiate (GST_VIDEO_DECODER (dec));
 
   dec->have_header = TRUE;
@@ -559,6 +561,62 @@
   }
 }
 
+#define MIN_NUM_HEADERS 3
+static GstFlowReturn
+theoradec_handle_header_caps (GstTheoraDec * dec)
+{
+  GstFlowReturn result = GST_CUSTOM_FLOW_DROP;
+  GstCaps *caps;
+  GstStructure *s = NULL;
+  const GValue *array = NULL;
+
+  GST_DEBUG_OBJECT (dec, "Looking for Theora headers in caps");
+  caps = gst_pad_get_current_caps (GST_VIDEO_DECODER_SINK_PAD (dec));
+  if (caps)
+    s = gst_caps_get_structure (caps, 0);
+  if (s)
+    array = gst_structure_get_value (s, "streamheader");
+
+  if (caps)
+    gst_caps_unref (caps);
+
+  if (array && (gst_value_array_get_size (array) >= MIN_NUM_HEADERS)) {
+    const GValue *value = NULL;
+    GstBuffer *buf = NULL;
+    gint i = 0;
+
+    while (result == GST_CUSTOM_FLOW_DROP
+        && i < gst_value_array_get_size (array)) {
+      value = gst_value_array_get_value (array, i);
+      buf = gst_value_get_buffer (value);
+      if (!buf)
+        goto null_buffer;
+      GST_LOG_OBJECT (dec, "Submitting header packet");
+      result = theora_dec_decode_buffer (dec, buf, NULL);
+      i++;
+    }
+  } else
+    goto array_error;
+
+done:
+  return (result !=
+      GST_CUSTOM_FLOW_DROP ? GST_FLOW_NOT_NEGOTIATED : GST_FLOW_OK);
+
+  /* ERRORS */
+array_error:
+  {
+    GST_WARNING_OBJECT (dec, "streamheader array not found");
+    result = GST_FLOW_ERROR;
+    goto done;
+  }
+null_buffer:
+  {
+    GST_WARNING_OBJECT (dec, "streamheader with null buffer received");
+    result = GST_FLOW_ERROR;
+    goto done;
+  }
+}
+
 /* Allocate buffer and copy image data into Y444 format */
 static GstFlowReturn
 theora_handle_image (GstTheoraDec * dec, th_ycbcr_buffer buf,
@@ -638,7 +696,7 @@
   GST_CAT_TRACE_OBJECT (GST_CAT_PERFORMANCE, dec,
       "doing unavoidable video frame copy");
 
-  if (G_UNLIKELY (!gst_video_frame_map (&vframe, &dec->output_state->info,
+  if (G_UNLIKELY (!gst_video_frame_map (&vframe, &dec->uncropped_info,
               frame->output_buffer, GST_MAP_WRITE)))
     goto invalid_frame;
 
@@ -683,10 +741,13 @@
   GstFlowReturn result;
   ogg_int64_t gp;
 
-  if (G_UNLIKELY (!dec->have_header))
-    goto not_initialized;
+  if (G_UNLIKELY (!dec->have_header)) {
+    result = theoradec_handle_header_caps (dec);
+    if (result != GST_FLOW_OK)
+      goto not_initialized;
+  }
 
-  /* the second most significant bit of the first data byte is cleared 
+  /* the second most significant bit of the first data byte is cleared
    * for keyframes. We can only check it if it's not a zero-length packet. */
   keyframe = packet->bytes && ((packet->packet[0] & 0x40) == 0);
   if (G_UNLIKELY (keyframe)) {
@@ -782,19 +843,15 @@
   /* switch depending on packet type. A zero byte packet is always a data
    * packet; we don't dereference it in that case. */
   if (packet.bytes && packet.packet[0] & 0x80) {
+    /* header packets are not meant to be displayed - return FLOW_DROP */
     if (dec->have_header) {
       GST_WARNING_OBJECT (GST_OBJECT (dec), "Ignoring header");
-      GST_VIDEO_CODEC_FRAME_FLAG_SET (frame,
-          GST_VIDEO_CODEC_FRAME_FLAG_DECODE_ONLY);
       result = GST_CUSTOM_FLOW_DROP;
       goto done;
     }
-    result = theora_handle_header_packet (dec, &packet);
-    /* header packets are not meant to be displayed */
-    /* FIXME : This is a temporary hack. The proper fix would be to
-     * not call _finish_frame() for these types of packets */
-    GST_VIDEO_CODEC_FRAME_FLAG_SET (frame,
-        GST_VIDEO_CODEC_FRAME_FLAG_DECODE_ONLY);
+    if ((result = theora_handle_header_packet (dec, &packet)) != GST_FLOW_OK)
+      goto done;
+    result = GST_CUSTOM_FLOW_DROP;
   } else {
     result = theora_handle_data_packet (dec, &packet, frame);
   }
@@ -857,14 +914,18 @@
   }
 
   if (dec->can_crop) {
-    GstVideoInfo info = state->info;
+    GstVideoInfo *info = &dec->uncropped_info;
     GstCaps *caps;
 
-    /* Calculate uncropped size */
-    gst_video_info_set_format (&info, info.finfo->format, dec->info.frame_width,
+    GST_LOG_OBJECT (decoder, "Using GstVideoCropMeta, uncropped wxh = %dx%d",
+        info->width, info->height);
+
+    gst_video_info_set_format (info, info->finfo->format, dec->info.frame_width,
         dec->info.frame_height);
-    size = MAX (size, info.size);
-    caps = gst_video_info_to_caps (&info);
+
+    /* Calculate uncropped size */
+    size = MAX (size, info->size);
+    caps = gst_video_info_to_caps (info);
     gst_buffer_pool_config_set_params (config, caps, size, min, max);
     gst_caps_unref (caps);
   }
diff --git a/ext/theora/gsttheoradec.h b/ext/theora/gsttheoradec.h
index 1ca5583..2445ad3 100644
--- a/ext/theora/gsttheoradec.h
+++ b/ext/theora/gsttheoradec.h
@@ -77,6 +77,7 @@
   gint telemetry_bits;
 
   gboolean can_crop;
+  GstVideoInfo uncropped_info;
 };
 
 struct _GstTheoraDecClass
diff --git a/ext/vorbis/Makefile.in b/ext/vorbis/Makefile.in
index 219ef54..defb4eb 100644
--- a/ext/vorbis/Makefile.in
+++ b/ext/vorbis/Makefile.in
@@ -105,7 +105,6 @@
 	$(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-x11.m4 \
 	$(top_srcdir)/common/m4/gst.m4 \
 	$(top_srcdir)/common/m4/gtk-doc.m4 \
 	$(top_srcdir)/common/m4/introspection.m4 \
@@ -318,6 +317,8 @@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_2_0_CFLAGS = @GIO_UNIX_2_0_CFLAGS@
+GIO_UNIX_2_0_LIBS = @GIO_UNIX_2_0_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
@@ -347,6 +348,8 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
+GST_NET_CFLAGS = @GST_NET_CFLAGS@
+GST_NET_LIBS = @GST_NET_LIBS@
 GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
 GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
@@ -374,7 +377,6 @@
 GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
 GTK_X11_LIBS = @GTK_X11_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
-HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -478,13 +480,12 @@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-XMKMF = @XMKMF@
+XSHM_CFLAGS = @XSHM_CFLAGS@
 XSHM_LIBS = @XSHM_LIBS@
+XVIDEO_CFLAGS = @XVIDEO_CFLAGS@
 XVIDEO_LIBS = @XVIDEO_LIBS@
 X_CFLAGS = @X_CFLAGS@
-X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
-X_PRE_LIBS = @X_PRE_LIBS@
 ZLIB_CFLAGS = @ZLIB_CFLAGS@
 ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
diff --git a/ext/vorbis/gstvorbisdec.c b/ext/vorbis/gstvorbisdec.c
index 3a5a334..5741053 100644
--- a/ext/vorbis/gstvorbisdec.c
+++ b/ext/vorbis/gstvorbisdec.c
@@ -270,7 +270,7 @@
 {
   gint res;
 
-  g_assert (vd->initialized == FALSE);
+  g_assert (!vd->initialized);
 
 #ifdef USE_TREMOLO
   if (G_UNLIKELY ((res = vorbis_dsp_init (&vd->vd, &vd->vi))))
diff --git a/ext/vorbis/gstvorbisdeclib.c b/ext/vorbis/gstvorbisdeclib.c
index cf18958..75f6ea7 100644
--- a/ext/vorbis/gstvorbisdeclib.c
+++ b/ext/vorbis/gstvorbisdeclib.c
@@ -81,6 +81,28 @@
 #endif
 }
 
+static void
+copy_samples_no_reorder (vorbis_sample_t * out, vorbis_sample_t ** in,
+    guint samples, gint channels)
+{
+#ifdef GST_VORBIS_DEC_SEQUENTIAL
+  gint i;
+
+  for (i = 0; i < channels; i++) {
+    memcpy (out, in[i], samples * sizeof (float));
+    out += samples;
+  }
+#else
+  gint i, j;
+
+  for (j = 0; j < samples; j++) {
+    for (i = 0; i < channels; i++) {
+      *out++ = in[i][j];
+    }
+  }
+#endif
+}
+
 CopySampleFunc
 gst_vorbis_get_copy_sample_func (gint channels)
 {
@@ -93,9 +115,17 @@
     case 2:
       f = copy_samples_s;
       break;
-    default:
+    case 3:
+    case 4:
+    case 5:
+    case 6:
+    case 7:
+    case 8:
       f = copy_samples;
       break;
+    default:
+      f = copy_samples_no_reorder;
+      break;
   }
 
   return f;
diff --git a/ext/vorbis/gstvorbisenc.c b/ext/vorbis/gstvorbisenc.c
index 824390e..8dec477 100644
--- a/ext/vorbis/gstvorbisenc.c
+++ b/ext/vorbis/gstvorbisenc.c
@@ -616,16 +616,17 @@
 /*
  * (really really) FIXME: move into core (dixit tpm)
  */
-/**
+/*
  * _gst_caps_set_buffer_array:
- * @caps: a #GstCaps
+ * @caps: (transfer full): a #GstCaps
  * @field: field in caps to set
  * @buf: header buffers
  *
  * Adds given buffers to an array of buffers set as the given @field
  * on the given @caps.  List of buffer arguments must be NULL-terminated.
  *
- * Returns: input caps with a streamheader field added, or NULL if some error
+ * Returns: (transfer full): input caps with a streamheader field added, or NULL
+ *     if some error occurred
  */
 static GstCaps *
 _gst_caps_set_buffer_array (GstCaps * caps, const gchar * field,
@@ -799,6 +800,27 @@
     while (vorbis_bitrate_flushpacket (&vorbisenc->vd, &op)) {
       GstBuffer *buf;
 
+      if (op.e_o_s) {
+        GstAudioEncoder *enc = GST_AUDIO_ENCODER (vorbisenc);
+        GstClockTime duration;
+
+        GST_DEBUG_OBJECT (vorbisenc, "Got EOS packet from libvorbis");
+        GST_AUDIO_ENCODER_STREAM_LOCK (enc);
+        if (!GST_CLOCK_TIME_IS_VALID (enc->output_segment.stop)) {
+          GST_DEBUG_OBJECT (vorbisenc,
+              "Output segment has no end time, setting");
+          duration =
+              gst_util_uint64_scale (op.granulepos, GST_SECOND,
+              vorbisenc->frequency);
+          enc->output_segment.stop = enc->output_segment.start + duration;
+          GST_DEBUG_OBJECT (enc, "new output segment %" GST_SEGMENT_FORMAT,
+              &enc->output_segment);
+          gst_pad_push_event (GST_AUDIO_ENCODER_SRC_PAD (enc),
+              gst_event_new_segment (&enc->output_segment));
+        }
+        GST_AUDIO_ENCODER_STREAM_UNLOCK (enc);
+      }
+
       GST_LOG_OBJECT (vorbisenc, "pushing out a data packet");
       buf =
           gst_audio_encoder_allocate_output_buffer (GST_AUDIO_ENCODER
diff --git a/ext/vorbis/gstvorbisparse.c b/ext/vorbis/gstvorbisparse.c
index 57b792c..6cf8510 100644
--- a/ext/vorbis/gstvorbisparse.c
+++ b/ext/vorbis/gstvorbisparse.c
@@ -227,7 +227,7 @@
   /* get the headers into the caps, passing them to vorbis as we go */
   caps = gst_caps_new_simple ("audio/x-vorbis",
       "rate", G_TYPE_INT, parse->sample_rate,
-      "channels", G_TYPE_INT, parse->channels, NULL);;
+      "channels", G_TYPE_INT, parse->channels, NULL);
   vorbis_parse_set_header_on_caps (parse, caps);
   GST_DEBUG_OBJECT (parse, "here are the caps: %" GST_PTR_FORMAT, caps);
   gst_pad_set_caps (parse->srcpad, caps);
diff --git a/gst-libs/Makefile.in b/gst-libs/Makefile.in
index 887ab9d..f4ae586 100644
--- a/gst-libs/Makefile.in
+++ b/gst-libs/Makefile.in
@@ -100,7 +100,6 @@
 	$(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-x11.m4 \
 	$(top_srcdir)/common/m4/gst.m4 \
 	$(top_srcdir)/common/m4/gtk-doc.m4 \
 	$(top_srcdir)/common/m4/introspection.m4 \
@@ -261,6 +260,8 @@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_2_0_CFLAGS = @GIO_UNIX_2_0_CFLAGS@
+GIO_UNIX_2_0_LIBS = @GIO_UNIX_2_0_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
@@ -290,6 +291,8 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
+GST_NET_CFLAGS = @GST_NET_CFLAGS@
+GST_NET_LIBS = @GST_NET_LIBS@
 GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
 GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
@@ -317,7 +320,6 @@
 GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
 GTK_X11_LIBS = @GTK_X11_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
-HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -421,13 +423,12 @@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-XMKMF = @XMKMF@
+XSHM_CFLAGS = @XSHM_CFLAGS@
 XSHM_LIBS = @XSHM_LIBS@
+XVIDEO_CFLAGS = @XVIDEO_CFLAGS@
 XVIDEO_LIBS = @XVIDEO_LIBS@
 X_CFLAGS = @X_CFLAGS@
-X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
-X_PRE_LIBS = @X_PRE_LIBS@
 ZLIB_CFLAGS = @ZLIB_CFLAGS@
 ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
diff --git a/gst-libs/gst/Makefile.in b/gst-libs/gst/Makefile.in
index fd881b3..3df41d4 100644
--- a/gst-libs/gst/Makefile.in
+++ b/gst-libs/gst/Makefile.in
@@ -102,7 +102,6 @@
 	$(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-x11.m4 \
 	$(top_srcdir)/common/m4/gst.m4 \
 	$(top_srcdir)/common/m4/gtk-doc.m4 \
 	$(top_srcdir)/common/m4/introspection.m4 \
@@ -264,6 +263,8 @@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_2_0_CFLAGS = @GIO_UNIX_2_0_CFLAGS@
+GIO_UNIX_2_0_LIBS = @GIO_UNIX_2_0_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
@@ -293,6 +294,8 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
+GST_NET_CFLAGS = @GST_NET_CFLAGS@
+GST_NET_LIBS = @GST_NET_LIBS@
 GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
 GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
@@ -320,7 +323,6 @@
 GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
 GTK_X11_LIBS = @GTK_X11_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
-HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -424,13 +426,12 @@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-XMKMF = @XMKMF@
+XSHM_CFLAGS = @XSHM_CFLAGS@
 XSHM_LIBS = @XSHM_LIBS@
+XVIDEO_CFLAGS = @XVIDEO_CFLAGS@
 XVIDEO_LIBS = @XVIDEO_LIBS@
 X_CFLAGS = @X_CFLAGS@
-X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
-X_PRE_LIBS = @X_PRE_LIBS@
 ZLIB_CFLAGS = @ZLIB_CFLAGS@
 ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
diff --git a/gst-libs/gst/allocators/Makefile.am b/gst-libs/gst/allocators/Makefile.am
index c550ab0..1ff3800 100644
--- a/gst-libs/gst/allocators/Makefile.am
+++ b/gst-libs/gst/allocators/Makefile.am
@@ -6,9 +6,10 @@
 	allocators.h \
 	gstdmabuf.h
 
-noinst_HEADERS =
+noinst_HEADERS = gstfdmemory.h
 
 libgstallocators_@GST_API_VERSION@_la_SOURCES = \
+	gstfdmemory.c \
 	gstdmabuf.c 
 
 libgstallocators_@GST_API_VERSION@_la_LIBADD = $(GST_LIBS) $(LIBM)
diff --git a/gst-libs/gst/allocators/Makefile.in b/gst-libs/gst/allocators/Makefile.in
index dfcd0d0..2bee7ed 100644
--- a/gst-libs/gst/allocators/Makefile.in
+++ b/gst-libs/gst/allocators/Makefile.in
@@ -106,7 +106,6 @@
 	$(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-x11.m4 \
 	$(top_srcdir)/common/m4/gst.m4 \
 	$(top_srcdir)/common/m4/gtk-doc.m4 \
 	$(top_srcdir)/common/m4/introspection.m4 \
@@ -162,6 +161,7 @@
 libgstallocators_@GST_API_VERSION@_la_DEPENDENCIES =  \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
 am_libgstallocators_@GST_API_VERSION@_la_OBJECTS =  \
+	libgstallocators_@GST_API_VERSION@_la-gstfdmemory.lo \
 	libgstallocators_@GST_API_VERSION@_la-gstdmabuf.lo
 libgstallocators_@GST_API_VERSION@_la_OBJECTS =  \
 	$(am_libgstallocators_@GST_API_VERSION@_la_OBJECTS)
@@ -219,6 +219,24 @@
 HEADERS = $(libgstallocators_@GST_API_VERSION@_include_HEADERS) \
 	$(noinst_HEADERS)
 am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -279,6 +297,8 @@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_2_0_CFLAGS = @GIO_UNIX_2_0_CFLAGS@
+GIO_UNIX_2_0_LIBS = @GIO_UNIX_2_0_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
@@ -308,6 +328,8 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
+GST_NET_CFLAGS = @GST_NET_CFLAGS@
+GST_NET_LIBS = @GST_NET_LIBS@
 GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
 GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
@@ -335,7 +357,6 @@
 GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
 GTK_X11_LIBS = @GTK_X11_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
-HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -439,13 +460,12 @@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-XMKMF = @XMKMF@
+XSHM_CFLAGS = @XSHM_CFLAGS@
 XSHM_LIBS = @XSHM_LIBS@
+XVIDEO_CFLAGS = @XVIDEO_CFLAGS@
 XVIDEO_LIBS = @XVIDEO_LIBS@
 X_CFLAGS = @X_CFLAGS@
-X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
-X_PRE_LIBS = @X_PRE_LIBS@
 ZLIB_CFLAGS = @ZLIB_CFLAGS@
 ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
@@ -516,8 +536,9 @@
 	allocators.h \
 	gstdmabuf.h
 
-noinst_HEADERS = 
+noinst_HEADERS = gstfdmemory.h
 libgstallocators_@GST_API_VERSION@_la_SOURCES = \
+	gstfdmemory.c \
 	gstdmabuf.c 
 
 libgstallocators_@GST_API_VERSION@_la_LIBADD = $(GST_LIBS) $(LIBM)
@@ -615,6 +636,7 @@
 	-rm -f *.tab.c
 
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstallocators_@GST_API_VERSION@_la-gstdmabuf.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstallocators_@GST_API_VERSION@_la-gstfdmemory.Plo@am__quote@
 
 .c.o:
 @am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
@@ -640,6 +662,13 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
+libgstallocators_@GST_API_VERSION@_la-gstfdmemory.lo: gstfdmemory.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) $(libgstallocators_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstallocators_@GST_API_VERSION@_la-gstfdmemory.lo -MD -MP -MF $(DEPDIR)/libgstallocators_@GST_API_VERSION@_la-gstfdmemory.Tpo -c -o libgstallocators_@GST_API_VERSION@_la-gstfdmemory.lo `test -f 'gstfdmemory.c' || echo '$(srcdir)/'`gstfdmemory.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstallocators_@GST_API_VERSION@_la-gstfdmemory.Tpo $(DEPDIR)/libgstallocators_@GST_API_VERSION@_la-gstfdmemory.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstfdmemory.c' object='libgstallocators_@GST_API_VERSION@_la-gstfdmemory.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) $(libgstallocators_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstallocators_@GST_API_VERSION@_la-gstfdmemory.lo `test -f 'gstfdmemory.c' || echo '$(srcdir)/'`gstfdmemory.c
+
 libgstallocators_@GST_API_VERSION@_la-gstdmabuf.lo: gstdmabuf.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) $(libgstallocators_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstallocators_@GST_API_VERSION@_la-gstdmabuf.lo -MD -MP -MF $(DEPDIR)/libgstallocators_@GST_API_VERSION@_la-gstdmabuf.Tpo -c -o libgstallocators_@GST_API_VERSION@_la-gstdmabuf.lo `test -f 'gstdmabuf.c' || echo '$(srcdir)/'`gstdmabuf.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstallocators_@GST_API_VERSION@_la-gstdmabuf.Tpo $(DEPDIR)/libgstallocators_@GST_API_VERSION@_la-gstdmabuf.Plo
@@ -715,12 +744,58 @@
 	@list='$(libgstallocators_@GST_API_VERSION@_include_HEADERS)'; test -n "$(libgstallocators_@GST_API_VERSION@_includedir)" || list=; \
 	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
 	dir='$(DESTDIR)$(libgstallocators_@GST_API_VERSION@_includedir)'; $(am__uninstall_files_from_dir)
-tags TAGS:
 
-ctags CTAGS:
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
 
-cscope cscopelist:
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	set x; \
+	here=`pwd`; \
+	$(am__define_uniq_tagged_files); \
+	shift; \
+	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  if test $$# -gt 0; then \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      "$$@" $$unique; \
+	  else \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      $$unique; \
+	  fi; \
+	fi
+ctags: ctags-am
 
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
+	test -z "$(CTAGS_ARGS)$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && $(am__cd) $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
 
 distdir: $(DISTFILES)
 	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
@@ -798,7 +873,8 @@
 distclean: distclean-am
 	-rm -rf ./$(DEPDIR)
 	-rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic
+distclean-am: clean-am distclean-compile distclean-generic \
+	distclean-tags
 
 dvi: dvi-am
 
@@ -866,21 +942,21 @@
 
 .MAKE: install-am install-strip
 
-.PHONY: all all-am check check-am clean clean-generic \
-	clean-libLTLIBRARIES clean-libtool cscopelist-am ctags-am \
-	distclean distclean-compile distclean-generic \
-	distclean-libtool 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-girDATA \
-	install-html install-html-am install-info install-info-am \
-	install-libLTLIBRARIES \
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libLTLIBRARIES clean-libtool cscopelist-am ctags \
+	ctags-am distclean distclean-compile distclean-generic \
+	distclean-libtool distclean-tags distdir dvi dvi-am html \
+	html-am info info-am install install-am install-data \
+	install-data-am install-dvi install-dvi-am install-exec \
+	install-exec-am install-girDATA install-html install-html-am \
+	install-info install-info-am install-libLTLIBRARIES \
 	install-libgstallocators_@GST_API_VERSION@_includeHEADERS \
 	install-man install-pdf install-pdf-am install-ps \
 	install-ps-am install-strip install-typelibsDATA installcheck \
 	installcheck-am installdirs maintainer-clean \
 	maintainer-clean-generic mostlyclean mostlyclean-compile \
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags-am uninstall uninstall-am uninstall-girDATA \
+	tags tags-am uninstall uninstall-am uninstall-girDATA \
 	uninstall-libLTLIBRARIES \
 	uninstall-libgstallocators_@GST_API_VERSION@_includeHEADERS \
 	uninstall-typelibsDATA
diff --git a/gst-libs/gst/allocators/gstdmabuf.c b/gst-libs/gst/allocators/gstdmabuf.c
index 9cf05cb..84e0c78 100644
--- a/gst-libs/gst/allocators/gstdmabuf.c
+++ b/gst-libs/gst/allocators/gstdmabuf.c
@@ -22,6 +22,7 @@
 #include "config.h"
 #endif
 
+#include "gstfdmemory.h"
 #include "gstdmabuf.h"
 
 /**
@@ -37,154 +38,9 @@
 #include <unistd.h>
 #endif
 
-/*
- * GstDmaBufMemory
- * @fd: the file descriptor associated this memory
- * @data: mmapped address
- * @mmapping_flags: mmapping flags
- * @mmap_count: mmapping counter
- * @lock: a mutex to make mmapping thread safe
- */
-typedef struct
-{
-  GstMemory mem;
-
-  gint fd;
-  gpointer data;
-  gint mmapping_flags;
-  gint mmap_count;
-  GMutex lock;
-} GstDmaBufMemory;
-
 GST_DEBUG_CATEGORY_STATIC (dmabuf_debug);
 #define GST_CAT_DEFAULT dmabuf_debug
 
-static void
-gst_dmabuf_allocator_free (GstAllocator * allocator, GstMemory * gmem)
-{
-#ifdef HAVE_MMAP
-  GstDmaBufMemory *mem = (GstDmaBufMemory *) gmem;
-
-  if (mem->data) {
-    g_warning (G_STRLOC ":%s: Freeing memory %p still mapped", G_STRFUNC, mem);
-    munmap ((void *) mem->data, gmem->maxsize);
-  }
-  if (mem->fd >= 0)
-    close (mem->fd);
-  g_mutex_clear (&mem->lock);
-  g_slice_free (GstDmaBufMemory, mem);
-  GST_DEBUG ("%p: freed", mem);
-#endif
-}
-
-static gpointer
-gst_dmabuf_mem_map (GstMemory * gmem, gsize maxsize, GstMapFlags flags)
-{
-#ifdef HAVE_MMAP
-  GstDmaBufMemory *mem = (GstDmaBufMemory *) gmem;
-  gint prot;
-  gpointer ret = NULL;
-
-  if (gmem->parent)
-    return gst_dmabuf_mem_map (gmem->parent, maxsize, flags);
-
-  g_mutex_lock (&mem->lock);
-
-  prot = flags & GST_MAP_READ ? PROT_READ : 0;
-  prot |= flags & GST_MAP_WRITE ? PROT_WRITE : 0;
-
-  /* do not mmap twice the buffer */
-  if (mem->data) {
-    /* only return address if mapping flags are a subset
-     * of the previous flags */
-    if ((mem->mmapping_flags & prot) == prot) {
-      ret = mem->data;
-      mem->mmap_count++;
-    }
-
-    goto out;
-  }
-
-  if (mem->fd != -1) {
-    mem->data = mmap (0, gmem->maxsize, prot, MAP_SHARED, mem->fd, 0);
-    if (mem->data == MAP_FAILED) {
-      mem->data = NULL;
-      GST_ERROR ("%p: fd %d: mmap failed: %s", mem, mem->fd,
-          g_strerror (errno));
-      goto out;
-    }
-  }
-
-  GST_DEBUG ("%p: fd %d: mapped %p", mem, mem->fd, mem->data);
-
-  if (mem->data) {
-    mem->mmapping_flags = prot;
-    mem->mmap_count++;
-    ret = mem->data;
-  }
-
-out:
-  g_mutex_unlock (&mem->lock);
-  return ret;
-#else /* !HAVE_MMAP */
-  return FALSE;
-#endif
-}
-
-static void
-gst_dmabuf_mem_unmap (GstMemory * gmem)
-{
-#ifdef HAVE_MMAP
-  GstDmaBufMemory *mem = (GstDmaBufMemory *) gmem;
-
-  if (gmem->parent)
-    return gst_dmabuf_mem_unmap (gmem->parent);
-
-  g_mutex_lock (&mem->lock);
-
-  if (mem->data && !(--mem->mmap_count)) {
-    munmap ((void *) mem->data, gmem->maxsize);
-    mem->data = NULL;
-    mem->mmapping_flags = 0;
-    GST_DEBUG ("%p: fd %d unmapped", mem, mem->fd);
-  }
-  g_mutex_unlock (&mem->lock);
-#endif
-}
-
-static GstMemory *
-gst_dmabuf_mem_share (GstMemory * gmem, gssize offset, gssize size)
-{
-#ifdef HAVE_MMAP
-  GstDmaBufMemory *mem = (GstDmaBufMemory *) gmem;
-  GstDmaBufMemory *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 = gmem->maxsize - offset;
-
-  sub = g_slice_new0 (GstDmaBufMemory);
-  /* 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);
-
-  sub->fd = -1;
-  g_mutex_init (&sub->lock);
-
-  return GST_MEMORY_CAST (sub);
-#else /* !HAVE_MMAP */
-  return NULL;
-#endif
-}
-
 typedef struct
 {
   GstAllocator parent;
@@ -208,8 +64,7 @@
 
   allocator_class = (GstAllocatorClass *) klass;
 
-  allocator_class->alloc = NULL;
-  allocator_class->free = gst_dmabuf_allocator_free;
+  __gst_fd_memory_class_init_allocator (allocator_class);
 }
 
 static void
@@ -217,11 +72,7 @@
 {
   GstAllocator *alloc = GST_ALLOCATOR_CAST (allocator);
 
-  alloc->mem_type = GST_ALLOCATOR_DMABUF;
-  alloc->mem_map = gst_dmabuf_mem_map;
-  alloc->mem_unmap = gst_dmabuf_mem_unmap;
-  alloc->mem_share = gst_dmabuf_mem_share;
-  /* Use the default, fallback copy function */
+  __gst_fd_memory_init_allocator (alloc, GST_ALLOCATOR_DMABUF);
 
   GST_OBJECT_FLAG_SET (allocator, GST_ALLOCATOR_FLAG_CUSTOM_ALLOC);
 }
@@ -263,26 +114,13 @@
 gst_dmabuf_allocator_alloc (GstAllocator * allocator, gint fd, gsize size)
 {
 #ifdef HAVE_MMAP
-  GstDmaBufMemory *mem;
-
   if (!GST_IS_DMABUF_ALLOCATOR (allocator)) {
     GST_WARNING ("it isn't the correct allocator for dmabuf");
     return NULL;
   }
 
   GST_DEBUG ("alloc from allocator %p", allocator);
-
-  mem = g_slice_new0 (GstDmaBufMemory);
-
-  gst_memory_init (GST_MEMORY_CAST (mem), 0, allocator, NULL, size, 0, 0, size);
-
-  mem->fd = fd;
-  g_mutex_init (&mem->lock);
-
-  GST_DEBUG ("%p: fd: %d size %" G_GSIZE_FORMAT, mem, mem->fd,
-      mem->mem.maxsize);
-
-  return (GstMemory *) mem;
+  return __gst_fd_memory_new (allocator, fd, size, GST_FD_MEMORY_FLAG_NONE);
 #else /* !HAVE_MMAP */
   return NULL;
 #endif
@@ -294,18 +132,20 @@
  *
  * Return the file descriptor associated with @mem.
  *
- * Returns: the file descriptor associated with the memory, or -1
+ * Returns: the file descriptor associated with the memory, or -1.  The file
+ *     descriptor is still owned by the GstMemory.  Use dup to take a copy
+ *     if you intend to use it beyond the lifetime of this GstMemory.
  *
  * Since: 1.2
  */
 gint
 gst_dmabuf_memory_get_fd (GstMemory * mem)
 {
-  GstDmaBufMemory *dbmem = (GstDmaBufMemory *) mem;
+  GstFdMemory *fdmem = (GstFdMemory *) mem;
 
   g_return_val_if_fail (gst_is_dmabuf_memory (mem), -1);
 
-  return dbmem->fd;
+  return fdmem->fd;
 }
 
 /**
diff --git a/gst-libs/gst/allocators/gstfdmemory.c b/gst-libs/gst/allocators/gstfdmemory.c
new file mode 100644
index 0000000..9a5c5b3
--- /dev/null
+++ b/gst-libs/gst/allocators/gstfdmemory.c
@@ -0,0 +1,235 @@
+/* GStreamer fd backed memory
+ * Copyright (C) 2013 Linaro SA
+ * Author: Benjamin Gaignard <benjamin.gaignard@linaro.org> for Linaro.
+ *
+ * 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 mordetails.
+ *
+ * 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 "gstfdmemory.h"
+
+#ifdef HAVE_MMAP
+#include <sys/mman.h>
+#include <unistd.h>
+#endif
+
+static void
+gst_fd_mem_free (GstAllocator * allocator, GstMemory * gmem)
+{
+#ifdef HAVE_MMAP
+  GstFdMemory *mem = (GstFdMemory *) gmem;
+
+  if (mem->data) {
+    if (!(mem->flags & GST_FD_MEMORY_FLAG_KEEP_MAPPED))
+      g_warning (G_STRLOC ":%s: Freeing memory %p still mapped", G_STRFUNC,
+          mem);
+
+    munmap ((void *) mem->data, gmem->maxsize);
+  }
+  if (mem->fd >= 0 && gmem->parent == NULL)
+    close (mem->fd);
+  g_mutex_clear (&mem->lock);
+  g_slice_free (GstFdMemory, mem);
+  GST_DEBUG ("%p: freed", mem);
+#endif
+}
+
+static gpointer
+gst_fd_mem_map (GstMemory * gmem, gsize maxsize, GstMapFlags flags)
+{
+#ifdef HAVE_MMAP
+  GstFdMemory *mem = (GstFdMemory *) gmem;
+  gint prot;
+  gpointer ret = NULL;
+
+  if (gmem->parent)
+    return gst_fd_mem_map (gmem->parent, maxsize, flags);
+
+  prot = flags & GST_MAP_READ ? PROT_READ : 0;
+  prot |= flags & GST_MAP_WRITE ? PROT_WRITE : 0;
+
+  g_mutex_lock (&mem->lock);
+  /* do not mmap twice the buffer */
+  if (mem->data) {
+    /* only return address if mapping flags are a subset
+     * of the previous flags */
+    if ((mem->mmapping_flags & prot) == prot) {
+      ret = mem->data;
+      mem->mmap_count++;
+    }
+
+    goto out;
+  }
+
+  if (mem->fd != -1) {
+    gint flags;
+
+    flags =
+        (mem->flags & GST_FD_MEMORY_FLAG_MAP_PRIVATE) ? MAP_PRIVATE :
+        MAP_SHARED;
+
+    mem->data = mmap (0, gmem->maxsize, prot, flags, mem->fd, 0);
+    if (mem->data == MAP_FAILED) {
+      mem->data = NULL;
+      GST_ERROR ("%p: fd %d: mmap failed: %s", mem, mem->fd,
+          g_strerror (errno));
+      goto out;
+    }
+  }
+
+  GST_DEBUG ("%p: fd %d: mapped %p", mem, mem->fd, mem->data);
+
+  if (mem->data) {
+    mem->mmapping_flags = prot;
+    mem->mmap_count++;
+    ret = mem->data;
+  }
+
+out:
+  g_mutex_unlock (&mem->lock);
+  return ret;
+#else /* !HAVE_MMAP */
+  return FALSE;
+#endif
+}
+
+static void
+gst_fd_mem_unmap (GstMemory * gmem)
+{
+#ifdef HAVE_MMAP
+  GstFdMemory *mem = (GstFdMemory *) gmem;
+
+  if (gmem->parent)
+    return gst_fd_mem_unmap (gmem->parent);
+
+  if (mem->flags & GST_FD_MEMORY_FLAG_KEEP_MAPPED)
+    return;
+
+  g_mutex_lock (&mem->lock);
+  if (mem->data && !(--mem->mmap_count)) {
+    munmap ((void *) mem->data, gmem->maxsize);
+    mem->data = NULL;
+    mem->mmapping_flags = 0;
+    GST_DEBUG ("%p: fd %d unmapped", mem, mem->fd);
+  }
+  g_mutex_unlock (&mem->lock);
+#endif
+}
+
+static GstMemory *
+gst_fd_mem_share (GstMemory * gmem, gssize offset, gssize size)
+{
+#ifdef HAVE_MMAP
+  GstFdMemory *mem = (GstFdMemory *) gmem;
+  GstFdMemory *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 = gmem->maxsize - offset;
+
+  sub = g_slice_new0 (GstFdMemory);
+  /* 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);
+
+  sub->fd = mem->fd;
+  g_mutex_init (&sub->lock);
+
+  return GST_MEMORY_CAST (sub);
+#else /* !HAVE_MMAP */
+  return NULL;
+#endif
+}
+
+/**
+ * gst_fd_memory_new:
+ * @allocator: allocator to be used for this memory
+ * @fd: file descriptor
+ * @size: memory size
+ * @flags: extra #GstFdMemoryFlags
+ *
+ * Return a %GstMemory that wraps a file descriptor.
+ *
+ * Returns: (transfer full): a GstMemory based on @allocator.
+ * When the buffer is released, @fd is closed.
+ * The memory is only mmapped on gst_buffer_mmap() request.
+ *
+ * Since: 1.2
+ */
+GstMemory *
+__gst_fd_memory_new (GstAllocator * allocator, gint fd, gsize size,
+    GstFdMemoryFlags flags)
+{
+#ifdef HAVE_MMAP
+  GstFdMemory *mem;
+
+  mem = g_slice_new0 (GstFdMemory);
+  gst_memory_init (GST_MEMORY_CAST (mem), 0, allocator, NULL, size, 0, 0, size);
+
+  mem->flags = flags;
+  mem->fd = fd;
+  g_mutex_init (&mem->lock);
+
+  GST_DEBUG ("%p: fd: %d size %" G_GSIZE_FORMAT, mem, mem->fd,
+      mem->mem.maxsize);
+
+  return (GstMemory *) mem;
+#else /* !HAVE_MMAP */
+  return NULL;
+#endif
+}
+
+/**
+ * gst_fd_memory_class_init_allocator:
+ * @allocator: a #GstAllocatorClass
+ *
+ * Sets up the methods to alloc and free fd backed memory created
+ * with @gst_fd_memory_new by @allocator.
+ */
+void
+__gst_fd_memory_class_init_allocator (GstAllocatorClass * allocator)
+{
+  allocator->alloc = NULL;
+  allocator->free = gst_fd_mem_free;
+}
+
+/**
+ * gst_fd_memory_init_allocator:
+ * @allocator: a #GstAllocator
+ * @type: the memory type
+ *
+ * Sets up the methods to map and unmap and share fd backed memory
+ * created with @allocator.
+ */
+void
+__gst_fd_memory_init_allocator (GstAllocator * allocator, const gchar * type)
+{
+  allocator->mem_type = type;
+  allocator->mem_map = gst_fd_mem_map;
+  allocator->mem_unmap = gst_fd_mem_unmap;
+  allocator->mem_share = gst_fd_mem_share;
+}
diff --git a/gst-libs/gst/allocators/gstfdmemory.h b/gst-libs/gst/allocators/gstfdmemory.h
new file mode 100644
index 0000000..9f28332
--- /dev/null
+++ b/gst-libs/gst/allocators/gstfdmemory.h
@@ -0,0 +1,72 @@
+/* GStreamer fd memory
+ * Copyright (C) 2013 Linaro SA
+ * Author: Benjamin Gaignard <benjamin.gaignard@linaro.org> for Linaro.
+ *
+ * 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_FD_MEMORY_H__
+#define __GST_FD_MEMORY_H__
+
+#include <gst/gst.h>
+
+G_BEGIN_DECLS
+
+/**
+ * @GST_FD_MEMORY_FLAG_NONE: no flag
+ * @GST_FD_MEMORY_FLAG_KEEP_MAPPED: once the memory is mapped,
+ *        keep it mapped until the memory is destroyed.
+ * @GST_FD_MEMORY_FLAG_MAP_PRIVATE: do a private mapping instead of
+ *        the default shared mapping.
+ *
+ * Various flags to control the operation of the fd backed memory.
+ */
+typedef enum {
+  GST_FD_MEMORY_FLAG_NONE = 0,
+  GST_FD_MEMORY_FLAG_KEEP_MAPPED = (1 << 0),
+  GST_FD_MEMORY_FLAG_MAP_PRIVATE = (1 << 1),
+} GstFdMemoryFlags;
+
+/*
+ * GstFdMemory
+ * @flags: #GstFdMemoryFlags
+ * @fd: the file descriptor associated this memory
+ * @data: mmapped address
+ * @mmapping_flags: mmapping flags
+ * @mmap_count: mmapping counter
+ * @lock: a mutex to make mmapping thread safe
+ */
+typedef struct
+{
+  GstMemory mem;
+
+  GstFdMemoryFlags flags;
+  gint fd;
+  gpointer data;
+  gint mmapping_flags;
+  gint mmap_count;
+  GMutex lock;
+} GstFdMemory;
+
+void        __gst_fd_memory_class_init_allocator  (GstAllocatorClass * allocator);
+void        __gst_fd_memory_init_allocator        (GstAllocator * allocator, const gchar *type);
+
+GstMemory * __gst_fd_memory_new                   (GstAllocator * allocator, gint fd, gsize size,
+                                                   GstFdMemoryFlags flags);
+
+
+G_END_DECLS
+#endif /* __GST_FD_MEMORY_H__ */
diff --git a/gst-libs/gst/app/Makefile.in b/gst-libs/gst/app/Makefile.in
index 9eaaa6a..31a7f91 100644
--- a/gst-libs/gst/app/Makefile.in
+++ b/gst-libs/gst/app/Makefile.in
@@ -115,7 +115,6 @@
 	$(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-x11.m4 \
 	$(top_srcdir)/common/m4/gst.m4 \
 	$(top_srcdir)/common/m4/gtk-doc.m4 \
 	$(top_srcdir)/common/m4/introspection.m4 \
@@ -290,6 +289,8 @@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_2_0_CFLAGS = @GIO_UNIX_2_0_CFLAGS@
+GIO_UNIX_2_0_LIBS = @GIO_UNIX_2_0_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
@@ -319,6 +320,8 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
+GST_NET_CFLAGS = @GST_NET_CFLAGS@
+GST_NET_LIBS = @GST_NET_LIBS@
 GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
 GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
@@ -346,7 +349,6 @@
 GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
 GTK_X11_LIBS = @GTK_X11_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
-HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -450,13 +452,12 @@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-XMKMF = @XMKMF@
+XSHM_CFLAGS = @XSHM_CFLAGS@
 XSHM_LIBS = @XSHM_LIBS@
+XVIDEO_CFLAGS = @XVIDEO_CFLAGS@
 XVIDEO_LIBS = @XVIDEO_LIBS@
 X_CFLAGS = @X_CFLAGS@
-X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
-X_PRE_LIBS = @X_PRE_LIBS@
 ZLIB_CFLAGS = @ZLIB_CFLAGS@
 ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
diff --git a/gst-libs/gst/app/gstappsink.c b/gst-libs/gst/app/gstappsink.c
index ecec3b5..dc8754f 100644
--- a/gst-libs/gst/app/gstappsink.c
+++ b/gst-libs/gst/app/gstappsink.c
@@ -571,20 +571,36 @@
       g_queue_push_tail (priv->queue, gst_event_ref (event));
       g_mutex_unlock (&priv->mutex);
       break;
-    case GST_EVENT_EOS:
+    case GST_EVENT_EOS:{
+      gboolean emit = TRUE;
+
       g_mutex_lock (&priv->mutex);
       GST_DEBUG_OBJECT (appsink, "receiving EOS");
       priv->is_eos = TRUE;
       g_cond_signal (&priv->cond);
       g_mutex_unlock (&priv->mutex);
 
-      /* emit EOS now */
-      if (priv->callbacks.eos)
-        priv->callbacks.eos (appsink, priv->user_data);
-      else
-        g_signal_emit (appsink, gst_app_sink_signals[SIGNAL_EOS], 0);
+      g_mutex_lock (&priv->mutex);
+      /* wait until all buffers are consumed or we're flushing.
+       * Otherwise we might signal EOS before all buffers are
+       * consumed, which is a bit confusing for the application
+       */
+      while (priv->num_buffers > 0 && !priv->flushing)
+        g_cond_wait (&priv->cond, &priv->mutex);
+      if (priv->flushing)
+        emit = FALSE;
+      g_mutex_unlock (&priv->mutex);
+
+      if (emit) {
+        /* emit EOS now */
+        if (priv->callbacks.eos)
+          priv->callbacks.eos (appsink, priv->user_data);
+        else
+          g_signal_emit (appsink, gst_app_sink_signals[SIGNAL_EOS], 0);
+      }
 
       break;
+    }
     case GST_EVENT_FLUSH_START:
       /* we don't have to do anything here, the base class will call unlock
        * which will make sure we exit the _render method */
@@ -1093,7 +1109,8 @@
  * This function blocks until a preroll sample or EOS is received or the appsink
  * element is set to the READY/NULL state.
  *
- * Returns: a #GstBuffer or NULL when the appsink is stopped or EOS.
+ * Returns: (transfer full): a #GstSample or NULL when the appsink is stopped or EOS.
+ *          Call gst_sample_unref() after usage.
  */
 GstSample *
 gst_app_sink_pull_preroll (GstAppSink * appsink)
@@ -1161,7 +1178,8 @@
  * If an EOS event was received before any buffers, this function returns
  * %NULL. Use gst_app_sink_is_eos () to check for the EOS condition.
  *
- * Returns: a #GstBuffer or NULL when the appsink is stopped or EOS.
+ * Returns: (transfer full): a #GstSample or NULL when the appsink is stopped or EOS.
+ *          Call gst_sample_unref() after usage.
  */
 
 GstSample *
diff --git a/gst-libs/gst/app/gstappsink.h b/gst-libs/gst/app/gstappsink.h
index e7b91fd..040a4e1 100644
--- a/gst-libs/gst/app/gstappsink.h
+++ b/gst-libs/gst/app/gstappsink.h
@@ -42,6 +42,8 @@
 typedef struct _GstAppSinkClass GstAppSinkClass;
 typedef struct _GstAppSinkPrivate GstAppSinkPrivate;
 
+/* FIXME 2.0: Make the instance/class struct private */
+
 /**
  * GstAppSinkCallbacks: (skip)
  * @eos: Called when the end-of-stream has been reached. This callback
diff --git a/gst-libs/gst/app/gstappsrc.c b/gst-libs/gst/app/gstappsrc.c
index d529bfd..f3a56b3 100644
--- a/gst-libs/gst/app/gstappsrc.c
+++ b/gst-libs/gst/app/gstappsrc.c
@@ -34,7 +34,10 @@
  * describing the format of the data that will be pushed with appsrc. An
  * exception to this is when pushing buffers with unknown caps, in which case no
  * caps should be set. This is typically true of file-like sources that push raw
- * byte buffers.
+ * byte buffers. If you don't want to explicitly set the caps you can use
+ * gst_app_src_push_sample, this method get the caps associated with the
+ * sample and set them on appsrc replacing any previous setted caps if
+ * different from that of the sample.
  *
  * The main way of handing data to the appsrc element is by calling the
  * gst_app_src_push_buffer() method or by emitting the push-buffer action signal.
@@ -62,12 +65,12 @@
  * These signals allow the application to operate the appsrc in two different
  * ways:
  *
- * The push model, in which the application repeatedly calls the push-buffer method
- * with a new buffer. Optionally, the queue size in the appsrc can be controlled
- * with the enough-data and need-data signals by respectively stopping/starting
- * the push-buffer calls. This is a typical mode of operation for the
- * stream-type "stream" and "seekable". Use this model when implementing various
- * network protocols or hardware devices.
+ * The push model, in which the application repeatedly calls the push-buffer/push-sample 
+ * method with a new buffer/sample. Optionally, the queue size in the appsrc 
+ * can be controlled with the enough-data and need-data signals by respectively 
+ * stopping/starting the push-buffer/push-sample calls. This is a typical 
+ * mode of operation for the stream-type "stream" and "seekable". Use this 
+ * model when implementing various network protocols or hardware devices.
  *
  * The pull model where the need-data signal triggers the next push-buffer call.
  * This mode is typically used in the "random-access" stream-type. Use this
@@ -104,14 +107,15 @@
   GMutex mutex;
   GQueue *queue;
 
-  GstCaps *caps;
+  GstCaps *last_caps;
+  GstCaps *current_caps;
+
   gint64 size;
   GstAppStreamType stream_type;
   guint64 max_bytes;
   GstFormat format;
   gboolean block;
   gchar *uri;
-  gboolean new_caps;
 
   gboolean flushing;
   gboolean started;
@@ -143,6 +147,7 @@
   /* actions */
   SIGNAL_PUSH_BUFFER,
   SIGNAL_END_OF_STREAM,
+  SIGNAL_PUSH_SAMPLE,
 
   LAST_SIGNAL
 };
@@ -235,6 +240,8 @@
 
 static GstFlowReturn gst_app_src_push_buffer_action (GstAppSrc * appsrc,
     GstBuffer * buffer);
+static GstFlowReturn gst_app_src_push_sample_action (GstAppSrc * appsrc,
+    GstSample * sample);
 
 static guint gst_app_src_signals[LAST_SIGNAL] = { 0 };
 
@@ -462,6 +469,33 @@
           push_buffer), NULL, NULL, __gst_app_marshal_ENUM__BOXED,
       GST_TYPE_FLOW_RETURN, 1, GST_TYPE_BUFFER);
 
+  /**
+    * GstAppSrc::push-sample:
+    * @appsrc: the appsrc
+    * @sample: a sample from which extract buffer to push
+    *
+    * Extract a buffer from the provided sample and adds the extracted buffer 
+    * to the queue of buffers that the appsrc element will
+    * push to its source pad. This function set the appsrc caps based on the caps
+    * in the sample and reset the caps if they change. 
+    * Only the caps and the buffer of the provided sample are used and not 
+    * for example the segment in the sample. 
+    * This function does not take ownership of the
+    * sample so the sample needs to be unreffed after calling this function.
+    *
+    * When the block property is TRUE, this function can block until free space
+    * becomes available in the queue.
+    * 
+    * Since: 1.6
+    * 
+    */
+  gst_app_src_signals[SIGNAL_PUSH_SAMPLE] =
+      g_signal_new ("push-sample", G_TYPE_FROM_CLASS (klass),
+      G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, G_STRUCT_OFFSET (GstAppSrcClass,
+          push_sample), NULL, NULL, __gst_app_marshal_ENUM__BOXED,
+      GST_TYPE_FLOW_RETURN, 1, GST_TYPE_SAMPLE);
+
+
    /**
     * GstAppSrc::end-of-stream:
     * @appsrc: the appsrc
@@ -497,6 +531,7 @@
   basesrc_class->query = gst_app_src_query;
 
   klass->push_buffer = gst_app_src_push_buffer_action;
+  klass->push_sample = gst_app_src_push_sample_action;
   klass->end_of_stream = gst_app_src_end_of_stream;
 
   g_type_class_add_private (klass, sizeof (GstAppSrcPrivate));
@@ -530,11 +565,16 @@
 static void
 gst_app_src_flush_queued (GstAppSrc * src)
 {
-  GstBuffer *buf;
+  GstMiniObject *obj;
   GstAppSrcPrivate *priv = src->priv;
 
-  while ((buf = g_queue_pop_head (priv->queue)))
-    gst_buffer_unref (buf);
+  while (!g_queue_is_empty (priv->queue)) {
+    obj = g_queue_pop_head (priv->queue);
+    if (obj) {
+      gst_mini_object_unref (obj);
+    }
+  }
+
   priv->queued_bytes = 0;
 }
 
@@ -544,10 +584,22 @@
   GstAppSrc *appsrc = GST_APP_SRC_CAST (obj);
   GstAppSrcPrivate *priv = appsrc->priv;
 
-  if (priv->caps) {
-    gst_caps_unref (priv->caps);
-    priv->caps = NULL;
+  GST_OBJECT_LOCK (appsrc);
+  if (priv->current_caps) {
+    gst_caps_unref (priv->current_caps);
+    priv->current_caps = NULL;
   }
+  if (priv->last_caps) {
+    gst_caps_unref (priv->last_caps);
+    priv->last_caps = NULL;
+  }
+  if (priv->notify) {
+    priv->notify (priv->user_data);
+  }
+  priv->user_data = NULL;
+  priv->notify = NULL;
+
+  GST_OBJECT_UNLOCK (appsrc);
   gst_app_src_flush_queued (appsrc);
 
   G_OBJECT_CLASS (parent_class)->dispose (obj);
@@ -575,7 +627,7 @@
   GstCaps *caps;
 
   GST_OBJECT_LOCK (appsrc);
-  if ((caps = appsrc->priv->caps))
+  if ((caps = appsrc->priv->current_caps))
     gst_caps_ref (caps);
   GST_OBJECT_UNLOCK (appsrc);
 
@@ -759,7 +811,6 @@
 
   g_mutex_lock (&priv->mutex);
   GST_DEBUG_OBJECT (appsrc, "starting");
-  priv->new_caps = FALSE;
   priv->started = TRUE;
   /* set the offset to -1 so that we always do a first seek. This is only used
    * in random-access mode. */
@@ -836,10 +887,10 @@
 
       /* overwrite with our values when we need to */
       g_mutex_lock (&priv->mutex);
-      if (priv->min_latency != -1)
+      if (priv->min_latency != -1) {
         min = priv->min_latency;
-      if (priv->max_latency != -1)
         max = priv->max_latency;
+      }
       g_mutex_unlock (&priv->mutex);
 
       gst_query_set_latency (query, live, min, max);
@@ -880,13 +931,13 @@
 
   desired_position = segment->position;
 
-  GST_DEBUG_OBJECT (appsrc, "seeking to %" G_GINT64_FORMAT ", format %s",
-      desired_position, gst_format_get_name (segment->format));
-
   /* no need to try to seek in streaming mode */
   if (priv->stream_type == GST_APP_STREAM_TYPE_STREAM)
     return TRUE;
 
+  GST_DEBUG_OBJECT (appsrc, "seeking to %" G_GINT64_FORMAT ", format %s",
+      desired_position, gst_format_get_name (segment->format));
+
   if (priv->callbacks.seek_data)
     res = priv->callbacks.seek_data (appsrc, desired_position, priv->user_data);
   else {
@@ -970,7 +1021,7 @@
   GstCaps *caps;
 
   GST_OBJECT_LOCK (basesrc);
-  caps = priv->caps ? gst_caps_ref (priv->caps) : NULL;
+  caps = priv->current_caps ? gst_caps_ref (priv->current_caps) : NULL;
   GST_OBJECT_UNLOCK (basesrc);
 
   /* Avoid deadlock by unlocking mutex
@@ -995,7 +1046,6 @@
   gboolean result;
 
   g_mutex_lock (&priv->mutex);
-  priv->new_caps = FALSE;
   result = gst_app_src_do_negotiate (basesrc);
   g_mutex_unlock (&priv->mutex);
   return result;
@@ -1051,10 +1101,25 @@
     /* return data as long as we have some */
     if (!g_queue_is_empty (priv->queue)) {
       guint buf_size;
+      GstMiniObject *obj = g_queue_pop_head (priv->queue);
 
-      if (priv->new_caps) {
-        priv->new_caps = FALSE;
-        gst_app_src_do_negotiate (bsrc);
+      if (!GST_IS_BUFFER (obj)) {
+        GstCaps *next_caps = GST_CAPS (obj);
+        gboolean caps_changed = TRUE;
+
+        if (next_caps && priv->current_caps)
+          caps_changed = !gst_caps_is_equal (next_caps, priv->current_caps);
+        else
+          caps_changed = (next_caps != priv->current_caps);
+
+        gst_caps_replace (&priv->current_caps, next_caps);
+
+        if (next_caps) {
+          gst_caps_unref (next_caps);
+        }
+
+        if (caps_changed)
+          gst_app_src_do_negotiate (bsrc);
 
         /* Lock has released so now may need
          *- flushing
@@ -1062,10 +1127,12 @@
          *- check queue has data */
         if (G_UNLIKELY (priv->flushing))
           goto flushing;
-        /* Contiue checks caps and queue */
+
+        /* Continue checks caps and queue */
         continue;
       }
-      *buf = g_queue_pop_head (priv->queue);
+
+      *buf = GST_BUFFER (obj);
       buf_size = gst_buffer_get_size (*buf);
 
       GST_DEBUG_OBJECT (appsrc, "we have buffer %p of size %u", *buf, buf_size);
@@ -1153,8 +1220,8 @@
 void
 gst_app_src_set_caps (GstAppSrc * appsrc, const GstCaps * caps)
 {
-  GstCaps *old;
   GstAppSrcPrivate *priv;
+  gboolean caps_changed;
 
   g_return_if_fail (GST_IS_APP_SRC (appsrc));
 
@@ -1163,16 +1230,19 @@
   g_mutex_lock (&priv->mutex);
 
   GST_OBJECT_LOCK (appsrc);
-  GST_DEBUG_OBJECT (appsrc, "setting caps to %" GST_PTR_FORMAT, caps);
-  if ((old = priv->caps) != caps) {
-    if (caps)
-      priv->caps = gst_caps_copy (caps);
-    else
-      priv->caps = NULL;
-    if (old)
-      gst_caps_unref (old);
-    priv->new_caps = TRUE;
+  if (caps && priv->last_caps)
+    caps_changed = !gst_caps_is_equal (caps, priv->last_caps);
+  else
+    caps_changed = (caps != priv->last_caps);
+
+  if (caps_changed) {
+    GstCaps *new_caps;
+    new_caps = caps ? gst_caps_copy (caps) : NULL;
+    GST_DEBUG_OBJECT (appsrc, "setting caps to %" GST_PTR_FORMAT, caps);
+    g_queue_push_tail (priv->queue, new_caps);
+    gst_caps_replace (&priv->last_caps, new_caps);
   }
+
   GST_OBJECT_UNLOCK (appsrc);
 
   g_mutex_unlock (&priv->mutex);
@@ -1189,9 +1259,18 @@
 GstCaps *
 gst_app_src_get_caps (GstAppSrc * appsrc)
 {
+
+  GstCaps *caps;
+
   g_return_val_if_fail (GST_IS_APP_SRC (appsrc), NULL);
 
-  return gst_app_src_internal_get_caps (GST_BASE_SRC_CAST (appsrc), NULL);
+  GST_OBJECT_LOCK (appsrc);
+  if ((caps = appsrc->priv->last_caps))
+    gst_caps_ref (caps);
+  GST_OBJECT_UNLOCK (appsrc);
+
+  return caps;
+
 }
 
 /**
@@ -1582,6 +1661,18 @@
   }
 }
 
+static GstFlowReturn
+gst_app_src_push_sample_internal (GstAppSrc * appsrc, GstSample * sample)
+{
+  GstBuffer *buffer;
+  GstCaps *caps;
+  g_return_val_if_fail (GST_IS_SAMPLE (sample), GST_FLOW_ERROR);
+  caps = gst_sample_get_caps (sample);
+  gst_app_src_set_caps (appsrc, caps);
+  buffer = gst_sample_get_buffer (sample);
+  return gst_app_src_push_buffer_full (appsrc, buffer, FALSE);
+}
+
 /**
  * gst_app_src_push_buffer:
  * @appsrc: a #GstAppSrc
@@ -1603,6 +1694,33 @@
   return gst_app_src_push_buffer_full (appsrc, buffer, TRUE);
 }
 
+/**
+ * gst_app_src_push_sample:
+ * @appsrc: a #GstAppSrc
+ * @sample: (transfer none): a #GstSample from wich extract buffer to 
+ * push and caps to set
+ *
+ * Extract a buffer from the provided sample and adds it to the queue of 
+ * buffers that the appsrc element will push to its source pad. Any 
+ * previous caps setted on appsrc will be replaced by the caps associated 
+ * with the sample if not equal.
+ *
+ * When the block property is TRUE, this function can block until free
+ * space becomes available in the queue.
+ *
+ * Returns: #GST_FLOW_OK when the buffer was successfuly queued.
+ * #GST_FLOW_FLUSHING when @appsrc is not PAUSED or PLAYING.
+ * #GST_FLOW_EOS when EOS occured.
+ * 
+ * Since: 1.6
+ * 
+ */
+GstFlowReturn
+gst_app_src_push_sample (GstAppSrc * appsrc, GstSample * sample)
+{
+  return gst_app_src_push_sample_internal (appsrc, sample);
+}
+
 /* push a buffer without stealing the ref of the buffer. This is used for the
  * action signal. */
 static GstFlowReturn
@@ -1611,6 +1729,14 @@
   return gst_app_src_push_buffer_full (appsrc, buffer, FALSE);
 }
 
+/* push a sample without stealing the ref. This is used for the
+ * action signal. */
+static GstFlowReturn
+gst_app_src_push_sample_action (GstAppSrc * appsrc, GstSample * sample)
+{
+  return gst_app_src_push_sample_internal (appsrc, sample);
+}
+
 /**
  * gst_app_src_end_of_stream:
  * @appsrc: a #GstAppSrc
diff --git a/gst-libs/gst/app/gstappsrc.h b/gst-libs/gst/app/gstappsrc.h
index d88c823..783b10c 100644
--- a/gst-libs/gst/app/gstappsrc.h
+++ b/gst-libs/gst/app/gstappsrc.h
@@ -42,6 +42,8 @@
 typedef struct _GstAppSrcClass GstAppSrcClass;
 typedef struct _GstAppSrcPrivate GstAppSrcPrivate;
 
+/* FIXME 2.0: Make the instance/class struct private */
+
 /**
  * GstAppSrcCallbacks: (skip)
  * @need_data: Called when the appsrc needs more data. A buffer or EOS should be
@@ -107,9 +109,10 @@
   /* actions */
   GstFlowReturn (*push_buffer)     (GstAppSrc *appsrc, GstBuffer *buffer);
   GstFlowReturn (*end_of_stream)   (GstAppSrc *appsrc);
+  GstFlowReturn (*push_sample)     (GstAppSrc *appsrc, GstSample *sample);
 
   /*< private >*/
-  gpointer     _gst_reserved[GST_PADDING];
+  gpointer     _gst_reserved[GST_PADDING-1];
 };
 
 GType gst_app_src_get_type(void);
@@ -140,6 +143,7 @@
 
 GstFlowReturn    gst_app_src_push_buffer             (GstAppSrc *appsrc, GstBuffer *buffer);
 GstFlowReturn    gst_app_src_end_of_stream           (GstAppSrc *appsrc);
+GstFlowReturn    gst_app_src_push_sample             (GstAppSrc *appsrc, GstSample *sample);
 
 void             gst_app_src_set_callbacks           (GstAppSrc * appsrc,
                                                       GstAppSrcCallbacks *callbacks,
diff --git a/gst-libs/gst/audio/Makefile.am b/gst-libs/gst/audio/Makefile.am
index 0e67b9b..4956fa7 100644
--- a/gst-libs/gst/audio/Makefile.am
+++ b/gst-libs/gst/audio/Makefile.am
@@ -38,6 +38,7 @@
 	gstaudiometa.c \
 	gstaudiosink.c \
 	gstaudiosrc.c \
+	gstaudioutilsprivate.c \
 	streamvolume.c \
 	gstaudioiec61937.c
 
@@ -66,6 +67,8 @@
 nodist_libgstaudio_@GST_API_VERSION@include_HEADERS = \
 	audio-enumtypes.h
 
+noinst_HEADERS = gstaudioutilsprivate.h
+
 libgstaudio_@GST_API_VERSION@_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) \
 		$(ORC_CFLAGS)
 libgstaudio_@GST_API_VERSION@_la_LIBADD = \
diff --git a/gst-libs/gst/audio/Makefile.in b/gst-libs/gst/audio/Makefile.in
index c0adfb2..d514077 100644
--- a/gst-libs/gst/audio/Makefile.in
+++ b/gst-libs/gst/audio/Makefile.in
@@ -114,7 +114,8 @@
 DIST_COMMON = $(top_srcdir)/common/orc.mak \
 	$(top_srcdir)/common/gst-glib-gen.mak $(srcdir)/Makefile.in \
 	$(srcdir)/Makefile.am $(top_srcdir)/depcomp \
-	$(libgstaudio_@GST_API_VERSION@include_HEADERS) TODO
+	$(libgstaudio_@GST_API_VERSION@include_HEADERS) \
+	$(noinst_HEADERS) TODO
 @HAVE_INTROSPECTION_TRUE@am__append_1 = $(BUILT_GIRSOURCES) $(typelibs_DATA)
 subdir = gst-libs/gst/audio
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -137,7 +138,6 @@
 	$(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-x11.m4 \
 	$(top_srcdir)/common/m4/gst.m4 \
 	$(top_srcdir)/common/m4/gtk-doc.m4 \
 	$(top_srcdir)/common/m4/introspection.m4 \
@@ -210,6 +210,7 @@
 	libgstaudio_@GST_API_VERSION@_la-gstaudiometa.lo \
 	libgstaudio_@GST_API_VERSION@_la-gstaudiosink.lo \
 	libgstaudio_@GST_API_VERSION@_la-gstaudiosrc.lo \
+	libgstaudio_@GST_API_VERSION@_la-gstaudioutilsprivate.lo \
 	libgstaudio_@GST_API_VERSION@_la-streamvolume.lo \
 	libgstaudio_@GST_API_VERSION@_la-gstaudioiec61937.lo
 am__objects_1 = libgstaudio_@GST_API_VERSION@_la-audio-enumtypes.lo
@@ -272,8 +273,27 @@
   esac
 DATA = $(gir_DATA) $(typelibs_DATA)
 HEADERS = $(libgstaudio_@GST_API_VERSION@include_HEADERS) \
-	$(nodist_libgstaudio_@GST_API_VERSION@include_HEADERS)
+	$(nodist_libgstaudio_@GST_API_VERSION@include_HEADERS) \
+	$(noinst_HEADERS)
 am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -334,6 +354,8 @@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_2_0_CFLAGS = @GIO_UNIX_2_0_CFLAGS@
+GIO_UNIX_2_0_LIBS = @GIO_UNIX_2_0_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
@@ -363,6 +385,8 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
+GST_NET_CFLAGS = @GST_NET_CFLAGS@
+GST_NET_LIBS = @GST_NET_LIBS@
 GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
 GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
@@ -390,7 +414,6 @@
 GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
 GTK_X11_LIBS = @GTK_X11_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
-HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -494,13 +517,12 @@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-XMKMF = @XMKMF@
+XSHM_CFLAGS = @XSHM_CFLAGS@
 XSHM_LIBS = @XSHM_LIBS@
+XVIDEO_CFLAGS = @XVIDEO_CFLAGS@
 XVIDEO_LIBS = @XVIDEO_LIBS@
 X_CFLAGS = @X_CFLAGS@
-X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
-X_PRE_LIBS = @X_PRE_LIBS@
 ZLIB_CFLAGS = @ZLIB_CFLAGS@
 ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
@@ -610,6 +632,7 @@
 	gstaudiometa.c \
 	gstaudiosink.c \
 	gstaudiosrc.c \
+	gstaudioutilsprivate.c \
 	streamvolume.c \
 	gstaudioiec61937.c
 
@@ -637,6 +660,7 @@
 nodist_libgstaudio_@GST_API_VERSION@include_HEADERS = \
 	audio-enumtypes.h
 
+noinst_HEADERS = gstaudioutilsprivate.h
 libgstaudio_@GST_API_VERSION@_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) \
 		$(ORC_CFLAGS)
 
@@ -760,6 +784,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudio_@GST_API_VERSION@_la-gstaudioringbuffer.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudio_@GST_API_VERSION@_la-gstaudiosink.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudio_@GST_API_VERSION@_la-gstaudiosrc.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudio_@GST_API_VERSION@_la-gstaudioutilsprivate.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudio_@GST_API_VERSION@_la-streamvolume.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudio_@GST_API_VERSION@_la-tmp-orc.Plo@am__quote@
 
@@ -892,6 +917,13 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudio_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstaudio_@GST_API_VERSION@_la-gstaudiosrc.lo `test -f 'gstaudiosrc.c' || echo '$(srcdir)/'`gstaudiosrc.c
 
+libgstaudio_@GST_API_VERSION@_la-gstaudioutilsprivate.lo: gstaudioutilsprivate.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudio_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstaudio_@GST_API_VERSION@_la-gstaudioutilsprivate.lo -MD -MP -MF $(DEPDIR)/libgstaudio_@GST_API_VERSION@_la-gstaudioutilsprivate.Tpo -c -o libgstaudio_@GST_API_VERSION@_la-gstaudioutilsprivate.lo `test -f 'gstaudioutilsprivate.c' || echo '$(srcdir)/'`gstaudioutilsprivate.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudio_@GST_API_VERSION@_la-gstaudioutilsprivate.Tpo $(DEPDIR)/libgstaudio_@GST_API_VERSION@_la-gstaudioutilsprivate.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstaudioutilsprivate.c' object='libgstaudio_@GST_API_VERSION@_la-gstaudioutilsprivate.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudio_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstaudio_@GST_API_VERSION@_la-gstaudioutilsprivate.lo `test -f 'gstaudioutilsprivate.c' || echo '$(srcdir)/'`gstaudioutilsprivate.c
+
 libgstaudio_@GST_API_VERSION@_la-streamvolume.lo: streamvolume.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudio_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstaudio_@GST_API_VERSION@_la-streamvolume.lo -MD -MP -MF $(DEPDIR)/libgstaudio_@GST_API_VERSION@_la-streamvolume.Tpo -c -o libgstaudio_@GST_API_VERSION@_la-streamvolume.lo `test -f 'streamvolume.c' || echo '$(srcdir)/'`streamvolume.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudio_@GST_API_VERSION@_la-streamvolume.Tpo $(DEPDIR)/libgstaudio_@GST_API_VERSION@_la-streamvolume.Plo
@@ -1009,12 +1041,58 @@
 	@list='$(nodist_libgstaudio_@GST_API_VERSION@include_HEADERS)'; test -n "$(libgstaudio_@GST_API_VERSION@includedir)" || list=; \
 	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
 	dir='$(DESTDIR)$(libgstaudio_@GST_API_VERSION@includedir)'; $(am__uninstall_files_from_dir)
-tags TAGS:
 
-ctags CTAGS:
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
 
-cscope cscopelist:
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	set x; \
+	here=`pwd`; \
+	$(am__define_uniq_tagged_files); \
+	shift; \
+	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  if test $$# -gt 0; then \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      "$$@" $$unique; \
+	  else \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      $$unique; \
+	  fi; \
+	fi
+ctags: ctags-am
 
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
+	test -z "$(CTAGS_ARGS)$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && $(am__cd) $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
 
 distdir: $(DISTFILES)
 	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
@@ -1098,7 +1176,8 @@
 distclean: distclean-am
 	-rm -rf ./$(DEPDIR)
 	-rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic
+distclean-am: clean-am distclean-compile distclean-generic \
+	distclean-tags
 
 dvi: dvi-am
 
@@ -1168,14 +1247,15 @@
 
 .MAKE: all check install install-am install-strip
 
-.PHONY: all all-am check check-am clean clean-generic \
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
 	clean-libLTLIBRARIES clean-libtool clean-local cscopelist-am \
-	ctags-am dist-hook distclean distclean-compile \
-	distclean-generic distclean-libtool 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-girDATA install-html install-html-am \
-	install-info install-info-am install-libLTLIBRARIES \
+	ctags ctags-am dist-hook distclean distclean-compile \
+	distclean-generic distclean-libtool distclean-tags distdir dvi \
+	dvi-am html html-am info info-am install install-am \
+	install-data install-data-am install-dvi install-dvi-am \
+	install-exec install-exec-am install-girDATA install-html \
+	install-html-am install-info install-info-am \
+	install-libLTLIBRARIES \
 	install-libgstaudio_@GST_API_VERSION@includeHEADERS \
 	install-man \
 	install-nodist_libgstaudio_@GST_API_VERSION@includeHEADERS \
@@ -1184,7 +1264,7 @@
 	installcheck-am installdirs maintainer-clean \
 	maintainer-clean-generic mostlyclean mostlyclean-compile \
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags-am uninstall uninstall-am uninstall-girDATA \
+	tags tags-am uninstall uninstall-am uninstall-girDATA \
 	uninstall-libLTLIBRARIES \
 	uninstall-libgstaudio_@GST_API_VERSION@includeHEADERS \
 	uninstall-nodist_libgstaudio_@GST_API_VERSION@includeHEADERS \
diff --git a/gst-libs/gst/audio/audio-channels.c b/gst-libs/gst/audio/audio-channels.c
index e5d2a55..515eb94 100644
--- a/gst-libs/gst/audio/audio-channels.c
+++ b/gst-libs/gst/audio/audio-channels.c
@@ -301,6 +301,8 @@
  * (which should have at least @channels entries ensured by caller).
  * If @channel_mask is set to 0, it is considered as 'not present' for purpose
  * of conversion.
+ * A partially valid @channel_mask with less bits set than the number
+ * of channels is considered valid.
  *
  * Returns: %TRUE if channel and channel mask are valid and could be converted
  */
@@ -331,14 +333,12 @@
       if ((channel_mask & (G_GUINT64_CONSTANT (1) << i))) {
         if (j < channels)
           position[j] = default_channel_order[i];
-        if (default_channel_order[i] == GST_AUDIO_CHANNEL_POSITION_INVALID)
-          goto invalid_channel_mask;
         j++;
       }
     }
-
     if (j != channels)
-      goto invalid_channel_mask;
+      GST_WARNING ("Only partially valid channel mask 0x%016" G_GINT64_MODIFIER
+          "x for %d channels", channel_mask, channels);
   }
 
   return TRUE;
@@ -349,12 +349,6 @@
     GST_ERROR ("no channel-mask property given");
     return FALSE;
   }
-invalid_channel_mask:
-  {
-    GST_ERROR ("Invalid channel mask 0x%016" G_GINT64_MODIFIER
-        "x for %d channels", channel_mask, channels);
-    return FALSE;
-  }
 }
 
 
diff --git a/gst-libs/gst/audio/audio-format.c b/gst-libs/gst/audio/audio-format.c
index 5a06850..783f9e4 100644
--- a/gst-libs/gst/audio/audio-format.c
+++ b/gst-libs/gst/audio/audio-format.c
@@ -225,7 +225,7 @@
 #define SILENT_U20BE     { 0x08, 0x00, 0x00, 0x08, 0x00, 0x00 }
 #define SILENT_U18LE     { 0x00, 0x00, 0x02, 0x00, 0x00, 0x02 }
 #define SILENT_U18BE     { 0x02, 0x00, 0x00, 0x02, 0x00, 0x00 }
-     static GstAudioFormatInfo formats[] = {
+     static const GstAudioFormatInfo formats[] = {
        {GST_AUDIO_FORMAT_UNKNOWN, "UNKNOWN", "Unknown audio", 0, 0, 0, 0},
        {GST_AUDIO_FORMAT_ENCODED, "ENCODED", "Encoded audio",
            GST_AUDIO_FORMAT_FLAG_COMPLEX, 0, 0, 0},
@@ -363,7 +363,7 @@
   gint i, e;
 
   for (i = 0; i < G_N_ELEMENTS (formats); i++) {
-    GstAudioFormatInfo *finfo = &formats[i];
+    const GstAudioFormatInfo *finfo = &formats[i];
 
     /* must be int */
     if (!GST_AUDIO_FORMAT_INFO_IS_INTEGER (finfo))
diff --git a/gst-libs/gst/audio/gstaudiobasesink.c b/gst-libs/gst/audio/gstaudiobasesink.c
index 26f7134..233efcb 100644
--- a/gst-libs/gst/audio/gstaudiobasesink.c
+++ b/gst-libs/gst/audio/gstaudiobasesink.c
@@ -381,6 +381,14 @@
 }
 
 static gboolean
+gst_audio_base_sink_is_self_provided_clock (GstAudioBaseSink * sink)
+{
+  return (sink->provided_clock && GST_IS_AUDIO_CLOCK (sink->provided_clock) &&
+      GST_AUDIO_CLOCK_CAST (sink->provided_clock)->func ==
+      (GstAudioClockGetTimeFunc) gst_audio_base_sink_get_time);
+}
+
+static gboolean
 gst_audio_base_sink_query_pad (GstBaseSink * bsink, GstQuery * query)
 {
   gboolean res = FALSE;
@@ -464,7 +472,6 @@
            * amount of time. */
           max_latency = (max_l == -1) ? -1 : (base_latency + max_l);
 
-
           GST_DEBUG_OBJECT (basesink,
               "peer min %" GST_TIME_FORMAT ", our min latency: %"
               GST_TIME_FORMAT, GST_TIME_ARGS (min_l),
@@ -843,7 +850,7 @@
 {
   GstAudioBaseSink *sink = GST_AUDIO_BASE_SINK (bsink);
   GstAudioRingBufferSpec *spec;
-  GstClockTime now;
+  GstClockTime now, internal_time;
   GstClockTime crate_num, crate_denom;
 
   if (!sink->ringbuffer)
@@ -864,6 +871,7 @@
    * gst_audio_clock_reset() which will use this last_time to create an offset
    * so that time from the clock keeps on increasing monotonically. */
   now = gst_clock_get_time (sink->provided_clock);
+  internal_time = gst_clock_get_internal_time (sink->provided_clock);
 
   GST_DEBUG_OBJECT (sink, "time was %" GST_TIME_FORMAT, GST_TIME_ARGS (now));
 
@@ -887,6 +895,11 @@
   if (!gst_audio_ring_buffer_acquire (sink->ringbuffer, spec))
     goto acquire_error;
 
+  /* If we use our own clock, we need to adjust the offset since it will now
+   * restart from zero */
+  if (gst_audio_base_sink_is_self_provided_clock (sink))
+    gst_audio_clock_reset (GST_AUDIO_CLOCK (sink->provided_clock), 0);
+
   /* We need to resync since the ringbuffer restarted */
   gst_audio_base_sink_reset_sync (sink);
 
@@ -899,8 +912,7 @@
   gst_clock_get_calibration (sink->provided_clock, NULL, NULL,
       &crate_num, &crate_denom);
   gst_clock_set_calibration (sink->provided_clock,
-      gst_clock_get_internal_time (sink->provided_clock), now, crate_num,
-      crate_denom);
+      internal_time, now, crate_num, crate_denom);
 
   /* calculate actual latency and buffer times.
    * FIXME: In 2.0, store the latency_time internally in ns */
@@ -980,6 +992,16 @@
   *end = GST_CLOCK_TIME_NONE;
 }
 
+static void
+gst_audio_base_sink_force_start (GstAudioBaseSink * sink)
+{
+  /* Set the eos_rendering flag so sub-classes definitely start the clock.
+   * FIXME 2.0: Pass this as a flag to gst_audio_ring_buffer_start() */
+  g_atomic_int_set (&sink->eos_rendering, 1);
+  gst_audio_ring_buffer_start (sink->ringbuffer);
+  g_atomic_int_set (&sink->eos_rendering, 0);
+}
+
 /* This waits for the drain to happen and can be canceled */
 static gboolean
 gst_audio_base_sink_drain (GstAudioBaseSink * sink)
@@ -1019,55 +1041,34 @@
 {
   GstAudioBaseSink *sink = GST_AUDIO_BASE_SINK (bsink);
   GstFlowReturn ret;
+  gboolean clear_force_start_flag = FALSE;
+
+  /* For both gap and EOS events, make sure the ringbuffer is running
+   * before trying to wait on the event! */
+  switch (GST_EVENT_TYPE (event)) {
+    case GST_EVENT_EOS:
+    case GST_EVENT_GAP:
+      /* We must have a negotiated format before starting the ringbuffer */
+      if (G_UNLIKELY (!gst_audio_ring_buffer_is_acquired (sink->ringbuffer))) {
+        GST_ELEMENT_ERROR (sink, STREAM, FORMAT, (NULL),
+            ("Sink not negotiated before GAP event."));
+        return GST_FLOW_ERROR;
+      }
+
+      gst_audio_base_sink_force_start (sink);
+      /* Make sure the ringbuffer will start again if interrupted during event_wait() */
+      g_atomic_int_set (&sink->eos_rendering, 1);
+      clear_force_start_flag = TRUE;
+      break;
+    default:
+      break;
+  }
 
   ret = GST_BASE_SINK_CLASS (parent_class)->wait_event (bsink, event);
   if (ret != GST_FLOW_OK)
-    return ret;
+    goto done;
 
   switch (GST_EVENT_TYPE (event)) {
-    case GST_EVENT_GAP:{
-      GstClockTime timestamp, duration;
-      GstAudioRingBufferSpec *spec;
-      GstBuffer *buffer;
-      gint n_samples = 0;
-      GstMapInfo minfo;
-
-      spec = &sink->ringbuffer->spec;
-      if (G_UNLIKELY (spec->info.rate == 0)) {
-        GST_ELEMENT_ERROR (sink, STREAM, FORMAT, (NULL),
-            ("Sink not negotiated before GAP event."));
-        ret = GST_FLOW_ERROR;
-        break;
-      }
-
-      gst_event_parse_gap (event, &timestamp, &duration);
-
-      /* If the GAP event has a duration, handle it like a
-       * silence buffer of that duration. Otherwise at least
-       * start the ringbuffer to make sure the clock is running.
-       */
-      if (duration != GST_CLOCK_TIME_NONE) {
-        n_samples =
-            gst_util_uint64_scale_ceil (duration, spec->info.rate, GST_SECOND);
-        buffer = gst_buffer_new_and_alloc (n_samples * spec->info.bpf);
-
-        if (n_samples != 0) {
-          gst_buffer_map (buffer, &minfo, GST_MAP_WRITE);
-          gst_audio_format_fill_silence (spec->info.finfo, minfo.data,
-              minfo.size);
-          gst_buffer_unmap (buffer, &minfo);
-        }
-        GST_BUFFER_PTS (buffer) = timestamp;
-        GST_BUFFER_DURATION (buffer) = duration;
-        GST_BUFFER_FLAG_SET (buffer, GST_BUFFER_FLAG_GAP);
-
-        ret = gst_audio_base_sink_render (bsink, buffer);
-        gst_buffer_unref (buffer);
-      } else {
-        gst_audio_base_sink_drain (sink);
-      }
-      break;
-    }
     case GST_EVENT_EOS:
       /* now wait till we played everything */
       gst_audio_base_sink_drain (sink);
@@ -1075,6 +1076,10 @@
     default:
       break;
   }
+
+done:
+  if (clear_force_start_flag)
+    g_atomic_int_set (&sink->eos_rendering, 0);
   return ret;
 }
 
@@ -1464,15 +1469,19 @@
      * yet. if some other error occures, we continue. */
   } while (status == GST_CLOCK_UNSCHEDULED);
 
-  GST_OBJECT_LOCK (sink);
   GST_DEBUG_OBJECT (sink, "latency synced");
 
+  /* We might need to take the object lock within gst_audio_clock_get_time(),
+   * so call that before we take it again */
+  itime = gst_audio_clock_get_time (sink->provided_clock);
+  itime = gst_audio_clock_adjust (sink->provided_clock, itime);
+
+  GST_OBJECT_LOCK (sink);
+
   /* when we prerolled in time, we can accurately set the calibration,
    * our internal clock should exactly have been the latency (== the running
    * time of the external clock) */
   etime = GST_ELEMENT_CAST (sink)->base_time + time;
-  itime = gst_audio_clock_get_time (sink->provided_clock);
-  itime = gst_audio_clock_adjust (sink->provided_clock, itime);
 
   if (status == GST_CLOCK_EARLY) {
     /* when we prerolled late, we have to take into account the lateness */
@@ -1481,7 +1490,7 @@
   }
 
   /* start ringbuffer so we can start slaving right away when we need to */
-  gst_audio_ring_buffer_start (sink->ringbuffer);
+  gst_audio_base_sink_force_start (sink);
 
   GST_DEBUG_OBJECT (sink,
       "internal time: %" GST_TIME_FORMAT " external time: %" GST_TIME_FORMAT,
@@ -1606,7 +1615,6 @@
 static GstFlowReturn
 gst_audio_base_sink_render (GstBaseSink * bsink, GstBuffer * buf)
 {
-  guint64 in_offset;
   GstClockTime time, stop, render_start, render_stop, sample_offset;
   GstClockTimeDiff sync_offset, ts_offset;
   GstAudioBaseSinkClass *bclass;
@@ -1675,12 +1683,34 @@
   samples = size / bpf;
   out_samples = samples;
 
-  in_offset = GST_BUFFER_OFFSET (buf);
   time = GST_BUFFER_TIMESTAMP (buf);
 
+  /* Last ditch attempt to ensure that we only play silence if
+   * we are in trickmode no-audio mode (or if a buffer is marked as a GAP)
+   * by dropping the buffer contents and rendering as a gap event instead */
+  if (G_UNLIKELY ((bsink->segment.flags & GST_SEGMENT_FLAG_TRICKMODE_NO_AUDIO)
+          || (buf && GST_BUFFER_FLAG_IS_SET (buf, GST_BUFFER_FLAG_GAP)))) {
+    GstClockTime duration;
+    GstEvent *event;
+    GstBaseSinkClass *bclass;
+    GST_DEBUG_OBJECT (bsink,
+        "Received GAP or ignoring audio for trickplay. Dropping contents");
+
+    duration = gst_util_uint64_scale_int (samples, GST_SECOND, rate);
+    event = gst_event_new_gap (time, duration);
+
+    bclass = GST_BASE_SINK_GET_CLASS (bsink);
+    ret = bclass->wait_event (bsink, event);
+    gst_event_unref (event);
+
+    /* Ensure we'll resync on the next buffer as if discont */
+    sink->next_sample = -1;
+    goto done;
+  }
+
   GST_DEBUG_OBJECT (sink,
-      "time %" GST_TIME_FORMAT ", offset %" G_GUINT64_FORMAT ", start %"
-      GST_TIME_FORMAT ", samples %u", GST_TIME_ARGS (time), in_offset,
+      "time %" GST_TIME_FORMAT ", start %"
+      GST_TIME_FORMAT ", samples %u", GST_TIME_ARGS (time),
       GST_TIME_ARGS (bsink->segment.start), samples);
 
   offset = 0;
@@ -1969,7 +1999,7 @@
           && stop >= bsink->segment.stop)) {
     GST_DEBUG_OBJECT (sink,
         "start playback because we are at the end of segment");
-    gst_audio_ring_buffer_start (ringbuf);
+    gst_audio_base_sink_force_start (sink);
   }
 
   ret = GST_FLOW_OK;
@@ -2183,14 +2213,22 @@
   GstAudioBaseSink *sink = GST_AUDIO_BASE_SINK (element);
 
   switch (transition) {
-    case GST_STATE_CHANGE_NULL_TO_READY:
-      if (sink->ringbuffer == NULL) {
-        gst_audio_clock_reset (GST_AUDIO_CLOCK (sink->provided_clock), 0);
-        sink->ringbuffer = gst_audio_base_sink_create_ringbuffer (sink);
-      }
+    case GST_STATE_CHANGE_NULL_TO_READY:{
+      GstAudioRingBuffer *rb;
+
+      gst_audio_clock_reset (GST_AUDIO_CLOCK (sink->provided_clock), 0);
+      rb = gst_audio_base_sink_create_ringbuffer (sink);
+      if (rb == NULL)
+        goto create_failed;
+
+      GST_OBJECT_LOCK (sink);
+      sink->ringbuffer = rb;
+      GST_OBJECT_UNLOCK (sink);
+
       if (!gst_audio_ring_buffer_open_device (sink->ringbuffer))
         goto open_failed;
       break;
+    }
     case GST_STATE_CHANGE_READY_TO_PAUSED:
       gst_audio_base_sink_reset_sync (sink);
       gst_audio_ring_buffer_set_flushing (sink->ringbuffer, FALSE);
@@ -2199,9 +2237,7 @@
       /* Only post clock-provide messages if this is the clock that
        * we've created. If the subclass has overriden it the subclass
        * should post this messages whenever necessary */
-      if (sink->provided_clock && GST_IS_AUDIO_CLOCK (sink->provided_clock) &&
-          GST_AUDIO_CLOCK_CAST (sink->provided_clock)->func ==
-          (GstAudioClockGetTimeFunc) gst_audio_base_sink_get_time)
+      if (gst_audio_base_sink_is_self_provided_clock (sink))
         gst_element_post_message (element,
             gst_message_new_clock_provide (GST_OBJECT_CAST (element),
                 sink->provided_clock, TRUE));
@@ -2239,9 +2275,7 @@
       /* Only post clock-lost messages if this is the clock that
        * we've created. If the subclass has overriden it the subclass
        * should post this messages whenever necessary */
-      if (sink->provided_clock && GST_IS_AUDIO_CLOCK (sink->provided_clock) &&
-          GST_AUDIO_CLOCK_CAST (sink->provided_clock)->func ==
-          (GstAudioClockGetTimeFunc) gst_audio_base_sink_get_time)
+      if (gst_audio_base_sink_is_self_provided_clock (sink))
         gst_element_post_message (element,
             gst_message_new_clock_lost (GST_OBJECT_CAST (element),
                 sink->provided_clock));
@@ -2285,6 +2319,12 @@
   return ret;
 
   /* ERRORS */
+create_failed:
+  {
+    /* subclass must post a meaningful error message */
+    GST_DEBUG_OBJECT (sink, "create failed");
+    return GST_STATE_CHANGE_FAILURE;
+  }
 open_failed:
   {
     /* subclass must post a meaningful error message */
diff --git a/gst-libs/gst/audio/gstaudiobasesink.h b/gst-libs/gst/audio/gstaudiobasesink.h
index c149260..49ee19d 100644
--- a/gst-libs/gst/audio/gstaudiobasesink.h
+++ b/gst-libs/gst/audio/gstaudiobasesink.h
@@ -59,6 +59,7 @@
 
 #define GST_TYPE_AUDIO_BASE_SINK                (gst_audio_base_sink_get_type())
 #define GST_AUDIO_BASE_SINK(obj)                (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_AUDIO_BASE_SINK,GstAudioBaseSink))
+#define GST_AUDIO_BASE_SINK_CAST(obj)           ((GstAudioBaseSink*)obj)
 #define GST_AUDIO_BASE_SINK_CLASS(klass)        (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_AUDIO_BASE_SINK,GstAudioBaseSinkClass))
 #define GST_AUDIO_BASE_SINK_GET_CLASS(obj)      (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_AUDIO_BASE_SINK, GstAudioBaseSinkClass))
 #define GST_IS_AUDIO_BASE_SINK(obj)             (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_AUDIO_BASE_SINK))
diff --git a/gst-libs/gst/audio/gstaudiobasesrc.c b/gst-libs/gst/audio/gstaudiobasesrc.c
index 38b22b5..51bb1e7 100644
--- a/gst-libs/gst/audio/gstaudiobasesrc.c
+++ b/gst-libs/gst/audio/gstaudiobasesrc.c
@@ -169,14 +169,17 @@
       g_param_spec_int64 ("buffer-time", "Buffer Time",
           "Size of audio buffer in microseconds. This is the maximum amount "
           "of data that is buffered in the device and the maximum latency that "
-          "the source reports", 1, G_MAXINT64, DEFAULT_BUFFER_TIME,
+          "the source reports. This value might be ignored by the element if "
+          "necessary; see \"actual-buffer-time\"",
+          1, G_MAXINT64, DEFAULT_BUFFER_TIME,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
   g_object_class_install_property (gobject_class, PROP_LATENCY_TIME,
       g_param_spec_int64 ("latency-time", "Latency Time",
           "The minimum amount of data to read in each iteration in "
-          "microseconds. This is the minimum latency that the source reports",
-          1, G_MAXINT64, DEFAULT_LATENCY_TIME,
+          "microseconds. This is the minimum latency that the source reports. "
+          "This value might be ignored by the element if necessary; see "
+          "\"actual-latency-time\"", 1, G_MAXINT64, DEFAULT_LATENCY_TIME,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
   /**
@@ -1124,17 +1127,23 @@
   GstAudioBaseSrc *src = GST_AUDIO_BASE_SRC (element);
 
   switch (transition) {
-    case GST_STATE_CHANGE_NULL_TO_READY:
+    case GST_STATE_CHANGE_NULL_TO_READY:{
+      GstAudioRingBuffer *rb;
+
       GST_DEBUG_OBJECT (src, "NULL->READY");
+      gst_audio_clock_reset (GST_AUDIO_CLOCK (src->clock), 0);
+      rb = gst_audio_base_src_create_ringbuffer (src);
+      if (rb == NULL)
+        goto create_failed;
+
       GST_OBJECT_LOCK (src);
-      if (src->ringbuffer == NULL) {
-        gst_audio_clock_reset (GST_AUDIO_CLOCK (src->clock), 0);
-        src->ringbuffer = gst_audio_base_src_create_ringbuffer (src);
-      }
+      src->ringbuffer = rb;
       GST_OBJECT_UNLOCK (src);
+
       if (!gst_audio_ring_buffer_open_device (src->ringbuffer))
         goto open_failed;
       break;
+    }
     case GST_STATE_CHANGE_READY_TO_PAUSED:
       GST_DEBUG_OBJECT (src, "READY->PAUSED");
       src->next_sample = -1;
@@ -1197,6 +1206,12 @@
   return ret;
 
   /* ERRORS */
+create_failed:
+  {
+    /* subclass must post a meaningful error message */
+    GST_DEBUG_OBJECT (src, "create failed");
+    return GST_STATE_CHANGE_FAILURE;
+  }
 open_failed:
   {
     /* subclass must post a meaningful error message */
diff --git a/gst-libs/gst/audio/gstaudiobasesrc.h b/gst-libs/gst/audio/gstaudiobasesrc.h
index d723514..0c5323e 100644
--- a/gst-libs/gst/audio/gstaudiobasesrc.h
+++ b/gst-libs/gst/audio/gstaudiobasesrc.h
@@ -37,6 +37,7 @@
 
 #define GST_TYPE_AUDIO_BASE_SRC                 (gst_audio_base_src_get_type())
 #define GST_AUDIO_BASE_SRC(obj)                 (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_AUDIO_BASE_SRC,GstAudioBaseSrc))
+#define GST_AUDIO_BASE_SRC_CAST(obj)            ((GstAudioBaseSrc*)obj)
 #define GST_AUDIO_BASE_SRC_CLASS(klass)         (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_AUDIO_BASE_SRC,GstAudioBaseSrcClass))
 #define GST_AUDIO_BASE_SRC_GET_CLASS(obj)       (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_AUDIO_BASE_SRC, GstAudioBaseSrcClass))
 #define GST_IS_AUDIO_BASE_SRC(obj)              (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_AUDIO_BASE_SRC))
diff --git a/gst-libs/gst/audio/gstaudiocdsrc.c b/gst-libs/gst/audio/gstaudiocdsrc.c
index a384d42..5c4a056 100644
--- a/gst-libs/gst/audio/gstaudiocdsrc.c
+++ b/gst-libs/gst/audio/gstaudiocdsrc.c
@@ -965,6 +965,7 @@
         ret = gst_audio_cd_src_handle_track_seek (src, 1.0, GST_SEEK_FLAG_FLUSH,
             GST_SEEK_TYPE_SET, track_num, GST_SEEK_TYPE_NONE, -1);
       }
+      g_free (uid);
       break;
     }
     default:{
diff --git a/gst-libs/gst/audio/gstaudioclock.c b/gst-libs/gst/audio/gstaudioclock.c
index 70f5074..17709fc 100644
--- a/gst-libs/gst/audio/gstaudioclock.c
+++ b/gst-libs/gst/audio/gstaudioclock.c
@@ -40,42 +40,12 @@
 GST_DEBUG_CATEGORY_STATIC (gst_audio_clock_debug);
 #define GST_CAT_DEFAULT gst_audio_clock_debug
 
-static void gst_audio_clock_class_init (GstAudioClockClass * klass);
-static void gst_audio_clock_init (GstAudioClock * clock);
-
 static void gst_audio_clock_dispose (GObject * object);
 
 static GstClockTime gst_audio_clock_get_internal_time (GstClock * clock);
 
-static GstSystemClockClass *parent_class = NULL;
-
-/* static guint gst_audio_clock_signals[LAST_SIGNAL] = { 0 }; */
-
-GType
-gst_audio_clock_get_type (void)
-{
-  static volatile gsize clock_type = 0;
-  static const GTypeInfo clock_info = {
-    sizeof (GstAudioClockClass),
-    NULL,
-    NULL,
-    (GClassInitFunc) gst_audio_clock_class_init,
-    NULL,
-    NULL,
-    sizeof (GstAudioClock),
-    4,
-    (GInstanceInitFunc) gst_audio_clock_init,
-    NULL
-  };
-
-  if (g_once_init_enter (&clock_type)) {
-    GType tmp = g_type_register_static (GST_TYPE_SYSTEM_CLOCK, "GstAudioClock",
-        &clock_info, 0);
-    g_once_init_leave (&clock_type, tmp);
-  }
-
-  return (GType) clock_type;
-}
+#define parent_class gst_audio_clock_parent_class
+G_DEFINE_TYPE (GstAudioClock, gst_audio_clock, GST_TYPE_SYSTEM_CLOCK);
 
 static void
 gst_audio_clock_class_init (GstAudioClockClass * klass)
@@ -86,8 +56,6 @@
   gobject_class = (GObjectClass *) klass;
   gstclock_class = (GstClockClass *) klass;
 
-  parent_class = g_type_class_peek_parent (klass);
-
   gobject_class->dispose = gst_audio_clock_dispose;
   gstclock_class->get_internal_time = gst_audio_clock_get_internal_time;
 
diff --git a/gst-libs/gst/audio/gstaudiodecoder.c b/gst-libs/gst/audio/gstaudiodecoder.c
index 314ce93..a4a184b 100644
--- a/gst-libs/gst/audio/gstaudiodecoder.c
+++ b/gst-libs/gst/audio/gstaudiodecoder.c
@@ -149,6 +149,7 @@
 #endif
 
 #include "gstaudiodecoder.h"
+#include "gstaudioutilsprivate.h"
 #include <gst/pbutils/descriptions.h>
 
 #include <string.h>
@@ -238,8 +239,9 @@
   gboolean drained;
   /* subclass currently being forcibly drained */
   gboolean force;
-  /* need to handle changed input caps */
-  gboolean do_caps;
+  /* input_segment are output_segment identical */
+  gboolean in_out_segment_sync;
+
 
   /* input bps estimatation */
   /* global in bytes seen */
@@ -379,6 +381,8 @@
     dec, GstQuery * query);
 static gboolean gst_audio_decoder_negotiate_default (GstAudioDecoder * dec);
 static gboolean gst_audio_decoder_negotiate_unlocked (GstAudioDecoder * dec);
+static gboolean gst_audio_decoder_handle_gap (GstAudioDecoder * dec,
+    GstEvent * event);
 
 static GstElementClass *parent_class = NULL;
 
@@ -502,7 +506,6 @@
       GST_DEBUG_FUNCPTR (gst_audio_decoder_src_event));
   gst_pad_set_query_function (dec->srcpad,
       GST_DEBUG_FUNCPTR (gst_audio_decoder_src_query));
-  gst_pad_use_fixed_caps (dec->srcpad);
   gst_element_add_pad (GST_ELEMENT (dec), dec->srcpad);
   GST_DEBUG_OBJECT (dec, "srcpad created");
 
@@ -520,6 +523,8 @@
   dec->priv->needs_format = DEFAULT_NEEDS_FORMAT;
 
   /* init state */
+  dec->priv->ctx.min_latency = 0;
+  dec->priv->ctx.max_latency = 0;
   gst_audio_decoder_reset (dec, TRUE);
   GST_DEBUG_OBJECT (dec, "init ok");
 }
@@ -547,6 +552,7 @@
 
     gst_segment_init (&dec->input_segment, GST_FORMAT_TIME);
     gst_segment_init (&dec->output_segment, GST_FORMAT_TIME);
+    dec->priv->in_out_segment_sync = TRUE;
 
     g_list_foreach (dec->priv->pending_events, (GFunc) gst_event_unref, NULL);
     g_list_free (dec->priv->pending_events);
@@ -615,6 +621,8 @@
       GST_DEBUG_OBJECT (dec, "starting segment %" GST_SEGMENT_FORMAT, &seg);
 
       dec->output_segment = seg;
+      dec->priv->in_out_segment_sync =
+          (memcmp (&dec->input_segment, &seg, sizeof (seg)) == 0);
       GST_AUDIO_DECODER_STREAM_UNLOCK (dec);
       break;
     }
@@ -928,11 +936,15 @@
       ctx->info.bpf);
   if (G_UNLIKELY (!buf)) {
     GST_DEBUG_OBJECT (dec, "no data after clipping to segment");
-    if (dec->output_segment.rate >= 0) {
-      if (ts >= dec->output_segment.stop)
+    /* only check and return EOS if upstream still
+     * in the same segment and interested as such */
+    if (dec->priv->in_out_segment_sync) {
+      if (dec->output_segment.rate >= 0) {
+        if (ts >= dec->output_segment.stop)
+          ret = GST_FLOW_EOS;
+      } else if (ts < dec->output_segment.start) {
         ret = GST_FLOW_EOS;
-    } else if (ts < dec->output_segment.start) {
-      ret = GST_FLOW_EOS;
+      }
     }
     goto exit;
   }
@@ -1078,6 +1090,39 @@
   g_list_free (pending_events);
 }
 
+/* Iterate the list of pending events, and ensure
+ * the current output segment is up to date for
+ * decoding */
+static void
+apply_pending_events (GstAudioDecoder * dec)
+{
+  GstAudioDecoderPrivate *priv = dec->priv;
+  GList *l;
+
+  GST_DEBUG_OBJECT (dec, "Applying pending segments");
+  for (l = priv->pending_events; l; l = l->next) {
+    GstEvent *event = GST_EVENT (l->data);
+    switch (GST_EVENT_TYPE (event)) {
+      case GST_EVENT_SEGMENT:{
+        GstSegment seg;
+
+        GST_AUDIO_DECODER_STREAM_LOCK (dec);
+        gst_event_copy_segment (event, &seg);
+
+        GST_DEBUG_OBJECT (dec, "starting segment %" GST_SEGMENT_FORMAT, &seg);
+
+        dec->output_segment = seg;
+        dec->priv->in_out_segment_sync =
+            (memcmp (&dec->input_segment, &seg, sizeof (seg)) == 0);
+        GST_AUDIO_DECODER_STREAM_UNLOCK (dec);
+        break;
+      }
+      default:
+        break;
+    }
+  }
+}
+
 static GstFlowReturn
 check_pending_reconfigure (GstAudioDecoder * dec)
 {
@@ -1174,7 +1219,7 @@
   /* frame and ts book-keeping */
   if (G_UNLIKELY (frames < 0)) {
     if (G_UNLIKELY (-frames - 1 > priv->frames.length)) {
-      GST_ELEMENT_WARNING (dec, STREAM, ENCODE,
+      GST_ELEMENT_WARNING (dec, STREAM, DECODE,
           ("received more decoded frames %d than provided %d", frames,
               priv->frames.length), (NULL));
       frames = 0;
@@ -1183,7 +1228,7 @@
     }
   } else if (G_UNLIKELY (frames > priv->frames.length)) {
     if (G_LIKELY (!priv->force)) {
-      GST_ELEMENT_WARNING (dec, STREAM, ENCODE,
+      GST_ELEMENT_WARNING (dec, STREAM, DECODE,
           ("received more decoded frames %d than provided %d", frames,
               priv->frames.length), (NULL));
     }
@@ -1289,7 +1334,7 @@
   /* ERRORS */
 wrong_buffer:
   {
-    GST_ELEMENT_ERROR (dec, STREAM, ENCODE, (NULL),
+    GST_ELEMENT_ERROR (dec, STREAM, DECODE, (NULL),
         ("buffer size %" G_GSIZE_FORMAT " not a multiple of %d", size,
             ctx->info.bpf));
     gst_buffer_unref (buf);
@@ -1302,6 +1347,27 @@
 gst_audio_decoder_handle_frame (GstAudioDecoder * dec,
     GstAudioDecoderClass * klass, GstBuffer * buffer)
 {
+  /* Skip decoding and send a GAP instead if
+   * GST_SEGMENT_FLAG_TRICKMODE_NO_AUDIO is set and we have timestamps
+   * FIXME: We only do this for forward playback atm, because reverse
+   * playback would require accumulating GAP events and pushing them
+   * out in reverse order as for normal audio samples
+   */
+  if (G_UNLIKELY (dec->input_segment.rate > 0.0
+          && dec->input_segment.flags & GST_SEGMENT_FLAG_TRICKMODE_NO_AUDIO)) {
+    if (buffer) {
+      GstClockTime ts = GST_BUFFER_PTS (buffer);
+      if (GST_CLOCK_TIME_IS_VALID (ts)) {
+        GstEvent *event = gst_event_new_gap (ts, GST_BUFFER_DURATION (buffer));
+
+        gst_buffer_unref (buffer);
+        GST_LOG_OBJECT (dec, "Skipping decode in trickmode and sending gap");
+        gst_audio_decoder_handle_gap (dec, event);
+        return GST_FLOW_OK;
+      }
+    }
+  }
+
   if (G_LIKELY (buffer)) {
     gsize size = gst_buffer_get_size (buffer);
     /* keep around for admin */
@@ -1443,29 +1509,40 @@
 
   if (dec->priv->drained && !dec->priv->gather)
     return GST_FLOW_OK;
-  else {
-    /* dispatch reverse pending buffers */
-    /* chain eventually calls upon drain as well, but by that time
-     * gather list should be clear, so ok ... */
-    if (dec->output_segment.rate < 0.0 && dec->priv->gather)
-      gst_audio_decoder_chain_reverse (dec, NULL);
-    /* have subclass give all it can */
-    ret = gst_audio_decoder_push_buffers (dec, TRUE);
-    /* ensure all output sent */
-    ret = gst_audio_decoder_output (dec, NULL);
-    /* everything should be away now */
-    if (dec->priv->frames.length) {
-      /* not fatal/impossible though if subclass/codec eats stuff */
-      GST_WARNING_OBJECT (dec, "still %d frames left after draining",
-          dec->priv->frames.length);
-      g_queue_foreach (&dec->priv->frames, (GFunc) gst_buffer_unref, NULL);
-      g_queue_clear (&dec->priv->frames);
-    }
-    /* discard (unparsed) leftover */
-    gst_adapter_clear (dec->priv->adapter);
 
-    return ret;
+  /* Apply any pending events before draining, as that
+   * may update the pending segment info */
+  apply_pending_events (dec);
+
+  /* dispatch reverse pending buffers */
+  /* chain eventually calls upon drain as well, but by that time
+   * gather list should be clear, so ok ... */
+  if (dec->output_segment.rate < 0.0 && dec->priv->gather)
+    gst_audio_decoder_chain_reverse (dec, NULL);
+  /* have subclass give all it can */
+  ret = gst_audio_decoder_push_buffers (dec, TRUE);
+  if (ret != GST_FLOW_OK) {
+    GST_WARNING_OBJECT (dec, "audio decoder push buffers failed");
+    goto drain_failed;
   }
+  /* ensure all output sent */
+  ret = gst_audio_decoder_output (dec, NULL);
+  if (ret != GST_FLOW_OK)
+    GST_WARNING_OBJECT (dec, "audio decoder output failed");
+
+drain_failed:
+  /* everything should be away now */
+  if (dec->priv->frames.length) {
+    /* not fatal/impossible though if subclass/codec eats stuff */
+    GST_WARNING_OBJECT (dec, "still %d frames left after draining",
+        dec->priv->frames.length);
+    g_queue_foreach (&dec->priv->frames, (GFunc) gst_buffer_unref, NULL);
+    g_queue_clear (&dec->priv->frames);
+  }
+
+  /* discard (unparsed) leftover */
+  gst_adapter_clear (dec->priv->adapter);
+  return ret;
 }
 
 /* hard == FLUSH, otherwise discont */
@@ -1730,21 +1807,6 @@
   return result;
 }
 
-static gboolean
-gst_audio_decoder_do_caps (GstAudioDecoder * dec)
-{
-  GstCaps *caps = gst_pad_get_current_caps (dec->sinkpad);
-  if (caps) {
-    if (!gst_audio_decoder_sink_setcaps (dec, caps)) {
-      gst_caps_unref (caps);
-      return FALSE;
-    }
-    gst_caps_unref (caps);
-  }
-  dec->priv->do_caps = FALSE;
-  return TRUE;
-}
-
 static GstFlowReturn
 gst_audio_decoder_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer)
 {
@@ -1753,12 +1815,6 @@
 
   dec = GST_AUDIO_DECODER (parent);
 
-  if (G_UNLIKELY (dec->priv->do_caps)) {
-    if (!gst_audio_decoder_do_caps (dec)) {
-      goto not_negotiated;
-    }
-  }
-
   if (G_UNLIKELY (!gst_pad_has_current_caps (pad) && dec->priv->needs_format))
     goto not_negotiated;
 
@@ -1930,13 +1986,6 @@
   gboolean ret;
   GstClockTime timestamp, duration;
 
-  /* Check if there is a caps pending to be pushed */
-  if (G_UNLIKELY (dec->priv->do_caps)) {
-    if (!gst_audio_decoder_do_caps (dec)) {
-      goto not_negotiated;
-    }
-  }
-
   /* Ensure we have caps first */
   GST_AUDIO_DECODER_STREAM_LOCK (dec);
   if (!GST_AUDIO_INFO_IS_VALID (&dec->priv->ctx.info)) {
@@ -1985,14 +2034,6 @@
     }
   }
   return ret;
-
-  /* ERRORS */
-not_negotiated:
-  {
-    GST_ELEMENT_ERROR (dec, CORE, NEGOTIATION, (NULL),
-        ("decoder not initialized"));
-    return FALSE;
-  }
 }
 
 static GList *
@@ -2001,14 +2042,14 @@
   GList *tmp;
 
   for (tmp = events; tmp; tmp = tmp->next) {
-    if (GST_EVENT_TYPE (tmp->data) == GST_EVENT_EOS ||
-        GST_EVENT_TYPE (tmp->data) == GST_EVENT_SEGMENT ||
-        !GST_EVENT_IS_STICKY (tmp->data)) {
-      gst_event_unref (tmp->data);
-    } else {
+    if (GST_EVENT_TYPE (tmp->data) != GST_EVENT_EOS &&
+        GST_EVENT_TYPE (tmp->data) != GST_EVENT_SEGMENT &&
+        GST_EVENT_IS_STICKY (tmp->data)) {
       gst_pad_store_sticky_event (pad, GST_EVENT_CAST (tmp->data));
     }
+    gst_event_unref (tmp->data);
   }
+  g_list_free (events);
 
   return NULL;
 }
@@ -2021,7 +2062,10 @@
   switch (GST_EVENT_TYPE (event)) {
     case GST_EVENT_STREAM_START:
       GST_AUDIO_DECODER_STREAM_LOCK (dec);
+      /* finish any data in current segment and clear the decoder
+       * to be ready for new stream data */
       gst_audio_decoder_drain (dec);
+      gst_audio_decoder_flush (dec, FALSE);
 
       GST_DEBUG_OBJECT (dec, "received STREAM_START. Clearing taglist");
       /* Flush our merged taglist after a STREAM_START */
@@ -2076,22 +2120,17 @@
         }
       }
 
-      /* finish current segment */
-      gst_audio_decoder_drain (dec);
-
-      {
-        /* prepare for next one */
-        gst_audio_decoder_flush (dec, FALSE);
-        /* and that's where we time from,
-         * in case upstream does not come up with anything better
-         * (e.g. upstream BYTE) */
-        if (format != GST_FORMAT_TIME) {
-          dec->priv->base_ts = seg.start;
-          dec->priv->samples = 0;
-        }
+      /* prepare for next segment */
+      /* Use the segment start as a base timestamp
+       * in case upstream does not come up with anything better
+       * (e.g. upstream BYTE) */
+      if (format != GST_FORMAT_TIME) {
+        dec->priv->base_ts = seg.start;
+        dec->priv->samples = 0;
       }
 
       /* and follow along with segment */
+      dec->priv->in_out_segment_sync = FALSE;
       dec->input_segment = seg;
       dec->priv->pending_events =
           g_list_append (dec->priv->pending_events, event);
@@ -2130,13 +2169,17 @@
 
       /* Forward EOS because no buffer or serialized event will come after
        * EOS and nothing could trigger another _finish_frame() call. */
+      if (dec->priv->pending_events)
+        send_pending_events (dec);
       ret = gst_audio_decoder_push_event (dec, event);
       break;
 
     case GST_EVENT_CAPS:
     {
-      ret = TRUE;
-      dec->priv->do_caps = TRUE;
+      GstCaps *caps;
+
+      gst_event_parse_caps (event, &caps);
+      ret = gst_audio_decoder_sink_setcaps (dec, caps);
       gst_event_unref (event);
       break;
     }
@@ -2222,7 +2265,7 @@
     return FALSE;
   }
 
-  if (end_type != GST_SEEK_TYPE_NONE ||
+  if ((end_type != GST_SEEK_TYPE_SET && end_type != GST_SEEK_TYPE_NONE) ||
       (end_type == GST_SEEK_TYPE_SET && end_time != GST_CLOCK_TIME_NONE)) {
     GST_DEBUG_OBJECT (dec, "unsupported seek: end time");
     return FALSE;
@@ -2451,6 +2494,48 @@
   return res;
 }
 
+/**
+ * gst_audio_decoder_proxy_getcaps:
+ * @decoder: a #GstAudioDecoder
+ * @caps: (allow-none): initial caps
+ * @filter: (allow-none): filter caps
+ *
+ * Returns caps that express @caps (or sink template caps if @caps == NULL)
+ * restricted to rate/channels/... combinations supported by downstream
+ * elements.
+ *
+ * Returns: (transfer full): a #GstCaps owned by caller
+ *
+ * Since: 1.6
+ */
+GstCaps *
+gst_audio_decoder_proxy_getcaps (GstAudioDecoder * decoder, GstCaps * caps,
+    GstCaps * filter)
+{
+  return __gst_audio_element_proxy_getcaps (GST_ELEMENT_CAST (decoder),
+      GST_AUDIO_DECODER_SINK_PAD (decoder),
+      GST_AUDIO_DECODER_SRC_PAD (decoder), caps, filter);
+}
+
+static GstCaps *
+gst_audio_decoder_sink_getcaps (GstAudioDecoder * decoder, GstCaps * filter)
+{
+  GstAudioDecoderClass *klass;
+  GstCaps *caps;
+
+  klass = GST_AUDIO_DECODER_GET_CLASS (decoder);
+
+  if (klass->getcaps)
+    caps = klass->getcaps (decoder, filter);
+  else
+    caps = gst_audio_decoder_proxy_getcaps (decoder, NULL, filter);
+
+  GST_LOG_OBJECT (decoder, "Returning caps %" GST_PTR_FORMAT, caps);
+
+  return caps;
+}
+
+
 static gboolean
 gst_audio_decoder_sink_query (GstPad * pad, GstObject * parent,
     GstQuery * query)
@@ -2490,6 +2575,41 @@
         res = klass->propose_allocation (dec, query);
       break;
     }
+    case GST_QUERY_CAPS:{
+      GstCaps *filter, *caps;
+
+      gst_query_parse_caps (query, &filter);
+      caps = gst_audio_decoder_sink_getcaps (dec, filter);
+      gst_query_set_caps_result (query, caps);
+      gst_caps_unref (caps);
+      res = TRUE;
+      break;
+    }
+    case GST_QUERY_ACCEPT_CAPS:{
+      GstCaps *caps;
+      GstCaps *allowed_caps;
+      GstCaps *template_caps;
+      gboolean accept;
+
+      gst_query_parse_accept_caps (query, &caps);
+
+      template_caps = gst_pad_get_pad_template_caps (pad);
+      accept = gst_caps_is_subset (caps, template_caps);
+      gst_caps_unref (template_caps);
+
+      if (accept) {
+        allowed_caps = gst_pad_query_caps (GST_AUDIO_DECODER_SINK_PAD (dec),
+            caps);
+
+        accept = gst_caps_can_intersect (caps, allowed_caps);
+
+        gst_caps_unref (allowed_caps);
+      }
+
+      gst_query_set_accept_caps_result (query, accept);
+      res = TRUE;
+      break;
+    }
     case GST_QUERY_SEEKING:
     {
       GstFormat format;
@@ -2617,9 +2737,10 @@
 
         GST_OBJECT_LOCK (dec);
         /* add our latency */
-        if (min_latency != -1)
-          min_latency += dec->priv->ctx.min_latency;
-        if (max_latency != -1)
+        min_latency += dec->priv->ctx.min_latency;
+        if (max_latency == -1 || dec->priv->ctx.max_latency == -1)
+          max_latency = -1;
+        else
           max_latency += dec->priv->ctx.max_latency;
         GST_OBJECT_UNLOCK (dec);
 
@@ -2655,7 +2776,7 @@
   if (ret)
     dec->priv->active = FALSE;
 
-  return TRUE;
+  return ret;
 }
 
 static gboolean
@@ -2678,7 +2799,7 @@
   if (ret)
     dec->priv->active = TRUE;
 
-  return TRUE;
+  return ret;
 }
 
 static void
@@ -2955,11 +3076,17 @@
     GstClockTime min, GstClockTime max)
 {
   g_return_if_fail (GST_IS_AUDIO_DECODER (dec));
+  g_return_if_fail (GST_CLOCK_TIME_IS_VALID (min));
+  g_return_if_fail (min <= max);
 
   GST_OBJECT_LOCK (dec);
   dec->priv->ctx.min_latency = min;
   dec->priv->ctx.max_latency = max;
   GST_OBJECT_UNLOCK (dec);
+
+  /* post latency message on the bus */
+  gst_element_post_message (GST_ELEMENT (dec),
+      gst_message_new_latency (GST_OBJECT (dec)));
 }
 
 /**
diff --git a/gst-libs/gst/audio/gstaudiodecoder.h b/gst-libs/gst/audio/gstaudiodecoder.h
index 8f97fe8..56cfa46 100644
--- a/gst-libs/gst/audio/gstaudiodecoder.h
+++ b/gst-libs/gst/audio/gstaudiodecoder.h
@@ -231,6 +231,11 @@
  *                      Propose buffer allocation parameters for upstream elements.
  *                      Subclasses should chain up to the parent implementation to
  *                      invoke the default handler.
+ * @getcaps:        Optional.
+ *                  Allows for a custom sink getcaps implementation.
+ *                  If not implemented,
+ *                  default returns gst_audio_decoder_proxy_getcaps
+ *                  applied to sink template caps.
  *
  * Subclasses can override any of the available virtual methods or not, as
  * needed. At minimum @handle_frame (and likely @set_format) needs to be
@@ -278,8 +283,11 @@
   gboolean      (*propose_allocation) (GstAudioDecoder *dec,
                                        GstQuery * query);
 
+  GstCaps *     (*getcaps)            (GstAudioDecoder * dec,
+                                       GstCaps * filter);
+
   /*< private >*/
-  gpointer       _gst_reserved[GST_PADDING_LARGE];
+  gpointer       _gst_reserved[GST_PADDING_LARGE - 1];
 };
 
 GType             gst_audio_decoder_get_type (void);
@@ -287,6 +295,9 @@
 gboolean          gst_audio_decoder_set_output_format  (GstAudioDecoder    * dec,
                                                         const GstAudioInfo * info);
 
+GstCaps *         gst_audio_decoder_proxy_getcaps (GstAudioDecoder * decoder,
+                                                   GstCaps         * caps,
+                                                   GstCaps         * filter);
 gboolean          gst_audio_decoder_negotiate (GstAudioDecoder * dec);
 
 GstFlowReturn     gst_audio_decoder_finish_frame (GstAudioDecoder * dec,
diff --git a/gst-libs/gst/audio/gstaudioencoder.c b/gst-libs/gst/audio/gstaudioencoder.c
index a94fd01..55ef3bf 100644
--- a/gst-libs/gst/audio/gstaudioencoder.c
+++ b/gst-libs/gst/audio/gstaudioencoder.c
@@ -152,6 +152,7 @@
 #endif
 
 #include "gstaudioencoder.h"
+#include "gstaudioutilsprivate.h"
 #include <gst/base/gstadapter.h>
 #include <gst/audio/audio.h>
 #include <gst/pbutils/descriptions.h>
@@ -445,6 +446,8 @@
   enc->priv->drainable = DEFAULT_DRAINABLE;
 
   /* init state */
+  enc->priv->ctx.min_latency = 0;
+  enc->priv->ctx.max_latency = 0;
   gst_audio_encoder_reset (enc, TRUE);
   GST_DEBUG_OBJECT (enc, "init ok");
 }
@@ -741,9 +744,7 @@
     /* advance sample view */
     if (G_UNLIKELY (samples * ctx->info.bpf > priv->offset)) {
       if (G_LIKELY (!priv->force)) {
-        /* no way we can let this pass */
-        g_assert_not_reached ();
-        /* really no way */
+        /* we should have received EOS to enable force */
         goto overflow;
       } else {
         priv->offset = 0;
@@ -893,11 +894,14 @@
 overflow:
   {
     GST_ELEMENT_ERROR (enc, STREAM, ENCODE,
-        ("received more encoded samples %d than provided %d",
+        ("received more encoded samples %d than provided %d as inputs",
             samples, priv->offset / ctx->info.bpf), (NULL));
     if (buf)
       gst_buffer_unref (buf);
     ret = GST_FLOW_ERROR;
+    /* no way we can let this pass */
+    g_assert_not_reached ();
+    /* really no way */
     goto exit;
   }
 }
@@ -1246,8 +1250,6 @@
   GstAudioInfo state;
   gboolean res = TRUE;
   guint old_rate;
-  GstClockTime old_min_latency;
-  GstClockTime old_max_latency;
 
   klass = GST_AUDIO_ENCODER_GET_CLASS (enc);
 
@@ -1290,12 +1292,6 @@
   enc->priv->ctx.frame_max = 0;
   enc->priv->ctx.lookahead = 0;
 
-  /* element might report latency */
-  GST_OBJECT_LOCK (enc);
-  old_min_latency = ctx->min_latency;
-  old_max_latency = ctx->max_latency;
-  GST_OBJECT_UNLOCK (enc);
-
   if (klass->set_format)
     res = klass->set_format (enc, &state);
 
@@ -1309,18 +1305,6 @@
     goto exit;
   }
 
-  /* notify if new latency */
-  GST_OBJECT_LOCK (enc);
-  if ((ctx->min_latency > 0 && ctx->min_latency != old_min_latency) ||
-      (ctx->max_latency > 0 && ctx->max_latency != old_max_latency)) {
-    GST_OBJECT_UNLOCK (enc);
-    /* post latency message on the bus */
-    gst_element_post_message (GST_ELEMENT (enc),
-        gst_message_new_latency (GST_OBJECT (enc)));
-    GST_OBJECT_LOCK (enc);
-  }
-  GST_OBJECT_UNLOCK (enc);
-
 exit:
 
   GST_AUDIO_ENCODER_STREAM_UNLOCK (enc);
@@ -1345,83 +1329,22 @@
 /**
  * gst_audio_encoder_proxy_getcaps:
  * @enc: a #GstAudioEncoder
- * @caps: initial caps
- * @filter: filter caps
+ * @caps: (allow-none): initial caps
+ * @filter: (allow-none): filter caps
  *
  * Returns caps that express @caps (or sink template caps if @caps == NULL)
  * restricted to channel/rate combinations supported by downstream elements
  * (e.g. muxers).
  *
- * Returns: a #GstCaps owned by caller
+ * Returns: (transfer full): a #GstCaps owned by caller
  */
 GstCaps *
 gst_audio_encoder_proxy_getcaps (GstAudioEncoder * enc, GstCaps * caps,
     GstCaps * filter)
 {
-  GstCaps *templ_caps = NULL;
-  GstCaps *allowed = NULL;
-  GstCaps *fcaps, *filter_caps;
-  gint i, j;
-
-  /* we want to be able to communicate to upstream elements like audioconvert
-   * and audioresample any rate/channel restrictions downstream (e.g. muxer
-   * only accepting certain sample rates) */
-  templ_caps =
-      caps ? gst_caps_ref (caps) : gst_pad_get_pad_template_caps (enc->sinkpad);
-  allowed = gst_pad_get_allowed_caps (enc->srcpad);
-  if (!allowed || gst_caps_is_empty (allowed) || gst_caps_is_any (allowed)) {
-    fcaps = templ_caps;
-    goto done;
-  }
-
-  GST_LOG_OBJECT (enc, "template caps %" GST_PTR_FORMAT, templ_caps);
-  GST_LOG_OBJECT (enc, "allowed caps %" GST_PTR_FORMAT, allowed);
-
-  filter_caps = gst_caps_new_empty ();
-
-  for (i = 0; i < gst_caps_get_size (templ_caps); i++) {
-    GQuark q_name;
-
-    q_name = gst_structure_get_name_id (gst_caps_get_structure (templ_caps, i));
-
-    /* pick rate + channel fields from allowed caps */
-    for (j = 0; j < gst_caps_get_size (allowed); j++) {
-      const GstStructure *allowed_s = gst_caps_get_structure (allowed, j);
-      const GValue *val;
-      GstStructure *s;
-
-      s = gst_structure_new_id_empty (q_name);
-      if ((val = gst_structure_get_value (allowed_s, "rate")))
-        gst_structure_set_value (s, "rate", val);
-      if ((val = gst_structure_get_value (allowed_s, "channels")))
-        gst_structure_set_value (s, "channels", val);
-      /* following might also make sense for some encoded formats,
-       * e.g. wavpack */
-      if ((val = gst_structure_get_value (allowed_s, "channel-mask")))
-        gst_structure_set_value (s, "channel-mask", val);
-
-      filter_caps = gst_caps_merge_structure (filter_caps, s);
-    }
-  }
-
-  fcaps = gst_caps_intersect (filter_caps, templ_caps);
-  gst_caps_unref (filter_caps);
-  gst_caps_unref (templ_caps);
-
-  if (filter) {
-    GST_LOG_OBJECT (enc, "intersecting with %" GST_PTR_FORMAT, filter);
-    filter_caps = gst_caps_intersect_full (filter, fcaps,
-        GST_CAPS_INTERSECT_FIRST);
-    gst_caps_unref (fcaps);
-    fcaps = filter_caps;
-  }
-
-done:
-  gst_caps_replace (&allowed, NULL);
-
-  GST_LOG_OBJECT (enc, "proxy caps %" GST_PTR_FORMAT, fcaps);
-
-  return fcaps;
+  return __gst_audio_element_proxy_getcaps (GST_ELEMENT_CAST (enc),
+      GST_AUDIO_ENCODER_SINK_PAD (enc), GST_AUDIO_ENCODER_SRC_PAD (enc),
+      caps, filter);
 }
 
 static GstCaps *
@@ -1441,13 +1364,12 @@
   GList *tmp;
 
   for (tmp = events; tmp; tmp = tmp->next) {
-    if (GST_EVENT_TYPE (tmp->data) == GST_EVENT_EOS ||
-        GST_EVENT_TYPE (tmp->data) == GST_EVENT_SEGMENT ||
-        !GST_EVENT_IS_STICKY (tmp->data)) {
-      gst_event_unref (tmp->data);
-    } else {
+    if (GST_EVENT_TYPE (tmp->data) != GST_EVENT_EOS &&
+        GST_EVENT_TYPE (tmp->data) != GST_EVENT_SEGMENT &&
+        GST_EVENT_IS_STICKY (tmp->data)) {
       gst_pad_store_sticky_event (pad, GST_EVENT_CAST (tmp->data));
     }
+    gst_event_unref (tmp->data);
   }
   g_list_free (events);
 
@@ -1915,9 +1837,10 @@
 
         GST_OBJECT_LOCK (enc);
         /* add our latency */
-        if (min_latency != -1)
-          min_latency += enc->priv->ctx.min_latency;
-        if (max_latency != -1)
+        min_latency += enc->priv->ctx.min_latency;
+        if (max_latency == -1 || enc->priv->ctx.max_latency == -1)
+          max_latency = -1;
+        else
           max_latency += enc->priv->ctx.max_latency;
         GST_OBJECT_UNLOCK (enc);
 
@@ -2001,11 +1924,8 @@
   GST_DEBUG_OBJECT (enc, "activate %d", active);
 
   if (active) {
-
-    if (enc->priv->tags)
-      gst_tag_list_unref (enc->priv->tags);
-    enc->priv->tags = gst_tag_list_new_empty ();
-    enc->priv->tags_changed = FALSE;
+    /* arrange clean state */
+    gst_audio_encoder_reset (enc, TRUE);
 
     if (!enc->priv->active && klass->start)
       result = klass->start (enc);
@@ -2203,6 +2123,8 @@
     GstClockTime min, GstClockTime max)
 {
   g_return_if_fail (GST_IS_AUDIO_ENCODER (enc));
+  g_return_if_fail (GST_CLOCK_TIME_IS_VALID (min));
+  g_return_if_fail (min <= max);
 
   GST_OBJECT_LOCK (enc);
   enc->priv->ctx.min_latency = min;
@@ -2211,6 +2133,10 @@
 
   GST_LOG_OBJECT (enc, "set to %" GST_TIME_FORMAT "-%" GST_TIME_FORMAT,
       GST_TIME_ARGS (min), GST_TIME_ARGS (max));
+
+  /* post latency message on the bus */
+  gst_element_post_message (GST_ELEMENT (enc),
+      gst_message_new_latency (GST_OBJECT (enc)));
 }
 
 /**
@@ -2705,7 +2631,7 @@
 /*
  * gst_audio_encoder_set_output_format:
  * @enc: a #GstAudioEncoder
- * @caps: #GstCaps
+ * @caps: (transfer none): #GstCaps
  *
  * Configure output caps on the srcpad of @enc.
  *
diff --git a/gst-libs/gst/audio/gstaudioiec61937.c b/gst-libs/gst/audio/gstaudioiec61937.c
index b1ad046..6ae854b 100644
--- a/gst-libs/gst/audio/gstaudioiec61937.c
+++ b/gst-libs/gst/audio/gstaudioiec61937.c
@@ -114,12 +114,15 @@
 
       if (version == 1 && layer == 1)
         frames = 384;
-      else if (version == 2 && layer == 1 && spec->info.rate < 32000)
+      else if (version == 2 && layer == 1 && spec->info.rate <= 12000)
         frames = 768;
-      else if (version == 2 && layer == 1 && spec->info.rate < 32000)
+      else if (version == 2 && layer == 2 && spec->info.rate <= 12000)
         frames = 2304;
-      else
+      else {
+        /* MPEG-1 layer 2,3, MPEG-2 with or without extension,
+         * MPEG-2 layer 3 low sample freq. */
         frames = 1152;
+      }
 
       return frames * 4;
     }
@@ -273,17 +276,18 @@
        *                            06 = MPEG 2, with extension
        *                            08 - MPEG 2 LSF, Layer 1
        *                            09 - MPEG 2 LSF, Layer 2
-       *                            10 - MPEG 2 LSF, Layer 3 */
+       *                            10 - MPEG 2 LSF, Layer 3
+       *                 FIXME: we don't handle type 06 at the moment */
       if (version == 1 && layer == 1)
         dst[five] = 0x04;
       else if ((version == 1 && (layer == 2 || layer == 3)) ||
-          (version == 2 && spec->info.rate >= 32000))
+          (version == 2 && spec->info.rate >= 12000))
         dst[five] = 0x05;
-      else if (version == 2 && layer == 1 && spec->info.rate < 32000)
+      else if (version == 2 && layer == 1 && spec->info.rate < 12000)
         dst[five] = 0x08;
-      else if (version == 2 && layer == 2 && spec->info.rate < 32000)
+      else if (version == 2 && layer == 2 && spec->info.rate < 12000)
         dst[five] = 0x09;
-      else if (version == 2 && layer == 3 && spec->info.rate < 32000)
+      else if (version == 2 && layer == 3 && spec->info.rate < 12000)
         dst[five] = 0x0A;
       else
         g_return_val_if_reached (FALSE);
diff --git a/gst-libs/gst/audio/gstaudiopack-dist.c b/gst-libs/gst/audio/gstaudiopack-dist.c
index 004e203..4f8c124 100644
--- a/gst-libs/gst/audio/gstaudiopack-dist.c
+++ b/gst-libs/gst/audio/gstaudiopack-dist.c
@@ -250,7 +250,7 @@
     /* 2: convuwl */
     var38.i = (orc_uint16) var37.i;
     /* 3: shll */
-    var39.i = var38.i << 24;
+    var39.i = ((orc_uint32) var38.i) << 24;
     /* 5: xorl */
     var36.i = var39.i ^ var35.i;
     /* 6: storel */
@@ -292,7 +292,7 @@
     /* 2: convuwl */
     var38.i = (orc_uint16) var37.i;
     /* 3: shll */
-    var39.i = var38.i << 24;
+    var39.i = ((orc_uint32) var38.i) << 24;
     /* 5: xorl */
     var36.i = var39.i ^ var35.i;
     /* 6: storel */
@@ -391,7 +391,7 @@
     /* 2: convuwl */
     var37.i = (orc_uint16) var36.i;
     /* 3: shll */
-    var35.i = var37.i << 24;
+    var35.i = ((orc_uint32) var37.i) << 24;
     /* 4: storel */
     ptr0[i] = var35;
   }
@@ -423,7 +423,7 @@
     /* 2: convuwl */
     var37.i = (orc_uint16) var36.i;
     /* 3: shll */
-    var35.i = var37.i << 24;
+    var35.i = ((orc_uint32) var37.i) << 24;
     /* 4: storel */
     ptr0[i] = var35;
   }
@@ -522,7 +522,7 @@
     /* 1: convuwl */
     var36.i = (orc_uint16) var33.i;
     /* 2: shll */
-    var37.i = var36.i << 16;
+    var37.i = ((orc_uint32) var36.i) << 16;
     /* 4: xorl */
     var35.i = var37.i ^ var34.i;
     /* 5: storel */
@@ -561,7 +561,7 @@
     /* 1: convuwl */
     var36.i = (orc_uint16) var33.i;
     /* 2: shll */
-    var37.i = var36.i << 16;
+    var37.i = ((orc_uint32) var36.i) << 16;
     /* 4: xorl */
     var35.i = var37.i ^ var34.i;
     /* 5: storel */
@@ -654,7 +654,7 @@
     /* 1: convuwl */
     var35.i = (orc_uint16) var33.i;
     /* 2: shll */
-    var34.i = var35.i << 16;
+    var34.i = ((orc_uint32) var35.i) << 16;
     /* 3: storel */
     ptr0[i] = var34;
   }
@@ -683,7 +683,7 @@
     /* 1: convuwl */
     var35.i = (orc_uint16) var33.i;
     /* 2: shll */
-    var34.i = var35.i << 16;
+    var34.i = ((orc_uint32) var35.i) << 16;
     /* 3: storel */
     ptr0[i] = var34;
   }
@@ -781,7 +781,7 @@
     /* 2: convuwl */
     var38.i = (orc_uint16) var37.i;
     /* 3: shll */
-    var39.i = var38.i << 16;
+    var39.i = ((orc_uint32) var38.i) << 16;
     /* 5: xorl */
     var36.i = var39.i ^ var35.i;
     /* 6: storel */
@@ -823,7 +823,7 @@
     /* 2: convuwl */
     var38.i = (orc_uint16) var37.i;
     /* 3: shll */
-    var39.i = var38.i << 16;
+    var39.i = ((orc_uint32) var38.i) << 16;
     /* 5: xorl */
     var36.i = var39.i ^ var35.i;
     /* 6: storel */
@@ -923,7 +923,7 @@
     /* 2: convuwl */
     var37.i = (orc_uint16) var36.i;
     /* 3: shll */
-    var35.i = var37.i << 16;
+    var35.i = ((orc_uint32) var37.i) << 16;
     /* 4: storel */
     ptr0[i] = var35;
   }
@@ -955,7 +955,7 @@
     /* 2: convuwl */
     var37.i = (orc_uint16) var36.i;
     /* 3: shll */
-    var35.i = var37.i << 16;
+    var35.i = ((orc_uint32) var37.i) << 16;
     /* 4: storel */
     ptr0[i] = var35;
   }
@@ -1051,7 +1051,7 @@
     /* 0: loadl */
     var33 = ptr4[i];
     /* 1: shll */
-    var36.i = var33.i << 8;
+    var36.i = ((orc_uint32) var33.i) << 8;
     /* 3: xorl */
     var35.i = var36.i ^ var34.i;
     /* 4: storel */
@@ -1087,7 +1087,7 @@
     /* 0: loadl */
     var33 = ptr4[i];
     /* 1: shll */
-    var36.i = var33.i << 8;
+    var36.i = ((orc_uint32) var33.i) << 8;
     /* 3: xorl */
     var35.i = var36.i ^ var34.i;
     /* 4: storel */
@@ -1175,7 +1175,7 @@
     /* 0: loadl */
     var32 = ptr4[i];
     /* 1: shll */
-    var33.i = var32.i << 8;
+    var33.i = ((orc_uint32) var32.i) << 8;
     /* 2: storel */
     ptr0[i] = var33;
   }
@@ -1201,7 +1201,7 @@
     /* 0: loadl */
     var32 = ptr4[i];
     /* 1: shll */
-    var33.i = var32.i << 8;
+    var33.i = ((orc_uint32) var32.i) << 8;
     /* 2: storel */
     ptr0[i] = var33;
   }
@@ -1293,7 +1293,7 @@
     /* 1: swapl */
     var36.i = ORC_SWAP_L (var33.i);
     /* 2: shll */
-    var37.i = var36.i << 8;
+    var37.i = ((orc_uint32) var36.i) << 8;
     /* 4: xorl */
     var35.i = var37.i ^ var34.i;
     /* 5: storel */
@@ -1332,7 +1332,7 @@
     /* 1: swapl */
     var36.i = ORC_SWAP_L (var33.i);
     /* 2: shll */
-    var37.i = var36.i << 8;
+    var37.i = ((orc_uint32) var36.i) << 8;
     /* 4: xorl */
     var35.i = var37.i ^ var34.i;
     /* 5: storel */
@@ -1426,7 +1426,7 @@
     /* 1: swapl */
     var35.i = ORC_SWAP_L (var33.i);
     /* 2: shll */
-    var34.i = var35.i << 8;
+    var34.i = ((orc_uint32) var35.i) << 8;
     /* 3: storel */
     ptr0[i] = var34;
   }
@@ -1455,7 +1455,7 @@
     /* 1: swapl */
     var35.i = ORC_SWAP_L (var33.i);
     /* 2: shll */
-    var34.i = var35.i << 8;
+    var34.i = ((orc_uint32) var35.i) << 8;
     /* 3: storel */
     ptr0[i] = var34;
   }
diff --git a/gst-libs/gst/audio/gstaudioringbuffer.c b/gst-libs/gst/audio/gstaudioringbuffer.c
index 7f4b17b..d6f65f3 100644
--- a/gst-libs/gst/audio/gstaudioringbuffer.c
+++ b/gst-libs/gst/audio/gstaudioringbuffer.c
@@ -675,7 +675,7 @@
   buf->acquired = FALSE;
 
   /* if this fails, something is wrong in this file */
-  g_assert (buf->open == TRUE);
+  g_assert (buf->open);
 
   rclass = GST_AUDIO_RING_BUFFER_GET_CLASS (buf);
   if (G_LIKELY (rclass->release))
@@ -910,7 +910,7 @@
   if (G_UNLIKELY (!buf->acquired))
     goto not_acquired;
 
-  if (G_UNLIKELY (g_atomic_int_get (&buf->may_start) == FALSE))
+  if (G_UNLIKELY (!g_atomic_int_get (&buf->may_start)))
     goto may_not_start;
 
   /* if stopped, set to started */
@@ -1277,7 +1277,7 @@
   if (G_UNLIKELY (g_atomic_int_get (&buf->state) !=
           GST_AUDIO_RING_BUFFER_STATE_STARTED)) {
     /* see if we are allowed to start it */
-    if (G_UNLIKELY (g_atomic_int_get (&buf->may_start) == FALSE))
+    if (G_UNLIKELY (!g_atomic_int_get (&buf->may_start)))
       goto no_start;
 
     GST_DEBUG_OBJECT (buf, "start!");
@@ -1462,6 +1462,18 @@
   g_return_val_if_fail (buf->memory != NULL, -1);
   g_return_val_if_fail (data != NULL, -1);
 
+  /* writing stuff now, ensure running clock */
+  if (G_UNLIKELY (g_atomic_int_get (&buf->state) !=
+          GST_AUDIO_RING_BUFFER_STATE_STARTED)) {
+    /* see if we are allowed to start it */
+    if (G_UNLIKELY (g_atomic_int_get (&buf->may_start) == FALSE)) {
+      GST_DEBUG_OBJECT (buf, "not allowed to start");
+    } else {
+      GST_DEBUG_OBJECT (buf, "start!");
+      gst_audio_ring_buffer_start (buf);
+    }
+  }
+
   need_reorder = buf->need_reorder;
 
   channels = buf->spec.info.channels;
@@ -1725,8 +1737,8 @@
        * reading) */
       diff = segdone - readseg;
 
-      GST_DEBUG
-          ("pointer at %d, sample %" G_GUINT64_FORMAT
+      GST_DEBUG_OBJECT
+          (buf, "pointer at %d, sample %" G_GUINT64_FORMAT
           ", read from %d-%d, to_read %d, diff %d, segtotal %d, segsize %d",
           segdone, sample, readseg, sampleoff, to_read, diff, segtotal,
           segsize);
@@ -1838,7 +1850,7 @@
   *len = buf->spec.segsize;
   *readptr = data + *segment * *len;
 
-  GST_LOG ("prepare read from segment %d (real %d) @%p",
+  GST_LOG_OBJECT (buf, "prepare read from segment %d (real %d) @%p",
       *segment, segdone, *readptr);
 
   /* callback to fill the memory with data, for pull based
@@ -1908,7 +1920,7 @@
   data = buf->memory;
   data += segment * buf->spec.segsize;
 
-  GST_LOG ("clear segment %d @%p", segment, data);
+  GST_LOG_OBJECT (buf, "clear segment %d @%p", segment, data);
 
   memcpy (data, buf->empty_seg, buf->spec.segsize);
 }
diff --git a/gst-libs/gst/audio/gstaudiosink.c b/gst-libs/gst/audio/gstaudiosink.c
index a978030..0604f59 100644
--- a/gst-libs/gst/audio/gstaudiosink.c
+++ b/gst-libs/gst/audio/gstaudiosink.c
@@ -412,7 +412,17 @@
   spec->seglatency = spec->segtotal + 1;
 
   buf->size = spec->segtotal * spec->segsize;
-  buf->memory = g_malloc0 (buf->size);
+
+  buf->memory = g_malloc (buf->size);
+
+  if (buf->spec.type == GST_AUDIO_RING_BUFFER_FORMAT_TYPE_RAW) {
+    gst_audio_format_fill_silence (buf->spec.info.finfo, buf->memory,
+        buf->size);
+  } else {
+    /* FIXME, non-raw formats get 0 as the empty sample */
+    memset (buf->memory, 0, buf->size);
+  }
+
 
   return TRUE;
 
diff --git a/gst-libs/gst/audio/gstaudiosrc.c b/gst-libs/gst/audio/gstaudiosrc.c
index 197ab17..888fdf2 100644
--- a/gst-libs/gst/audio/gstaudiosrc.c
+++ b/gst-libs/gst/audio/gstaudiosrc.c
@@ -393,7 +393,14 @@
     goto could_not_open;
 
   buf->size = spec->segtotal * spec->segsize;
-  buf->memory = g_malloc0 (buf->size);
+  buf->memory = g_malloc (buf->size);
+  if (buf->spec.type == GST_AUDIO_RING_BUFFER_FORMAT_TYPE_RAW) {
+    gst_audio_format_fill_silence (buf->spec.info.finfo, buf->memory,
+        buf->size);
+  } else {
+    /* FIXME, non-raw formats get 0 as the empty sample */
+    memset (buf->memory, 0, buf->size);
+  }
 
   abuf = GST_AUDIO_SRC_RING_BUFFER (buf);
   abuf->running = TRUE;
diff --git a/gst-libs/gst/audio/gstaudioutilsprivate.c b/gst-libs/gst/audio/gstaudioutilsprivate.c
new file mode 100644
index 0000000..870bcd6
--- /dev/null
+++ b/gst-libs/gst/audio/gstaudioutilsprivate.c
@@ -0,0 +1,144 @@
+/* GStreamer
+ * Copyright (C) 2011 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>.
+ * Copyright (C) 2011 Nokia Corporation. All rights reserved.
+ *   Contact: Stefan Kost <stefan.kost@nokia.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <gst/audio/audio.h>
+#include "gstaudioutilsprivate.h"
+
+/*
+ * Takes caps and copies its audio fields to tmpl_caps
+ */
+static GstCaps *
+__gst_audio_element_proxy_caps (GstElement * element, GstCaps * templ_caps,
+    GstCaps * caps)
+{
+  GstCaps *result = gst_caps_new_empty ();
+  gint i, j;
+  gint templ_caps_size = gst_caps_get_size (templ_caps);
+  gint caps_size = gst_caps_get_size (caps);
+
+  for (i = 0; i < templ_caps_size; i++) {
+    GQuark q_name =
+        gst_structure_get_name_id (gst_caps_get_structure (templ_caps, i));
+    GstCapsFeatures *features = gst_caps_get_features (templ_caps, i);
+
+    for (j = 0; j < caps_size; j++) {
+      const GstStructure *caps_s = gst_caps_get_structure (caps, j);
+      const GValue *val;
+      GstStructure *s;
+      GstCaps *tmp = gst_caps_new_empty ();
+
+      s = gst_structure_new_id_empty (q_name);
+      if ((val = gst_structure_get_value (caps_s, "rate")))
+        gst_structure_set_value (s, "rate", val);
+      if ((val = gst_structure_get_value (caps_s, "channels")))
+        gst_structure_set_value (s, "channels", val);
+      if ((val = gst_structure_get_value (caps_s, "channels-mask")))
+        gst_structure_set_value (s, "channels-mask", val);
+
+      gst_caps_append_structure_full (tmp, s,
+          gst_caps_features_copy (features));
+      result = gst_caps_merge (result, tmp);
+    }
+  }
+
+  return result;
+}
+
+/**
+ * __gst_audio_element_proxy_getcaps:
+ * @element: a #GstElement
+ * @sinkpad: the element's sink #GstPad
+ * @srcpad: the element's source #GstPad
+ * @initial_caps: initial caps
+ * @filter: filter caps
+ *
+ * Returns caps that express @initial_caps (or sink template caps if
+ * @initial_caps == NULL) restricted to rate/channels/...
+ * combinations supported by downstream elements (e.g. muxers).
+ *
+ * Returns: a #GstCaps owned by caller
+ */
+GstCaps *
+__gst_audio_element_proxy_getcaps (GstElement * element, GstPad * sinkpad,
+    GstPad * srcpad, GstCaps * initial_caps, GstCaps * filter)
+{
+  GstCaps *templ_caps, *src_templ_caps;
+  GstCaps *peer_caps;
+  GstCaps *allowed;
+  GstCaps *fcaps, *filter_caps;
+
+  /* Allow downstream to specify rate/channels constraints
+   * and forward them upstream for audio converters to handle
+   */
+  templ_caps = initial_caps ? gst_caps_ref (initial_caps) :
+      gst_pad_get_pad_template_caps (sinkpad);
+  src_templ_caps = gst_pad_get_pad_template_caps (srcpad);
+  if (filter && !gst_caps_is_any (filter)) {
+    GstCaps *proxy_filter =
+        __gst_audio_element_proxy_caps (element, src_templ_caps, filter);
+
+    peer_caps = gst_pad_peer_query_caps (srcpad, proxy_filter);
+    gst_caps_unref (proxy_filter);
+  } else {
+    peer_caps = gst_pad_peer_query_caps (srcpad, NULL);
+  }
+
+  allowed = gst_caps_intersect_full (peer_caps, src_templ_caps,
+      GST_CAPS_INTERSECT_FIRST);
+
+  gst_caps_unref (src_templ_caps);
+  gst_caps_unref (peer_caps);
+
+  if (!allowed || gst_caps_is_any (allowed)) {
+    fcaps = templ_caps;
+    goto done;
+  } else if (gst_caps_is_empty (allowed)) {
+    fcaps = gst_caps_ref (allowed);
+    goto done;
+  }
+
+  GST_LOG_OBJECT (element, "template caps %" GST_PTR_FORMAT, templ_caps);
+  GST_LOG_OBJECT (element, "allowed caps %" GST_PTR_FORMAT, allowed);
+
+  filter_caps = __gst_audio_element_proxy_caps (element, templ_caps, allowed);
+
+  fcaps = gst_caps_intersect (filter_caps, templ_caps);
+  gst_caps_unref (filter_caps);
+  gst_caps_unref (templ_caps);
+
+  if (filter) {
+    GST_LOG_OBJECT (element, "intersecting with %" GST_PTR_FORMAT, filter);
+    filter_caps = gst_caps_intersect (fcaps, filter);
+    gst_caps_unref (fcaps);
+    fcaps = filter_caps;
+  }
+
+done:
+  gst_caps_replace (&allowed, NULL);
+
+  GST_LOG_OBJECT (element, "proxy caps %" GST_PTR_FORMAT, fcaps);
+
+  return fcaps;
+}
diff --git a/gst-libs/gst/audio/gstaudioutilsprivate.h b/gst-libs/gst/audio/gstaudioutilsprivate.h
new file mode 100644
index 0000000..553af0a
--- /dev/null
+++ b/gst-libs/gst/audio/gstaudioutilsprivate.h
@@ -0,0 +1,40 @@
+/* GStreamer
+ * Copyright (C) 2011 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>.
+ * Copyright (C) 2011 Nokia Corporation. All rights reserved.
+ *   Contact: Stefan Kost <stefan.kost@nokia.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef __GST_AUDIO_H__
+#include <gst/audio/audio.h>
+#endif
+
+#ifndef _GST_AUDIO_UTILS_PRIVATE_H_
+#define _GST_AUDIO_UTILS_PRIVATE_H_
+
+#include <gst/gst.h>
+
+G_BEGIN_DECLS
+
+/* Element utility functions */
+GstCaps *__gst_audio_element_proxy_getcaps (GstElement * element, GstPad * sinkpad,
+                                            GstPad * srcpad, GstCaps * initial_caps,
+                                            GstCaps * filter);
+
+G_END_DECLS
+
+#endif
diff --git a/gst-libs/gst/audio/streamvolume.h b/gst-libs/gst/audio/streamvolume.h
index 74cde1e..c8d16e9 100644
--- a/gst-libs/gst/audio/streamvolume.h
+++ b/gst-libs/gst/audio/streamvolume.h
@@ -28,12 +28,8 @@
   (gst_stream_volume_get_type ())
 #define GST_STREAM_VOLUME(obj) \
   (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_STREAM_VOLUME, GstStreamVolume))
-#define GST_STREAM_VOLUME_INTERFACE(iface) \
-  (G_TYPE_CHECK_INTERFACE_CAST ((iface), GST_TYPE_STREAM_VOLUME, GstStreamVolumeInterface))
 #define GST_IS_STREAM_VOLUME(obj) \
   (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_STREAM_VOLUME))
-#define GST_IS_STREAM_VOLUME_INTERFACE(iface) \
-  (G_TYPE_CHECK_INTERFACE_TYPE ((iface), GST_TYPE_STREAM_VOLUME))
 #define GST_STREAM_VOLUME_GET_INTERFACE(inst) \
   (G_TYPE_INSTANCE_GET_INTERFACE ((inst), GST_TYPE_STREAM_VOLUME, GstStreamVolumeInterface))
 
diff --git a/gst-libs/gst/fft/Makefile.in b/gst-libs/gst/fft/Makefile.in
index b33304c..a2165c2 100644
--- a/gst-libs/gst/fft/Makefile.in
+++ b/gst-libs/gst/fft/Makefile.in
@@ -106,7 +106,6 @@
 	$(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-x11.m4 \
 	$(top_srcdir)/common/m4/gst.m4 \
 	$(top_srcdir)/common/m4/gtk-doc.m4 \
 	$(top_srcdir)/common/m4/introspection.m4 \
@@ -308,6 +307,8 @@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_2_0_CFLAGS = @GIO_UNIX_2_0_CFLAGS@
+GIO_UNIX_2_0_LIBS = @GIO_UNIX_2_0_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
@@ -337,6 +338,8 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
+GST_NET_CFLAGS = @GST_NET_CFLAGS@
+GST_NET_LIBS = @GST_NET_LIBS@
 GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
 GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
@@ -364,7 +367,6 @@
 GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
 GTK_X11_LIBS = @GTK_X11_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
-HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -468,13 +470,12 @@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-XMKMF = @XMKMF@
+XSHM_CFLAGS = @XSHM_CFLAGS@
 XSHM_LIBS = @XSHM_LIBS@
+XVIDEO_CFLAGS = @XVIDEO_CFLAGS@
 XVIDEO_LIBS = @XVIDEO_LIBS@
 X_CFLAGS = @X_CFLAGS@
-X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
-X_PRE_LIBS = @X_PRE_LIBS@
 ZLIB_CFLAGS = @ZLIB_CFLAGS@
 ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
diff --git a/gst-libs/gst/pbutils/Makefile.in b/gst-libs/gst/pbutils/Makefile.in
index 018a4d6..55e2034 100644
--- a/gst-libs/gst/pbutils/Makefile.in
+++ b/gst-libs/gst/pbutils/Makefile.in
@@ -116,7 +116,6 @@
 	$(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-x11.m4 \
 	$(top_srcdir)/common/m4/gst.m4 \
 	$(top_srcdir)/common/m4/gtk-doc.m4 \
 	$(top_srcdir)/common/m4/introspection.m4 \
@@ -322,6 +321,8 @@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_2_0_CFLAGS = @GIO_UNIX_2_0_CFLAGS@
+GIO_UNIX_2_0_LIBS = @GIO_UNIX_2_0_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
@@ -351,6 +352,8 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
+GST_NET_CFLAGS = @GST_NET_CFLAGS@
+GST_NET_LIBS = @GST_NET_LIBS@
 GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
 GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
@@ -378,7 +381,6 @@
 GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
 GTK_X11_LIBS = @GTK_X11_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
-HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -482,13 +484,12 @@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-XMKMF = @XMKMF@
+XSHM_CFLAGS = @XSHM_CFLAGS@
 XSHM_LIBS = @XSHM_LIBS@
+XVIDEO_CFLAGS = @XVIDEO_CFLAGS@
 XVIDEO_LIBS = @XVIDEO_LIBS@
 X_CFLAGS = @X_CFLAGS@
-X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
-X_PRE_LIBS = @X_PRE_LIBS@
 ZLIB_CFLAGS = @ZLIB_CFLAGS@
 ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
diff --git a/gst-libs/gst/pbutils/codec-utils.c b/gst-libs/gst/pbutils/codec-utils.c
index 517bbb2..5964975 100644
--- a/gst-libs/gst/pbutils/codec-utils.c
+++ b/gst-libs/gst/pbutils/codec-utils.c
@@ -427,7 +427,7 @@
 gst_codec_utils_h264_get_profile (const guint8 * sps, guint len)
 {
   const gchar *profile = NULL;
-  gint csf1, csf3;
+  gint csf1, csf3, csf5;
 
   g_return_val_if_fail (sps != NULL, NULL);
 
@@ -438,6 +438,7 @@
 
   csf1 = (sps[1] & 0x40) >> 6;
   csf3 = (sps[1] & 0x10) >> 4;
+  csf5 = (sps[1] & 0x04) >> 2;
 
   switch (sps[0]) {
     case 66:
@@ -482,6 +483,15 @@
     case 128:
       profile = "stereo-high";
       break;
+    case 83:
+      if (csf5)
+        profile = "scalable-constrained-baseline";
+      else
+        profile = "scalable-baseline";
+      break;
+    case 86:
+      profile = "scalable-high";
+      break;
     default:
       return NULL;
   }
@@ -540,6 +550,8 @@
         return "4.2";
       case 51:
         return "5.1";
+      case 52:
+        return "5.2";
       default:
         return NULL;
     }
@@ -591,6 +603,8 @@
     return 50;
   else if (!strcmp (level, "5.1"))
     return 51;
+  else if (!strcmp (level, "5.2"))
+    return 52;
 
   GST_WARNING ("Invalid level %s", level);
   return 0;
diff --git a/gst-libs/gst/pbutils/descriptions.c b/gst-libs/gst/pbutils/descriptions.c
index fcb0f1b..25c496e 100644
--- a/gst-libs/gst/pbutils/descriptions.c
+++ b/gst-libs/gst/pbutils/descriptions.c
@@ -133,6 +133,8 @@
   {"audio/x-amr-wb-sh", "Adaptive Multi Rate WideBand (AMR-WB)",
       AUDIO_CONTAINER, "amr"},
   {"audio/x-au", "Sun .au", AUDIO_CONTAINER, "au"},
+  {"audio/x-audible", "Audible Audio", AUDIO_CONTAINER, "aa"},
+  {"audio/x-caf", "Apple Core Audio Format", AUDIO_CONTAINER, "caf"},
   {"audio/x-celt", "Constrained Energy Lapped Transform (CELT)", FLAG_AUDIO,
       ""},
   {"audio/x-cinepak", "Cinepak Audio", FLAG_AUDIO, ""},
@@ -196,7 +198,6 @@
   {"video/x-cinepak", "Cinepak Video", FLAG_VIDEO, ""},
   {"video/x-cirrus-logic-accupak", "Cirrus Logipak AccuPak", FLAG_VIDEO, ""},
   {"video/x-compressed-yuv", N_("CYUV Lossless"), FLAG_VIDEO, ""},
-  {"video/x-dirac", "Dirac", FLAG_VIDEO, ""},
   {"video/x-dnxhd", "Digital Nonlinear Extensible High Definition (DNxHD)",
       FLAG_VIDEO, ""},
   {"subpicture/x-dvd", "DVD subpicture", FLAG_VIDEO, ""},
@@ -303,6 +304,7 @@
   {"video/mpeg", NULL, FLAG_VIDEO, ""},
   {"video/x-asus", NULL, FLAG_VIDEO, ""},
   {"video/x-ati-vcr", NULL, FLAG_VIDEO, ""},
+  {"video/x-dirac", NULL, FLAG_VIDEO, ""},
   {"video/x-divx", NULL, FLAG_VIDEO, ""},
   {"video/x-dv", "Digital Video (DV) System Stream",
       FLAG_CONTAINER | FLAG_SYSTEMSTREAM, "dv"},
@@ -327,6 +329,102 @@
   {"video/x-tscc", NULL, FLAG_VIDEO, ""}
 };
 
+static const gchar *
+pbutils_desc_get_profile_name_from_nick (const gchar * map, gsize map_len,
+    const gchar * nick)
+{
+  const gchar *end = map + map_len;
+  const gchar *p;
+
+  p = map;
+  while (*p != '\0' && p < end) {
+    guint len = strlen (p);
+
+    if (strcmp (p, nick) == 0)
+      return p + len + 1;
+    p += len + 1;
+    p += strlen (p) + 1;
+  }
+  return NULL;
+}
+
+static const gchar *
+pbutils_desc_get_mpeg2v_profile_name_from_nick (const gchar * nick)
+{
+  static const gchar map[] =
+      "simple\000Simple\000main\000Main\000high\000High\000";
+
+  return pbutils_desc_get_profile_name_from_nick (map, sizeof (map), nick);
+}
+
+static const gchar *
+pbutils_desc_get_mpeg4v_profile_name_from_nick (const gchar * nick)
+{
+  static const gchar map[] = "simple\000Simple\000"
+      "simple-scalable\000Simple Scalable\000"
+      "core\000Core\000"
+      "main\000Main\000"
+      "n-bit\000N-bit\000"
+      "scalable\000Scalable\000"
+      "hybrid\000Hybrid\000"
+      "advanced-real-time-simple\000Advanced Real-Time Simple\000"
+      "core-scalable\000Core-Scalable\000"
+      "advanced-coding-efficiency\000Advanced Coding Efficiency\000"
+      "advanced-core\000Advanced Core\000"
+      "advanced-scalable-texture\000Advanced Scalable Texture\000"
+      "simple-face\000Simple Face Animation\000"
+      "simple-fba\000Simple FBA\000"
+      "simple-studio\000Simple Studio\000"
+      "core-studio\000Core Studio\000"
+      "advanced-simple\000Advanced Simple\000"
+      "fine-granularity-scalable\000Fine Granularity Scalable\000"
+      "basic-animated-texture\000Basic Animated Texture\000"
+      "baseline\000Baseline Profile\000";
+
+  return pbutils_desc_get_profile_name_from_nick (map, sizeof (map), nick);
+}
+
+static const gchar *
+pbutils_desc_get_h264_profile_name_from_nick (const gchar * nick)
+{
+  static const gchar map[] = "baseline\000Baseline\000"
+      "constrained-baseline\000Constrained Baseline\000"
+      "main\000Main\000"
+      "extended\000Extended\000"
+      "high\000High\000"
+      "high-10-intra\000High 10 Intra\000"
+      "high-10\000High 10\000"
+      "high-4:2:2-intra\000High 4:2:2 Intra\000"
+      "high-4:2:2\000High 4:2:2\000"
+      "high-4:4:4-intra\000High 4:4:4 Intra\000"
+      "high-4:4:4\000High 4:4:4\000"
+      "cavlc-4:4:4-intra\000CAVLC 4:4:4 Intra\000"
+      "multiview-high\000Multiview High\000"
+      "stereo-high\000Stereo High\000"
+      "scalable-constrained-baseline\000Scalable Constrained Baseline\000"
+      "scalable-baseline\000Scalable Baseline\000"
+      "scalable-high\000Scalable High\000";
+
+  return pbutils_desc_get_profile_name_from_nick (map, sizeof (map), nick);
+}
+
+static const gchar *
+pbutils_desc_get_h265_profile_name_from_nick (const gchar * nick)
+{
+  static const gchar map[] = "main\000Main\000"
+      "main-10\000Main 10\000"
+      "main-12\000Main 12\000"
+      "main-4:2:2-10\000Main 4:2:2 10\000"
+      "main-4:2:2-12\000Main 4:2:2 12\000"
+      "main-4:4:4\000Main 4:4:4\000"
+      "main-4:4:4-10\000Main 4:4:4 10\000"
+      "main-4:4:4-12\000Main 4:4:4 12\000"
+      "main-4:4:4-16-intra\000Main 4:4:4 16 Intra\000"
+      "main-still-picture\000Main Still Picture\000";
+
+  return pbutils_desc_get_profile_name_from_nick (map, sizeof (map), nick);
+}
+
 /* returns static descriptions and dynamic ones (such as video/x-raw),
  * or NULL if caps aren't known at all */
 static gchar *
@@ -430,6 +528,7 @@
     return g_strdup (ret);
   } else if (strcmp (info->type, "video/x-h264") == 0) {
     const gchar *variant, *ret;
+    const gchar *profile;
 
     variant = gst_structure_get_string (s, "variant");
     if (variant == NULL)
@@ -444,10 +543,34 @@
       GST_WARNING ("Unknown H264 variant '%s'", variant);
       ret = "H.264";
     }
-    return g_strdup (ret);
+    /* profile */
+    profile = gst_structure_get_string (s, "profile");
+    if (profile != NULL)
+      profile = pbutils_desc_get_h264_profile_name_from_nick (profile);
+    if (profile == NULL)
+      return g_strdup (ret);
+    return g_strdup_printf ("%s (%s Profile)", ret, profile);
   } else if (strcmp (info->type, "video/x-h265") == 0) {
-    /* TODO: Any variants? */
+    const gchar *profile = gst_structure_get_string (s, "profile");
+
+    if (profile != NULL)
+      profile = pbutils_desc_get_h265_profile_name_from_nick (profile);
+    if (profile != NULL)
+      return g_strdup_printf ("H.265 (%s Profile)", profile);
+
     return g_strdup ("H.265");
+  } else if (strcmp (info->type, "video/x-dirac") == 0) {
+    const gchar *profile = gst_structure_get_string (s, "profile");
+    if (profile == NULL)
+      return g_strdup ("Dirac");
+    if (strcmp (profile, "vc2-low-delay") == 0)
+      return g_strdup_printf ("Dirac (%s)", "VC-2 Low Delay Profile");
+    else if (strcmp (profile, "vc2-simple") == 0)
+      return g_strdup_printf ("Dirac (%s)", "VC-2 Simple Profile");
+    else if (strcmp (profile, "vc2-main") == 0)
+      return g_strdup_printf ("Dirac (%s)", "VC-2 Main Profile");
+    else
+      return g_strdup ("Dirac");
   } else if (strcmp (info->type, "video/x-divx") == 0) {
     gint ver = 0;
 
@@ -674,7 +797,19 @@
       if (sysstream) {
         return g_strdup_printf ("MPEG-%d System Stream", ver);
       } else {
-        return g_strdup_printf ("MPEG-%d Video", ver);
+        const gchar *profile = gst_structure_get_string (s, "profile");
+        if (profile != NULL) {
+          if (ver == 4)
+            profile = pbutils_desc_get_mpeg4v_profile_name_from_nick (profile);
+          else if (ver == 2)
+            profile = pbutils_desc_get_mpeg2v_profile_name_from_nick (profile);
+          else
+            profile = NULL;
+        }
+        if (profile != NULL)
+          return g_strdup_printf ("MPEG-%d Video (%s Profile)", ver, profile);
+        else
+          return g_strdup_printf ("MPEG-%d Video", ver);
       }
     }
     GST_WARNING ("Missing mpegversion field in mpeg video caps "
diff --git a/gst-libs/gst/pbutils/encoding-profile.c b/gst-libs/gst/pbutils/encoding-profile.c
index 59371c4..770e2ce 100644
--- a/gst-libs/gst/pbutils/encoding-profile.c
+++ b/gst-libs/gst/pbutils/encoding-profile.c
@@ -85,6 +85,51 @@
  * </para>
  * </refsect2>
  * <refsect2>
+ * <title>Example: Using an encoder preset with a profile</title>
+ * <para>
+ * |[
+ * #include <gst/pbutils/encoding-profile.h>
+ * ...
+ * GstEncodingProfile *
+ * create_ogg_theora_profile(void)
+ *{
+ *  GstEncodingVideoProfile *v;
+ *  GstEncodingAudioProfile *a;
+ *  GstEncodingContainerProfile *prof;
+ *  GstCaps *caps;
+ *  GstPreset *preset;
+ *
+ *  caps = gst_caps_from_string ("application/ogg");
+ *  prof = gst_encoding_container_profile_new ("Ogg audio/video",
+ *     "Standard OGG/THEORA/VORBIS",
+ *     caps, NULL);
+ *  gst_caps_unref (caps);
+ *
+ *  preset = GST_PRESET (gst_element_factory_make ("theoraenc", "theorapreset"));
+ *  g_object_set (preset, "bitrate", 1000, NULL);
+ *  // The preset will be saved on the filesystem,
+ *  // so try to use a descriptive name
+ *  gst_preset_save_preset (preset, "theora_bitrate_preset");
+ *  gst_object_unref (preset);
+ *
+ *  caps = gst_caps_from_string ("video/x-theora");
+ *  v = gst_encoding_video_profile_new (caps, "theorapreset", NULL, 0);
+ *  gst_encoding_container_profile_add_profile (prof, (GstEncodingProfile*) v);
+ *  gst_caps_unref (caps);
+ *
+ *  caps = gst_caps_from_string ("audio/x-vorbis");
+ *  a = gst_encoding_audio_profile_new (caps, NULL, NULL, 0);
+ *  gst_encoding_container_profile_add_profile (prof, (GstEncodingProfile*) a);
+ *  gst_caps_unref (caps);
+ *
+ *  return (GstEncodingProfile*) prof;
+ *}
+ *
+ *
+ * ]|
+ * </para>
+ * </refsect2>
+ * <refsect2>
  * <title>Example: Listing categories, targets and profiles</title>
  * <para>
  * |[
@@ -94,7 +139,7 @@
  * GList *categories, *tmpc;
  * GList *targets, *tmpt;
  * ...
- * categories = gst_encoding_target_list_available_categories();
+ * categories = gst_encoding_list_available_categories ();
  *
  * ... Show available categories to user ...
  *
@@ -103,7 +148,7 @@
  *
  *   ... and we can list all targets within that category ...
  *
- *   targets = gst_encoding_target_list_all (category);
+ *   targets = gst_encoding_list_all_targets (category);
  *
  *   ... and show a list to our users ...
  *
@@ -143,6 +188,7 @@
   gchar *preset_name;
   guint presence;
   GstCaps *restriction;
+  gboolean allow_dynamic_output;
 };
 
 struct _GstEncodingProfileClass
@@ -420,6 +466,35 @@
 }
 
 /**
+ * gst_encoding_profile_get_allow_dynamic_output:
+ * @profile: a #GstEncodingProfile
+ *
+ * Get whether the format that has been negotiated in at some point can be renegotiated
+ * later during the encoding.
+ */
+gboolean
+gst_encoding_profile_get_allow_dynamic_output (GstEncodingProfile * profile)
+{
+  return profile->allow_dynamic_output;
+}
+
+/**
+ * gst_encoding_profile_set_allow_dynamic_output:
+ * @profile: a #GstEncodingProfile
+ * @allow_dynamic_output: Whether the format that has been negotiated first can be renegotiated
+ * during the encoding
+ *
+ * Sets whether the format that has been negotiated in at some point can be renegotiated
+ * later during the encoding.
+ */
+void
+gst_encoding_profile_set_allow_dynamic_output (GstEncodingProfile * profile,
+    gboolean allow_dynamic_output)
+{
+  profile->allow_dynamic_output = allow_dynamic_output;
+}
+
+/**
  * gst_encoding_profile_set_preset:
  * @profile: a #GstEncodingProfile
  * @preset: the element preset to use
@@ -792,6 +867,7 @@
     prof->restriction = gst_caps_ref (restriction);
   prof->presence = presence;
   prof->preset_name = NULL;
+  prof->allow_dynamic_output = TRUE;
 
   return prof;
 }
@@ -1187,7 +1263,7 @@
  * @info: (transfer none): The #GstDiscovererInfo to read from
  *
  * Creates a #GstEncodingProfile matching the formats from the given
- * #GstEncodingProfile. Streams other than audio or video (eg,
+ * #GstDiscovererInfo. Streams other than audio or video (eg,
  * subtitles), are currently ignored.
  *
  * Returns: (transfer full): The new #GstEncodingProfile or %NULL.
diff --git a/gst-libs/gst/pbutils/encoding-profile.h b/gst-libs/gst/pbutils/encoding-profile.h
index 60e148d..401c547 100644
--- a/gst-libs/gst/pbutils/encoding-profile.h
+++ b/gst-libs/gst/pbutils/encoding-profile.h
@@ -125,6 +125,9 @@
 GstCaps *       gst_encoding_profile_get_format         (GstEncodingProfile *profile);
 void            gst_encoding_profile_set_format         (GstEncodingProfile *profile,
                                                          GstCaps *format);
+gboolean  gst_encoding_profile_get_allow_dynamic_output (GstEncodingProfile *profile);
+void      gst_encoding_profile_set_allow_dynamic_output (GstEncodingProfile *profile,
+                                                         gboolean allow_dynamic_output);
 const gchar *   gst_encoding_profile_get_preset         (GstEncodingProfile *profile);
 const gchar *   gst_encoding_profile_get_preset_name    (GstEncodingProfile *profile);
 void            gst_encoding_profile_set_preset         (GstEncodingProfile *profile,
diff --git a/gst-libs/gst/pbutils/gstdiscoverer-types.c b/gst-libs/gst/pbutils/gstdiscoverer-types.c
index 12905ef..1d38a5c 100644
--- a/gst-libs/gst/pbutils/gstdiscoverer-types.c
+++ b/gst-libs/gst/pbutils/gstdiscoverer-types.c
@@ -1085,9 +1085,10 @@
  *
  * Get the installer details for missing elements
  *
- * Returns: (transfer full): (array zero-terminated=1): An array of strings
+ * Returns: (transfer none) (array zero-terminated=1): An array of strings
  * containing informations about how to install the various missing elements
- * for @info to be usable. Free with g_strfreev.
+ * for @info to be usable. If you wish to use the strings after the life-time
+ * of @info, you will need to copy them.
  *
  * Since: 1.4
  */
diff --git a/gst-libs/gst/pbutils/gstdiscoverer.c b/gst-libs/gst/pbutils/gstdiscoverer.c
index 337cd32..244b374 100644
--- a/gst-libs/gst/pbutils/gstdiscoverer.c
+++ b/gst-libs/gst/pbutils/gstdiscoverer.c
@@ -1462,6 +1462,11 @@
     dc->priv->current_info->result = GST_DISCOVERER_TIMEOUT;
   }
 
+  DISCO_LOCK (dc);
+  dc->priv->processing = FALSE;
+  DISCO_UNLOCK (dc);
+
+
   GST_DEBUG ("Done");
 
   g_timer_stop (timer);
@@ -1514,12 +1519,20 @@
   GST_DEBUG ("Cleaning up");
 
   gst_bus_set_flushing (dc->priv->bus, TRUE);
+
+  DISCO_LOCK (dc);
+  if (dc->priv->current_error) {
+    g_error_free (dc->priv->current_error);
+    DISCO_UNLOCK (dc);
+    gst_element_set_state ((GstElement *) dc->priv->pipeline, GST_STATE_NULL);
+  } else {
+    DISCO_UNLOCK (dc);
+  }
+
   gst_element_set_state ((GstElement *) dc->priv->pipeline, GST_STATE_READY);
   gst_bus_set_flushing (dc->priv->bus, FALSE);
 
   DISCO_LOCK (dc);
-  if (dc->priv->current_error)
-    g_error_free (dc->priv->current_error);
   dc->priv->current_error = NULL;
   if (dc->priv->current_topology) {
     gst_structure_free (dc->priv->current_topology);
diff --git a/gst-libs/gst/pbutils/gstdiscoverer.h b/gst-libs/gst/pbutils/gstdiscoverer.h
index 26d5ac4..bb3db24 100644
--- a/gst-libs/gst/pbutils/gstdiscoverer.h
+++ b/gst-libs/gst/pbutils/gstdiscoverer.h
@@ -191,7 +191,7 @@
 GType gst_discoverer_info_get_type (void);
 
 #define gst_discoverer_info_unref(info) (g_object_unref((GObject*)info))
-#define gst_discoverer_info_ref(info) (g_object_ref((Gbject*)info))
+#define gst_discoverer_info_ref(info) (g_object_ref((GObject*)info))
 
 GstDiscovererInfo*        gst_discoverer_info_copy (GstDiscovererInfo * ptr);
 
diff --git a/gst-libs/gst/pbutils/install-plugins.c b/gst-libs/gst/pbutils/install-plugins.c
index ebfa76a..8ea1689 100644
--- a/gst-libs/gst/pbutils/install-plugins.c
+++ b/gst-libs/gst/pbutils/install-plugins.c
@@ -381,10 +381,97 @@
 /* private struct */
 struct _GstInstallPluginsContext
 {
+  gchar *confirm_search;
+  gchar *desktop_id;
+  gchar *startup_notification_id;
   guint xid;
 };
 
 /**
+ * gst_install_plugins_context_set_confirm_search:
+ * @ctx: a #GstInstallPluginsContext
+ * @confirm_search: whether to ask for confirmation before searching for plugins
+ *
+ * This function is used to tell the external installer process whether it
+ * should ask for confirmation or not before searching for missing plugins.
+ *
+ * If set, this option will be passed to the installer via a
+ * --interaction=[show-confirm-search|hide-confirm-search] command line option.
+ *
+ * Since: 1.6
+ */
+void
+gst_install_plugins_context_set_confirm_search (GstInstallPluginsContext * ctx,
+    gboolean confirm_search)
+{
+  g_return_if_fail (ctx != NULL);
+
+  if (confirm_search)
+    ctx->confirm_search = g_strdup ("show-confirm-search");
+  else
+    ctx->confirm_search = g_strdup ("hide-confirm-search");
+}
+
+/**
+ * gst_install_plugins_context_set_desktop_id:
+ * @ctx: a #GstInstallPluginsContext
+ * @desktop_id: the desktop file ID of the calling application
+ *
+ * This function is used to pass the calling application's desktop file ID to
+ * the external installer process.
+ *
+ * A desktop file ID is the basename of the desktop file, including the
+ * .desktop extension.
+ *
+ * If set, the desktop file ID will be passed to the installer via a
+ * --desktop-id= command line option.
+ *
+ * Since: 1.6
+ */
+void
+gst_install_plugins_context_set_desktop_id (GstInstallPluginsContext * ctx,
+    const gchar * desktop_id)
+{
+  g_return_if_fail (ctx != NULL);
+
+  ctx->desktop_id = g_strdup (desktop_id);
+}
+
+/**
+ * gst_install_plugins_context_set_startup_notification_id:
+ * @ctx: a #GstInstallPluginsContext
+ * @startup_id: the startup notification ID
+ *
+ * Sets the startup notification ID for the launched process.
+ *
+ * This is typically used to to pass the current X11 event timestamp to the
+ * external installer process.
+ *
+ * Startup notification IDs are defined in the
+ * [FreeDesktop.Org Startup Notifications standard](http://standards.freedesktop.org/startup-notification-spec/startup-notification-latest.txt).
+ *
+ * If set, the ID will be passed to the installer via a
+ * --startup-notification-id= command line option.
+ *
+ * GTK+/GNOME applications should be able to create a startup notification ID
+ * like this:
+ * <programlisting>
+ *   timestamp = gtk_get_current_event_time ();
+ *   startup_id = g_strdup_printf ("_TIME%u", timestamp);
+ * ...
+ * </programlisting>
+ *
+ * Since: 1.6
+ */
+void gst_install_plugins_context_set_startup_notification_id
+    (GstInstallPluginsContext * ctx, const gchar * startup_id)
+{
+  g_return_if_fail (ctx != NULL);
+
+  ctx->startup_notification_id = g_strdup (startup_id);
+}
+
+/**
  * gst_install_plugins_context_set_xid:
  * @ctx: a #GstInstallPluginsContext
  * @xid: the XWindow ID (XID) of the top-level application
@@ -445,6 +532,9 @@
 {
   g_return_if_fail (ctx != NULL);
 
+  g_free (ctx->confirm_search);
+  g_free (ctx->desktop_id);
+  g_free (ctx->startup_notification_id);
   g_free (ctx);
 }
 
@@ -454,6 +544,9 @@
   GstInstallPluginsContext *ret;
 
   ret = gst_install_plugins_context_new ();
+  ret->confirm_search = g_strdup (ctx->confirm_search);
+  ret->desktop_id = g_strdup (ctx->desktop_id);
+  ret->startup_notification_id = g_strdup (ctx->startup_notification_id);
   ret->xid = ctx->xid;
 
   return ret;
@@ -495,23 +588,33 @@
   GPtrArray *arr;
   gboolean ret;
   GError *err = NULL;
-  gchar **argv, xid_str[64] = { 0, };
+  gchar **argv;
 
-  arr = g_ptr_array_new ();
+  arr = g_ptr_array_new_with_free_func (g_free);
 
   /* argv[0] = helper path */
-  g_ptr_array_add (arr, (gchar *) gst_install_plugins_get_helper ());
+  g_ptr_array_add (arr, g_strdup (gst_install_plugins_get_helper ()));
 
   /* add any additional command line args from the context */
+  if (ctx != NULL && ctx->confirm_search) {
+    g_ptr_array_add (arr, g_strdup_printf ("--interaction=%s",
+            ctx->confirm_search));
+  }
+  if (ctx != NULL && ctx->desktop_id != NULL) {
+    g_ptr_array_add (arr, g_strdup_printf ("--desktop-id=%s", ctx->desktop_id));
+  }
+  if (ctx != NULL && ctx->startup_notification_id != NULL) {
+    g_ptr_array_add (arr, g_strdup_printf ("--startup-notification-id=%s",
+            ctx->startup_notification_id));
+  }
   if (ctx != NULL && ctx->xid != 0) {
-    g_snprintf (xid_str, sizeof (xid_str), "--transient-for=%u", ctx->xid);
-    g_ptr_array_add (arr, xid_str);
+    g_ptr_array_add (arr, g_strdup_printf ("--transient-for=%u", ctx->xid));
   }
 
   /* finally, add the detail strings, but without duplicates */
   while (details != NULL && details[0] != NULL) {
     if (!ptr_array_contains_string (arr, details[0]))
-      g_ptr_array_add (arr, (gpointer) details[0]);
+      g_ptr_array_add (arr, g_strdup (details[0]));
     ++details;
   }
 
@@ -538,7 +641,7 @@
     g_error_free (err);
   }
 
-  g_ptr_array_free (arr, TRUE);
+  g_ptr_array_unref (arr);
   return ret;
 }
 
diff --git a/gst-libs/gst/pbutils/install-plugins.h b/gst-libs/gst/pbutils/install-plugins.h
index 4e0efc8..cd3eb00 100644
--- a/gst-libs/gst/pbutils/install-plugins.h
+++ b/gst-libs/gst/pbutils/install-plugins.h
@@ -101,6 +101,15 @@
 
 void   gst_install_plugins_context_free    (GstInstallPluginsContext * ctx);
 
+void   gst_install_plugins_context_set_confirm_search (GstInstallPluginsContext * ctx,
+                                                       gboolean                   confirm_search);
+
+void   gst_install_plugins_context_set_desktop_id (GstInstallPluginsContext * ctx,
+                                                   const gchar              * desktop_id);
+
+void   gst_install_plugins_context_set_startup_notification_id (GstInstallPluginsContext * ctx,
+                                                                const gchar              * startup_id);
+
 void   gst_install_plugins_context_set_xid (GstInstallPluginsContext * ctx,
                                             guint                      xid);
 
diff --git a/gst-libs/gst/pbutils/missing-plugins.c b/gst-libs/gst/pbutils/missing-plugins.c
index 7d7f2f4..4cf9291 100644
--- a/gst-libs/gst/pbutils/missing-plugins.c
+++ b/gst-libs/gst/pbutils/missing-plugins.c
@@ -144,9 +144,9 @@
   /* rtp fields */
   gst_structure_remove_field (s, "config");
   gst_structure_remove_field (s, "clock-rate");
-  gst_structure_remove_field (s, "clock-base");
+  gst_structure_remove_field (s, "timestamp-offset");
   gst_structure_remove_field (s, "maxps");
-  gst_structure_remove_field (s, "seqnum-base");
+  gst_structure_remove_field (s, "seqnum-offset");
   gst_structure_remove_field (s, "npt-start");
   gst_structure_remove_field (s, "npt-stop");
   gst_structure_remove_field (s, "play-speed");
@@ -528,7 +528,7 @@
         else if (missing_type == GST_MISSING_TYPE_URISINK)
           ret = gst_pb_utils_get_sink_description (detail);
         else
-          ret = gst_pb_utils_get_sink_description (detail);
+          ret = gst_pb_utils_get_element_description (detail);
         g_free (detail);
       }
       break;
diff --git a/gst-libs/gst/riff/Makefile.in b/gst-libs/gst/riff/Makefile.in
index 5361be2..e19548d 100644
--- a/gst-libs/gst/riff/Makefile.in
+++ b/gst-libs/gst/riff/Makefile.in
@@ -105,7 +105,6 @@
 	$(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-x11.m4 \
 	$(top_srcdir)/common/m4/gst.m4 \
 	$(top_srcdir)/common/m4/gtk-doc.m4 \
 	$(top_srcdir)/common/m4/introspection.m4 \
@@ -279,6 +278,8 @@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_2_0_CFLAGS = @GIO_UNIX_2_0_CFLAGS@
+GIO_UNIX_2_0_LIBS = @GIO_UNIX_2_0_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
@@ -308,6 +309,8 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
+GST_NET_CFLAGS = @GST_NET_CFLAGS@
+GST_NET_LIBS = @GST_NET_LIBS@
 GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
 GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
@@ -335,7 +338,6 @@
 GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
 GTK_X11_LIBS = @GTK_X11_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
-HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -439,13 +441,12 @@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-XMKMF = @XMKMF@
+XSHM_CFLAGS = @XSHM_CFLAGS@
 XSHM_LIBS = @XSHM_LIBS@
+XVIDEO_CFLAGS = @XVIDEO_CFLAGS@
 XVIDEO_LIBS = @XVIDEO_LIBS@
 X_CFLAGS = @X_CFLAGS@
-X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
-X_PRE_LIBS = @X_PRE_LIBS@
 ZLIB_CFLAGS = @ZLIB_CFLAGS@
 ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
diff --git a/gst-libs/gst/riff/riff-ids.h b/gst-libs/gst/riff/riff-ids.h
index acc75d5..f92918a 100644
--- a/gst-libs/gst/riff/riff-ids.h
+++ b/gst-libs/gst/riff/riff-ids.h
@@ -34,6 +34,7 @@
 /* tags */
 #define GST_RIFF_TAG_RIFF GST_MAKE_FOURCC ('R','I','F','F')
 #define GST_RIFF_TAG_AVF0 GST_MAKE_FOURCC ('A','V','F','0')
+#define GST_RIFF_TAG_RF64 GST_MAKE_FOURCC ('R','F','6','4')
 #define GST_RIFF_TAG_RIFX GST_MAKE_FOURCC ('R','I','F','X')
 #define GST_RIFF_TAG_LIST GST_MAKE_FOURCC ('L','I','S','T')
 #define GST_RIFF_TAG_avih GST_MAKE_FOURCC ('a','v','i','h')
diff --git a/gst-libs/gst/riff/riff-media.c b/gst-libs/gst/riff/riff-media.c
index e4d877e..8c01892 100644
--- a/gst-libs/gst/riff/riff-media.c
+++ b/gst-libs/gst/riff/riff-media.c
@@ -1021,26 +1021,24 @@
 {
   gint i, p;
   guint64 channel_mask = 0;
-  GstAudioChannelPosition from[18], to[18];
+  GstAudioChannelPosition *from, *to;
+  gboolean ret = FALSE;
 
-  if (num_channels < 1 || num_channels > MAX_CHANNEL_POSITIONS) {
+  if (num_channels < 1) {
     GST_DEBUG ("invalid number of channels: %d", num_channels);
     return FALSE;
   }
 
+  from = g_new (GstAudioChannelPosition, num_channels);
+  to = g_new (GstAudioChannelPosition, num_channels);
   p = 0;
   for (i = 0; i < MAX_CHANNEL_POSITIONS; ++i) {
     if ((layout & layout_mapping[i].ms_mask) != 0) {
       if (p >= num_channels) {
         GST_WARNING ("More bits set in the channel layout map than there "
-            "are channels! Broken file");
-        return FALSE;
-      }
-      if (layout_mapping[i].gst_pos == GST_AUDIO_CHANNEL_POSITION_INVALID) {
-        GST_WARNING ("Unsupported channel position (mask 0x%08x) in channel "
-            "layout map - ignoring those channels", layout_mapping[i].ms_mask);
-        /* what to do? just ignore it and let downstream deal with a channel
-         * layout that has INVALID positions in it for now ... */
+            "are channels! Setting channel-mask to 0.");
+        channel_mask = 0;
+        break;
       }
       channel_mask |= G_GUINT64_CONSTANT (1) << layout_mapping[i].gst_pos;
       from[p] = layout_mapping[i].gst_pos;
@@ -1048,25 +1046,33 @@
     }
   }
 
-  if (p != num_channels) {
-    GST_WARNING ("Only %d bits set in the channel layout map, but there are "
-        "supposed to be %d channels! Broken file", p, num_channels);
-    return FALSE;
-  }
-
-  if (channel_reorder_map) {
+  if (channel_mask > 0 && channel_reorder_map) {
+    if (p != num_channels) {
+      /* WAVEFORMATEXTENSIBLE allows to have more channels than bits in
+       * the channel mask. We accept this, too, and hope that downstream
+       * can handle this */
+      GST_WARNING ("Partially unknown positions in channel mask");
+      for (; p < num_channels; ++p)
+        from[p] = GST_AUDIO_CHANNEL_POSITION_INVALID;
+    }
     memcpy (to, from, sizeof (from[0]) * num_channels);
     if (!gst_audio_channel_positions_to_valid_order (to, num_channels))
-      return FALSE;
+      goto fail;
     if (!gst_audio_get_channel_reorder_map (num_channels, from, to,
             channel_reorder_map))
-      return FALSE;
+      goto fail;
   }
 
   gst_caps_set_simple (caps, "channel-mask", GST_TYPE_BITMASK, channel_mask,
       NULL);
 
-  return TRUE;
+  ret = TRUE;
+
+fail:
+  g_free (from);
+  g_free (to);
+
+  return ret;
 }
 
 static gboolean
@@ -1202,17 +1208,21 @@
         gint wd, ws;
         GstAudioFormat format;
 
-        /* If we have an empty blockalign, we take the width contained in 
-         * strf->bits_per_sample */
-        if (ba != 0)
+        if (ba > (32 / 8) * ch) {
+          GST_WARNING ("Invalid block align: %d > %d", ba, (32 / 8) * ch);
+          wd = GST_ROUND_UP_8 (strf->bits_per_sample);
+        } else if (ba != 0) {
+          /* If we have an empty blockalign, we take the width contained in 
+           * strf->bits_per_sample */
           wd = ba * 8 / ch;
-        else
-          wd = strf->bits_per_sample;
+        } else {
+          wd = GST_ROUND_UP_8 (strf->bits_per_sample);
+        }
 
         if (strf->bits_per_sample > 32) {
           GST_WARNING ("invalid depth (%d) of pcm audio, overwriting.",
               strf->bits_per_sample);
-          strf->bits_per_sample = 8 * ((wd + 7) / 8);
+          strf->bits_per_sample = wd;
         }
 
         /* in riff, the depth is stored in the size field but it just means that
@@ -1223,6 +1233,10 @@
 
         format =
             gst_audio_format_build_integer (wd != 8, G_LITTLE_ENDIAN, wd, ws);
+        if (format == GST_AUDIO_FORMAT_UNKNOWN) {
+          GST_WARNING ("Unsupported raw audio format with width %d", wd);
+          return NULL;
+        }
 
         caps = gst_caps_new_simple ("audio/x-raw",
             "format", G_TYPE_STRING, gst_audio_format_to_string (format),
diff --git a/gst-libs/gst/riff/riff-read.c b/gst-libs/gst/riff/riff-read.c
index 824bc73..5a54029 100644
--- a/gst-libs/gst/riff/riff-read.c
+++ b/gst-libs/gst/riff/riff-read.c
@@ -235,7 +235,8 @@
     goto too_small;
 
   tag = GST_READ_UINT32_LE (info.data);
-  if (tag != GST_RIFF_TAG_RIFF && tag != GST_RIFF_TAG_AVF0)
+  if (tag != GST_RIFF_TAG_RIFF && tag != GST_RIFF_TAG_AVF0
+      && tag != GST_RIFF_TAG_RF64)
     goto not_riff;
 
   *doctype = GST_READ_UINT32_LE (info.data + 8);
@@ -258,8 +259,7 @@
 not_riff:
   {
     GST_ELEMENT_ERROR (element, STREAM, WRONG_TYPE, (NULL),
-        ("Stream is no RIFF stream: %" GST_FOURCC_FORMAT,
-            GST_FOURCC_ARGS (tag)));
+        ("Stream is no RIFF stream: 0x%" G_GINT32_MODIFIER "x", tag));
     gst_buffer_unmap (buf, &info);
     gst_buffer_unref (buf);
     return FALSE;
diff --git a/gst-libs/gst/rtp/Makefile.in b/gst-libs/gst/rtp/Makefile.in
index 7fbb606..5e75635 100644
--- a/gst-libs/gst/rtp/Makefile.in
+++ b/gst-libs/gst/rtp/Makefile.in
@@ -104,7 +104,6 @@
 	$(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-x11.m4 \
 	$(top_srcdir)/common/m4/gst.m4 \
 	$(top_srcdir)/common/m4/gtk-doc.m4 \
 	$(top_srcdir)/common/m4/introspection.m4 \
@@ -298,6 +297,8 @@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_2_0_CFLAGS = @GIO_UNIX_2_0_CFLAGS@
+GIO_UNIX_2_0_LIBS = @GIO_UNIX_2_0_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
@@ -327,6 +328,8 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
+GST_NET_CFLAGS = @GST_NET_CFLAGS@
+GST_NET_LIBS = @GST_NET_LIBS@
 GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
 GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
@@ -354,7 +357,6 @@
 GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
 GTK_X11_LIBS = @GTK_X11_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
-HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -458,13 +460,12 @@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-XMKMF = @XMKMF@
+XSHM_CFLAGS = @XSHM_CFLAGS@
 XSHM_LIBS = @XSHM_LIBS@
+XVIDEO_CFLAGS = @XVIDEO_CFLAGS@
 XVIDEO_LIBS = @XVIDEO_LIBS@
 X_CFLAGS = @X_CFLAGS@
-X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
-X_PRE_LIBS = @X_PRE_LIBS@
 ZLIB_CFLAGS = @ZLIB_CFLAGS@
 ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
diff --git a/gst-libs/gst/rtp/gstrtcpbuffer.c b/gst-libs/gst/rtp/gstrtcpbuffer.c
index d66e986..fdbedd4 100644
--- a/gst-libs/gst/rtp/gstrtcpbuffer.c
+++ b/gst-libs/gst/rtp/gstrtcpbuffer.c
@@ -261,7 +261,7 @@
  * gst_rtcp_buffer_unmap:
  * @rtcp: a buffer with an RTCP packet
  *
- * Finish @rtcp after being constructured. This function is usually called
+ * Finish @rtcp after being constructed. This function is usually called
  * after gst_rtcp_buffer_map() and after adding the RTCP items to the new buffer.
  *
  * The function adjusts the size of @rtcp with the total length of all the
diff --git a/gst-libs/gst/rtp/gstrtpbuffer.c b/gst-libs/gst/rtp/gstrtpbuffer.c
index 6ff9256..f479637 100644
--- a/gst-libs/gst/rtp/gstrtpbuffer.c
+++ b/gst-libs/gst/rtp/gstrtpbuffer.c
@@ -703,7 +703,7 @@
 }
 
 /**
- * gst_rtp_buffer_get_extension_bytes:
+ * gst_rtp_buffer_get_extension_bytes: (rename-to gst_rtp_buffer_get_extension_data)
  * @rtp: the RTP packet
  * @bits: (out): location for header bits
  *
@@ -719,8 +719,6 @@
  * Returns: (transfer full): A new #GBytes if an extension header was present
  * and %NULL otherwise.
  *
- * Rename to: gst_rtp_buffer_get_extension_data
- *
  * Since: 1.2
  */
 GBytes *
@@ -1148,7 +1146,7 @@
 }
 
 /**
- * gst_rtp_buffer_get_payload_bytes:
+ * gst_rtp_buffer_get_payload_bytes: (rename-to gst_rtp_buffer_get_payload)
  * @rtp: the RTP packet
  *
  * Similar to gst_rtp_buffer_get_payload, but more suitable for language
@@ -1157,8 +1155,6 @@
  *
  * Returns: (transfer full): A new #GBytes containing the payload data in @rtp.
  *
- * Rename to: gst_rtp_buffer_get_payload
- *
  * Since: 1.2
  */
 GBytes *
@@ -1216,6 +1212,11 @@
 gint
 gst_rtp_buffer_compare_seqnum (guint16 seqnum1, guint16 seqnum2)
 {
+  /* See http://en.wikipedia.org/wiki/Serial_number_arithmetic
+   * for an explanation why this does the right thing even for
+   * wraparounds, under the assumption that the difference is
+   * never bigger than 2**15 sequence numbers
+   */
   return (gint16) (seqnum2 - seqnum1);
 }
 
@@ -1520,7 +1521,7 @@
 
 
 static guint
-get_twobytes_header_end_offset (guint8 * pdata, guint wordlen)
+get_twobytes_header_end_offset (const guint8 * pdata, guint wordlen)
 {
   guint offset = 0;
   guint bytelen = wordlen * 4;
diff --git a/gst-libs/gst/rtsp/Makefile.am b/gst-libs/gst/rtsp/Makefile.am
index b6e1e9d..40f3f4c 100644
--- a/gst-libs/gst/rtsp/Makefile.am
+++ b/gst-libs/gst/rtsp/Makefile.am
@@ -16,8 +16,8 @@
 
 lib_LTLIBRARIES = libgstrtsp-@GST_API_VERSION@.la
 
-built_sources = gstrtsp-marshal.c gstrtsp-enumtypes.c
-built_headers = gstrtsp-marshal.h gstrtsp-enumtypes.h
+built_sources = gstrtsp-enumtypes.c
+built_headers = gstrtsp-enumtypes.h
 
 libgstrtsp_@GST_API_VERSION@_la_SOURCES = gstrtsptransport.c \
 					 gstrtspurl.c \
@@ -38,7 +38,6 @@
 libgstrtsp_@GST_API_VERSION@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) $(GST_LT_LDFLAGS) $(WIN32_LIBS)
 
 BUILT_SOURCES = $(built_headers) $(built_sources)
-EXTRA_DIST = gstrtsp-marshal.list
 CLEANFILES = $(BUILT_SOURCES)
 
 glib_gen_prefix = __gst_rtsp
diff --git a/gst-libs/gst/rtsp/Makefile.in b/gst-libs/gst/rtsp/Makefile.in
index 4b00ccf..ec55e08 100644
--- a/gst-libs/gst/rtsp/Makefile.in
+++ b/gst-libs/gst/rtsp/Makefile.in
@@ -114,7 +114,6 @@
 	$(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-x11.m4 \
 	$(top_srcdir)/common/m4/gst.m4 \
 	$(top_srcdir)/common/m4/gtk-doc.m4 \
 	$(top_srcdir)/common/m4/introspection.m4 \
@@ -177,8 +176,7 @@
 	libgstrtsp_@GST_API_VERSION@_la-gstrtspdefs.lo \
 	libgstrtsp_@GST_API_VERSION@_la-gstrtspextension.lo \
 	libgstrtsp_@GST_API_VERSION@_la-gstrtsprange.lo
-am__objects_1 = libgstrtsp_@GST_API_VERSION@_la-gstrtsp-marshal.lo \
-	libgstrtsp_@GST_API_VERSION@_la-gstrtsp-enumtypes.lo
+am__objects_1 = libgstrtsp_@GST_API_VERSION@_la-gstrtsp-enumtypes.lo
 nodist_libgstrtsp_@GST_API_VERSION@_la_OBJECTS = $(am__objects_1)
 libgstrtsp_@GST_API_VERSION@_la_OBJECTS =  \
 	$(am_libgstrtsp_@GST_API_VERSION@_la_OBJECTS) \
@@ -315,6 +313,8 @@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_2_0_CFLAGS = @GIO_UNIX_2_0_CFLAGS@
+GIO_UNIX_2_0_LIBS = @GIO_UNIX_2_0_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
@@ -344,6 +344,8 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
+GST_NET_CFLAGS = @GST_NET_CFLAGS@
+GST_NET_LIBS = @GST_NET_LIBS@
 GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
 GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
@@ -371,7 +373,6 @@
 GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
 GTK_X11_LIBS = @GTK_X11_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
-HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -475,13 +476,12 @@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-XMKMF = @XMKMF@
+XSHM_CFLAGS = @XSHM_CFLAGS@
 XSHM_LIBS = @XSHM_LIBS@
+XVIDEO_CFLAGS = @XVIDEO_CFLAGS@
 XVIDEO_LIBS = @XVIDEO_LIBS@
 X_CFLAGS = @X_CFLAGS@
-X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
-X_PRE_LIBS = @X_PRE_LIBS@
 ZLIB_CFLAGS = @ZLIB_CFLAGS@
 ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
@@ -562,8 +562,8 @@
 #gstrtspextreal.h    
 #gstrtspextwms.h     
 lib_LTLIBRARIES = libgstrtsp-@GST_API_VERSION@.la
-built_sources = gstrtsp-marshal.c gstrtsp-enumtypes.c
-built_headers = gstrtsp-marshal.h gstrtsp-enumtypes.h
+built_sources = gstrtsp-enumtypes.c
+built_headers = gstrtsp-enumtypes.h
 libgstrtsp_@GST_API_VERSION@_la_SOURCES = gstrtsptransport.c \
 					 gstrtspurl.c \
 					 gstrtspmessage.c    \
@@ -581,7 +581,6 @@
 libgstrtsp_@GST_API_VERSION@_la_LIBADD = $(GST_LIBS) $(GIO_LIBS) $(LIBM)
 libgstrtsp_@GST_API_VERSION@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) $(GST_LT_LDFLAGS) $(WIN32_LIBS)
 BUILT_SOURCES = $(built_headers) $(built_sources)
-EXTRA_DIST = gstrtsp-marshal.list
 CLEANFILES = $(BUILT_SOURCES) $(am__append_1)
 glib_gen_prefix = __gst_rtsp
 glib_enum_define = gst_rtsp
@@ -686,7 +685,6 @@
 	-rm -f *.tab.c
 
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtsp_@GST_API_VERSION@_la-gstrtsp-enumtypes.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtsp_@GST_API_VERSION@_la-gstrtsp-marshal.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtsp_@GST_API_VERSION@_la-gstrtspconnection.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtsp_@GST_API_VERSION@_la-gstrtspdefs.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtsp_@GST_API_VERSION@_la-gstrtspextension.Plo@am__quote@
@@ -768,13 +766,6 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtsp_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstrtsp_@GST_API_VERSION@_la-gstrtsprange.lo `test -f 'gstrtsprange.c' || echo '$(srcdir)/'`gstrtsprange.c
 
-libgstrtsp_@GST_API_VERSION@_la-gstrtsp-marshal.lo: gstrtsp-marshal.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) $(libgstrtsp_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstrtsp_@GST_API_VERSION@_la-gstrtsp-marshal.lo -MD -MP -MF $(DEPDIR)/libgstrtsp_@GST_API_VERSION@_la-gstrtsp-marshal.Tpo -c -o libgstrtsp_@GST_API_VERSION@_la-gstrtsp-marshal.lo `test -f 'gstrtsp-marshal.c' || echo '$(srcdir)/'`gstrtsp-marshal.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtsp_@GST_API_VERSION@_la-gstrtsp-marshal.Tpo $(DEPDIR)/libgstrtsp_@GST_API_VERSION@_la-gstrtsp-marshal.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtsp-marshal.c' object='libgstrtsp_@GST_API_VERSION@_la-gstrtsp-marshal.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) $(libgstrtsp_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstrtsp_@GST_API_VERSION@_la-gstrtsp-marshal.lo `test -f 'gstrtsp-marshal.c' || echo '$(srcdir)/'`gstrtsp-marshal.c
-
 libgstrtsp_@GST_API_VERSION@_la-gstrtsp-enumtypes.lo: gstrtsp-enumtypes.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtsp_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstrtsp_@GST_API_VERSION@_la-gstrtsp-enumtypes.lo -MD -MP -MF $(DEPDIR)/libgstrtsp_@GST_API_VERSION@_la-gstrtsp-enumtypes.Tpo -c -o libgstrtsp_@GST_API_VERSION@_la-gstrtsp-enumtypes.lo `test -f 'gstrtsp-enumtypes.c' || echo '$(srcdir)/'`gstrtsp-enumtypes.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtsp_@GST_API_VERSION@_la-gstrtsp-enumtypes.Tpo $(DEPDIR)/libgstrtsp_@GST_API_VERSION@_la-gstrtsp-enumtypes.Plo
diff --git a/gst-libs/gst/rtsp/gstrtsp-marshal.list b/gst-libs/gst/rtsp/gstrtsp-marshal.list
deleted file mode 100644
index 40b8c72..0000000
--- a/gst-libs/gst/rtsp/gstrtsp-marshal.list
+++ /dev/null
@@ -1,2 +0,0 @@
-# rtsp marshallers
-ENUM:POINTER,POINTER
diff --git a/gst-libs/gst/rtsp/gstrtspconnection.c b/gst-libs/gst/rtsp/gstrtspconnection.c
index 87be31a..50c0f8c 100644
--- a/gst-libs/gst/rtsp/gstrtspconnection.c
+++ b/gst-libs/gst/rtsp/gstrtspconnection.c
@@ -1782,6 +1782,19 @@
       next_value++;
     }
 
+    if (field == GST_RTSP_HDR_SESSION) {
+      /* The timeout parameter is only allowed in a session response header
+       * but some clients send it as part of the session request header.
+       * Ignore everything from the semicolon to the end of the line. */
+      next_value = value;
+      while (*next_value != '\0') {
+        if (*next_value == ';') {
+          break;
+        }
+        next_value++;
+      }
+    }
+
     /* trim space */
     if (value != next_value && next_value[-1] == ' ')
       next_value[-1] = '\0';
@@ -2889,25 +2902,43 @@
   g_return_val_if_fail (conn != NULL, GST_RTSP_EINVAL);
 
   if (conn2 != NULL) {
-    g_return_val_if_fail (conn->tstate == TUNNEL_STATE_GET, GST_RTSP_EINVAL);
-    g_return_val_if_fail (conn2->tstate == TUNNEL_STATE_POST, GST_RTSP_EINVAL);
+    GstRTSPTunnelState ts1 = conn->tstate;
+    GstRTSPTunnelState ts2 = conn2->tstate;
+
+    g_return_val_if_fail ((ts1 == TUNNEL_STATE_GET && ts2 == TUNNEL_STATE_POST)
+        || (ts1 == TUNNEL_STATE_POST && ts2 == TUNNEL_STATE_GET),
+        GST_RTSP_EINVAL);
     g_return_val_if_fail (!memcmp (conn2->tunnelid, conn->tunnelid,
             TUNNELID_LEN), GST_RTSP_EINVAL);
 
-    /* both connections have socket0 as the read/write socket. start by taking the
-     * socket from conn2 and set it as the socket in conn */
-    conn->socket1 = conn2->socket0;
-    conn->stream1 = conn2->stream0;
-    conn->input_stream = conn2->input_stream;
-    conn->control_stream = g_io_stream_get_input_stream (conn->stream0);
+    /* both connections have socket0 as the read/write socket */
+    if (ts1 == TUNNEL_STATE_GET) {
+      /* conn2 is the HTTP POST channel. take its socket and set it as read
+       * socket in conn */
+      conn->socket1 = conn2->socket0;
+      conn->stream1 = conn2->stream0;
+      conn->input_stream = conn2->input_stream;
+      conn->control_stream = g_io_stream_get_input_stream (conn->stream0);
+      conn2->output_stream = NULL;
+    } else {
+      /* conn2 is the HTTP GET channel. take its socket and set it as write
+       * socket in conn */
+      conn->socket1 = conn->socket0;
+      conn->stream1 = conn->stream0;
+      conn->socket0 = conn2->socket0;
+      conn->stream0 = conn2->stream0;
+      conn->output_stream = conn2->output_stream;
+      conn->control_stream = g_io_stream_get_input_stream (conn->stream0);
+    }
 
     /* clean up some of the state of conn2 */
     g_cancellable_cancel (conn2->cancellable);
     conn2->write_socket = conn2->read_socket = NULL;
     conn2->socket0 = NULL;
     conn2->stream0 = NULL;
+    conn2->socket1 = NULL;
+    conn2->stream1 = NULL;
     conn2->input_stream = NULL;
-    conn2->output_stream = NULL;
     conn2->control_stream = NULL;
     g_cancellable_reset (conn2->cancellable);
 
@@ -3109,8 +3140,10 @@
   if (res == GST_RTSP_EINTR)
     goto done;
   else if (G_UNLIKELY (res == GST_RTSP_EEOF)) {
+    g_mutex_lock (&watch->mutex);
     if (watch->readsrc) {
-      g_source_remove_child_source ((GSource *) watch, watch->readsrc);
+      if (!g_source_is_destroyed ((GSource *) watch))
+        g_source_remove_child_source ((GSource *) watch, watch->readsrc);
       g_source_unref (watch->readsrc);
       watch->readsrc = NULL;
     }
@@ -3121,6 +3154,7 @@
       conn->socket1 = NULL;
       conn->input_stream = NULL;
     }
+    g_mutex_unlock (&watch->mutex);
 
     /* When we are in tunnelled mode, the read socket can be closed and we
      * should be prepared for a new POST method to reopen it */
@@ -3132,6 +3166,7 @@
       if (watch->funcs.tunnel_lost)
         res = watch->funcs.tunnel_lost (watch, watch->user_data);
       /* we add read source on the write socket able to detect when client closes get channel in tunneled mode */
+      g_mutex_lock (&watch->mutex);
       if (watch->conn->control_stream && !watch->controlsrc) {
         watch->controlsrc =
             g_pollable_input_stream_create_source (G_POLLABLE_INPUT_STREAM
@@ -3140,7 +3175,8 @@
             (GSourceFunc) gst_rtsp_source_dispatch_read_get_channel, watch,
             NULL);
         g_source_add_child_source ((GSource *) watch, watch->controlsrc);
-      }        
+      }
+      g_mutex_unlock (&watch->mutex);
       goto read_done;
     } else
       goto eof;
@@ -3270,7 +3306,8 @@
       rec = g_queue_pop_tail (watch->messages);
       if (rec == NULL) {
         if (watch->writesrc) {
-          g_source_remove_child_source ((GSource *) watch, watch->writesrc);
+          if (!g_source_is_destroyed ((GSource *) watch))
+            g_source_remove_child_source ((GSource *) watch, watch->writesrc);
           g_source_unref (watch->writesrc);
           watch->writesrc = NULL;
           /* we create and add the write source again when we actually have
@@ -3360,6 +3397,9 @@
 {
   GstRTSPWatch *watch = (GstRTSPWatch *) source;
 
+  if (watch->notify)
+    watch->notify (watch->user_data);
+
   build_reset (&watch->builder);
   gst_rtsp_message_unset (&watch->message);
 
@@ -3379,9 +3419,6 @@
     g_source_unref (watch->controlsrc);
 
   g_mutex_clear (&watch->mutex);
-
-  if (watch->notify)
-    watch->notify (watch->user_data);
 }
 
 static GSourceFuncs gst_rtsp_source_funcs = {
@@ -3453,6 +3490,7 @@
 void
 gst_rtsp_watch_reset (GstRTSPWatch * watch)
 {
+  g_mutex_lock (&watch->mutex);
   if (watch->readsrc) {
     g_source_remove_child_source ((GSource *) watch, watch->readsrc);
     g_source_unref (watch->readsrc);
@@ -3495,6 +3533,7 @@
   } else {
     watch->controlsrc = NULL;
   }
+  g_mutex_unlock (&watch->mutex);
 }
 
 /**
@@ -3753,18 +3792,18 @@
  * Wait until there is place in the backlog queue, @timeout is reached
  * or @watch is set to flushing.
  *
- * If @timeout is #NULL this function can block forever. If @timeout
- * contains a valid timeout, this function will return #GST_RTSP_ETIMEOUT
+ * If @timeout is %NULL this function can block forever. If @timeout
+ * contains a valid timeout, this function will return %GST_RTSP_ETIMEOUT
  * after the timeout expired.
  *
  * The typically use of this function is when gst_rtsp_watch_write_data
- * returns GST_RTSP_ENOMEM. The caller then calls this function to wait for
+ * returns %GST_RTSP_ENOMEM. The caller then calls this function to wait for
  * free space in the backlog queue and try again.
  *
- * Returns: #GST_RTSP_OK when if there is room in queue.
- *          #GST_RTSP_ETIMEOUT when @timeout was reached.
- *          #GST_RTSP_EINTR when @watch is flushing
- *          #GST_RTSP_EINVAL when called with invalid parameters.
+ * Returns: %GST_RTSP_OK when if there is room in queue.
+ *          %GST_RTSP_ETIMEOUT when @timeout was reached.
+ *          %GST_RTSP_EINTR when @watch is flushing
+ *          %GST_RTSP_EINVAL when called with invalid parameters.
  *
  * Since: 1.4
  */
@@ -3831,7 +3870,7 @@
   g_mutex_lock (&watch->mutex);
   watch->flushing = flushing;
   g_cond_signal (&watch->queue_not_full);
-  if (flushing == TRUE) {
+  if (flushing) {
     g_queue_foreach (watch->messages, (GFunc) gst_rtsp_rec_free, NULL);
     g_queue_clear (watch->messages);
   }
diff --git a/gst-libs/gst/rtsp/gstrtspconnection.h b/gst-libs/gst/rtsp/gstrtspconnection.h
index 7402b68..bc2dc62 100644
--- a/gst-libs/gst/rtsp/gstrtspconnection.h
+++ b/gst-libs/gst/rtsp/gstrtspconnection.h
@@ -218,7 +218,7 @@
                                                       GTimeVal *timeout);
 
 void               gst_rtsp_watch_set_flushing       (GstRTSPWatch * watch,
-                                                      gboolean flush);
+                                                      gboolean flushing);
 G_END_DECLS
 
 #endif /* __GST_RTSP_CONNECTION_H__ */
diff --git a/gst-libs/gst/rtsp/gstrtspextension.c b/gst-libs/gst/rtsp/gstrtspextension.c
index 5b5eed3..e178bc2 100644
--- a/gst-libs/gst/rtsp/gstrtspextension.c
+++ b/gst-libs/gst/rtsp/gstrtspextension.c
@@ -35,7 +35,6 @@
 #include "config.h"
 #endif
 
-#include "gstrtsp-marshal.h"
 #include "gstrtsp-enumtypes.h"
 #include "gstrtspextension.h"
 
@@ -82,7 +81,7 @@
     gst_rtsp_extension_signals[SIGNAL_SEND] =
         g_signal_new ("send", G_TYPE_FROM_CLASS (iface),
         G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GstRTSPExtensionInterface,
-            send), NULL, NULL, __gst_rtsp_marshal_ENUM__POINTER_POINTER,
+            send), NULL, NULL, g_cclosure_marshal_generic,
         GST_TYPE_RTSP_RESULT, 2, G_TYPE_POINTER, G_TYPE_POINTER);
     initialized = TRUE;
   }
diff --git a/gst-libs/gst/rtsp/gstrtspmessage.c b/gst-libs/gst/rtsp/gstrtspmessage.c
index 841aa19..a326e5a 100644
--- a/gst-libs/gst/rtsp/gstrtspmessage.c
+++ b/gst-libs/gst/rtsp/gstrtspmessage.c
@@ -1,6 +1,7 @@
 /* GStreamer
  * Copyright (C) <2005,2006> Wim Taymans <wim@fluendo.com>
  *               <2006> Lutz Mueller <lutz at topfrose dot de>
+ *               <2015> Tim-Philipp Müller <tim@centricular.com>
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -58,6 +59,7 @@
 {
   GstRTSPHeaderField field;
   gchar *value;
+  gchar *custom_key;            /* custom header string (field is INVALID then) */
 } RTSPKeyValue;
 
 static void
@@ -462,6 +464,7 @@
       RTSPKeyValue *keyval = &g_array_index (msg->hdr_fields, RTSPKeyValue, i);
 
       g_free (keyval->value);
+      g_free (keyval->custom_key);
     }
     g_array_free (msg->hdr_fields, TRUE);
   }
@@ -516,6 +519,7 @@
 
   key_value.field = field;
   key_value.value = value;
+  key_value.custom_key = NULL;
 
   g_array_append_val (msg->hdr_fields, key_value);
 
@@ -617,6 +621,179 @@
 }
 
 /**
+ * gst_rtsp_message_add_header_by_name:
+ * @msg: a #GstRTSPMessage
+ * @header: (transfer none): header string
+ * @value: (transfer none): the value of the header
+ *
+ * Add a header with key @header and @value to @msg. This function takes a copy
+ * of @value.
+ *
+ * Returns: a #GstRTSPResult.
+ *
+ * Since: 1.6
+ */
+GstRTSPResult
+gst_rtsp_message_add_header_by_name (GstRTSPMessage * msg,
+    const gchar * header, const gchar * value)
+{
+  GstRTSPHeaderField field;
+
+  g_return_val_if_fail (msg != NULL, GST_RTSP_EINVAL);
+  g_return_val_if_fail (header != NULL, GST_RTSP_EINVAL);
+  g_return_val_if_fail (value != NULL, GST_RTSP_EINVAL);
+
+  field = gst_rtsp_find_header_field (header);
+  if (field != GST_RTSP_HDR_INVALID)
+    return gst_rtsp_message_take_header (msg, field, g_strdup (value));
+
+  return gst_rtsp_message_take_header_by_name (msg, header, g_strdup (value));
+}
+
+/**
+ * gst_rtsp_message_take_header_by_name:
+ * @msg: a #GstRTSPMessage
+ * @header: (transfer none): a header string
+ * @value: (transfer full): the value of the header
+ *
+ * Add a header with key @header and @value to @msg. This function takes
+ * ownership of @value, but not of @header.
+ *
+ * Returns: a #GstRTSPResult.
+ *
+ * Since: 1.6
+ */
+GstRTSPResult
+gst_rtsp_message_take_header_by_name (GstRTSPMessage * msg,
+    const gchar * header, gchar * value)
+{
+  RTSPKeyValue key_value;
+
+  g_return_val_if_fail (msg != NULL, GST_RTSP_EINVAL);
+  g_return_val_if_fail (header != NULL, GST_RTSP_EINVAL);
+  g_return_val_if_fail (value != NULL, GST_RTSP_EINVAL);
+
+  key_value.field = GST_RTSP_HDR_INVALID;
+  key_value.value = value;
+  key_value.custom_key = g_strdup (header);
+
+  g_array_append_val (msg->hdr_fields, key_value);
+
+  return GST_RTSP_OK;
+}
+
+/* returns -1 if not found, otherwise index position within msg->hdr_fields */
+static gint
+gst_rtsp_message_find_header_by_name (GstRTSPMessage * msg,
+    const gchar * header, gint index)
+{
+  GstRTSPHeaderField field;
+  gint cnt = 0;
+  guint i;
+
+  /* no header initialized, there are no headers */
+  if (msg->hdr_fields == NULL)
+    return -1;
+
+  field = gst_rtsp_find_header_field (header);
+  for (i = 0; i < msg->hdr_fields->len; i++) {
+    RTSPKeyValue *key_val;
+
+    key_val = &g_array_index (msg->hdr_fields, RTSPKeyValue, i);
+
+    if (key_val->field != field)
+      continue;
+
+    if (key_val->custom_key != NULL &&
+        g_ascii_strcasecmp (key_val->custom_key, header) != 0)
+      continue;
+
+    if (index < 0 || cnt++ == index)
+      return i;
+  }
+
+  return -1;
+}
+
+/**
+ * gst_rtsp_message_remove_header_by_name:
+ * @msg: a #GstRTSPMessage
+ * @header: the header string
+ * @index: the index of the header
+ *
+ * Remove the @index header with key @header from @msg. If @index equals -1,
+ * all matching headers will be removed.
+ *
+ * Returns: a #GstRTSPResult
+ *
+ * Since: 1.6
+ */
+GstRTSPResult
+gst_rtsp_message_remove_header_by_name (GstRTSPMessage * msg,
+    const gchar * header, gint index)
+{
+  GstRTSPResult res = GST_RTSP_ENOTIMPL;
+  RTSPKeyValue *kv;
+  gint pos;
+
+  g_return_val_if_fail (msg != NULL, GST_RTSP_EINVAL);
+  g_return_val_if_fail (header != NULL, GST_RTSP_EINVAL);
+
+  do {
+    pos = gst_rtsp_message_find_header_by_name (msg, header, index);
+
+    if (pos < 0)
+      break;
+
+    kv = &g_array_index (msg->hdr_fields, RTSPKeyValue, pos);
+    g_free (kv->value);
+    g_free (kv->custom_key);
+    g_array_remove_index (msg->hdr_fields, pos);
+    res = GST_RTSP_OK;
+  } while (index < 0);
+
+  return res;
+}
+
+/**
+ * gst_rtsp_message_get_header_by_name:
+ * @msg: a #GstRTSPMessage
+ * @header: a #GstRTSPHeaderField
+ * @value: (out) (transfer none): pointer to hold the result
+ * @index: the index of the header
+ *
+ * Get the @index header value with key @header from @msg. The result in @value
+ * stays valid as long as it remains present in @msg.
+ *
+ * Returns: #GST_RTSP_OK when @field was found, #GST_RTSP_ENOTIMPL if the key
+ * was not found.
+ *
+ * Since: 1.6
+ */
+GstRTSPResult
+gst_rtsp_message_get_header_by_name (GstRTSPMessage * msg,
+    const gchar * header, gchar ** value, gint index)
+{
+  RTSPKeyValue *key_val;
+  gint pos;
+
+  g_return_val_if_fail (msg != NULL, GST_RTSP_EINVAL);
+  g_return_val_if_fail (header != NULL, GST_RTSP_EINVAL);
+
+  pos = gst_rtsp_message_find_header_by_name (msg, header, index);
+
+  if (pos < 0)
+    return GST_RTSP_ENOTIMPL;
+
+  key_val = &g_array_index (msg->hdr_fields, RTSPKeyValue, pos);
+
+  if (value)
+    *value = key_val->value;
+
+  return GST_RTSP_OK;
+}
+
+/**
  * gst_rtsp_message_append_headers:
  * @msg: a #GstRTSPMessage
  * @str: (transfer none): a string
@@ -639,7 +816,11 @@
     const gchar *keystr;
 
     key_value = &g_array_index (msg->hdr_fields, RTSPKeyValue, i);
-    keystr = gst_rtsp_header_as_text (key_value->field);
+
+    if (key_value->custom_key != NULL)
+      keystr = key_value->custom_key;
+    else
+      keystr = gst_rtsp_header_as_text (key_value->field);
 
     g_string_append_printf (str, "%s: %s\r\n", keystr, key_value->value);
   }
@@ -747,9 +928,14 @@
 dump_key_value (gpointer data, gpointer user_data G_GNUC_UNUSED)
 {
   RTSPKeyValue *key_value = (RTSPKeyValue *) data;
+  const gchar *key_string;
 
-  g_print ("   key: '%s', value: '%s'\n",
-      gst_rtsp_header_as_text (key_value->field), key_value->value);
+  if (key_value->custom_key != NULL)
+    key_string = key_value->custom_key;
+  else
+    key_string = gst_rtsp_header_as_text (key_value->field);
+
+  g_print ("   key: '%s', value: '%s'\n", key_string, key_value->value);
 }
 
 /**
diff --git a/gst-libs/gst/rtsp/gstrtspmessage.h b/gst-libs/gst/rtsp/gstrtspmessage.h
index 927e2ce..6f6ea2d 100644
--- a/gst-libs/gst/rtsp/gstrtspmessage.h
+++ b/gst-libs/gst/rtsp/gstrtspmessage.h
@@ -163,6 +163,25 @@
                                                      GstRTSPHeaderField field,
                                                      gchar **value,
                                                      gint indx);
+
+GstRTSPResult      gst_rtsp_message_add_header_by_name    (GstRTSPMessage * msg,
+                                                           const gchar    * header,
+                                                           const gchar    * value);
+
+GstRTSPResult      gst_rtsp_message_take_header_by_name   (GstRTSPMessage * msg,
+                                                           const gchar    * header,
+                                                           gchar          * value);
+
+GstRTSPResult      gst_rtsp_message_remove_header_by_name (GstRTSPMessage * msg,
+                                                           const gchar    * header,
+                                                           gint             index);
+
+GstRTSPResult      gst_rtsp_message_get_header_by_name    (GstRTSPMessage * msg,
+                                                           const gchar    * header,
+                                                           gchar         ** value,
+                                                           gint             index);
+
+/* header serialization */
 GstRTSPResult      gst_rtsp_message_append_headers  (const GstRTSPMessage *msg,
                                                      GString *str);
 
diff --git a/gst-libs/gst/rtsp/gstrtsprange.c b/gst-libs/gst/rtsp/gstrtsprange.c
index 96efd45..553f797 100644
--- a/gst-libs/gst/rtsp/gstrtsprange.c
+++ b/gst-libs/gst/rtsp/gstrtsprange.c
@@ -342,7 +342,7 @@
 time_to_string (const GstRTSPTime * t1, const GstRTSPTime2 * t2,
     GString * string)
 {
-  gboolean res = TRUE;;
+  gboolean res = TRUE;
 
   switch (t1->type) {
     case GST_RTSP_TIME_SECONDS:
diff --git a/gst-libs/gst/rtsp/gstrtsptransport.c b/gst-libs/gst/rtsp/gstrtsptransport.c
index 81c7431..2dd9acb 100644
--- a/gst-libs/gst/rtsp/gstrtsptransport.c
+++ b/gst-libs/gst/rtsp/gstrtsptransport.c
@@ -271,7 +271,7 @@
 /**
  * gst_rtsp_transport_get_media_type:
  * @transport: a #GstRTSPTransport
- * @media_type: (out): media type of @transport
+ * @media_type: (out) (transfer none): media type of @transport
  *
  * Get the media type of @transport. This media type is typically
  * used to generate #GstCaps events.
diff --git a/gst-libs/gst/sdp/Makefile.in b/gst-libs/gst/sdp/Makefile.in
index a108f3a..b60e168 100644
--- a/gst-libs/gst/sdp/Makefile.in
+++ b/gst-libs/gst/sdp/Makefile.in
@@ -104,7 +104,6 @@
 	$(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-x11.m4 \
 	$(top_srcdir)/common/m4/gst.m4 \
 	$(top_srcdir)/common/m4/gtk-doc.m4 \
 	$(top_srcdir)/common/m4/introspection.m4 \
@@ -293,6 +292,8 @@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_2_0_CFLAGS = @GIO_UNIX_2_0_CFLAGS@
+GIO_UNIX_2_0_LIBS = @GIO_UNIX_2_0_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
@@ -322,6 +323,8 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
+GST_NET_CFLAGS = @GST_NET_CFLAGS@
+GST_NET_LIBS = @GST_NET_LIBS@
 GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
 GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
@@ -349,7 +352,6 @@
 GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
 GTK_X11_LIBS = @GTK_X11_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
-HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -453,13 +455,12 @@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-XMKMF = @XMKMF@
+XSHM_CFLAGS = @XSHM_CFLAGS@
 XSHM_LIBS = @XSHM_LIBS@
+XVIDEO_CFLAGS = @XVIDEO_CFLAGS@
 XVIDEO_LIBS = @XVIDEO_LIBS@
 X_CFLAGS = @X_CFLAGS@
-X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
-X_PRE_LIBS = @X_PRE_LIBS@
 ZLIB_CFLAGS = @ZLIB_CFLAGS@
 ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
diff --git a/gst-libs/gst/sdp/gstmikey.c b/gst-libs/gst/sdp/gstmikey.c
index 19093bd..406d498 100644
--- a/gst-libs/gst/sdp/gstmikey.c
+++ b/gst-libs/gst/sdp/gstmikey.c
@@ -29,13 +29,22 @@
  * messages.
  * </para>
  * </refsect2>
+ *
+ * Since: 1.4
  */
 
 #include <string.h>
 
 #include "gstmikey.h"
 
-static void payload_destroy (GstMIKEYPayload ** payload);
+GST_DEFINE_MINI_OBJECT_TYPE (GstMIKEYPayload, gst_mikey_payload);
+GST_DEFINE_MINI_OBJECT_TYPE (GstMIKEYMessage, gst_mikey_message);
+
+static void
+payload_destroy (GstMIKEYPayload ** payload)
+{
+  gst_mikey_payload_unref (*payload);
+}
 
 #define INIT_ARRAY(field, type, init_func)              \
 G_STMT_START {                                          \
@@ -92,10 +101,12 @@
  * @enc_alg: the #GstMIKEYEncAlg
  * @mac_alg: a #GstMIKEYMacAlg
  *
- * Set the KEMAC parameters. @payload should point to a #GST_MIKEY_PT_KEMAC
+ * Set the KEMAC parameters. @payload should point to a %GST_MIKEY_PT_KEMAC
  * payload.
  *
  * Returns: %TRUE on success
+ *
+ * Since: 1.4
  */
 gboolean
 gst_mikey_payload_kemac_set (GstMIKEYPayload * payload,
@@ -113,10 +124,12 @@
   return TRUE;
 }
 
-static void
-gst_mikey_payload_kemac_clear (GstMIKEYPayloadKEMAC * payload)
+static gboolean
+gst_mikey_payload_kemac_dispose (GstMIKEYPayloadKEMAC * payload)
 {
   FREE_ARRAY (payload->subpayloads);
+
+  return TRUE;
 }
 
 static GstMIKEYPayloadKEMAC *
@@ -127,8 +140,8 @@
   gst_mikey_payload_kemac_set (&copy->pt, payload->enc_alg, payload->mac_alg);
   len = payload->subpayloads->len;
   for (i = 0; i < len; i++) {
-    GstMIKEYPayload *pay = g_array_index (payload->subpayloads,
-        GstMIKEYPayload *, i);
+    GstMIKEYPayload *pay =
+        g_array_index (payload->subpayloads, GstMIKEYPayload *, i);
     gst_mikey_payload_kemac_add_sub (&copy->pt, gst_mikey_payload_copy (pay));
   }
   return copy;
@@ -139,9 +152,11 @@
  * @payload: a #GstMIKEYPayload
  *
  * Get the number of sub payloads of @payload. @payload should be of type
- * #GST_MIKEY_PT_KEMAC.
+ * %GST_MIKEY_PT_KEMAC.
  *
  * Returns: the number of sub payloads in @payload
+ *
+ * Since: 1.4
  */
 guint
 gst_mikey_payload_kemac_get_n_sub (const GstMIKEYPayload * payload)
@@ -160,9 +175,11 @@
  * @idx: an index
  *
  * Get the sub payload of @payload at @idx. @payload should be of type
- * #GST_MIKEY_PT_KEMAC.
+ * %GST_MIKEY_PT_KEMAC.
  *
- * Returns: the #GstMIKEYPayload at @idx.
+ * Returns: (transfer none): the #GstMIKEYPayload at @idx.
+ *
+ * Since: 1.4
  */
 const GstMIKEYPayload *
 gst_mikey_payload_kemac_get_sub (const GstMIKEYPayload * payload, guint idx)
@@ -186,6 +203,8 @@
  * Remove the sub payload at @idx in @payload.
  *
  * Returns: %TRUE on success.
+ *
+ * Since: 1.4
  */
 gboolean
 gst_mikey_payload_kemac_remove_sub (GstMIKEYPayload * payload, guint idx)
@@ -204,11 +223,13 @@
 /**
  * gst_mikey_payload_kemac_add_sub:
  * @payload: a #GstMIKEYPayload
- * @newpay: a #GstMIKEYPayload to add
+ * @newpay: (transfer full): a #GstMIKEYPayload to add
  *
  * Add a new sub payload to @payload.
  *
  * Returns: %TRUE on success.
+ *
+ * Since: 1.4
  */
 gboolean
 gst_mikey_payload_kemac_add_sub (GstMIKEYPayload * payload,
@@ -230,12 +251,14 @@
  * @payload: a #GstMIKEYPayload
  * @C: envelope key cache indicator
  * @data_len: the length of @data
- * @data: the encrypted envelope key
+ * @data: (array length=data_len): the encrypted envelope key
  *
  * Set the PKE values in @payload. @payload must be of type
- * #GST_MIKEY_PT_PKE.
+ * %GST_MIKEY_PT_PKE.
  *
  * Returns: %TRUE on success
+ *
+ * Since: 1.4
  */
 gboolean
 gst_mikey_payload_pke_set (GstMIKEYPayload * payload, GstMIKEYCacheType C,
@@ -253,10 +276,12 @@
   return TRUE;
 }
 
-static void
-gst_mikey_payload_pke_clear (GstMIKEYPayloadPKE * payload)
+static gboolean
+gst_mikey_payload_pke_dispose (GstMIKEYPayloadPKE * payload)
 {
   FREE_MEMDUP (payload->data);
+
+  return TRUE;
 }
 
 static GstMIKEYPayloadPKE *
@@ -296,11 +321,13 @@
  * gst_mikey_payload_t_set:
  * @payload: a #GstMIKEYPayload
  * @type: the #GstMIKEYTSType
- * @ts_value: the timestamp value
+ * @ts_value: (array): the timestamp value
  *
- * Set the timestamp in a #GST_MIKEY_PT_T @payload.
+ * Set the timestamp in a %GST_MIKEY_PT_T @payload.
  *
  * Returns: %TRUE on success
+ *
+ * Since: 1.4
  */
 gboolean
 gst_mikey_payload_t_set (GstMIKEYPayload * payload,
@@ -321,10 +348,12 @@
   return TRUE;
 }
 
-static void
-gst_mikey_payload_t_clear (GstMIKEYPayloadT * payload)
+static gboolean
+gst_mikey_payload_t_dispose (GstMIKEYPayloadT * payload)
 {
   FREE_MEMDUP (payload->ts_value);
+
+  return TRUE;
 }
 
 static GstMIKEYPayloadT *
@@ -355,6 +384,8 @@
  * Set the Security Policy parameters for @payload.
  *
  * Returns: %TRUE on success
+ *
+ * Since: 1.4
  */
 gboolean
 gst_mikey_payload_sp_set (GstMIKEYPayload * payload,
@@ -372,10 +403,12 @@
   return TRUE;
 }
 
-static void
-gst_mikey_payload_sp_clear (GstMIKEYPayloadSP * payload)
+static gboolean
+gst_mikey_payload_sp_dispose (GstMIKEYPayloadSP * payload)
 {
   FREE_ARRAY (payload->params);
+
+  return TRUE;
 }
 
 static GstMIKEYPayloadSP *
@@ -398,10 +431,12 @@
  * gst_mikey_payload_sp_get_n_params:
  * @payload: a #GstMIKEYPayload
  *
- * Get the number of security policy parameters in a #GST_MIKEY_PT_SP
+ * Get the number of security policy parameters in a %GST_MIKEY_PT_SP
  * @payload.
  *
  * Returns: the number of parameters in @payload
+ *
+ * Since: 1.4
  */
 guint
 gst_mikey_payload_sp_get_n_params (const GstMIKEYPayload * payload)
@@ -420,10 +455,12 @@
  * @payload: a #GstMIKEYPayload
  * @idx: an index
  *
- * Get the Security Policy parameter in a #GST_MIKEY_PT_SP @payload
+ * Get the Security Policy parameter in a %GST_MIKEY_PT_SP @payload
  * at @idx.
  *
  * Returns: the #GstMIKEYPayloadSPParam at @idx in @payload
+ *
+ * Since: 1.4
  */
 const GstMIKEYPayloadSPParam *
 gst_mikey_payload_sp_get_param (const GstMIKEYPayload * payload, guint idx)
@@ -444,10 +481,12 @@
  * @payload: a #GstMIKEYPayload
  * @idx: an index
  *
- * Remove the Security Policy parameters from a #GST_MIKEY_PT_SP
+ * Remove the Security Policy parameters from a %GST_MIKEY_PT_SP
  * @payload at @idx.
  *
  * Returns: %TRUE on success
+ *
+ * Since: 1.4
  */
 gboolean
 gst_mikey_payload_sp_remove_param (GstMIKEYPayload * payload, guint idx)
@@ -468,12 +507,14 @@
  * @payload: a #GstMIKEYPayload
  * @type: a type
  * @len: a length
- * @val: @len bytes of data
+ * @val: (array length=len): @len bytes of data
  *
- * Add a new parameter to the #GST_MIKEY_PT_SP @payload with @type, @len
+ * Add a new parameter to the %GST_MIKEY_PT_SP @payload with @type, @len
  * and @val.
  *
  * Returns: %TRUE on success
+ *
+ * Since: 1.4
  */
 gboolean
 gst_mikey_payload_sp_add_param (GstMIKEYPayload * payload,
@@ -499,11 +540,13 @@
  * gst_mikey_payload_rand_set:
  * @payload: a #GstMIKEYPayload
  * @len: the length of @rand
- * @rand: random values
+ * @rand: (array length=len): random values
  *
- * Set the random values in a #GST_MIKEY_PT_RAND @payload.
+ * Set the random values in a %GST_MIKEY_PT_RAND @payload.
  *
  * Returns: %TRUE on success
+ *
+ * Since: 1.4
  */
 gboolean
 gst_mikey_payload_rand_set (GstMIKEYPayload * payload, guint8 len,
@@ -520,10 +563,12 @@
   return TRUE;
 }
 
-static void
-gst_mikey_payload_rand_clear (GstMIKEYPayloadRAND * payload)
+static gboolean
+gst_mikey_payload_rand_dispose (GstMIKEYPayloadRAND * payload)
 {
   FREE_MEMDUP (payload->rand);
+
+  return TRUE;
 }
 
 static GstMIKEYPayloadRAND *
@@ -544,12 +589,14 @@
  * @payload: a #GstMIKEYPayload
  * @key_type: a #GstMIKEYKeyDataType
  * @key_len: the length of @key_data
- * @key_data: the key of type @key_type
+ * @key_data: (array length=key_len): the key of type @key_type
  *
  * Set @key_len bytes of @key_data of type @key_type as the key for the
- * #GST_MIKEY_PT_KEY_DATA @payload.
+ * %GST_MIKEY_PT_KEY_DATA @payload.
  *
  * Returns: %TRUE on success
+ *
+ * Since: 1.4
  */
 gboolean
 gst_mikey_payload_key_data_set_key (GstMIKEYPayload * payload,
@@ -572,12 +619,14 @@
  * gst_mikey_payload_key_data_set_salt:
  * @payload: a #GstMIKEYPayload
  * @salt_len: the length of @salt_data
- * @salt_data: the salt
+ * @salt_data: (array length=salt_len) (allow-none): the salt
  *
  * Set the salt key data. If @salt_len is 0 and @salt_data is %NULL, the
  * salt data will be removed.
  *
  * Returns: %TRUE on success
+ *
+ * Since: 1.4
  */
 gboolean
 gst_mikey_payload_key_data_set_salt (GstMIKEYPayload * payload,
@@ -602,11 +651,13 @@
  * gst_mikey_payload_key_data_set_spi:
  * @payload: a #GstMIKEYPayload
  * @spi_len: the length of @spi_data
- * @spi_data: the SPI/MKI data
+ * @spi_data: (array length=spi_len): the SPI/MKI data
  *
- * Set the SPI/MKI validity in the #GST_MIKEY_PT_KEY_DATA @payload.
+ * Set the SPI/MKI validity in the %GST_MIKEY_PT_KEY_DATA @payload.
  *
  * Returns: %TRUE on success
+ *
+ * Since: 1.4
  */
 gboolean
 gst_mikey_payload_key_data_set_spi (GstMIKEYPayload * payload,
@@ -632,13 +683,15 @@
  * gst_mikey_payload_key_data_set_interval:
  * @payload: a #GstMIKEYPayload
  * @vf_len: the length of @vf_data
- * @vf_data: the Valid From data
+ * @vf_data: (array length=vf_data): the Valid From data
  * @vt_len: the length of @vt_data
- * @vt_data: the Valid To data
+ * @vt_data: (array length=vt_len): the Valid To data
  *
- * Set the key validity period in the #GST_MIKEY_PT_KEY_DATA @payload.
+ * Set the key validity period in the %GST_MIKEY_PT_KEY_DATA @payload.
  *
  * Returns: %TRUE on success
+ *
+ * Since: 1.4
  */
 gboolean
 gst_mikey_payload_key_data_set_interval (GstMIKEYPayload * payload,
@@ -663,13 +716,15 @@
   return TRUE;
 }
 
-static void
-gst_mikey_payload_key_data_clear (GstMIKEYPayloadKeyData * payload)
+static gboolean
+gst_mikey_payload_key_data_dispose (GstMIKEYPayloadKeyData * payload)
 {
   FREE_MEMDUP (payload->key_data);
   FREE_MEMDUP (payload->salt_data);
   FREE_MEMDUP (payload->kv_data[0]);
   FREE_MEMDUP (payload->kv_data[1]);
+
+  return TRUE;
 }
 
 static GstMIKEYPayloadKeyData *
@@ -695,37 +750,46 @@
 
 /* General Extension Payload */
 
+static void
+mikey_payload_free (GstMIKEYPayload * payload)
+{
+  g_slice_free1 (payload->len, payload);
+}
+
+
 /**
  * gst_mikey_payload_new:
  * @type: a #GstMIKEYPayloadType
  *
  * Make a new #GstMIKEYPayload with @type.
  *
- * Returns: a new #GstMIKEYPayload or %NULL on failure.
+ * Returns: (nullable): a new #GstMIKEYPayload or %NULL on failure.
+ *
+ * Since: 1.4
  */
 GstMIKEYPayload *
 gst_mikey_payload_new (GstMIKEYPayloadType type)
 {
   guint len = 0;
-  GstMIKEYPayloadClearFunc clear;
-  GstMIKEYPayloadCopyFunc copy;
   GstMIKEYPayload *result;
+  GstMiniObjectCopyFunction copy;
+  GstMiniObjectDisposeFunction clear;
 
   switch (type) {
     case GST_MIKEY_PT_KEMAC:
       len = sizeof (GstMIKEYPayloadKEMAC);
-      clear = (GstMIKEYPayloadClearFunc) gst_mikey_payload_kemac_clear;
-      copy = (GstMIKEYPayloadCopyFunc) gst_mikey_payload_kemac_copy;
+      clear = (GstMiniObjectDisposeFunction) gst_mikey_payload_kemac_dispose;
+      copy = (GstMiniObjectCopyFunction) gst_mikey_payload_kemac_copy;
       break;
     case GST_MIKEY_PT_T:
       len = sizeof (GstMIKEYPayloadT);
-      clear = (GstMIKEYPayloadClearFunc) gst_mikey_payload_t_clear;
-      copy = (GstMIKEYPayloadCopyFunc) gst_mikey_payload_t_copy;
+      clear = (GstMiniObjectDisposeFunction) gst_mikey_payload_t_dispose;
+      copy = (GstMiniObjectCopyFunction) gst_mikey_payload_t_copy;
       break;
     case GST_MIKEY_PT_PKE:
       len = sizeof (GstMIKEYPayloadPKE);
-      clear = (GstMIKEYPayloadClearFunc) gst_mikey_payload_pke_clear;
-      copy = (GstMIKEYPayloadCopyFunc) gst_mikey_payload_pke_copy;
+      clear = (GstMiniObjectDisposeFunction) gst_mikey_payload_pke_dispose;
+      copy = (GstMiniObjectCopyFunction) gst_mikey_payload_pke_copy;
       break;
     case GST_MIKEY_PT_DH:
     case GST_MIKEY_PT_SIGN:
@@ -735,20 +799,20 @@
     case GST_MIKEY_PT_V:
     case GST_MIKEY_PT_SP:
       len = sizeof (GstMIKEYPayloadSP);
-      clear = (GstMIKEYPayloadClearFunc) gst_mikey_payload_sp_clear;
-      copy = (GstMIKEYPayloadCopyFunc) gst_mikey_payload_sp_copy;
+      clear = (GstMiniObjectDisposeFunction) gst_mikey_payload_sp_dispose;
+      copy = (GstMiniObjectCopyFunction) gst_mikey_payload_sp_copy;
       break;
     case GST_MIKEY_PT_RAND:
       len = sizeof (GstMIKEYPayloadRAND);
-      clear = (GstMIKEYPayloadClearFunc) gst_mikey_payload_rand_clear;
-      copy = (GstMIKEYPayloadCopyFunc) gst_mikey_payload_rand_copy;
+      clear = (GstMiniObjectDisposeFunction) gst_mikey_payload_rand_dispose;
+      copy = (GstMiniObjectCopyFunction) gst_mikey_payload_rand_copy;
       break;
     case GST_MIKEY_PT_ERR:
       break;
     case GST_MIKEY_PT_KEY_DATA:
       len = sizeof (GstMIKEYPayloadKeyData);
-      clear = (GstMIKEYPayloadClearFunc) gst_mikey_payload_key_data_clear;
-      copy = (GstMIKEYPayloadCopyFunc) gst_mikey_payload_key_data_copy;
+      clear = (GstMiniObjectDisposeFunction) gst_mikey_payload_key_data_dispose;
+      copy = (GstMiniObjectCopyFunction) gst_mikey_payload_key_data_copy;
       break;
     case GST_MIKEY_PT_GEN_EXT:
     case GST_MIKEY_PT_LAST:
@@ -758,55 +822,47 @@
     return NULL;
 
   result = g_slice_alloc0 (len);
+  gst_mini_object_init (GST_MINI_OBJECT_CAST (result),
+      0, GST_TYPE_MIKEY_PAYLOAD, copy, clear,
+      (GstMiniObjectFreeFunction) mikey_payload_free);
   result->type = type;
   result->len = len;
-  result->clear_func = clear;
-  result->copy_func = copy;
 
   return result;
 }
 
-/**
- * gst_mikey_payload_copy:
- * @payload: a #GstMIKEYPayload
- *
- * Copy @payload.
- *
- * Returns: a new #GstMIKEYPayload that is a copy of @payload
- */
-GstMIKEYPayload *
-gst_mikey_payload_copy (const GstMIKEYPayload * payload)
+static GstMIKEYMessage *
+mikey_message_copy (GstMIKEYMessage * msg)
 {
-  g_return_val_if_fail (payload != NULL, NULL);
-  g_return_val_if_fail (payload->copy_func != NULL, NULL);
+  GstMIKEYMessage *copy;
+  guint i, len;
 
-  return payload->copy_func (payload);
-}
+  copy = gst_mikey_message_new ();
 
-/**
- * gst_mikey_payload_free:
- * @payload: a #GstMIKEYPayload
- *
- * Free @payload
- *
- * Returns: %TRUE on success
- */
-gboolean
-gst_mikey_payload_free (GstMIKEYPayload * payload)
-{
-  g_return_val_if_fail (payload != NULL, FALSE);
+  gst_mikey_message_set_info (copy, msg->version, msg->type, msg->V,
+      msg->prf_func, msg->CSB_id, msg->map_type);
 
-  if (payload->clear_func)
-    payload->clear_func (payload);
-  g_slice_free1 (payload->len, payload);
+  len = msg->map_info->len;
+  for (i = 0; i < len; i++) {
+    const GstMIKEYMapSRTP *srtp = gst_mikey_message_get_cs_srtp (msg, i);
+    gst_mikey_message_add_cs_srtp (copy, srtp->policy, srtp->ssrc, srtp->roc);
+  }
 
-  return TRUE;
+  len = msg->payloads->len;
+  for (i = 0; i < len; i++) {
+    const GstMIKEYPayload *pay = gst_mikey_message_get_payload (msg, i);
+    gst_mikey_message_add_payload (copy, gst_mikey_payload_copy (pay));
+  }
+  return copy;
 }
 
 static void
-payload_destroy (GstMIKEYPayload ** payload)
+mikey_message_free (GstMIKEYMessage * msg)
 {
-  gst_mikey_payload_free (*payload);
+  FREE_ARRAY (msg->map_info);
+  FREE_ARRAY (msg->payloads);
+
+  g_slice_free (GstMIKEYMessage, msg);
 }
 
 /**
@@ -815,6 +871,8 @@
  * Make a new MIKEY message.
  *
  * Returns: a new #GstMIKEYMessage on success
+ *
+ * Since: 1.4
  */
 GstMIKEYMessage *
 gst_mikey_message_new (void)
@@ -822,6 +880,10 @@
   GstMIKEYMessage *result;
 
   result = g_slice_new0 (GstMIKEYMessage);
+  gst_mini_object_init (GST_MINI_OBJECT_CAST (result),
+      0, GST_TYPE_MIKEY_MESSAGE,
+      (GstMiniObjectCopyFunction) mikey_message_copy, NULL,
+      (GstMiniObjectFreeFunction) mikey_message_free);
 
   INIT_ARRAY (result->map_info, GstMIKEYMapSRTP, NULL);
   INIT_ARRAY (result->payloads, GstMIKEYPayload *, payload_destroy);
@@ -838,6 +900,8 @@
  * Make a new #GstMIKEYMessage from @bytes.
  *
  * Returns: a new #GstMIKEYMessage
+ *
+ * Since: 1.4
  */
 GstMIKEYMessage *
 gst_mikey_message_new_from_bytes (GBytes * bytes, GstMIKEYDecryptInfo * info,
@@ -853,23 +917,6 @@
 }
 
 /**
- * gst_mikey_message_free:
- * @msg: a #GstMIKEYMessage
- *
- * Free all resources allocated in @msg.
- */
-void
-gst_mikey_message_free (GstMIKEYMessage * msg)
-{
-  g_return_if_fail (msg != NULL);
-
-  FREE_ARRAY (msg->map_info);
-  FREE_ARRAY (msg->payloads);
-
-  g_slice_free (GstMIKEYMessage, msg);
-}
-
-/**
  * gst_mikey_message_set_info:
  * @msg: a #GstMIKEYMessage
  * @version: a version
@@ -882,6 +929,8 @@
  * Set the information in @msg.
  *
  * Returns: %TRUE on success
+ *
+ * Since: 1.4
  */
 gboolean
 gst_mikey_message_set_info (GstMIKEYMessage * msg, guint8 version,
@@ -907,6 +956,8 @@
  * Get the number of crypto sessions in @msg.
  *
  * Returns: the number of crypto sessions
+ *
+ * Since: 1.4
  */
 guint
 gst_mikey_message_get_n_cs (const GstMIKEYMessage * msg)
@@ -924,6 +975,8 @@
  * Get the policy information of @msg at @idx.
  *
  * Returns: a #GstMIKEYMapSRTP
+ *
+ * Since: 1.4
  */
 const GstMIKEYMapSRTP *
 gst_mikey_message_get_cs_srtp (const GstMIKEYMessage * msg, guint idx)
@@ -948,6 +1001,8 @@
  * When @idx is -1, the policy will be appended.
  *
  * Returns: %TRUE on success
+ *
+ * Since: 1.4
  */
 gboolean
 gst_mikey_message_insert_cs_srtp (GstMIKEYMessage * msg, gint idx,
@@ -975,6 +1030,8 @@
  * Replace a Crypto Session map for SRTP in @msg at @idx with @map.
  *
  * Returns: %TRUE on success
+ *
+ * Since: 1.4
  */
 gboolean
 gst_mikey_message_replace_cs_srtp (GstMIKEYMessage * msg, gint idx,
@@ -998,6 +1055,8 @@
  * Remove the SRTP policy at @idx.
  *
  * Returns: %TRUE on success
+ *
+ * Since: 1.4
  */
 gboolean
 gst_mikey_message_remove_cs_srtp (GstMIKEYMessage * msg, gint idx)
@@ -1021,6 +1080,8 @@
  * Add a Crypto policy for SRTP to @msg.
  *
  * Returns: %TRUE on success
+ *
+ * Since: 1.4
  */
 gboolean
 gst_mikey_message_add_cs_srtp (GstMIKEYMessage * msg, guint8 policy,
@@ -1046,6 +1107,8 @@
  * Get the number of payloads in @msg.
  *
  * Returns: the number of payloads in @msg
+ *
+ * Since: 1.4
  */
 guint
 gst_mikey_message_get_n_payloads (const GstMIKEYMessage * msg)
@@ -1062,7 +1125,10 @@
  *
  * Get the #GstMIKEYPayload at @idx in @msg
  *
- * Returns: the #GstMIKEYPayload at @idx
+ * Returns: (transfer none): the #GstMIKEYPayload at @idx. The payload
+ * remains valid for as long as it is part of @msg.
+ *
+ * Since: 1.4
  */
 const GstMIKEYPayload *
 gst_mikey_message_get_payload (const GstMIKEYMessage * msg, guint idx)
@@ -1084,6 +1150,8 @@
  * Find the @nth occurence of the payload with @type in @msg.
  *
  * Returns: the @nth #GstMIKEYPayload of @type.
+ *
+ * Since: 1.4
  */
 const GstMIKEYPayload *
 gst_mikey_message_find_payload (const GstMIKEYMessage * msg,
@@ -1115,6 +1183,8 @@
  * Remove the payload in @msg at @idx
  *
  * Returns: %TRUE on success
+ *
+ * Since: 1.4
  */
 gboolean
 gst_mikey_message_remove_payload (GstMIKEYMessage * msg, guint idx)
@@ -1131,12 +1201,14 @@
  * gst_mikey_message_insert_payload:
  * @msg: a #GstMIKEYMessage
  * @idx: an index
- * @payload: a #GstMIKEYPayload
+ * @payload: (transfer full): a #GstMIKEYPayload
  *
  * Insert the @payload at index @idx in @msg. If @idx is -1, the payload
  * will be appended to @msg.
  *
  * Returns: %TRUE on success
+ *
+ * Since: 1.4
  */
 gboolean
 gst_mikey_message_insert_payload (GstMIKEYMessage * msg, guint idx,
@@ -1157,11 +1229,13 @@
 /**
  * gst_mikey_message_add_payload:
  * @msg: a #GstMIKEYMessage
- * @payload: a #GstMIKEYPayload
+ * @payload: (transfer full): a #GstMIKEYPayload
  *
  * Add a new payload to @msg.
  *
  * Returns: %TRUE on success
+ *
+ * Since: 1.4
  */
 gboolean
 gst_mikey_message_add_payload (GstMIKEYMessage * msg, GstMIKEYPayload * payload)
@@ -1173,11 +1247,13 @@
  * gst_mikey_message_replace_payload:
  * @msg: a #GstMIKEYMessage
  * @idx: an index
- * @payload: a #GstMIKEYPayload
+ * @payload: (transfer full): a #GstMIKEYPayload
  *
  * Replace the payload at @idx in @msg with @payload.
  *
  * Returns: %TRUE on success
+ *
+ * Since: 1.4
  */
 gboolean
 gst_mikey_message_replace_payload (GstMIKEYMessage * msg, guint idx,
@@ -1190,7 +1266,7 @@
   g_return_val_if_fail (msg->payloads->len > idx, FALSE);
 
   p = g_array_index (msg->payloads, GstMIKEYPayload *, idx);
-  gst_mikey_payload_free (p);
+  gst_mikey_payload_unref (p);
   g_array_index (msg->payloads, GstMIKEYPayload *, idx) = payload;
 
   return TRUE;
@@ -1201,11 +1277,13 @@
  * @msg: a #GstMIKEYMessage
  * @C: envelope key cache indicator
  * @data_len: the length of @data
- * @data: the encrypted envelope key
+ * @data: (array length=data_len): the encrypted envelope key
  *
  * Add a new PKE payload to @msg with the given parameters.
  *
  * Returns: %TRUE on success
+ *
+ * Since: 1.4
  */
 gboolean
 gst_mikey_message_add_pke (GstMIKEYMessage * msg, GstMIKEYCacheType C,
@@ -1217,7 +1295,7 @@
 
   p = gst_mikey_payload_new (GST_MIKEY_PT_PKE);
   if (!gst_mikey_payload_pke_set (p, C, data_len, data)) {
-    gst_mikey_payload_free (p);
+    gst_mikey_payload_unref (p);
     return FALSE;
   }
 
@@ -1228,11 +1306,13 @@
  * gst_mikey_message_add_t:
  * @msg: a #GstMIKEYMessage
  * @type: specifies the timestamp type used
- * @ts_value: The timestamp value of the specified @type
+ * @ts_value: (array): The timestamp value of the specified @type
  *
  * Add a new T payload to @msg with the given parameters.
  *
  * Returns: %TRUE on success
+ *
+ * Since: 1.4
  */
 gboolean
 gst_mikey_message_add_t (GstMIKEYMessage * msg, GstMIKEYTSType type,
@@ -1244,7 +1324,7 @@
 
   p = gst_mikey_payload_new (GST_MIKEY_PT_T);
   if (!gst_mikey_payload_t_set (p, type, ts_value)) {
-    gst_mikey_payload_free (p);
+    gst_mikey_payload_unref (p);
     return FALSE;
   }
 
@@ -1259,6 +1339,8 @@
  * in NTP-UTC format.
  *
  * Returns: %TRUE on success
+ *
+ * Since: 1.4
  */
 gboolean
 gst_mikey_message_add_t_now_ntp_utc (GstMIKEYMessage * msg)
@@ -1284,11 +1366,13 @@
  * gst_mikey_message_add_rand:
  * @msg: a #GstMIKEYMessage
  * @len: the length of @rand
- * @rand: random data
+ * @rand: (array length=len): random data
  *
  * Add a new RAND payload to @msg with the given parameters.
  *
  * Returns: %TRUE on success
+ *
+ * Since: 1.4
  */
 gboolean
 gst_mikey_message_add_rand (GstMIKEYMessage * msg, guint8 len,
@@ -1301,7 +1385,7 @@
 
   p = gst_mikey_payload_new (GST_MIKEY_PT_RAND);
   if (!gst_mikey_payload_rand_set (p, len, rand)) {
-    gst_mikey_payload_free (p);
+    gst_mikey_payload_unref (p);
     return FALSE;
   }
 
@@ -1316,6 +1400,8 @@
  * Add a new RAND payload to @msg with @len random bytes.
  *
  * Returns: %TRUE on success
+ *
+ * Since: 1.4
  */
 gboolean
 gst_mikey_message_add_rand_len (GstMIKEYMessage * msg, guint8 len)
@@ -1582,6 +1668,8 @@
  * Convert @msg to a #GBytes.
  *
  * Returns: a new #GBytes for @msg.
+ *
+ * Since: 1.4
  */
 GBytes *
 gst_mikey_message_to_bytes (GstMIKEYMessage * msg, GstMIKEYEncryptInfo * info,
@@ -1943,21 +2031,21 @@
   {
     GST_DEBUG ("not enough data");
     if (p)
-      gst_mikey_payload_free (p);
+      gst_mikey_payload_unref (p);
     return FALSE;
   }
 invalid_data:
   {
     GST_DEBUG ("invalid data");
     if (p)
-      gst_mikey_payload_free (p);
+      gst_mikey_payload_unref (p);
     return FALSE;
   }
 }
 
 /**
  * gst_mikey_message_new_from_data:
- * @data: bytes to read
+ * @data: (array length=size) (element-type guint8): bytes to read
  * @size: length of @data
  * @info: #GstMIKEYDecryptInfo
  * @error: a #GError
@@ -1967,6 +2055,8 @@
  *
  * Returns: a #GstMIKEYMessage on success or %NULL when parsing failed and
  * @error will be set.
+ *
+ * Since: 1.4
  */
 GstMIKEYMessage *
 gst_mikey_message_new_from_data (gconstpointer data, gsize size,
@@ -2042,19 +2132,19 @@
 short_data:
   {
     GST_DEBUG ("not enough data");
-    gst_mikey_message_free (msg);
+    gst_mikey_message_unref (msg);
     return NULL;
   }
 unknown_version:
   {
     GST_DEBUG ("unknown version");
-    gst_mikey_message_free (msg);
+    gst_mikey_message_unref (msg);
     return NULL;
   }
 parse_error:
   {
     GST_DEBUG ("failed to parse");
-    gst_mikey_message_free (msg);
+    gst_mikey_message_unref (msg);
     return NULL;
   }
 }
diff --git a/gst-libs/gst/sdp/gstmikey.h b/gst-libs/gst/sdp/gstmikey.h
index 0ffeb2f..91d7be2 100644
--- a/gst-libs/gst/sdp/gstmikey.h
+++ b/gst-libs/gst/sdp/gstmikey.h
@@ -26,6 +26,9 @@
 
 G_BEGIN_DECLS
 
+GType gst_mikey_message_get_type(void);
+#define GST_TYPE_MIKEY_MESSAGE (gst_mikey_message_get_type())
+
 typedef struct _GstMIKEYMessage GstMIKEYMessage;
 typedef struct _GstMIKEYEncryptInfo GstMIKEYEncryptInfo;
 typedef struct _GstMIKEYDecryptInfo GstMIKEYDecryptInfo;
@@ -140,21 +143,8 @@
 
 typedef struct _GstMIKEYPayload GstMIKEYPayload;
 
-/**
- * GstMIKEYPayloadClearFunc:
- * @payload: a #GstMIKEYPayload
- *
- * Function used to clear a payload
- */
-typedef void (*GstMIKEYPayloadClearFunc) (GstMIKEYPayload *payload);
-
-/**
- * GstMIKEYPayloadCopyFunc:
- * @payload: a #GstMIKEYPayload
- *
- * Function used to copy a payload
- */
-typedef GstMIKEYPayload * (*GstMIKEYPayloadCopyFunc) (const GstMIKEYPayload *payload);
+GType gst_mikey_payload_get_type(void);
+#define GST_TYPE_MIKEY_PAYLOAD (gst_mikey_payload_get_type())
 
 /**
  * GstMIKEYPayload:
@@ -166,15 +156,71 @@
  * Hold the common fields for all payloads
  */
 struct _GstMIKEYPayload {
+  GstMiniObject mini_object;
+
   GstMIKEYPayloadType type;
   guint len;
-  GstMIKEYPayloadClearFunc clear_func;
-  GstMIKEYPayloadCopyFunc copy_func;
 };
 
 GstMIKEYPayload *   gst_mikey_payload_new      (GstMIKEYPayloadType type);
-GstMIKEYPayload *   gst_mikey_payload_copy     (const GstMIKEYPayload *payload);
-gboolean            gst_mikey_payload_free     (GstMIKEYPayload *payload);
+
+/**
+ * gst_mikey_payload_ref:
+ * @payload: The payload to refcount
+ *
+ * Increase the refcount of this payload.
+ *
+ * Returns: (transfer full): @payload (for convenience when doing assignments)
+ *
+ * Since: 1.4
+ */
+#ifdef _FOOL_GTK_DOC_
+G_INLINE_FUNC GstMIKEYPayload * gst_mikey_payload_ref (GstMIKEYPayload * payload);
+#endif
+
+static inline GstMIKEYPayload *
+gst_mikey_payload_ref (GstMIKEYPayload * payload)
+{
+  return (GstMIKEYPayload *) gst_mini_object_ref (GST_MINI_OBJECT_CAST (payload));
+}
+
+/**
+ * gst_mikey_payload_unref:
+ * @payload: (transfer full): the payload to refcount
+ *
+ * Decrease the refcount of an payload, freeing it if the refcount reaches 0.
+ *
+ * Since: 1.4
+ */
+#ifdef _FOOL_GTK_DOC_
+G_INLINE_FUNC void gst_mikey_payload_unref (GstMIKEYPayload * payload);
+#endif
+
+static inline void
+gst_mikey_payload_unref (GstMIKEYPayload * payload)
+{
+  gst_mini_object_unref (GST_MINI_OBJECT_CAST (payload));
+}
+
+/**
+ * gst_mikey_payload_copy:
+ * @payload: a #GstMIKEYPayload.
+ *
+ * Create a copy of the given payload.
+ *
+ * Returns: (transfer full): a new copy of @payload.
+ *
+ * Since: 1.4
+ */
+#ifdef _FOOL_GTK_DOC_
+G_INLINE_FUNC GstMIKEYPayload * gst_mikey_payload_copy (const GstMIKEYPayload * buf);
+#endif
+
+static inline GstMIKEYPayload *
+gst_mikey_payload_copy (const GstMIKEYPayload * payload)
+{
+  return (GstMIKEYPayload *) gst_mini_object_copy (GST_MINI_OBJECT_CONST_CAST (payload));
+}
 
 /**
  * GstMIKEYEncAlg:
@@ -491,6 +537,8 @@
  */
 struct _GstMIKEYMessage
 {
+  GstMiniObject mini_object;
+
   guint8 version;
   GstMIKEYType type;
   gboolean V;
@@ -509,7 +557,64 @@
                                                                  GError **error);
 GBytes *                    gst_mikey_message_to_bytes          (GstMIKEYMessage *msg, GstMIKEYEncryptInfo *info,
                                                                  GError **error);
-void                        gst_mikey_message_free              (GstMIKEYMessage *msg);
+/**
+ * gst_mikey_message_ref:
+ * @message: The message to refcount
+ *
+ * Increase the refcount of this message.
+ *
+ * Returns: (transfer full): @message (for convenience when doing assignments)
+ *
+ * Since: 1.4
+ */
+#ifdef _FOOL_GTK_DOC_
+G_INLINE_FUNC GstMIKEYMessage * gst_mikey_message_ref (GstMIKEYMessage * message);
+#endif
+
+static inline GstMIKEYMessage *
+gst_mikey_message_ref (GstMIKEYMessage * message)
+{
+  return (GstMIKEYMessage *) gst_mini_object_ref (GST_MINI_OBJECT_CAST (message));
+}
+
+/**
+ * gst_mikey_message_unref:
+ * @message: (transfer full): the message to refcount
+ *
+ * Decrease the refcount of an message, freeing it if the refcount reaches 0.
+ *
+ * Since: 1.4
+ */
+#ifdef _FOOL_GTK_DOC_
+G_INLINE_FUNC void gst_mikey_message_unref (GstMIKEYMessage * message);
+#endif
+
+static inline void
+gst_mikey_message_unref (GstMIKEYMessage * message)
+{
+  gst_mini_object_unref (GST_MINI_OBJECT_CAST (message));
+}
+
+/**
+ * gst_mikey_message_copy:
+ * @message: a #GstMIKEYMessage.
+ *
+ * Create a copy of the given message.
+ *
+ * Returns: (transfer full): a new copy of @message.
+ *
+ * Since: 1.4
+ */
+#ifdef _FOOL_GTK_DOC_
+G_INLINE_FUNC GstMIKEYMessage * gst_mikey_message_copy (const GstMIKEYMessage * buf);
+#endif
+
+static inline GstMIKEYMessage *
+gst_mikey_message_copy (const GstMIKEYMessage * message)
+{
+  return (GstMIKEYMessage *) gst_mini_object_copy (GST_MINI_OBJECT_CONST_CAST (message));
+}
+
 
 gboolean                    gst_mikey_message_set_info          (GstMIKEYMessage *msg,
                                                                  guint8 version, GstMIKEYType type, gboolean V,
diff --git a/gst-libs/gst/sdp/sdp.h b/gst-libs/gst/sdp/sdp.h
index 0647bf6..c5cc089 100644
--- a/gst-libs/gst/sdp/sdp.h
+++ b/gst-libs/gst/sdp/sdp.h
@@ -24,5 +24,6 @@
 
 #include <gst/sdp/gstsdp.h>
 #include <gst/sdp/gstsdpmessage.h>
+#include <gst/sdp/gstmikey.h>
 
 #endif /* __GST_SDP__H__ */
diff --git a/gst-libs/gst/tag/Makefile.in b/gst-libs/gst/tag/Makefile.in
index abac36f..f368b05 100644
--- a/gst-libs/gst/tag/Makefile.in
+++ b/gst-libs/gst/tag/Makefile.in
@@ -106,7 +106,6 @@
 	$(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-x11.m4 \
 	$(top_srcdir)/common/m4/gst.m4 \
 	$(top_srcdir)/common/m4/gtk-doc.m4 \
 	$(top_srcdir)/common/m4/introspection.m4 \
@@ -324,6 +323,8 @@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_2_0_CFLAGS = @GIO_UNIX_2_0_CFLAGS@
+GIO_UNIX_2_0_LIBS = @GIO_UNIX_2_0_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
@@ -353,6 +354,8 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
+GST_NET_CFLAGS = @GST_NET_CFLAGS@
+GST_NET_LIBS = @GST_NET_LIBS@
 GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
 GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
@@ -380,7 +383,6 @@
 GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
 GTK_X11_LIBS = @GTK_X11_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
-HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -484,13 +486,12 @@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-XMKMF = @XMKMF@
+XSHM_CFLAGS = @XSHM_CFLAGS@
 XSHM_LIBS = @XSHM_LIBS@
+XVIDEO_CFLAGS = @XVIDEO_CFLAGS@
 XVIDEO_LIBS = @XVIDEO_LIBS@
 X_CFLAGS = @X_CFLAGS@
-X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
-X_PRE_LIBS = @X_PRE_LIBS@
 ZLIB_CFLAGS = @ZLIB_CFLAGS@
 ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
diff --git a/gst-libs/gst/tag/gsttagdemux.c b/gst-libs/gst/tag/gsttagdemux.c
index c36a75d..b736276 100644
--- a/gst-libs/gst/tag/gsttagdemux.c
+++ b/gst-libs/gst/tag/gsttagdemux.c
@@ -455,7 +455,7 @@
     need_sub = TRUE;
   }
 
-  if (need_sub == TRUE) {
+  if (need_sub) {
     if (out_size != bsize || !gst_buffer_is_writable (buf)) {
       GstBuffer *sub;
 
@@ -1614,6 +1614,20 @@
   return res;
 }
 
+static inline GstFlowReturn
+gst_tag_demux_ensure_tags (GstTagDemux * demux)
+{
+  GstFlowReturn flow = GST_FLOW_OK;
+
+  if (G_UNLIKELY (demux->priv->state == GST_TAG_DEMUX_READ_START_TAG &&
+          GST_PAD_MODE (demux->priv->srcpad) == GST_PAD_MODE_PULL)) {
+
+    flow = gst_tag_demux_element_find (demux);
+    GST_INFO_OBJECT (demux, "pulled tags: %s", gst_flow_get_name (flow));
+  }
+  return flow;
+}
+
 static GstFlowReturn
 gst_tag_demux_read_range (GstTagDemux * demux, GstObject * parent,
     guint64 offset, guint length, GstBuffer ** buffer)
@@ -1625,6 +1639,12 @@
 
   g_return_val_if_fail (buffer != NULL, GST_FLOW_ERROR);
 
+  /* Ensure we already have computed our tags to properly use the offsets
+   * below */
+  ret = gst_tag_demux_ensure_tags (demux);
+  if (ret != GST_FLOW_OK)
+    return ret;
+
   /* Adjust offset and length of the request to trim off tag information. 
    * For the returned buffer, adjust the output offset to match what downstream
    * should see */
@@ -1741,13 +1761,7 @@
          * filesrc ! id3demux ! xyzparse ! .., read tags here, since we don't
          * have a streaming thread of our own to do that. We do it here and
          * not in get_range(), so we can return the right size in bytes.. */
-        if (demux->priv->state == GST_TAG_DEMUX_READ_START_TAG &&
-            GST_PAD_MODE (demux->priv->srcpad) == GST_PAD_MODE_PULL) {
-          GstFlowReturn flow G_GNUC_UNUSED;
-
-          flow = gst_tag_demux_element_find (demux);
-          GST_INFO_OBJECT (demux, "pulled tags: %s", gst_flow_get_name (flow));
-        }
+        gst_tag_demux_ensure_tags (demux);
         result -= demux->priv->strip_start + demux->priv->strip_end;
         if (result < 0)
           result = 0;
diff --git a/gst-libs/gst/tag/gsttagmux.c b/gst-libs/gst/tag/gsttagmux.c
index 1140fe9..1d52790 100644
--- a/gst-libs/gst/tag/gsttagmux.c
+++ b/gst-libs/gst/tag/gsttagmux.c
@@ -222,6 +222,9 @@
   mux->priv->final_tags =
       gst_tag_list_merge (tagsetter_tags, mux->priv->event_tags, merge_mode);
 
+  if (mux->priv->final_tags == NULL)
+    mux->priv->final_tags = gst_tag_list_new_empty ();
+
   GST_LOG_OBJECT (mux, "final tags: %" GST_PTR_FORMAT, mux->priv->final_tags);
 
   return mux->priv->final_tags;
diff --git a/gst-libs/gst/tag/id3v2frames.c b/gst-libs/gst/tag/id3v2frames.c
index 3785c2a..ac9e486 100644
--- a/gst-libs/gst/tag/id3v2frames.c
+++ b/gst-libs/gst/tag/id3v2frames.c
@@ -1059,7 +1059,7 @@
 
       field = g_convert (data, data_size, "UTF-8", in_encode, NULL, NULL, NULL);
 
-      if (field == NULL || g_utf8_validate (field, -1, NULL) == FALSE) {
+      if (field == NULL || !g_utf8_validate (field, -1, NULL)) {
         /* As a fallback, try interpreting UTF-16 in the other endianness */
         if (in_encode == utf16beenc)
           field = g_convert (data, data_size, "UTF-8", utf16leenc,
diff --git a/gst-libs/gst/tag/xmpwriter.h b/gst-libs/gst/tag/xmpwriter.h
index 838a6bd..5c9be49 100644
--- a/gst-libs/gst/tag/xmpwriter.h
+++ b/gst-libs/gst/tag/xmpwriter.h
@@ -28,12 +28,8 @@
   (gst_tag_xmp_writer_get_type ())
 #define GST_TAG_XMP_WRITER(obj) \
   (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_TAG_XMP_WRITER, GstTagXmpWriter))
-#define GST_TAG_XMP_WRITER_INTERFACE(iface) \
-  (G_TYPE_CHECK_INTERFACE_CAST ((iface), GST_TYPE_TAG_XMP_WRITER, GstTagXmpWriterInterface))
 #define GST_IS_TAG_XMP_WRITER(obj) \
   (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_TAG_XMP_WRITER))
-#define GST_IS_TAG_XMP_WRITER_INTERFACE(iface) \
-  (G_TYPE_CHECK_INTERFACE_TYPE ((iface), GST_TYPE_TAG_XMP_WRITER))
 #define GST_TAG_XMP_WRITER_GET_INTERFACE(inst) \
   (G_TYPE_INSTANCE_GET_INTERFACE ((inst), GST_TYPE_TAG_XMP_WRITER, GstTagXmpWriterInterface))
 
diff --git a/gst-libs/gst/video/Makefile.am b/gst-libs/gst/video/Makefile.am
index 3932947..c786a36 100644
--- a/gst-libs/gst/video/Makefile.am
+++ b/gst-libs/gst/video/Makefile.am
@@ -2,8 +2,9 @@
 ORC_SOURCE=video-orc
 include $(top_srcdir)/common/orc.mak
 
-glib_enum_headers = video.h video-format.h video-color.h video-info.h \
-			colorbalance.h navigation.h video-chroma.h video-tile.h
+glib_enum_headers = video.h video-format.h video-color.h video-info.h video-dither.h \
+			colorbalance.h navigation.h video-chroma.h video-tile.h video-converter.h \
+			video-resampler.h
 glib_enum_define = GST_VIDEO
 glib_gen_prefix = gst_video
 glib_gen_basename = video
@@ -25,8 +26,11 @@
 	video-format.c         	\
 	video-chroma.c         	\
 	video-color.c         	\
+	video-converter.c    	\
+	video-dither.c    	\
 	video-info.c         	\
 	video-frame.c         	\
+	video-scaler.c          \
 	video-tile.c         	\
 	gstvideosink.c   	\
 	gstvideofilter.c 	\
@@ -38,6 +42,8 @@
 	gstvideodecoder.c       \
 	gstvideoencoder.c       \
 	gstvideoutils.c		\
+	gstvideoutilsprivate.c	\
+	video-resampler.c	\
 	video-blend.c		\
 	video-overlay-composition.c
 
@@ -53,8 +59,11 @@
 	video-format.h         	\
 	video-chroma.h         	\
 	video-color.h         	\
+	video-converter.h      	\
+	video-dither.h      	\
 	video-info.h         	\
 	video-frame.h         	\
+	video-scaler.h          \
 	video-tile.h         	\
 	gstvideosink.h 		\
 	gstvideofilter.h	\
@@ -65,14 +74,16 @@
 	gstvideodecoder.h       \
 	gstvideoencoder.h       \
 	gstvideoutils.h		\
+	video-resampler.h	\
 	video-blend.h		\
 	video-overlay-composition.h
 
 nodist_libgstvideo_@GST_API_VERSION@include_HEADERS = $(built_headers)
+noinst_HEADERS = gstvideoutilsprivate.h
 
 libgstvideo_@GST_API_VERSION@_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) \
 					$(ORC_CFLAGS)
-libgstvideo_@GST_API_VERSION@_la_LIBADD = $(GST_BASE_LIBS) $(GST_LIBS) $(ORC_LIBS)
+libgstvideo_@GST_API_VERSION@_la_LIBADD = $(GST_BASE_LIBS) $(GST_LIBS) $(ORC_LIBS) $(LIBM)
 libgstvideo_@GST_API_VERSION@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) $(GST_LT_LDFLAGS)
 
 include $(top_srcdir)/common/gst-glib-gen.mak
diff --git a/gst-libs/gst/video/Makefile.in b/gst-libs/gst/video/Makefile.in
index d526157..41d349e 100644
--- a/gst-libs/gst/video/Makefile.in
+++ b/gst-libs/gst/video/Makefile.in
@@ -114,7 +114,8 @@
 DIST_COMMON = $(top_srcdir)/common/orc.mak \
 	$(top_srcdir)/common/gst-glib-gen.mak $(srcdir)/Makefile.in \
 	$(srcdir)/Makefile.am $(top_srcdir)/depcomp \
-	$(libgstvideo_@GST_API_VERSION@include_HEADERS) TODO
+	$(libgstvideo_@GST_API_VERSION@include_HEADERS) \
+	$(noinst_HEADERS) TODO
 @HAVE_INTROSPECTION_TRUE@am__append_1 = $(BUILT_GIRSOURCES) $(typelibs_DATA)
 subdir = gst-libs/gst/video
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -137,7 +138,6 @@
 	$(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-x11.m4 \
 	$(top_srcdir)/common/m4/gst.m4 \
 	$(top_srcdir)/common/m4/gtk-doc.m4 \
 	$(top_srcdir)/common/m4/introspection.m4 \
@@ -192,7 +192,8 @@
 LTLIBRARIES = $(lib_LTLIBRARIES)
 am__DEPENDENCIES_1 =
 libgstvideo_@GST_API_VERSION@_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
-	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_1)
 am_libgstvideo_@GST_API_VERSION@_la_OBJECTS =  \
 	libgstvideo_@GST_API_VERSION@_la-colorbalance.lo \
 	libgstvideo_@GST_API_VERSION@_la-colorbalancechannel.lo \
@@ -202,8 +203,11 @@
 	libgstvideo_@GST_API_VERSION@_la-video-format.lo \
 	libgstvideo_@GST_API_VERSION@_la-video-chroma.lo \
 	libgstvideo_@GST_API_VERSION@_la-video-color.lo \
+	libgstvideo_@GST_API_VERSION@_la-video-converter.lo \
+	libgstvideo_@GST_API_VERSION@_la-video-dither.lo \
 	libgstvideo_@GST_API_VERSION@_la-video-info.lo \
 	libgstvideo_@GST_API_VERSION@_la-video-frame.lo \
+	libgstvideo_@GST_API_VERSION@_la-video-scaler.lo \
 	libgstvideo_@GST_API_VERSION@_la-video-tile.lo \
 	libgstvideo_@GST_API_VERSION@_la-gstvideosink.lo \
 	libgstvideo_@GST_API_VERSION@_la-gstvideofilter.lo \
@@ -215,6 +219,8 @@
 	libgstvideo_@GST_API_VERSION@_la-gstvideodecoder.lo \
 	libgstvideo_@GST_API_VERSION@_la-gstvideoencoder.lo \
 	libgstvideo_@GST_API_VERSION@_la-gstvideoutils.lo \
+	libgstvideo_@GST_API_VERSION@_la-gstvideoutilsprivate.lo \
+	libgstvideo_@GST_API_VERSION@_la-video-resampler.lo \
 	libgstvideo_@GST_API_VERSION@_la-video-blend.lo \
 	libgstvideo_@GST_API_VERSION@_la-video-overlay-composition.lo
 am__objects_1 = libgstvideo_@GST_API_VERSION@_la-video-enumtypes.lo
@@ -277,8 +283,27 @@
   esac
 DATA = $(gir_DATA) $(typelibs_DATA)
 HEADERS = $(libgstvideo_@GST_API_VERSION@include_HEADERS) \
-	$(nodist_libgstvideo_@GST_API_VERSION@include_HEADERS)
+	$(nodist_libgstvideo_@GST_API_VERSION@include_HEADERS) \
+	$(noinst_HEADERS)
 am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -339,6 +364,8 @@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_2_0_CFLAGS = @GIO_UNIX_2_0_CFLAGS@
+GIO_UNIX_2_0_LIBS = @GIO_UNIX_2_0_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
@@ -368,6 +395,8 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
+GST_NET_CFLAGS = @GST_NET_CFLAGS@
+GST_NET_LIBS = @GST_NET_LIBS@
 GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
 GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
@@ -395,7 +424,6 @@
 GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
 GTK_X11_LIBS = @GTK_X11_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
-HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -499,13 +527,12 @@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-XMKMF = @XMKMF@
+XSHM_CFLAGS = @XSHM_CFLAGS@
 XSHM_LIBS = @XSHM_LIBS@
+XVIDEO_CFLAGS = @XVIDEO_CFLAGS@
 XVIDEO_LIBS = @XVIDEO_LIBS@
 X_CFLAGS = @X_CFLAGS@
-X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
-X_PRE_LIBS = @X_PRE_LIBS@
 ZLIB_CFLAGS = @ZLIB_CFLAGS@
 ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
@@ -583,8 +610,9 @@
 cp_v_gen = $(cp_v_gen_$(V))
 cp_v_gen_ = $(cp_v_gen_$(AM_DEFAULT_VERBOSITY))
 cp_v_gen_0 = @echo "  CP     $@";
-glib_enum_headers = video.h video-format.h video-color.h video-info.h \
-			colorbalance.h navigation.h video-chroma.h video-tile.h
+glib_enum_headers = video.h video-format.h video-color.h video-info.h video-dither.h \
+			colorbalance.h navigation.h video-chroma.h video-tile.h video-converter.h \
+			video-resampler.h
 
 glib_enum_define = GST_VIDEO
 glib_gen_prefix = gst_video
@@ -602,8 +630,11 @@
 	video-format.c         	\
 	video-chroma.c         	\
 	video-color.c         	\
+	video-converter.c    	\
+	video-dither.c    	\
 	video-info.c         	\
 	video-frame.c         	\
+	video-scaler.c          \
 	video-tile.c         	\
 	gstvideosink.c   	\
 	gstvideofilter.c 	\
@@ -615,6 +646,8 @@
 	gstvideodecoder.c       \
 	gstvideoencoder.c       \
 	gstvideoutils.c		\
+	gstvideoutilsprivate.c	\
+	video-resampler.c	\
 	video-blend.c		\
 	video-overlay-composition.c
 
@@ -629,8 +662,11 @@
 	video-format.h         	\
 	video-chroma.h         	\
 	video-color.h         	\
+	video-converter.h      	\
+	video-dither.h      	\
 	video-info.h         	\
 	video-frame.h         	\
+	video-scaler.h          \
 	video-tile.h         	\
 	gstvideosink.h 		\
 	gstvideofilter.h	\
@@ -641,14 +677,16 @@
 	gstvideodecoder.h       \
 	gstvideoencoder.h       \
 	gstvideoutils.h		\
+	video-resampler.h	\
 	video-blend.h		\
 	video-overlay-composition.h
 
 nodist_libgstvideo_@GST_API_VERSION@include_HEADERS = $(built_headers)
+noinst_HEADERS = gstvideoutilsprivate.h
 libgstvideo_@GST_API_VERSION@_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) \
 					$(ORC_CFLAGS)
 
-libgstvideo_@GST_API_VERSION@_la_LIBADD = $(GST_BASE_LIBS) $(GST_LIBS) $(ORC_LIBS)
+libgstvideo_@GST_API_VERSION@_la_LIBADD = $(GST_BASE_LIBS) $(GST_LIBS) $(ORC_LIBS) $(LIBM)
 libgstvideo_@GST_API_VERSION@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) $(GST_LT_LDFLAGS)
 enum_headers = $(foreach h,$(glib_enum_headers),\n\#include \"$(h)\")
 @HAVE_INTROSPECTION_TRUE@BUILT_GIRSOURCES = GstVideo-@GST_API_VERSION@.gir
@@ -758,17 +796,22 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-gstvideopool.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-gstvideosink.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-gstvideoutils.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-gstvideoutilsprivate.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-navigation.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-tmp-orc.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-video-blend.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-video-chroma.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-video-color.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-video-converter.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-video-dither.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-video-enumtypes.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-video-event.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-video-format.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-video-frame.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-video-info.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-video-overlay-composition.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-video-resampler.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-video-scaler.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-video-tile.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-video.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-videoorientation.Plo@am__quote@
@@ -854,6 +897,20 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstvideo_@GST_API_VERSION@_la-video-color.lo `test -f 'video-color.c' || echo '$(srcdir)/'`video-color.c
 
+libgstvideo_@GST_API_VERSION@_la-video-converter.lo: video-converter.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstvideo_@GST_API_VERSION@_la-video-converter.lo -MD -MP -MF $(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-video-converter.Tpo -c -o libgstvideo_@GST_API_VERSION@_la-video-converter.lo `test -f 'video-converter.c' || echo '$(srcdir)/'`video-converter.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-video-converter.Tpo $(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-video-converter.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='video-converter.c' object='libgstvideo_@GST_API_VERSION@_la-video-converter.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstvideo_@GST_API_VERSION@_la-video-converter.lo `test -f 'video-converter.c' || echo '$(srcdir)/'`video-converter.c
+
+libgstvideo_@GST_API_VERSION@_la-video-dither.lo: video-dither.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstvideo_@GST_API_VERSION@_la-video-dither.lo -MD -MP -MF $(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-video-dither.Tpo -c -o libgstvideo_@GST_API_VERSION@_la-video-dither.lo `test -f 'video-dither.c' || echo '$(srcdir)/'`video-dither.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-video-dither.Tpo $(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-video-dither.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='video-dither.c' object='libgstvideo_@GST_API_VERSION@_la-video-dither.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstvideo_@GST_API_VERSION@_la-video-dither.lo `test -f 'video-dither.c' || echo '$(srcdir)/'`video-dither.c
+
 libgstvideo_@GST_API_VERSION@_la-video-info.lo: video-info.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstvideo_@GST_API_VERSION@_la-video-info.lo -MD -MP -MF $(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-video-info.Tpo -c -o libgstvideo_@GST_API_VERSION@_la-video-info.lo `test -f 'video-info.c' || echo '$(srcdir)/'`video-info.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-video-info.Tpo $(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-video-info.Plo
@@ -868,6 +925,13 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstvideo_@GST_API_VERSION@_la-video-frame.lo `test -f 'video-frame.c' || echo '$(srcdir)/'`video-frame.c
 
+libgstvideo_@GST_API_VERSION@_la-video-scaler.lo: video-scaler.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstvideo_@GST_API_VERSION@_la-video-scaler.lo -MD -MP -MF $(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-video-scaler.Tpo -c -o libgstvideo_@GST_API_VERSION@_la-video-scaler.lo `test -f 'video-scaler.c' || echo '$(srcdir)/'`video-scaler.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-video-scaler.Tpo $(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-video-scaler.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='video-scaler.c' object='libgstvideo_@GST_API_VERSION@_la-video-scaler.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstvideo_@GST_API_VERSION@_la-video-scaler.lo `test -f 'video-scaler.c' || echo '$(srcdir)/'`video-scaler.c
+
 libgstvideo_@GST_API_VERSION@_la-video-tile.lo: video-tile.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstvideo_@GST_API_VERSION@_la-video-tile.lo -MD -MP -MF $(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-video-tile.Tpo -c -o libgstvideo_@GST_API_VERSION@_la-video-tile.lo `test -f 'video-tile.c' || echo '$(srcdir)/'`video-tile.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-video-tile.Tpo $(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-video-tile.Plo
@@ -945,6 +1009,20 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstvideo_@GST_API_VERSION@_la-gstvideoutils.lo `test -f 'gstvideoutils.c' || echo '$(srcdir)/'`gstvideoutils.c
 
+libgstvideo_@GST_API_VERSION@_la-gstvideoutilsprivate.lo: gstvideoutilsprivate.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstvideo_@GST_API_VERSION@_la-gstvideoutilsprivate.lo -MD -MP -MF $(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-gstvideoutilsprivate.Tpo -c -o libgstvideo_@GST_API_VERSION@_la-gstvideoutilsprivate.lo `test -f 'gstvideoutilsprivate.c' || echo '$(srcdir)/'`gstvideoutilsprivate.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-gstvideoutilsprivate.Tpo $(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-gstvideoutilsprivate.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstvideoutilsprivate.c' object='libgstvideo_@GST_API_VERSION@_la-gstvideoutilsprivate.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstvideo_@GST_API_VERSION@_la-gstvideoutilsprivate.lo `test -f 'gstvideoutilsprivate.c' || echo '$(srcdir)/'`gstvideoutilsprivate.c
+
+libgstvideo_@GST_API_VERSION@_la-video-resampler.lo: video-resampler.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstvideo_@GST_API_VERSION@_la-video-resampler.lo -MD -MP -MF $(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-video-resampler.Tpo -c -o libgstvideo_@GST_API_VERSION@_la-video-resampler.lo `test -f 'video-resampler.c' || echo '$(srcdir)/'`video-resampler.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-video-resampler.Tpo $(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-video-resampler.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='video-resampler.c' object='libgstvideo_@GST_API_VERSION@_la-video-resampler.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstvideo_@GST_API_VERSION@_la-video-resampler.lo `test -f 'video-resampler.c' || echo '$(srcdir)/'`video-resampler.c
+
 libgstvideo_@GST_API_VERSION@_la-video-blend.lo: video-blend.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstvideo_@GST_API_VERSION@_la-video-blend.lo -MD -MP -MF $(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-video-blend.Tpo -c -o libgstvideo_@GST_API_VERSION@_la-video-blend.lo `test -f 'video-blend.c' || echo '$(srcdir)/'`video-blend.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-video-blend.Tpo $(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-video-blend.Plo
@@ -1062,12 +1140,58 @@
 	@list='$(nodist_libgstvideo_@GST_API_VERSION@include_HEADERS)'; test -n "$(libgstvideo_@GST_API_VERSION@includedir)" || list=; \
 	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
 	dir='$(DESTDIR)$(libgstvideo_@GST_API_VERSION@includedir)'; $(am__uninstall_files_from_dir)
-tags TAGS:
 
-ctags CTAGS:
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
 
-cscope cscopelist:
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	set x; \
+	here=`pwd`; \
+	$(am__define_uniq_tagged_files); \
+	shift; \
+	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  if test $$# -gt 0; then \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      "$$@" $$unique; \
+	  else \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      $$unique; \
+	  fi; \
+	fi
+ctags: ctags-am
 
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
+	test -z "$(CTAGS_ARGS)$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && $(am__cd) $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
 
 distdir: $(DISTFILES)
 	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
@@ -1151,7 +1275,8 @@
 distclean: distclean-am
 	-rm -rf ./$(DEPDIR)
 	-rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic
+distclean-am: clean-am distclean-compile distclean-generic \
+	distclean-tags
 
 dvi: dvi-am
 
@@ -1221,14 +1346,15 @@
 
 .MAKE: all check install install-am install-strip
 
-.PHONY: all all-am check check-am clean clean-generic \
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
 	clean-libLTLIBRARIES clean-libtool clean-local cscopelist-am \
-	ctags-am dist-hook distclean distclean-compile \
-	distclean-generic distclean-libtool 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-girDATA install-html install-html-am \
-	install-info install-info-am install-libLTLIBRARIES \
+	ctags ctags-am dist-hook distclean distclean-compile \
+	distclean-generic distclean-libtool distclean-tags distdir dvi \
+	dvi-am html html-am info info-am install install-am \
+	install-data install-data-am install-dvi install-dvi-am \
+	install-exec install-exec-am install-girDATA install-html \
+	install-html-am install-info install-info-am \
+	install-libLTLIBRARIES \
 	install-libgstvideo_@GST_API_VERSION@includeHEADERS \
 	install-man \
 	install-nodist_libgstvideo_@GST_API_VERSION@includeHEADERS \
@@ -1237,7 +1363,7 @@
 	installcheck-am installdirs maintainer-clean \
 	maintainer-clean-generic mostlyclean mostlyclean-compile \
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags-am uninstall uninstall-am uninstall-girDATA \
+	tags tags-am uninstall uninstall-am uninstall-girDATA \
 	uninstall-libLTLIBRARIES \
 	uninstall-libgstvideo_@GST_API_VERSION@includeHEADERS \
 	uninstall-nodist_libgstvideo_@GST_API_VERSION@includeHEADERS \
diff --git a/gst-libs/gst/video/gstvideodecoder.c b/gst-libs/gst/video/gstvideodecoder.c
index 9760619..6a6105f 100644
--- a/gst-libs/gst/video/gstvideodecoder.c
+++ b/gst-libs/gst/video/gstvideodecoder.c
@@ -295,6 +295,7 @@
 
 #include "gstvideodecoder.h"
 #include "gstvideoutils.h"
+#include "gstvideoutilsprivate.h"
 
 #include <gst/video/video.h>
 #include <gst/video/video-event.h>
@@ -337,7 +338,8 @@
   gboolean had_input_data;
 
   gboolean needs_format;
-  gboolean do_caps;
+  /* input_segment are output_segment identical */
+  gboolean in_out_segment_sync;
 
   /* ... being tracked here;
    * only available during parsing */
@@ -556,7 +558,6 @@
       GST_DEBUG_FUNCPTR (gst_video_decoder_src_event));
   gst_pad_set_query_function (pad,
       GST_DEBUG_FUNCPTR (gst_video_decoder_src_query));
-  gst_pad_use_fixed_caps (pad);
   gst_element_add_pad (GST_ELEMENT (decoder), decoder->srcpad);
 
   gst_segment_init (&decoder->input_segment, GST_FORMAT_TIME);
@@ -569,6 +570,9 @@
   decoder->priv->packetized = TRUE;
   decoder->priv->needs_format = FALSE;
 
+  decoder->priv->min_latency = 0;
+  decoder->priv->max_latency = 0;
+
   gst_video_decoder_reset (decoder, TRUE, TRUE);
 }
 
@@ -893,19 +897,20 @@
     {
       GstSegment segment;
 
-      GST_VIDEO_DECODER_STREAM_LOCK (decoder);
-
       gst_event_copy_segment (event, &segment);
 
       GST_DEBUG_OBJECT (decoder, "segment %" GST_SEGMENT_FORMAT, &segment);
 
       if (segment.format != GST_FORMAT_TIME) {
         GST_DEBUG_OBJECT (decoder, "received non TIME newsegment");
-        GST_VIDEO_DECODER_STREAM_UNLOCK (decoder);
         break;
       }
 
+      GST_VIDEO_DECODER_STREAM_LOCK (decoder);
       decoder->output_segment = segment;
+      decoder->priv->in_out_segment_sync =
+          (memcmp (&decoder->input_segment, &segment, sizeof (segment)) == 0);
+      decoder->priv->last_timestamp_out = GST_CLOCK_TIME_NONE;
       GST_VIDEO_DECODER_STREAM_UNLOCK (decoder);
       break;
     }
@@ -926,26 +931,46 @@
   GstVideoDecoderClass *decoder_class = GST_VIDEO_DECODER_GET_CLASS (dec);
   GstVideoDecoderPrivate *priv = dec->priv;
   GstFlowReturn ret = GST_FLOW_OK;
-  gsize start_size, available;
+  gsize was_available, available;
+  guint inactive = 0;
 
   available = gst_adapter_available (priv->input_adapter);
-  start_size = 0;
 
-  while (ret == GST_FLOW_OK && ((available && start_size != available)
-          || new_buffer)) {
+  while (available || new_buffer) {
     new_buffer = FALSE;
     /* current frame may have been parsed and handled,
      * so we need to set up a new one when asking subclass to parse */
     if (priv->current_frame == NULL)
       priv->current_frame = gst_video_decoder_new_frame (dec);
 
-    start_size = available;
+    was_available = available;
     ret = decoder_class->parse (dec, priv->current_frame,
         priv->input_adapter, at_eos);
+    if (ret != GST_FLOW_OK)
+      break;
+
+    /* if the subclass returned success (GST_FLOW_OK), it is expected
+     * to have collected and submitted a frame, i.e. it should have
+     * called gst_video_decoder_have_frame(), or at least consumed a
+     * few bytes through gst_video_decoder_add_to_frame().
+     *
+     * Otherwise, this is an implementation bug, and we error out
+     * after 2 failed attempts */
     available = gst_adapter_available (priv->input_adapter);
+    if (!priv->current_frame || available != was_available)
+      inactive = 0;
+    else if (++inactive == 2)
+      goto error_inactive;
   }
 
   return ret;
+
+  /* ERRORS */
+error_inactive:
+  {
+    GST_ERROR_OBJECT (dec, "Failed to consume data. Error in subclass?");
+    return GST_FLOW_ERROR;
+  }
 }
 
 static GstFlowReturn
@@ -967,6 +992,12 @@
     if (at_eos) {
       if (decoder_class->finish)
         ret = decoder_class->finish (dec);
+    } else {
+      if (decoder_class->drain) {
+        ret = decoder_class->drain (dec);
+      } else {
+        GST_FIXME_OBJECT (dec, "Sub-class should implement drain()");
+      }
     }
   } else {
     /* Reverse playback mode */
@@ -984,13 +1015,12 @@
   GList *tmp;
 
   for (tmp = events; tmp; tmp = tmp->next) {
-    if (GST_EVENT_TYPE (tmp->data) == GST_EVENT_EOS ||
-        GST_EVENT_TYPE (tmp->data) == GST_EVENT_SEGMENT ||
-        !GST_EVENT_IS_STICKY (tmp->data)) {
-      gst_event_unref (tmp->data);
-    } else {
+    if (GST_EVENT_TYPE (tmp->data) != GST_EVENT_EOS &&
+        GST_EVENT_TYPE (tmp->data) != GST_EVENT_SEGMENT &&
+        GST_EVENT_IS_STICKY (tmp->data)) {
       gst_pad_store_sticky_event (pad, GST_EVENT_CAST (tmp->data));
     }
+    gst_event_unref (tmp->data);
   }
   g_list_free (events);
 
@@ -1033,8 +1063,10 @@
     }
     case GST_EVENT_CAPS:
     {
-      ret = TRUE;
-      decoder->priv->do_caps = TRUE;
+      GstCaps *caps;
+
+      gst_event_parse_caps (event, &caps);
+      ret = gst_video_decoder_setcaps (decoder, caps);
       gst_event_unref (event);
       event = NULL;
       break;
@@ -1101,8 +1133,6 @@
     {
       GstSegment segment;
 
-      GST_VIDEO_DECODER_STREAM_LOCK (decoder);
-
       gst_event_copy_segment (event, &segment);
 
       if (segment.format == GST_FORMAT_TIME) {
@@ -1132,15 +1162,17 @@
           gst_event_unref (event);
           event = gst_event_new_segment (&segment);
         } else {
-          GST_VIDEO_DECODER_STREAM_UNLOCK (decoder);
           goto newseg_wrong_format;
         }
       }
 
+      GST_VIDEO_DECODER_STREAM_LOCK (decoder);
+
       priv->base_timestamp = GST_CLOCK_TIME_NONE;
       priv->base_picture_number = 0;
 
       decoder->input_segment = segment;
+      decoder->priv->in_out_segment_sync = FALSE;
 
       GST_VIDEO_DECODER_STREAM_UNLOCK (decoder);
       break;
@@ -1268,7 +1300,7 @@
     return FALSE;
   }
 
-  if (end_type != GST_SEEK_TYPE_NONE ||
+  if ((end_type != GST_SEEK_TYPE_SET && end_type != GST_SEEK_TYPE_NONE) ||
       (end_type == GST_SEEK_TYPE_SET && end_time != GST_CLOCK_TIME_NONE)) {
     GST_DEBUG_OBJECT (dec, "unsupported seek: end time");
     return FALSE;
@@ -1520,11 +1552,11 @@
 
         GST_OBJECT_LOCK (dec);
         min_latency += dec->priv->min_latency;
-        if (dec->priv->max_latency == GST_CLOCK_TIME_NONE) {
+        if (max_latency == GST_CLOCK_TIME_NONE
+            || dec->priv->max_latency == GST_CLOCK_TIME_NONE)
           max_latency = GST_CLOCK_TIME_NONE;
-        } else if (max_latency != GST_CLOCK_TIME_NONE) {
+        else
           max_latency += dec->priv->max_latency;
-        }
         GST_OBJECT_UNLOCK (dec);
 
         gst_query_set_latency (query, live, min_latency, max_latency);
@@ -1560,6 +1592,47 @@
   return ret;
 }
 
+/**
+ * gst_video_decoder_proxy_getcaps:
+ * @decoder: a #GstVideoDecoder
+ * @caps: (allow-none): initial caps
+ * @filter: (allow-none): filter caps
+ *
+ * Returns caps that express @caps (or sink template caps if @caps == NULL)
+ * restricted to resolution/format/... combinations supported by downstream
+ * elements.
+ *
+ * Returns: (transfer full): a #GstCaps owned by caller
+ *
+ * Since: 1.6
+ */
+GstCaps *
+gst_video_decoder_proxy_getcaps (GstVideoDecoder * decoder, GstCaps * caps,
+    GstCaps * filter)
+{
+  return __gst_video_element_proxy_getcaps (GST_ELEMENT_CAST (decoder),
+      GST_VIDEO_DECODER_SINK_PAD (decoder),
+      GST_VIDEO_DECODER_SRC_PAD (decoder), caps, filter);
+}
+
+static GstCaps *
+gst_video_decoder_sink_getcaps (GstVideoDecoder * decoder, GstCaps * filter)
+{
+  GstVideoDecoderClass *klass;
+  GstCaps *caps;
+
+  klass = GST_VIDEO_DECODER_GET_CLASS (decoder);
+
+  if (klass->getcaps)
+    caps = klass->getcaps (decoder, filter);
+  else
+    caps = gst_video_decoder_proxy_getcaps (decoder, NULL, filter);
+
+  GST_LOG_OBJECT (decoder, "Returning caps %" GST_PTR_FORMAT, caps);
+
+  return caps;
+}
+
 static gboolean
 gst_video_decoder_sink_query_default (GstVideoDecoder * decoder,
     GstQuery * query)
@@ -1579,9 +1652,11 @@
       gint64 src_val, dest_val;
 
       gst_query_parse_convert (query, &src_fmt, &src_val, &dest_fmt, &dest_val);
+      GST_VIDEO_DECODER_STREAM_LOCK (decoder);
       res =
           gst_video_encoded_video_convert (priv->bytes_out, priv->time, src_fmt,
           src_val, &dest_fmt, &dest_val);
+      GST_VIDEO_DECODER_STREAM_UNLOCK (decoder);
       if (!res)
         goto error;
       gst_query_set_convert (query, src_fmt, src_val, dest_fmt, dest_val);
@@ -1594,6 +1669,41 @@
         res = klass->propose_allocation (decoder, query);
       break;
     }
+    case GST_QUERY_CAPS:{
+      GstCaps *filter, *caps;
+
+      gst_query_parse_caps (query, &filter);
+      caps = gst_video_decoder_sink_getcaps (decoder, filter);
+      gst_query_set_caps_result (query, caps);
+      gst_caps_unref (caps);
+      res = TRUE;
+      break;
+    }
+    case GST_QUERY_ACCEPT_CAPS:{
+      GstCaps *caps;
+      GstCaps *allowed_caps;
+      GstCaps *template_caps;
+      gboolean accept;
+
+      gst_query_parse_accept_caps (query, &caps);
+
+      template_caps = gst_pad_get_pad_template_caps (pad);
+      accept = gst_caps_is_subset (caps, template_caps);
+      gst_caps_unref (template_caps);
+
+      if (accept) {
+        allowed_caps = gst_pad_query_caps (GST_VIDEO_DECODER_SINK_PAD (decoder),
+            caps);
+
+        accept = gst_caps_can_intersect (caps, allowed_caps);
+
+        gst_caps_unref (allowed_caps);
+      }
+
+      gst_query_set_accept_caps_result (query, accept);
+      res = TRUE;
+      break;
+    }
     default:
       res = gst_pad_query_default (pad, GST_OBJECT (decoder), query);
       break;
@@ -1739,6 +1849,7 @@
     gst_segment_init (&decoder->input_segment, GST_FORMAT_UNDEFINED);
     gst_segment_init (&decoder->output_segment, GST_FORMAT_UNDEFINED);
     gst_video_decoder_clear_queues (decoder);
+    decoder->priv->in_out_segment_sync = TRUE;
 
     if (priv->current_frame) {
       gst_video_codec_frame_unref (priv->current_frame);
@@ -1774,9 +1885,6 @@
     priv->qos_frame_duration = 0;
     GST_OBJECT_UNLOCK (decoder);
 
-    priv->min_latency = 0;
-    priv->max_latency = 0;
-
     if (priv->tags)
       gst_tag_list_unref (priv->tags);
     priv->tags = NULL;
@@ -1984,6 +2092,8 @@
           gst_event_copy_segment (event, &segment);
           if (segment.format == GST_FORMAT_TIME) {
             dec->output_segment = segment;
+            dec->priv->in_out_segment_sync =
+                (memcmp (&dec->input_segment, &segment, sizeof (segment)) == 0);
           }
         }
         dec->priv->pending_events =
@@ -2018,53 +2128,64 @@
       res = gst_video_decoder_flush_decode (dec);
       if (res != GST_FLOW_OK)
         goto done;
+
+      /* We need to tell the subclass to drain now.
+       * We prefer the drain vfunc, but for backward-compat
+       * we use a finish() vfunc if drain isn't implemented */
+      if (decoder_class->drain) {
+        GST_DEBUG_OBJECT (dec, "Draining");
+        res = decoder_class->drain (dec);
+      } else if (decoder_class->finish) {
+        GST_FIXME_OBJECT (dec, "Sub-class should implement drain(). "
+            "Calling finish() for backwards-compat");
+        res = decoder_class->finish (dec);
+      }
+
+      if (res != GST_FLOW_OK)
+        goto done;
+
+      /* now send queued data downstream */
+      walk = priv->output_queued;
+      while (walk) {
+        GstBuffer *buf = GST_BUFFER_CAST (walk->data);
+
+        if (G_LIKELY (res == GST_FLOW_OK)) {
+          /* avoid stray DISCONT from forward processing,
+           * which have no meaning in reverse pushing */
+          GST_BUFFER_FLAG_UNSET (buf, GST_BUFFER_FLAG_DISCONT);
+
+          /* Last chance to calculate a timestamp as we loop backwards
+           * through the list */
+          if (GST_BUFFER_TIMESTAMP (buf) != GST_CLOCK_TIME_NONE)
+            priv->last_timestamp_out = GST_BUFFER_TIMESTAMP (buf);
+          else if (priv->last_timestamp_out != GST_CLOCK_TIME_NONE &&
+              GST_BUFFER_DURATION (buf) != GST_CLOCK_TIME_NONE) {
+            GST_BUFFER_TIMESTAMP (buf) =
+                priv->last_timestamp_out - GST_BUFFER_DURATION (buf);
+            priv->last_timestamp_out = GST_BUFFER_TIMESTAMP (buf);
+            GST_LOG_OBJECT (dec,
+                "Calculated TS %" GST_TIME_FORMAT " working backwards",
+                GST_TIME_ARGS (priv->last_timestamp_out));
+          }
+
+          res = gst_video_decoder_clip_and_push_buf (dec, buf);
+        } else {
+          gst_buffer_unref (buf);
+        }
+
+        priv->output_queued =
+            g_list_delete_link (priv->output_queued, priv->output_queued);
+        walk = priv->output_queued;
+      }
+
+      /* clear buffer and decoder state again
+       * before moving to the previous keyframe */
+      gst_video_decoder_flush (dec, FALSE);
     }
 
     walk = priv->parse_gather;
   }
 
-  /* We need to tell the subclass to drain now */
-  GST_DEBUG_OBJECT (dec, "Finishing");
-  if (decoder_class->finish)
-    res = decoder_class->finish (dec);
-
-  if (res != GST_FLOW_OK)
-    goto done;
-
-  /* now send queued data downstream */
-  walk = priv->output_queued;
-  while (walk) {
-    GstBuffer *buf = GST_BUFFER_CAST (walk->data);
-
-    if (G_LIKELY (res == GST_FLOW_OK)) {
-      /* avoid stray DISCONT from forward processing,
-       * which have no meaning in reverse pushing */
-      GST_BUFFER_FLAG_UNSET (buf, GST_BUFFER_FLAG_DISCONT);
-
-      /* Last chance to calculate a timestamp as we loop backwards
-       * through the list */
-      if (GST_BUFFER_TIMESTAMP (buf) != GST_CLOCK_TIME_NONE)
-        priv->last_timestamp_out = GST_BUFFER_TIMESTAMP (buf);
-      else if (priv->last_timestamp_out != GST_CLOCK_TIME_NONE &&
-          GST_BUFFER_DURATION (buf) != GST_CLOCK_TIME_NONE) {
-        GST_BUFFER_TIMESTAMP (buf) =
-            priv->last_timestamp_out - GST_BUFFER_DURATION (buf);
-        priv->last_timestamp_out = GST_BUFFER_TIMESTAMP (buf);
-        GST_LOG_OBJECT (dec,
-            "Calculated TS %" GST_TIME_FORMAT " working backwards",
-            GST_TIME_ARGS (priv->last_timestamp_out));
-      }
-
-      res = gst_video_decoder_clip_and_push_buf (dec, buf);
-    } else {
-      gst_buffer_unref (buf);
-    }
-
-    priv->output_queued =
-        g_list_delete_link (priv->output_queued, priv->output_queued);
-    walk = priv->output_queued;
-  }
-
 done:
   return res;
 }
@@ -2106,18 +2227,6 @@
 
   decoder = GST_VIDEO_DECODER (parent);
 
-  if (G_UNLIKELY (decoder->priv->do_caps)) {
-    GstCaps *caps = gst_pad_get_current_caps (decoder->sinkpad);
-    if (caps) {
-      if (!gst_video_decoder_setcaps (decoder, caps)) {
-        gst_caps_unref (caps);
-        goto not_negotiated;
-      }
-      gst_caps_unref (caps);
-    }
-    decoder->priv->do_caps = FALSE;
-  }
-
   if (G_UNLIKELY (!decoder->priv->input_state && decoder->priv->needs_format))
     goto not_negotiated;
 
@@ -2187,12 +2296,13 @@
         goto open_failed;
       break;
     case GST_STATE_CHANGE_READY_TO_PAUSED:
-      /* Initialize device/library if needed */
-      if (decoder_class->start && !decoder_class->start (decoder))
-        goto start_failed;
       GST_VIDEO_DECODER_STREAM_LOCK (decoder);
       gst_video_decoder_reset (decoder, TRUE, TRUE);
       GST_VIDEO_DECODER_STREAM_UNLOCK (decoder);
+
+      /* Initialize device/library if needed */
+      if (decoder_class->start && !decoder_class->start (decoder))
+        goto start_failed;
       break;
     default:
       break;
@@ -2204,22 +2314,13 @@
     case GST_STATE_CHANGE_PAUSED_TO_READY:{
       gboolean stopped = TRUE;
 
+      if (decoder_class->stop)
+        stopped = decoder_class->stop (decoder);
+
       GST_VIDEO_DECODER_STREAM_LOCK (decoder);
       gst_video_decoder_reset (decoder, TRUE, TRUE);
       GST_VIDEO_DECODER_STREAM_UNLOCK (decoder);
 
-      if (decoder_class->stop) {
-        stopped = decoder_class->stop (decoder);
-
-        /* the subclass might have released frames and events from freed frames
-         * are stored in the pending_events list */
-        GST_VIDEO_DECODER_STREAM_LOCK (decoder);
-        g_list_free_full (decoder->priv->pending_events, (GDestroyNotify)
-            gst_event_unref);
-        decoder->priv->pending_events = NULL;
-        GST_VIDEO_DECODER_STREAM_UNLOCK (decoder);
-      }
-
       if (!stopped)
         goto stop_failed;
 
@@ -2658,9 +2759,8 @@
 
   GST_BUFFER_FLAG_UNSET (output_buffer, GST_BUFFER_FLAG_DELTA_UNIT);
 
-  /* set PTS and DTS to both the PTS for decoded frames */
   GST_BUFFER_PTS (output_buffer) = frame->pts;
-  GST_BUFFER_DTS (output_buffer) = frame->pts;
+  GST_BUFFER_DTS (output_buffer) = GST_CLOCK_TIME_NONE;
   GST_BUFFER_DURATION (output_buffer) = frame->duration;
 
   GST_BUFFER_OFFSET (output_buffer) = GST_BUFFER_OFFSET_NONE;
@@ -2750,11 +2850,15 @@
         GST_TIME_ARGS (start), GST_TIME_ARGS (stop),
         GST_TIME_ARGS (segment->start),
         GST_TIME_ARGS (segment->stop), GST_TIME_ARGS (segment->time));
-    if (segment->rate >= 0) {
-      if (GST_BUFFER_PTS (buf) >= segment->stop)
+    /* only check and return EOS if upstream still
+     * in the same segment and interested as such */
+    if (decoder->priv->in_out_segment_sync) {
+      if (segment->rate >= 0) {
+        if (GST_BUFFER_PTS (buf) >= segment->stop)
+          ret = GST_FLOW_EOS;
+      } else if (GST_BUFFER_PTS (buf) < segment->start) {
         ret = GST_FLOW_EOS;
-    } else if (GST_BUFFER_PTS (buf) < segment->start) {
-      ret = GST_FLOW_EOS;
+      }
     }
     gst_buffer_unref (buf);
     goto done;
@@ -3241,6 +3345,10 @@
   return TRUE;
 
 config_failed:
+  if (allocator)
+    gst_object_unref (allocator);
+  if (pool)
+    gst_object_unref (pool);
   GST_ELEMENT_ERROR (decoder, RESOURCE, SETTINGS,
       ("Failed to configure the buffer pool"),
       ("Configuration is most likely invalid, please report this issue."));
@@ -3720,7 +3828,7 @@
  *
  * Queries decoder required format handling.
  *
- * Returns: TRUE if required format handling is enabled.
+ * Returns: %TRUE if required format handling is enabled.
  *
  * Since: 1.4
  */
diff --git a/gst-libs/gst/video/gstvideodecoder.h b/gst-libs/gst/video/gstvideodecoder.h
index b41ca30..d9aa736 100644
--- a/gst-libs/gst/video/gstvideodecoder.h
+++ b/gst-libs/gst/video/gstvideodecoder.h
@@ -42,6 +42,7 @@
   (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_VIDEO_DECODER))
 #define GST_IS_VIDEO_DECODER_CLASS(obj) \
   (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_VIDEO_DECODER))
+#define GST_VIDEO_DECODER_CAST(obj) ((GstVideoDecoder *)(obj))
 
 /**
  * GST_VIDEO_DECODER_SINK_NAME:
@@ -214,7 +215,12 @@
  * @handle_frame:   Provides input data frame to subclass.
  * @finish:         Optional.
  *                  Called to request subclass to dispatch any pending remaining
- *                  data (e.g. at EOS).
+ *                  data at EOS. Sub-classes can refuse to decode new data after.
+ * @drain:	    Optional.
+ *                  Called to request subclass to decode any data it can at this
+ *                  point, but that more data may arrive after. (e.g. at segment end).
+ *                  Sub-classes should be prepared to handle new data afterward,
+ *                  or seamless segment processing will break. Since: 1.6
  * @sink_event:     Optional.
  *                  Event handler on the sink pad. This function should return
  *                  TRUE if the event was handled and should be discarded
@@ -254,6 +260,11 @@
  *                  return TRUE if the query could be performed. Subclasses
  *                  should chain up to the parent implementation to invoke the
  *                  default handler. Since 1.4
+ * @getcaps:        Optional.
+ *                  Allows for a custom sink getcaps implementation.
+ *                  If not implemented, default returns
+ *                  gst_video_decoder_proxy_getcaps
+ *                  applied to sink template caps.
  *
  * Subclasses can override any of the available virtual methods or not, as
  * needed. At minimum @handle_frame needs to be overridden, and @set_format
@@ -310,9 +321,13 @@
   gboolean      (*src_query)      (GstVideoDecoder *decoder,
 				   GstQuery *query);
 
+  GstCaps*      (*getcaps)        (GstVideoDecoder *decoder,
+                                   GstCaps *filter);
+
+  GstFlowReturn (*drain)          (GstVideoDecoder *decoder);
 
   /*< private >*/
-  void         *padding[GST_PADDING_LARGE-3];
+  void         *padding[GST_PADDING_LARGE-5];
 };
 
 GType    gst_video_decoder_get_type (void);
@@ -396,6 +411,11 @@
                                                const GstTagList *tags,
                                                GstTagMergeMode mode);
 
+GstCaps *        gst_video_decoder_proxy_getcaps (GstVideoDecoder * decoder,
+						  GstCaps         * caps,
+                                                  GstCaps         * filter);
+
+
 G_END_DECLS
 
 #endif
diff --git a/gst-libs/gst/video/gstvideoencoder.c b/gst-libs/gst/video/gstvideoencoder.c
index e0264d1..eb9d186 100644
--- a/gst-libs/gst/video/gstvideoencoder.c
+++ b/gst-libs/gst/video/gstvideoencoder.c
@@ -117,6 +117,7 @@
 #include <gst/video/video.h>
 #include "gstvideoencoder.h"
 #include "gstvideoutils.h"
+#include "gstvideoutilsprivate.h"
 
 #include <gst/video/gstvideometa.h>
 #include <gst/video/gstvideopool.h>
@@ -137,8 +138,6 @@
 
   /* FIXME : (and introduce a context ?) */
   gboolean drained;
-  gboolean at_eos;
-  gboolean do_caps;
 
   gint64 min_latency;
   gint64 max_latency;
@@ -311,13 +310,12 @@
   GList *tmp;
 
   for (tmp = events; tmp; tmp = tmp->next) {
-    if (GST_EVENT_TYPE (tmp->data) == GST_EVENT_EOS ||
-        GST_EVENT_TYPE (tmp->data) == GST_EVENT_SEGMENT ||
-        !GST_EVENT_IS_STICKY (tmp->data)) {
-      gst_event_unref (tmp->data);
-    } else {
+    if (GST_EVENT_TYPE (tmp->data) != GST_EVENT_EOS &&
+        GST_EVENT_TYPE (tmp->data) != GST_EVENT_SEGMENT &&
+        GST_EVENT_IS_STICKY (tmp->data)) {
       gst_pad_store_sticky_event (pad, GST_EVENT_CAST (tmp->data));
     }
+    gst_event_unref (tmp->data);
   }
   g_list_free (events);
 
@@ -365,9 +363,6 @@
     priv->tags = NULL;
     priv->tags_changed = FALSE;
 
-    priv->min_latency = 0;
-    priv->max_latency = 0;
-
     g_list_foreach (priv->headers, (GFunc) gst_event_unref, NULL);
     g_list_free (priv->headers);
     priv->headers = NULL;
@@ -455,10 +450,12 @@
 
   g_rec_mutex_init (&encoder->stream_lock);
 
-  priv->at_eos = FALSE;
   priv->headers = NULL;
   priv->new_headers = FALSE;
 
+  priv->min_latency = 0;
+  priv->max_latency = 0;
+
   gst_video_encoder_reset (encoder, TRUE);
 }
 
@@ -631,7 +628,7 @@
 
   if (encoder_class->reset) {
     GST_FIXME_OBJECT (encoder, "GstVideoEncoder::reset() is deprecated");
-    ret = encoder_class->reset (encoder, TRUE);
+    encoder_class->reset (encoder, TRUE);
   }
 
   /* and subclass should be ready to configure format at any time around */
@@ -670,82 +667,22 @@
 /**
  * gst_video_encoder_proxy_getcaps:
  * @enc: a #GstVideoEncoder
- * @caps: initial caps
- * @filter: filter caps
+ * @caps: (allow-none): initial caps
+ * @filter: (allow-none): filter caps
  *
  * Returns caps that express @caps (or sink template caps if @caps == NULL)
  * restricted to resolution/format/... combinations supported by downstream
  * elements (e.g. muxers).
  *
- * Returns: a #GstCaps owned by caller
+ * Returns: (transfer full): a #GstCaps owned by caller
  */
 GstCaps *
 gst_video_encoder_proxy_getcaps (GstVideoEncoder * encoder, GstCaps * caps,
     GstCaps * filter)
 {
-  GstCaps *templ_caps;
-  GstCaps *allowed;
-  GstCaps *fcaps, *filter_caps;
-  gint i, j;
-
-  /* Allow downstream to specify width/height/framerate/PAR constraints
-   * and forward them upstream for video converters to handle
-   */
-  templ_caps =
-      caps ? gst_caps_ref (caps) :
-      gst_pad_get_pad_template_caps (encoder->sinkpad);
-  allowed = gst_pad_get_allowed_caps (encoder->srcpad);
-
-  if (!allowed || gst_caps_is_empty (allowed) || gst_caps_is_any (allowed)) {
-    fcaps = templ_caps;
-    goto done;
-  }
-
-  GST_LOG_OBJECT (encoder, "template caps %" GST_PTR_FORMAT, templ_caps);
-  GST_LOG_OBJECT (encoder, "allowed caps %" GST_PTR_FORMAT, allowed);
-
-  filter_caps = gst_caps_new_empty ();
-
-  for (i = 0; i < gst_caps_get_size (templ_caps); i++) {
-    GQuark q_name =
-        gst_structure_get_name_id (gst_caps_get_structure (templ_caps, i));
-
-    for (j = 0; j < gst_caps_get_size (allowed); j++) {
-      const GstStructure *allowed_s = gst_caps_get_structure (allowed, j);
-      const GValue *val;
-      GstStructure *s;
-
-      s = gst_structure_new_id_empty (q_name);
-      if ((val = gst_structure_get_value (allowed_s, "width")))
-        gst_structure_set_value (s, "width", val);
-      if ((val = gst_structure_get_value (allowed_s, "height")))
-        gst_structure_set_value (s, "height", val);
-      if ((val = gst_structure_get_value (allowed_s, "framerate")))
-        gst_structure_set_value (s, "framerate", val);
-      if ((val = gst_structure_get_value (allowed_s, "pixel-aspect-ratio")))
-        gst_structure_set_value (s, "pixel-aspect-ratio", val);
-
-      filter_caps = gst_caps_merge_structure (filter_caps, s);
-    }
-  }
-
-  fcaps = gst_caps_intersect (filter_caps, templ_caps);
-  gst_caps_unref (filter_caps);
-  gst_caps_unref (templ_caps);
-
-  if (filter) {
-    GST_LOG_OBJECT (encoder, "intersecting with %" GST_PTR_FORMAT, filter);
-    filter_caps = gst_caps_intersect (fcaps, filter);
-    gst_caps_unref (fcaps);
-    fcaps = filter_caps;
-  }
-
-done:
-  gst_caps_replace (&allowed, NULL);
-
-  GST_LOG_OBJECT (encoder, "proxy caps %" GST_PTR_FORMAT, fcaps);
-
-  return fcaps;
+  return __gst_video_element_proxy_getcaps (GST_ELEMENT_CAST (encoder),
+      GST_VIDEO_ENCODER_SINK_PAD (encoder),
+      GST_VIDEO_ENCODER_SRC_PAD (encoder), caps, filter);
 }
 
 static GstCaps *
@@ -981,8 +918,8 @@
       GstCaps *caps;
 
       gst_event_parse_caps (event, &caps);
-      ret = TRUE;
-      encoder->priv->do_caps = TRUE;
+      ret = gst_video_encoder_setcaps (encoder, caps);
+
       gst_event_unref (event);
       event = NULL;
       break;
@@ -992,7 +929,6 @@
       GstFlowReturn flow_ret;
 
       GST_VIDEO_ENCODER_STREAM_LOCK (encoder);
-      encoder->priv->at_eos = TRUE;
 
       if (encoder_class->finish) {
         flow_ret = encoder_class->finish (encoder);
@@ -1035,8 +971,6 @@
         break;
       }
 
-      encoder->priv->at_eos = FALSE;
-
       encoder->input_segment = segment;
       ret = TRUE;
       GST_VIDEO_ENCODER_STREAM_UNLOCK (encoder);
@@ -1265,11 +1199,11 @@
 
         GST_OBJECT_LOCK (enc);
         min_latency += priv->min_latency;
-        if (enc->priv->max_latency == GST_CLOCK_TIME_NONE) {
+        if (max_latency == GST_CLOCK_TIME_NONE
+            || enc->priv->max_latency == GST_CLOCK_TIME_NONE)
           max_latency = GST_CLOCK_TIME_NONE;
-        } else if (max_latency != GST_CLOCK_TIME_NONE) {
+        else
           max_latency += enc->priv->max_latency;
-        }
         GST_OBJECT_UNLOCK (enc);
 
         gst_query_set_latency (query, live, min_latency, max_latency);
@@ -1353,18 +1287,6 @@
 
   g_return_val_if_fail (klass->handle_frame != NULL, GST_FLOW_ERROR);
 
-  if (G_UNLIKELY (encoder->priv->do_caps)) {
-    GstCaps *caps = gst_pad_get_current_caps (encoder->sinkpad);
-    if (!caps)
-      goto not_negotiated;
-    if (!gst_video_encoder_setcaps (encoder, caps)) {
-      gst_caps_unref (caps);
-      goto not_negotiated;
-    }
-    gst_caps_unref (caps);
-    encoder->priv->do_caps = FALSE;
-  }
-
   if (!encoder->priv->input_state)
     goto not_negotiated;
 
@@ -1379,11 +1301,6 @@
       gst_buffer_get_size (buf), GST_TIME_ARGS (pts),
       GST_TIME_ARGS (GST_BUFFER_DTS (buf)), GST_TIME_ARGS (duration));
 
-  if (priv->at_eos) {
-    ret = GST_FLOW_EOS;
-    goto done;
-  }
-
   start = pts;
   if (GST_CLOCK_TIME_IS_VALID (duration))
     stop = start + duration;
@@ -1494,12 +1411,13 @@
         goto open_failed;
       break;
     case GST_STATE_CHANGE_READY_TO_PAUSED:
-      /* Initialize device/library if needed */
-      if (encoder_class->start && !encoder_class->start (encoder))
-        goto start_failed;
       GST_VIDEO_ENCODER_STREAM_LOCK (encoder);
       gst_video_encoder_reset (encoder, TRUE);
       GST_VIDEO_ENCODER_STREAM_UNLOCK (encoder);
+
+      /* Initialize device/library if needed */
+      if (encoder_class->start && !encoder_class->start (encoder))
+        goto start_failed;
       break;
     default:
       break;
@@ -1508,13 +1426,20 @@
   ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition);
 
   switch (transition) {
-    case GST_STATE_CHANGE_PAUSED_TO_READY:
+    case GST_STATE_CHANGE_PAUSED_TO_READY:{
+      gboolean stopped = TRUE;
+
+      if (encoder_class->stop)
+        stopped = encoder_class->stop (encoder);
+
       GST_VIDEO_ENCODER_STREAM_LOCK (encoder);
       gst_video_encoder_reset (encoder, TRUE);
       GST_VIDEO_ENCODER_STREAM_UNLOCK (encoder);
-      if (encoder_class->stop && !encoder_class->stop (encoder))
+
+      if (!stopped)
         goto stop_failed;
       break;
+    }
     case GST_STATE_CHANGE_READY_TO_NULL:
       /* close device/library if needed */
       if (encoder_class->close && !encoder_class->close (encoder))
@@ -1981,11 +1906,9 @@
   if (GST_VIDEO_CODEC_FRAME_IS_SYNC_POINT (frame)) {
     priv->distance_from_sync = 0;
     GST_BUFFER_FLAG_UNSET (frame->output_buffer, GST_BUFFER_FLAG_DELTA_UNIT);
-    /* For keyframes, DTS = PTS */
+    /* For keyframes, DTS = PTS, if encoder doesn't decide otherwise */
     if (!GST_CLOCK_TIME_IS_VALID (frame->dts)) {
       frame->dts = frame->pts;
-    } else if (GST_CLOCK_TIME_IS_VALID (frame->pts) && frame->pts != frame->dts) {
-      GST_WARNING_OBJECT (encoder, "keyframe PTS != DTS");
     }
   } else {
     GST_BUFFER_FLAG_SET (frame->output_buffer, GST_BUFFER_FLAG_DELTA_UNIT);
@@ -2105,6 +2028,7 @@
   /* ERRORS */
 no_output_state:
   {
+    gst_video_encoder_release_frame (encoder, frame);
     GST_VIDEO_ENCODER_STREAM_UNLOCK (encoder);
     GST_ERROR_OBJECT (encoder, "Output state was not configured");
     return GST_FLOW_ERROR;
diff --git a/gst-libs/gst/video/gstvideofilter.c b/gst-libs/gst/video/gstvideofilter.c
index a47a113..874b2e8 100644
--- a/gst-libs/gst/video/gstvideofilter.c
+++ b/gst-libs/gst/video/gstvideofilter.c
@@ -260,11 +260,12 @@
   if (fclass->transform_frame) {
     GstVideoFrame in_frame, out_frame;
 
-    if (!gst_video_frame_map (&in_frame, &filter->in_info, inbuf, GST_MAP_READ))
+    if (!gst_video_frame_map (&in_frame, &filter->in_info, inbuf,
+            GST_MAP_READ | GST_VIDEO_FRAME_MAP_FLAG_NO_REF))
       goto invalid_buffer;
 
     if (!gst_video_frame_map (&out_frame, &filter->out_info, outbuf,
-            GST_MAP_WRITE))
+            GST_MAP_WRITE | GST_VIDEO_FRAME_MAP_FLAG_NO_REF))
       goto invalid_buffer;
 
     res = fclass->transform_frame (filter, &in_frame, &out_frame);
@@ -308,7 +309,7 @@
     GstVideoFrame frame;
     GstMapFlags flags;
 
-    flags = GST_MAP_READ;
+    flags = GST_MAP_READ | GST_VIDEO_FRAME_MAP_FLAG_NO_REF;
 
     if (!gst_base_transform_is_passthrough (trans))
       flags |= GST_MAP_WRITE;
diff --git a/gst-libs/gst/video/gstvideometa.c b/gst-libs/gst/video/gstvideometa.c
index a5cd8bd..14fca21 100644
--- a/gst-libs/gst/video/gstvideometa.c
+++ b/gst-libs/gst/video/gstvideometa.c
@@ -645,7 +645,7 @@
  * Buffers can contain multiple #GstVideoRegionOfInterestMeta metadata items if
  * multiple regions of interests are marked on a frame.
  *
- * Returns: the #GstVideoeRegionOfInterestMeta with @id or %NULL when there is
+ * Returns: the #GstVideoRegionOfInterestMeta with @id or %NULL when there is
  * no such metadata on @buffer.
  */
 GstVideoRegionOfInterestMeta *
diff --git a/gst-libs/gst/video/gstvideometa.h b/gst-libs/gst/video/gstvideometa.h
index e693659..58dd20f 100644
--- a/gst-libs/gst/video/gstvideometa.h
+++ b/gst-libs/gst/video/gstvideometa.h
@@ -255,8 +255,8 @@
  * @parent_id: identifier of its parent ROI, used f.i. for ROI hierarchisation.
  * @x: x component of upper-left corner
  * @y: y component of upper-left corner
- * @width: bounding box width
- * @height: bounding box height
+ * @w: bounding box width
+ * @h: bounding box height
  *
  * Extra buffer metadata describing an image region of interest
  */
diff --git a/gst-libs/gst/video/gstvideopool.c b/gst-libs/gst/video/gstvideopool.c
index 4475f45..6b9d7dd 100644
--- a/gst-libs/gst/video/gstvideopool.c
+++ b/gst-libs/gst/video/gstvideopool.c
@@ -122,11 +122,13 @@
   GstVideoBufferPoolPrivate *priv = vpool->priv;
   GstVideoInfo info;
   GstCaps *caps;
+  guint size, min_buffers, max_buffers;
   gint width, height;
   GstAllocator *allocator;
   GstAllocationParams params;
 
-  if (!gst_buffer_pool_config_get_params (config, &caps, NULL, NULL, NULL))
+  if (!gst_buffer_pool_config_get_params (config, &caps, &size, &min_buffers,
+          &max_buffers))
     goto wrong_config;
 
   if (caps == NULL)
@@ -136,6 +138,9 @@
   if (!gst_video_info_from_caps (&info, caps))
     goto wrong_caps;
 
+  if (size < info.size)
+    goto wrong_size;
+
   if (!gst_buffer_pool_config_get_allocator (config, &allocator, &params))
     goto wrong_config;
 
@@ -167,8 +172,13 @@
     /* get an apply the alignment to the info */
     gst_buffer_pool_config_get_video_alignment (config, &priv->video_align);
     gst_video_info_align (&info, &priv->video_align);
+    gst_buffer_pool_config_set_video_alignment (config, &priv->video_align);
   }
   priv->info = info;
+  info.size = MAX (size, info.size);
+
+  gst_buffer_pool_config_set_params (config, caps, info.size, min_buffers,
+      max_buffers);
 
   return GST_BUFFER_POOL_CLASS (parent_class)->set_config (pool, config);
 
@@ -189,6 +199,13 @@
         "failed getting geometry from caps %" GST_PTR_FORMAT, caps);
     return FALSE;
   }
+wrong_size:
+  {
+    GST_WARNING_OBJECT (pool,
+        "Provided size is to small for the caps: %u", size);
+    return FALSE;
+
+  }
 }
 
 static GstFlowReturn
@@ -233,7 +250,7 @@
  * Create a new bufferpool that can allocate video frames. This bufferpool
  * supports all the video bufferpool options.
  *
- * Returns: a new #GstBufferPool to allocate video frames
+ * Returns: (transfer floating): a new #GstBufferPool to allocate video frames
  */
 GstBufferPool *
 gst_video_buffer_pool_new ()
diff --git a/gst-libs/gst/video/gstvideosink.c b/gst-libs/gst/video/gstvideosink.c
index 4704593..26b7df2 100644
--- a/gst-libs/gst/video/gstvideosink.c
+++ b/gst-libs/gst/video/gstvideosink.c
@@ -87,8 +87,8 @@
   if (!scaling) {
     result->w = MIN (src.w, dst.w);
     result->h = MIN (src.h, dst.h);
-    result->x = (dst.w - result->w) / 2;
-    result->y = (dst.h - result->h) / 2;
+    result->x = dst.x + (dst.w - result->w) / 2;
+    result->y = dst.y + (dst.h - result->h) / 2;
   } else {
     gdouble src_ratio, dst_ratio;
 
@@ -98,16 +98,16 @@
     if (src_ratio > dst_ratio) {
       result->w = dst.w;
       result->h = dst.w / src_ratio;
-      result->x = 0;
-      result->y = (dst.h - result->h) / 2;
+      result->x = dst.x;
+      result->y = dst.y + (dst.h - result->h) / 2;
     } else if (src_ratio < dst_ratio) {
       result->w = dst.h * src_ratio;
       result->h = dst.h;
-      result->x = (dst.w - result->w) / 2;
-      result->y = 0;
+      result->x = dst.x + (dst.w - result->w) / 2;
+      result->y = dst.y;
     } else {
-      result->x = 0;
-      result->y = 0;
+      result->x = dst.x;
+      result->y = dst.y;
       result->w = dst.w;
       result->h = dst.h;
     }
diff --git a/gst-libs/gst/video/gstvideoutils.h b/gst-libs/gst/video/gstvideoutils.h
index 6349b87..e385103 100644
--- a/gst-libs/gst/video/gstvideoutils.h
+++ b/gst-libs/gst/video/gstvideoutils.h
@@ -213,7 +213,6 @@
  *           owned by the frame and references to the frame instead of the
  *           buffer should be kept.
  * @deadline: Running time when the frame will be used.
- * @events: Events that will be pushed downstream before this frame is pushed.
  *
  * A #GstVideoCodecFrame represents a video frame both in raw and
  * encoded form.
diff --git a/gst-libs/gst/video/gstvideoutilsprivate.c b/gst-libs/gst/video/gstvideoutilsprivate.c
new file mode 100644
index 0000000..652c60d
--- /dev/null
+++ b/gst-libs/gst/video/gstvideoutilsprivate.c
@@ -0,0 +1,146 @@
+/* GStreamer
+ * Copyright (C) 2008 David Schleef <ds@schleef.org>
+ * Copyright (C) 2012 Collabora Ltd.
+ *	Author : Edward Hervey <edward@collabora.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <gst/video/video.h>
+#include "gstvideoutilsprivate.h"
+
+/*
+ * Takes caps and copies its video fields to tmpl_caps
+ */
+static GstCaps *
+__gst_video_element_proxy_caps (GstElement * element, GstCaps * templ_caps,
+    GstCaps * caps)
+{
+  GstCaps *result = gst_caps_new_empty ();
+  gint i, j;
+  gint templ_caps_size = gst_caps_get_size (templ_caps);
+  gint caps_size = gst_caps_get_size (caps);
+
+  for (i = 0; i < templ_caps_size; i++) {
+    GQuark q_name =
+        gst_structure_get_name_id (gst_caps_get_structure (templ_caps, i));
+    GstCapsFeatures *features = gst_caps_get_features (templ_caps, i);
+
+    for (j = 0; j < caps_size; j++) {
+      const GstStructure *caps_s = gst_caps_get_structure (caps, j);
+      const GValue *val;
+      GstStructure *s;
+      GstCaps *tmp = gst_caps_new_empty ();
+
+      s = gst_structure_new_id_empty (q_name);
+      if ((val = gst_structure_get_value (caps_s, "width")))
+        gst_structure_set_value (s, "width", val);
+      if ((val = gst_structure_get_value (caps_s, "height")))
+        gst_structure_set_value (s, "height", val);
+      if ((val = gst_structure_get_value (caps_s, "framerate")))
+        gst_structure_set_value (s, "framerate", val);
+      if ((val = gst_structure_get_value (caps_s, "pixel-aspect-ratio")))
+        gst_structure_set_value (s, "pixel-aspect-ratio", val);
+
+      gst_caps_append_structure_full (tmp, s,
+          gst_caps_features_copy (features));
+      result = gst_caps_merge (result, tmp);
+    }
+  }
+
+  return result;
+}
+
+/**
+ * __gst_video_element_proxy_getcaps:
+ * @element: a #GstElement
+ * @sinkpad: the element's sink #GstPad
+ * @srcpad: the element's source #GstPad
+ * @initial_caps: initial caps
+ * @filter: filter caps
+ *
+ * Returns caps that express @initial_caps (or sink template caps if
+ * @initial_caps == NULL) restricted to resolution/format/...
+ * combinations supported by downstream elements (e.g. muxers).
+ *
+ * Returns: a #GstCaps owned by caller
+ */
+GstCaps *
+__gst_video_element_proxy_getcaps (GstElement * element, GstPad * sinkpad,
+    GstPad * srcpad, GstCaps * initial_caps, GstCaps * filter)
+{
+  GstCaps *templ_caps, *src_templ_caps;
+  GstCaps *peer_caps;
+  GstCaps *allowed;
+  GstCaps *fcaps, *filter_caps;
+
+  /* Allow downstream to specify width/height/framerate/PAR constraints
+   * and forward them upstream for video converters to handle
+   */
+  templ_caps = initial_caps ? gst_caps_ref (initial_caps) :
+      gst_pad_get_pad_template_caps (sinkpad);
+  src_templ_caps = gst_pad_get_pad_template_caps (srcpad);
+  if (filter && !gst_caps_is_any (filter)) {
+    GstCaps *proxy_filter =
+        __gst_video_element_proxy_caps (element, src_templ_caps, filter);
+
+    peer_caps = gst_pad_peer_query_caps (srcpad, proxy_filter);
+    gst_caps_unref (proxy_filter);
+  } else {
+    peer_caps = gst_pad_peer_query_caps (srcpad, NULL);
+  }
+
+  allowed = gst_caps_intersect_full (peer_caps, src_templ_caps,
+      GST_CAPS_INTERSECT_FIRST);
+
+  gst_caps_unref (src_templ_caps);
+  gst_caps_unref (peer_caps);
+
+  if (!allowed || gst_caps_is_any (allowed)) {
+    fcaps = templ_caps;
+    goto done;
+  } else if (gst_caps_is_empty (allowed)) {
+    fcaps = gst_caps_ref (allowed);
+    goto done;
+  }
+
+  GST_LOG_OBJECT (element, "template caps %" GST_PTR_FORMAT, templ_caps);
+  GST_LOG_OBJECT (element, "allowed caps %" GST_PTR_FORMAT, allowed);
+
+  filter_caps = __gst_video_element_proxy_caps (element, templ_caps, allowed);
+
+  fcaps = gst_caps_intersect (filter_caps, templ_caps);
+  gst_caps_unref (filter_caps);
+  gst_caps_unref (templ_caps);
+
+  if (filter) {
+    GST_LOG_OBJECT (element, "intersecting with %" GST_PTR_FORMAT, filter);
+    filter_caps = gst_caps_intersect (fcaps, filter);
+    gst_caps_unref (fcaps);
+    fcaps = filter_caps;
+  }
+
+done:
+  gst_caps_replace (&allowed, NULL);
+
+  GST_LOG_OBJECT (element, "proxy caps %" GST_PTR_FORMAT, fcaps);
+
+  return fcaps;
+}
diff --git a/gst-libs/gst/video/gstvideoutilsprivate.h b/gst-libs/gst/video/gstvideoutilsprivate.h
new file mode 100644
index 0000000..ac5105e
--- /dev/null
+++ b/gst-libs/gst/video/gstvideoutilsprivate.h
@@ -0,0 +1,40 @@
+/* GStreamer
+ * Copyright (C) 2008 David Schleef <ds@schleef.org>
+ * Copyright (C) 2012 Collabora Ltd.
+ *	Author : Edward Hervey <edward@collabora.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef __GST_VIDEO_H__
+#include <gst/video/video.h>
+#endif
+
+#ifndef _GST_VIDEO_UTILS_PRIVATE_H_
+#define _GST_VIDEO_UTILS_PRIVATE_H_
+
+#include <gst/gst.h>
+
+G_BEGIN_DECLS
+
+/* Element utility functions */
+GstCaps *__gst_video_element_proxy_getcaps (GstElement * element, GstPad * sinkpad,
+                                            GstPad * srcpad, GstCaps * initial_caps,
+                                            GstCaps * filter);
+
+G_END_DECLS
+
+#endif
diff --git a/gst-libs/gst/video/navigation.c b/gst-libs/gst/video/navigation.c
index 2fc8836..c598875 100644
--- a/gst-libs/gst/video/navigation.c
+++ b/gst-libs/gst/video/navigation.c
@@ -546,7 +546,7 @@
 
   if (active) {
     const GstStructure *s = gst_message_get_structure (message);
-    if (gst_structure_get_boolean (s, "active", active) == FALSE)
+    if (!gst_structure_get_boolean (s, "active", active))
       return FALSE;
   }
 
diff --git a/gst-libs/gst/video/video-blend.c b/gst-libs/gst/video/video-blend.c
index 835b7bb..7a1380b 100644
--- a/gst-libs/gst/video/video-blend.c
+++ b/gst-libs/gst/video/video-blend.c
@@ -146,6 +146,22 @@
   ret = v0 + (v1 * (255 - alpha)) / 255; \
 } G_STMT_END
 
+/**
+ * gst_video_blend_scale_linear_RGBA:
+ * @src: the #GstVideoInfo describing the video data in @src_buffer
+ * @src_buffer: the source buffer containing video pixels to scale
+ * @dest_height: the height in pixels to scale the video data in @src_buffer to
+ * @dest_width: the width in pixels to scale the video data in @src_buffer to
+ * @dest: (out): pointer to a #GstVideoInfo structure that will be filled in
+ *     with the details for @dest_buffer
+ * @dest_buffer: (out): a pointer to a #GstBuffer variable, which will be
+ *     set to a newly-allocated buffer containing the scaled pixels.
+ *
+ * Scales a buffer containing RGBA (or AYUV) video. This is an internal
+ * helper function which is used to scale subtitle overlays, and may be
+ * deprecated in the near future. Use #GstVideoScaler to scale video buffers
+ * instead.
+ */
 /* returns newly-allocated buffer, which caller must unref */
 void
 gst_video_blend_scale_linear_RGBA (GstVideoInfo * src, GstBuffer * src_buffer,
@@ -232,7 +248,8 @@
   g_free (tmpbuf);
 }
 
-/* video_blend:
+/**
+ * gst_video_blend:
  * @dest: The #GstVideoFrame where to blend @src in
  * @src: the #GstVideoFrame that we want to blend into
  * @x: The x offset in pixel where the @src image should be blended
@@ -246,8 +263,8 @@
 gst_video_blend (GstVideoFrame * dest,
     GstVideoFrame * src, gint x, gint y, gfloat global_alpha)
 {
-  guint i, j, global_alpha_val, src_width, src_height, dest_width, dest_height;
-  gint xoff;
+  gint i, j, global_alpha_val, src_width, src_height, dest_width, dest_height;
+  gint src_xoff = 0, src_yoff = 0;
   guint8 *tmpdestline = NULL, *tmpsrcline = NULL;
   gboolean src_premultiplied_alpha, dest_premultiplied_alpha;
   void (*matrix) (guint8 * tmpline, guint width);
@@ -275,6 +292,15 @@
 
   ensure_debug_category ();
 
+  GST_LOG ("blend src %dx%d onto dest %dx%d @ %d,%d", src_width, src_height,
+      dest_width, dest_height, x, y);
+
+  /* In case overlay is completely outside the video, dont render */
+  if (x + src_width <= 0 || y + src_height <= 0
+      || x >= dest_width || y >= dest_height) {
+    goto nothing_to_do;
+  }
+
   dinfo = gst_video_format_get_info (GST_VIDEO_FRAME_FORMAT (dest));
   sinfo = gst_video_format_get_info (GST_VIDEO_FRAME_FORMAT (src));
 
@@ -293,7 +319,7 @@
     goto unpack_format_not_supported;
 
   tmpdestline = g_malloc (sizeof (guint8) * (dest_width + 8) * 4);
-  tmpsrcline = g_malloc (sizeof (guint8) * (dest_width + 8) * 4);
+  tmpsrcline = g_malloc (sizeof (guint8) * (src_width + 8) * 4);
 
   matrix = matrix_identity;
   if (GST_VIDEO_INFO_IS_RGB (&src->info) != GST_VIDEO_INFO_IS_RGB (&dest->info)) {
@@ -309,21 +335,24 @@
     }
   }
 
-  xoff = 0;
+  /* If we're here we know that the overlay image fully or
+   * partially overlaps with the video frame */
 
-  /* adjust src pointers for negative sizes */
+  /* adjust src image for negative offsets */
   if (x < 0) {
-    src_width -= -x;
+    src_xoff = -x;
+    src_width -= src_xoff;
     x = 0;
-    xoff = -x;
   }
 
   if (y < 0) {
-    src_height -= -y;
+    src_yoff = -y;
+    src_height -= src_yoff;
     y = 0;
   }
 
-  /* adjust width/height if the src is bigger than dest */
+  /* adjust width/height to render (i.e. clip source image) if the source
+   * image extends beyond the right or bottom border of the video surface */
   if (x + src_width > dest_width)
     src_width = dest_width - x;
 
@@ -331,17 +360,18 @@
     src_height = dest_height - y;
 
   /* Mainloop doing the needed conversions, and blending */
-  for (i = y; i < y + src_height; i++) {
+  for (i = y; i < y + src_height; i++, src_yoff++) {
 
     dinfo->unpack_func (dinfo, 0, tmpdestline, dest->data, dest->info.stride,
         0, i, dest_width);
     sinfo->unpack_func (sinfo, 0, tmpsrcline, src->data, src->info.stride,
-        xoff, i - y, src_width - xoff);
+        src_xoff, src_yoff, src_width);
+
+    /* FIXME: use the x parameter of the unpack func once implemented */
+    tmpdestline += 4 * x;
 
     matrix (tmpsrcline, src_width);
 
-    tmpdestline += 4 * x;
-
     /* Here dest and src are both either in AYUV or ARGB
      * TODO: Make the orc version working properly*/
 #define BLENDLOOP(blender,alpha_val,alpha_scale)                                  \
@@ -381,6 +411,7 @@
 
 #undef BLENDLOOP
 
+    /* undo previous pointer adjustments to pass right pointer to g_free */
     tmpdestline -= 4 * x;
 
     /* FIXME
@@ -411,4 +442,10 @@
         gst_video_format_to_string (dinfo->unpack_format));
     return FALSE;
   }
+nothing_to_do:
+  {
+    GST_LOG
+        ("Overlay completely outside the video surface, hence not rendering");
+    return TRUE;
+  }
 }
diff --git a/gst-libs/gst/video/video-chroma.c b/gst-libs/gst/video/video-chroma.c
index 15cf61c..d0b4407 100644
--- a/gst-libs/gst/video/video-chroma.c
+++ b/gst-libs/gst/video/video-chroma.c
@@ -24,8 +24,21 @@
 #include <string.h>
 #include <stdio.h>
 
+#include "video-orc.h"
 #include "video-format.h"
 
+/**
+ * SECTION:gstvideochroma
+ * @short_description: Functions and utility object for operating on chroma video planes
+ *
+ * The functions gst_video_chroma_from_string() and gst_video_chroma_to_string() convert
+ * between #GstVideoChromaSite and string descriptions.
+ *
+ * #GstVideoChromaResample is a utility object for resampling chroma planes
+ * and converting between different chroma sampling sitings.
+ *
+ */
+
 typedef struct
 {
   const gchar *name;
@@ -105,7 +118,7 @@
 #define PB3(i)         (l3[3 + 4 * (i)])
 
 #define FILT_1_1(a,b)          ((a) + (b) + 1) >> 1
-#define FILT_1_1_1_1(a,b,c,d)  ((a) + (b) + (c) + (d) + 2) >> 2
+#define FILT_1_3_3_1(a,b,c,d)  ((a) + 3*((b)+(c)) + (d) + 4) >> 3
 
 #define FILT_3_1(a,b)          (3*(a) + (b) + 2) >> 2
 #define FILT_1_3(a,b)          ((a) + 3*(b) + 2) >> 2
@@ -119,7 +132,7 @@
 
 #define FILT_10_3_2_1(a,b,c,d)      (10*(a) + 3*(b) + 2*(c) + (d) + 8) >> 16
 #define FILT_1_2_3_10(a,b,c,d)      ((a) + 2*(b) + 3*(c) + 10*(d) + 8) >> 16
-#define FILT_1_2_3_4_3_2_1(a,b,c,d,e,f,g) ((a) + 2*(b) + 3*(c) + 4*(d) + 3*(e) + 2*(f) + (g) + 8) >> 16
+#define FILT_1_2_3_4_3_2_1(a,b,c,d,e,f,g) ((a) + 2*((b)+(f)) + 3*((c)+(e)) + 4*(d) + (g) + 8) >> 16
 
 /* 2x horizontal upsampling without cositing
  *
@@ -131,9 +144,9 @@
  *  x   x
  *  a   b
  */
-#define MAKE_UPSAMPLE_H2(type)                                          \
+#define MAKE_UPSAMPLE_H2(name,type)                                     \
 static void                                                             \
-video_chroma_up_h2_##type (GstVideoChromaResample *resample,            \
+video_chroma_up_h2_##name (GstVideoChromaResample *resample,            \
     gpointer pixels, gint width)                                        \
 {                                                                       \
   type *p = pixels;                                                     \
@@ -163,16 +176,13 @@
  * b x  x  x
  *   O--O--O-  <---- b
  */
-#define MAKE_UPSAMPLE_V2(type)                                          \
+#define MAKE_UPSAMPLE_V2(name,type)                                     \
 static void                                                             \
-video_chroma_up_v2_##type (GstVideoChromaResample *resample,            \
+video_chroma_up_v2_##name (GstVideoChromaResample *resample,            \
     gpointer lines[], gint width)                                       \
 {                                                                       \
-  gint i;                                                               \
   type *l0 = lines[0];                                                  \
   type *l1 = lines[1];                                                  \
-  type tr0, tr1;                                                        \
-  type tb0, tb1;                                                        \
                                                                         \
   if (resample->h_resample) {                                           \
     resample->h_resample (resample, l0, width);                         \
@@ -180,15 +190,7 @@
       resample->h_resample (resample, l1, width);                       \
   }                                                                     \
   if (l0 != l1) {                                                       \
-    for (i = 0; i < width; i++) {                                       \
-      tr0 = PR0(i), tr1 = PR1(i);                                       \
-      tb0 = PB0(i), tb1 = PB1(i);                                       \
-                                                                        \
-      PR0(i) = FILT_3_1 (tr0, tr1);                                     \
-      PB0(i) = FILT_3_1 (tb0, tb1);                                     \
-      PR1(i) = FILT_1_3 (tr0, tr1);                                     \
-      PB1(i) = FILT_1_3 (tb0, tb1);                                     \
-    }                                                                   \
+    video_orc_chroma_up_v2_##name (l0, l1, l0, l1, width);              \
   }                                                                     \
 }
 /* 2x vertical upsampling interlaced without cositing
@@ -208,9 +210,9 @@
  * d               x  x  x
  *   --------------O--O--O-
  */
-#define MAKE_UPSAMPLE_VI2(type)                                         \
+#define MAKE_UPSAMPLE_VI2(name,type)                                    \
 static void                                                             \
-video_chroma_up_vi2_##type (GstVideoChromaResample *resample,           \
+video_chroma_up_vi2_##name (GstVideoChromaResample *resample,           \
     gpointer lines[], gint width)                                       \
 {                                                                       \
   gint i;                                                               \
@@ -259,10 +261,20 @@
  * x x x x
  * a b c d
  */
-#define MAKE_DOWNSAMPLE_H2(type)                                        \
+#define MAKE_DOWNSAMPLE_H2_ORC(name,type)                               \
 static void                                                             \
-video_chroma_down_h2_##type (GstVideoChromaResample *resample,         \
-    gpointer pixels, gint width)                        \
+video_chroma_down_h2_##name (GstVideoChromaResample *resample,          \
+    gpointer pixels, gint width)                                        \
+{                                                                       \
+  type *p = pixels;                                                     \
+                                                                        \
+  video_orc_chroma_down_h2_##name (p, p, width / 2);                    \
+}
+
+#define MAKE_DOWNSAMPLE_H2(name,type)                                   \
+static void                                                             \
+video_chroma_down_h2_##name (GstVideoChromaResample *resample,          \
+    gpointer pixels, gint width)                                        \
 {                                                                       \
   type *p = pixels;                                                     \
   gint i;                                                               \
@@ -284,29 +296,19 @@
  *   O  O  O
  * d x--x--x-
  */
-#define MAKE_DOWNSAMPLE_V2(type)                                        \
+#define MAKE_DOWNSAMPLE_V2(name,type)                                   \
 static void                                                             \
-video_chroma_down_v2_##type (GstVideoChromaResample *resample,          \
+video_chroma_down_v2_##name (GstVideoChromaResample *resample,          \
     gpointer lines[], gint width)                                       \
 {                                                                       \
-  gint i;                                                               \
   type *l0 = lines[0];                                                  \
   type *l1 = lines[1];                                                  \
                                                                         \
-  if (resample->h_resample) {                                           \
-    resample->h_resample (resample, l0, width);                         \
-    if (l0 != l1)                                                       \
-      resample->h_resample (resample, l1, width);                       \
-  }                                                                     \
-  if (l0 != l1) {                                                       \
-    for (i = 0; i < width; i++) {                                       \
-      type tr0 = PR0(i), tr1 = PR1(i);                                  \
-      type tb0 = PB0(i), tb1 = PB1(i);                                  \
+  if (l0 != l1)                                                         \
+    video_orc_chroma_down_v2_##name (l0, l0, l1, width);                \
                                                                         \
-      PR0(i) = FILT_1_1 (tr0, tr1);                                     \
-      PB0(i) = FILT_1_1 (tb0, tb1);                                     \
-    }                                                                   \
-  }                                                                     \
+  if (resample->h_resample)                                             \
+    resample->h_resample (resample, l0, width);                         \
 }
 /* 2x vertical downsampling interlaced without cositing
  *
@@ -319,9 +321,9 @@
  *                 O  O  O  <---
  * d --------------x--x--x-
  */
-#define MAKE_DOWNSAMPLE_VI2(type)                                       \
+#define MAKE_DOWNSAMPLE_VI2(name,type)                                  \
 static void                                                             \
-video_chroma_down_vi2_##type (GstVideoChromaResample *resample,         \
+video_chroma_down_vi2_##name (GstVideoChromaResample *resample,         \
     gpointer lines[], gint width)                                       \
 {                                                                       \
   /* FIXME */                                                           \
@@ -329,18 +331,18 @@
     resample->h_resample (resample, lines[0], width);                   \
 }
 
-MAKE_UPSAMPLE_H2 (guint16);
-MAKE_UPSAMPLE_H2 (guint8);
-MAKE_UPSAMPLE_V2 (guint16);
-MAKE_UPSAMPLE_V2 (guint8);
-MAKE_UPSAMPLE_VI2 (guint16);
-MAKE_UPSAMPLE_VI2 (guint8);
-MAKE_DOWNSAMPLE_H2 (guint16);
-MAKE_DOWNSAMPLE_H2 (guint8);
-MAKE_DOWNSAMPLE_V2 (guint16);
-MAKE_DOWNSAMPLE_V2 (guint8);
-MAKE_DOWNSAMPLE_VI2 (guint16);
-MAKE_DOWNSAMPLE_VI2 (guint8);
+MAKE_UPSAMPLE_H2 (u16, guint16);
+MAKE_UPSAMPLE_H2 (u8, guint8);
+MAKE_UPSAMPLE_V2 (u16, guint16);
+MAKE_UPSAMPLE_V2 (u8, guint8);
+MAKE_UPSAMPLE_VI2 (u16, guint16);
+MAKE_UPSAMPLE_VI2 (u8, guint8);
+MAKE_DOWNSAMPLE_H2 (u16, guint16);
+MAKE_DOWNSAMPLE_H2_ORC (u8, guint8);
+MAKE_DOWNSAMPLE_V2 (u16, guint16);
+MAKE_DOWNSAMPLE_V2 (u8, guint8);
+MAKE_DOWNSAMPLE_VI2 (u16, guint16);
+MAKE_DOWNSAMPLE_VI2 (u8, guint8);
 
 /* 4x horizontal upsampling without cositing
  *
@@ -353,9 +355,9 @@
  *    x       x
  *    a       b
  */
-#define MAKE_UPSAMPLE_H4(type)                                          \
+#define MAKE_UPSAMPLE_H4(name,type)                                          \
 static void                                                             \
-video_chroma_up_h4_##type (GstVideoChromaResample *resample,           \
+video_chroma_up_h4_##name (GstVideoChromaResample *resample,           \
     gpointer pixels, gint width)                        \
 {                                                                       \
   type *p = pixels;                                                     \
@@ -393,9 +395,9 @@
  *   O--O--O-
  *   O--O--O-
  */
-#define MAKE_UPSAMPLE_V4(type)                                          \
+#define MAKE_UPSAMPLE_V4(name,type)                                          \
 static void                                                             \
-video_chroma_up_v4_##type (GstVideoChromaResample *resample,            \
+video_chroma_up_v4_##name (GstVideoChromaResample *resample,            \
     gpointer lines[], gint width)                                       \
 {                                                                       \
   gint i;                                                               \
@@ -435,9 +437,9 @@
 /* 4x vertical upsampling interlaced without cositing
  *
  */
-#define MAKE_UPSAMPLE_VI4(type)                                         \
+#define MAKE_UPSAMPLE_VI4(name,type)                                         \
 static void                                                             \
-video_chroma_up_vi4_##type (GstVideoChromaResample *resample,           \
+video_chroma_up_vi4_##name (GstVideoChromaResample *resample,           \
     gpointer lines[], gint width)                                       \
 {                                                                       \
   /* FIXME */                                                           \
@@ -448,16 +450,16 @@
 
 /* 4x horizontal downsampling without cositing
  *
- *    +------ (a + b + c + d + 2) >> 2
+ *    +------ (a + 3*b + 3*c + d + 4) >> 3
  *    |
  *    v
  * ---O-------O---
  * x x x x x x x x
  * a b c d e f g h
  */
-#define MAKE_DOWNSAMPLE_H4(type)                                        \
+#define MAKE_DOWNSAMPLE_H4(name,type)                                        \
 static void                                                             \
-video_chroma_down_h4_##type (GstVideoChromaResample *resample,         \
+video_chroma_down_h4_##name (GstVideoChromaResample *resample,         \
     gpointer pixels, gint width)                        \
 {                                                                       \
   type *p = pixels;                                                     \
@@ -467,8 +469,8 @@
     type tr0 = PR(i), tr1 = PR(i+1), tr2 = PR(i+2), tr3 = PR(i+3);      \
     type tb0 = PB(i), tb1 = PB(i+1), tb2 = PB(i+2), tb3 = PB(i+3);      \
                                                                         \
-    PR(i) = FILT_1_1_1_1 (tr0, tr1, tr2, tr3);                          \
-    PB(i) = FILT_1_1_1_1 (tb0, tb1, tb2, tb3);                          \
+    PR(i) = FILT_1_3_3_1 (tr0, tr1, tr2, tr3);                          \
+    PB(i) = FILT_1_3_3_1 (tb0, tb1, tb2, tb3);                          \
   }                                                                     \
 }
 
@@ -476,7 +478,7 @@
  *
  * a x--x--x-
  * b x--x--x-
- *   O  O  O   <---- (a + b + c + d + 2) >> 2
+ *   O  O  O   <---- (a + 3*b + 3*c + d + 4) >> 4
  * c x--x--x-
  * d x--x--x-
  * e x--x--x-
@@ -485,42 +487,27 @@
  * g x--x--x-
  * h x--x--x-
  */
-#define MAKE_DOWNSAMPLE_V4(type)                                        \
+#define MAKE_DOWNSAMPLE_V4(name,type)                               \
 static void                                                             \
-video_chroma_down_v4_##type (GstVideoChromaResample *resample,          \
+video_chroma_down_v4_##name (GstVideoChromaResample *resample,          \
     gpointer lines[], gint width)                                       \
 {                                                                       \
-  gint i;                                                               \
   type *l0 = lines[0];                                                  \
   type *l1 = lines[1];                                                  \
   type *l2 = lines[2];                                                  \
   type *l3 = lines[3];                                                  \
                                                                         \
-  if (resample->h_resample) {                                           \
-    resample->h_resample (resample, l0, width);                         \
-    if (l0 != l1)                                                       \
-      resample->h_resample (resample, l1, width);                       \
-    if (l1 != l2)                                                       \
-      resample->h_resample (resample, l2, width);                       \
-    if (l2 != l3)                                                       \
-      resample->h_resample (resample, l3, width);                       \
-  }                                                                     \
-  for (i = 0; i < width; i++) {                                         \
-    type tr0 = PR0(i), tr1 = PR1(i);                                    \
-    type tr2 = PR2(i), tr3 = PR3(i);                                    \
-    type tb0 = PB0(i), tb1 = PB1(i);                                    \
-    type tb2 = PB2(i), tb3 = PB3(i);                                    \
+  video_orc_chroma_down_v4_##name(l0, l0, l1, l2, l3, width);           \
                                                                         \
-    PR0(i) = FILT_1_1_1_1 (tr0, tr1, tr2, tr3);                         \
-    PB0(i) = FILT_1_1_1_1 (tb0, tb1, tb2, tb3);                         \
-  }                                                                     \
+  if (resample->h_resample)                                             \
+    resample->h_resample (resample, l0, width);                         \
 }
 /* 4x vertical downsampling interlaced without cositing
  *
  */
-#define MAKE_DOWNSAMPLE_VI4(type)                                       \
+#define MAKE_DOWNSAMPLE_VI4(name,type)                                       \
 static void                                                             \
-video_chroma_down_vi4_##type (GstVideoChromaResample *resample,         \
+video_chroma_down_vi4_##name (GstVideoChromaResample *resample,         \
     gpointer lines[], gint width)                                       \
 {                                                                       \
   /* FIXME */                                                           \
@@ -529,18 +516,18 @@
   }                                                                     \
 }
 
-MAKE_UPSAMPLE_H4 (guint16);
-MAKE_UPSAMPLE_H4 (guint8);
-MAKE_UPSAMPLE_V4 (guint16);
-MAKE_UPSAMPLE_V4 (guint8);
-MAKE_UPSAMPLE_VI4 (guint16);
-MAKE_UPSAMPLE_VI4 (guint8);
-MAKE_DOWNSAMPLE_H4 (guint16);
-MAKE_DOWNSAMPLE_H4 (guint8);
-MAKE_DOWNSAMPLE_V4 (guint16);
-MAKE_DOWNSAMPLE_V4 (guint8);
-MAKE_DOWNSAMPLE_VI4 (guint16);
-MAKE_DOWNSAMPLE_VI4 (guint8);
+MAKE_UPSAMPLE_H4 (u16, guint16);
+MAKE_UPSAMPLE_H4 (u8, guint8);
+MAKE_UPSAMPLE_V4 (u16, guint16);
+MAKE_UPSAMPLE_V4 (u8, guint8);
+MAKE_UPSAMPLE_VI4 (u16, guint16);
+MAKE_UPSAMPLE_VI4 (u8, guint8);
+MAKE_DOWNSAMPLE_H4 (u16, guint16);
+MAKE_DOWNSAMPLE_H4 (u8, guint8);
+MAKE_DOWNSAMPLE_V4 (u16, guint16);
+MAKE_DOWNSAMPLE_V4 (u8, guint8);
+MAKE_DOWNSAMPLE_VI4 (u16, guint16);
+MAKE_DOWNSAMPLE_VI4 (u8, guint8);
 
 /* 2x horizontal upsampling with cositing
  *
@@ -551,9 +538,19 @@
  * x   x
  * a   b
  */
-#define MAKE_UPSAMPLE_H2_CS(type)                                       \
+#define MAKE_UPSAMPLE_H2_CS_ORC(name,type)                              \
 static void                                                             \
-video_chroma_up_h2_cs_##type (GstVideoChromaResample *resample,         \
+video_chroma_up_h2_cs_##name (GstVideoChromaResample *resample,         \
+    gpointer pixels, gint width)                                        \
+{                                                                       \
+  type *p = pixels;                                                     \
+  /* ORC version is slower */                                           \
+  video_orc_chroma_up_h2_cs_##name (p, p, p, width-1);                  \
+}
+
+#define MAKE_UPSAMPLE_H2_CS(name,type)                                  \
+static void                                                             \
+video_chroma_up_h2_cs_##name (GstVideoChromaResample *resample,         \
     gpointer pixels, gint width)                                        \
 {                                                                       \
   type *p = pixels;                                                     \
@@ -571,9 +568,9 @@
  * b x O--O--O-
  *     O--O--O-
  */
-#define MAKE_UPSAMPLE_V2_CS(type)                                       \
+#define MAKE_UPSAMPLE_V2_CS(name,type)                                       \
 static void                                                             \
-video_chroma_up_v2_cs_##type (GstVideoChromaResample *resample,         \
+video_chroma_up_v2_cs_##name (GstVideoChromaResample *resample,         \
     gpointer lines[], gint width)                                       \
 {                                                                       \
   /* FIXME */                                                           \
@@ -584,9 +581,9 @@
 /* 2x vertical upsampling interlaced with cositing
  *
  */
-#define MAKE_UPSAMPLE_VI2_CS(type)                                      \
+#define MAKE_UPSAMPLE_VI2_CS(name,type)                                      \
 static void                                                             \
-video_chroma_up_vi2_cs_##type (GstVideoChromaResample *resample,        \
+video_chroma_up_vi2_cs_##name (GstVideoChromaResample *resample,        \
     gpointer lines[], gint width)                                       \
 {                                                                       \
   /* FIXME */                                                           \
@@ -604,9 +601,9 @@
  * x x x x x x
  * a b c d e f
  */
-#define MAKE_DOWNSAMPLE_H2_CS(type)                                     \
+#define MAKE_DOWNSAMPLE_H2_CS(name,type)                                     \
 static void                                                             \
-video_chroma_down_h2_cs_##type (GstVideoChromaResample *resample,       \
+video_chroma_down_h2_cs_##name (GstVideoChromaResample *resample,       \
     gpointer pixels, gint width)                                        \
 {                                                                       \
   type *p = pixels;                                                     \
@@ -636,9 +633,9 @@
  * e x O--O--O-
  * f x --------
  */
-#define MAKE_DOWNSAMPLE_V2_CS(type)                                     \
+#define MAKE_DOWNSAMPLE_V2_CS(name,type)                                     \
 static void                                                             \
-video_chroma_down_v2_cs_##type (GstVideoChromaResample *resample,       \
+video_chroma_down_v2_cs_##name (GstVideoChromaResample *resample,       \
     gpointer lines[], gint width)                                       \
 {                                                                       \
   /* FIXME */                                                           \
@@ -649,9 +646,9 @@
 /* 2x vertical downsampling interlaced with cositing
  *
  */
-#define MAKE_DOWNSAMPLE_VI2_CS(type)                                    \
+#define MAKE_DOWNSAMPLE_VI2_CS(name,type)                                    \
 static void                                                             \
-video_chroma_down_vi2_cs_##type (GstVideoChromaResample *resample,      \
+video_chroma_down_vi2_cs_##name (GstVideoChromaResample *resample,      \
     gpointer lines[], gint width)                                       \
 {                                                                       \
   /* FIXME */                                                           \
@@ -660,18 +657,18 @@
   }                                                                     \
 }
 
-MAKE_UPSAMPLE_H2_CS (guint16);
-MAKE_UPSAMPLE_H2_CS (guint8);
-MAKE_UPSAMPLE_V2_CS (guint16);
-MAKE_UPSAMPLE_V2_CS (guint8);
-MAKE_UPSAMPLE_VI2_CS (guint16);
-MAKE_UPSAMPLE_VI2_CS (guint8);
-MAKE_DOWNSAMPLE_H2_CS (guint16);
-MAKE_DOWNSAMPLE_H2_CS (guint8);
-MAKE_DOWNSAMPLE_V2_CS (guint16);
-MAKE_DOWNSAMPLE_V2_CS (guint8);
-MAKE_DOWNSAMPLE_VI2_CS (guint16);
-MAKE_DOWNSAMPLE_VI2_CS (guint8);
+MAKE_UPSAMPLE_H2_CS (u16, guint16);
+MAKE_UPSAMPLE_H2_CS (u8, guint8);
+MAKE_UPSAMPLE_V2_CS (u16, guint16);
+MAKE_UPSAMPLE_V2_CS (u8, guint8);
+MAKE_UPSAMPLE_VI2_CS (u16, guint16);
+MAKE_UPSAMPLE_VI2_CS (u8, guint8);
+MAKE_DOWNSAMPLE_H2_CS (u16, guint16);
+MAKE_DOWNSAMPLE_H2_CS (u8, guint8);
+MAKE_DOWNSAMPLE_V2_CS (u16, guint16);
+MAKE_DOWNSAMPLE_V2_CS (u8, guint8);
+MAKE_DOWNSAMPLE_VI2_CS (u16, guint16);
+MAKE_DOWNSAMPLE_VI2_CS (u8, guint8);
 
 /* 4x horizontal upsampling with cositing
  *
@@ -683,9 +680,9 @@
  * x       x
  * a       b
  */
-#define MAKE_UPSAMPLE_H4_CS(type)                                       \
+#define MAKE_UPSAMPLE_H4_CS(name,type)                                       \
 static void                                                             \
-video_chroma_up_h4_cs_##type (GstVideoChromaResample *resample,        \
+video_chroma_up_h4_cs_##name (GstVideoChromaResample *resample,        \
     gpointer pixels, gint width)                        \
 {                                                                       \
   type *p = pixels;                                                        \
@@ -712,9 +709,9 @@
  * b x O--O--O-
  *     O--O--O-
  */
-#define MAKE_UPSAMPLE_V4_CS(type)                                       \
+#define MAKE_UPSAMPLE_V4_CS(name,type)                                       \
 static void                                                             \
-video_chroma_up_v4_cs_##type (GstVideoChromaResample *resample,         \
+video_chroma_up_v4_cs_##name (GstVideoChromaResample *resample,         \
     gpointer lines[], gint width)                                       \
 {                                                                       \
   /* FIXME */                                                           \
@@ -725,9 +722,9 @@
 /* 4x vertical upsampling interlaced with cositing
  *
  */
-#define MAKE_UPSAMPLE_VI4_CS(type)                                      \
+#define MAKE_UPSAMPLE_VI4_CS(name,type)                                      \
 static void                                                             \
-video_chroma_up_vi4_cs_##type (GstVideoChromaResample *resample,        \
+video_chroma_up_vi4_cs_##name (GstVideoChromaResample *resample,        \
     gpointer lines[], gint width)                                       \
 {                                                                       \
   /* FIXME */                                                           \
@@ -744,9 +741,9 @@
  * x x x x x x x x
  * a b c d e f g h
  */
-#define MAKE_DOWNSAMPLE_H4_CS(type)                                     \
+#define MAKE_DOWNSAMPLE_H4_CS(name,type)                                     \
 static void                                                             \
-video_chroma_down_h4_cs_##type (GstVideoChromaResample *resample,      \
+video_chroma_down_h4_cs_##name (GstVideoChromaResample *resample,      \
     gpointer pixels, gint width)                        \
 {                                                                       \
   type *p = pixels;                                                     \
@@ -780,9 +777,9 @@
  * i x O--O--O-
  * j x --------
  */
-#define MAKE_DOWNSAMPLE_V4_CS(type)                                     \
+#define MAKE_DOWNSAMPLE_V4_CS(name,type)                                     \
 static void                                                             \
-video_chroma_down_v4_cs_##type (GstVideoChromaResample *resample,       \
+video_chroma_down_v4_cs_##name (GstVideoChromaResample *resample,       \
     gpointer lines[], gint width)                                       \
 {                                                                       \
   /* FIXME */                                                           \
@@ -793,9 +790,9 @@
 /* 4x vertical downsampling interlaced with cositing
  *
  */
-#define MAKE_DOWNSAMPLE_VI4_CS(type)                                    \
+#define MAKE_DOWNSAMPLE_VI4_CS(name,type)                                    \
 static void                                                             \
-video_chroma_down_vi4_cs_##type (GstVideoChromaResample *resample,      \
+video_chroma_down_vi4_cs_##name (GstVideoChromaResample *resample,      \
     gpointer lines[], gint width)                                       \
 {                                                                       \
   /* FIXME */                                                           \
@@ -804,18 +801,18 @@
   }                                                                     \
 }
 
-MAKE_UPSAMPLE_H4_CS (guint16);
-MAKE_UPSAMPLE_H4_CS (guint8);
-MAKE_UPSAMPLE_V4_CS (guint16);
-MAKE_UPSAMPLE_V4_CS (guint8);
-MAKE_UPSAMPLE_VI4_CS (guint16);
-MAKE_UPSAMPLE_VI4_CS (guint8);
-MAKE_DOWNSAMPLE_H4_CS (guint16);
-MAKE_DOWNSAMPLE_H4_CS (guint8);
-MAKE_DOWNSAMPLE_V4_CS (guint16);
-MAKE_DOWNSAMPLE_V4_CS (guint8);
-MAKE_DOWNSAMPLE_VI4_CS (guint16);
-MAKE_DOWNSAMPLE_VI4_CS (guint8);
+MAKE_UPSAMPLE_H4_CS (u16, guint16);
+MAKE_UPSAMPLE_H4_CS (u8, guint8);
+MAKE_UPSAMPLE_V4_CS (u16, guint16);
+MAKE_UPSAMPLE_V4_CS (u8, guint8);
+MAKE_UPSAMPLE_VI4_CS (u16, guint16);
+MAKE_UPSAMPLE_VI4_CS (u8, guint8);
+MAKE_DOWNSAMPLE_H4_CS (u16, guint16);
+MAKE_DOWNSAMPLE_H4_CS (u8, guint8);
+MAKE_DOWNSAMPLE_V4_CS (u16, guint16);
+MAKE_DOWNSAMPLE_V4_CS (u8, guint8);
+MAKE_DOWNSAMPLE_VI4_CS (u16, guint16);
+MAKE_DOWNSAMPLE_VI4_CS (u8, guint8);
 
 typedef struct
 {
@@ -825,22 +822,22 @@
 
 static const HorizResampler h_resamplers[] = {
   {NULL},
-  {video_chroma_up_h2_guint8},
-  {video_chroma_down_h2_guint8},
-  {video_chroma_up_h2_guint16},
-  {video_chroma_down_h2_guint16},
-  {video_chroma_up_h2_cs_guint8},
-  {video_chroma_down_h2_cs_guint8},
-  {video_chroma_up_h2_cs_guint16},
-  {video_chroma_down_h2_cs_guint16},
-  {video_chroma_up_h4_guint8},
-  {video_chroma_down_h4_guint8},
-  {video_chroma_up_h4_guint16},
-  {video_chroma_down_h4_guint16},
-  {video_chroma_up_h4_cs_guint8},
-  {video_chroma_down_h4_cs_guint8},
-  {video_chroma_up_h4_cs_guint16},
-  {video_chroma_down_h4_cs_guint16}
+  {video_chroma_up_h2_u8},
+  {video_chroma_down_h2_u8},
+  {video_chroma_up_h2_u16},
+  {video_chroma_down_h2_u16},
+  {video_chroma_up_h2_cs_u8},
+  {video_chroma_down_h2_cs_u8},
+  {video_chroma_up_h2_cs_u16},
+  {video_chroma_down_h2_cs_u16},
+  {video_chroma_up_h4_u8},
+  {video_chroma_down_h4_u8},
+  {video_chroma_up_h4_u16},
+  {video_chroma_down_h4_u16},
+  {video_chroma_up_h4_cs_u8},
+  {video_chroma_down_h4_cs_u8},
+  {video_chroma_up_h4_cs_u16},
+  {video_chroma_down_h4_cs_u16}
 };
 
 typedef struct
@@ -861,42 +858,42 @@
 
 static const VertResampler v_resamplers[] = {
   {video_chroma_none, 1, 0},
-  {video_chroma_up_v2_guint8, 2, -1},
-  {video_chroma_down_v2_guint8, 2, 0},
+  {video_chroma_up_v2_u8, 2, -1},
+  {video_chroma_down_v2_u8, 2, 0},
   /* 16 bits */
-  {video_chroma_up_v2_guint16, 2, -1},
-  {video_chroma_down_v2_guint16, 2, 0},
+  {video_chroma_up_v2_u16, 2, -1},
+  {video_chroma_down_v2_u16, 2, 0},
   /* cosited */
-  {video_chroma_up_v2_cs_guint8, 1, 0}, /* IMPLEMENT ME */
-  {video_chroma_down_v2_cs_guint8, 1, 0},       /* IMPLEMENT ME */
-  {video_chroma_up_v2_cs_guint16, 1, 0},        /* IMPLEMENT ME */
-  {video_chroma_down_v2_cs_guint16, 1, 0},      /* IMPLEMENT ME */
+  {video_chroma_up_v2_cs_u8, 1, 0},     /* IMPLEMENT ME */
+  {video_chroma_down_v2_cs_u8, 1, 0},   /* IMPLEMENT ME */
+  {video_chroma_up_v2_cs_u16, 1, 0},    /* IMPLEMENT ME */
+  {video_chroma_down_v2_cs_u16, 1, 0},  /* IMPLEMENT ME */
   /* 4x */
-  {video_chroma_up_v4_guint8, 4, -2},
-  {video_chroma_down_v4_guint8, 4, 0},
-  {video_chroma_up_v4_guint16, 4, -2},
-  {video_chroma_down_v4_guint16, 4, 0},
-  {video_chroma_up_v4_cs_guint8, 1, 0}, /* IMPLEMENT ME */
-  {video_chroma_down_v4_cs_guint8, 1, 0},       /* IMPLEMENT ME */
-  {video_chroma_up_v4_cs_guint16, 1, 0},        /* IMPLEMENT ME */
-  {video_chroma_down_v4_cs_guint16, 1, 0},      /* IMPLEMENT ME */
+  {video_chroma_up_v4_u8, 4, -2},
+  {video_chroma_down_v4_u8, 4, 0},
+  {video_chroma_up_v4_u16, 4, -2},
+  {video_chroma_down_v4_u16, 4, 0},
+  {video_chroma_up_v4_cs_u8, 1, 0},     /* IMPLEMENT ME */
+  {video_chroma_down_v4_cs_u8, 1, 0},   /* IMPLEMENT ME */
+  {video_chroma_up_v4_cs_u16, 1, 0},    /* IMPLEMENT ME */
+  {video_chroma_down_v4_cs_u16, 1, 0},  /* IMPLEMENT ME */
   /* interlaced */
-  {video_chroma_up_vi2_guint8, 4, -2},
-  {video_chroma_down_vi2_guint8, 1, 0}, /* IMPLEMENT ME */
-  {video_chroma_up_vi2_guint16, 4, -2},
-  {video_chroma_down_vi2_guint16, 1, 0},        /* IMPLEMENT ME */
-  {video_chroma_up_vi2_cs_guint8, 1, 0},        /* IMPLEMENT ME */
-  {video_chroma_down_vi2_cs_guint8, 1, 0},      /* IMPLEMENT ME */
-  {video_chroma_up_vi2_cs_guint16, 1, 0},       /* IMPLEMENT ME */
-  {video_chroma_down_vi2_cs_guint16, 1, 0},     /* IMPLEMENT ME */
-  {video_chroma_up_vi4_guint8, 1, 0},   /* IMPLEMENT ME */
-  {video_chroma_down_vi4_guint8, 1, 0}, /* IMPLEMENT ME */
-  {video_chroma_up_vi4_guint16, 1, 0},  /* IMPLEMENT ME */
-  {video_chroma_down_vi4_guint16, 1, 0},        /* IMPLEMENT ME */
-  {video_chroma_up_vi4_cs_guint8, 1, 0},        /* IMPLEMENT ME */
-  {video_chroma_down_vi4_cs_guint8, 1, 0},      /* IMPLEMENT ME */
-  {video_chroma_up_vi4_cs_guint16, 1, 0},       /* IMPLEMENT ME */
-  {video_chroma_down_vi4_cs_guint16, 1, 0},     /* IMPLEMENT ME */
+  {video_chroma_up_vi2_u8, 4, -2},
+  {video_chroma_down_vi2_u8, 1, 0},     /* IMPLEMENT ME */
+  {video_chroma_up_vi2_u16, 4, -2},
+  {video_chroma_down_vi2_u16, 1, 0},    /* IMPLEMENT ME */
+  {video_chroma_up_vi2_cs_u8, 1, 0},    /* IMPLEMENT ME */
+  {video_chroma_down_vi2_cs_u8, 1, 0},  /* IMPLEMENT ME */
+  {video_chroma_up_vi2_cs_u16, 1, 0},   /* IMPLEMENT ME */
+  {video_chroma_down_vi2_cs_u16, 1, 0}, /* IMPLEMENT ME */
+  {video_chroma_up_vi4_u8, 1, 0},       /* IMPLEMENT ME */
+  {video_chroma_down_vi4_u8, 1, 0},     /* IMPLEMENT ME */
+  {video_chroma_up_vi4_u16, 1, 0},      /* IMPLEMENT ME */
+  {video_chroma_down_vi4_u16, 1, 0},    /* IMPLEMENT ME */
+  {video_chroma_up_vi4_cs_u8, 1, 0},    /* IMPLEMENT ME */
+  {video_chroma_down_vi4_cs_u8, 1, 0},  /* IMPLEMENT ME */
+  {video_chroma_up_vi4_cs_u16, 1, 0},   /* IMPLEMENT ME */
+  {video_chroma_down_vi4_cs_u16, 1, 0}, /* IMPLEMENT ME */
 };
 
 /**
@@ -909,7 +906,7 @@
  * @v_factor: vertical resampling factor
  *
  * Create a new resampler object for the given parameters. When @h_factor or
- * @v_factoris > 0, upsampling will be used, otherwise subsampling is
+ * @v_factor is > 0, upsampling will be used, otherwise subsampling is
  * performed.
  *
  * Returns: a new #GstVideoChromaResample that should be freed with
@@ -941,6 +938,9 @@
     h_index =
         ((ABS (h_factor) - 1) * 8) + (cosite ? 4 : 0) + (bits ==
         16 ? 2 : 0) + (h_factor < 0 ? 1 : 0) + 1;
+
+  GST_DEBUG ("h_resample %d, factor %d, cosite %d", h_index, h_factor, cosite);
+
   cosite = (site & GST_VIDEO_CHROMA_SITE_V_COSITED ? 1 : 0);
   if (v_factor == 0)
     v_index = 0;
@@ -949,6 +949,11 @@
         ((ABS (v_factor) - 1) * 8) + (cosite ? 4 : 0) + (bits ==
         16 ? 2 : 0) + (v_factor < 0 ? 1 : 0) + 1;
 
+  if (flags & GST_VIDEO_CHROMA_FLAG_INTERLACED)
+    v_index += 16;
+
+  GST_DEBUG ("v_resample %d, factor %d, cosite %d", v_index, v_factor, cosite);
+
   result = g_slice_new (GstVideoChromaResample);
   result->method = method;
   result->site = site;
@@ -961,8 +966,8 @@
   result->n_lines = v_resamplers[v_index].n_lines;
   result->offset = v_resamplers[v_index].offset;
 
-  GST_DEBUG ("select resample %p %d, factor %d, "
-      "cosite %d, bits %d", result, h_index, h_factor, cosite, bits);
+  GST_DEBUG ("resample %p, bits %d, n_lines %u, offset %d", result, bits,
+      result->n_lines, result->offset);
 
   return result;
 }
diff --git a/gst-libs/gst/video/video-color.c b/gst-libs/gst/video/video-color.c
index 7a576d5..8f8c274 100644
--- a/gst-libs/gst/video/video-color.c
+++ b/gst-libs/gst/video/video-color.c
@@ -25,6 +25,7 @@
 
 #include <string.h>
 #include <stdio.h>
+#include <math.h>
 
 #include "video-color.h"
 
@@ -45,14 +46,16 @@
 #define DEFAULT_RGB     3
 #define DEFAULT_GRAY    4
 #define DEFAULT_UNKNOWN 5
+#define DEFAULT_YUV_UHD 6
 
 static const ColorimetryInfo colorimetry[] = {
-  MAKE_COLORIMETRY (BT601, _16_235, BT601, BT709, BT470M),
+  MAKE_COLORIMETRY (BT601, _16_235, BT601, BT709, SMPTE170M),
   MAKE_COLORIMETRY (BT709, _16_235, BT709, BT709, BT709),
   MAKE_COLORIMETRY (SMPTE240M, _16_235, SMPTE240M, SMPTE240M, SMPTE240M),
-  MAKE_COLORIMETRY (NONAME, _0_255, RGB, UNKNOWN, UNKNOWN),
+  MAKE_COLORIMETRY (SRGB, _0_255, RGB, SRGB, BT709),
   MAKE_COLORIMETRY (NONAME, _0_255, BT601, UNKNOWN, UNKNOWN),
   MAKE_COLORIMETRY (NONAME, _UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN),
+  MAKE_COLORIMETRY (BT2020, _16_235, BT2020, BT2020_12, BT2020),
 };
 
 static const ColorimetryInfo *
@@ -89,9 +92,11 @@
     const gchar * color)
 {
   const ColorimetryInfo *ci;
+  gboolean res = FALSE;
 
   if ((ci = gst_video_get_colorimetry (color))) {
     *cinfo = ci->color;
+    res = TRUE;
   } else {
     gint r, m, t, p;
 
@@ -100,9 +105,10 @@
       cinfo->matrix = m;
       cinfo->transfer = t;
       cinfo->primaries = p;
+      res = TRUE;
     }
   }
-  return TRUE;
+  return res;
 }
 
 /**
@@ -216,20 +222,10 @@
 }
 
 
-#if 0
-typedef struct
-{
-  GstVideoColorPrimaries primaries;
-  gdouble xW, yW;
-  gdouble xR, yR;
-  gdouble xG, yG;
-  gdouble xB, yB;
-} PrimariesInfo;
-
 #define WP_C    0.31006, 0.31616
 #define WP_D65  0.31271, 0.32902
 
-static const PrimariesInfo primaries[] = {
+static const GstVideoColorPrimariesInfo color_primaries[] = {
   {GST_VIDEO_COLOR_PRIMARIES_UNKNOWN, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
   {GST_VIDEO_COLOR_PRIMARIES_BT709, WP_D65, 0.64, 0.33, 0.30, 0.60, 0.15, 0.06},
   {GST_VIDEO_COLOR_PRIMARIES_BT470M, WP_C, 0.67, 0.33, 0.21, 0.71, 0.14, 0.08},
@@ -240,6 +236,270 @@
   {GST_VIDEO_COLOR_PRIMARIES_SMPTE240M, WP_D65, 0.63, 0.34, 0.31, 0.595, 0.155,
       0.07},
   {GST_VIDEO_COLOR_PRIMARIES_FILM, WP_C, 0.681, 0.319, 0.243, 0.692, 0.145,
-      0.049}
+      0.049},
+  {GST_VIDEO_COLOR_PRIMARIES_BT2020, WP_D65, 0.708, 0.292, 0.170, 0.797, 0.131,
+      0.046}
 };
-#endif
+
+/**
+ * gst_video_color_primaries_get_info:
+ * @primaries: a #GstVideoColorPrimaries
+ *
+ * Get information about the chromaticity coordinates of @primaries.
+ *
+ * Returns: a #GstVideoColorPrimariesInfo for @primaries.
+ *
+ * Since: 1.6
+ */
+const GstVideoColorPrimariesInfo *
+gst_video_color_primaries_get_info (GstVideoColorPrimaries primaries)
+{
+  g_return_val_if_fail (primaries <
+      (GstVideoColorPrimaries) G_N_ELEMENTS (color_primaries), NULL);
+
+  return &color_primaries[primaries];
+}
+
+/**
+ * gst_video_color_matrix_get_Kr_Kb:
+ * @matrix: a #GstVideoColorMatrix
+ * @Kr: result red channel coefficient
+ * @Kb: result blue channel coefficient
+ *
+ * Get the coefficients used to convert between Y'PbPr and R'G'B' using @matrix.
+ *
+ * When:
+ *
+ * |[
+ *   0.0 <= [Y',R',G',B'] <= 1.0)
+ *   (-0.5 <= [Pb,Pr] <= 0.5)
+ * ]|
+ *
+ * the general conversion is given by:
+ *
+ * |[
+ *   Y' = Kr*R' + (1-Kr-Kb)*G' + Kb*B'
+ *   Pb = (B'-Y')/(2*(1-Kb))
+ *   Pr = (R'-Y')/(2*(1-Kr))
+ * ]|
+ *
+ * and the other way around:
+ *
+ * |[
+ *   R' = Y' + Cr*2*(1-Kr)
+ *   G' = Y' - Cb*2*(1-Kb)*Kb/(1-Kr-Kb) - Cr*2*(1-Kr)*Kr/(1-Kr-Kb)
+ *   B' = Y' + Cb*2*(1-Kb)
+ * ]|
+ *
+ * Returns: TRUE if @matrix was a YUV color format and @Kr and @Kb contain valid
+ *    values.
+ *
+ * Since: 1.6
+ */
+gboolean
+gst_video_color_matrix_get_Kr_Kb (GstVideoColorMatrix matrix, gdouble * Kr,
+    gdouble * Kb)
+{
+  gboolean res = TRUE;
+
+  switch (matrix) {
+      /* RGB */
+    default:
+    case GST_VIDEO_COLOR_MATRIX_RGB:
+      res = FALSE;
+      break;
+      /* YUV */
+    case GST_VIDEO_COLOR_MATRIX_FCC:
+      *Kr = 0.30;
+      *Kb = 0.11;
+      break;
+    case GST_VIDEO_COLOR_MATRIX_BT709:
+      *Kr = 0.2126;
+      *Kb = 0.0722;
+      break;
+    case GST_VIDEO_COLOR_MATRIX_BT601:
+      *Kr = 0.2990;
+      *Kb = 0.1140;
+      break;
+    case GST_VIDEO_COLOR_MATRIX_SMPTE240M:
+      *Kr = 0.212;
+      *Kb = 0.087;
+      break;
+    case GST_VIDEO_COLOR_MATRIX_BT2020:
+      *Kr = 0.2627;
+      *Kb = 0.0593;
+      break;
+  }
+  GST_DEBUG ("matrix: %d, Kr %f, Kb %f", matrix, *Kr, *Kb);
+
+  return res;
+}
+
+/**
+ * gst_video_color_transfer_encode:
+ * @func: a #GstVideoTransferFunction
+ * @val: a value
+ *
+ * Convert @val to its gamma encoded value.
+ *
+ * For a linear value L in the range [0..1], conversion to the non-linear
+ * (gamma encoded) L' is in general performed with a power function like:
+ *
+ * |[
+ *    L' = L ^ (1 / gamma)
+ * ]|
+ *
+ * Depending on @func, different formulas might be applied. Some formulas
+ * encode a linear segment in the lower range.
+ *
+ * Returns: the gamme encoded value of @val
+ *
+ * Since: 1.6
+ */
+gdouble
+gst_video_color_transfer_encode (GstVideoTransferFunction func, gdouble val)
+{
+  gdouble res;
+
+  switch (func) {
+    case GST_VIDEO_TRANSFER_UNKNOWN:
+    case GST_VIDEO_TRANSFER_GAMMA10:
+    default:
+      res = val;
+      break;
+    case GST_VIDEO_TRANSFER_GAMMA18:
+      res = pow (val, 1.0 / 1.8);
+      break;
+    case GST_VIDEO_TRANSFER_GAMMA20:
+      res = pow (val, 1.0 / 2.0);
+      break;
+    case GST_VIDEO_TRANSFER_GAMMA22:
+      res = pow (val, 1.0 / 2.2);
+      break;
+    case GST_VIDEO_TRANSFER_BT709:
+      if (val < 0.018)
+        res = 4.5 * val;
+      else
+        res = 1.099 * pow (val, 0.45) - 0.099;
+      break;
+    case GST_VIDEO_TRANSFER_SMPTE240M:
+      if (val < 0.0228)
+        res = val * 4.0;
+      else
+        res = 1.1115 * pow (val, 0.45) - 0.1115;
+      break;
+    case GST_VIDEO_TRANSFER_SRGB:
+      if (val <= 0.0031308)
+        res = 12.92 * val;
+      else
+        res = 1.055 * pow (val, 1.0 / 2.4) - 0.055;
+      break;
+    case GST_VIDEO_TRANSFER_GAMMA28:
+      res = pow (val, 1 / 2.8);
+      break;
+    case GST_VIDEO_TRANSFER_LOG100:
+      if (val < 0.01)
+        res = 0.0;
+      else
+        res = 1.0 + log10 (val) / 2.0;
+      break;
+    case GST_VIDEO_TRANSFER_LOG316:
+      if (val < 0.0031622777)
+        res = 0.0;
+      else
+        res = 1.0 + log10 (val) / 2.5;
+      break;
+    case GST_VIDEO_TRANSFER_BT2020_12:
+      if (val < 0.0181)
+        res = 4.5 * val;
+      else
+        res = 1.0993 * pow (val, 0.45) - 0.0993;
+      break;
+  }
+  return res;
+}
+
+/**
+ * gst_video_color_transfer_decode:
+ * @func: a #GstVideoTransferFunction
+ * @val: a value
+ *
+ * Convert @val to its gamma decoded value. This is the inverse operation of
+ * @gst_video_color_transfer_encode().
+ *
+ * For a non-linear value L' in the range [0..1], conversion to the linear
+ * L is in general performed with a power function like:
+ *
+ * |[
+ *    L = L' ^ gamma
+ * ]|
+ *
+ * Depending on @func, different formulas might be applied. Some formulas
+ * encode a linear segment in the lower range.
+ *
+ * Returns: the gamme decoded value of @val
+ *
+ * Since: 1.6
+ */
+gdouble
+gst_video_color_transfer_decode (GstVideoTransferFunction func, gdouble val)
+{
+  gdouble res;
+
+  switch (func) {
+    case GST_VIDEO_TRANSFER_UNKNOWN:
+    case GST_VIDEO_TRANSFER_GAMMA10:
+    default:
+      res = val;
+      break;
+    case GST_VIDEO_TRANSFER_GAMMA18:
+      res = pow (val, 1.8);
+      break;
+    case GST_VIDEO_TRANSFER_GAMMA20:
+      res = pow (val, 2.0);
+      break;
+    case GST_VIDEO_TRANSFER_GAMMA22:
+      res = pow (val, 2.2);
+      break;
+    case GST_VIDEO_TRANSFER_BT709:
+      if (val < 0.081)
+        res = val / 4.5;
+      else
+        res = pow ((val + 0.099) / 1.099, 1.0 / 0.45);
+      break;
+    case GST_VIDEO_TRANSFER_SMPTE240M:
+      if (val < 0.0913)
+        res = val / 4.0;
+      else
+        res = pow ((val + 0.1115) / 1.1115, 1.0 / 0.45);
+      break;
+    case GST_VIDEO_TRANSFER_SRGB:
+      if (val <= 0.04045)
+        res = val / 12.92;
+      else
+        res = pow ((val + 0.055) / 1.055, 2.4);
+      break;
+    case GST_VIDEO_TRANSFER_GAMMA28:
+      res = pow (val, 2.8);
+      break;
+    case GST_VIDEO_TRANSFER_LOG100:
+      if (val == 0.0)
+        res = 0.0;
+      else
+        res = pow (10.0, 2.0 * (val - 1.0));
+      break;
+    case GST_VIDEO_TRANSFER_LOG316:
+      if (val == 0.0)
+        res = 0.0;
+      else
+        res = pow (10.0, 2.5 * (val - 1.0));
+      break;
+    case GST_VIDEO_TRANSFER_BT2020_12:
+      if (val < 0.08145)
+        res = val / 4.5;
+      else
+        res = pow ((val + 0.0993) / 1.0993, 1.0 / 0.45);
+      break;
+  }
+  return res;
+}
diff --git a/gst-libs/gst/video/video-color.h b/gst-libs/gst/video/video-color.h
index d1b30fa..07b87a5 100644
--- a/gst-libs/gst/video/video-color.h
+++ b/gst-libs/gst/video/video-color.h
@@ -50,6 +50,7 @@
  * @GST_VIDEO_COLOR_MATRIX_BT709: ITU-R BT.709 color matrix
  * @GST_VIDEO_COLOR_MATRIX_BT601: ITU-R BT.601 color matrix
  * @GST_VIDEO_COLOR_MATRIX_SMPTE240M: SMPTE 240M color matrix
+ * @GST_VIDEO_COLOR_MATRIX_BT2020: ITU-R BT.2020 color matrix. Since: 1.6.
  *
  * The color matrix is used to convert between Y'PbPr and
  * non-linear RGB (R'G'B')
@@ -60,9 +61,12 @@
   GST_VIDEO_COLOR_MATRIX_FCC,
   GST_VIDEO_COLOR_MATRIX_BT709,
   GST_VIDEO_COLOR_MATRIX_BT601,
-  GST_VIDEO_COLOR_MATRIX_SMPTE240M
+  GST_VIDEO_COLOR_MATRIX_SMPTE240M,
+  GST_VIDEO_COLOR_MATRIX_BT2020
 } GstVideoColorMatrix;
 
+gboolean gst_video_color_matrix_get_Kr_Kb (GstVideoColorMatrix matrix, gdouble * Kr, gdouble * Kb);
+
 /**
  * GstVideoTransferFunction:
  * @GST_VIDEO_TRANSFER_UNKNOWN: unknown transfer function
@@ -81,6 +85,9 @@
  *                             100:1 range
  * @GST_VIDEO_TRANSFER_LOG316: Logarithmic transfer characteristic
  *                             316.22777:1 range
+ * @GST_VIDEO_TRANSFER_BT2020_12: Gamma 2.2 curve with a linear segment in the lower
+ *                                range. Used for BT.2020 with 12 bits per
+ *                                component. Since: 1.6.
  *
  * The video transfer function defines the formula for converting between
  * non-linear RGB (R'G'B') and linear RGB
@@ -96,9 +103,13 @@
   GST_VIDEO_TRANSFER_SRGB,
   GST_VIDEO_TRANSFER_GAMMA28,
   GST_VIDEO_TRANSFER_LOG100,
-  GST_VIDEO_TRANSFER_LOG316
+  GST_VIDEO_TRANSFER_LOG316,
+  GST_VIDEO_TRANSFER_BT2020_12
 } GstVideoTransferFunction;
 
+gdouble      gst_video_color_transfer_encode (GstVideoTransferFunction func, gdouble val);
+gdouble      gst_video_color_transfer_decode (GstVideoTransferFunction func, gdouble val);
+
 /**
  * GstVideoColorPrimaries:
  * @GST_VIDEO_COLOR_PRIMARIES_UNKNOWN: unknown color primaries
@@ -108,6 +119,7 @@
  * @GST_VIDEO_COLOR_PRIMARIES_SMPTE170M: SMPTE170M primaries
  * @GST_VIDEO_COLOR_PRIMARIES_SMPTE240M: SMPTE240M primaries
  * @GST_VIDEO_COLOR_PRIMARIES_FILM: Generic film
+ * @GST_VIDEO_COLOR_PRIMARIES_BT2020: BT2020 primaries. Since: 1.6.
  *
  * The color primaries define the how to transform linear RGB values to and from
  * the CIE XYZ colorspace.
@@ -119,10 +131,40 @@
   GST_VIDEO_COLOR_PRIMARIES_BT470BG,
   GST_VIDEO_COLOR_PRIMARIES_SMPTE170M,
   GST_VIDEO_COLOR_PRIMARIES_SMPTE240M,
-  GST_VIDEO_COLOR_PRIMARIES_FILM
+  GST_VIDEO_COLOR_PRIMARIES_FILM,
+  GST_VIDEO_COLOR_PRIMARIES_BT2020
 } GstVideoColorPrimaries;
 
 /**
+ * GstVideoColorPrimariesInfo:
+ * @primaries: a #GstVideoColorPrimaries
+ * @Wx: reference white x coordinate
+ * @Wy: reference white y coordinate
+ * @Rx: red x coordinate
+ * @Ry: red y coordinate
+ * @Gx: green x coordinate
+ * @Gy: green y coordinate
+ * @Bx: blue x coordinate
+ * @By: blue y coordinate
+ *
+ * Structure describing the chromaticity coordinates of an RGB system. These
+ * values can be used to construct a matrix to transform RGB to and from the
+ * XYZ colorspace.
+ *
+ * Since: 1.6
+ */
+typedef struct {
+  GstVideoColorPrimaries primaries;
+  gdouble Wx, Wy;
+  gdouble Rx, Ry;
+  gdouble Gx, Gy;
+  gdouble Bx, By;
+} GstVideoColorPrimariesInfo;
+
+const GstVideoColorPrimariesInfo *
+                gst_video_color_primaries_get_info     (GstVideoColorPrimaries primaries);
+
+/**
  * GstVideoColorimetry:
  * @range: the color range. This is the valid range for the samples.
  *         It is used to convert the samples to Y'PbPr values.
@@ -144,6 +186,8 @@
 #define GST_VIDEO_COLORIMETRY_BT601       "bt601"
 #define GST_VIDEO_COLORIMETRY_BT709       "bt709"
 #define GST_VIDEO_COLORIMETRY_SMPTE240M   "smpte240m"
+#define GST_VIDEO_COLORIMETRY_SRGB        "sRGB"
+#define GST_VIDEO_COLORIMETRY_BT2020      "bt2020"
 
 gboolean     gst_video_colorimetry_matches     (GstVideoColorimetry *cinfo, const gchar *color);
 gboolean     gst_video_colorimetry_from_string (GstVideoColorimetry *cinfo, const gchar *color);
diff --git a/gst-libs/gst/video/video-converter.c b/gst-libs/gst/video/video-converter.c
new file mode 100644
index 0000000..437c3c6
--- /dev/null
+++ b/gst-libs/gst/video/video-converter.c
@@ -0,0 +1,4718 @@
+/* GStreamer
+ * Copyright (C) 2010 David Schleef <ds@schleef.org>
+ * Copyright (C) 2010 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "video-converter.h"
+
+#include <glib.h>
+#include <string.h>
+#include <math.h>
+
+#include "video-orc.h"
+
+/**
+ * SECTION:videoconverter
+ * @short_description: Generic video conversion
+ *
+ * <refsect2>
+ * <para>
+ * This object is used to convert video frames from one format to another.
+ * The object can perform conversion of:
+ * <itemizedlist>
+ *  <listitem><para>
+ *    video format
+ *  </para></listitem>
+ *  <listitem><para>
+ *    video colorspace
+ *  </para></listitem>
+ *  <listitem><para>
+ *    chroma-siting
+ *  </para></listitem>
+ *  <listitem><para>
+ *    video size
+ *  </para></listitem>
+ * </para>
+ * </refsect2>
+ */
+
+/*
+ * (a)  unpack
+ * (b)  chroma upsample
+ * (c)  (convert Y'CbCr to R'G'B')
+ * (d)  gamma decode
+ * (e)  downscale
+ * (f)  colorspace convert through XYZ
+ * (g)  upscale
+ * (h)  gamma encode
+ * (i)  (convert R'G'B' to Y'CbCr)
+ * (j)  chroma downsample
+ * (k)  pack
+ *
+ * quality options
+ *
+ *  (a) range truncate, range expand
+ *  (b) full upsample, 1-1 non-cosited upsample, no upsample
+ *  (c) 8 bits, 16 bits
+ *  (d)
+ *  (e) 8 bits, 16 bits
+ *  (f) 8 bits, 16 bits
+ *  (g) 8 bits, 16 bits
+ *  (h)
+ *  (i) 8 bits, 16 bits
+ *  (j) 1-1 cosited downsample, no downsample
+ *  (k)
+ *
+ *
+ *         1 : a ->   ->   ->   -> e  -> f  -> g  ->   ->   ->   -> k
+ *         2 : a ->   ->   ->   -> e  -> f* -> g  ->   ->   ->   -> k
+ *         3 : a ->   ->   ->   -> e* -> f* -> g* ->   ->   ->   -> k
+ *         4 : a -> b ->   ->   -> e  -> f  -> g  ->   ->   -> j -> k
+ *         5 : a -> b ->   ->   -> e* -> f* -> g* ->   ->   -> j -> k
+ *         6 : a -> b -> c -> d -> e  -> f  -> g  -> h -> i -> j -> k
+ *         7 : a -> b -> c -> d -> e* -> f* -> g* -> h -> i -> j -> k
+ *
+ *         8 : a -> b -> c -> d -> e* -> f* -> g* -> h -> i -> j -> k
+ *         9 : a -> b -> c -> d -> e* -> f* -> g* -> h -> i -> j -> k
+ *        10 : a -> b -> c -> d -> e* -> f* -> g* -> h -> i -> j -> k
+ */
+typedef struct _GstLineCache GstLineCache;
+
+#define SCALE    (8)
+#define SCALE_F  ((float) (1 << SCALE))
+
+typedef struct _MatrixData MatrixData;
+
+struct _MatrixData
+{
+  gdouble dm[4][4];
+  gint im[4][4];
+  gint width;
+  guint64 orc_p1;
+  guint64 orc_p2;
+  guint64 orc_p3;
+  guint64 orc_p4;
+  gint64 *t_r;
+  gint64 *t_g;
+  gint64 *t_b;
+  gint64 t_c;
+  void (*matrix_func) (MatrixData * data, gpointer pixels);
+};
+
+typedef struct _GammaData GammaData;
+
+struct _GammaData
+{
+  gpointer gamma_table;
+  gint width;
+  void (*gamma_func) (GammaData * data, gpointer dest, gpointer src);
+};
+
+typedef enum
+{
+  ALPHA_MODE_NONE = 0,
+  ALPHA_MODE_COPY = (1 << 0),
+  ALPHA_MODE_SET = (1 << 1),
+  ALPHA_MODE_MULT = (1 << 2)
+} AlphaMode;
+
+typedef struct
+{
+  guint8 *data;
+  guint stride;
+  guint n_lines;
+  guint idx;
+  gpointer user_data;
+  GDestroyNotify notify;
+} ConverterAlloc;
+
+typedef void (*FastConvertFunc) (GstVideoConverter * convert,
+    const GstVideoFrame * src, GstVideoFrame * dest, gint plane);
+
+struct _GstVideoConverter
+{
+  gint flags;
+
+  GstVideoInfo in_info;
+  GstVideoInfo out_info;
+
+  gint in_x;
+  gint in_y;
+  gint in_width;
+  gint in_height;
+  gint in_maxwidth;
+  gint in_maxheight;
+  gint out_x;
+  gint out_y;
+  gint out_width;
+  gint out_height;
+  gint out_maxwidth;
+  gint out_maxheight;
+
+  gint current_pstride;
+  gint current_width;
+  gint current_height;
+  GstVideoFormat current_format;
+  gint current_bits;
+
+  GstStructure *config;
+
+  guint16 *tmpline;
+
+  gboolean fill_border;
+  gpointer borderline;
+  guint64 borders[4];
+  guint32 border_argb;
+  guint32 alpha_value;
+  AlphaMode alpha_mode;
+
+  void (*convert) (GstVideoConverter * convert, const GstVideoFrame * src,
+      GstVideoFrame * dest);
+
+  /* data for unpack */
+  GstLineCache *unpack_lines;
+  GstVideoFormat unpack_format;
+  guint unpack_bits;
+  gboolean unpack_rgb;
+  gboolean identity_unpack;
+  gint unpack_pstride;
+
+  /* chroma upsample */
+  GstLineCache *upsample_lines;
+  GstVideoChromaResample *upsample;
+  GstVideoChromaResample *upsample_p;
+  GstVideoChromaResample *upsample_i;
+  guint up_n_lines;
+  gint up_offset;
+
+  /* to R'G'B */
+  GstLineCache *to_RGB_lines;
+  MatrixData to_RGB_matrix;
+  /* gamma decode */
+  GammaData gamma_dec;
+
+  /* scaling */
+  GstLineCache *hscale_lines;
+  GstVideoScaler *h_scaler;
+  gint h_scale_format;
+  GstLineCache *vscale_lines;
+  GstVideoScaler *v_scaler;
+  GstVideoScaler *v_scaler_p;
+  GstVideoScaler *v_scaler_i;
+  gint v_scale_width;
+  gint v_scale_format;
+
+  /* color space conversion */
+  GstLineCache *convert_lines;
+  MatrixData convert_matrix;
+  gint in_bits;
+  gint out_bits;
+
+  /* alpha correction */
+  GstLineCache *alpha_lines;
+  void (*alpha_func) (GstVideoConverter * convert, gpointer pixels, gint width);
+
+  /* gamma encode */
+  GammaData gamma_enc;
+  /* to Y'CbCr */
+  GstLineCache *to_YUV_lines;
+  MatrixData to_YUV_matrix;
+
+  /* chroma downsample */
+  GstLineCache *downsample_lines;
+  GstVideoChromaResample *downsample;
+  GstVideoChromaResample *downsample_p;
+  GstVideoChromaResample *downsample_i;
+  guint down_n_lines;
+  gint down_offset;
+
+  /* dither */
+  GstLineCache *dither_lines;
+  GstVideoDither *dither;
+
+  /* pack */
+  GstLineCache *pack_lines;
+  guint pack_nlines;
+  GstVideoFormat pack_format;
+  guint pack_bits;
+  gboolean pack_rgb;
+  gboolean identity_pack;
+  gint pack_pstride;
+  gconstpointer pack_pal;
+  gsize pack_palsize;
+
+  const GstVideoFrame *src;
+  GstVideoFrame *dest;
+
+  /* fastpath */
+  GstVideoFormat fformat[4];
+  gint fin_x[4];
+  gint fin_y[4];
+  gint fout_x[4];
+  gint fout_y[4];
+  gint fout_width[4];
+  gint fout_height[4];
+  gint fsplane[4];
+  gint ffill[4];
+  GstVideoScaler *fh_scaler[4];
+  GstVideoScaler *fv_scaler[4];
+  FastConvertFunc fconvert[4];
+};
+
+typedef gpointer (*GstLineCacheAllocLineFunc) (GstLineCache * cache, gint idx,
+    gpointer user_data);
+typedef gboolean (*GstLineCacheNeedLineFunc) (GstLineCache * cache,
+    gint out_line, gint in_line, gpointer user_data);
+
+struct _GstLineCache
+{
+  gint first;
+  gint backlog;
+  GPtrArray *lines;
+
+  GstLineCache *prev;
+  gboolean write_input;
+  gboolean pass_alloc;
+  gboolean alloc_writable;
+
+  GstLineCacheNeedLineFunc need_line;
+  gpointer need_line_data;
+  GDestroyNotify need_line_notify;
+
+  gboolean n_lines;
+  guint stride;
+  GstLineCacheAllocLineFunc alloc_line;
+  gpointer alloc_line_data;
+  GDestroyNotify alloc_line_notify;
+};
+
+static GstLineCache *
+gst_line_cache_new (GstLineCache * prev)
+{
+  GstLineCache *result;
+
+  result = g_slice_new0 (GstLineCache);
+  result->lines = g_ptr_array_new ();
+  result->prev = prev;
+
+  return result;
+}
+
+static void
+gst_line_cache_clear (GstLineCache * cache)
+{
+  g_return_if_fail (cache != NULL);
+
+  g_ptr_array_set_size (cache->lines, 0);
+  cache->first = 0;
+}
+
+static void
+gst_line_cache_free (GstLineCache * cache)
+{
+  if (cache->need_line_notify)
+    cache->need_line_notify (cache->need_line_data);
+  if (cache->alloc_line_notify)
+    cache->alloc_line_notify (cache->alloc_line_data);
+  gst_line_cache_clear (cache);
+  g_ptr_array_unref (cache->lines);
+  g_slice_free (GstLineCache, cache);
+}
+
+static void
+gst_line_cache_set_need_line_func (GstLineCache * cache,
+    GstLineCacheNeedLineFunc need_line, gpointer user_data,
+    GDestroyNotify notify)
+{
+  cache->need_line = need_line;
+  cache->need_line_data = user_data;
+  cache->need_line_notify = notify;
+}
+
+static void
+gst_line_cache_set_alloc_line_func (GstLineCache * cache,
+    GstLineCacheAllocLineFunc alloc_line, gpointer user_data,
+    GDestroyNotify notify)
+{
+  cache->alloc_line = alloc_line;
+  cache->alloc_line_data = user_data;
+  cache->alloc_line_notify = notify;
+}
+
+/* keep this much backlog for interlaced video */
+#define BACKLOG 2
+
+static gpointer *
+gst_line_cache_get_lines (GstLineCache * cache, gint out_line, gint in_line,
+    gint n_lines)
+{
+  if (cache->first + cache->backlog < in_line) {
+    gint to_remove =
+        MIN (in_line - (cache->first + cache->backlog), cache->lines->len);
+    if (to_remove > 0) {
+      g_ptr_array_remove_range (cache->lines, 0, to_remove);
+    }
+    cache->first += to_remove;
+    if (cache->first < in_line)
+      cache->first = in_line;
+  } else if (in_line < cache->first) {
+    gst_line_cache_clear (cache);
+    cache->first = in_line;
+  }
+
+  while (TRUE) {
+    gint oline;
+
+    if (cache->first <= in_line
+        && in_line + n_lines <= cache->first + (gint) cache->lines->len) {
+      return cache->lines->pdata + (in_line - cache->first);
+    }
+
+    if (cache->need_line == NULL)
+      break;
+
+    oline = out_line + cache->first + cache->lines->len - in_line;
+
+    if (!cache->need_line (cache, oline, cache->first + cache->lines->len,
+            cache->need_line_data))
+      break;
+  }
+  GST_DEBUG ("no lines");
+  return NULL;
+}
+
+static void
+gst_line_cache_add_line (GstLineCache * cache, gint idx, gpointer line)
+{
+  if (cache->first + cache->lines->len != idx) {
+    gst_line_cache_clear (cache);
+    cache->first = idx;
+  }
+  g_ptr_array_add (cache->lines, line);
+}
+
+static gpointer
+gst_line_cache_alloc_line (GstLineCache * cache, gint idx)
+{
+  gpointer res;
+
+  if (cache->alloc_line)
+    res = cache->alloc_line (cache, idx, cache->alloc_line_data);
+  else
+    res = NULL;
+
+  return res;
+}
+
+static void video_converter_generic (GstVideoConverter * convert,
+    const GstVideoFrame * src, GstVideoFrame * dest);
+static gboolean video_converter_lookup_fastpath (GstVideoConverter * convert);
+static void video_converter_compute_matrix (GstVideoConverter * convert);
+static void video_converter_compute_resample (GstVideoConverter * convert);
+
+static gpointer get_dest_line (GstLineCache * cache, gint idx,
+    gpointer user_data);
+
+static gboolean do_unpack_lines (GstLineCache * cache, gint out_line,
+    gint in_line, gpointer user_data);
+static gboolean do_downsample_lines (GstLineCache * cache, gint out_line,
+    gint in_line, gpointer user_data);
+static gboolean do_convert_to_RGB_lines (GstLineCache * cache, gint out_line,
+    gint in_line, gpointer user_data);
+static gboolean do_convert_lines (GstLineCache * cache, gint out_line,
+    gint in_line, gpointer user_data);
+static gboolean do_alpha_lines (GstLineCache * cache, gint out_line,
+    gint in_line, gpointer user_data);
+static gboolean do_convert_to_YUV_lines (GstLineCache * cache, gint out_line,
+    gint in_line, gpointer user_data);
+static gboolean do_upsample_lines (GstLineCache * cache, gint out_line,
+    gint in_line, gpointer user_data);
+static gboolean do_vscale_lines (GstLineCache * cache, gint out_line,
+    gint in_line, gpointer user_data);
+static gboolean do_hscale_lines (GstLineCache * cache, gint out_line,
+    gint in_line, gpointer user_data);
+static gboolean do_dither_lines (GstLineCache * cache, gint out_line,
+    gint in_line, gpointer user_data);
+
+static ConverterAlloc *
+converter_alloc_new (guint stride, guint n_lines, gpointer user_data,
+    GDestroyNotify notify)
+{
+  ConverterAlloc *alloc;
+
+  GST_DEBUG ("stride %d, n_lines %d", stride, n_lines);
+  alloc = g_slice_new0 (ConverterAlloc);
+  alloc->data = g_malloc (stride * n_lines);
+  alloc->stride = stride;
+  alloc->n_lines = n_lines;
+  alloc->idx = 0;
+  alloc->user_data = user_data;
+  alloc->notify = notify;
+
+  return alloc;
+}
+
+static void
+converter_alloc_free (ConverterAlloc * alloc)
+{
+  if (alloc->notify)
+    alloc->notify (alloc->user_data);
+  g_free (alloc->data);
+  g_slice_free (ConverterAlloc, alloc);
+}
+
+static void
+setup_border_alloc (GstVideoConverter * convert, ConverterAlloc * alloc)
+{
+  gint i;
+
+  if (convert->borderline) {
+    for (i = 0; i < alloc->n_lines; i++)
+      memcpy (&alloc->data[i * alloc->stride], convert->borderline,
+          alloc->stride);
+  }
+}
+
+static gpointer
+get_temp_line (GstLineCache * cache, gint idx, gpointer user_data)
+{
+  ConverterAlloc *alloc = user_data;
+  gpointer tmpline;
+
+  GST_DEBUG ("get temp line %d (%p %d)", idx, alloc, alloc->idx);
+  tmpline = &alloc->data[alloc->stride * alloc->idx];
+  alloc->idx = (alloc->idx + 1) % alloc->n_lines;
+
+  return tmpline;
+}
+
+static gpointer
+get_border_temp_line (GstLineCache * cache, gint idx, gpointer user_data)
+{
+  ConverterAlloc *alloc = user_data;
+  GstVideoConverter *convert = alloc->user_data;
+  gpointer tmpline;
+
+  GST_DEBUG ("get temp line %d (%p %d)", idx, alloc, alloc->idx);
+  tmpline = &alloc->data[alloc->stride * alloc->idx] +
+      (convert->out_x * convert->pack_pstride);
+  alloc->idx = (alloc->idx + 1) % alloc->n_lines;
+
+  return tmpline;
+}
+
+static gint
+get_opt_int (GstVideoConverter * convert, const gchar * opt, gint def)
+{
+  gint res;
+  if (!gst_structure_get_int (convert->config, opt, &res))
+    res = def;
+  return res;
+}
+
+static guint
+get_opt_uint (GstVideoConverter * convert, const gchar * opt, guint def)
+{
+  guint res;
+  if (!gst_structure_get_uint (convert->config, opt, &res))
+    res = def;
+  return res;
+}
+
+static gdouble
+get_opt_double (GstVideoConverter * convert, const gchar * opt, gdouble def)
+{
+  gdouble res;
+  if (!gst_structure_get_double (convert->config, opt, &res))
+    res = def;
+  return res;
+}
+
+static gboolean
+get_opt_bool (GstVideoConverter * convert, const gchar * opt, gboolean def)
+{
+  gboolean res;
+  if (!gst_structure_get_boolean (convert->config, opt, &res))
+    res = def;
+  return res;
+}
+
+static gint
+get_opt_enum (GstVideoConverter * convert, const gchar * opt, GType type,
+    gint def)
+{
+  gint res;
+  if (!gst_structure_get_enum (convert->config, opt, type, &res))
+    res = def;
+  return res;
+}
+
+static const gchar *
+get_opt_str (GstVideoConverter * convert, const gchar * opt, const gchar * def)
+{
+  const gchar *res;
+  if (!(res = gst_structure_get_string (convert->config, opt)))
+    res = def;
+  return res;
+}
+
+#define DEFAULT_OPT_FILL_BORDER TRUE
+#define DEFAULT_OPT_ALPHA_VALUE 1.0
+/* options copy, set, mult */
+#define DEFAULT_OPT_ALPHA_MODE "copy"
+#define DEFAULT_OPT_BORDER_ARGB 0xff000000
+/* options full, input-only, output-only, none */
+#define DEFAULT_OPT_MATRIX_MODE "full"
+/* none, remap */
+#define DEFAULT_OPT_GAMMA_MODE "none"
+/* none, merge-only, fast */
+#define DEFAULT_OPT_PRIMARIES_MODE "none"
+/* options full, upsample-only, downsample-only, none */
+#define DEFAULT_OPT_CHROMA_MODE "full"
+#define DEFAULT_OPT_RESAMPLER_METHOD GST_VIDEO_RESAMPLER_METHOD_CUBIC
+#define DEFAULT_OPT_CHROMA_RESAMPLER_METHOD GST_VIDEO_RESAMPLER_METHOD_LINEAR
+#define DEFAULT_OPT_RESAMPLER_TAPS 0
+#define DEFAULT_OPT_DITHER_METHOD GST_VIDEO_DITHER_BAYER
+#define DEFAULT_OPT_DITHER_QUANTIZATION 1
+
+#define GET_OPT_FILL_BORDER(c) get_opt_bool(c, \
+    GST_VIDEO_CONVERTER_OPT_FILL_BORDER, DEFAULT_OPT_FILL_BORDER)
+#define GET_OPT_ALPHA_VALUE(c) get_opt_double(c, \
+    GST_VIDEO_CONVERTER_OPT_ALPHA_VALUE, DEFAULT_OPT_ALPHA_VALUE)
+#define GET_OPT_ALPHA_MODE(c) get_opt_str(c, \
+    GST_VIDEO_CONVERTER_OPT_ALPHA_MODE, DEFAULT_OPT_ALPHA_MODE)
+#define GET_OPT_BORDER_ARGB(c) get_opt_uint(c, \
+    GST_VIDEO_CONVERTER_OPT_BORDER_ARGB, DEFAULT_OPT_BORDER_ARGB)
+#define GET_OPT_MATRIX_MODE(c) get_opt_str(c, \
+    GST_VIDEO_CONVERTER_OPT_MATRIX_MODE, DEFAULT_OPT_MATRIX_MODE)
+#define GET_OPT_GAMMA_MODE(c) get_opt_str(c, \
+    GST_VIDEO_CONVERTER_OPT_GAMMA_MODE, DEFAULT_OPT_GAMMA_MODE)
+#define GET_OPT_PRIMARIES_MODE(c) get_opt_str(c, \
+    GST_VIDEO_CONVERTER_OPT_PRIMARIES_MODE, DEFAULT_OPT_PRIMARIES_MODE)
+#define GET_OPT_CHROMA_MODE(c) get_opt_str(c, \
+    GST_VIDEO_CONVERTER_OPT_CHROMA_MODE, DEFAULT_OPT_CHROMA_MODE)
+#define GET_OPT_RESAMPLER_METHOD(c) get_opt_enum(c, \
+    GST_VIDEO_CONVERTER_OPT_RESAMPLER_METHOD, GST_TYPE_VIDEO_RESAMPLER_METHOD, \
+    DEFAULT_OPT_RESAMPLER_METHOD)
+#define GET_OPT_CHROMA_RESAMPLER_METHOD(c) get_opt_enum(c, \
+    GST_VIDEO_CONVERTER_OPT_CHROMA_RESAMPLER_METHOD, GST_TYPE_VIDEO_RESAMPLER_METHOD, \
+    DEFAULT_OPT_CHROMA_RESAMPLER_METHOD)
+#define GET_OPT_RESAMPLER_TAPS(c) get_opt_uint(c, \
+    GST_VIDEO_CONVERTER_OPT_RESAMPLER_TAPS, DEFAULT_OPT_RESAMPLER_TAPS)
+#define GET_OPT_DITHER_METHOD(c) get_opt_enum(c, \
+    GST_VIDEO_CONVERTER_OPT_DITHER_METHOD, GST_TYPE_VIDEO_DITHER_METHOD, \
+    DEFAULT_OPT_DITHER_METHOD)
+#define GET_OPT_DITHER_QUANTIZATION(c) get_opt_uint(c, \
+    GST_VIDEO_CONVERTER_OPT_DITHER_QUANTIZATION, DEFAULT_OPT_DITHER_QUANTIZATION)
+
+#define CHECK_ALPHA_COPY(c) (!g_strcmp0(GET_OPT_ALPHA_MODE(c), "copy"))
+#define CHECK_ALPHA_SET(c) (!g_strcmp0(GET_OPT_ALPHA_MODE(c), "set"))
+#define CHECK_ALPHA_MULT(c) (!g_strcmp0(GET_OPT_ALPHA_MODE(c), "mult"))
+
+#define CHECK_MATRIX_FULL(c) (!g_strcmp0(GET_OPT_MATRIX_MODE(c), "full"))
+#define CHECK_MATRIX_INPUT(c) (!g_strcmp0(GET_OPT_MATRIX_MODE(c), "input-only"))
+#define CHECK_MATRIX_OUTPUT(c) (!g_strcmp0(GET_OPT_MATRIX_MODE(c), "output-only"))
+#define CHECK_MATRIX_NONE(c) (!g_strcmp0(GET_OPT_MATRIX_MODE(c), "none"))
+
+#define CHECK_GAMMA_NONE(c) (!g_strcmp0(GET_OPT_GAMMA_MODE(c), "none"))
+#define CHECK_GAMMA_REMAP(c) (!g_strcmp0(GET_OPT_GAMMA_MODE(c), "remap"))
+
+#define CHECK_PRIMARIES_NONE(c) (!g_strcmp0(GET_OPT_PRIMARIES_MODE(c), "none"))
+#define CHECK_PRIMARIES_MERGE(c) (!g_strcmp0(GET_OPT_PRIMARIES_MODE(c), "merge-only"))
+#define CHECK_PRIMARIES_FAST(c) (!g_strcmp0(GET_OPT_PRIMARIES_MODE(c), "fast"))
+
+#define CHECK_CHROMA_FULL(c) (!g_strcmp0(GET_OPT_CHROMA_MODE(c), "full"))
+#define CHECK_CHROMA_UPSAMPLE(c) (!g_strcmp0(GET_OPT_CHROMA_MODE(c), "upsample-only"))
+#define CHECK_CHROMA_DOWNSAMPLE(c) (!g_strcmp0(GET_OPT_CHROMA_MODE(c), "downsample-only"))
+#define CHECK_CHROMA_NONE(c) (!g_strcmp0(GET_OPT_CHROMA_MODE(c), "none"))
+
+static GstLineCache *
+chain_unpack_line (GstVideoConverter * convert)
+{
+  GstLineCache *prev;
+  GstVideoInfo *info;
+
+  info = &convert->in_info;
+
+  convert->current_format = convert->unpack_format;
+  convert->current_bits = convert->unpack_bits;
+  convert->current_pstride = convert->current_bits >> 1;
+
+  convert->unpack_pstride = convert->current_pstride;
+  convert->identity_unpack = (convert->current_format == info->finfo->format);
+
+  GST_DEBUG ("chain unpack line format %s, pstride %d, identity_unpack %d",
+      gst_video_format_to_string (convert->current_format),
+      convert->current_pstride, convert->identity_unpack);
+
+  prev = convert->unpack_lines = gst_line_cache_new (NULL);
+  prev->write_input = FALSE;
+  prev->pass_alloc = FALSE;
+  prev->n_lines = 1;
+  prev->stride = convert->current_pstride * convert->current_width;
+  gst_line_cache_set_need_line_func (convert->unpack_lines,
+      do_unpack_lines, convert, NULL);
+
+  return convert->unpack_lines;
+}
+
+static GstLineCache *
+chain_upsample (GstVideoConverter * convert, GstLineCache * prev)
+{
+  video_converter_compute_resample (convert);
+
+  if (convert->upsample_p || convert->upsample_i) {
+    GST_DEBUG ("chain upsample");
+    prev = convert->upsample_lines = gst_line_cache_new (prev);
+    prev->write_input = TRUE;
+    prev->pass_alloc = TRUE;
+    prev->n_lines = 4;
+    prev->stride = convert->current_pstride * convert->current_width;
+    gst_line_cache_set_need_line_func (convert->upsample_lines,
+        do_upsample_lines, convert, NULL);
+  }
+  return prev;
+}
+
+static void
+color_matrix_set_identity (MatrixData * m)
+{
+  int i, j;
+
+  for (i = 0; i < 4; i++) {
+    for (j = 0; j < 4; j++) {
+      m->dm[i][j] = (i == j);
+    }
+  }
+}
+
+static void
+color_matrix_copy (MatrixData * d, const MatrixData * s)
+{
+  gint i, j;
+
+  for (i = 0; i < 4; i++)
+    for (j = 0; j < 4; j++)
+      d->dm[i][j] = s->dm[i][j];
+}
+
+/* Perform 4x4 matrix multiplication:
+ *  - @dst@ = @a@ * @b@
+ *  - @dst@ may be a pointer to @a@ andor @b@
+ */
+static void
+color_matrix_multiply (MatrixData * dst, MatrixData * a, MatrixData * b)
+{
+  MatrixData tmp;
+  int i, j, k;
+
+  for (i = 0; i < 4; i++) {
+    for (j = 0; j < 4; j++) {
+      double x = 0;
+      for (k = 0; k < 4; k++) {
+        x += a->dm[i][k] * b->dm[k][j];
+      }
+      tmp.dm[i][j] = x;
+    }
+  }
+  color_matrix_copy (dst, &tmp);
+}
+
+static void
+color_matrix_invert (MatrixData * d, MatrixData * s)
+{
+  MatrixData tmp;
+  int i, j;
+  double det;
+
+  color_matrix_set_identity (&tmp);
+  for (j = 0; j < 3; j++) {
+    for (i = 0; i < 3; i++) {
+      tmp.dm[j][i] =
+          s->dm[(i + 1) % 3][(j + 1) % 3] * s->dm[(i + 2) % 3][(j + 2) % 3] -
+          s->dm[(i + 1) % 3][(j + 2) % 3] * s->dm[(i + 2) % 3][(j + 1) % 3];
+    }
+  }
+  det =
+      tmp.dm[0][0] * s->dm[0][0] + tmp.dm[0][1] * s->dm[1][0] +
+      tmp.dm[0][2] * s->dm[2][0];
+  for (j = 0; j < 3; j++) {
+    for (i = 0; i < 3; i++) {
+      tmp.dm[i][j] /= det;
+    }
+  }
+  color_matrix_copy (d, &tmp);
+}
+
+static void
+color_matrix_offset_components (MatrixData * m, double a1, double a2, double a3)
+{
+  MatrixData a;
+
+  color_matrix_set_identity (&a);
+  a.dm[0][3] = a1;
+  a.dm[1][3] = a2;
+  a.dm[2][3] = a3;
+  color_matrix_multiply (m, &a, m);
+}
+
+static void
+color_matrix_scale_components (MatrixData * m, double a1, double a2, double a3)
+{
+  MatrixData a;
+
+  color_matrix_set_identity (&a);
+  a.dm[0][0] = a1;
+  a.dm[1][1] = a2;
+  a.dm[2][2] = a3;
+  color_matrix_multiply (m, &a, m);
+}
+
+static void
+color_matrix_debug (const MatrixData * s)
+{
+  GST_DEBUG ("[%f %f %f %f]", s->dm[0][0], s->dm[0][1], s->dm[0][2],
+      s->dm[0][3]);
+  GST_DEBUG ("[%f %f %f %f]", s->dm[1][0], s->dm[1][1], s->dm[1][2],
+      s->dm[1][3]);
+  GST_DEBUG ("[%f %f %f %f]", s->dm[2][0], s->dm[2][1], s->dm[2][2],
+      s->dm[2][3]);
+  GST_DEBUG ("[%f %f %f %f]", s->dm[3][0], s->dm[3][1], s->dm[3][2],
+      s->dm[3][3]);
+}
+
+static void
+color_matrix_convert (MatrixData * s)
+{
+  gint i, j;
+
+  for (i = 0; i < 4; i++)
+    for (j = 0; j < 4; j++)
+      s->im[i][j] = rint (s->dm[i][j]);
+
+  GST_DEBUG ("[%6d %6d %6d %6d]", s->im[0][0], s->im[0][1], s->im[0][2],
+      s->im[0][3]);
+  GST_DEBUG ("[%6d %6d %6d %6d]", s->im[1][0], s->im[1][1], s->im[1][2],
+      s->im[1][3]);
+  GST_DEBUG ("[%6d %6d %6d %6d]", s->im[2][0], s->im[2][1], s->im[2][2],
+      s->im[2][3]);
+  GST_DEBUG ("[%6d %6d %6d %6d]", s->im[3][0], s->im[3][1], s->im[3][2],
+      s->im[3][3]);
+}
+
+static void
+color_matrix_YCbCr_to_RGB (MatrixData * m, double Kr, double Kb)
+{
+  double Kg = 1.0 - Kr - Kb;
+  MatrixData k = {
+    {
+          {1., 0., 2 * (1 - Kr), 0.},
+          {1., -2 * Kb * (1 - Kb) / Kg, -2 * Kr * (1 - Kr) / Kg, 0.},
+          {1., 2 * (1 - Kb), 0., 0.},
+          {0., 0., 0., 1.},
+        }
+  };
+
+  color_matrix_multiply (m, &k, m);
+}
+
+static void
+color_matrix_RGB_to_YCbCr (MatrixData * m, double Kr, double Kb)
+{
+  double Kg = 1.0 - Kr - Kb;
+  MatrixData k;
+  double x;
+
+  k.dm[0][0] = Kr;
+  k.dm[0][1] = Kg;
+  k.dm[0][2] = Kb;
+  k.dm[0][3] = 0;
+
+  x = 1 / (2 * (1 - Kb));
+  k.dm[1][0] = -x * Kr;
+  k.dm[1][1] = -x * Kg;
+  k.dm[1][2] = x * (1 - Kb);
+  k.dm[1][3] = 0;
+
+  x = 1 / (2 * (1 - Kr));
+  k.dm[2][0] = x * (1 - Kr);
+  k.dm[2][1] = -x * Kg;
+  k.dm[2][2] = -x * Kb;
+  k.dm[2][3] = 0;
+
+  k.dm[3][0] = 0;
+  k.dm[3][1] = 0;
+  k.dm[3][2] = 0;
+  k.dm[3][3] = 1;
+
+  color_matrix_multiply (m, &k, m);
+}
+
+static void
+color_matrix_RGB_to_XYZ (MatrixData * dst, double Rx, double Ry, double Gx,
+    double Gy, double Bx, double By, double Wx, double Wy)
+{
+  MatrixData m, im;
+  double sx, sy, sz;
+  double wx, wy, wz;
+
+  color_matrix_set_identity (&m);
+
+  m.dm[0][0] = Rx;
+  m.dm[1][0] = Ry;
+  m.dm[2][0] = (1.0 - Rx - Ry);
+  m.dm[0][1] = Gx;
+  m.dm[1][1] = Gy;
+  m.dm[2][1] = (1.0 - Gx - Gy);
+  m.dm[0][2] = Bx;
+  m.dm[1][2] = By;
+  m.dm[2][2] = (1.0 - Bx - By);
+
+  color_matrix_invert (&im, &m);
+
+  wx = Wx / Wy;
+  wy = 1.0;
+  wz = (1.0 - Wx - Wy) / Wy;
+
+  sx = im.dm[0][0] * wx + im.dm[0][1] * wy + im.dm[0][2] * wz;
+  sy = im.dm[1][0] * wx + im.dm[1][1] * wy + im.dm[1][2] * wz;
+  sz = im.dm[2][0] * wx + im.dm[2][1] * wy + im.dm[2][2] * wz;
+
+  m.dm[0][0] *= sx;
+  m.dm[1][0] *= sx;
+  m.dm[2][0] *= sx;
+  m.dm[0][1] *= sy;
+  m.dm[1][1] *= sy;
+  m.dm[2][1] *= sy;
+  m.dm[0][2] *= sz;
+  m.dm[1][2] *= sz;
+  m.dm[2][2] *= sz;
+
+  color_matrix_copy (dst, &m);
+}
+
+static void
+videoconvert_convert_init_tables (MatrixData * data)
+{
+  gint i, j;
+
+  data->t_r = g_new (gint64, 256);
+  data->t_g = g_new (gint64, 256);
+  data->t_b = g_new (gint64, 256);
+
+  for (i = 0; i < 256; i++) {
+    gint64 r = 0, g = 0, b = 0;
+
+    for (j = 0; j < 3; j++) {
+      r = (r << 16) + data->im[j][0] * i;
+      g = (g << 16) + data->im[j][1] * i;
+      b = (b << 16) + data->im[j][2] * i;
+    }
+    data->t_r[i] = r;
+    data->t_g[i] = g;
+    data->t_b[i] = b;
+  }
+  data->t_c = ((gint64) data->im[0][3] << 32)
+      + ((gint64) data->im[1][3] << 16)
+      + ((gint64) data->im[2][3] << 0);
+}
+
+void
+_custom_video_orc_matrix8 (guint8 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, orc_int64 p1, orc_int64 p2, orc_int64 p3,
+    orc_int64 p4, int n)
+{
+  gint i;
+  gint r, g, b;
+  gint y, u, v;
+  gint a00, a01, a02, a03;
+  gint a10, a11, a12, a13;
+  gint a20, a21, a22, a23;
+
+  a00 = (gint16) (p1 >> 16);
+  a01 = (gint16) (p2 >> 16);
+  a02 = (gint16) (p3 >> 16);
+  a03 = (gint16) (p4 >> 16);
+  a10 = (gint16) (p1 >> 32);
+  a11 = (gint16) (p2 >> 32);
+  a12 = (gint16) (p3 >> 32);
+  a13 = (gint16) (p4 >> 32);
+  a20 = (gint16) (p1 >> 48);
+  a21 = (gint16) (p2 >> 48);
+  a22 = (gint16) (p3 >> 48);
+  a23 = (gint16) (p4 >> 48);
+
+  for (i = 0; i < n; i++) {
+    r = s1[i * 4 + 1];
+    g = s1[i * 4 + 2];
+    b = s1[i * 4 + 3];
+
+    y = ((a00 * r + a01 * g + a02 * b) >> SCALE) + a03;
+    u = ((a10 * r + a11 * g + a12 * b) >> SCALE) + a13;
+    v = ((a20 * r + a21 * g + a22 * b) >> SCALE) + a23;
+
+    d1[i * 4 + 1] = CLAMP (y, 0, 255);
+    d1[i * 4 + 2] = CLAMP (u, 0, 255);
+    d1[i * 4 + 3] = CLAMP (v, 0, 255);
+  }
+}
+
+static void
+video_converter_matrix8 (MatrixData * data, gpointer pixels)
+{
+  video_orc_matrix8 (pixels, pixels, data->orc_p1, data->orc_p2,
+      data->orc_p3, data->orc_p4, data->width);
+}
+
+static void
+video_converter_matrix8_table (MatrixData * data, gpointer pixels)
+{
+  gint i, width = data->width * 4;
+  guint8 r, g, b;
+  gint64 c = data->t_c;
+  guint8 *p = pixels;
+  gint64 x;
+
+  for (i = 0; i < width; i += 4) {
+    r = p[i + 1];
+    g = p[i + 2];
+    b = p[i + 3];
+
+    x = data->t_r[r] + data->t_g[g] + data->t_b[b] + c;
+
+    p[i + 1] = x >> (32 + SCALE);
+    p[i + 2] = x >> (16 + SCALE);
+    p[i + 3] = x >> (0 + SCALE);
+  }
+}
+
+static void
+video_converter_matrix8_AYUV_ARGB (MatrixData * data, gpointer pixels)
+{
+  video_orc_convert_AYUV_ARGB (pixels, 0, pixels, 0,
+      data->im[0][0], data->im[0][2],
+      data->im[2][1], data->im[1][1], data->im[1][2], data->width, 1);
+}
+
+static gboolean
+is_ayuv_to_rgb_matrix (MatrixData * data)
+{
+  if (data->im[0][0] != data->im[1][0] || data->im[1][0] != data->im[2][0])
+    return FALSE;
+
+  if (data->im[0][1] != 0 || data->im[2][2] != 0)
+    return FALSE;
+
+  return TRUE;
+}
+
+static gboolean
+is_identity_matrix (MatrixData * data)
+{
+  gint i, j;
+  gint c = data->im[0][0];
+
+  /* not really checking identity because of rounding errors but given
+   * the conversions we do we just check for anything that looks like:
+   *
+   *  c 0 0 0
+   *  0 c 0 0
+   *  0 0 c 0
+   *  0 0 0 1
+   */
+  for (i = 0; i < 4; i++) {
+    for (j = 0; j < 4; j++) {
+      if (i == j) {
+        if (i == 3 && data->im[i][j] != 1)
+          return FALSE;
+        else if (data->im[i][j] != c)
+          return FALSE;
+      } else if (data->im[i][j] != 0)
+        return FALSE;
+    }
+  }
+  return TRUE;
+}
+
+static gboolean
+is_no_clip_matrix (MatrixData * data)
+{
+  gint i;
+  static const guint8 test[8][3] = {
+    {0, 0, 0},
+    {0, 0, 255},
+    {0, 255, 0},
+    {0, 255, 255},
+    {255, 0, 0},
+    {255, 0, 255},
+    {255, 255, 0},
+    {255, 255, 255}
+  };
+
+  for (i = 0; i < 8; i++) {
+    gint r, g, b;
+    gint y, u, v;
+
+    r = test[i][0];
+    g = test[i][1];
+    b = test[i][2];
+
+    y = (data->im[0][0] * r + data->im[0][1] * g +
+        data->im[0][2] * b + data->im[0][3]) >> SCALE;
+    u = (data->im[1][0] * r + data->im[1][1] * g +
+        data->im[1][2] * b + data->im[1][3]) >> SCALE;
+    v = (data->im[2][0] * r + data->im[2][1] * g +
+        data->im[2][2] * b + data->im[2][3]) >> SCALE;
+
+    if (y != CLAMP (y, 0, 255) || u != CLAMP (u, 0, 255)
+        || v != CLAMP (v, 0, 255))
+      return FALSE;
+  }
+  return TRUE;
+}
+
+static void
+video_converter_matrix16 (MatrixData * data, gpointer pixels)
+{
+  int i;
+  int r, g, b;
+  int y, u, v;
+  guint16 *p = pixels;
+  gint width = data->width;
+
+  for (i = 0; i < width; i++) {
+    r = p[i * 4 + 1];
+    g = p[i * 4 + 2];
+    b = p[i * 4 + 3];
+
+    y = (data->im[0][0] * r + data->im[0][1] * g +
+        data->im[0][2] * b + data->im[0][3]) >> SCALE;
+    u = (data->im[1][0] * r + data->im[1][1] * g +
+        data->im[1][2] * b + data->im[1][3]) >> SCALE;
+    v = (data->im[2][0] * r + data->im[2][1] * g +
+        data->im[2][2] * b + data->im[2][3]) >> SCALE;
+
+    p[i * 4 + 1] = CLAMP (y, 0, 65535);
+    p[i * 4 + 2] = CLAMP (u, 0, 65535);
+    p[i * 4 + 3] = CLAMP (v, 0, 65535);
+  }
+}
+
+
+static void
+prepare_matrix (GstVideoConverter * convert, MatrixData * data)
+{
+  if (is_identity_matrix (data))
+    return;
+
+  color_matrix_scale_components (data, SCALE_F, SCALE_F, SCALE_F);
+  color_matrix_convert (data);
+
+  data->width = convert->current_width;
+
+  if (convert->current_bits == 8) {
+    if (!convert->unpack_rgb && convert->pack_rgb
+        && is_ayuv_to_rgb_matrix (data)) {
+      GST_DEBUG ("use fast AYUV -> RGB matrix");
+      data->matrix_func = video_converter_matrix8_AYUV_ARGB;
+    } else if (is_no_clip_matrix (data)) {
+      GST_DEBUG ("use 8bit table");
+      data->matrix_func = video_converter_matrix8_table;
+      videoconvert_convert_init_tables (data);
+    } else {
+      gint a03, a13, a23;
+
+      GST_DEBUG ("use 8bit matrix");
+      data->matrix_func = video_converter_matrix8;
+
+      data->orc_p1 = (((guint64) (guint16) data->im[2][0]) << 48) |
+          (((guint64) (guint16) data->im[1][0]) << 32) |
+          (((guint64) (guint16) data->im[0][0]) << 16);
+      data->orc_p2 = (((guint64) (guint16) data->im[2][1]) << 48) |
+          (((guint64) (guint16) data->im[1][1]) << 32) |
+          (((guint64) (guint16) data->im[0][1]) << 16);
+      data->orc_p3 = (((guint64) (guint16) data->im[2][2]) << 48) |
+          (((guint64) (guint16) data->im[1][2]) << 32) |
+          (((guint64) (guint16) data->im[0][2]) << 16);
+
+      a03 = data->im[0][3] >> SCALE;
+      a13 = data->im[1][3] >> SCALE;
+      a23 = data->im[2][3] >> SCALE;
+
+      data->orc_p4 = (((guint64) (guint16) a23) << 48) |
+          (((guint64) (guint16) a13) << 32) | (((guint64) (guint16) a03) << 16);
+    }
+  } else {
+    GST_DEBUG ("use 16bit matrix");
+    data->matrix_func = video_converter_matrix16;
+  }
+}
+
+static void
+compute_matrix_to_RGB (GstVideoConverter * convert, MatrixData * data)
+{
+  GstVideoInfo *info;
+  gdouble Kr = 0, Kb = 0;
+
+  info = &convert->in_info;
+
+  {
+    const GstVideoFormatInfo *uinfo;
+    gint offset[4], scale[4];
+
+    uinfo = gst_video_format_get_info (convert->unpack_format);
+
+    /* bring color components to [0..1.0] range */
+    gst_video_color_range_offsets (info->colorimetry.range, uinfo, offset,
+        scale);
+
+    color_matrix_offset_components (data, -offset[0], -offset[1], -offset[2]);
+    color_matrix_scale_components (data, 1 / ((float) scale[0]),
+        1 / ((float) scale[1]), 1 / ((float) scale[2]));
+  }
+
+  if (!convert->unpack_rgb && !CHECK_MATRIX_NONE (convert)) {
+    if (CHECK_MATRIX_OUTPUT (convert))
+      info = &convert->out_info;
+
+    /* bring components to R'G'B' space */
+    if (gst_video_color_matrix_get_Kr_Kb (info->colorimetry.matrix, &Kr, &Kb))
+      color_matrix_YCbCr_to_RGB (data, Kr, Kb);
+  }
+  color_matrix_debug (data);
+}
+
+static void
+compute_matrix_to_YUV (GstVideoConverter * convert, MatrixData * data,
+    gboolean force)
+{
+  GstVideoInfo *info;
+  gdouble Kr = 0, Kb = 0;
+
+  if (force || (!convert->pack_rgb && !CHECK_MATRIX_NONE (convert))) {
+    if (CHECK_MATRIX_INPUT (convert))
+      info = &convert->in_info;
+    else
+      info = &convert->out_info;
+
+    /* bring components to YCbCr space */
+    if (gst_video_color_matrix_get_Kr_Kb (info->colorimetry.matrix, &Kr, &Kb))
+      color_matrix_RGB_to_YCbCr (data, Kr, Kb);
+  }
+
+  info = &convert->out_info;
+
+  {
+    const GstVideoFormatInfo *uinfo;
+    gint offset[4], scale[4];
+
+    uinfo = gst_video_format_get_info (convert->pack_format);
+
+    /* bring color components to nominal range */
+    gst_video_color_range_offsets (info->colorimetry.range, uinfo, offset,
+        scale);
+
+    color_matrix_scale_components (data, (float) scale[0], (float) scale[1],
+        (float) scale[2]);
+    color_matrix_offset_components (data, offset[0], offset[1], offset[2]);
+  }
+
+  color_matrix_debug (data);
+}
+
+
+static void
+gamma_convert_u8_u16 (GammaData * data, gpointer dest, gpointer src)
+{
+  gint i;
+  guint8 *s = src;
+  guint16 *d = dest;
+  guint16 *table = data->gamma_table;
+  gint width = data->width * 4;
+
+  for (i = 0; i < width; i += 4) {
+    d[i + 0] = (s[i] << 8) | s[i];
+    d[i + 1] = table[s[i + 1]];
+    d[i + 2] = table[s[i + 2]];
+    d[i + 3] = table[s[i + 3]];
+  }
+}
+
+static void
+gamma_convert_u16_u8 (GammaData * data, gpointer dest, gpointer src)
+{
+  gint i;
+  guint16 *s = src;
+  guint8 *d = dest;
+  guint8 *table = data->gamma_table;
+  gint width = data->width * 4;
+
+  for (i = 0; i < width; i += 4) {
+    d[i + 0] = s[i] >> 8;
+    d[i + 1] = table[s[i + 1]];
+    d[i + 2] = table[s[i + 2]];
+    d[i + 3] = table[s[i + 3]];
+  }
+}
+
+static void
+gamma_convert_u16_u16 (GammaData * data, gpointer dest, gpointer src)
+{
+  gint i;
+  guint16 *s = src;
+  guint16 *d = dest;
+  guint16 *table = data->gamma_table;
+  gint width = data->width * 4;
+
+  for (i = 0; i < width; i += 4) {
+    d[i + 0] = s[i];
+    d[i + 1] = table[s[i + 1]];
+    d[i + 2] = table[s[i + 2]];
+    d[i + 3] = table[s[i + 3]];
+  }
+}
+
+static void
+setup_gamma_decode (GstVideoConverter * convert)
+{
+  GstVideoTransferFunction func;
+  guint16 *t;
+  gint i;
+
+  func = convert->in_info.colorimetry.transfer;
+
+  convert->gamma_dec.width = convert->current_width;
+  if (convert->current_bits == 8) {
+    GST_DEBUG ("gamma decode 8->16: %d", func);
+    convert->gamma_dec.gamma_func = gamma_convert_u8_u16;
+    t = convert->gamma_dec.gamma_table = g_malloc (sizeof (guint16) * 256);
+
+    for (i = 0; i < 256; i++)
+      t[i] = rint (gst_video_color_transfer_decode (func, i / 255.0) * 65535.0);
+  } else {
+    GST_DEBUG ("gamma decode 16->16: %d", func);
+    convert->gamma_dec.gamma_func = gamma_convert_u16_u16;
+    t = convert->gamma_dec.gamma_table = g_malloc (sizeof (guint16) * 65536);
+
+    for (i = 0; i < 65536; i++)
+      t[i] =
+          rint (gst_video_color_transfer_decode (func, i / 65535.0) * 65535.0);
+  }
+  convert->current_bits = 16;
+  convert->current_pstride = 8;
+  convert->current_format = GST_VIDEO_FORMAT_ARGB64;
+}
+
+static void
+setup_gamma_encode (GstVideoConverter * convert, gint target_bits)
+{
+  GstVideoTransferFunction func;
+  gint i;
+
+  func = convert->out_info.colorimetry.transfer;
+
+  convert->gamma_enc.width = convert->current_width;
+  if (target_bits == 8) {
+    guint8 *t;
+
+    GST_DEBUG ("gamma encode 16->8: %d", func);
+    convert->gamma_enc.gamma_func = gamma_convert_u16_u8;
+    t = convert->gamma_enc.gamma_table = g_malloc (sizeof (guint8) * 65536);
+
+    for (i = 0; i < 65536; i++)
+      t[i] = rint (gst_video_color_transfer_encode (func, i / 65535.0) * 255.0);
+  } else {
+    guint16 *t;
+
+    GST_DEBUG ("gamma encode 16->16: %d", func);
+    convert->gamma_enc.gamma_func = gamma_convert_u16_u16;
+    t = convert->gamma_enc.gamma_table = g_malloc (sizeof (guint16) * 65536);
+
+    for (i = 0; i < 65536; i++)
+      t[i] =
+          rint (gst_video_color_transfer_encode (func, i / 65535.0) * 65535.0);
+  }
+}
+
+static GstLineCache *
+chain_convert_to_RGB (GstVideoConverter * convert, GstLineCache * prev)
+{
+  gboolean do_gamma;
+
+  do_gamma = CHECK_GAMMA_REMAP (convert);
+
+  if (do_gamma) {
+    gint scale;
+
+    if (!convert->unpack_rgb) {
+      color_matrix_set_identity (&convert->to_RGB_matrix);
+      compute_matrix_to_RGB (convert, &convert->to_RGB_matrix);
+
+      /* matrix is in 0..1 range, scale to current bits */
+      GST_DEBUG ("chain RGB convert");
+      scale = 1 << convert->current_bits;
+      color_matrix_scale_components (&convert->to_RGB_matrix,
+          (float) scale, (float) scale, (float) scale);
+
+      prepare_matrix (convert, &convert->to_RGB_matrix);
+
+      if (convert->current_bits == 8)
+        convert->current_format = GST_VIDEO_FORMAT_ARGB;
+      else
+        convert->current_format = GST_VIDEO_FORMAT_ARGB64;
+    }
+
+    prev = convert->to_RGB_lines = gst_line_cache_new (prev);
+    prev->write_input = TRUE;
+    prev->pass_alloc = FALSE;
+    prev->n_lines = 1;
+    prev->stride = convert->current_pstride * convert->current_width;
+    gst_line_cache_set_need_line_func (convert->to_RGB_lines,
+        do_convert_to_RGB_lines, convert, NULL);
+
+    GST_DEBUG ("chain gamma decode");
+    setup_gamma_decode (convert);
+  }
+  return prev;
+}
+
+static GstLineCache *
+chain_hscale (GstVideoConverter * convert, GstLineCache * prev)
+{
+  gint method;
+  guint taps;
+
+  method = GET_OPT_RESAMPLER_METHOD (convert);
+  taps = GET_OPT_RESAMPLER_TAPS (convert);
+
+  convert->h_scaler =
+      gst_video_scaler_new (method, GST_VIDEO_SCALER_FLAG_NONE, taps,
+      convert->in_width, convert->out_width, convert->config);
+
+  gst_video_scaler_get_coeff (convert->h_scaler, 0, NULL, &taps);
+
+  GST_DEBUG ("chain hscale %d->%d, taps %d, method %d",
+      convert->in_width, convert->out_width, taps, method);
+
+  convert->current_width = convert->out_width;
+  convert->h_scale_format = convert->current_format;
+
+  prev = convert->hscale_lines = gst_line_cache_new (prev);
+  prev->write_input = FALSE;
+  prev->pass_alloc = FALSE;
+  prev->n_lines = 1;
+  prev->stride = convert->current_pstride * convert->current_width;
+  gst_line_cache_set_need_line_func (convert->hscale_lines,
+      do_hscale_lines, convert, NULL);
+
+  return prev;
+}
+
+static GstLineCache *
+chain_vscale (GstVideoConverter * convert, GstLineCache * prev)
+{
+  gint method;
+  guint taps, taps_i = 0;
+  gint backlog = 0;
+
+  method = GET_OPT_RESAMPLER_METHOD (convert);
+  taps = GET_OPT_RESAMPLER_TAPS (convert);
+
+  if (GST_VIDEO_INFO_IS_INTERLACED (&convert->in_info)) {
+    convert->v_scaler_i =
+        gst_video_scaler_new (method, GST_VIDEO_SCALER_FLAG_INTERLACED,
+        taps, convert->in_height, convert->out_height, convert->config);
+
+    gst_video_scaler_get_coeff (convert->v_scaler_i, 0, NULL, &taps_i);
+    backlog = BACKLOG;
+  }
+  convert->v_scaler_p =
+      gst_video_scaler_new (method, 0, taps, convert->in_height,
+      convert->out_height, convert->config);
+  convert->v_scale_width = convert->current_width;
+  convert->v_scale_format = convert->current_format;
+  convert->current_height = convert->out_height;
+
+  gst_video_scaler_get_coeff (convert->v_scaler_p, 0, NULL, &taps);
+
+  GST_DEBUG ("chain vscale %d->%d, taps %d, method %d, backlog %d",
+      convert->in_height, convert->out_height, taps, method, backlog);
+
+  prev->backlog = backlog;
+  prev = convert->vscale_lines = gst_line_cache_new (prev);
+  prev->pass_alloc = (taps == 1);
+  prev->write_input = FALSE;
+  prev->n_lines = MAX (taps_i, taps);
+  prev->stride = convert->current_pstride * convert->current_width;
+  gst_line_cache_set_need_line_func (convert->vscale_lines,
+      do_vscale_lines, convert, NULL);
+
+  return prev;
+}
+
+static GstLineCache *
+chain_scale (GstVideoConverter * convert, GstLineCache * prev, gboolean force)
+{
+  gint s0, s1, s2, s3;
+
+  s0 = convert->current_width * convert->current_height;
+  s3 = convert->out_width * convert->out_height;
+
+  GST_DEBUG ("in pixels %d <> out pixels %d", s0, s3);
+
+  if (s3 <= s0 || force) {
+    /* we are making the image smaller or are forced to resample */
+    s1 = convert->out_width * convert->current_height;
+    s2 = convert->current_width * convert->out_height;
+
+    GST_DEBUG ("%d <> %d", s1, s2);
+
+    if (s1 <= s2) {
+      /* h scaling first produces less pixels */
+      if (convert->current_width != convert->out_width)
+        prev = chain_hscale (convert, prev);
+      if (convert->current_height != convert->out_height)
+        prev = chain_vscale (convert, prev);
+    } else {
+      /* v scaling first produces less pixels */
+      if (convert->current_height != convert->out_height)
+        prev = chain_vscale (convert, prev);
+      if (convert->current_width != convert->out_width)
+        prev = chain_hscale (convert, prev);
+    }
+  }
+  return prev;
+}
+
+static GstLineCache *
+chain_convert (GstVideoConverter * convert, GstLineCache * prev)
+{
+  gboolean do_gamma, do_conversion, pass_alloc = FALSE;
+  gboolean same_matrix, same_primaries, same_bits;
+  MatrixData p1, p2;
+
+  same_bits = convert->unpack_bits == convert->pack_bits;
+  if (CHECK_MATRIX_NONE (convert)) {
+    same_matrix = TRUE;
+  } else {
+    same_matrix =
+        convert->in_info.colorimetry.matrix ==
+        convert->out_info.colorimetry.matrix;
+  }
+
+  if (CHECK_PRIMARIES_NONE (convert)) {
+    same_primaries = TRUE;
+  } else {
+    same_primaries =
+        convert->in_info.colorimetry.primaries ==
+        convert->out_info.colorimetry.primaries;
+  }
+
+  GST_DEBUG ("matrix %d -> %d (%d)", convert->in_info.colorimetry.matrix,
+      convert->out_info.colorimetry.matrix, same_matrix);
+  GST_DEBUG ("bits %d -> %d (%d)", convert->unpack_bits, convert->pack_bits,
+      same_bits);
+  GST_DEBUG ("primaries %d -> %d (%d)", convert->in_info.colorimetry.primaries,
+      convert->out_info.colorimetry.primaries, same_primaries);
+
+  color_matrix_set_identity (&convert->convert_matrix);
+
+  if (!same_primaries) {
+    const GstVideoColorPrimariesInfo *pi;
+
+    pi = gst_video_color_primaries_get_info (convert->in_info.colorimetry.
+        primaries);
+    color_matrix_RGB_to_XYZ (&p1, pi->Rx, pi->Ry, pi->Gx, pi->Gy, pi->Bx,
+        pi->By, pi->Wx, pi->Wy);
+    GST_DEBUG ("to XYZ matrix");
+    color_matrix_debug (&p1);
+    GST_DEBUG ("current matrix");
+    color_matrix_multiply (&convert->convert_matrix, &convert->convert_matrix,
+        &p1);
+    color_matrix_debug (&convert->convert_matrix);
+
+    pi = gst_video_color_primaries_get_info (convert->out_info.colorimetry.
+        primaries);
+    color_matrix_RGB_to_XYZ (&p2, pi->Rx, pi->Ry, pi->Gx, pi->Gy, pi->Bx,
+        pi->By, pi->Wx, pi->Wy);
+    color_matrix_invert (&p2, &p2);
+    GST_DEBUG ("to RGB matrix");
+    color_matrix_debug (&p2);
+    color_matrix_multiply (&convert->convert_matrix, &convert->convert_matrix,
+        &p2);
+    GST_DEBUG ("current matrix");
+    color_matrix_debug (&convert->convert_matrix);
+  }
+
+  do_gamma = CHECK_GAMMA_REMAP (convert);
+  if (!do_gamma) {
+
+    convert->in_bits = convert->unpack_bits;
+    convert->out_bits = convert->pack_bits;
+
+    if (!same_bits || !same_matrix || !same_primaries) {
+      /* no gamma, combine all conversions into 1 */
+      if (convert->in_bits < convert->out_bits) {
+        gint scale = 1 << (convert->out_bits - convert->in_bits);
+        color_matrix_scale_components (&convert->convert_matrix,
+            1 / (float) scale, 1 / (float) scale, 1 / (float) scale);
+      }
+      GST_DEBUG ("to RGB matrix");
+      compute_matrix_to_RGB (convert, &convert->convert_matrix);
+      GST_DEBUG ("current matrix");
+      color_matrix_debug (&convert->convert_matrix);
+
+      GST_DEBUG ("to YUV matrix");
+      compute_matrix_to_YUV (convert, &convert->convert_matrix, FALSE);
+      GST_DEBUG ("current matrix");
+      color_matrix_debug (&convert->convert_matrix);
+      if (convert->in_bits > convert->out_bits) {
+        gint scale = 1 << (convert->in_bits - convert->out_bits);
+        color_matrix_scale_components (&convert->convert_matrix,
+            (float) scale, (float) scale, (float) scale);
+      }
+      convert->current_bits = MAX (convert->in_bits, convert->out_bits);
+
+      do_conversion = TRUE;
+      if (!same_matrix || !same_primaries)
+        prepare_matrix (convert, &convert->convert_matrix);
+      if (convert->in_bits == convert->out_bits)
+        pass_alloc = TRUE;
+    } else
+      do_conversion = FALSE;
+
+    convert->current_bits = convert->pack_bits;
+    convert->current_format = convert->pack_format;
+    convert->current_pstride = convert->current_bits >> 1;
+  } else {
+    /* we did gamma, just do colorspace conversion if needed */
+    if (same_primaries) {
+      do_conversion = FALSE;
+    } else {
+      prepare_matrix (convert, &convert->convert_matrix);
+      convert->in_bits = convert->out_bits = 16;
+      pass_alloc = TRUE;
+      do_conversion = TRUE;
+    }
+  }
+
+  if (do_conversion) {
+    GST_DEBUG ("chain conversion");
+    prev = convert->convert_lines = gst_line_cache_new (prev);
+    prev->write_input = TRUE;
+    prev->pass_alloc = pass_alloc;
+    prev->n_lines = 1;
+    prev->stride = convert->current_pstride * convert->current_width;
+    gst_line_cache_set_need_line_func (convert->convert_lines,
+        do_convert_lines, convert, NULL);
+  }
+  return prev;
+}
+
+static void
+convert_set_alpha_u8 (GstVideoConverter * convert, gpointer pixels, gint width)
+{
+  guint8 *p = pixels;
+  guint8 alpha = MIN (convert->alpha_value, 255);
+  int i;
+
+  for (i = 0; i < width; i++)
+    p[i * 4] = alpha;
+}
+
+static void
+convert_set_alpha_u16 (GstVideoConverter * convert, gpointer pixels, gint width)
+{
+  guint16 *p = pixels;
+  guint16 alpha;
+  int i;
+
+  alpha = MIN (convert->alpha_value, 255);
+  alpha |= alpha << 8;
+
+  for (i = 0; i < width; i++)
+    p[i * 4] = alpha;
+}
+
+static void
+convert_mult_alpha_u8 (GstVideoConverter * convert, gpointer pixels, gint width)
+{
+  guint8 *p = pixels;
+  guint alpha = convert->alpha_value;
+  int i;
+
+  for (i = 0; i < width; i++) {
+    gint a = (p[i * 4] * alpha) / 255;
+    p[i * 4] = CLAMP (a, 0, 255);
+  }
+}
+
+static void
+convert_mult_alpha_u16 (GstVideoConverter * convert, gpointer pixels,
+    gint width)
+{
+  guint16 *p = pixels;
+  guint alpha = convert->alpha_value;
+  int i;
+
+  for (i = 0; i < width; i++) {
+    gint a = (p[i * 4] * alpha) / 255;
+    p[i * 4] = CLAMP (a, 0, 255);
+  }
+}
+
+static GstLineCache *
+chain_alpha (GstVideoConverter * convert, GstLineCache * prev)
+{
+  switch (convert->alpha_mode) {
+    case ALPHA_MODE_NONE:
+    case ALPHA_MODE_COPY:
+      return prev;
+
+    case ALPHA_MODE_SET:
+      if (convert->current_bits == 8)
+        convert->alpha_func = convert_set_alpha_u8;
+      else
+        convert->alpha_func = convert_set_alpha_u16;
+      break;
+    case ALPHA_MODE_MULT:
+      if (convert->current_bits == 8)
+        convert->alpha_func = convert_mult_alpha_u8;
+      else
+        convert->alpha_func = convert_mult_alpha_u16;
+      break;
+  }
+
+  GST_DEBUG ("chain alpha mode %d", convert->alpha_mode);
+  prev = convert->alpha_lines = gst_line_cache_new (prev);
+  prev->write_input = TRUE;
+  prev->pass_alloc = TRUE;
+  prev->n_lines = 1;
+  prev->stride = convert->current_pstride * convert->current_width;
+  gst_line_cache_set_need_line_func (convert->alpha_lines,
+      do_alpha_lines, convert, NULL);
+
+  return prev;
+}
+
+static GstLineCache *
+chain_convert_to_YUV (GstVideoConverter * convert, GstLineCache * prev)
+{
+  gboolean do_gamma;
+
+  do_gamma = CHECK_GAMMA_REMAP (convert);
+
+  if (do_gamma) {
+    gint scale;
+
+    GST_DEBUG ("chain gamma encode");
+    setup_gamma_encode (convert, convert->pack_bits);
+
+    convert->current_bits = convert->pack_bits;
+    convert->current_pstride = convert->current_bits >> 1;
+
+    if (!convert->pack_rgb) {
+      color_matrix_set_identity (&convert->to_YUV_matrix);
+      compute_matrix_to_YUV (convert, &convert->to_YUV_matrix, FALSE);
+
+      /* matrix is in 0..255 range, scale to pack bits */
+      GST_DEBUG ("chain YUV convert");
+      scale = 1 << convert->pack_bits;
+      color_matrix_scale_components (&convert->to_YUV_matrix,
+          1 / (float) scale, 1 / (float) scale, 1 / (float) scale);
+      prepare_matrix (convert, &convert->to_YUV_matrix);
+    }
+    convert->current_format = convert->pack_format;
+
+    prev = convert->to_YUV_lines = gst_line_cache_new (prev);
+    prev->write_input = FALSE;
+    prev->pass_alloc = FALSE;
+    prev->n_lines = 1;
+    prev->stride = convert->current_pstride * convert->current_width;
+    gst_line_cache_set_need_line_func (convert->to_YUV_lines,
+        do_convert_to_YUV_lines, convert, NULL);
+  }
+
+  return prev;
+}
+
+static GstLineCache *
+chain_downsample (GstVideoConverter * convert, GstLineCache * prev)
+{
+  if (convert->downsample_p || convert->downsample_i) {
+    GST_DEBUG ("chain downsample");
+    prev = convert->downsample_lines = gst_line_cache_new (prev);
+    prev->write_input = TRUE;
+    prev->pass_alloc = TRUE;
+    prev->n_lines = 4;
+    prev->stride = convert->current_pstride * convert->current_width;
+    gst_line_cache_set_need_line_func (convert->downsample_lines,
+        do_downsample_lines, convert, NULL);
+  }
+  return prev;
+}
+
+static GstLineCache *
+chain_dither (GstVideoConverter * convert, GstLineCache * prev)
+{
+  gint i;
+  gboolean do_dither = FALSE;
+  GstVideoDitherFlags flags = 0;
+  GstVideoDitherMethod method;
+  guint quant[4], target_quant;
+
+  method = GET_OPT_DITHER_METHOD (convert);
+  if (method == GST_VIDEO_DITHER_NONE)
+    return prev;
+
+  target_quant = GET_OPT_DITHER_QUANTIZATION (convert);
+  GST_DEBUG ("method %d, target-quantization %d", method, target_quant);
+
+  if (convert->pack_pal) {
+    quant[0] = 47;
+    quant[1] = 47;
+    quant[2] = 47;
+    quant[3] = 1;
+    do_dither = TRUE;
+  } else {
+    for (i = 0; i < GST_VIDEO_MAX_COMPONENTS; i++) {
+      gint depth;
+
+      depth = convert->out_info.finfo->depth[i];
+
+      if (depth == 0) {
+        quant[i] = 0;
+        continue;
+      }
+
+      if (convert->current_bits >= depth) {
+        quant[i] = 1 << (convert->current_bits - depth);
+        if (target_quant > quant[i]) {
+          flags |= GST_VIDEO_DITHER_FLAG_QUANTIZE;
+          quant[i] = target_quant;
+        }
+      } else {
+        quant[i] = 0;
+      }
+      if (quant[i] > 1)
+        do_dither = TRUE;
+    }
+  }
+
+  if (do_dither) {
+    GST_DEBUG ("chain dither");
+
+    convert->dither = gst_video_dither_new (method,
+        flags, convert->pack_format, quant, convert->current_width);
+
+    prev = convert->dither_lines = gst_line_cache_new (prev);
+    prev->write_input = TRUE;
+    prev->pass_alloc = TRUE;
+    prev->n_lines = 1;
+    prev->stride = convert->current_pstride * convert->current_width;
+    gst_line_cache_set_need_line_func (prev, do_dither_lines, convert, NULL);
+  }
+  return prev;
+}
+
+static GstLineCache *
+chain_pack (GstVideoConverter * convert, GstLineCache * prev)
+{
+  convert->pack_nlines = convert->out_info.finfo->pack_lines;
+  convert->pack_pstride = convert->current_pstride;
+  convert->identity_pack =
+      (convert->out_info.finfo->format ==
+      convert->out_info.finfo->unpack_format);
+  GST_DEBUG ("chain pack line format %s, pstride %d, identity_pack %d (%d %d)",
+      gst_video_format_to_string (convert->current_format),
+      convert->current_pstride, convert->identity_pack,
+      convert->out_info.finfo->format, convert->out_info.finfo->unpack_format);
+
+  return prev;
+}
+
+static void
+setup_allocators (GstVideoConverter * convert)
+{
+  GstLineCache *cache;
+  GstLineCacheAllocLineFunc alloc_line;
+  gboolean alloc_writable;
+  gpointer user_data;
+  GDestroyNotify notify;
+  gint width, n_lines;
+
+  width = MAX (convert->in_maxwidth, convert->out_maxwidth);
+  width += convert->out_x;
+
+  n_lines = 1;
+
+  /* start with using dest lines if we can directly write into it */
+  if (convert->identity_pack) {
+    alloc_line = get_dest_line;
+    alloc_writable = TRUE;
+    user_data = convert;
+    notify = NULL;
+  } else {
+    user_data =
+        converter_alloc_new (sizeof (guint16) * width * 4, 4 + BACKLOG, convert,
+        NULL);
+    setup_border_alloc (convert, user_data);
+    notify = (GDestroyNotify) converter_alloc_free;
+    alloc_line = get_border_temp_line;
+    /* when we add a border, we need to write */
+    alloc_writable = convert->borderline != NULL;
+  }
+
+  /* now walk backwards, we try to write into the dest lines directly
+   * and keep track if the source needs to be writable */
+  for (cache = convert->pack_lines; cache; cache = cache->prev) {
+    gst_line_cache_set_alloc_line_func (cache, alloc_line, user_data, notify);
+    cache->alloc_writable = alloc_writable;
+    n_lines = MAX (n_lines, cache->n_lines);
+
+    /* make sure only one cache frees the allocator */
+    notify = NULL;
+
+    if (!cache->pass_alloc) {
+      /* can't pass allocator, make new temp line allocator */
+      user_data =
+          converter_alloc_new (sizeof (guint16) * width * 4, n_lines + BACKLOG,
+          convert, NULL);
+      notify = (GDestroyNotify) converter_alloc_free;
+      alloc_line = get_temp_line;
+      alloc_writable = FALSE;
+      n_lines = cache->n_lines;
+    }
+    /* if someone writes to the input, we need a writable line from the
+     * previous cache */
+    if (cache->write_input)
+      alloc_writable = TRUE;
+  }
+  /* free leftover allocator */
+  if (notify)
+    notify (user_data);
+}
+
+static void
+setup_borderline (GstVideoConverter * convert)
+{
+  gint width;
+
+  width = MAX (convert->in_maxwidth, convert->out_maxwidth);
+  width += convert->out_x;
+
+  if (convert->fill_border && (convert->out_height < convert->out_maxheight ||
+          convert->out_width < convert->out_maxwidth)) {
+    guint32 border_val;
+    gint i, w_sub;
+    const GstVideoFormatInfo *out_finfo;
+    gpointer planes[GST_VIDEO_MAX_PLANES];
+    gint strides[GST_VIDEO_MAX_PLANES];
+
+    convert->borderline = g_malloc0 (sizeof (guint16) * width * 4);
+
+    out_finfo = convert->out_info.finfo;
+
+    if (GST_VIDEO_INFO_IS_YUV (&convert->out_info)) {
+      MatrixData cm;
+      gint a, r, g, b;
+      gint y, u, v;
+
+      /* Get Color matrix. */
+      color_matrix_set_identity (&cm);
+      compute_matrix_to_YUV (convert, &cm, TRUE);
+      color_matrix_convert (&cm);
+
+      border_val = GINT32_FROM_BE (convert->border_argb);
+
+      b = (0xFF000000 & border_val) >> 24;
+      g = (0x00FF0000 & border_val) >> 16;
+      r = (0x0000FF00 & border_val) >> 8;
+      a = (0x000000FF & border_val);
+
+      y = 16 + ((r * cm.im[0][0] + g * cm.im[0][1] + b * cm.im[0][2]) >> 8);
+      u = 128 + ((r * cm.im[1][0] + g * cm.im[1][1] + b * cm.im[1][2]) >> 8);
+      v = 128 + ((r * cm.im[2][0] + g * cm.im[2][1] + b * cm.im[2][2]) >> 8);
+
+      a = CLAMP (a, 0, 255);
+      y = CLAMP (y, 0, 255);
+      u = CLAMP (u, 0, 255);
+      v = CLAMP (v, 0, 255);
+
+      border_val = a | (y << 8) | (u << 16) | (v << 24);
+    } else {
+      border_val = GINT32_FROM_BE (convert->border_argb);
+    }
+    if (convert->pack_bits == 8)
+      video_orc_splat_u32 (convert->borderline, border_val, width);
+    else
+      video_orc_splat2_u64 (convert->borderline, border_val, width);
+
+    /* convert pixels */
+    for (i = 0; i < out_finfo->n_planes; i++) {
+      planes[i] = &convert->borders[i];
+      strides[i] = sizeof (guint64);
+    }
+    w_sub = 0;
+    if (out_finfo->n_planes == 1) {
+      /* for packed formats, convert based on subsampling so that we
+       * get a complete group of pixels */
+      for (i = 0; i < out_finfo->n_components; i++) {
+        w_sub = MAX (w_sub, out_finfo->w_sub[i]);
+      }
+    }
+    out_finfo->pack_func (out_finfo, GST_VIDEO_PACK_FLAG_NONE,
+        convert->borderline, 0, planes, strides,
+        GST_VIDEO_CHROMA_SITE_UNKNOWN, 0, 1 << w_sub);
+  } else {
+    convert->borderline = NULL;
+  }
+}
+
+static AlphaMode
+convert_get_alpha_mode (GstVideoConverter * convert)
+{
+  gboolean in_alpha, out_alpha;
+
+  in_alpha = GST_VIDEO_INFO_HAS_ALPHA (&convert->in_info);
+  out_alpha = GST_VIDEO_INFO_HAS_ALPHA (&convert->out_info);
+
+  /* no output alpha, do nothing */
+  if (!out_alpha)
+    return ALPHA_MODE_NONE;
+
+  if (in_alpha) {
+    /* in and out */
+    if (CHECK_ALPHA_COPY (convert))
+      return ALPHA_MODE_COPY;
+
+    if (CHECK_ALPHA_MULT (convert)) {
+      if (GET_OPT_ALPHA_VALUE (convert) == 1.0)
+        return ALPHA_MODE_COPY;
+      else
+        return ALPHA_MODE_MULT;
+    }
+  }
+  /* nothing special, this is what unpack etc does automatically */
+  if (GET_OPT_ALPHA_VALUE (convert) == 1.0)
+    return ALPHA_MODE_NONE;
+
+  /* everything else becomes SET */
+  return ALPHA_MODE_SET;
+}
+
+/**
+ * gst_video_converter_new:
+ * @in_info: a #GstVideoInfo
+ * @out_info: a #GstVideoInfo
+ * @config: (transfer full): a #GstStructure with configuration options
+ *
+ * Create a new converter object to convert between @in_info and @out_info
+ * with @config.
+ *
+ * Returns: a #GstVideoConverter or %NULL if conversion is not possible.
+ *
+ * Since: 1.6
+ */
+GstVideoConverter *
+gst_video_converter_new (GstVideoInfo * in_info, GstVideoInfo * out_info,
+    GstStructure * config)
+{
+  GstVideoConverter *convert;
+  GstLineCache *prev;
+  const GstVideoFormatInfo *fin, *fout, *finfo;
+  gdouble alpha_value;
+
+  g_return_val_if_fail (in_info != NULL, NULL);
+  g_return_val_if_fail (out_info != NULL, NULL);
+  /* we won't ever do framerate conversion */
+  g_return_val_if_fail (in_info->fps_n == out_info->fps_n, NULL);
+  g_return_val_if_fail (in_info->fps_d == out_info->fps_d, NULL);
+  /* we won't ever do deinterlace */
+  g_return_val_if_fail (in_info->interlace_mode == out_info->interlace_mode,
+      NULL);
+
+  convert = g_slice_new0 (GstVideoConverter);
+
+  fin = in_info->finfo;
+  fout = out_info->finfo;
+
+  convert->in_info = *in_info;
+  convert->out_info = *out_info;
+
+  /* default config */
+  convert->config = gst_structure_new_empty ("GstVideoConverter");
+  if (config)
+    gst_video_converter_set_config (convert, config);
+
+  convert->in_maxwidth = GST_VIDEO_INFO_WIDTH (in_info);
+  convert->in_maxheight = GST_VIDEO_INFO_HEIGHT (in_info);
+  convert->out_maxwidth = GST_VIDEO_INFO_WIDTH (out_info);
+  convert->out_maxheight = GST_VIDEO_INFO_HEIGHT (out_info);
+
+  convert->in_x = get_opt_int (convert, GST_VIDEO_CONVERTER_OPT_SRC_X, 0);
+  convert->in_y = get_opt_int (convert, GST_VIDEO_CONVERTER_OPT_SRC_Y, 0);
+  convert->in_x &= ~((1 << fin->w_sub[1]) - 1);
+  convert->in_y &= ~((1 << fin->h_sub[1]) - 1);
+
+  convert->in_width = get_opt_int (convert,
+      GST_VIDEO_CONVERTER_OPT_SRC_WIDTH, convert->in_maxwidth - convert->in_x);
+  convert->in_height = get_opt_int (convert,
+      GST_VIDEO_CONVERTER_OPT_SRC_HEIGHT,
+      convert->in_maxheight - convert->in_y);
+
+  convert->in_width =
+      MIN (convert->in_width, convert->in_maxwidth - convert->in_x);
+  convert->in_height =
+      MIN (convert->in_height, convert->in_maxheight - convert->in_y);
+
+  convert->out_x = get_opt_int (convert, GST_VIDEO_CONVERTER_OPT_DEST_X, 0);
+  convert->out_y = get_opt_int (convert, GST_VIDEO_CONVERTER_OPT_DEST_Y, 0);
+  convert->out_x &= ~((1 << fout->w_sub[1]) - 1);
+  convert->out_y &= ~((1 << fout->h_sub[1]) - 1);
+
+  convert->out_width = get_opt_int (convert,
+      GST_VIDEO_CONVERTER_OPT_DEST_WIDTH,
+      convert->out_maxwidth - convert->out_x);
+  convert->out_height =
+      get_opt_int (convert, GST_VIDEO_CONVERTER_OPT_DEST_HEIGHT,
+      convert->out_maxheight - convert->out_y);
+
+  convert->out_width =
+      MIN (convert->out_width, convert->out_maxwidth - convert->out_x);
+  convert->out_height =
+      MIN (convert->out_height, convert->out_maxheight - convert->out_y);
+
+  convert->fill_border = GET_OPT_FILL_BORDER (convert);
+  convert->border_argb = get_opt_uint (convert,
+      GST_VIDEO_CONVERTER_OPT_BORDER_ARGB, DEFAULT_OPT_BORDER_ARGB);
+
+  alpha_value = GET_OPT_ALPHA_VALUE (convert);
+  convert->alpha_value = 255 * alpha_value;
+  convert->alpha_mode = convert_get_alpha_mode (convert);
+
+  convert->unpack_format = in_info->finfo->unpack_format;
+  finfo = gst_video_format_get_info (convert->unpack_format);
+  convert->unpack_bits = GST_VIDEO_FORMAT_INFO_DEPTH (finfo, 0);
+  convert->unpack_rgb = GST_VIDEO_FORMAT_INFO_IS_RGB (finfo);
+
+  convert->pack_format = out_info->finfo->unpack_format;
+  finfo = gst_video_format_get_info (convert->pack_format);
+  convert->pack_bits = GST_VIDEO_FORMAT_INFO_DEPTH (finfo, 0);
+  convert->pack_rgb = GST_VIDEO_FORMAT_INFO_IS_RGB (finfo);
+  convert->pack_pal =
+      gst_video_format_get_palette (GST_VIDEO_INFO_FORMAT (out_info),
+      &convert->pack_palsize);
+
+  if (video_converter_lookup_fastpath (convert))
+    goto done;
+
+  if (in_info->finfo->unpack_func == NULL)
+    goto no_unpack_func;
+
+  if (out_info->finfo->pack_func == NULL)
+    goto no_pack_func;
+
+  convert->convert = video_converter_generic;
+
+  convert->current_format = GST_VIDEO_INFO_FORMAT (in_info);
+  convert->current_width = convert->in_width;
+  convert->current_height = convert->in_height;
+
+  /* unpack */
+  prev = chain_unpack_line (convert);
+  /* upsample chroma */
+  prev = chain_upsample (convert, prev);
+  /* convert to gamma decoded RGB */
+  prev = chain_convert_to_RGB (convert, prev);
+  /* do all downscaling */
+  prev = chain_scale (convert, prev, FALSE);
+  /* do conversion between color spaces */
+  prev = chain_convert (convert, prev);
+  /* do alpha channels */
+  prev = chain_alpha (convert, prev);
+  /* do all remaining (up)scaling */
+  prev = chain_scale (convert, prev, TRUE);
+  /* convert to gamma encoded Y'Cb'Cr' */
+  prev = chain_convert_to_YUV (convert, prev);
+  /* downsample chroma */
+  prev = chain_downsample (convert, prev);
+  /* dither */
+  prev = chain_dither (convert, prev);
+  /* pack into final format */
+  convert->pack_lines = chain_pack (convert, prev);
+
+  setup_borderline (convert);
+  /* now figure out allocators */
+  setup_allocators (convert);
+
+done:
+  return convert;
+
+  /* ERRORS */
+no_unpack_func:
+  {
+    GST_ERROR ("no unpack_func for format %s",
+        gst_video_format_to_string (GST_VIDEO_INFO_FORMAT (in_info)));
+    gst_video_converter_free (convert);
+    return NULL;
+  }
+no_pack_func:
+  {
+    GST_ERROR ("no pack_func for format %s",
+        gst_video_format_to_string (GST_VIDEO_INFO_FORMAT (out_info)));
+    gst_video_converter_free (convert);
+    return NULL;
+  }
+}
+
+static void
+clear_matrix_data (MatrixData * data)
+{
+  g_free (data->t_r);
+  g_free (data->t_g);
+  g_free (data->t_b);
+}
+
+/**
+ * gst_video_converter_free:
+ * @convert: a #GstVideoConverter
+ *
+ * Free @convert
+ *
+ * Since: 1.6
+ */
+void
+gst_video_converter_free (GstVideoConverter * convert)
+{
+  gint i;
+
+  g_return_if_fail (convert != NULL);
+
+  if (convert->upsample_p)
+    gst_video_chroma_resample_free (convert->upsample_p);
+  if (convert->upsample_i)
+    gst_video_chroma_resample_free (convert->upsample_i);
+  if (convert->downsample_p)
+    gst_video_chroma_resample_free (convert->downsample_p);
+  if (convert->downsample_i)
+    gst_video_chroma_resample_free (convert->downsample_i);
+  if (convert->v_scaler_p)
+    gst_video_scaler_free (convert->v_scaler_p);
+  if (convert->v_scaler_i)
+    gst_video_scaler_free (convert->v_scaler_i);
+  if (convert->h_scaler)
+    gst_video_scaler_free (convert->h_scaler);
+
+  if (convert->unpack_lines)
+    gst_line_cache_free (convert->unpack_lines);
+  if (convert->upsample_lines)
+    gst_line_cache_free (convert->upsample_lines);
+  if (convert->to_RGB_lines)
+    gst_line_cache_free (convert->to_RGB_lines);
+  if (convert->hscale_lines)
+    gst_line_cache_free (convert->hscale_lines);
+  if (convert->vscale_lines)
+    gst_line_cache_free (convert->vscale_lines);
+  if (convert->convert_lines)
+    gst_line_cache_free (convert->convert_lines);
+  if (convert->alpha_lines)
+    gst_line_cache_free (convert->alpha_lines);
+  if (convert->to_YUV_lines)
+    gst_line_cache_free (convert->to_YUV_lines);
+  if (convert->downsample_lines)
+    gst_line_cache_free (convert->downsample_lines);
+  if (convert->dither_lines)
+    gst_line_cache_free (convert->dither_lines);
+
+  if (convert->dither)
+    gst_video_dither_free (convert->dither);
+
+  g_free (convert->gamma_dec.gamma_table);
+  g_free (convert->gamma_enc.gamma_table);
+
+  g_free (convert->tmpline);
+  g_free (convert->borderline);
+
+  if (convert->config)
+    gst_structure_free (convert->config);
+
+  for (i = 0; i < 4; i++) {
+    if (convert->fv_scaler[i])
+      gst_video_scaler_free (convert->fv_scaler[i]);
+    if (convert->fh_scaler[i])
+      gst_video_scaler_free (convert->fh_scaler[i]);
+  }
+  clear_matrix_data (&convert->to_RGB_matrix);
+  clear_matrix_data (&convert->convert_matrix);
+  clear_matrix_data (&convert->to_YUV_matrix);
+
+  g_slice_free (GstVideoConverter, convert);
+}
+
+static gboolean
+copy_config (GQuark field_id, const GValue * value, gpointer user_data)
+{
+  GstVideoConverter *convert = user_data;
+
+  gst_structure_id_set_value (convert->config, field_id, value);
+
+  return TRUE;
+}
+
+/**
+ * gst_video_converter_set_config:
+ * @convert: a #GstVideoConverter
+ * @config: (transfer full): a #GstStructure
+ *
+ * Set @config as extra configuraion for @convert.
+ *
+ * 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_video_converter_get_config().
+ *
+ * Look at the #GST_VIDEO_CONVERTER_OPT_* fields to check valid configuration
+ * option and values.
+ *
+ * Returns: %TRUE when @config could be set.
+ *
+ * Since: 1.6
+ */
+gboolean
+gst_video_converter_set_config (GstVideoConverter * convert,
+    GstStructure * config)
+{
+  g_return_val_if_fail (convert != NULL, FALSE);
+  g_return_val_if_fail (config != NULL, FALSE);
+
+  gst_structure_foreach (config, copy_config, convert);
+  gst_structure_free (config);
+
+  return TRUE;
+}
+
+/**
+ * gst_video_converter_get_config:
+ * @convert: a #GstVideoConverter
+ *
+ * Get the current configuration of @convert.
+ *
+ * Returns: a #GstStructure that remains valid for as long as @convert is valid
+ *   or until gst_video_converter_set_config() is called.
+ */
+const GstStructure *
+gst_video_converter_get_config (GstVideoConverter * convert)
+{
+  g_return_val_if_fail (convert != NULL, NULL);
+
+  return convert->config;
+}
+
+/**
+ * gst_video_converter_frame:
+ * @convert: a #GstVideoConverter
+ * @dest: a #GstVideoFrame
+ * @src: a #GstVideoFrame
+ *
+ * Convert the pixels of @src into @dest using @convert.
+ *
+ * Since: 1.6
+ */
+void
+gst_video_converter_frame (GstVideoConverter * convert,
+    const GstVideoFrame * src, GstVideoFrame * dest)
+{
+  g_return_if_fail (convert != NULL);
+  g_return_if_fail (src != NULL);
+  g_return_if_fail (dest != NULL);
+
+  convert->convert (convert, src, dest);
+}
+
+static void
+video_converter_compute_matrix (GstVideoConverter * convert)
+{
+  MatrixData *dst = &convert->convert_matrix;
+
+  color_matrix_set_identity (dst);
+  compute_matrix_to_RGB (convert, dst);
+  compute_matrix_to_YUV (convert, dst, FALSE);
+
+  convert->current_bits = 8;
+  prepare_matrix (convert, dst);
+}
+
+static void
+video_converter_compute_resample (GstVideoConverter * convert)
+{
+  GstVideoInfo *in_info, *out_info;
+  const GstVideoFormatInfo *sfinfo, *dfinfo;
+
+  if (CHECK_CHROMA_NONE (convert))
+    return;
+
+  in_info = &convert->in_info;
+  out_info = &convert->out_info;
+
+  sfinfo = in_info->finfo;
+  dfinfo = out_info->finfo;
+
+  GST_DEBUG ("site: %d->%d, w_sub: %d->%d, h_sub: %d->%d", in_info->chroma_site,
+      out_info->chroma_site, sfinfo->w_sub[2], dfinfo->w_sub[2],
+      sfinfo->h_sub[2], dfinfo->h_sub[2]);
+
+  if (sfinfo->w_sub[2] != dfinfo->w_sub[2] ||
+      sfinfo->h_sub[2] != dfinfo->h_sub[2] ||
+      in_info->chroma_site != out_info->chroma_site ||
+      in_info->width != out_info->width ||
+      in_info->height != out_info->height) {
+    if (GST_VIDEO_INFO_IS_INTERLACED (in_info)) {
+      if (!CHECK_CHROMA_DOWNSAMPLE (convert))
+        convert->upsample_i = gst_video_chroma_resample_new (0,
+            in_info->chroma_site, GST_VIDEO_CHROMA_FLAG_INTERLACED,
+            sfinfo->unpack_format, sfinfo->w_sub[2], sfinfo->h_sub[2]);
+      if (!CHECK_CHROMA_UPSAMPLE (convert))
+        convert->downsample_i =
+            gst_video_chroma_resample_new (0, out_info->chroma_site,
+            GST_VIDEO_CHROMA_FLAG_INTERLACED, dfinfo->unpack_format,
+            -dfinfo->w_sub[2], -dfinfo->h_sub[2]);
+    }
+    if (!CHECK_CHROMA_DOWNSAMPLE (convert))
+      convert->upsample_p = gst_video_chroma_resample_new (0,
+          in_info->chroma_site, 0, sfinfo->unpack_format, sfinfo->w_sub[2],
+          sfinfo->h_sub[2]);
+    if (!CHECK_CHROMA_UPSAMPLE (convert))
+      convert->downsample_p = gst_video_chroma_resample_new (0,
+          out_info->chroma_site, 0, dfinfo->unpack_format, -dfinfo->w_sub[2],
+          -dfinfo->h_sub[2]);
+  }
+}
+
+#define FRAME_GET_PLANE_STRIDE(frame, plane) \
+  GST_VIDEO_FRAME_PLANE_STRIDE (frame, plane)
+#define FRAME_GET_PLANE_LINE(frame, plane, line) \
+  (gpointer)(((guint8*)(GST_VIDEO_FRAME_PLANE_DATA (frame, plane))) + \
+      FRAME_GET_PLANE_STRIDE (frame, plane) * (line))
+
+#define FRAME_GET_COMP_STRIDE(frame, comp) \
+  GST_VIDEO_FRAME_COMP_STRIDE (frame, comp)
+#define FRAME_GET_COMP_LINE(frame, comp, line) \
+  (gpointer)(((guint8*)(GST_VIDEO_FRAME_COMP_DATA (frame, comp))) + \
+      FRAME_GET_COMP_STRIDE (frame, comp) * (line))
+
+#define FRAME_GET_STRIDE(frame)      FRAME_GET_PLANE_STRIDE (frame, 0)
+#define FRAME_GET_LINE(frame,line)   FRAME_GET_PLANE_LINE (frame, 0, line)
+
+#define FRAME_GET_Y_LINE(frame,line) FRAME_GET_COMP_LINE(frame, GST_VIDEO_COMP_Y, line)
+#define FRAME_GET_U_LINE(frame,line) FRAME_GET_COMP_LINE(frame, GST_VIDEO_COMP_U, line)
+#define FRAME_GET_V_LINE(frame,line) FRAME_GET_COMP_LINE(frame, GST_VIDEO_COMP_V, line)
+#define FRAME_GET_A_LINE(frame,line) FRAME_GET_COMP_LINE(frame, GST_VIDEO_COMP_A, line)
+
+#define FRAME_GET_Y_STRIDE(frame)    FRAME_GET_COMP_STRIDE(frame, GST_VIDEO_COMP_Y)
+#define FRAME_GET_U_STRIDE(frame)    FRAME_GET_COMP_STRIDE(frame, GST_VIDEO_COMP_U)
+#define FRAME_GET_V_STRIDE(frame)    FRAME_GET_COMP_STRIDE(frame, GST_VIDEO_COMP_V)
+#define FRAME_GET_A_STRIDE(frame)    FRAME_GET_COMP_STRIDE(frame, GST_VIDEO_COMP_A)
+
+
+#define UNPACK_FRAME(frame,dest,line,x,width)        \
+  frame->info.finfo->unpack_func (frame->info.finfo, \
+      (GST_VIDEO_FRAME_IS_INTERLACED (frame) ?       \
+        GST_VIDEO_PACK_FLAG_INTERLACED :             \
+        GST_VIDEO_PACK_FLAG_NONE),                   \
+      dest, frame->data, frame->info.stride, x,      \
+      line, width)
+#define PACK_FRAME(frame,src,line,width)             \
+  frame->info.finfo->pack_func (frame->info.finfo,   \
+      (GST_VIDEO_FRAME_IS_INTERLACED (frame) ?       \
+        GST_VIDEO_PACK_FLAG_INTERLACED :             \
+        GST_VIDEO_PACK_FLAG_NONE),                   \
+      src, 0, frame->data, frame->info.stride,       \
+      frame->info.chroma_site, line, width);
+
+static gpointer
+get_dest_line (GstLineCache * cache, gint idx, gpointer user_data)
+{
+  GstVideoConverter *convert = user_data;
+  guint8 *line;
+  gint pstride = convert->pack_pstride;
+  gint out_x = convert->out_x;
+  guint cline;
+
+  cline = CLAMP (idx, 0, convert->out_maxheight - 1);
+
+  line = FRAME_GET_LINE (convert->dest, cline);
+  GST_DEBUG ("get dest line %d %p", cline, line);
+
+  if (convert->borderline) {
+    gint r_border = (out_x + convert->out_width) * pstride;
+    gint rb_width = convert->out_maxwidth * pstride - r_border;
+    gint lb_width = out_x * pstride;
+
+    memcpy (line, convert->borderline, lb_width);
+    memcpy (line + r_border, convert->borderline, rb_width);
+  }
+  line += out_x * pstride;
+
+  return line;
+}
+
+static gboolean
+do_unpack_lines (GstLineCache * cache, gint out_line, gint in_line,
+    gpointer user_data)
+{
+  GstVideoConverter *convert = user_data;
+  gpointer tmpline;
+  guint cline;
+
+  cline = CLAMP (in_line + convert->in_y, 0, convert->in_maxheight - 1);
+
+  if (cache->alloc_writable || !convert->identity_unpack) {
+    tmpline = gst_line_cache_alloc_line (cache, out_line);
+    GST_DEBUG ("unpack line %d (%u) %p", in_line, cline, tmpline);
+    UNPACK_FRAME (convert->src, tmpline, cline, convert->in_x,
+        convert->in_width);
+  } else {
+    tmpline = ((guint8 *) FRAME_GET_LINE (convert->src, cline)) +
+        convert->in_x * convert->unpack_pstride;
+    GST_DEBUG ("get src line %d (%u) %p", in_line, cline, tmpline);
+  }
+  gst_line_cache_add_line (cache, in_line, tmpline);
+
+  return TRUE;
+}
+
+static gboolean
+do_upsample_lines (GstLineCache * cache, gint out_line, gint in_line,
+    gpointer user_data)
+{
+  GstVideoConverter *convert = user_data;
+  gpointer *lines;
+  gint i, start_line, n_lines;
+
+  n_lines = convert->up_n_lines;
+  start_line = in_line;
+  if (start_line < n_lines + convert->up_offset) {
+    start_line += convert->up_offset;
+    out_line += convert->up_offset;
+  }
+
+  /* get the lines needed for chroma upsample */
+  lines = gst_line_cache_get_lines (cache->prev, out_line, start_line, n_lines);
+
+  if (convert->upsample) {
+    GST_DEBUG ("doing upsample %d-%d %p", start_line, start_line + n_lines - 1,
+        lines[0]);
+    gst_video_chroma_resample (convert->upsample, lines, convert->in_width);
+  }
+
+  for (i = 0; i < n_lines; i++)
+    gst_line_cache_add_line (cache, start_line + i, lines[i]);
+
+  return TRUE;
+}
+
+static gboolean
+do_convert_to_RGB_lines (GstLineCache * cache, gint out_line, gint in_line,
+    gpointer user_data)
+{
+  GstVideoConverter *convert = user_data;
+  MatrixData *data = &convert->to_RGB_matrix;
+  gpointer *lines, destline;
+
+  lines = gst_line_cache_get_lines (cache->prev, out_line, in_line, 1);
+  destline = lines[0];
+
+  if (data->matrix_func) {
+    GST_DEBUG ("to RGB line %d %p", in_line, destline);
+    data->matrix_func (data, destline);
+  }
+  if (convert->gamma_dec.gamma_func) {
+    destline = gst_line_cache_alloc_line (cache, out_line);
+
+    GST_DEBUG ("gamma decode line %d %p->%p", in_line, lines[0], destline);
+    convert->gamma_dec.gamma_func (&convert->gamma_dec, destline, lines[0]);
+  }
+  gst_line_cache_add_line (cache, in_line, destline);
+
+  return TRUE;
+}
+
+static gboolean
+do_hscale_lines (GstLineCache * cache, gint out_line, gint in_line,
+    gpointer user_data)
+{
+  GstVideoConverter *convert = user_data;
+  gpointer *lines, destline;
+
+  lines = gst_line_cache_get_lines (cache->prev, out_line, in_line, 1);
+
+  destline = gst_line_cache_alloc_line (cache, out_line);
+
+  GST_DEBUG ("hresample line %d %p->%p", in_line, lines[0], destline);
+  gst_video_scaler_horizontal (convert->h_scaler, convert->h_scale_format,
+      lines[0], destline, 0, convert->out_width);
+
+  gst_line_cache_add_line (cache, in_line, destline);
+
+  return TRUE;
+}
+
+static gboolean
+do_vscale_lines (GstLineCache * cache, gint out_line, gint in_line,
+    gpointer user_data)
+{
+  GstVideoConverter *convert = user_data;
+  gpointer *lines, destline;
+  guint sline, n_lines;
+  guint cline;
+
+  cline = CLAMP (in_line, 0, convert->out_height - 1);
+
+  gst_video_scaler_get_coeff (convert->v_scaler, cline, &sline, &n_lines);
+  lines = gst_line_cache_get_lines (cache->prev, out_line, sline, n_lines);
+
+  destline = gst_line_cache_alloc_line (cache, out_line);
+
+  GST_DEBUG ("vresample line %d %d-%d %p->%p", in_line, sline,
+      sline + n_lines - 1, lines[0], destline);
+  gst_video_scaler_vertical (convert->v_scaler, convert->v_scale_format, lines,
+      destline, cline, convert->v_scale_width);
+
+  gst_line_cache_add_line (cache, in_line, destline);
+
+  return TRUE;
+}
+
+static gboolean
+do_convert_lines (GstLineCache * cache, gint out_line, gint in_line,
+    gpointer user_data)
+{
+  GstVideoConverter *convert = user_data;
+  MatrixData *data = &convert->convert_matrix;
+  gpointer *lines, destline;
+  guint in_bits, out_bits;
+  gint width;
+
+  lines = gst_line_cache_get_lines (cache->prev, out_line, in_line, 1);
+
+  destline = lines[0];
+
+  in_bits = convert->in_bits;
+  out_bits = convert->out_bits;
+
+  width = MIN (convert->in_width, convert->out_width);
+
+  if (out_bits == 16 || in_bits == 16) {
+    gpointer srcline = lines[0];
+
+    if (out_bits != in_bits)
+      destline = gst_line_cache_alloc_line (cache, out_line);
+
+    /* FIXME, we can scale in the conversion matrix */
+    if (in_bits == 8) {
+      GST_DEBUG ("8->16 line %d %p->%p", in_line, srcline, destline);
+      video_orc_convert_u8_to_u16 (destline, srcline, width * 4);
+      srcline = destline;
+    }
+
+    if (data->matrix_func) {
+      GST_DEBUG ("matrix line %d %p", in_line, srcline);
+      data->matrix_func (data, srcline);
+    }
+
+    /* FIXME, dither here */
+    if (out_bits == 8) {
+      GST_DEBUG ("16->8 line %d %p->%p", in_line, srcline, destline);
+      video_orc_convert_u16_to_u8 (destline, srcline, width * 4);
+    }
+  } else {
+    if (data->matrix_func) {
+      GST_DEBUG ("matrix line %d %p", in_line, destline);
+      data->matrix_func (data, destline);
+    }
+  }
+  gst_line_cache_add_line (cache, in_line, destline);
+
+  return TRUE;
+}
+
+static gboolean
+do_alpha_lines (GstLineCache * cache, gint out_line, gint in_line,
+    gpointer user_data)
+{
+  gpointer *lines, destline;
+  GstVideoConverter *convert = user_data;
+  gint width = MIN (convert->in_width, convert->out_width);
+
+  lines = gst_line_cache_get_lines (cache->prev, out_line, in_line, 1);
+  destline = lines[0];
+
+  GST_DEBUG ("alpha line %d %p", in_line, destline);
+  convert->alpha_func (convert, destline, width);
+
+  gst_line_cache_add_line (cache, in_line, destline);
+
+  return TRUE;
+}
+
+static gboolean
+do_convert_to_YUV_lines (GstLineCache * cache, gint out_line, gint in_line,
+    gpointer user_data)
+{
+  GstVideoConverter *convert = user_data;
+  MatrixData *data = &convert->to_YUV_matrix;
+  gpointer *lines, destline;
+
+  lines = gst_line_cache_get_lines (cache->prev, out_line, in_line, 1);
+  destline = lines[0];
+
+  if (convert->gamma_enc.gamma_func) {
+    destline = gst_line_cache_alloc_line (cache, out_line);
+
+    GST_DEBUG ("gamma encode line %d %p->%p", in_line, lines[0], destline);
+    convert->gamma_enc.gamma_func (&convert->gamma_enc, destline, lines[0]);
+  }
+  if (data->matrix_func) {
+    GST_DEBUG ("to YUV line %d %p", in_line, destline);
+    data->matrix_func (data, destline);
+  }
+  gst_line_cache_add_line (cache, in_line, destline);
+
+  return TRUE;
+}
+
+static gboolean
+do_downsample_lines (GstLineCache * cache, gint out_line, gint in_line,
+    gpointer user_data)
+{
+  GstVideoConverter *convert = user_data;
+  gpointer *lines;
+  gint i, start_line, n_lines;
+
+  n_lines = convert->down_n_lines;
+  start_line = in_line;
+  if (start_line < n_lines + convert->down_offset)
+    start_line += convert->down_offset;
+
+  /* get the lines needed for chroma downsample */
+  lines = gst_line_cache_get_lines (cache->prev, out_line, start_line, n_lines);
+
+  if (convert->downsample) {
+    GST_DEBUG ("downsample line %d %d-%d %p", in_line, start_line,
+        start_line + n_lines - 1, lines[0]);
+    gst_video_chroma_resample (convert->downsample, lines, convert->out_width);
+  }
+
+  for (i = 0; i < n_lines; i++)
+    gst_line_cache_add_line (cache, start_line + i, lines[i]);
+
+  return TRUE;
+}
+
+static gboolean
+do_dither_lines (GstLineCache * cache, gint out_line, gint in_line,
+    gpointer user_data)
+{
+  GstVideoConverter *convert = user_data;
+  gpointer *lines, destline;
+
+  lines = gst_line_cache_get_lines (cache->prev, out_line, in_line, 1);
+  destline = lines[0];
+
+  if (convert->dither) {
+    GST_DEBUG ("Dither line %d %p", in_line, destline);
+    gst_video_dither_line (convert->dither, destline, 0, out_line,
+        convert->out_width);
+  }
+  gst_line_cache_add_line (cache, in_line, destline);
+
+  return TRUE;
+}
+
+static void
+video_converter_generic (GstVideoConverter * convert, const GstVideoFrame * src,
+    GstVideoFrame * dest)
+{
+  gint i;
+  gint out_maxwidth, out_maxheight;
+  gint out_x, out_y, out_height;
+  gint pack_lines, pstride;
+  gint lb_width;
+
+  out_height = convert->out_height;
+  out_maxwidth = convert->out_maxwidth;
+  out_maxheight = convert->out_maxheight;
+
+  out_x = convert->out_x;
+  out_y = convert->out_y;
+
+  convert->src = src;
+  convert->dest = dest;
+
+  if (GST_VIDEO_FRAME_IS_INTERLACED (src)) {
+    GST_DEBUG ("setup interlaced frame");
+    convert->upsample = convert->upsample_i;
+    convert->downsample = convert->downsample_i;
+    convert->v_scaler = convert->v_scaler_i;
+  } else {
+    GST_DEBUG ("setup progressive frame");
+    convert->upsample = convert->upsample_p;
+    convert->downsample = convert->downsample_p;
+    convert->v_scaler = convert->v_scaler_p;
+  }
+  if (convert->upsample) {
+    gst_video_chroma_resample_get_info (convert->upsample,
+        &convert->up_n_lines, &convert->up_offset);
+  } else {
+    convert->up_n_lines = 1;
+    convert->up_offset = 0;
+  }
+  if (convert->downsample) {
+    gst_video_chroma_resample_get_info (convert->downsample,
+        &convert->down_n_lines, &convert->down_offset);
+  } else {
+    convert->down_n_lines = 1;
+    convert->down_offset = 0;
+  }
+
+  pack_lines = convert->pack_nlines;    /* only 1 for now */
+  pstride = convert->pack_pstride;
+
+  lb_width = out_x * pstride;
+
+  if (convert->borderline) {
+    /* FIXME we should try to avoid PACK_FRAME */
+    for (i = 0; i < out_y; i++)
+      PACK_FRAME (dest, convert->borderline, i, out_maxwidth);
+  }
+
+  for (i = 0; i < out_height; i += pack_lines) {
+    gpointer *lines;
+
+    /* load the lines needed to pack */
+    lines = gst_line_cache_get_lines (convert->pack_lines, i + out_y,
+        i, pack_lines);
+
+    if (!convert->identity_pack) {
+      /* take away the border */
+      guint8 *l = ((guint8 *) lines[0]) - lb_width;
+      /* and pack into destination */
+      GST_DEBUG ("pack line %d %p (%p)", i + out_y, lines[0], l);
+      PACK_FRAME (dest, l, i + out_y, out_maxwidth);
+    }
+  }
+
+  if (convert->borderline) {
+    for (i = out_y + out_height; i < out_maxheight; i++)
+      PACK_FRAME (dest, convert->borderline, i, out_maxwidth);
+  }
+  if (convert->pack_pal) {
+    memcpy (GST_VIDEO_FRAME_PLANE_DATA (dest, 1), convert->pack_pal,
+        convert->pack_palsize);
+  }
+}
+
+static void convert_fill_border (GstVideoConverter * convert,
+    GstVideoFrame * dest);
+
+/* Fast paths */
+
+#define GET_LINE_OFFSETS(interlaced,line,l1,l2) \
+    if (interlaced) {                           \
+      l1 = (line & 2 ? line - 1 : line);        \
+      l2 = l1 + 2;                              \
+    } else {                                    \
+      l1 = line;                                \
+      l2 = l1 + 1;                              \
+    }
+
+static void
+convert_I420_YUY2 (GstVideoConverter * convert, const GstVideoFrame * src,
+    GstVideoFrame * dest)
+{
+  int i;
+  gint width = convert->in_width;
+  gint height = convert->in_height;
+  gboolean interlaced = GST_VIDEO_FRAME_IS_INTERLACED (src);
+  gint l1, l2;
+
+  for (i = 0; i < GST_ROUND_DOWN_2 (height); i += 2) {
+    GET_LINE_OFFSETS (interlaced, i, l1, l2);
+
+    video_orc_convert_I420_YUY2 (FRAME_GET_LINE (dest, l1),
+        FRAME_GET_LINE (dest, l2),
+        FRAME_GET_Y_LINE (src, l1),
+        FRAME_GET_Y_LINE (src, l2),
+        FRAME_GET_U_LINE (src, i >> 1),
+        FRAME_GET_V_LINE (src, i >> 1), (width + 1) / 2);
+  }
+
+  /* now handle last line */
+  if (height & 1) {
+    UNPACK_FRAME (src, convert->tmpline, height - 1, convert->in_x, width);
+    PACK_FRAME (dest, convert->tmpline, height - 1, width);
+  }
+}
+
+static void
+convert_I420_UYVY (GstVideoConverter * convert, const GstVideoFrame * src,
+    GstVideoFrame * dest)
+{
+  int i;
+  gint width = convert->in_width;
+  gint height = convert->in_height;
+  gboolean interlaced = GST_VIDEO_FRAME_IS_INTERLACED (src);
+  gint l1, l2;
+
+  for (i = 0; i < GST_ROUND_DOWN_2 (height); i += 2) {
+    GET_LINE_OFFSETS (interlaced, i, l1, l2);
+
+    video_orc_convert_I420_UYVY (FRAME_GET_LINE (dest, l1),
+        FRAME_GET_LINE (dest, l2),
+        FRAME_GET_Y_LINE (src, l1),
+        FRAME_GET_Y_LINE (src, l2),
+        FRAME_GET_U_LINE (src, i >> 1),
+        FRAME_GET_V_LINE (src, i >> 1), (width + 1) / 2);
+  }
+
+  /* now handle last line */
+  if (height & 1) {
+    UNPACK_FRAME (src, convert->tmpline, height - 1, convert->in_x, width);
+    PACK_FRAME (dest, convert->tmpline, height - 1, width);
+  }
+}
+
+static void
+convert_I420_AYUV (GstVideoConverter * convert, const GstVideoFrame * src,
+    GstVideoFrame * dest)
+{
+  int i;
+  gint width = convert->in_width;
+  gint height = convert->in_height;
+  gboolean interlaced = GST_VIDEO_FRAME_IS_INTERLACED (src);
+  guint8 alpha = MIN (convert->alpha_value, 255);
+  gint l1, l2;
+
+  for (i = 0; i < GST_ROUND_DOWN_2 (height); i += 2) {
+    GET_LINE_OFFSETS (interlaced, i, l1, l2);
+
+    video_orc_convert_I420_AYUV (FRAME_GET_LINE (dest, l1),
+        FRAME_GET_LINE (dest, l2),
+        FRAME_GET_Y_LINE (src, l1),
+        FRAME_GET_Y_LINE (src, l2),
+        FRAME_GET_U_LINE (src, i >> 1), FRAME_GET_V_LINE (src, i >> 1),
+        alpha, width);
+  }
+
+  /* now handle last line */
+  if (height & 1) {
+    UNPACK_FRAME (src, convert->tmpline, height - 1, convert->in_x, width);
+    if (alpha != 0xff)
+      convert_set_alpha_u8 (convert, convert->tmpline, width);
+    PACK_FRAME (dest, convert->tmpline, height - 1, width);
+  }
+}
+
+static void
+convert_YUY2_I420 (GstVideoConverter * convert, const GstVideoFrame * src,
+    GstVideoFrame * dest)
+{
+  int i;
+  gint width = convert->in_width;
+  gint height = convert->in_height;
+  gboolean interlaced = GST_VIDEO_FRAME_IS_INTERLACED (src);
+  gint l1, l2;
+
+  for (i = 0; i < GST_ROUND_DOWN_2 (height); i += 2) {
+    GET_LINE_OFFSETS (interlaced, i, l1, l2);
+
+    video_orc_convert_YUY2_I420 (FRAME_GET_Y_LINE (dest, l1),
+        FRAME_GET_Y_LINE (dest, l2),
+        FRAME_GET_U_LINE (dest, i >> 1),
+        FRAME_GET_V_LINE (dest, i >> 1),
+        FRAME_GET_LINE (src, l1), FRAME_GET_LINE (src, l2), (width + 1) / 2);
+  }
+
+  /* now handle last line */
+  if (height & 1) {
+    UNPACK_FRAME (src, convert->tmpline, height - 1, convert->in_x, width);
+    PACK_FRAME (dest, convert->tmpline, height - 1, width);
+  }
+}
+
+static void
+convert_YUY2_AYUV (GstVideoConverter * convert, const GstVideoFrame * src,
+    GstVideoFrame * dest)
+{
+  gint width = convert->in_width;
+  gint height = convert->in_height;
+  guint8 *s, *d;
+  guint8 alpha = MIN (convert->alpha_value, 255);
+
+  s = FRAME_GET_LINE (src, convert->in_y);
+  s += (GST_ROUND_UP_2 (convert->in_x) * 2);
+  d = FRAME_GET_LINE (dest, convert->out_y);
+  d += (convert->out_x * 4);
+
+  video_orc_convert_YUY2_AYUV (d, FRAME_GET_STRIDE (dest), s,
+      FRAME_GET_STRIDE (src), alpha, (width + 1) / 2, height);
+
+  convert_fill_border (convert, dest);
+}
+
+static void
+convert_YUY2_Y42B (GstVideoConverter * convert, const GstVideoFrame * src,
+    GstVideoFrame * dest)
+{
+  gint width = convert->in_width;
+  gint height = convert->in_height;
+  guint8 *s, *dy, *du, *dv;
+
+  s = FRAME_GET_LINE (src, convert->in_y);
+  s += (GST_ROUND_UP_2 (convert->in_x) * 2);
+
+  dy = FRAME_GET_Y_LINE (dest, convert->out_y);
+  dy += convert->out_x;
+  du = FRAME_GET_U_LINE (dest, convert->out_y);
+  du += convert->out_x >> 1;
+  dv = FRAME_GET_V_LINE (dest, convert->out_y);
+  dv += convert->out_x >> 1;
+
+  video_orc_convert_YUY2_Y42B (dy, FRAME_GET_Y_STRIDE (dest), du,
+      FRAME_GET_U_STRIDE (dest), dv, FRAME_GET_V_STRIDE (dest),
+      s, FRAME_GET_STRIDE (src), (width + 1) / 2, height);
+
+  convert_fill_border (convert, dest);
+}
+
+static void
+convert_YUY2_Y444 (GstVideoConverter * convert, const GstVideoFrame * src,
+    GstVideoFrame * dest)
+{
+  gint width = convert->in_width;
+  gint height = convert->in_height;
+  guint8 *s, *dy, *du, *dv;
+
+  s = FRAME_GET_LINE (src, convert->in_y);
+  s += (GST_ROUND_UP_2 (convert->in_x) * 2);
+
+  dy = FRAME_GET_Y_LINE (dest, convert->out_y);
+  dy += convert->out_x;
+  du = FRAME_GET_U_LINE (dest, convert->out_y);
+  du += convert->out_x;
+  dv = FRAME_GET_V_LINE (dest, convert->out_y);
+  dv += convert->out_x;
+
+  video_orc_convert_YUY2_Y444 (dy,
+      FRAME_GET_COMP_STRIDE (dest, 0), du,
+      FRAME_GET_COMP_STRIDE (dest, 1), dv,
+      FRAME_GET_COMP_STRIDE (dest, 2), s,
+      FRAME_GET_STRIDE (src), (width + 1) / 2, height);
+
+  convert_fill_border (convert, dest);
+}
+
+
+static void
+convert_UYVY_I420 (GstVideoConverter * convert, const GstVideoFrame * src,
+    GstVideoFrame * dest)
+{
+  int i;
+  gint width = convert->in_width;
+  gint height = convert->in_height;
+  gboolean interlaced = GST_VIDEO_FRAME_IS_INTERLACED (src);
+  gint l1, l2;
+
+  for (i = 0; i < GST_ROUND_DOWN_2 (height); i += 2) {
+    GET_LINE_OFFSETS (interlaced, i, l1, l2);
+
+    video_orc_convert_UYVY_I420 (FRAME_GET_COMP_LINE (dest, 0, l1),
+        FRAME_GET_COMP_LINE (dest, 0, l2),
+        FRAME_GET_COMP_LINE (dest, 1, i >> 1),
+        FRAME_GET_COMP_LINE (dest, 2, i >> 1),
+        FRAME_GET_LINE (src, l1), FRAME_GET_LINE (src, l2), (width + 1) / 2);
+  }
+
+  /* now handle last line */
+  if (height & 1) {
+    UNPACK_FRAME (src, convert->tmpline, height - 1, convert->in_x, width);
+    PACK_FRAME (dest, convert->tmpline, height - 1, width);
+  }
+}
+
+static void
+convert_UYVY_AYUV (GstVideoConverter * convert, const GstVideoFrame * src,
+    GstVideoFrame * dest)
+{
+  gint width = convert->in_width;
+  gint height = convert->in_height;
+  guint8 *s, *d;
+  guint8 alpha = MIN (convert->alpha_value, 255);
+
+  s = FRAME_GET_LINE (src, convert->in_y);
+  s += (GST_ROUND_UP_2 (convert->in_x) * 2);
+  d = FRAME_GET_LINE (dest, convert->out_y);
+  d += (convert->out_x * 4);
+
+  video_orc_convert_UYVY_AYUV (d,
+      FRAME_GET_STRIDE (dest), s,
+      FRAME_GET_STRIDE (src), alpha, (width + 1) / 2, height);
+
+  convert_fill_border (convert, dest);
+}
+
+static void
+convert_UYVY_YUY2 (GstVideoConverter * convert, const GstVideoFrame * src,
+    GstVideoFrame * dest)
+{
+  gint width = convert->in_width;
+  gint height = convert->in_height;
+  guint8 *s, *d;
+
+  s = FRAME_GET_LINE (src, convert->in_y);
+  s += (GST_ROUND_UP_2 (convert->in_x) * 2);
+  d = FRAME_GET_LINE (dest, convert->out_y);
+  d += (GST_ROUND_UP_2 (convert->out_x) * 2);
+
+  video_orc_convert_UYVY_YUY2 (d,
+      FRAME_GET_STRIDE (dest), s,
+      FRAME_GET_STRIDE (src), (width + 1) / 2, height);
+
+  convert_fill_border (convert, dest);
+}
+
+static void
+convert_UYVY_Y42B (GstVideoConverter * convert, const GstVideoFrame * src,
+    GstVideoFrame * dest)
+{
+  gint width = convert->in_width;
+  gint height = convert->in_height;
+  guint8 *s, *dy, *du, *dv;
+
+  s = FRAME_GET_LINE (src, convert->in_y);
+  s += (GST_ROUND_UP_2 (convert->in_x) * 2);
+
+  dy = FRAME_GET_Y_LINE (dest, convert->out_y);
+  dy += convert->out_x;
+  du = FRAME_GET_U_LINE (dest, convert->out_y);
+  du += convert->out_x >> 1;
+  dv = FRAME_GET_V_LINE (dest, convert->out_y);
+  dv += convert->out_x >> 1;
+
+  video_orc_convert_UYVY_Y42B (dy,
+      FRAME_GET_Y_STRIDE (dest), du,
+      FRAME_GET_U_STRIDE (dest), dv,
+      FRAME_GET_V_STRIDE (dest), s,
+      FRAME_GET_STRIDE (src), (width + 1) / 2, height);
+
+  convert_fill_border (convert, dest);
+}
+
+static void
+convert_UYVY_Y444 (GstVideoConverter * convert, const GstVideoFrame * src,
+    GstVideoFrame * dest)
+{
+  gint width = convert->in_width;
+  gint height = convert->in_height;
+  guint8 *s, *dy, *du, *dv;
+
+  s = FRAME_GET_LINE (src, convert->in_y);
+  s += (GST_ROUND_UP_2 (convert->in_x) * 2);
+
+  dy = FRAME_GET_Y_LINE (dest, convert->out_y);
+  dy += convert->out_x;
+  du = FRAME_GET_U_LINE (dest, convert->out_y);
+  du += convert->out_x;
+  dv = FRAME_GET_V_LINE (dest, convert->out_y);
+  dv += convert->out_x;
+
+  video_orc_convert_UYVY_Y444 (dy,
+      FRAME_GET_Y_STRIDE (dest), du,
+      FRAME_GET_U_STRIDE (dest), dv,
+      FRAME_GET_V_STRIDE (dest), s,
+      FRAME_GET_STRIDE (src), (width + 1) / 2, height);
+
+  convert_fill_border (convert, dest);
+}
+
+static void
+convert_AYUV_I420 (GstVideoConverter * convert, const GstVideoFrame * src,
+    GstVideoFrame * dest)
+{
+  gint width = convert->in_width;
+  gint height = convert->in_height;
+  guint8 *s1, *s2, *dy1, *dy2, *du, *dv;
+
+  s1 = FRAME_GET_LINE (src, convert->in_y + 0);
+  s1 += convert->in_x * 4;
+  s2 = FRAME_GET_LINE (src, convert->in_y + 1);
+  s2 += convert->in_x * 4;
+
+  dy1 = FRAME_GET_Y_LINE (dest, convert->out_y + 0);
+  dy1 += convert->out_x;
+  dy2 = FRAME_GET_Y_LINE (dest, convert->out_y + 1);
+  dy2 += convert->out_x;
+  du = FRAME_GET_U_LINE (dest, convert->out_y >> 1);
+  du += convert->out_x >> 1;
+  dv = FRAME_GET_V_LINE (dest, convert->out_y >> 1);
+  dv += convert->out_x >> 1;
+
+  /* only for even width/height */
+  video_orc_convert_AYUV_I420 (dy1,
+      2 * FRAME_GET_Y_STRIDE (dest), dy2,
+      2 * FRAME_GET_Y_STRIDE (dest), du,
+      FRAME_GET_U_STRIDE (dest), dv,
+      FRAME_GET_V_STRIDE (dest), s1,
+      2 * FRAME_GET_STRIDE (src), s2,
+      2 * FRAME_GET_STRIDE (src), width / 2, height / 2);
+
+  convert_fill_border (convert, dest);
+}
+
+static void
+convert_AYUV_YUY2 (GstVideoConverter * convert, const GstVideoFrame * src,
+    GstVideoFrame * dest)
+{
+  gint width = convert->in_width;
+  gint height = convert->in_height;
+  guint8 *s, *d;
+
+  s = FRAME_GET_LINE (src, convert->in_y);
+  s += convert->in_x * 4;
+  d = FRAME_GET_LINE (dest, convert->out_y);
+  d += (GST_ROUND_UP_2 (convert->out_x) * 2);
+
+  /* only for even width */
+  video_orc_convert_AYUV_YUY2 (d,
+      FRAME_GET_STRIDE (dest), s, FRAME_GET_STRIDE (src), width / 2, height);
+
+  convert_fill_border (convert, dest);
+}
+
+static void
+convert_AYUV_UYVY (GstVideoConverter * convert, const GstVideoFrame * src,
+    GstVideoFrame * dest)
+{
+  gint width = convert->in_width;
+  gint height = convert->in_height;
+  guint8 *s, *d;
+
+  s = FRAME_GET_LINE (src, convert->in_y);
+  s += convert->in_x * 4;
+  d = FRAME_GET_LINE (dest, convert->out_y);
+  d += (GST_ROUND_UP_2 (convert->out_x) * 2);
+
+  /* only for even width */
+  video_orc_convert_AYUV_UYVY (d,
+      FRAME_GET_STRIDE (dest), s, FRAME_GET_STRIDE (src), width / 2, height);
+
+  convert_fill_border (convert, dest);
+}
+
+static void
+convert_AYUV_Y42B (GstVideoConverter * convert, const GstVideoFrame * src,
+    GstVideoFrame * dest)
+{
+  gint width = convert->in_width;
+  gint height = convert->in_height;
+  guint8 *s, *dy, *du, *dv;
+
+  s = FRAME_GET_LINE (src, convert->in_y);
+  s += convert->in_x * 4;
+
+  dy = FRAME_GET_Y_LINE (dest, convert->out_y);
+  dy += convert->out_x;
+  du = FRAME_GET_U_LINE (dest, convert->out_y);
+  du += convert->out_x >> 1;
+  dv = FRAME_GET_V_LINE (dest, convert->out_y);
+  dv += convert->out_x >> 1;
+
+  /* only works for even width */
+  video_orc_convert_AYUV_Y42B (dy,
+      FRAME_GET_Y_STRIDE (dest), du,
+      FRAME_GET_U_STRIDE (dest), dv,
+      FRAME_GET_V_STRIDE (dest), s, FRAME_GET_STRIDE (src), width / 2, height);
+
+  convert_fill_border (convert, dest);
+}
+
+static void
+convert_AYUV_Y444 (GstVideoConverter * convert, const GstVideoFrame * src,
+    GstVideoFrame * dest)
+{
+  gint width = convert->in_width;
+  gint height = convert->in_height;
+  guint8 *s, *dy, *du, *dv;
+
+  s = FRAME_GET_LINE (src, convert->in_y);
+  s += convert->in_x * 4;
+
+  dy = FRAME_GET_Y_LINE (dest, convert->out_y);
+  dy += convert->out_x;
+  du = FRAME_GET_U_LINE (dest, convert->out_y);
+  du += convert->out_x;
+  dv = FRAME_GET_V_LINE (dest, convert->out_y);
+  dv += convert->out_x;
+
+  video_orc_convert_AYUV_Y444 (FRAME_GET_Y_LINE (dest, 0),
+      FRAME_GET_Y_STRIDE (dest), FRAME_GET_U_LINE (dest, 0),
+      FRAME_GET_U_STRIDE (dest), FRAME_GET_V_LINE (dest, 0),
+      FRAME_GET_V_STRIDE (dest), FRAME_GET_LINE (src, 0),
+      FRAME_GET_STRIDE (src), width, height);
+
+  convert_fill_border (convert, dest);
+}
+
+static void
+convert_Y42B_YUY2 (GstVideoConverter * convert, const GstVideoFrame * src,
+    GstVideoFrame * dest)
+{
+  gint width = convert->in_width;
+  gint height = convert->in_height;
+  guint8 *sy, *su, *sv, *d;
+
+  sy = FRAME_GET_Y_LINE (src, convert->in_y);
+  sy += convert->in_x;
+  su = FRAME_GET_U_LINE (src, convert->in_y);
+  su += convert->in_x >> 1;
+  sv = FRAME_GET_V_LINE (src, convert->in_y);
+  sv += convert->in_x >> 1;
+
+  d = FRAME_GET_LINE (dest, convert->out_y);
+  d += (GST_ROUND_UP_2 (convert->out_x) * 2);
+
+  video_orc_convert_Y42B_YUY2 (d,
+      FRAME_GET_STRIDE (dest), sy,
+      FRAME_GET_Y_STRIDE (src), su,
+      FRAME_GET_U_STRIDE (src), sv,
+      FRAME_GET_V_STRIDE (src), (width + 1) / 2, height);
+
+  convert_fill_border (convert, dest);
+}
+
+static void
+convert_Y42B_UYVY (GstVideoConverter * convert, const GstVideoFrame * src,
+    GstVideoFrame * dest)
+{
+  gint width = convert->in_width;
+  gint height = convert->in_height;
+  guint8 *sy, *su, *sv, *d;
+
+  sy = FRAME_GET_Y_LINE (src, convert->in_y);
+  sy += convert->in_x;
+  su = FRAME_GET_U_LINE (src, convert->in_y);
+  su += convert->in_x >> 1;
+  sv = FRAME_GET_V_LINE (src, convert->in_y);
+  sv += convert->in_x >> 1;
+
+  d = FRAME_GET_LINE (dest, convert->out_y);
+  d += (GST_ROUND_UP_2 (convert->out_x) * 2);
+
+  video_orc_convert_Y42B_UYVY (d,
+      FRAME_GET_STRIDE (dest), sy,
+      FRAME_GET_Y_STRIDE (src), su,
+      FRAME_GET_U_STRIDE (src), sv,
+      FRAME_GET_V_STRIDE (src), (width + 1) / 2, height);
+
+  convert_fill_border (convert, dest);
+}
+
+static void
+convert_Y42B_AYUV (GstVideoConverter * convert, const GstVideoFrame * src,
+    GstVideoFrame * dest)
+{
+  gint width = convert->in_width;
+  gint height = convert->in_height;
+  guint8 *sy, *su, *sv, *d;
+  guint8 alpha = MIN (convert->alpha_value, 255);
+
+  sy = FRAME_GET_Y_LINE (src, convert->in_y);
+  sy += convert->in_x;
+  su = FRAME_GET_U_LINE (src, convert->in_y);
+  su += convert->in_x >> 1;
+  sv = FRAME_GET_V_LINE (src, convert->in_y);
+  sv += convert->in_x >> 1;
+
+  d = FRAME_GET_LINE (dest, convert->out_y);
+  d += convert->out_x * 4;
+
+  /* only for even width */
+  video_orc_convert_Y42B_AYUV (d,
+      FRAME_GET_STRIDE (dest), sy,
+      FRAME_GET_Y_STRIDE (src), su,
+      FRAME_GET_U_STRIDE (src), sv,
+      FRAME_GET_V_STRIDE (src), alpha, width / 2, height);
+
+  convert_fill_border (convert, dest);
+}
+
+static void
+convert_Y444_YUY2 (GstVideoConverter * convert, const GstVideoFrame * src,
+    GstVideoFrame * dest)
+{
+  gint width = convert->in_width;
+  gint height = convert->in_height;
+  guint8 *sy, *su, *sv, *d;
+
+  sy = FRAME_GET_Y_LINE (src, convert->in_y);
+  sy += convert->in_x;
+  su = FRAME_GET_U_LINE (src, convert->in_y);
+  su += convert->in_x;
+  sv = FRAME_GET_V_LINE (src, convert->in_y);
+  sv += convert->in_x;
+
+  d = FRAME_GET_LINE (dest, convert->out_y);
+  d += (GST_ROUND_UP_2 (convert->out_x) * 2);
+
+  video_orc_convert_Y444_YUY2 (d,
+      FRAME_GET_STRIDE (dest), sy,
+      FRAME_GET_Y_STRIDE (src), su,
+      FRAME_GET_U_STRIDE (src), sv,
+      FRAME_GET_V_STRIDE (src), width / 2, height);
+
+  convert_fill_border (convert, dest);
+}
+
+static void
+convert_Y444_UYVY (GstVideoConverter * convert, const GstVideoFrame * src,
+    GstVideoFrame * dest)
+{
+  gint width = convert->in_width;
+  gint height = convert->in_height;
+  guint8 *sy, *su, *sv, *d;
+
+  sy = FRAME_GET_Y_LINE (src, convert->in_y);
+  sy += convert->in_x;
+  su = FRAME_GET_U_LINE (src, convert->in_y);
+  su += convert->in_x;
+  sv = FRAME_GET_V_LINE (src, convert->in_y);
+  sv += convert->in_x;
+
+  d = FRAME_GET_LINE (dest, convert->out_y);
+  d += (GST_ROUND_UP_2 (convert->out_x) * 2);
+
+  video_orc_convert_Y444_UYVY (d,
+      FRAME_GET_STRIDE (dest), sy,
+      FRAME_GET_Y_STRIDE (src), su,
+      FRAME_GET_U_STRIDE (src), sv,
+      FRAME_GET_V_STRIDE (src), width / 2, height);
+
+  convert_fill_border (convert, dest);
+}
+
+static void
+convert_Y444_AYUV (GstVideoConverter * convert, const GstVideoFrame * src,
+    GstVideoFrame * dest)
+{
+  gint width = convert->in_width;
+  gint height = convert->in_height;
+  guint8 *sy, *su, *sv, *d;
+  guint8 alpha = MIN (convert->alpha_value, 255);
+
+  sy = FRAME_GET_Y_LINE (src, convert->in_y);
+  sy += convert->in_x;
+  su = FRAME_GET_U_LINE (src, convert->in_y);
+  su += convert->in_x;
+  sv = FRAME_GET_V_LINE (src, convert->in_y);
+  sv += convert->in_x;
+
+  d = FRAME_GET_LINE (dest, convert->out_y);
+  d += convert->out_x * 4;
+
+  video_orc_convert_Y444_AYUV (d,
+      FRAME_GET_STRIDE (dest), sy,
+      FRAME_GET_Y_STRIDE (src), su,
+      FRAME_GET_U_STRIDE (src), sv, FRAME_GET_V_STRIDE (src), alpha, width,
+      height);
+
+  convert_fill_border (convert, dest);
+}
+
+#if G_BYTE_ORDER == G_LITTLE_ENDIAN
+static void
+convert_AYUV_ARGB (GstVideoConverter * convert, const GstVideoFrame * src,
+    GstVideoFrame * dest)
+{
+  gint width = convert->in_width;
+  gint height = convert->in_height;
+  MatrixData *data = &convert->convert_matrix;
+  guint8 *s, *d;
+
+  s = FRAME_GET_LINE (src, convert->in_y);
+  s += (convert->in_x * 4);
+  d = FRAME_GET_LINE (dest, convert->out_y);
+  d += (convert->out_x * 4);
+
+  video_orc_convert_AYUV_ARGB (d, FRAME_GET_STRIDE (dest), s,
+      FRAME_GET_STRIDE (src), data->im[0][0], data->im[0][2],
+      data->im[2][1], data->im[1][1], data->im[1][2], width, height);
+
+  convert_fill_border (convert, dest);
+}
+
+static void
+convert_AYUV_BGRA (GstVideoConverter * convert, const GstVideoFrame * src,
+    GstVideoFrame * dest)
+{
+  gint width = convert->in_width;
+  gint height = convert->in_height;
+  MatrixData *data = &convert->convert_matrix;
+  guint8 *s, *d;
+
+  s = FRAME_GET_LINE (src, convert->in_y);
+  s += (convert->in_x * 4);
+  d = FRAME_GET_LINE (dest, convert->out_y);
+  d += (convert->out_x * 4);
+
+  video_orc_convert_AYUV_BGRA (d, FRAME_GET_STRIDE (dest), s,
+      FRAME_GET_STRIDE (src), data->im[0][0], data->im[0][2],
+      data->im[2][1], data->im[1][1], data->im[1][2], width, height);
+
+  convert_fill_border (convert, dest);
+}
+
+static void
+convert_AYUV_ABGR (GstVideoConverter * convert, const GstVideoFrame * src,
+    GstVideoFrame * dest)
+{
+  gint width = convert->in_width;
+  gint height = convert->in_height;
+  MatrixData *data = &convert->convert_matrix;
+  guint8 *s, *d;
+
+  s = FRAME_GET_LINE (src, convert->in_y);
+  s += (convert->in_x * 4);
+  d = FRAME_GET_LINE (dest, convert->out_y);
+  d += (convert->out_x * 4);
+
+  video_orc_convert_AYUV_ABGR (d, FRAME_GET_STRIDE (dest), s,
+      FRAME_GET_STRIDE (src), data->im[0][0], data->im[0][2],
+      data->im[2][1], data->im[1][1], data->im[1][2], width, height);
+
+  convert_fill_border (convert, dest);
+}
+
+static void
+convert_AYUV_RGBA (GstVideoConverter * convert, const GstVideoFrame * src,
+    GstVideoFrame * dest)
+{
+  gint width = convert->in_width;
+  gint height = convert->in_height;
+  MatrixData *data = &convert->convert_matrix;
+  guint8 *s, *d;
+
+  s = FRAME_GET_LINE (src, convert->in_y);
+  s += (convert->in_x * 4);
+  d = FRAME_GET_LINE (dest, convert->out_y);
+  d += (convert->out_x * 4);
+
+  video_orc_convert_AYUV_RGBA (d, FRAME_GET_STRIDE (dest), s,
+      FRAME_GET_STRIDE (src), data->im[0][0], data->im[0][2],
+      data->im[2][1], data->im[1][1], data->im[1][2], width, height);
+
+  convert_fill_border (convert, dest);
+}
+
+static void
+convert_I420_BGRA (GstVideoConverter * convert, const GstVideoFrame * src,
+    GstVideoFrame * dest)
+{
+  int i;
+  gint width = convert->in_width;
+  gint height = convert->in_height;
+  MatrixData *data = &convert->convert_matrix;
+
+  for (i = 0; i < height; i++) {
+    guint8 *sy, *su, *sv, *d;
+
+    d = FRAME_GET_LINE (dest, i + convert->out_y);
+    d += (convert->out_x * 4);
+    sy = FRAME_GET_Y_LINE (src, i + convert->in_y);
+    sy += convert->in_x;
+    su = FRAME_GET_U_LINE (src, (i + convert->in_y) >> 1);
+    su += (convert->in_x >> 1);
+    sv = FRAME_GET_V_LINE (src, (i + convert->in_y) >> 1);
+    sv += (convert->in_x >> 1);
+
+    video_orc_convert_I420_BGRA (d, sy, su, sv,
+        data->im[0][0], data->im[0][2],
+        data->im[2][1], data->im[1][1], data->im[1][2], width);
+  }
+  convert_fill_border (convert, dest);
+}
+#endif
+
+static void
+memset_u24 (guint8 * data, guint8 col[3], unsigned int n)
+{
+  unsigned int i;
+
+  for (i = 0; i < n; i++) {
+    data[0] = col[0];
+    data[1] = col[1];
+    data[2] = col[2];
+    data += 3;
+  }
+}
+
+static void
+memset_u32_16 (guint8 * data, guint8 col[4], unsigned int n)
+{
+  unsigned int i;
+
+  for (i = 0; i < n; i += 2) {
+    data[0] = col[0];
+    data[1] = col[1];
+    if (i + 1 < n) {
+      data[2] = col[2];
+      data[3] = col[3];
+    }
+    data += 4;
+  }
+}
+
+#define MAKE_BORDER_FUNC(func)                                                  \
+        for (i = 0; i < out_y; i++)                                             \
+          func (FRAME_GET_PLANE_LINE (dest, k, i), col, out_maxwidth);          \
+        if (rb_width || lb_width) {                                             \
+          for (i = 0; i < out_height; i++) {                                    \
+            guint8 *d = FRAME_GET_PLANE_LINE (dest, k, i + out_y);              \
+            if (lb_width)                                                       \
+              func (d, col, lb_width);                                          \
+            if (rb_width)                                                       \
+              func (d + (pstride * r_border), col, rb_width);                   \
+          }                                                                     \
+        }                                                                       \
+        for (i = out_y + out_height; i < out_maxheight; i++)                    \
+          func (FRAME_GET_PLANE_LINE (dest, k, i), col, out_maxwidth);          \
+
+static void
+convert_fill_border (GstVideoConverter * convert, GstVideoFrame * dest)
+{
+  int k, n_planes;
+  const GstVideoFormatInfo *out_finfo;
+
+  if (!convert->fill_border || !convert->borderline)
+    return;
+
+  out_finfo = convert->out_info.finfo;
+
+  n_planes = GST_VIDEO_FRAME_N_PLANES (dest);
+
+  for (k = 0; k < n_planes; k++) {
+    gint i, out_x, out_y, out_width, out_height, pstride, pgroup;
+    gint r_border, lb_width, rb_width;
+    gint out_maxwidth, out_maxheight;
+    gpointer borders;
+
+    out_x = GST_VIDEO_FORMAT_INFO_SCALE_WIDTH (out_finfo, k, convert->out_x);
+    out_y = GST_VIDEO_FORMAT_INFO_SCALE_HEIGHT (out_finfo, k, convert->out_y);
+    out_width =
+        GST_VIDEO_FORMAT_INFO_SCALE_WIDTH (out_finfo, k, convert->out_width);
+    out_height =
+        GST_VIDEO_FORMAT_INFO_SCALE_HEIGHT (out_finfo, k, convert->out_height);
+    out_maxwidth =
+        GST_VIDEO_FORMAT_INFO_SCALE_WIDTH (out_finfo, k, convert->out_maxwidth);
+    out_maxheight =
+        GST_VIDEO_FORMAT_INFO_SCALE_HEIGHT (out_finfo, k,
+        convert->out_maxheight);
+
+    r_border = out_x + out_width;
+    rb_width = out_maxwidth - r_border;
+    lb_width = out_x;
+
+    borders = &convert->borders[k];
+
+    pstride = GST_VIDEO_FORMAT_INFO_PSTRIDE (out_finfo, k);
+
+    switch (GST_VIDEO_FORMAT_INFO_FORMAT (out_finfo)) {
+      case GST_VIDEO_FORMAT_YUY2:
+      case GST_VIDEO_FORMAT_YVYU:
+      case GST_VIDEO_FORMAT_UYVY:
+        pgroup = 42;
+        break;
+      default:
+        pgroup = pstride;
+        break;
+    }
+
+    switch (pgroup) {
+      case 1:
+      {
+        guint8 col = ((guint8 *) borders)[0];
+        MAKE_BORDER_FUNC (memset);
+        break;
+      }
+      case 2:
+      {
+        guint16 col = ((guint16 *) borders)[0];
+        MAKE_BORDER_FUNC (video_orc_splat_u16);
+        break;
+      }
+      case 3:
+      {
+        guint8 col[3];
+        col[0] = ((guint8 *) borders)[0];
+        col[1] = ((guint8 *) borders)[1];
+        col[2] = ((guint8 *) borders)[2];
+        MAKE_BORDER_FUNC (memset_u24);
+        break;
+      }
+      case 4:
+      {
+        guint32 col = ((guint32 *) borders)[0];
+        MAKE_BORDER_FUNC (video_orc_splat_u32);
+        break;
+      }
+      case 8:
+      {
+        guint64 col = ((guint64 *) borders)[0];
+        MAKE_BORDER_FUNC (video_orc_splat_u64);
+        break;
+      }
+      case 42:
+      {
+        guint8 col[4];
+        col[0] = ((guint8 *) borders)[0];
+        col[2] = ((guint8 *) borders)[2];
+        col[1] = ((guint8 *) borders)[r_border & 1 ? 3 : 1];
+        col[3] = ((guint8 *) borders)[r_border & 1 ? 1 : 3];
+        MAKE_BORDER_FUNC (memset_u32_16);
+        break;
+      }
+      default:
+        break;
+    }
+  }
+}
+
+#define GET_TMP_LINE(fl,idx) &fl->data[fl->stride * ((idx) % fl->n_lines)]
+
+static void
+convert_plane_fill (GstVideoConverter * convert,
+    const GstVideoFrame * src, GstVideoFrame * dest, gint plane)
+{
+  guint8 *s, *d;
+  gint splane = convert->fsplane[plane];
+
+  s = FRAME_GET_PLANE_LINE (src, splane, convert->fin_y[splane]);
+  s += convert->fin_x[splane];
+  d = FRAME_GET_PLANE_LINE (dest, plane, convert->fout_y[plane]);
+  d += convert->fout_x[plane];
+
+  video_orc_memset_2d (d, FRAME_GET_PLANE_STRIDE (dest, plane),
+      convert->ffill[plane],
+      convert->fout_width[plane], convert->fout_height[plane]);
+}
+
+static void
+convert_plane_h_double (GstVideoConverter * convert,
+    const GstVideoFrame * src, GstVideoFrame * dest, gint plane)
+{
+  guint8 *s, *d;
+  gint splane = convert->fsplane[plane];
+
+  s = FRAME_GET_PLANE_LINE (src, splane, convert->fin_y[splane]);
+  s += convert->fin_x[splane];
+  d = FRAME_GET_PLANE_LINE (dest, plane, convert->fout_y[plane]);
+  d += convert->fout_x[plane];
+
+  video_orc_planar_chroma_422_444 (d,
+      FRAME_GET_PLANE_STRIDE (dest, plane), s,
+      FRAME_GET_PLANE_STRIDE (src, splane), convert->fout_width[plane] / 2,
+      convert->fout_height[plane]);
+}
+
+static void
+convert_plane_h_halve (GstVideoConverter * convert,
+    const GstVideoFrame * src, GstVideoFrame * dest, gint plane)
+{
+  guint8 *s, *d;
+  gint splane = convert->fsplane[plane];
+
+  s = FRAME_GET_PLANE_LINE (src, splane, convert->fin_y[splane]);
+  s += convert->fin_x[splane];
+  d = FRAME_GET_PLANE_LINE (dest, plane, convert->fout_y[plane]);
+  d += convert->fout_x[plane];
+
+  video_orc_planar_chroma_444_422 (d,
+      FRAME_GET_PLANE_STRIDE (dest, plane), s,
+      FRAME_GET_PLANE_STRIDE (src, splane), convert->fout_width[plane],
+      convert->fout_height[plane]);
+}
+
+static void
+convert_plane_v_double (GstVideoConverter * convert,
+    const GstVideoFrame * src, GstVideoFrame * dest, gint plane)
+{
+  guint8 *s, *d1, *d2;
+  gint ds, splane = convert->fsplane[plane];
+
+  s = FRAME_GET_PLANE_LINE (src, splane, convert->fin_y[splane]);
+  s += convert->fin_x[splane];
+  d1 = FRAME_GET_PLANE_LINE (dest, plane, convert->fout_y[plane]);
+  d1 += convert->fout_x[plane];
+  d2 = FRAME_GET_PLANE_LINE (dest, plane, convert->fout_y[plane] + 1);
+  d2 += convert->fout_x[plane];
+  ds = FRAME_GET_PLANE_STRIDE (dest, plane);
+
+  video_orc_planar_chroma_420_422 (d1, 2 * ds, d2, 2 * ds,
+      s, FRAME_GET_PLANE_STRIDE (src, splane), convert->fout_width[plane],
+      convert->fout_height[plane] / 2);
+}
+
+static void
+convert_plane_v_halve (GstVideoConverter * convert,
+    const GstVideoFrame * src, GstVideoFrame * dest, gint plane)
+{
+  guint8 *s1, *s2, *d;
+  gint ss, ds, splane = convert->fsplane[plane];
+
+  s1 = FRAME_GET_PLANE_LINE (src, splane, convert->fin_y[splane]);
+  s1 += convert->fin_x[splane];
+  s2 = FRAME_GET_PLANE_LINE (src, splane, convert->fin_y[splane] + 1);
+  s2 += convert->fin_x[splane];
+  d = FRAME_GET_PLANE_LINE (dest, plane, convert->fout_y[plane]);
+  d += convert->fout_x[plane];
+
+  ss = FRAME_GET_PLANE_STRIDE (src, splane);
+  ds = FRAME_GET_PLANE_STRIDE (dest, plane);
+
+  video_orc_planar_chroma_422_420 (d, ds, s1, 2 * ss, s2, 2 * ss,
+      convert->fout_width[plane], convert->fout_height[plane]);
+}
+
+static void
+convert_plane_hv_double (GstVideoConverter * convert,
+    const GstVideoFrame * src, GstVideoFrame * dest, gint plane)
+{
+  guint8 *s, *d1, *d2;
+  gint ss, ds, splane = convert->fsplane[plane];
+
+  s = FRAME_GET_PLANE_LINE (src, splane, convert->fin_y[splane]);
+  s += convert->fin_x[splane];
+  d1 = FRAME_GET_PLANE_LINE (dest, plane, convert->fout_y[plane]);
+  d1 += convert->fout_x[plane];
+  d2 = FRAME_GET_PLANE_LINE (dest, plane, convert->fout_y[plane] + 1);
+  d2 += convert->fout_x[plane];
+  ss = FRAME_GET_PLANE_STRIDE (src, splane);
+  ds = FRAME_GET_PLANE_STRIDE (dest, plane);
+
+  video_orc_planar_chroma_420_444 (d1, 2 * ds, d2, 2 * ds, s, ss,
+      (convert->fout_width[plane] + 1) / 2, convert->fout_height[plane] / 2);
+}
+
+static void
+convert_plane_hv_halve (GstVideoConverter * convert,
+    const GstVideoFrame * src, GstVideoFrame * dest, gint plane)
+{
+  guint8 *s1, *s2, *d;
+  gint ss, ds, splane = convert->fsplane[plane];
+
+  s1 = FRAME_GET_PLANE_LINE (src, splane, convert->fin_y[splane]);
+  s1 += convert->fin_x[splane];
+  s2 = FRAME_GET_PLANE_LINE (src, splane, convert->fin_y[splane] + 1);
+  s2 += convert->fin_x[splane];
+  d = FRAME_GET_PLANE_LINE (dest, plane, convert->fout_y[plane]);
+  d += convert->fout_x[plane];
+  ss = FRAME_GET_PLANE_STRIDE (src, splane);
+  ds = FRAME_GET_PLANE_STRIDE (dest, plane);
+
+  video_orc_planar_chroma_444_420 (d, ds, s1, 2 * ss, s2, 2 * ss,
+      convert->fout_width[plane], convert->fout_height[plane]);
+}
+
+static void
+convert_plane_hv (GstVideoConverter * convert,
+    const GstVideoFrame * src, GstVideoFrame * dest, gint plane)
+{
+  gint in_x, in_y, out_x, out_y, out_width, out_height;
+  GstVideoFormat format;
+  GstVideoScaler *h_scaler, *v_scaler;
+  gint splane = convert->fsplane[plane];
+  guint8 *s, *d;
+
+  in_x = convert->fin_x[splane];
+  in_y = convert->fin_y[splane];
+  out_x = convert->fout_x[plane];
+  out_y = convert->fout_y[plane];
+  out_width = convert->fout_width[plane];
+  out_height = convert->fout_height[plane];
+  format = convert->fformat[plane];
+
+  h_scaler = convert->fh_scaler[plane];
+  v_scaler = convert->fv_scaler[plane];
+
+  s = FRAME_GET_PLANE_LINE (src, splane, in_y);
+  s += in_x;
+  d = FRAME_GET_PLANE_LINE (dest, plane, out_y);
+  d += out_x;
+
+  gst_video_scaler_2d (h_scaler, v_scaler, format,
+      s, FRAME_GET_PLANE_STRIDE (src, splane),
+      d, FRAME_GET_PLANE_STRIDE (dest, plane), 0, 0, out_width, out_height);
+}
+
+static void
+convert_scale_planes (GstVideoConverter * convert,
+    const GstVideoFrame * src, GstVideoFrame * dest)
+{
+  int i, n_planes;
+
+  n_planes = GST_VIDEO_FRAME_N_PLANES (dest);
+  for (i = 0; i < n_planes; i++) {
+    if (convert->fconvert[i])
+      convert->fconvert[i] (convert, src, dest, i);
+  }
+  convert_fill_border (convert, dest);
+}
+
+static GstVideoFormat
+get_scale_format (GstVideoFormat format, gint plane)
+{
+  GstVideoFormat res = GST_VIDEO_FORMAT_UNKNOWN;
+
+  switch (format) {
+    case GST_VIDEO_FORMAT_I420:
+    case GST_VIDEO_FORMAT_YV12:
+    case GST_VIDEO_FORMAT_Y41B:
+    case GST_VIDEO_FORMAT_Y42B:
+    case GST_VIDEO_FORMAT_Y444:
+    case GST_VIDEO_FORMAT_GRAY8:
+    case GST_VIDEO_FORMAT_A420:
+    case GST_VIDEO_FORMAT_YUV9:
+    case GST_VIDEO_FORMAT_YVU9:
+    case GST_VIDEO_FORMAT_GBR:
+      res = GST_VIDEO_FORMAT_GRAY8;
+      break;
+    case GST_VIDEO_FORMAT_GRAY16_BE:
+    case GST_VIDEO_FORMAT_GRAY16_LE:
+      res = GST_VIDEO_FORMAT_GRAY16_BE;
+      break;
+    case GST_VIDEO_FORMAT_YUY2:
+    case GST_VIDEO_FORMAT_UYVY:
+    case GST_VIDEO_FORMAT_YVYU:
+    case GST_VIDEO_FORMAT_AYUV:
+    case GST_VIDEO_FORMAT_RGBx:
+    case GST_VIDEO_FORMAT_BGRx:
+    case GST_VIDEO_FORMAT_xRGB:
+    case GST_VIDEO_FORMAT_xBGR:
+    case GST_VIDEO_FORMAT_RGBA:
+    case GST_VIDEO_FORMAT_BGRA:
+    case GST_VIDEO_FORMAT_ARGB:
+    case GST_VIDEO_FORMAT_ABGR:
+    case GST_VIDEO_FORMAT_RGB:
+    case GST_VIDEO_FORMAT_BGR:
+    case GST_VIDEO_FORMAT_v308:
+    case GST_VIDEO_FORMAT_ARGB64:
+    case GST_VIDEO_FORMAT_AYUV64:
+      res = format;
+      break;
+    case GST_VIDEO_FORMAT_RGB15:
+    case GST_VIDEO_FORMAT_BGR15:
+    case GST_VIDEO_FORMAT_RGB16:
+    case GST_VIDEO_FORMAT_BGR16:
+      res = GST_VIDEO_FORMAT_NV12;
+      break;
+    case GST_VIDEO_FORMAT_NV12:
+    case GST_VIDEO_FORMAT_NV21:
+    case GST_VIDEO_FORMAT_NV16:
+    case GST_VIDEO_FORMAT_NV24:
+      res = plane == 0 ? GST_VIDEO_FORMAT_GRAY8 : GST_VIDEO_FORMAT_NV12;
+      break;
+    case GST_VIDEO_FORMAT_UNKNOWN:
+    case GST_VIDEO_FORMAT_ENCODED:
+    case GST_VIDEO_FORMAT_v210:
+    case GST_VIDEO_FORMAT_v216:
+    case GST_VIDEO_FORMAT_UYVP:
+    case GST_VIDEO_FORMAT_RGB8P:
+    case GST_VIDEO_FORMAT_IYU1:
+    case GST_VIDEO_FORMAT_r210:
+    case GST_VIDEO_FORMAT_I420_10BE:
+    case GST_VIDEO_FORMAT_I420_10LE:
+    case GST_VIDEO_FORMAT_I422_10BE:
+    case GST_VIDEO_FORMAT_I422_10LE:
+    case GST_VIDEO_FORMAT_Y444_10BE:
+    case GST_VIDEO_FORMAT_Y444_10LE:
+    case GST_VIDEO_FORMAT_GBR_10BE:
+    case GST_VIDEO_FORMAT_GBR_10LE:
+    case GST_VIDEO_FORMAT_NV12_64Z32:
+    case GST_VIDEO_FORMAT_A420_10BE:
+    case GST_VIDEO_FORMAT_A420_10LE:
+    case GST_VIDEO_FORMAT_A422_10BE:
+    case GST_VIDEO_FORMAT_A422_10LE:
+    case GST_VIDEO_FORMAT_A444_10BE:
+    case GST_VIDEO_FORMAT_A444_10LE:
+      res = format;
+      g_assert_not_reached ();
+      break;
+  }
+  return res;
+}
+
+static gboolean
+is_merge_yuv (GstVideoInfo * info)
+{
+  switch (GST_VIDEO_INFO_FORMAT (info)) {
+    case GST_VIDEO_FORMAT_YUY2:
+    case GST_VIDEO_FORMAT_YVYU:
+    case GST_VIDEO_FORMAT_UYVY:
+      return TRUE;
+    default:
+      return FALSE;
+  }
+}
+
+static gboolean
+setup_scale (GstVideoConverter * convert)
+{
+  int i, n_planes;
+  gint method, cr_method, stride, in_width, in_height, out_width, out_height;
+  guint taps, max_taps = 0;
+  GstVideoInfo *in_info, *out_info;
+  const GstVideoFormatInfo *in_finfo, *out_finfo;
+  GstVideoFormat in_format, out_format;
+
+  in_info = &convert->in_info;
+  out_info = &convert->out_info;
+
+  in_finfo = in_info->finfo;
+  out_finfo = out_info->finfo;
+
+  n_planes = GST_VIDEO_INFO_N_PLANES (out_info);
+
+  method = GET_OPT_RESAMPLER_METHOD (convert);
+  if (method == GST_VIDEO_RESAMPLER_METHOD_NEAREST)
+    cr_method = method;
+  else
+    cr_method = GET_OPT_CHROMA_RESAMPLER_METHOD (convert);
+  taps = GET_OPT_RESAMPLER_TAPS (convert);
+
+  in_format = GST_VIDEO_INFO_FORMAT (in_info);
+  out_format = GST_VIDEO_INFO_FORMAT (out_info);
+
+  switch (in_format) {
+    case GST_VIDEO_FORMAT_RGB15:
+    case GST_VIDEO_FORMAT_RGB16:
+    case GST_VIDEO_FORMAT_BGR15:
+    case GST_VIDEO_FORMAT_BGR16:
+#if G_BYTE_ORDER == G_LITTLE_ENDIAN
+    case GST_VIDEO_FORMAT_GRAY16_BE:
+#else
+    case GST_VIDEO_FORMAT_GRAY16_LE:
+#endif
+      if (method != GST_VIDEO_RESAMPLER_METHOD_NEAREST) {
+        GST_DEBUG ("%s only with nearest resampling",
+            gst_video_format_to_string (in_format));
+        return FALSE;
+      }
+      break;
+    default:
+      break;
+  }
+
+  in_width = convert->in_width;
+  in_height = convert->in_height;
+  out_width = convert->out_width;
+  out_height = convert->out_height;
+
+  stride = 0;
+
+  if (n_planes == 1 && !GST_VIDEO_FORMAT_INFO_IS_GRAY (out_finfo)) {
+    gint pstride;
+
+    if (is_merge_yuv (in_info)) {
+      GstVideoScaler *y_scaler, *uv_scaler;
+
+      if (in_width != out_width) {
+        y_scaler =
+            gst_video_scaler_new (method, GST_VIDEO_SCALER_FLAG_NONE, taps,
+            GST_VIDEO_FORMAT_INFO_SCALE_WIDTH (in_finfo, GST_VIDEO_COMP_Y,
+                in_width), GST_VIDEO_FORMAT_INFO_SCALE_WIDTH (out_finfo,
+                GST_VIDEO_COMP_Y, out_width), convert->config);
+        uv_scaler =
+            gst_video_scaler_new (method, GST_VIDEO_SCALER_FLAG_NONE, taps,
+            GST_VIDEO_FORMAT_INFO_SCALE_WIDTH (in_finfo, GST_VIDEO_COMP_U,
+                in_width), GST_VIDEO_FORMAT_INFO_SCALE_WIDTH (out_finfo,
+                GST_VIDEO_COMP_U, out_width), convert->config);
+
+        convert->fh_scaler[0] =
+            gst_video_scaler_combine_packed_YUV (y_scaler, uv_scaler,
+            in_format, out_format);
+
+        gst_video_scaler_free (y_scaler);
+        gst_video_scaler_free (uv_scaler);
+      } else
+        convert->fh_scaler[0] = NULL;
+
+      pstride = GST_VIDEO_FORMAT_INFO_PSTRIDE (out_finfo, GST_VIDEO_COMP_Y);
+      convert->fin_x[0] = GST_ROUND_UP_2 (convert->in_x) * pstride;
+      convert->fout_x[0] = GST_ROUND_UP_2 (convert->out_x) * pstride;
+
+    } else {
+      if (in_width != out_width && in_width != 0 && out_width != 0)
+        convert->fh_scaler[0] =
+            gst_video_scaler_new (method, GST_VIDEO_SCALER_FLAG_NONE, taps,
+            in_width, out_width, convert->config);
+      else
+        convert->fh_scaler[0] = NULL;
+
+      pstride = GST_VIDEO_FORMAT_INFO_PSTRIDE (out_finfo, GST_VIDEO_COMP_R);
+      convert->fin_x[0] = convert->in_x * pstride;
+      convert->fout_x[0] = convert->out_x * pstride;
+    }
+    stride = MAX (stride, GST_VIDEO_INFO_PLANE_STRIDE (in_info, 0));
+    stride = MAX (stride, GST_VIDEO_INFO_PLANE_STRIDE (out_info, 0));
+
+    if (in_height != out_height && in_height != 0 && out_height != 0) {
+      convert->fv_scaler[0] =
+          gst_video_scaler_new (method, GST_VIDEO_SCALER_FLAG_NONE, taps,
+          in_height, out_height, convert->config);
+      gst_video_scaler_get_coeff (convert->fv_scaler[0], 0, NULL, &max_taps);
+    } else {
+      convert->fv_scaler[0] = NULL;
+    }
+
+    convert->fin_y[0] = convert->in_y;
+    convert->fout_y[0] = convert->out_y;
+    convert->fout_width[0] = out_width;
+    convert->fout_height[0] = out_height;
+    convert->fconvert[0] = convert_plane_hv;
+    convert->fformat[0] = get_scale_format (in_format, 0);
+    convert->fsplane[0] = 0;
+  } else {
+    for (i = 0; i < n_planes; i++) {
+      guint n_taps = 0;
+      gint comp, n_comp, j, iw, ih, ow, oh, pstride;
+      gboolean need_v_scaler, need_h_scaler;
+      GstStructure *config;
+      gint resample_method;
+
+      n_comp = GST_VIDEO_FORMAT_INFO_N_COMPONENTS (in_finfo);
+
+      /* find the component in this plane and map it to the plane of
+       * the source */
+      comp = -1;
+      for (j = 0; j < n_comp; j++) {
+        if (GST_VIDEO_FORMAT_INFO_PLANE (out_finfo, j) == i) {
+          comp = j;
+          break;
+        }
+      }
+
+      stride = MAX (stride, GST_VIDEO_INFO_COMP_STRIDE (in_info, i));
+      stride = MAX (stride, GST_VIDEO_INFO_COMP_STRIDE (out_info, i));
+
+      iw = GST_VIDEO_FORMAT_INFO_SCALE_WIDTH (in_finfo, i, in_width);
+      ih = GST_VIDEO_FORMAT_INFO_SCALE_HEIGHT (in_finfo, i, in_height);
+      ow = GST_VIDEO_FORMAT_INFO_SCALE_WIDTH (out_finfo, i, out_width);
+      oh = GST_VIDEO_FORMAT_INFO_SCALE_HEIGHT (out_finfo, i, out_height);
+
+      GST_DEBUG ("plane %d: %dx%d -> %dx%d", i, iw, ih, ow, oh);
+
+      convert->fout_width[i] = ow;
+      convert->fout_height[i] = oh;
+
+      pstride = GST_VIDEO_FORMAT_INFO_PSTRIDE (out_finfo, i);
+      convert->fin_x[i] =
+          GST_VIDEO_FORMAT_INFO_SCALE_WIDTH (in_finfo, i, convert->in_x);
+      convert->fin_x[i] *= pstride;
+      convert->fin_y[i] =
+          GST_VIDEO_FORMAT_INFO_SCALE_HEIGHT (in_finfo, i, convert->in_y);
+      convert->fout_x[i] =
+          GST_VIDEO_FORMAT_INFO_SCALE_WIDTH (out_finfo, i, convert->out_x);
+      convert->fout_x[i] *= pstride;
+      convert->fout_y[i] =
+          GST_VIDEO_FORMAT_INFO_SCALE_HEIGHT (out_finfo, i, convert->out_y);
+
+      GST_DEBUG ("plane %d: pstride %d", i, pstride);
+      GST_DEBUG ("plane %d: in_x %d, in_y %d", i, convert->fin_x[i],
+          convert->fin_y[i]);
+      GST_DEBUG ("plane %d: out_x %d, out_y %d", i, convert->fout_x[i],
+          convert->fout_y[i]);
+
+      if (comp == -1) {
+        convert->fconvert[i] = convert_plane_fill;
+        if (GST_VIDEO_INFO_IS_YUV (out_info)) {
+          if (i == 3)
+            convert->ffill[i] = convert->alpha_value;
+          if (i == 0)
+            convert->ffill[i] = 0x00;
+          else
+            convert->ffill[i] = 0x80;
+        } else {
+          if (i == 3)
+            convert->ffill[i] = convert->alpha_value;
+          else
+            convert->ffill[i] = 0x00;
+        }
+        GST_DEBUG ("plane %d fill %02x", i, convert->ffill[i]);
+        continue;
+      } else {
+        convert->fsplane[i] = GST_VIDEO_FORMAT_INFO_PLANE (in_finfo, comp);
+        GST_DEBUG ("plane %d -> %d (comp %d)", i, convert->fsplane[i], comp);
+      }
+
+      config = gst_structure_copy (convert->config);
+
+      resample_method = (i == 0 ? method : cr_method);
+
+      need_v_scaler = FALSE;
+      need_h_scaler = FALSE;
+      if (iw == ow) {
+        if (ih == oh) {
+          convert->fconvert[i] = convert_plane_hv;
+          GST_DEBUG ("plane %d: copy", i);
+        } else if (ih == 2 * oh && pstride == 1
+            && resample_method == GST_VIDEO_RESAMPLER_METHOD_LINEAR) {
+          convert->fconvert[i] = convert_plane_v_halve;
+          GST_DEBUG ("plane %d: vertical halve", i);
+        } else if (2 * ih == oh && pstride == 1
+            && resample_method == GST_VIDEO_RESAMPLER_METHOD_NEAREST) {
+          convert->fconvert[i] = convert_plane_v_double;
+          GST_DEBUG ("plane %d: vertical double", i);
+        } else {
+          convert->fconvert[i] = convert_plane_hv;
+          GST_DEBUG ("plane %d: vertical scale", i);
+          need_v_scaler = TRUE;
+        }
+      } else if (ih == oh) {
+        if (iw == 2 * ow && pstride == 1
+            && resample_method == GST_VIDEO_RESAMPLER_METHOD_LINEAR) {
+          convert->fconvert[i] = convert_plane_h_halve;
+          GST_DEBUG ("plane %d: horizontal halve", i);
+        } else if (2 * iw == ow && pstride == 1
+            && resample_method == GST_VIDEO_RESAMPLER_METHOD_NEAREST) {
+          convert->fconvert[i] = convert_plane_h_double;
+          GST_DEBUG ("plane %d: horizontal double", i);
+        } else {
+          convert->fconvert[i] = convert_plane_hv;
+          GST_DEBUG ("plane %d: horizontal scale", i);
+          need_h_scaler = TRUE;
+        }
+      } else {
+        if (iw == 2 * ow && ih == 2 * oh && pstride == 1
+            && resample_method == GST_VIDEO_RESAMPLER_METHOD_LINEAR) {
+          convert->fconvert[i] = convert_plane_hv_halve;
+          GST_DEBUG ("plane %d: horizontal/vertical halve", i);
+        } else if (2 * iw == ow && 2 * ih == oh && pstride == 1
+            && resample_method == GST_VIDEO_RESAMPLER_METHOD_NEAREST) {
+          convert->fconvert[i] = convert_plane_hv_double;
+          GST_DEBUG ("plane %d: horizontal/vertical double", i);
+        } else {
+          convert->fconvert[i] = convert_plane_hv;
+          GST_DEBUG ("plane %d: horizontal/vertical scale", i);
+          need_v_scaler = TRUE;
+          need_h_scaler = TRUE;
+        }
+      }
+
+      if (need_h_scaler && iw != 0 && ow != 0) {
+        convert->fh_scaler[i] = gst_video_scaler_new (resample_method,
+            GST_VIDEO_SCALER_FLAG_NONE, taps, iw, ow, config);
+      } else
+        convert->fh_scaler[i] = NULL;
+
+      if (need_v_scaler && ih != 0 && oh != 0) {
+        convert->fv_scaler[i] = gst_video_scaler_new (resample_method,
+            GST_VIDEO_SCALER_FLAG_NONE, taps, ih, oh, config);
+        gst_video_scaler_get_coeff (convert->fv_scaler[i], 0, NULL, &n_taps);
+      } else
+        convert->fv_scaler[i] = NULL;
+
+      gst_structure_free (config);
+      max_taps = MAX (max_taps, n_taps);
+      convert->fformat[i] = get_scale_format (in_format, i);
+    }
+  }
+
+  return TRUE;
+}
+
+/* Fast paths */
+
+typedef struct
+{
+  GstVideoFormat in_format;
+  GstVideoFormat out_format;
+  gboolean keeps_interlaced;
+  gboolean needs_color_matrix;
+  gboolean keeps_size;
+  gboolean do_crop;
+  gboolean do_border;
+  gboolean alpha_copy;
+  gboolean alpha_set;
+  gboolean alpha_mult;
+  gint width_align, height_align;
+  void (*convert) (GstVideoConverter * convert, const GstVideoFrame * src,
+      GstVideoFrame * dest);
+} VideoTransform;
+
+static const VideoTransform transforms[] = {
+  /* planar -> packed */
+  {GST_VIDEO_FORMAT_I420, GST_VIDEO_FORMAT_YUY2, TRUE, FALSE, TRUE, FALSE,
+      FALSE, FALSE, FALSE, FALSE, 0, 0, convert_I420_YUY2},
+  {GST_VIDEO_FORMAT_I420, GST_VIDEO_FORMAT_UYVY, TRUE, FALSE, TRUE, FALSE,
+      FALSE, FALSE, FALSE, FALSE, 0, 0, convert_I420_UYVY},
+  {GST_VIDEO_FORMAT_I420, GST_VIDEO_FORMAT_AYUV, TRUE, FALSE, TRUE, FALSE,
+      FALSE, FALSE, TRUE, FALSE, 0, 0, convert_I420_AYUV},
+
+  {GST_VIDEO_FORMAT_YV12, GST_VIDEO_FORMAT_YUY2, TRUE, FALSE, TRUE, FALSE,
+      FALSE, FALSE, FALSE, FALSE, 0, 0, convert_I420_YUY2},
+  {GST_VIDEO_FORMAT_YV12, GST_VIDEO_FORMAT_UYVY, TRUE, FALSE, TRUE, FALSE,
+      FALSE, FALSE, FALSE, FALSE, 0, 0, convert_I420_UYVY},
+  {GST_VIDEO_FORMAT_YV12, GST_VIDEO_FORMAT_AYUV, TRUE, FALSE, TRUE, FALSE,
+      FALSE, FALSE, TRUE, FALSE, 0, 0, convert_I420_AYUV},
+
+  {GST_VIDEO_FORMAT_Y42B, GST_VIDEO_FORMAT_YUY2, TRUE, FALSE, TRUE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_Y42B_YUY2},
+  {GST_VIDEO_FORMAT_Y42B, GST_VIDEO_FORMAT_UYVY, TRUE, FALSE, TRUE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_Y42B_UYVY},
+  {GST_VIDEO_FORMAT_Y42B, GST_VIDEO_FORMAT_AYUV, TRUE, FALSE, TRUE, TRUE,
+      TRUE, FALSE, TRUE, FALSE, 1, 0, convert_Y42B_AYUV},
+
+  {GST_VIDEO_FORMAT_Y444, GST_VIDEO_FORMAT_YUY2, TRUE, FALSE, TRUE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 1, 0, convert_Y444_YUY2},
+  {GST_VIDEO_FORMAT_Y444, GST_VIDEO_FORMAT_UYVY, TRUE, FALSE, TRUE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 1, 0, convert_Y444_UYVY},
+  {GST_VIDEO_FORMAT_Y444, GST_VIDEO_FORMAT_AYUV, TRUE, FALSE, TRUE, TRUE,
+      TRUE, FALSE, TRUE, FALSE, 0, 0, convert_Y444_AYUV},
+
+  /* packed -> packed */
+  {GST_VIDEO_FORMAT_YUY2, GST_VIDEO_FORMAT_YUY2, TRUE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_YUY2, GST_VIDEO_FORMAT_UYVY, TRUE, FALSE, TRUE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_UYVY_YUY2},      /* alias */
+  {GST_VIDEO_FORMAT_YUY2, GST_VIDEO_FORMAT_AYUV, TRUE, FALSE, TRUE, TRUE,
+      TRUE, FALSE, TRUE, FALSE, 1, 0, convert_YUY2_AYUV},
+
+  {GST_VIDEO_FORMAT_UYVY, GST_VIDEO_FORMAT_UYVY, TRUE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_UYVY, GST_VIDEO_FORMAT_YUY2, TRUE, FALSE, TRUE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_UYVY_YUY2},
+  {GST_VIDEO_FORMAT_UYVY, GST_VIDEO_FORMAT_AYUV, TRUE, FALSE, TRUE, TRUE,
+      TRUE, FALSE, TRUE, FALSE, 0, 0, convert_UYVY_AYUV},
+
+  {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_FORMAT_AYUV, TRUE, FALSE, FALSE, TRUE, TRUE,
+      TRUE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_FORMAT_YUY2, TRUE, FALSE, TRUE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 1, 0, convert_AYUV_YUY2},
+  {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_FORMAT_UYVY, TRUE, FALSE, TRUE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 1, 0, convert_AYUV_UYVY},
+
+  /* packed -> planar */
+  {GST_VIDEO_FORMAT_YUY2, GST_VIDEO_FORMAT_I420, TRUE, FALSE, TRUE, FALSE,
+      FALSE, FALSE, FALSE, FALSE, 0, 0, convert_YUY2_I420},
+  {GST_VIDEO_FORMAT_YUY2, GST_VIDEO_FORMAT_YV12, TRUE, FALSE, TRUE, FALSE,
+      FALSE, FALSE, FALSE, FALSE, 0, 0, convert_YUY2_I420},
+  {GST_VIDEO_FORMAT_YUY2, GST_VIDEO_FORMAT_Y42B, TRUE, FALSE, TRUE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_YUY2_Y42B},
+  {GST_VIDEO_FORMAT_YUY2, GST_VIDEO_FORMAT_Y444, TRUE, FALSE, TRUE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_YUY2_Y444},
+
+  {GST_VIDEO_FORMAT_UYVY, GST_VIDEO_FORMAT_I420, TRUE, FALSE, TRUE, FALSE,
+      FALSE, FALSE, FALSE, FALSE, 0, 0, convert_UYVY_I420},
+  {GST_VIDEO_FORMAT_UYVY, GST_VIDEO_FORMAT_YV12, TRUE, FALSE, TRUE, FALSE,
+      FALSE, FALSE, FALSE, FALSE, 0, 0, convert_UYVY_I420},
+  {GST_VIDEO_FORMAT_UYVY, GST_VIDEO_FORMAT_Y42B, TRUE, FALSE, TRUE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_UYVY_Y42B},
+  {GST_VIDEO_FORMAT_UYVY, GST_VIDEO_FORMAT_Y444, TRUE, FALSE, TRUE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_UYVY_Y444},
+
+  {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_FORMAT_I420, FALSE, FALSE, TRUE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 1, 1, convert_AYUV_I420},
+  {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_FORMAT_YV12, FALSE, FALSE, TRUE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 1, 1, convert_AYUV_I420},
+  {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_FORMAT_Y42B, TRUE, FALSE, TRUE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 1, 0, convert_AYUV_Y42B},
+  {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_FORMAT_Y444, TRUE, FALSE, TRUE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_AYUV_Y444},
+
+  /* planar -> planar */
+  {GST_VIDEO_FORMAT_I420, GST_VIDEO_FORMAT_I420, FALSE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_I420, GST_VIDEO_FORMAT_YV12, FALSE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_I420, GST_VIDEO_FORMAT_Y41B, FALSE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_I420, GST_VIDEO_FORMAT_Y42B, FALSE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_I420, GST_VIDEO_FORMAT_Y444, FALSE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_I420, GST_VIDEO_FORMAT_GRAY8, FALSE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_I420, GST_VIDEO_FORMAT_A420, FALSE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, TRUE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_I420, GST_VIDEO_FORMAT_YUV9, FALSE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_I420, GST_VIDEO_FORMAT_YVU9, FALSE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+
+  {GST_VIDEO_FORMAT_YV12, GST_VIDEO_FORMAT_I420, FALSE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_YV12, GST_VIDEO_FORMAT_YV12, FALSE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_YV12, GST_VIDEO_FORMAT_Y41B, FALSE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_YV12, GST_VIDEO_FORMAT_Y42B, FALSE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_YV12, GST_VIDEO_FORMAT_Y444, FALSE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_YV12, GST_VIDEO_FORMAT_GRAY8, FALSE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_YV12, GST_VIDEO_FORMAT_A420, FALSE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, TRUE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_YV12, GST_VIDEO_FORMAT_YUV9, FALSE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_YV12, GST_VIDEO_FORMAT_YVU9, FALSE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+
+  {GST_VIDEO_FORMAT_Y41B, GST_VIDEO_FORMAT_I420, FALSE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_Y41B, GST_VIDEO_FORMAT_YV12, FALSE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_Y41B, GST_VIDEO_FORMAT_Y41B, FALSE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_Y41B, GST_VIDEO_FORMAT_Y42B, FALSE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_Y41B, GST_VIDEO_FORMAT_Y444, FALSE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_Y41B, GST_VIDEO_FORMAT_GRAY8, FALSE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_Y41B, GST_VIDEO_FORMAT_A420, FALSE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, TRUE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_Y41B, GST_VIDEO_FORMAT_YUV9, FALSE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_Y41B, GST_VIDEO_FORMAT_YVU9, FALSE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+
+  {GST_VIDEO_FORMAT_Y42B, GST_VIDEO_FORMAT_I420, FALSE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_Y42B, GST_VIDEO_FORMAT_YV12, FALSE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_Y42B, GST_VIDEO_FORMAT_Y41B, FALSE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_Y42B, GST_VIDEO_FORMAT_Y42B, FALSE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_Y42B, GST_VIDEO_FORMAT_Y444, FALSE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_Y42B, GST_VIDEO_FORMAT_GRAY8, FALSE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_Y42B, GST_VIDEO_FORMAT_A420, FALSE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, TRUE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_Y42B, GST_VIDEO_FORMAT_YUV9, FALSE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_Y42B, GST_VIDEO_FORMAT_YVU9, FALSE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+
+  {GST_VIDEO_FORMAT_Y444, GST_VIDEO_FORMAT_I420, FALSE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_Y444, GST_VIDEO_FORMAT_YV12, FALSE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_Y444, GST_VIDEO_FORMAT_Y41B, FALSE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_Y444, GST_VIDEO_FORMAT_Y42B, FALSE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_Y444, GST_VIDEO_FORMAT_Y444, FALSE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_Y444, GST_VIDEO_FORMAT_GRAY8, FALSE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_Y444, GST_VIDEO_FORMAT_A420, FALSE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, TRUE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_Y444, GST_VIDEO_FORMAT_YUV9, FALSE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_Y444, GST_VIDEO_FORMAT_YVU9, FALSE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+
+  {GST_VIDEO_FORMAT_GRAY8, GST_VIDEO_FORMAT_I420, FALSE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_GRAY8, GST_VIDEO_FORMAT_YV12, FALSE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_GRAY8, GST_VIDEO_FORMAT_Y41B, FALSE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_GRAY8, GST_VIDEO_FORMAT_Y42B, FALSE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_GRAY8, GST_VIDEO_FORMAT_Y444, FALSE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_GRAY8, GST_VIDEO_FORMAT_GRAY8, FALSE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_GRAY8, GST_VIDEO_FORMAT_A420, FALSE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, TRUE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_GRAY8, GST_VIDEO_FORMAT_YUV9, FALSE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_GRAY8, GST_VIDEO_FORMAT_YVU9, FALSE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+
+  {GST_VIDEO_FORMAT_A420, GST_VIDEO_FORMAT_I420, FALSE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_A420, GST_VIDEO_FORMAT_YV12, FALSE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_A420, GST_VIDEO_FORMAT_Y41B, FALSE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_A420, GST_VIDEO_FORMAT_Y42B, FALSE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_A420, GST_VIDEO_FORMAT_Y444, FALSE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_A420, GST_VIDEO_FORMAT_GRAY8, FALSE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_A420, GST_VIDEO_FORMAT_A420, FALSE, FALSE, FALSE, TRUE,
+      TRUE, TRUE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_A420, GST_VIDEO_FORMAT_YUV9, FALSE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_A420, GST_VIDEO_FORMAT_YVU9, FALSE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+
+  {GST_VIDEO_FORMAT_YUV9, GST_VIDEO_FORMAT_I420, FALSE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_YUV9, GST_VIDEO_FORMAT_YV12, FALSE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_YUV9, GST_VIDEO_FORMAT_Y41B, FALSE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_YUV9, GST_VIDEO_FORMAT_Y42B, FALSE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_YUV9, GST_VIDEO_FORMAT_Y444, FALSE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_YUV9, GST_VIDEO_FORMAT_GRAY8, FALSE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_YUV9, GST_VIDEO_FORMAT_A420, FALSE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, TRUE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_YUV9, GST_VIDEO_FORMAT_YUV9, FALSE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_YUV9, GST_VIDEO_FORMAT_YVU9, FALSE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+
+  {GST_VIDEO_FORMAT_YVU9, GST_VIDEO_FORMAT_I420, FALSE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_YVU9, GST_VIDEO_FORMAT_YV12, FALSE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_YVU9, GST_VIDEO_FORMAT_Y41B, FALSE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_YVU9, GST_VIDEO_FORMAT_Y42B, FALSE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_YVU9, GST_VIDEO_FORMAT_Y444, FALSE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_YVU9, GST_VIDEO_FORMAT_GRAY8, FALSE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_YVU9, GST_VIDEO_FORMAT_A420, FALSE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, TRUE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_YVU9, GST_VIDEO_FORMAT_YUV9, FALSE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_YVU9, GST_VIDEO_FORMAT_YVU9, FALSE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+
+  /* sempiplanar -> semiplanar */
+  {GST_VIDEO_FORMAT_NV12, GST_VIDEO_FORMAT_NV12, TRUE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_NV12, GST_VIDEO_FORMAT_NV16, TRUE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_NV12, GST_VIDEO_FORMAT_NV24, TRUE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+
+  {GST_VIDEO_FORMAT_NV21, GST_VIDEO_FORMAT_NV21, TRUE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+
+  {GST_VIDEO_FORMAT_NV16, GST_VIDEO_FORMAT_NV12, TRUE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_NV16, GST_VIDEO_FORMAT_NV16, TRUE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_NV16, GST_VIDEO_FORMAT_NV24, TRUE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+
+  {GST_VIDEO_FORMAT_NV24, GST_VIDEO_FORMAT_NV12, TRUE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_NV24, GST_VIDEO_FORMAT_NV16, TRUE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_NV24, GST_VIDEO_FORMAT_NV24, TRUE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+
+#if G_BYTE_ORDER == G_LITTLE_ENDIAN
+  {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_FORMAT_ARGB, TRUE, TRUE, TRUE, TRUE, TRUE,
+      TRUE, FALSE, FALSE, 0, 0, convert_AYUV_ARGB},
+  {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_FORMAT_BGRA, TRUE, TRUE, TRUE, TRUE, TRUE,
+      TRUE, FALSE, FALSE, 0, 0, convert_AYUV_BGRA},
+  {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_FORMAT_xRGB, TRUE, TRUE, TRUE, TRUE, TRUE,
+      FALSE, FALSE, FALSE, 0, 0, convert_AYUV_ARGB},    /* alias */
+  {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_FORMAT_BGRx, TRUE, TRUE, TRUE, TRUE, TRUE,
+      FALSE, FALSE, FALSE, 0, 0, convert_AYUV_BGRA},    /* alias */
+  {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_FORMAT_ABGR, TRUE, TRUE, TRUE, TRUE, TRUE,
+      TRUE, FALSE, FALSE, 0, 0, convert_AYUV_ABGR},
+  {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_FORMAT_RGBA, TRUE, TRUE, TRUE, TRUE, TRUE,
+      TRUE, FALSE, FALSE, 0, 0, convert_AYUV_RGBA},
+  {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_FORMAT_xBGR, TRUE, TRUE, TRUE, TRUE, TRUE,
+      FALSE, FALSE, FALSE, 0, 0, convert_AYUV_ABGR},    /* alias */
+  {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_FORMAT_RGBx, TRUE, TRUE, TRUE, TRUE, TRUE,
+      FALSE, FALSE, FALSE, 0, 0, convert_AYUV_RGBA},    /* alias */
+
+  {GST_VIDEO_FORMAT_I420, GST_VIDEO_FORMAT_BGRA, FALSE, TRUE, TRUE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_I420_BGRA},
+  {GST_VIDEO_FORMAT_I420, GST_VIDEO_FORMAT_BGRx, FALSE, TRUE, TRUE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_I420_BGRA},
+  {GST_VIDEO_FORMAT_YV12, GST_VIDEO_FORMAT_BGRA, FALSE, TRUE, TRUE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_I420_BGRA},
+  {GST_VIDEO_FORMAT_YV12, GST_VIDEO_FORMAT_BGRx, FALSE, TRUE, TRUE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_I420_BGRA},
+#endif
+
+  /* scalers */
+  {GST_VIDEO_FORMAT_GBR, GST_VIDEO_FORMAT_GBR, TRUE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+
+  {GST_VIDEO_FORMAT_YVYU, GST_VIDEO_FORMAT_YVYU, TRUE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+
+  {GST_VIDEO_FORMAT_RGB15, GST_VIDEO_FORMAT_RGB15, TRUE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_RGB16, GST_VIDEO_FORMAT_RGB16, TRUE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_BGR15, GST_VIDEO_FORMAT_BGR15, TRUE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_BGR16, GST_VIDEO_FORMAT_BGR16, TRUE, FALSE, FALSE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+
+  {GST_VIDEO_FORMAT_RGB, GST_VIDEO_FORMAT_RGB, TRUE, FALSE, FALSE, TRUE, TRUE,
+      FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_BGR, GST_VIDEO_FORMAT_BGR, TRUE, FALSE, FALSE, TRUE, TRUE,
+      FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_v308, GST_VIDEO_FORMAT_v308, TRUE, FALSE, FALSE, TRUE, TRUE,
+      FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+
+  {GST_VIDEO_FORMAT_ARGB, GST_VIDEO_FORMAT_ARGB, TRUE, FALSE, FALSE, TRUE, TRUE,
+      TRUE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_xRGB, GST_VIDEO_FORMAT_xRGB, TRUE, FALSE, FALSE, TRUE, TRUE,
+      FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_ABGR, GST_VIDEO_FORMAT_ABGR, TRUE, FALSE, FALSE, TRUE, TRUE,
+      TRUE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_xBGR, GST_VIDEO_FORMAT_xBGR, TRUE, FALSE, FALSE, TRUE, TRUE,
+      FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_RGBA, GST_VIDEO_FORMAT_RGBA, TRUE, FALSE, FALSE, TRUE, TRUE,
+      TRUE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_RGBx, GST_VIDEO_FORMAT_RGBx, TRUE, FALSE, FALSE, TRUE, TRUE,
+      FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_BGRA, GST_VIDEO_FORMAT_BGRA, TRUE, FALSE, FALSE, TRUE, TRUE,
+      TRUE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_BGRx, GST_VIDEO_FORMAT_BGRx, TRUE, FALSE, FALSE, TRUE, TRUE,
+      FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+
+  {GST_VIDEO_FORMAT_ARGB64, GST_VIDEO_FORMAT_ARGB64, TRUE, FALSE, FALSE, TRUE,
+      TRUE, TRUE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_AYUV64, GST_VIDEO_FORMAT_AYUV64, TRUE, FALSE, FALSE, TRUE,
+      TRUE, TRUE, FALSE, FALSE, 0, 0, convert_scale_planes},
+
+  {GST_VIDEO_FORMAT_GRAY16_LE, GST_VIDEO_FORMAT_GRAY16_LE, TRUE, FALSE, FALSE,
+      TRUE, TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_GRAY16_BE, GST_VIDEO_FORMAT_GRAY16_BE, TRUE, FALSE, FALSE,
+      TRUE, TRUE, FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+};
+
+static gboolean
+video_converter_lookup_fastpath (GstVideoConverter * convert)
+{
+  int i;
+  GstVideoFormat in_format, out_format;
+  GstVideoTransferFunction in_transf, out_transf;
+  gboolean interlaced, same_matrix, same_primaries, same_size, crop, border;
+  gboolean need_copy, need_set, need_mult;
+  gint width, height;
+
+  width = GST_VIDEO_INFO_WIDTH (&convert->in_info);
+  height = GST_VIDEO_INFO_HEIGHT (&convert->in_info);
+
+  if (GET_OPT_DITHER_QUANTIZATION (convert) != 1)
+    return FALSE;
+
+  /* we don't do gamma conversion in fastpath */
+  in_transf = convert->in_info.colorimetry.transfer;
+  out_transf = convert->out_info.colorimetry.transfer;
+
+  same_size = (width == convert->out_width && height == convert->out_height);
+
+  /* fastpaths don't do gamma */
+  if (CHECK_GAMMA_REMAP (convert) && (!same_size || in_transf != out_transf))
+    return FALSE;
+
+  need_copy = (convert->alpha_mode & ALPHA_MODE_COPY) == ALPHA_MODE_COPY;
+  need_set = (convert->alpha_mode & ALPHA_MODE_SET) == ALPHA_MODE_SET;
+  need_mult = (convert->alpha_mode & ALPHA_MODE_MULT) == ALPHA_MODE_MULT;
+  GST_DEBUG ("alpha copy %d, set %d, mult %d", need_copy, need_set, need_mult);
+
+  in_format = GST_VIDEO_INFO_FORMAT (&convert->in_info);
+  out_format = GST_VIDEO_INFO_FORMAT (&convert->out_info);
+
+  if (CHECK_MATRIX_NONE (convert)) {
+    same_matrix = TRUE;
+  } else {
+    GstVideoColorMatrix in_matrix, out_matrix;
+
+    in_matrix = convert->in_info.colorimetry.matrix;
+    out_matrix = convert->out_info.colorimetry.matrix;
+    same_matrix = in_matrix == out_matrix;
+  }
+
+  if (CHECK_PRIMARIES_NONE (convert)) {
+    same_primaries = TRUE;
+  } else {
+    GstVideoColorPrimaries in_primaries, out_primaries;
+
+    in_primaries = convert->in_info.colorimetry.primaries;
+    out_primaries = convert->out_info.colorimetry.primaries;
+    same_primaries = in_primaries == out_primaries;
+  }
+
+  interlaced = GST_VIDEO_INFO_IS_INTERLACED (&convert->in_info);
+  interlaced |= GST_VIDEO_INFO_IS_INTERLACED (&convert->out_info);
+
+  crop = convert->in_x || convert->in_y
+      || convert->in_width < convert->in_maxwidth
+      || convert->in_height < convert->in_maxheight;
+  border = convert->out_x || convert->out_y
+      || convert->out_width < convert->out_maxwidth
+      || convert->out_height < convert->out_maxheight;
+
+  for (i = 0; i < sizeof (transforms) / sizeof (transforms[0]); i++) {
+    if (transforms[i].in_format == in_format &&
+        transforms[i].out_format == out_format &&
+        (transforms[i].keeps_interlaced || !interlaced) &&
+        (transforms[i].needs_color_matrix || (same_matrix && same_primaries))
+        && (!transforms[i].keeps_size || same_size)
+        && (transforms[i].width_align & width) == 0
+        && (transforms[i].height_align & height) == 0
+        && (transforms[i].do_crop || !crop)
+        && (transforms[i].do_border || !border)
+        && (transforms[i].alpha_copy || !need_copy)
+        && (transforms[i].alpha_set || !need_set)
+        && (transforms[i].alpha_mult || !need_mult)) {
+      GST_DEBUG ("using fastpath");
+      if (transforms[i].needs_color_matrix)
+        video_converter_compute_matrix (convert);
+      convert->convert = transforms[i].convert;
+      convert->tmpline = g_malloc0 (sizeof (guint16) * (width + 8) * 4);
+      if (!transforms[i].keeps_size)
+        if (!setup_scale (convert))
+          return FALSE;
+      if (border)
+        setup_borderline (convert);
+      return TRUE;
+    }
+  }
+  GST_DEBUG ("no fastpath found");
+  return FALSE;
+}
diff --git a/gst-libs/gst/video/video-converter.h b/gst-libs/gst/video/video-converter.h
new file mode 100644
index 0000000..e69d4c0
--- /dev/null
+++ b/gst-libs/gst/video/video-converter.h
@@ -0,0 +1,228 @@
+/* Video conversion api function
+ * Copyright (C) 2014 Wim Taymans <wim.taymans@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef __GST_VIDEO_CONVERTER_H__
+#define __GST_VIDEO_CONVERTER_H__
+
+#include <gst/video/video.h>
+
+G_BEGIN_DECLS
+
+/**
+ * GST_VIDEO_CONVERTER_OPT_RESAMPLER_METHOD:
+ *
+ * #GST_TYPE_RESAMPLER_METHOD, The resampler method to use for
+ * resampling. Other options for the resampler can be used, see
+ * the #GstResampler. Default is #GST_RESAMPLER_METHOD_CUBIC
+ */
+#define GST_VIDEO_CONVERTER_OPT_RESAMPLER_METHOD   "GstVideoConverter.resampler-method"
+/**
+ * GST_VIDEO_CONVERTER_OPT_CHROMA_RESAMPLER_METHOD:
+ *
+ * #GST_TYPE_RESAMPLER_METHOD, The resampler method to use for
+ * chroma resampling. Other options for the resampler can be used, see
+ * the #GstResampler. Default is #GST_RESAMPLER_METHOD_LINEAR
+ */
+#define GST_VIDEO_CONVERTER_OPT_CHROMA_RESAMPLER_METHOD   "GstVideoConverter.chroma-resampler-method"
+/**
+ * GST_VIDEO_CONVERTER_OPT_RESAMPLER_TAPS:
+ *
+ * #G_TYPE_UINT, The number of taps for the resampler.
+ * Default is 0: let the resampler choose a good value.
+ */
+#define GST_VIDEO_CONVERTER_OPT_RESAMPLER_TAPS   "GstVideoConverter.resampler-taps"
+
+/**
+ * GST_VIDEO_CONVERTER_OPT_DITHER_METHOD:
+ *
+ * #GST_TYPE_VIDEO_DITHER_METHOD, The dither method to use when
+ * changing bit depth.
+ * Default is #GST_VIDEO_DITHER_BAYER.
+ */
+#define GST_VIDEO_CONVERTER_OPT_DITHER_METHOD   "GstVideoConverter.dither-method"
+
+/**
+ * GST_VIDEO_CONVERTER_OPT_DITHER_QUANTIZATION:
+ *
+ * #G_TYPE_UINT, The quantization amount to dither to. Components will be
+ * quantized to multiples of this value.
+ * Default is 1
+ */
+#define GST_VIDEO_CONVERTER_OPT_DITHER_QUANTIZATION   "GstVideoConverter.dither-quantization"
+
+/**
+ * GST_VIDEO_CONVERTER_OPT_SRC_X:
+ *
+ * #G_TYPE_INT, source x position to start conversion, default 0
+ */
+#define GST_VIDEO_CONVERTER_OPT_SRC_X   "GstVideoConverter.src-x"
+/**
+ * GST_VIDEO_CONVERTER_OPT_SRC_Y:
+ *
+ * #G_TYPE_INT, source y position to start conversion, default 0
+ */
+#define GST_VIDEO_CONVERTER_OPT_SRC_Y   "GstVideoConverter.src-y"
+/**
+ * GST_VIDEO_CONVERTER_OPT_SRC_WIDTH:
+ *
+ * #G_TYPE_INT, source width to convert, default source width
+ */
+#define GST_VIDEO_CONVERTER_OPT_SRC_WIDTH   "GstVideoConverter.src-width"
+/**
+ * GST_VIDEO_CONVERTER_OPT_SRC_HEIGHT:
+ *
+ * #G_TYPE_INT, source height to convert, default source height
+ */
+#define GST_VIDEO_CONVERTER_OPT_SRC_HEIGHT   "GstVideoConverter.src-height"
+
+/**
+ * GST_VIDEO_CONVERTER_OPT_DEST_X:
+ *
+ * #G_TYPE_INT, x position in the destination frame, default 0
+ */
+#define GST_VIDEO_CONVERTER_OPT_DEST_X   "GstVideoConverter.dest-x"
+/**
+ * GST_VIDEO_CONVERTER_OPT_DEST_Y:
+ *
+ * #G_TYPE_INT, y position in the destination frame, default 0
+ */
+#define GST_VIDEO_CONVERTER_OPT_DEST_Y   "GstVideoConverter.dest-y"
+/**
+ * GST_VIDEO_CONVERTER_OPT_DEST_WIDTH:
+ *
+ * #G_TYPE_INT, width in the destination frame, default destination width
+ */
+#define GST_VIDEO_CONVERTER_OPT_DEST_WIDTH   "GstVideoConverter.dest-width"
+/**
+ * GST_VIDEO_CONVERTER_OPT_DEST_HEIGHT:
+ *
+ * #G_TYPE_INT, height in the destination frame, default destination height
+ */
+#define GST_VIDEO_CONVERTER_OPT_DEST_HEIGHT   "GstVideoConverter.dest-height"
+
+/**
+ * GST_VIDEO_CONVERTER_OPT_FILL_BORDER:
+ *
+ * #G_TYPE_BOOLEAN, if the destination rectangle does not fill the complete
+ * destination image, render a border with
+ * #GST_VIDEO_CONVERTER_OPT_BORDER_ARGB. Otherwise the unusded pixels in the
+ * destination are untouched. Default %TRUE.
+ */
+#define GST_VIDEO_CONVERTER_OPT_FILL_BORDER   "GstVideoConverter.fill-border"
+/**
+ * GST_VIDEO_CONVERTER_OPT_ALPHA_VALUE:
+ *
+ * #G_TYPE_DOUBLE, the alpha color value to use.
+ * Default to 1.0
+ */
+#define GST_VIDEO_CONVERTER_OPT_ALPHA_VALUE   "GstVideoConverter.alpha-value"
+/**
+ * GST_VIDEO_CONVERTER_OPT_ALPHA_MODE:
+ *
+ * #G_TYPE_STRING, the alpha mode to use.
+ *
+ * "copy": When input and output have alpha, it will be copied.
+ *         When the input has no alpha, alpha will be set to
+ *         GST_VIDEO_CONVERTER_OPT_ALPHA_VALUE
+ * "set": set all alpha to #GST_VIDEO_CONVERTER_OPT_ALPHA_VALUE
+ * "mult": multiply all alpha with #GST_VIDEO_CONVERTER_OPT_ALPHA_VALUE.
+ *         When the input format has no alpha but the output format has,
+ *         the alpha value will be set to
+ *         #GST_VIDEO_CONVERTER_OPT_ALPHA_VALUE
+ *
+ * Default to "none".
+ */
+#define GST_VIDEO_CONVERTER_OPT_ALPHA_MODE   "GstVideoConverter.alpha-mode"
+/**
+ * GST_VIDEO_CONVERTER_OPT_BORDER_ARGB:
+ *
+ * #G_TYPE_UINT, the border color to use if #GST_VIDEO_CONVERTER_OPT_FILL_BORDER
+ * is set to %TRUE. The color is in ARGB format.
+ * Default 0xff000000
+ */
+#define GST_VIDEO_CONVERTER_OPT_BORDER_ARGB   "GstVideoConverter.border-argb"
+/**
+ * GST_VIDEO_CONVERTER_OPT_CHROMA_MODE:
+ *
+ * #G_TYPE_STRING, set the chroma resample mode subsampled formats.
+ *
+ * "full": do full chroma up and down sampling
+ * "upsample-only": only perform chroma upsampling
+ * "downsample-only": only perform chroma downsampling
+ * "none": disable chroma resampling
+ *
+ * Default "full"
+ */
+#define GST_VIDEO_CONVERTER_OPT_CHROMA_MODE   "GstVideoConverter.chroma-mode"
+/**
+ * GST_VIDEO_CONVERTER_OPT_MATRIX_MODE:
+ *
+ * #G_TYPE_STRING, set the color matrix conversion mode for converting
+ *     between Y'PbPr and non-linear RGB (R'G'B').
+ *
+ * "full": do conversion between color matrices
+ * "input-only": use the input color matrix to convert to and from R'G'B
+ * "output-only": use the output color matrix to convert to and from R'G'B
+ * "none": disable color matrix conversion.
+ *
+ * Default "full"
+ */
+#define GST_VIDEO_CONVERTER_OPT_MATRIX_MODE   "GstVideoConverter.matrix-mode"
+/**
+ * GST_VIDEO_CONVERTER_OPT_GAMMA_MODE:
+ *
+ * #G_TYPE_STRING, set the gamma mode.
+ *
+ * "none": disable gamma handling
+ * "remap": convert between input and output gamma
+ *
+ * Default "none"
+ */
+#define GST_VIDEO_CONVERTER_OPT_GAMMA_MODE   "GstVideoConverter.gamma-mode"
+/**
+ * GST_VIDEO_CONVERTER_OPT_PRIMARIES_MODE:
+ *
+ * #G_TYPE_STRING, set the primaries conversion mode.
+ *
+ * "none": disable conversion between primaries
+ * "merge-only": do conversion between primaries only when it can be merged
+ *               with color matrix conversion.
+ * "fast": fast conversion between primaries
+ *
+ * Default "none"
+ */
+#define GST_VIDEO_CONVERTER_OPT_PRIMARIES_MODE   "GstVideoConverter.primaries-mode"
+
+typedef struct _GstVideoConverter GstVideoConverter;
+
+GstVideoConverter *  gst_video_converter_new            (GstVideoInfo *in_info,
+                                                         GstVideoInfo *out_info,
+                                                         GstStructure *config);
+void                 gst_video_converter_free           (GstVideoConverter * convert);
+
+gboolean             gst_video_converter_set_config     (GstVideoConverter * convert, GstStructure *config);
+const GstStructure * gst_video_converter_get_config     (GstVideoConverter * convert);
+
+void                 gst_video_converter_frame          (GstVideoConverter * convert,
+                                                         const GstVideoFrame *src, GstVideoFrame *dest);
+
+
+G_END_DECLS
+
+#endif /* __GST_VIDEO_CONVERTER_H__ */
diff --git a/gst-libs/gst/video/video-dither.c b/gst-libs/gst/video/video-dither.c
new file mode 100644
index 0000000..64e0f9f
--- /dev/null
+++ b/gst-libs/gst/video/video-dither.c
@@ -0,0 +1,493 @@
+/* GStreamer
+ * Copyright (C) <2014> Wim Taymans <wim.taymans@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#include <string.h>
+
+#include "video-dither.h"
+#include "video-orc.h"
+
+/**
+ * SECTION:gstvideodither
+ * @short_description: Utility object for dithering and quantizing lines of video
+ *
+ * GstVideoDither provides implementations of several dithering algorithms
+ * that can be applied to lines of video pixels to quantize and dither them.
+ *
+ */
+struct _GstVideoDither
+{
+  GstVideoDitherMethod method;
+  GstVideoDitherFlags flags;
+  GstVideoFormat format;
+  guint width;
+
+  guint depth;
+  guint n_comp;
+
+  void (*func) (GstVideoDither * dither, gpointer pixels, guint x, guint y,
+      guint width);
+  guint8 shift[4];
+  guint16 mask[4];
+  guint64 orc_mask64;
+  guint32 orc_mask32;
+
+  gpointer errors;
+};
+
+static void
+dither_none_u8_mask (GstVideoDither * dither, gpointer pixels, guint x, guint y,
+    guint width)
+{
+  guint8 *p = pixels;
+
+  video_orc_dither_none_4u8_mask (p + (x * 4), dither->orc_mask32, width);
+}
+
+static void
+dither_none_u16_mask (GstVideoDither * dither, gpointer pixels, guint x,
+    guint y, guint width)
+{
+  guint16 *p = pixels;
+
+  video_orc_dither_none_4u16_mask (p + (x * 4), dither->orc_mask64, width);
+}
+
+static void
+dither_verterr_u8 (GstVideoDither * dither, gpointer pixels, guint x, guint y,
+    guint width)
+{
+  guint8 *p = pixels;
+  guint16 *e = dither->errors;
+
+  if (y == 0)
+    memset (e + (x * 4), 0, width * 8);
+
+  video_orc_dither_verterr_4u8_mask (p + (x * 4), e + (x * 4),
+      dither->orc_mask64, width);
+}
+
+static void
+dither_verterr_u16 (GstVideoDither * dither, gpointer pixels, guint x, guint y,
+    guint width)
+{
+  guint16 *p = pixels;
+  guint16 *e = dither->errors;
+
+  if (y == 0)
+    memset (e + (x * 4), 0, width * 8);
+
+  {
+    gint i, end;
+    guint16 *m = dither->mask;
+    guint32 v, mp;
+
+    end = (width + x) * 4;
+    for (i = x * 4; i < end; i++) {
+      mp = m[i & 3];
+      v = p[i] + e[i];
+      /* take new error and store */
+      e[i] = v & mp;
+      /* quantize and store */
+      v &= ~mp;
+      p[i] = MIN (v, 65535);
+    }
+  }
+}
+
+static void
+dither_floyd_steinberg_u8 (GstVideoDither * dither, gpointer pixels, guint x,
+    guint y, guint width)
+{
+  guint8 *p = pixels;
+  guint16 *e = dither->errors;
+
+  if (y == 0)
+    memset (e + (x * 4), 0, (width + 1) * 8);
+
+  /* add and multiply errors from previous line */
+  video_orc_dither_fs_muladd_u8 (e + x * 4, width * 4);
+#if 1
+  {
+    gint i, end;
+    guint16 *m = dither->mask, mp;
+    guint16 v;
+
+    end = (width + x) * 4;
+
+    for (i = x * 4; i < end; i++) {
+      mp = m[i & 3];
+      v = p[i] + ((7 * e[i] + e[i + 4]) >> 4);
+      /* take new error and store */
+      e[i + 4] = v & mp;
+      /* quantize and store */
+      v &= ~mp;
+      p[i] = MIN (v, 255);
+    }
+  }
+#else
+  video_orc_dither_fs_add_4u8 (p, e + x * 4, e + (x + 1) * 4,
+      dither->orc_mask64, width);
+#endif
+}
+
+static void
+dither_floyd_steinberg_u16 (GstVideoDither * dither, gpointer pixels, guint x,
+    guint y, guint width)
+{
+  guint16 *p = pixels;
+  guint16 *e = dither->errors;
+
+  if (y == 0)
+    memset (e + (x * 4), 0, (width + 1) * 8);
+
+  {
+    gint i, end;
+    guint16 *m = dither->mask, mp;
+    guint32 v;
+
+    end = (width + x) * 4;
+    for (i = x * 4; i < end; i++) {
+      mp = m[i & 3];
+      /* apply previous errors to pixel */
+      v = p[i] + ((7 * e[i] + e[i + 4] + 5 * e[i + 8] + 3 * e[i + 12]) >> 4);
+      /* take new error and store */
+      e[i + 4] = v & mp;
+      /* quantize and store */
+      v &= ~mp;
+      p[i] = MIN (v, 65535);
+    }
+  }
+}
+
+static void
+dither_sierra_lite_u8 (GstVideoDither * dither, gpointer pixels, guint x,
+    guint y, guint width)
+{
+  guint8 *p = pixels;
+  guint16 *e = dither->errors;
+  gint i, end;
+  guint16 *m = dither->mask, mp;
+  guint16 v;
+
+  if (y == 0)
+    memset (e + (x * 4), 0, (width + 4) * 8);
+
+  end = (width + x) * 4;
+  for (i = x; i < end; i++) {
+    mp = m[i & 3];
+    /* apply previous errors to pixel */
+    v = p[i] + ((2 * e[i] + e[i + 8] + e[i + 12]) >> 2);
+    /* store new error */
+    e[i + 4] = v & mp;
+    /* quantize and store */
+    v &= ~mp;
+    p[i] = MIN (v, 255);
+  }
+}
+
+static void
+dither_sierra_lite_u16 (GstVideoDither * dither, gpointer pixels, guint x,
+    guint y, guint width)
+{
+  guint16 *p = pixels;
+  guint16 *e = dither->errors;
+  gint i, end;
+  guint16 *m = dither->mask, mp;
+  guint32 v;
+
+  if (y == 0)
+    memset (e + (x * 4), 0, (width + 4) * 8);
+
+  end = (width + x) * 4;
+  for (i = x; i < end; i++) {
+    mp = m[i & 3];
+    /* apply previous errors to pixel */
+    v = p[i] + ((2 * e[i] + e[i + 8] + e[i + 12]) >> 2);
+    /* store new error */
+    e[i + 4] = v & mp;
+    /* quantize and store */
+    v &= ~mp;
+    p[i] = MIN (v & ~mp, 65535);
+  }
+}
+
+static const guint16 bayer_map[16][16] = {
+  {0, 128, 32, 160, 8, 136, 40, 168, 2, 130, 34, 162, 10, 138, 42, 170},
+  {192, 64, 224, 96, 200, 72, 232, 104, 194, 66, 226, 98, 202, 74, 234, 106},
+  {48, 176, 16, 144, 56, 184, 24, 152, 50, 178, 18, 146, 58, 186, 26, 154},
+  {240, 112, 208, 80, 248, 120, 216, 88, 242, 114, 210, 82, 250, 122, 218, 90},
+  {12, 240, 44, 172, 4, 132, 36, 164, 14, 242, 46, 174, 6, 134, 38, 166},
+  {204, 76, 236, 108, 196, 68, 228, 100, 206, 78, 238, 110, 198, 70, 230, 102},
+  {60, 188, 28, 156, 52, 180, 20, 148, 62, 190, 30, 158, 54, 182, 22, 150},
+  {252, 142, 220, 92, 244, 116, 212, 84, 254, 144, 222, 94, 246, 118, 214, 86},
+  {3, 131, 35, 163, 11, 139, 43, 171, 1, 129, 33, 161, 9, 137, 41, 169},
+  {195, 67, 227, 99, 203, 75, 235, 107, 193, 65, 225, 97, 201, 73, 233, 105},
+  {51, 179, 19, 147, 59, 187, 27, 155, 49, 177, 17, 145, 57, 185, 25, 153},
+  {243, 115, 211, 83, 251, 123, 219, 91, 241, 113, 209, 81, 249, 121, 217, 89},
+  {15, 243, 47, 175, 7, 135, 39, 167, 13, 241, 45, 173, 5, 133, 37, 165},
+  {207, 79, 239, 111, 199, 71, 231, 103, 205, 77, 237, 109, 197, 69, 229, 101},
+  {63, 191, 31, 159, 55, 183, 23, 151, 61, 189, 29, 157, 53, 181, 21, 149},
+  {255, 145, 223, 95, 247, 119, 215, 87, 253, 143, 221, 93, 245, 117, 213, 85}
+};
+
+static void
+dither_ordered_u8 (GstVideoDither * dither, gpointer pixels, guint x, guint y,
+    guint width)
+{
+  guint8 *p = pixels;
+  guint8 *c = (guint8 *) dither->errors + ((y & 15) * width + (x & 15)) * 4;
+
+  video_orc_dither_ordered_u8 (p, c, width * 4);
+}
+
+static void
+dither_ordered_u8_mask (GstVideoDither * dither, gpointer pixels, guint x,
+    guint y, guint width)
+{
+  guint8 *p = pixels;
+  guint16 *c = (guint16 *) dither->errors + ((y & 15) * width + (x & 15)) * 4;
+
+  video_orc_dither_ordered_4u8_mask (p, c, dither->orc_mask64, width);
+}
+
+static void
+dither_ordered_u16_mask (GstVideoDither * dither, gpointer pixels, guint x,
+    guint y, guint width)
+{
+  guint16 *p = pixels;
+  guint16 *c = (guint16 *) dither->errors + ((y & 15) * width + (x & 15)) * 4;
+
+  video_orc_dither_ordered_4u16_mask (p, c, dither->orc_mask64, width);
+}
+
+static void
+alloc_errors (GstVideoDither * dither, guint lines)
+{
+  guint width, n_comp;
+
+  width = dither->width;
+  n_comp = dither->n_comp;
+
+  dither->errors = g_malloc0 (sizeof (guint16) * (width + 8) * n_comp * lines);
+}
+
+static void
+setup_bayer (GstVideoDither * dither)
+{
+  guint i, j, k, width, n_comp, errdepth;
+  guint8 *shift;
+
+  width = dither->width;
+  shift = dither->shift;
+  n_comp = dither->n_comp;
+
+  if (dither->depth == 8) {
+    if (dither->flags & GST_VIDEO_DITHER_FLAG_QUANTIZE) {
+      dither->func = dither_ordered_u8_mask;
+      errdepth = 16;
+    } else {
+      dither->func = dither_ordered_u8;
+      errdepth = 8;
+    }
+  } else {
+    dither->func = dither_ordered_u16_mask;
+    errdepth = 16;
+  }
+
+  alloc_errors (dither, 16);
+
+  if (errdepth == 8) {
+    for (i = 0; i < 16; i++) {
+      guint8 *p = (guint8 *) dither->errors + (n_comp * width * i), v;
+      for (j = 0; j < width; j++) {
+        for (k = 0; k < n_comp; k++) {
+          v = bayer_map[i & 15][j & 15];
+          if (shift[k] < 8)
+            v = v >> (8 - shift[k]);
+          p[n_comp * j + k] = v;
+        }
+      }
+    }
+  } else {
+    for (i = 0; i < 16; i++) {
+      guint16 *p = (guint16 *) dither->errors + (n_comp * width * i), v;
+      for (j = 0; j < width; j++) {
+        for (k = 0; k < n_comp; k++) {
+          v = bayer_map[i & 15][j & 15];
+          if (shift[k] < 8)
+            v = v >> (8 - shift[k]);
+          p[n_comp * j + k] = v;
+        }
+      }
+    }
+  }
+}
+
+static gint
+count_power (guint v)
+{
+  gint res = 0;
+  while (v > 1) {
+    res++;
+    v >>= 1;
+  }
+  return res;
+}
+
+/**
+ * gst_video_dither_new:
+ * @method: a #GstVideoDitherMethod
+ * @flags: a #GstVideoDitherFlags
+ * @format: a #GstVideoFormat
+ * @quantizer: quantizer
+ * @width: the width of the lines
+ *
+ * Make a new dither object for dithering lines of @format using the
+ * algorithm described by @method.
+ *
+ * Each component will be quantized to a multiple of @quantizer. Better
+ * performance is achived when @quantizer is a power of 2.
+ *
+ * @width is the width of the lines that this ditherer will handle.
+ *
+ * Returns: a new #GstVideoDither
+ */
+GstVideoDither *
+gst_video_dither_new (GstVideoDitherMethod method, GstVideoDitherFlags flags,
+    GstVideoFormat format, guint quantizer[GST_VIDEO_MAX_COMPONENTS],
+    guint width)
+{
+  GstVideoDither *dither;
+  gint i;
+
+  dither = g_slice_new0 (GstVideoDither);
+  dither->method = method;
+  dither->flags = flags;
+  dither->format = format;
+  dither->width = width;
+
+  dither->n_comp = 4;
+
+  switch (format) {
+    case GST_VIDEO_FORMAT_AYUV:
+    case GST_VIDEO_FORMAT_ARGB:
+      dither->depth = 8;
+      break;
+    case GST_VIDEO_FORMAT_AYUV64:
+    case GST_VIDEO_FORMAT_ARGB64:
+      dither->depth = 16;
+      break;
+    default:
+      g_slice_free (GstVideoDither, dither);
+      g_return_val_if_reached (NULL);
+      break;
+  }
+
+  for (i = 0; i < 4; i++) {
+    /* FIXME, only power of 2 quantizers */
+    guint q = quantizer[(i + 3) & 3];
+
+    dither->shift[i] = count_power (q);
+    dither->mask[i] = (1 << dither->shift[i]) - 1;
+    GST_DEBUG ("%d: quant %d shift %d mask %08x", i, q, dither->shift[i],
+        dither->mask[i]);
+    dither->orc_mask64 =
+        (dither->orc_mask64 << 16) | GUINT16_FROM_BE (dither->mask[i]);
+    dither->orc_mask32 = (dither->orc_mask32 << 8) | (guint8) dither->mask[i];
+  }
+  dither->orc_mask64 = GUINT64_FROM_BE (dither->orc_mask64);
+  dither->orc_mask32 = GUINT32_FROM_BE (dither->orc_mask32);
+  GST_DEBUG ("mask64 %08llx", (unsigned long long int) dither->orc_mask64);
+  GST_DEBUG ("mask32 %08x", dither->orc_mask32);
+
+  switch (method) {
+    case GST_VIDEO_DITHER_NONE:
+      if (dither->flags & GST_VIDEO_DITHER_FLAG_QUANTIZE)
+        if (dither->depth == 8)
+          dither->func = dither_none_u8_mask;
+        else
+          dither->func = dither_none_u16_mask;
+      else
+        dither->func = NULL;
+      break;
+    case GST_VIDEO_DITHER_VERTERR:
+      alloc_errors (dither, 1);
+      if (dither->depth == 8) {
+        dither->func = dither_verterr_u8;
+      } else
+        dither->func = dither_verterr_u16;
+      break;
+    case GST_VIDEO_DITHER_FLOYD_STEINBERG:
+      alloc_errors (dither, 1);
+      if (dither->depth == 8) {
+        dither->func = dither_floyd_steinberg_u8;
+      } else
+        dither->func = dither_floyd_steinberg_u16;
+      break;
+    case GST_VIDEO_DITHER_SIERRA_LITE:
+      alloc_errors (dither, 1);
+      if (dither->depth == 8) {
+        dither->func = dither_sierra_lite_u8;
+      } else
+        dither->func = dither_sierra_lite_u16;
+      break;
+    case GST_VIDEO_DITHER_BAYER:
+      setup_bayer (dither);
+      break;
+  }
+  return dither;
+}
+
+/**
+ * gst_video_dither_free:
+ * @dither: a #GstVideoDither
+ *
+ * Free @dither
+ */
+void
+gst_video_dither_free (GstVideoDither * dither)
+{
+  g_return_if_fail (dither != NULL);
+
+  g_free (dither->errors);
+  g_slice_free (GstVideoDither, dither);
+}
+
+/**
+ * gst_video_dither_line:
+ * @dither: a #GstVideoDither
+ * @line: pointer to the pixels of the line
+ * @x: x coordinate
+ * @y: y coordinate
+ * @width: the width
+ *
+ * Dither @width pixels starting from offset @x in @line using @dither.
+ *
+ * @y is the line number of @line in the output image.
+ */
+void
+gst_video_dither_line (GstVideoDither * dither, gpointer line, guint x, guint y,
+    guint width)
+{
+  g_return_if_fail (dither != NULL);
+  g_return_if_fail (x + width <= dither->width);
+
+  if (dither->func)
+    dither->func (dither, line, x, y, width);
+}
diff --git a/gst-libs/gst/video/video-dither.h b/gst-libs/gst/video/video-dither.h
new file mode 100644
index 0000000..06378e9
--- /dev/null
+++ b/gst-libs/gst/video/video-dither.h
@@ -0,0 +1,77 @@
+/* GStreamer
+ * Copyright (C) <2014> Wim Taymans <wim.taymans@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef __GST_VIDEO_DITHER_H__
+#define __GST_VIDEO_DITHER_H__
+
+#include <gst/gst.h>
+
+G_BEGIN_DECLS
+
+/**
+ * GstVideoDitherMethod:
+ * @GST_VIDEO_DITHER_NONE: no dithering
+ * @GST_VIDEO_DITHER_VERTERR: propagate rounding errors downwards
+ * @GST_VIDEO_DITHER_FLOYD_STEINBERG: Dither with floyd-steinberg error diffusion
+ * @GST_VIDEO_DITHER_SIERRA_LITE: Dither with Sierra Lite error diffusion
+ * @GST_VIDEO_DITHER_BAYER: ordered dither using a bayer pattern
+ *
+ * Different dithering methods to use.
+ */
+typedef enum {
+  GST_VIDEO_DITHER_NONE,
+  GST_VIDEO_DITHER_VERTERR,
+  GST_VIDEO_DITHER_FLOYD_STEINBERG,
+  GST_VIDEO_DITHER_SIERRA_LITE,
+  GST_VIDEO_DITHER_BAYER,
+} GstVideoDitherMethod;
+
+/**
+ * GstVideoDitherFlags:
+ * @GST_VIDEO_DITHER_FLAG_NONE: no flags
+ * @GST_VIDEO_DITHER_FLAG_INTERLACED: the input is interlaced
+ * @GST_VIDEO_DITHER_FLAG_QUANTIZE: quantize values in addition to adding dither.
+ *
+ * Extra flags that influence the result from gst_video_chroma_resample_new().
+ */
+typedef enum {
+  GST_VIDEO_DITHER_FLAG_NONE       = 0,
+  GST_VIDEO_DITHER_FLAG_INTERLACED = (1 << 0),
+  GST_VIDEO_DITHER_FLAG_QUANTIZE   = (1 << 1),
+} GstVideoDitherFlags;
+
+typedef struct _GstVideoDither GstVideoDither;
+
+/* circular dependency, need to include this after defining the enums */
+#include <gst/video/video-format.h>
+
+GstVideoDither    * gst_video_dither_new      (GstVideoDitherMethod method,
+                                               GstVideoDitherFlags flags,
+                                               GstVideoFormat format,
+                                               guint quantizer[GST_VIDEO_MAX_COMPONENTS],
+                                               guint width);
+
+void                gst_video_dither_free     (GstVideoDither *dither);
+
+void                gst_video_dither_line     (GstVideoDither *dither,
+                                               gpointer line, guint x, guint y, guint width);
+
+G_END_DECLS
+
+#endif /* __GST_VIDEO_DITHER_H__ */
diff --git a/gst-libs/gst/video/video-format.c b/gst-libs/gst/video/video-format.c
index fed5314..47c2ea8 100644
--- a/gst-libs/gst/video/video-format.c
+++ b/gst-libs/gst/video/video-format.c
@@ -29,6 +29,18 @@
 #include "video-format.h"
 #include "video-orc.h"
 
+#ifndef restrict
+#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+/* restrict should be available */
+#elif defined(__GNUC__) && __GNUC__ >= 4
+#define restrict __restrict__
+#elif defined(_MSC_VER) &&  _MSC_VER >= 1500
+#define restrict __restrict
+#else
+#define restrict                /* no op */
+#endif
+#endif
+
 /* Line conversion to AYUV */
 
 #define GET_PLANE_STRIDE(plane) (stride(plane))
@@ -65,6 +77,15 @@
    ((line & ~7) >> 2) + (line & 1) :            \
    line >> 2)
 
+#define IS_CHROMA_LINE_420(line, flags)         \
+  (flags & GST_VIDEO_PACK_FLAG_INTERLACED ?     \
+   !(line & 2) : !(line & 1))
+#define IS_CHROMA_LINE_410(line, flags)         \
+  (flags & GST_VIDEO_PACK_FLAG_INTERLACED ?     \
+   !(line & 6) : !(line & 3))
+
+#define IS_ALIGNED(x,n) ((((guintptr)(x)&((n)-1))) == 0)
+
 #define PACK_420 GST_VIDEO_FORMAT_AYUV, unpack_planar_420, 1, pack_planar_420
 static void
 unpack_planar_420 (const GstVideoFormatInfo * info, GstVideoPackFlags flags,
@@ -72,19 +93,24 @@
     const gint stride[GST_VIDEO_MAX_PLANES], gint x, gint y, gint width)
 {
   gint uv = GET_UV_420 (y, flags);
-  guint8 *y_line = GET_Y_LINE (y);
-  guint8 *u_line = GET_U_LINE (uv);
-  guint8 *v_line = GET_V_LINE (uv);
-  guint8 *ayuv = dest;
+  const guint8 *restrict sy = GET_Y_LINE (y);
+  const guint8 *restrict su = GET_U_LINE (uv);
+  const guint8 *restrict sv = GET_V_LINE (uv);
+  guint8 *restrict d = dest;
 
-  video_orc_unpack_I420 (dest, y_line, u_line, v_line, width);
+  sy += x;
+  su += x >> 1;
+  sv += x >> 1;
 
-  if (width & 1) {
-    gint i = width - 1;
-
-    ayuv[i * 4 + 2] = u_line[i >> 1];
-    ayuv[i * 4 + 3] = v_line[i >> 1];
+  if (x & 1) {
+    d[0] = 0xff;
+    d[1] = *sy++;
+    d[2] = *su++;
+    d[3] = *sv++;
+    width--;
+    d += 4;
   }
+  video_orc_unpack_I420 (d, sy, su, sv, width);
 }
 
 static void
@@ -94,20 +120,33 @@
     gint y, gint width)
 {
   gint uv = GET_UV_420 (y, flags);
-  guint8 *y_line = GET_Y_LINE (y);
-  guint8 *u_line = GET_U_LINE (uv);
-  guint8 *v_line = GET_V_LINE (uv);
-  const guint8 *ayuv = src;
+  guint8 *dy = GET_Y_LINE (y);
+  guint8 *du = GET_U_LINE (uv);
+  guint8 *dv = GET_V_LINE (uv);
+  const guint8 *s = src;
 
-  video_orc_pack_I420 (y_line, u_line, v_line, src, width / 2);
+  if (IS_CHROMA_LINE_420 (y, flags)) {
+    if (IS_ALIGNED (s, 8))
+      video_orc_pack_I420 (dy, du, dv, s, width / 2);
+    else {
+      gint i;
 
-  if (width & 1) {
-    gint i = width - 1;
+      for (i = 0; i < width / 2; i++) {
+        dy[i * 2 + 0] = s[i * 8 + 1];
+        dy[i * 2 + 1] = s[i * 8 + 5];
+        du[i] = s[i * 8 + 2];
+        dv[i] = s[i * 8 + 3];
+      }
+    }
+    if (width & 1) {
+      gint i = width - 1;
 
-    y_line[i] = ayuv[i * 4 + 1];
-    u_line[i >> 1] = ayuv[i * 4 + 2];
-    v_line[i >> 1] = ayuv[i * 4 + 3];
-  }
+      dy[i] = s[i * 4 + 1];
+      du[i >> 1] = s[i * 4 + 2];
+      dv[i >> 1] = s[i * 4 + 3];
+    }
+  } else
+    video_orc_pack_Y (dy, s, width);
 }
 
 #define PACK_YUY2 GST_VIDEO_FORMAT_AYUV, unpack_YUY2, 1, pack_YUY2
@@ -116,18 +155,44 @@
     gpointer dest, const gpointer data[GST_VIDEO_MAX_PLANES],
     const gint stride[GST_VIDEO_MAX_PLANES], gint x, gint y, gint width)
 {
-  guint8 *line = GET_LINE (y);
-  guint8 *d = dest;
+  const guint8 *restrict s = GET_LINE (y);
+  guint8 *restrict d = dest;
 
-  video_orc_unpack_YUY2 (dest, line, width / 2);
+  s += (x & ~1) << 1;
+  if (x & 1) {
+    d[0] = 0xff;
+    d[1] = s[2];
+    d[2] = s[1];
+    d[3] = s[3];
+    s += 4;
+    d += 4;
+    width--;
+  }
+
+  if (IS_ALIGNED (d, 8))
+    video_orc_unpack_YUY2 (d, s, width / 2);
+  else {
+    gint i;
+
+    for (i = 0; i < width / 2; i++) {
+      d[i * 8 + 0] = 0xff;
+      d[i * 8 + 1] = s[i * 4 + 0];
+      d[i * 8 + 2] = s[i * 4 + 1];
+      d[i * 8 + 3] = s[i * 4 + 3];
+      d[i * 8 + 4] = 0xff;
+      d[i * 8 + 5] = s[i * 4 + 2];
+      d[i * 8 + 6] = s[i * 4 + 1];
+      d[i * 8 + 7] = s[i * 4 + 3];
+    }
+  }
 
   if (width & 1) {
     gint i = width - 1;
 
     d[i * 4 + 0] = 0xff;
-    d[i * 4 + 1] = line[i * 2 + 0];
-    d[i * 4 + 2] = line[i * 2 + 1];
-    d[i * 4 + 3] = line[i * 2 + 3];
+    d[i * 4 + 1] = s[i * 2 + 0];
+    d[i * 4 + 2] = s[i * 2 + 1];
+    d[i * 4 + 3] = s[i * 2 + 3];
   }
 }
 
@@ -137,17 +202,27 @@
     const gint stride[GST_VIDEO_MAX_PLANES], GstVideoChromaSite chroma_site,
     gint y, gint width)
 {
-  guint8 *line = GET_LINE (y);
-  const guint8 *ayuv = src;
+  guint8 *restrict d = GET_LINE (y);
+  const guint8 *restrict s = src;
 
-  video_orc_pack_YUY2 (line, src, width / 2);
+  if (IS_ALIGNED (s, 8))
+    video_orc_pack_YUY2 (d, s, width / 2);
+  else {
+    gint i;
+    for (i = 0; i < width / 2; i++) {
+      d[i * 4 + 0] = s[i * 8 + 1];
+      d[i * 4 + 1] = s[i * 8 + 2];
+      d[i * 4 + 2] = s[i * 8 + 5];
+      d[i * 4 + 3] = s[i * 8 + 3];
+    }
+  }
 
   if (width & 1) {
     gint i = width - 1;
 
-    line[i * 2 + 0] = ayuv[i * 4 + 1];
-    line[i * 2 + 1] = ayuv[i * 4 + 2];
-    line[i * 2 + 3] = ayuv[i * 4 + 3];
+    d[i * 2 + 0] = s[i * 4 + 1];
+    d[i * 2 + 1] = s[i * 4 + 2];
+    d[i * 2 + 3] = s[i * 4 + 3];
   }
 }
 
@@ -157,18 +232,44 @@
     gpointer dest, const gpointer data[GST_VIDEO_MAX_PLANES],
     const gint stride[GST_VIDEO_MAX_PLANES], gint x, gint y, gint width)
 {
-  guint8 *line = GET_LINE (y);
+  const guint8 *s = GET_LINE (y);
   guint8 *d = dest;
 
-  video_orc_unpack_UYVY (dest, line, width / 2);
+  s += (x & ~1) << 1;
+  if (x & 1) {
+    d[0] = 0xff;
+    d[1] = s[3];
+    d[2] = s[0];
+    d[3] = s[2];
+    s += 4;
+    d += 4;
+    width--;
+  }
+
+  if (IS_ALIGNED (d, 8))
+    video_orc_unpack_UYVY (d, s, width / 2);
+  else {
+    gint i;
+
+    for (i = 0; i < width / 2; i++) {
+      d[i * 8 + 0] = 0xff;
+      d[i * 8 + 1] = s[i * 4 + 1];
+      d[i * 8 + 2] = s[i * 4 + 0];
+      d[i * 8 + 3] = s[i * 4 + 2];
+      d[i * 8 + 4] = 0xff;
+      d[i * 8 + 5] = s[i * 4 + 3];
+      d[i * 8 + 6] = s[i * 4 + 0];
+      d[i * 8 + 7] = s[i * 4 + 2];
+    }
+  }
 
   if (width & 1) {
     gint i = width - 1;
 
     d[i * 4 + 0] = 0xff;
-    d[i * 4 + 1] = line[i * 2 + 1];
-    d[i * 4 + 2] = line[i * 2 + 0];
-    d[i * 4 + 3] = line[i * 2 + 2];
+    d[i * 4 + 1] = s[i * 2 + 1];
+    d[i * 4 + 2] = s[i * 2 + 0];
+    d[i * 4 + 3] = s[i * 2 + 2];
   }
 }
 
@@ -178,17 +279,26 @@
     const gint stride[GST_VIDEO_MAX_PLANES], GstVideoChromaSite chroma_site,
     gint y, gint width)
 {
-  guint8 *line = GET_LINE (y);
-  const guint8 *ayuv = src;
+  guint8 *restrict d = GET_LINE (y);
+  const guint8 *restrict s = src;
 
-  video_orc_pack_UYVY (line, src, width / 2);
-
+  if (IS_ALIGNED (s, 8))
+    video_orc_pack_UYVY (d, s, width / 2);
+  else {
+    gint i;
+    for (i = 0; i < width / 2; i++) {
+      d[i * 4 + 0] = s[i * 8 + 2];
+      d[i * 4 + 1] = s[i * 8 + 1];
+      d[i * 4 + 2] = s[i * 8 + 3];
+      d[i * 4 + 3] = s[i * 8 + 5];
+    }
+  }
   if (width & 1) {
     gint i = width - 1;
 
-    line[i * 2 + 0] = ayuv[i * 4 + 2];
-    line[i * 2 + 1] = ayuv[i * 4 + 1];
-    line[i * 2 + 2] = ayuv[i * 4 + 3];
+    d[i * 2 + 0] = s[i * 4 + 2];
+    d[i * 2 + 1] = s[i * 4 + 1];
+    d[i * 2 + 2] = s[i * 4 + 3];
   }
 }
 
@@ -198,18 +308,44 @@
     gpointer dest, const gpointer data[GST_VIDEO_MAX_PLANES],
     const gint stride[GST_VIDEO_MAX_PLANES], gint x, gint y, gint width)
 {
-  guint8 *line = GET_LINE (y);
-  guint8 *d = dest;
+  const guint8 *restrict s = GET_LINE (y);
+  guint8 *restrict d = dest;
 
-  video_orc_unpack_YVYU (dest, line, width / 2);
+  s += (x & ~1) << 1;
+  if (x & 1) {
+    d[0] = 0xff;
+    d[1] = s[2];
+    d[2] = s[3];
+    d[3] = s[1];
+    s += 4;
+    d += 4;
+    width--;
+  }
+
+  if (IS_ALIGNED (d, 8))
+    video_orc_unpack_YVYU (d, s, width / 2);
+  else {
+    gint i;
+
+    for (i = 0; i < width / 2; i++) {
+      d[i * 8 + 0] = 0xff;
+      d[i * 8 + 1] = s[i * 4 + 0];
+      d[i * 8 + 2] = s[i * 4 + 3];
+      d[i * 8 + 3] = s[i * 4 + 1];
+      d[i * 8 + 4] = 0xff;
+      d[i * 8 + 5] = s[i * 4 + 2];
+      d[i * 8 + 6] = s[i * 4 + 3];
+      d[i * 8 + 7] = s[i * 4 + 1];
+    }
+  }
 
   if (width & 1) {
     gint i = width - 1;
 
     d[i * 4 + 0] = 0xff;
-    d[i * 4 + 1] = line[i * 2 + 0];
-    d[i * 4 + 2] = line[i * 2 + 3];
-    d[i * 4 + 3] = line[i * 2 + 1];
+    d[i * 4 + 1] = s[i * 2 + 0];
+    d[i * 4 + 2] = s[i * 2 + 3];
+    d[i * 4 + 3] = s[i * 2 + 1];
   }
 }
 
@@ -219,17 +355,27 @@
     const gint stride[GST_VIDEO_MAX_PLANES], GstVideoChromaSite chroma_site,
     gint y, gint width)
 {
-  guint8 *line = GET_LINE (y);
-  const guint8 *ayuv = src;
+  guint8 *restrict d = GET_LINE (y);
+  const guint8 *restrict s = src;
 
-  video_orc_pack_YVYU (line, src, width / 2);
+  if (IS_ALIGNED (s, 8))
+    video_orc_pack_YVYU (d, s, width / 2);
+  else {
+    gint i;
+    for (i = 0; i < width / 2; i++) {
+      d[i * 4 + 0] = s[i * 8 + 1];
+      d[i * 4 + 1] = s[i * 8 + 3];
+      d[i * 4 + 2] = s[i * 8 + 5];
+      d[i * 4 + 3] = s[i * 8 + 2];
+    }
+  }
 
   if (width & 1) {
     gint i = width - 1;
 
-    line[i * 2 + 0] = ayuv[i * 4 + 1];
-    line[i * 2 + 1] = ayuv[i * 4 + 3];
-    line[i * 2 + 3] = ayuv[i * 4 + 2];
+    d[i * 2 + 0] = s[i * 4 + 1];
+    d[i * 2 + 1] = s[i * 4 + 3];
+    d[i * 2 + 3] = s[i * 4 + 2];
   }
 }
 
@@ -240,8 +386,10 @@
     const gint stride[GST_VIDEO_MAX_PLANES], gint x, gint y, gint width)
 {
   int i;
-  const guint8 *s = GET_LINE (y);
-  guint8 *d = dest;
+  const guint8 *restrict s = GET_LINE (y);
+  guint8 *restrict d = dest;
+
+  s += x * 3;
 
   for (i = 0; i < width; i++) {
     d[i * 4 + 0] = 0xff;
@@ -258,8 +406,8 @@
     gint y, gint width)
 {
   int i;
-  guint8 *d = GET_LINE (y);
-  const guint8 *s = src;
+  guint8 *restrict d = GET_LINE (y);
+  const guint8 *restrict s = src;
 
   for (i = 0; i < width; i++) {
     d[i * 3 + 0] = s[i * 4 + 1];
@@ -275,7 +423,11 @@
     gpointer dest, const gpointer data[GST_VIDEO_MAX_PLANES],
     const gint stride[GST_VIDEO_MAX_PLANES], gint x, gint y, gint width)
 {
-  memcpy (dest, GET_LINE (y), width * 4);
+  const guint8 *restrict s = GET_LINE (y);
+
+  s += x * 4;
+
+  memcpy (dest, s, width * 4);
 }
 
 static void
@@ -284,7 +436,9 @@
     const gint stride[GST_VIDEO_MAX_PLANES], GstVideoChromaSite chroma_site,
     gint y, gint width)
 {
-  memcpy (GET_LINE (y), src, width * 4);
+  guint8 *restrict d = GET_LINE (y);
+
+  memcpy (d, src, width * 4);
 }
 
 #define PACK_v210 GST_VIDEO_FORMAT_AYUV64, unpack_v210, 1, pack_v210
@@ -294,13 +448,16 @@
     const gint stride[GST_VIDEO_MAX_PLANES], gint x, gint y, gint width)
 {
   int i;
-  const guint8 *s = GET_LINE (y);
-  guint16 *d = dest;
+  const guint8 *restrict s = GET_LINE (y);
+  guint16 *restrict d = dest;
   guint32 a0, a1, a2, a3;
   guint16 y0, y1, y2, y3, y4, y5;
   guint16 u0, u2, u4;
   guint16 v0, v2, v4;
 
+  /* FIXME */
+  s += x * 2;
+
   for (i = 0; i < width; i += 6) {
     a0 = GST_READ_UINT32_LE (s + (i / 6) * 16 + 0);
     a1 = GST_READ_UINT32_LE (s + (i / 6) * 16 + 4);
@@ -384,8 +541,8 @@
     gint y, gint width)
 {
   int i;
-  guint8 *d = GET_LINE (y);
-  const guint16 *s = src;
+  guint8 *restrict d = GET_LINE (y);
+  const guint16 *restrict s = src;
   guint32 a0, a1, a2, a3;
   guint16 y0, y1, y2, y3, y4, y5;
   guint16 u0, u1, u2;
@@ -468,8 +625,19 @@
     const gint stride[GST_VIDEO_MAX_PLANES], gint x, gint y, gint width)
 {
   int i;
-  const guint8 *s = GET_LINE (y);
-  guint16 *d = dest;
+  const guint8 *restrict s = GET_LINE (y);
+  guint16 *restrict d = dest;
+
+  s += (x & ~1) << 2;
+  if (x & 1) {
+    d[0] = 0xffff;
+    d[1] = GST_READ_UINT16_LE (s + 6);
+    d[2] = GST_READ_UINT16_LE (s + 0);
+    d[3] = GST_READ_UINT16_LE (s + 4);
+    s += 8;
+    d += 4;
+    width--;
+  }
 
   for (i = 0; i < width; i++) {
     d[i * 4 + 0] = 0xffff;
@@ -486,8 +654,8 @@
     gint y, gint width)
 {
   int i;
-  guint8 *d = GET_LINE (y);
-  const guint16 *s = src;
+  guint8 *restrict d = GET_LINE (y);
+  const guint16 *restrict s = src;
 
   for (i = 0; i < width - 1; i += 2) {
     GST_WRITE_UINT16_LE (d + i * 4 + 0, s[(i + 0) * 4 + 2]);
@@ -509,20 +677,51 @@
     gpointer dest, const gpointer data[GST_VIDEO_MAX_PLANES],
     const gint stride[GST_VIDEO_MAX_PLANES], gint x, gint y, gint width)
 {
-  guint8 *y_line = GET_Y_LINE (y);
-  guint8 *u_line = GET_U_LINE (y);
-  guint8 *v_line = GET_V_LINE (y);
-  guint8 *d = dest;
+  const guint8 *restrict sy = GET_Y_LINE (y);
+  const guint8 *restrict su = GET_U_LINE (y);
+  const guint8 *restrict sv = GET_V_LINE (y);
+  guint8 *restrict d = dest;
 
-  video_orc_unpack_YUV9 (dest, y_line, u_line, v_line, width / 2);
+  sy += x;
+  su += x >> 2;
+  sv += x >> 2;
+
+  if (x & 3) {
+    for (; x & 3; x++) {
+      d[0] = 0xff;
+      d[1] = *sy++;
+      d[2] = *su;
+      d[3] = *sv;
+      width--;
+      d += 4;
+    }
+    su++;
+    sy++;
+  }
+
+  if (IS_ALIGNED (d, 8))
+    video_orc_unpack_YUV9 (d, sy, su, sv, width / 2);
+  else {
+    gint i;
+    for (i = 0; i < width / 2; i++) {
+      d[i * 8 + 0] = 0xff;
+      d[i * 8 + 1] = sy[i * 2 + 0];
+      d[i * 8 + 2] = su[i >> 1];
+      d[i * 8 + 3] = sv[i >> 1];
+      d[i * 8 + 4] = 0xff;
+      d[i * 8 + 5] = sy[i * 2 + 1];
+      d[i * 8 + 6] = su[i >> 1];
+      d[i * 8 + 7] = sv[i >> 1];
+    }
+  }
 
   if (width & 1) {
     gint i = width - 1;
 
     d[i * 4 + 0] = 0xff;
-    d[i * 4 + 1] = y_line[i];
-    d[i * 4 + 2] = u_line[i >> 2];
-    d[i * 4 + 3] = v_line[i >> 2];
+    d[i * 4 + 1] = sy[i];
+    d[i * 4 + 2] = su[i >> 2];
+    d[i * 4 + 3] = sv[i >> 2];
   }
 }
 
@@ -533,28 +732,28 @@
     gint y, gint width)
 {
   int i;
-  guint8 *destY = GET_Y_LINE (y);
-  guint8 *destU = GET_U_LINE (y);
-  guint8 *destV = GET_V_LINE (y);
-  const guint8 *s = src;
+  guint8 *restrict dy = GET_Y_LINE (y);
+  guint8 *restrict du = GET_U_LINE (y);
+  guint8 *restrict dv = GET_V_LINE (y);
+  const guint8 *restrict s = src;
 
   for (i = 0; i < width - 3; i += 4) {
-    destY[i] = s[i * 4 + 1];
-    destY[i + 1] = s[i * 4 + 5];
-    destY[i + 2] = s[i * 4 + 9];
-    destY[i + 3] = s[i * 4 + 13];
+    dy[i] = s[i * 4 + 1];
+    dy[i + 1] = s[i * 4 + 5];
+    dy[i + 2] = s[i * 4 + 9];
+    dy[i + 3] = s[i * 4 + 13];
 
-    destU[i >> 2] = s[i * 4 + 2];
-    destV[i >> 2] = s[i * 4 + 3];
+    du[i >> 2] = s[i * 4 + 2];
+    dv[i >> 2] = s[i * 4 + 3];
   }
   if (i < width) {
-    destY[i] = s[i * 4 + 1];
-    destU[i >> 2] = s[i * 4 + 2];
-    destV[i >> 2] = s[i * 4 + 3];
+    dy[i] = s[i * 4 + 1];
+    du[i >> 2] = s[i * 4 + 2];
+    dv[i >> 2] = s[i * 4 + 3];
     if (i < width - 1)
-      destY[i + 1] = s[i * 4 + 5];
+      dy[i + 1] = s[i * 4 + 5];
     if (i < width - 2)
-      destY[i + 2] = s[i * 4 + 9];
+      dy[i + 2] = s[i * 4 + 9];
   }
 }
 
@@ -564,20 +763,47 @@
     gpointer dest, const gpointer data[GST_VIDEO_MAX_PLANES],
     const gint stride[GST_VIDEO_MAX_PLANES], gint x, gint y, gint width)
 {
-  guint8 *y_line = GET_Y_LINE (y);
-  guint8 *u_line = GET_U_LINE (y);
-  guint8 *v_line = GET_V_LINE (y);
-  guint8 *d = dest;
+  const guint8 *restrict sy = GET_Y_LINE (y);
+  const guint8 *restrict su = GET_U_LINE (y);
+  const guint8 *restrict sv = GET_V_LINE (y);
+  guint8 *restrict d = dest;
 
-  video_orc_unpack_Y42B (dest, y_line, u_line, v_line, width / 2);
+  sy += x;
+  su += x >> 1;
+  sv += x >> 1;
+
+  if (x & 1) {
+    d[0] = 0xff;
+    d[1] = *sy++;
+    d[2] = *su++;
+    d[3] = *sv++;
+    width--;
+    d += 4;
+  }
+
+  if (IS_ALIGNED (d, 8))
+    video_orc_unpack_Y42B (d, sy, su, sv, width / 2);
+  else {
+    gint i;
+    for (i = 0; i < width / 2; i++) {
+      d[i * 8 + 0] = 0xff;
+      d[i * 8 + 1] = sy[i * 2 + 0];
+      d[i * 8 + 2] = su[i];
+      d[i * 8 + 3] = sv[i];
+      d[i * 8 + 4] = 0xff;
+      d[i * 8 + 5] = sy[i * 2 + 1];
+      d[i * 8 + 6] = su[i];
+      d[i * 8 + 7] = sv[i];
+    }
+  }
 
   if (width & 1) {
     gint i = width - 1;
 
     d[i * 4 + 0] = 0xff;
-    d[i * 4 + 1] = y_line[i];
-    d[i * 4 + 2] = u_line[i >> 1];
-    d[i * 4 + 3] = v_line[i >> 1];
+    d[i * 4 + 1] = sy[i];
+    d[i * 4 + 2] = su[i >> 1];
+    d[i * 4 + 3] = sv[i >> 1];
   }
 }
 
@@ -587,19 +813,29 @@
     const gint stride[GST_VIDEO_MAX_PLANES], GstVideoChromaSite chroma_site,
     gint y, gint width)
 {
-  guint8 *y_line = GET_Y_LINE (y);
-  guint8 *u_line = GET_U_LINE (y);
-  guint8 *v_line = GET_V_LINE (y);
-  const guint8 *ayuv = src;
+  guint8 *restrict dy = GET_Y_LINE (y);
+  guint8 *restrict du = GET_U_LINE (y);
+  guint8 *restrict dv = GET_V_LINE (y);
+  const guint8 *restrict s = src;
 
-  video_orc_pack_Y42B (y_line, u_line, v_line, src, width / 2);
+  if (IS_ALIGNED (s, 8))
+    video_orc_pack_Y42B (dy, du, dv, s, width / 2);
+  else {
+    gint i;
+    for (i = 0; i < width / 2; i++) {
+      dy[i * 2 + 0] = s[i * 8 + 1];
+      dy[i * 2 + 1] = s[i * 8 + 5];
+      du[i] = s[i * 8 + 2];
+      dv[i] = s[i * 8 + 3];
+    }
+  }
 
   if (width & 1) {
     gint i = width - 1;
 
-    y_line[i] = ayuv[i * 4 + 1];
-    u_line[i >> 1] = ayuv[i * 4 + 2];
-    v_line[i >> 1] = ayuv[i * 4 + 3];
+    dy[i] = s[i * 4 + 1];
+    du[i >> 1] = s[i * 4 + 2];
+    dv[i >> 1] = s[i * 4 + 3];
   }
 }
 
@@ -609,8 +845,15 @@
     gpointer dest, const gpointer data[GST_VIDEO_MAX_PLANES],
     const gint stride[GST_VIDEO_MAX_PLANES], gint x, gint y, gint width)
 {
-  video_orc_unpack_Y444 (dest, GET_Y_LINE (y), GET_U_LINE (y),
-      GET_V_LINE (y), width);
+  const guint8 *restrict sy = GET_Y_LINE (y);
+  const guint8 *restrict su = GET_U_LINE (y);
+  const guint8 *restrict sv = GET_V_LINE (y);
+
+  sy += x;
+  su += x;
+  sv += x;
+
+  video_orc_unpack_Y444 (dest, sy, su, sv, width);
 }
 
 static void
@@ -619,8 +862,11 @@
     const gint stride[GST_VIDEO_MAX_PLANES], GstVideoChromaSite chroma_site,
     gint y, gint width)
 {
-  video_orc_pack_Y444 (GET_Y_LINE (y), GET_U_LINE (y), GET_V_LINE (y), src,
-      width);
+  guint8 *restrict dy = GET_Y_LINE (y);
+  guint8 *restrict du = GET_U_LINE (y);
+  guint8 *restrict dv = GET_V_LINE (y);
+
+  video_orc_pack_Y444 (dy, du, dv, src, width);
 }
 
 #define PACK_GBR GST_VIDEO_FORMAT_ARGB, unpack_GBR, 1, pack_GBR
@@ -629,8 +875,15 @@
     gpointer dest, const gpointer data[GST_VIDEO_MAX_PLANES],
     const gint stride[GST_VIDEO_MAX_PLANES], gint x, gint y, gint width)
 {
-  video_orc_unpack_Y444 (dest, GET_R_LINE (y), GET_G_LINE (y),
-      GET_B_LINE (y), width);
+  const guint8 *restrict sr = GET_R_LINE (y);
+  const guint8 *restrict sg = GET_G_LINE (y);
+  const guint8 *restrict sb = GET_B_LINE (y);
+
+  sr += x;
+  sg += x;
+  sb += x;
+
+  video_orc_unpack_Y444 (dest, sr, sg, sb, width);
 }
 
 static void
@@ -639,8 +892,11 @@
     const gint stride[GST_VIDEO_MAX_PLANES], GstVideoChromaSite chroma_site,
     gint y, gint width)
 {
-  video_orc_pack_Y444 (GET_R_LINE (y), GET_G_LINE (y), GET_B_LINE (y), src,
-      width);
+  guint8 *restrict dr = GET_R_LINE (y);
+  guint8 *restrict dg = GET_G_LINE (y);
+  guint8 *restrict db = GET_B_LINE (y);
+
+  video_orc_pack_Y444 (dr, dg, db, src, width);
 }
 
 #define PACK_GRAY8 GST_VIDEO_FORMAT_AYUV, unpack_GRAY8, 1, pack_GRAY8
@@ -649,7 +905,11 @@
     gpointer dest, const gpointer data[GST_VIDEO_MAX_PLANES],
     const gint stride[GST_VIDEO_MAX_PLANES], gint x, gint y, gint width)
 {
-  video_orc_unpack_GRAY8 (dest, GET_LINE (y), width);
+  const guint8 *restrict s = GET_LINE (y);
+
+  s += x;
+
+  video_orc_unpack_GRAY8 (dest, s, width);
 }
 
 static void
@@ -658,7 +918,9 @@
     const gint stride[GST_VIDEO_MAX_PLANES], GstVideoChromaSite chroma_site,
     gint y, gint width)
 {
-  video_orc_pack_GRAY8 (GET_LINE (y), src, width);
+  guint8 *restrict d = GET_LINE (y);
+
+  video_orc_pack_GRAY8 (d, src, width);
 }
 
 #define PACK_GRAY16_BE GST_VIDEO_FORMAT_AYUV64, unpack_GRAY16_BE, 1, pack_GRAY16_BE
@@ -668,8 +930,10 @@
     const gint stride[GST_VIDEO_MAX_PLANES], gint x, gint y, gint width)
 {
   int i;
-  const guint16 *s = GET_LINE (y);
-  guint16 *d = dest;
+  const guint16 *restrict s = GET_LINE (y);
+  guint16 *restrict d = dest;
+
+  s += x;
 
   for (i = 0; i < width; i++) {
     d[i * 4 + 0] = 0xffff;
@@ -686,8 +950,8 @@
     gint y, gint width)
 {
   int i;
-  guint16 *d = GET_LINE (y);
-  const guint16 *s = src;
+  guint16 *restrict d = GET_LINE (y);
+  const guint16 *restrict s = src;
 
   for (i = 0; i < width; i++) {
     GST_WRITE_UINT16_BE (d + i, s[i * 4 + 1]);
@@ -701,8 +965,10 @@
     const gint stride[GST_VIDEO_MAX_PLANES], gint x, gint y, gint width)
 {
   int i;
-  const guint16 *s = GET_LINE (y);
-  guint16 *d = dest;
+  const guint16 *restrict s = GET_LINE (y);
+  guint16 *restrict d = dest;
+
+  s += x;
 
   for (i = 0; i < width; i++) {
     d[i * 4 + 0] = 0xffff;
@@ -719,8 +985,8 @@
     gint y, gint width)
 {
   int i;
-  guint16 *d = GET_LINE (y);
-  const guint16 *s = src;
+  guint16 *restrict d = GET_LINE (y);
+  const guint16 *restrict s = src;
 
   for (i = 0; i < width; i++) {
     GST_WRITE_UINT16_LE (d + i, s[i * 4 + 1]);
@@ -733,26 +999,12 @@
     gpointer dest, const gpointer data[GST_VIDEO_MAX_PLANES],
     const gint stride[GST_VIDEO_MAX_PLANES], gint x, gint y, gint width)
 {
-  int i;
-  const guint16 *s = GET_LINE (y);
-  guint8 *d = dest, r, g, b;
+  const guint16 *restrict s = GET_LINE (y);
 
-  for (i = 0; i < width; i++) {
-    r = ((s[i] >> 11) & 0x1f) << 3;
-    g = ((s[i] >> 5) & 0x3f) << 2;
-    b = ((s[i]) & 0x1f) << 3;
-
-    if (!(flags & GST_VIDEO_PACK_FLAG_TRUNCATE_RANGE)) {
-      r |= (r >> 5);
-      g |= (g >> 6);
-      b |= (b >> 5);
-    }
-
-    d[i * 4 + 0] = 0xff;
-    d[i * 4 + 1] = r;
-    d[i * 4 + 2] = g;
-    d[i * 4 + 3] = b;
-  }
+  if (flags & GST_VIDEO_PACK_FLAG_TRUNCATE_RANGE)
+    video_orc_unpack_RGB16_trunc (dest, s + x, width);
+  else
+    video_orc_unpack_RGB16 (dest, s + x, width);
 }
 
 static void
@@ -761,14 +1013,13 @@
     const gint stride[GST_VIDEO_MAX_PLANES], GstVideoChromaSite chroma_site,
     gint y, gint width)
 {
-  int i;
-  guint16 *d = GET_LINE (y);
-  const guint8 *s = src;
+  guint16 *restrict d = GET_LINE (y);
 
-  for (i = 0; i < width; i++) {
-    d[i] = ((s[i * 4 + 1] >> 3) << 11) |
-        ((s[i * 4 + 2] >> 2) << 5) | (s[i * 4 + 3] >> 3);
-  }
+#if G_BYTE_ORDER == G_LITTLE_ENDIAN
+  video_orc_pack_RGB16_le (d, src, width);
+#else
+  video_orc_pack_RGB16_be (d, src, width);
+#endif
 }
 
 #define PACK_BGR16 GST_VIDEO_FORMAT_ARGB, unpack_BGR16, 1, pack_BGR16
@@ -777,26 +1028,12 @@
     gpointer dest, const gpointer data[GST_VIDEO_MAX_PLANES],
     const gint stride[GST_VIDEO_MAX_PLANES], gint x, gint y, gint width)
 {
-  int i;
-  const guint16 *s = GET_LINE (y);
-  guint8 *d = dest, r, g, b;
+  const guint16 *restrict s = GET_LINE (y);
 
-  for (i = 0; i < width; i++) {
-    b = ((s[i] >> 11) & 0x1f) << 3;
-    g = ((s[i] >> 5) & 0x3f) << 2;
-    r = ((s[i]) & 0x1f) << 3;
-
-    if (!(flags & GST_VIDEO_PACK_FLAG_TRUNCATE_RANGE)) {
-      r |= (r >> 5);
-      g |= (g >> 6);
-      b |= (b >> 5);
-    }
-
-    d[i * 4 + 0] = 0xff;
-    d[i * 4 + 1] = r;
-    d[i * 4 + 2] = g;
-    d[i * 4 + 3] = b;
-  }
+  if (flags & GST_VIDEO_PACK_FLAG_TRUNCATE_RANGE)
+    video_orc_unpack_BGR16_trunc (dest, s + x, width);
+  else
+    video_orc_unpack_BGR16 (dest, s + x, width);
 }
 
 static void
@@ -805,14 +1042,13 @@
     const gint stride[GST_VIDEO_MAX_PLANES], GstVideoChromaSite chroma_site,
     gint y, gint width)
 {
-  int i;
-  guint16 *d = GET_LINE (y);
-  const guint8 *s = src;
+  guint16 *restrict d = GET_LINE (y);
 
-  for (i = 0; i < width; i++) {
-    d[i] = ((s[i * 4 + 3] >> 3) << 11) |
-        ((s[i * 4 + 2] >> 2) << 5) | (s[i * 4 + 1] >> 3);
-  }
+#if G_BYTE_ORDER == G_LITTLE_ENDIAN
+  video_orc_pack_BGR16_le (d, src, width);
+#else
+  video_orc_pack_BGR16_be (d, src, width);
+#endif
 }
 
 #define PACK_RGB15 GST_VIDEO_FORMAT_ARGB, unpack_RGB15, 1, pack_RGB15
@@ -821,26 +1057,19 @@
     gpointer dest, const gpointer data[GST_VIDEO_MAX_PLANES],
     const gint stride[GST_VIDEO_MAX_PLANES], gint x, gint y, gint width)
 {
-  int i;
-  const guint16 *s = GET_LINE (y);
-  guint8 *d = dest, r, g, b;
+  const guint16 *restrict s = GET_LINE (y);
 
-  for (i = 0; i < width; i++) {
-    r = ((s[i] >> 10) & 0x1f) << 3;
-    g = ((s[i] >> 5) & 0x1f) << 3;
-    b = ((s[i]) & 0x1f) << 3;
-
-    if (!(flags & GST_VIDEO_PACK_FLAG_TRUNCATE_RANGE)) {
-      r |= (r >> 5);
-      g |= (g >> 5);
-      b |= (b >> 5);
-    }
-
-    d[i * 4 + 0] = 0xff;
-    d[i * 4 + 1] = r;
-    d[i * 4 + 2] = g;
-    d[i * 4 + 3] = b;
-  }
+#if G_BYTE_ORDER == G_LITTLE_ENDIAN
+  if (flags & GST_VIDEO_PACK_FLAG_TRUNCATE_RANGE)
+    video_orc_unpack_RGB15_le_trunc (dest, s + x, width);
+  else
+    video_orc_unpack_RGB15_le (dest, s + x, width);
+#else
+  if (flags & GST_VIDEO_PACK_FLAG_TRUNCATE_RANGE)
+    video_orc_unpack_RGB15_be_trunc (dest, s + x, width);
+  else
+    video_orc_unpack_RGB15_be (dest, s + x, width);
+#endif
 }
 
 static void
@@ -849,14 +1078,13 @@
     const gint stride[GST_VIDEO_MAX_PLANES], GstVideoChromaSite chroma_site,
     gint y, gint width)
 {
-  int i;
-  guint16 *d = GET_LINE (y);
-  const guint8 *s = src;
+  guint16 *restrict d = GET_LINE (y);
 
-  for (i = 0; i < width; i++) {
-    d[i] = ((s[i * 4 + 1] >> 3) << 10) |
-        ((s[i * 4 + 2] >> 3) << 5) | (s[i * 4 + 3] >> 3);
-  }
+#if G_BYTE_ORDER == G_LITTLE_ENDIAN
+  video_orc_pack_RGB15_le (d, src, width);
+#else
+  video_orc_pack_RGB15_be (d, src, width);
+#endif
 }
 
 #define PACK_BGR15 GST_VIDEO_FORMAT_ARGB, unpack_BGR15, 1, pack_BGR15
@@ -865,26 +1093,19 @@
     gpointer dest, const gpointer data[GST_VIDEO_MAX_PLANES],
     const gint stride[GST_VIDEO_MAX_PLANES], gint x, gint y, gint width)
 {
-  int i;
-  const guint16 *s = GET_LINE (y);
-  guint8 *d = dest, r, g, b;
+  const guint16 *restrict s = GET_LINE (y);
 
-  for (i = 0; i < width; i++) {
-    b = ((s[i] >> 10) & 0x1f) << 3;
-    g = ((s[i] >> 5) & 0x1f) << 3;
-    r = ((s[i]) & 0x1f) << 3;
-
-    if (!(flags & GST_VIDEO_PACK_FLAG_TRUNCATE_RANGE)) {
-      r |= (r >> 5);
-      g |= (g >> 5);
-      b |= (b >> 5);
-    }
-
-    d[i * 4 + 0] = 0xff;
-    d[i * 4 + 1] = r;
-    d[i * 4 + 2] = g;
-    d[i * 4 + 3] = b;
-  }
+#if G_BYTE_ORDER == G_LITTLE_ENDIAN
+  if (flags & GST_VIDEO_PACK_FLAG_TRUNCATE_RANGE)
+    video_orc_unpack_BGR15_le_trunc (dest, s + x, width);
+  else
+    video_orc_unpack_BGR15_le (dest, s + x, width);
+#else
+  if (flags & GST_VIDEO_PACK_FLAG_TRUNCATE_RANGE)
+    video_orc_unpack_BGR15_be_trunc (dest, s + x, width);
+  else
+    video_orc_unpack_BGR15_be (dest, s + x, width);
+#endif
 }
 
 static void
@@ -893,14 +1114,13 @@
     const gint stride[GST_VIDEO_MAX_PLANES], GstVideoChromaSite chroma_site,
     gint y, gint width)
 {
-  int i;
-  guint16 *d = GET_LINE (y);
-  const guint8 *s = src;
+  guint16 *restrict d = GET_LINE (y);
 
-  for (i = 0; i < width; i++) {
-    d[i] = ((s[i * 4 + 3] >> 3) << 10) |
-        ((s[i * 4 + 2] >> 3) << 5) | (s[i * 4 + 1] >> 3);
-  }
+#if G_BYTE_ORDER == G_LITTLE_ENDIAN
+  video_orc_pack_BGR15_le (d, src, width);
+#else
+  video_orc_pack_BGR15_be (d, src, width);
+#endif
 }
 
 #define PACK_BGRA GST_VIDEO_FORMAT_ARGB, unpack_BGRA, 1, pack_BGRA
@@ -909,7 +1129,11 @@
     gpointer dest, const gpointer data[GST_VIDEO_MAX_PLANES],
     const gint stride[GST_VIDEO_MAX_PLANES], gint x, gint y, gint width)
 {
-  video_orc_unpack_BGRA (dest, GET_LINE (y), width);
+  const guint8 *restrict s = GET_LINE (y);
+
+  s += x * 4;
+
+  video_orc_unpack_BGRA (dest, s, width);
 }
 
 static void
@@ -918,7 +1142,9 @@
     const gint stride[GST_VIDEO_MAX_PLANES], GstVideoChromaSite chroma_site,
     gint y, gint width)
 {
-  video_orc_pack_BGRA (GET_LINE (y), src, width);
+  guint8 *restrict d = GET_LINE (y);
+
+  video_orc_pack_BGRA (d, src, width);
 }
 
 #define PACK_ABGR GST_VIDEO_FORMAT_ARGB, unpack_ABGR, 1, pack_ABGR
@@ -927,7 +1153,11 @@
     gpointer dest, const gpointer data[GST_VIDEO_MAX_PLANES],
     const gint stride[GST_VIDEO_MAX_PLANES], gint x, gint y, gint width)
 {
-  video_orc_unpack_ABGR (dest, GET_LINE (y), width);
+  const guint8 *restrict s = GET_LINE (y);
+
+  s += x * 4;
+
+  video_orc_unpack_ABGR (dest, s, width);
 }
 
 static void
@@ -936,7 +1166,9 @@
     const gint stride[GST_VIDEO_MAX_PLANES], GstVideoChromaSite chroma_site,
     gint y, gint width)
 {
-  video_orc_pack_ABGR (GET_LINE (y), src, width);
+  guint8 *restrict d = GET_LINE (y);
+
+  video_orc_pack_ABGR (d, src, width);
 }
 
 #define PACK_RGBA GST_VIDEO_FORMAT_ARGB, unpack_RGBA, 1, pack_RGBA
@@ -945,7 +1177,11 @@
     gpointer dest, const gpointer data[GST_VIDEO_MAX_PLANES],
     const gint stride[GST_VIDEO_MAX_PLANES], gint x, gint y, gint width)
 {
-  video_orc_unpack_RGBA (dest, GET_LINE (y), width);
+  const guint8 *restrict s = GET_LINE (y);
+
+  s += x * 4;
+
+  video_orc_unpack_RGBA (dest, s, width);
 }
 
 static void
@@ -954,7 +1190,9 @@
     const gint stride[GST_VIDEO_MAX_PLANES], GstVideoChromaSite chroma_site,
     gint y, gint width)
 {
-  video_orc_pack_RGBA (GET_LINE (y), src, width);
+  guint8 *restrict d = GET_LINE (y);
+
+  video_orc_pack_RGBA (d, src, width);
 }
 
 #define PACK_RGB GST_VIDEO_FORMAT_ARGB, unpack_RGB, 1, pack_RGB
@@ -964,8 +1202,10 @@
     const gint stride[GST_VIDEO_MAX_PLANES], gint x, gint y, gint width)
 {
   int i;
-  const guint8 *s = GET_LINE (y);
-  guint8 *d = dest;
+  const guint8 *restrict s = GET_LINE (y);
+  guint8 *restrict d = dest;
+
+  s += x * 3;
 
   for (i = 0; i < width; i++) {
     d[i * 4 + 0] = 0xff;
@@ -982,8 +1222,8 @@
     gint y, gint width)
 {
   int i;
-  guint8 *d = GET_LINE (y);
-  const guint8 *s = src;
+  guint8 *restrict d = GET_LINE (y);
+  const guint8 *restrict s = src;
 
   for (i = 0; i < width; i++) {
     d[i * 3 + 0] = s[i * 4 + 1];
@@ -999,8 +1239,10 @@
     const gint stride[GST_VIDEO_MAX_PLANES], gint x, gint y, gint width)
 {
   int i;
-  const guint8 *s = GET_LINE (y);
-  guint8 *d = dest;
+  const guint8 *restrict s = GET_LINE (y);
+  guint8 *restrict d = dest;
+
+  s += x * 3;
 
   for (i = 0; i < width; i++) {
     d[i * 4 + 0] = 0xff;
@@ -1017,8 +1259,8 @@
     gint y, gint width)
 {
   int i;
-  guint8 *d = GET_LINE (y);
-  const guint8 *s = src;
+  guint8 *restrict d = GET_LINE (y);
+  const guint8 *restrict s = src;
 
   for (i = 0; i < width; i++) {
     d[i * 3 + 0] = s[i * 4 + 3];
@@ -1034,19 +1276,46 @@
     const gint stride[GST_VIDEO_MAX_PLANES], gint x, gint y, gint width)
 {
   gint uv = GET_UV_420 (y, flags);
-  guint8 *y_line = GET_PLANE_LINE (0, y);
-  guint8 *uv_line = GET_PLANE_LINE (1, uv);
-  guint8 *d = dest;
+  const guint8 *restrict sy = GET_PLANE_LINE (0, y);
+  const guint8 *restrict suv = GET_PLANE_LINE (1, uv);
+  guint8 *restrict d = dest;
 
-  video_orc_unpack_NV12 (dest, y_line, uv_line, width / 2);
+  sy += x;
+  suv += (x & ~1);
+
+  if (x & 1) {
+    d[0] = 0xff;
+    d[1] = *sy++;
+    d[2] = suv[0];
+    d[3] = suv[1];
+    width--;
+    d += 4;
+    suv += 2;
+  }
+
+  if (IS_ALIGNED (d, 8))
+    video_orc_unpack_NV12 (d, sy, suv, width / 2);
+  else {
+    gint i;
+    for (i = 0; i < width / 2; i++) {
+      d[i * 8 + 0] = 0xff;
+      d[i * 8 + 1] = sy[i * 2 + 0];
+      d[i * 8 + 2] = suv[i * 2 + 0];
+      d[i * 8 + 3] = suv[i * 2 + 1];
+      d[i * 8 + 4] = 0xff;
+      d[i * 8 + 5] = sy[i * 2 + 1];
+      d[i * 8 + 6] = suv[i * 2 + 0];
+      d[i * 8 + 7] = suv[i * 2 + 1];
+    }
+  }
 
   if (width & 1) {
     gint i = width - 1;
 
     d[i * 4 + 0] = 0xff;
-    d[i * 4 + 1] = y_line[i];
-    d[i * 4 + 2] = uv_line[i + 0];
-    d[i * 4 + 3] = uv_line[i + 1];
+    d[i * 4 + 1] = sy[i];
+    d[i * 4 + 2] = suv[i + 0];
+    d[i * 4 + 3] = suv[i + 1];
   }
 }
 
@@ -1057,19 +1326,31 @@
     gint y, gint width)
 {
   gint uv = GET_UV_420 (y, flags);
-  guint8 *y_line = GET_PLANE_LINE (0, y);
-  guint8 *uv_line = GET_PLANE_LINE (1, uv);
-  const guint8 *ayuv = src;
+  guint8 *restrict dy = GET_PLANE_LINE (0, y);
+  guint8 *restrict duv = GET_PLANE_LINE (1, uv);
+  const guint8 *restrict s = src;
 
-  video_orc_pack_NV12 (y_line, uv_line, src, width / 2);
+  if (IS_CHROMA_LINE_420 (y, flags)) {
+    if (IS_ALIGNED (s, 8))
+      video_orc_pack_NV12 (dy, duv, s, width / 2);
+    else {
+      gint i;
+      for (i = 0; i < width / 2; i++) {
+        dy[i * 2 + 0] = s[i * 8 + 1];
+        dy[i * 2 + 1] = s[i * 8 + 5];
+        duv[i * 2 + 0] = s[i * 8 + 2];
+        duv[i * 2 + 1] = s[i * 8 + 3];
+      }
+    }
+    if (width & 1) {
+      gint i = width - 1;
 
-  if (width & 1) {
-    gint i = width - 1;
-
-    y_line[i] = ayuv[i * 4 + 1];
-    uv_line[i + 0] = ayuv[i * 4 + 2];
-    uv_line[i + 1] = ayuv[i * 4 + 3];
-  }
+      dy[i] = s[i * 4 + 1];
+      duv[i + 0] = s[i * 4 + 2];
+      duv[i + 1] = s[i * 4 + 3];
+    }
+  } else
+    video_orc_pack_Y (dy, s, width);
 }
 
 #define PACK_NV21 GST_VIDEO_FORMAT_AYUV, unpack_NV21, 1, pack_NV21
@@ -1079,19 +1360,46 @@
     const gint stride[GST_VIDEO_MAX_PLANES], gint x, gint y, gint width)
 {
   gint uv = GET_UV_420 (y, flags);
-  guint8 *y_line = GET_PLANE_LINE (0, y);
-  guint8 *uv_line = GET_PLANE_LINE (1, uv);
-  guint8 *d = dest;
+  const guint8 *restrict sy = GET_PLANE_LINE (0, y);
+  const guint8 *restrict suv = GET_PLANE_LINE (1, uv);
+  guint8 *restrict d = dest;
 
-  video_orc_unpack_NV21 (dest, y_line, uv_line, width / 2);
+  sy += x;
+  suv += (x & ~1);
+
+  if (x & 1) {
+    d[0] = 0xff;
+    d[1] = *sy++;
+    d[2] = suv[1];
+    d[3] = suv[0];
+    width--;
+    d += 4;
+    suv += 2;
+  }
+
+  if (IS_ALIGNED (d, 8))
+    video_orc_unpack_NV21 (d, sy, suv, width / 2);
+  else {
+    gint i;
+    for (i = 0; i < width / 2; i++) {
+      d[i * 8 + 0] = 0xff;
+      d[i * 8 + 1] = sy[i * 2 + 0];
+      d[i * 8 + 2] = suv[i * 2 + 1];
+      d[i * 8 + 3] = suv[i * 2 + 0];
+      d[i * 8 + 4] = 0xff;
+      d[i * 8 + 5] = sy[i * 2 + 1];
+      d[i * 8 + 6] = suv[i * 2 + 1];
+      d[i * 8 + 7] = suv[i * 2 + 0];
+    }
+  }
 
   if (width & 1) {
     gint i = width - 1;
 
     d[i * 4 + 0] = 0xff;
-    d[i * 4 + 1] = y_line[i];
-    d[i * 4 + 2] = uv_line[i + 1];
-    d[i * 4 + 3] = uv_line[i + 0];
+    d[i * 4 + 1] = sy[i];
+    d[i * 4 + 2] = suv[i + 1];
+    d[i * 4 + 3] = suv[i + 0];
   }
 }
 
@@ -1102,19 +1410,31 @@
     gint y, gint width)
 {
   gint uv = GET_UV_420 (y, flags);
-  guint8 *y_line = GET_PLANE_LINE (0, y);
-  guint8 *uv_line = GET_PLANE_LINE (1, uv);
-  const guint8 *ayuv = src;
+  guint8 *restrict dy = GET_PLANE_LINE (0, y);
+  guint8 *restrict duv = GET_PLANE_LINE (1, uv);
+  const guint8 *restrict s = src;
 
-  video_orc_pack_NV21 (y_line, uv_line, src, width / 2);
+  if (IS_CHROMA_LINE_420 (y, flags)) {
+    if (IS_ALIGNED (s, 8))
+      video_orc_pack_NV21 (dy, duv, s, width / 2);
+    else {
+      gint i;
+      for (i = 0; i < width / 2; i++) {
+        dy[i * 2 + 0] = s[i * 8 + 1];
+        dy[i * 2 + 1] = s[i * 8 + 5];
+        duv[i * 2 + 0] = s[i * 8 + 3];
+        duv[i * 2 + 1] = s[i * 8 + 2];
+      }
+    }
+    if (width & 1) {
+      gint i = width - 1;
 
-  if (width & 1) {
-    gint i = width - 1;
-
-    y_line[i] = ayuv[i * 4 + 1];
-    uv_line[i + 0] = ayuv[i * 4 + 3];
-    uv_line[i + 1] = ayuv[i * 4 + 2];
-  }
+      dy[i] = s[i * 4 + 1];
+      duv[i + 0] = s[i * 4 + 3];
+      duv[i + 1] = s[i * 4 + 2];
+    }
+  } else
+    video_orc_pack_Y (dy, s, width);
 }
 
 #define PACK_NV16 GST_VIDEO_FORMAT_AYUV, unpack_NV16, 1, pack_NV16
@@ -1123,19 +1443,46 @@
     gpointer dest, const gpointer data[GST_VIDEO_MAX_PLANES],
     const gint stride[GST_VIDEO_MAX_PLANES], gint x, gint y, gint width)
 {
-  guint8 *y_line = GET_PLANE_LINE (0, y);
-  guint8 *uv_line = GET_PLANE_LINE (1, y);
-  guint8 *d = dest;
+  const guint8 *restrict sy = GET_PLANE_LINE (0, y);
+  const guint8 *restrict suv = GET_PLANE_LINE (1, y);
+  guint8 *restrict d = dest;
 
-  video_orc_unpack_NV12 (dest, y_line, uv_line, width / 2);
+  sy += x;
+  suv += (x & ~1);
+
+  if (x & 1) {
+    d[0] = 0xff;
+    d[1] = *sy++;
+    d[2] = suv[0];
+    d[3] = suv[1];
+    width--;
+    d += 4;
+    suv += 2;
+  }
+
+  if (IS_ALIGNED (d, 8))
+    video_orc_unpack_NV12 (d, sy, suv, width / 2);
+  else {
+    gint i;
+    for (i = 0; i < width / 2; i++) {
+      d[i * 8 + 0] = 0xff;
+      d[i * 8 + 1] = sy[i * 2 + 0];
+      d[i * 8 + 2] = suv[i * 2 + 0];
+      d[i * 8 + 3] = suv[i * 2 + 1];
+      d[i * 8 + 4] = 0xff;
+      d[i * 8 + 5] = sy[i * 2 + 1];
+      d[i * 8 + 6] = suv[i * 2 + 0];
+      d[i * 8 + 7] = suv[i * 2 + 1];
+    }
+  }
 
   if (width & 1) {
     gint i = width - 1;
 
     d[i * 4 + 0] = 0xff;
-    d[i * 4 + 1] = y_line[i];
-    d[i * 4 + 2] = uv_line[i + 0];
-    d[i * 4 + 3] = uv_line[i + 1];
+    d[i * 4 + 1] = sy[i];
+    d[i * 4 + 2] = suv[i + 0];
+    d[i * 4 + 3] = suv[i + 1];
   }
 }
 
@@ -1145,18 +1492,28 @@
     const gint stride[GST_VIDEO_MAX_PLANES], GstVideoChromaSite chroma_site,
     gint y, gint width)
 {
-  guint8 *y_line = GET_PLANE_LINE (0, y);
-  guint8 *uv_line = GET_PLANE_LINE (1, y);
-  const guint8 *ayuv = src;
+  guint8 *restrict dy = GET_PLANE_LINE (0, y);
+  guint8 *restrict duv = GET_PLANE_LINE (1, y);
+  const guint8 *restrict s = src;
 
-  video_orc_pack_NV12 (y_line, uv_line, src, width / 2);
+  if (IS_ALIGNED (s, 8))
+    video_orc_pack_NV12 (dy, duv, s, width / 2);
+  else {
+    gint i;
+    for (i = 0; i < width / 2; i++) {
+      dy[i * 2 + 0] = s[i * 8 + 1];
+      dy[i * 2 + 1] = s[i * 8 + 5];
+      duv[i * 2 + 0] = s[i * 8 + 2];
+      duv[i * 2 + 1] = s[i * 8 + 3];
+    }
+  }
 
   if (width & 1) {
     gint i = width - 1;
 
-    y_line[i] = ayuv[i * 4 + 1];
-    uv_line[i + 0] = ayuv[i * 4 + 2];
-    uv_line[i + 1] = ayuv[i * 4 + 3];
+    dy[i] = s[i * 4 + 1];
+    duv[i + 0] = s[i * 4 + 2];
+    duv[i + 1] = s[i * 4 + 3];
   }
 }
 
@@ -1166,8 +1523,13 @@
     gpointer dest, const gpointer data[GST_VIDEO_MAX_PLANES],
     const gint stride[GST_VIDEO_MAX_PLANES], gint x, gint y, gint width)
 {
-  video_orc_unpack_NV24 (dest,
-      GET_PLANE_LINE (0, y), GET_PLANE_LINE (1, y), width);
+  const guint8 *restrict sy = GET_PLANE_LINE (0, y);
+  const guint8 *restrict suv = GET_PLANE_LINE (1, y);
+
+  sy += x;
+  suv += x << 1;
+
+  video_orc_unpack_NV24 (dest, sy, suv, width);
 }
 
 static void
@@ -1176,8 +1538,10 @@
     const gint stride[GST_VIDEO_MAX_PLANES], GstVideoChromaSite chroma_site,
     gint y, gint width)
 {
-  video_orc_pack_NV24 (GET_PLANE_LINE (0, y),
-      GET_PLANE_LINE (1, y), src, width);
+  guint8 *restrict dy = GET_PLANE_LINE (0, y);
+  guint8 *restrict duv = GET_PLANE_LINE (1, y);
+
+  video_orc_pack_NV24 (dy, duv, src, width);
 }
 
 #define PACK_UYVP GST_VIDEO_FORMAT_AYUV64, unpack_UYVP, 1, pack_UYVP
@@ -1187,8 +1551,11 @@
     const gint stride[GST_VIDEO_MAX_PLANES], gint x, gint y, gint width)
 {
   int i;
-  const guint8 *s = GET_LINE (y);
-  guint16 *d = dest;
+  const guint8 *restrict s = GET_LINE (y);
+  guint16 *restrict d = dest;
+
+  /* FIXME */
+  s += x << 1;
 
   for (i = 0; i < width; i += 2) {
     guint16 y0, y1;
@@ -1201,10 +1568,10 @@
     y1 = (((s[(i / 2) * 5 + 3] & 0x03) << 8) | s[(i / 2) * 5 + 4]) << 6;
 
     if (!(flags & GST_VIDEO_PACK_FLAG_TRUNCATE_RANGE)) {
-      y0 |= (y0 >> 4);
-      y1 |= (y1 >> 4);
-      u0 |= (u0 >> 4);
-      v0 |= (v0 >> 4);
+      y0 |= (y0 >> 10);
+      y1 |= (y1 >> 10);
+      u0 |= (u0 >> 10);
+      v0 |= (v0 >> 10);
     }
 
     d[i * 4 + 0] = 0xffff;
@@ -1228,8 +1595,8 @@
     gint y, gint width)
 {
   int i;
-  guint8 *d = GET_LINE (y);
-  const guint16 *s = src;
+  guint8 *restrict d = GET_LINE (y);
+  const guint16 *restrict s = src;
 
   for (i = 0; i < width; i += 2) {
     guint16 y0, y1;
@@ -1260,9 +1627,26 @@
     const gint stride[GST_VIDEO_MAX_PLANES], gint x, gint y, gint width)
 {
   gint uv = GET_UV_420 (y, flags);
+  const guint8 *restrict sy = GET_Y_LINE (y);
+  const guint8 *restrict su = GET_U_LINE (uv);
+  const guint8 *restrict sv = GET_V_LINE (uv);
+  const guint8 *restrict sa = GET_A_LINE (y);
+  guint8 *restrict d = dest;
 
-  video_orc_unpack_A420 (dest, GET_Y_LINE (y), GET_U_LINE (uv),
-      GET_V_LINE (uv), GET_A_LINE (y), width);
+  sy += x;
+  su += x >> 1;
+  sv += x >> 1;
+  sa += x;
+
+  if (x & 1) {
+    d[0] = *sa++;
+    d[1] = *sy++;
+    d[2] = *su++;
+    d[3] = *sv++;
+    width--;
+    d += 4;
+  }
+  video_orc_unpack_A420 (d, sy, su, sv, sa, width);
 }
 
 static void
@@ -1272,22 +1656,37 @@
     gint y, gint width)
 {
   gint uv = GET_UV_420 (y, flags);
-  guint8 *y_line = GET_Y_LINE (y);
-  guint8 *u_line = GET_U_LINE (uv);
-  guint8 *v_line = GET_V_LINE (uv);
-  guint8 *a_line = GET_A_LINE (y);
-  const guint8 *ayuv = src;
+  guint8 *restrict dy = GET_Y_LINE (y);
+  guint8 *restrict du = GET_U_LINE (uv);
+  guint8 *restrict dv = GET_V_LINE (uv);
+  guint8 *restrict da = GET_A_LINE (y);
+  const guint8 *restrict s = src;
 
-  video_orc_pack_A420 (y_line, u_line, v_line, a_line, src, width / 2);
+  if (IS_CHROMA_LINE_420 (y, flags)) {
+    if (IS_ALIGNED (s, 8))
+      video_orc_pack_A420 (dy, du, dv, da, s, width / 2);
+    else {
+      gint i;
+      for (i = 0; i < width / 2; i++) {
+        da[i * 2 + 0] = s[i * 8 + 0];
+        dy[i * 2 + 0] = s[i * 8 + 1];
+        da[i * 2 + 1] = s[i * 8 + 4];
+        dy[i * 2 + 1] = s[i * 8 + 5];
+        du[i] = s[i * 8 + 2];
+        dv[i] = s[i * 8 + 3];
+      }
+    }
 
-  if (width & 1) {
-    gint i = width - 1;
+    if (width & 1) {
+      gint i = width - 1;
 
-    a_line[i] = ayuv[i * 4 + 0];
-    y_line[i] = ayuv[i * 4 + 1];
-    u_line[i >> 1] = ayuv[i * 4 + 2];
-    v_line[i >> 1] = ayuv[i * 4 + 3];
-  }
+      da[i] = s[i * 4 + 0];
+      dy[i] = s[i * 4 + 1];
+      du[i >> 1] = s[i * 4 + 2];
+      dv[i >> 1] = s[i * 4 + 3];
+    }
+  } else
+    video_orc_pack_AY (dy, da, s, width);
 }
 
 #define PACK_RGB8P GST_VIDEO_FORMAT_ARGB, unpack_RGB8P, 1, pack_RGB8P
@@ -1297,9 +1696,11 @@
     const gint stride[GST_VIDEO_MAX_PLANES], gint x, gint y, gint width)
 {
   int i;
-  const guint8 *s = GET_LINE (y);
-  const guint32 *p = data[1];
-  guint8 *d = dest;
+  const guint8 *restrict s = GET_LINE (y);
+  const guint32 *restrict p = data[1];
+  guint8 *restrict d = dest;
+
+  s += x;
 
   for (i = 0; i < width; i++) {
     guint32 v = p[s[i]];
@@ -1363,8 +1764,8 @@
     gint y, gint width)
 {
   int i;
-  guint8 *d = GET_LINE (y);
-  const guint8 *s = src;
+  guint8 *restrict d = GET_LINE (y);
+  const guint8 *restrict s = src;
 
   /* Use our poor man's palette, taken from ffmpegcolorspace too */
   for (i = 0; i < width; i++) {
@@ -1385,20 +1786,51 @@
     const gint stride[GST_VIDEO_MAX_PLANES], gint x, gint y, gint width)
 {
   gint uv = GET_UV_410 (y, flags);
-  guint8 *y_line = GET_Y_LINE (y);
-  guint8 *u_line = GET_U_LINE (uv);
-  guint8 *v_line = GET_V_LINE (uv);
-  guint8 *d = dest;
+  const guint8 *restrict sy = GET_Y_LINE (y);
+  const guint8 *restrict su = GET_U_LINE (uv);
+  const guint8 *restrict sv = GET_V_LINE (uv);
+  guint8 *restrict d = dest;
 
-  video_orc_unpack_YUV9 (dest, y_line, u_line, v_line, width / 2);
+  sy += x;
+  su += x >> 2;
+  sv += x >> 2;
+
+  if (x & 3) {
+    for (; x & 3; x++) {
+      d[0] = 0xff;
+      d[1] = *sy++;
+      d[2] = *su;
+      d[3] = *sv;
+      width--;
+      d += 4;
+    }
+    su++;
+    sy++;
+  }
+
+  if (IS_ALIGNED (d, 8))
+    video_orc_unpack_YUV9 (d, sy, su, sv, width / 2);
+  else {
+    gint i;
+    for (i = 0; i < width / 2; i++) {
+      d[i * 8 + 0] = 0xff;
+      d[i * 8 + 1] = sy[i * 2 + 0];
+      d[i * 8 + 2] = su[i >> 1];
+      d[i * 8 + 3] = sv[i >> 1];
+      d[i * 8 + 4] = 0xff;
+      d[i * 8 + 5] = sy[i * 2 + 1];
+      d[i * 8 + 6] = su[i >> 1];
+      d[i * 8 + 7] = sv[i >> 1];
+    }
+  }
 
   if (width & 1) {
     gint i = width - 1;
 
     d[i * 4 + 0] = 0xff;
-    d[i * 4 + 1] = y_line[i];
-    d[i * 4 + 2] = u_line[i >> 2];
-    d[i * 4 + 3] = v_line[i >> 2];
+    d[i * 4 + 1] = sy[i];
+    d[i * 4 + 2] = su[i >> 2];
+    d[i * 4 + 3] = sv[i >> 2];
   }
 }
 
@@ -1410,31 +1842,31 @@
 {
   int i;
   gint uv = GET_UV_410 (y, flags);
-  guint8 *destY = GET_Y_LINE (y);
-  guint8 *destU = GET_U_LINE (uv);
-  guint8 *destV = GET_V_LINE (uv);
-  const guint8 *s = src;
+  guint8 *restrict dy = GET_Y_LINE (y);
+  guint8 *restrict du = GET_U_LINE (uv);
+  guint8 *restrict dv = GET_V_LINE (uv);
+  const guint8 *restrict s = src;
 
   for (i = 0; i < width - 3; i += 4) {
-    destY[i] = s[i * 4 + 1];
-    destY[i + 1] = s[i * 4 + 5];
-    destY[i + 2] = s[i * 4 + 9];
-    destY[i + 3] = s[i * 4 + 13];
-    if (y % 4 == 0) {
-      destU[i >> 2] = s[i * 4 + 2];
-      destV[i >> 2] = s[i * 4 + 3];
+    dy[i] = s[i * 4 + 1];
+    dy[i + 1] = s[i * 4 + 5];
+    dy[i + 2] = s[i * 4 + 9];
+    dy[i + 3] = s[i * 4 + 13];
+    if (IS_CHROMA_LINE_410 (y, flags)) {
+      du[i >> 2] = s[i * 4 + 2];
+      dv[i >> 2] = s[i * 4 + 3];
     }
   }
   if (i < width) {
-    destY[i] = s[i * 4 + 1];
-    if (y % 4 == 0) {
-      destU[i >> 2] = s[i * 4 + 2];
-      destV[i >> 2] = s[i * 4 + 3];
+    dy[i] = s[i * 4 + 1];
+    if (IS_CHROMA_LINE_410 (y, flags)) {
+      du[i >> 2] = s[i * 4 + 2];
+      dv[i >> 2] = s[i * 4 + 3];
     }
     if (i < width - 1)
-      destY[i + 1] = s[i * 4 + 5];
+      dy[i + 1] = s[i * 4 + 5];
     if (i < width - 2)
-      destY[i + 2] = s[i * 4 + 9];
+      dy[i + 2] = s[i * 4 + 9];
   }
 }
 
@@ -1445,12 +1877,15 @@
     const gint stride[GST_VIDEO_MAX_PLANES], gint x, gint y, gint width)
 {
   int i;
-  const guint8 *s = GET_LINE (y);
-  guint8 *d = dest;
+  const guint8 *restrict s = GET_LINE (y);
+  guint8 *restrict d = dest;
   guint8 y0, y1, y2, y3;
   guint8 u0;
   guint8 v0;
 
+  /* FIXME */
+  s += x * 4;
+
   for (i = 0; i < width - 3; i += 4) {
     y0 = s[(i >> 2) * 6 + 1];
     y1 = s[(i >> 2) * 6 + 2];
@@ -1511,8 +1946,8 @@
     gint y, gint width)
 {
   int i;
-  guint8 *d = GET_LINE (y);
-  const guint8 *s = src;
+  guint8 *restrict d = GET_LINE (y);
+  const guint8 *restrict s = src;
 
   for (i = 0; i < width - 3; i += 4) {
     d[(i >> 2) * 6 + 0] = s[i * 4 + 2];
@@ -1540,7 +1975,11 @@
     gpointer dest, const gpointer data[GST_VIDEO_MAX_PLANES],
     const gint stride[GST_VIDEO_MAX_PLANES], gint x, gint y, gint width)
 {
-  memcpy (dest, GET_LINE (y), width * 8);
+  const guint8 *s = GET_LINE (y);
+
+  s += x * 8;
+
+  memcpy (dest, s, width * 8);
 }
 
 static void
@@ -1549,7 +1988,9 @@
     const gint stride[GST_VIDEO_MAX_PLANES], GstVideoChromaSite chroma_site,
     gint y, gint width)
 {
-  memcpy (GET_LINE (y), src, width * 8);
+  guint8 *restrict d = GET_LINE (y);
+
+  memcpy (d, src, width * 8);
 }
 
 #define PACK_r210 GST_VIDEO_FORMAT_ARGB64, unpack_r210, 1, pack_r210
@@ -1559,8 +2000,10 @@
     const gint stride[GST_VIDEO_MAX_PLANES], gint x, gint y, gint width)
 {
   int i;
-  const guint8 *s = GET_LINE (y);
-  guint16 *d = dest, R, G, B;
+  const guint8 *restrict s = GET_LINE (y);
+  guint16 *restrict d = dest, R, G, B;
+
+  s += x * 4;
 
   for (i = 0; i < width; i++) {
     guint32 x = GST_READ_UINT32_BE (s + i * 4);
@@ -1589,8 +2032,8 @@
     gint y, gint width)
 {
   int i;
-  guint8 *d = GET_LINE (y);
-  const guint16 *s = src;
+  guint8 *restrict d = GET_LINE (y);
+  const guint16 *restrict s = src;
 
   for (i = 0; i < width; i++) {
     guint32 x = 0;
@@ -1608,15 +2051,25 @@
     const gint stride[GST_VIDEO_MAX_PLANES], gint x, gint y, gint width)
 {
   int i;
-  guint16 *srcG = GET_G_LINE (y);
-  guint16 *srcB = GET_B_LINE (y);
-  guint16 *srcR = GET_R_LINE (y);
+  const guint16 *sg = GET_G_LINE (y);
+  const guint16 *sb = GET_B_LINE (y);
+  const guint16 *sr = GET_R_LINE (y);
   guint16 *d = dest, G, B, R;
 
+  sg += x;
+  sb += x;
+  sr += x;
+
   for (i = 0; i < width; i++) {
-    G = GST_READ_UINT16_LE (srcG + i) << 6;
-    B = GST_READ_UINT16_LE (srcB + i) << 6;
-    R = GST_READ_UINT16_LE (srcR + i) << 6;
+    G = GST_READ_UINT16_LE (sg + i) << 6;
+    B = GST_READ_UINT16_LE (sb + i) << 6;
+    R = GST_READ_UINT16_LE (sr + i) << 6;
+
+    if (!(flags & GST_VIDEO_PACK_FLAG_TRUNCATE_RANGE)) {
+      R |= (R >> 10);
+      G |= (G >> 10);
+      B |= (B >> 10);
+    }
 
     d[i * 4 + 0] = 0xffff;
     d[i * 4 + 1] = R;
@@ -1632,20 +2085,20 @@
     gint y, gint width)
 {
   int i;
-  guint16 *destG = GET_G_LINE (y);
-  guint16 *destB = GET_B_LINE (y);
-  guint16 *destR = GET_R_LINE (y);
+  guint16 *restrict dg = GET_G_LINE (y);
+  guint16 *restrict db = GET_B_LINE (y);
+  guint16 *restrict dr = GET_R_LINE (y);
   guint16 G, B, R;
-  const guint16 *s = src;
+  const guint16 *restrict s = src;
 
   for (i = 0; i < width; i++) {
     G = (s[i * 4 + 2]) >> 6;
     B = (s[i * 4 + 3]) >> 6;
     R = (s[i * 4 + 1]) >> 6;
 
-    GST_WRITE_UINT16_LE (destG + i, G);
-    GST_WRITE_UINT16_LE (destB + i, B);
-    GST_WRITE_UINT16_LE (destR + i, R);
+    GST_WRITE_UINT16_LE (dg + i, G);
+    GST_WRITE_UINT16_LE (db + i, B);
+    GST_WRITE_UINT16_LE (dr + i, R);
   }
 }
 
@@ -1656,15 +2109,25 @@
     const gint stride[GST_VIDEO_MAX_PLANES], gint x, gint y, gint width)
 {
   int i;
-  guint16 *srcG = GET_G_LINE (y);
-  guint16 *srcB = GET_B_LINE (y);
-  guint16 *srcR = GET_R_LINE (y);
-  guint16 *d = dest, G, B, R;
+  const guint16 *restrict sg = GET_G_LINE (y);
+  const guint16 *restrict sb = GET_B_LINE (y);
+  const guint16 *restrict sr = GET_R_LINE (y);
+  guint16 *restrict d = dest, G, B, R;
+
+  sg += x;
+  sb += x;
+  sr += x;
 
   for (i = 0; i < width; i++) {
-    G = GST_READ_UINT16_BE (srcG + i) << 6;
-    B = GST_READ_UINT16_BE (srcB + i) << 6;
-    R = GST_READ_UINT16_BE (srcR + i) << 6;
+    G = GST_READ_UINT16_BE (sg + i) << 6;
+    B = GST_READ_UINT16_BE (sb + i) << 6;
+    R = GST_READ_UINT16_BE (sr + i) << 6;
+
+    if (!(flags & GST_VIDEO_PACK_FLAG_TRUNCATE_RANGE)) {
+      R |= (R >> 10);
+      G |= (G >> 10);
+      B |= (B >> 10);
+    }
 
     d[i * 4 + 0] = 0xffff;
     d[i * 4 + 1] = R;
@@ -1680,20 +2143,20 @@
     gint y, gint width)
 {
   int i;
-  guint16 *destG = GET_G_LINE (y);
-  guint16 *destB = GET_B_LINE (y);
-  guint16 *destR = GET_R_LINE (y);
+  guint16 *restrict dg = GET_G_LINE (y);
+  guint16 *restrict db = GET_B_LINE (y);
+  guint16 *restrict dr = GET_R_LINE (y);
   guint16 G, B, R;
-  const guint16 *s = src;
+  const guint16 *restrict s = src;
 
   for (i = 0; i < width; i++) {
     G = s[i * 4 + 2] >> 6;
     B = s[i * 4 + 3] >> 6;
     R = s[i * 4 + 1] >> 6;
 
-    GST_WRITE_UINT16_BE (destG + i, G);
-    GST_WRITE_UINT16_BE (destB + i, B);
-    GST_WRITE_UINT16_BE (destR + i, R);
+    GST_WRITE_UINT16_BE (dg + i, G);
+    GST_WRITE_UINT16_BE (db + i, B);
+    GST_WRITE_UINT16_BE (dr + i, R);
   }
 }
 
@@ -1704,15 +2167,19 @@
     const gint stride[GST_VIDEO_MAX_PLANES], gint x, gint y, gint width)
 {
   int i;
-  guint16 *srcY = GET_Y_LINE (y);
-  guint16 *srcU = GET_U_LINE (y);
-  guint16 *srcV = GET_V_LINE (y);
-  guint16 *d = dest, Y, U, V;
+  guint16 *restrict sy = GET_Y_LINE (y);
+  guint16 *restrict su = GET_U_LINE (y);
+  guint16 *restrict sv = GET_V_LINE (y);
+  guint16 *restrict d = dest, Y, U, V;
+
+  sy += x;
+  su += x;
+  sv += x;
 
   for (i = 0; i < width; i++) {
-    Y = GST_READ_UINT16_LE (srcY + i) << 6;
-    U = GST_READ_UINT16_LE (srcU + i) << 6;
-    V = GST_READ_UINT16_LE (srcV + i) << 6;
+    Y = GST_READ_UINT16_LE (sy + i) << 6;
+    U = GST_READ_UINT16_LE (su + i) << 6;
+    V = GST_READ_UINT16_LE (sv + i) << 6;
 
     if (!(flags & GST_VIDEO_PACK_FLAG_TRUNCATE_RANGE)) {
       Y |= (Y >> 10);
@@ -1734,20 +2201,20 @@
     gint y, gint width)
 {
   int i;
-  guint16 *destY = GET_Y_LINE (y);
-  guint16 *destU = GET_U_LINE (y);
-  guint16 *destV = GET_V_LINE (y);
+  guint16 *restrict dy = GET_Y_LINE (y);
+  guint16 *restrict du = GET_U_LINE (y);
+  guint16 *restrict dv = GET_V_LINE (y);
   guint16 Y, U, V;
-  const guint16 *s = src;
+  const guint16 *restrict s = src;
 
   for (i = 0; i < width; i++) {
     Y = (s[i * 4 + 1]) >> 6;
     U = (s[i * 4 + 2]) >> 6;
     V = (s[i * 4 + 3]) >> 6;
 
-    GST_WRITE_UINT16_LE (destY + i, Y);
-    GST_WRITE_UINT16_LE (destU + i, U);
-    GST_WRITE_UINT16_LE (destV + i, V);
+    GST_WRITE_UINT16_LE (dy + i, Y);
+    GST_WRITE_UINT16_LE (du + i, U);
+    GST_WRITE_UINT16_LE (dv + i, V);
   }
 }
 
@@ -1758,15 +2225,19 @@
     const gint stride[GST_VIDEO_MAX_PLANES], gint x, gint y, gint width)
 {
   int i;
-  guint16 *srcY = GET_Y_LINE (y);
-  guint16 *srcU = GET_U_LINE (y);
-  guint16 *srcV = GET_V_LINE (y);
-  guint16 *d = dest, Y, U, V;
+  const guint16 *restrict sy = GET_Y_LINE (y);
+  const guint16 *restrict su = GET_U_LINE (y);
+  const guint16 *restrict sv = GET_V_LINE (y);
+  guint16 *restrict d = dest, Y, U, V;
+
+  sy += x;
+  su += x;
+  sv += x;
 
   for (i = 0; i < width; i++) {
-    Y = GST_READ_UINT16_BE (srcY + i) << 6;
-    U = GST_READ_UINT16_BE (srcU + i) << 6;
-    V = GST_READ_UINT16_BE (srcV + i) << 6;
+    Y = GST_READ_UINT16_BE (sy + i) << 6;
+    U = GST_READ_UINT16_BE (su + i) << 6;
+    V = GST_READ_UINT16_BE (sv + i) << 6;
 
     if (!(flags & GST_VIDEO_PACK_FLAG_TRUNCATE_RANGE)) {
       Y |= (Y >> 10);
@@ -1788,20 +2259,20 @@
     gint y, gint width)
 {
   int i;
-  guint16 *destY = GET_Y_LINE (y);
-  guint16 *destU = GET_U_LINE (y);
-  guint16 *destV = GET_V_LINE (y);
+  guint16 *restrict dy = GET_Y_LINE (y);
+  guint16 *restrict du = GET_U_LINE (y);
+  guint16 *restrict dv = GET_V_LINE (y);
   guint16 Y, U, V;
-  const guint16 *s = src;
+  const guint16 *restrict s = src;
 
   for (i = 0; i < width; i++) {
     Y = s[i * 4 + 1] >> 6;
     U = s[i * 4 + 2] >> 6;
     V = s[i * 4 + 3] >> 6;
 
-    GST_WRITE_UINT16_BE (destY + i, Y);
-    GST_WRITE_UINT16_BE (destU + i, U);
-    GST_WRITE_UINT16_BE (destV + i, V);
+    GST_WRITE_UINT16_BE (dy + i, Y);
+    GST_WRITE_UINT16_BE (du + i, U);
+    GST_WRITE_UINT16_BE (dv + i, V);
   }
 }
 
@@ -1813,15 +2284,19 @@
 {
   int i;
   gint uv = GET_UV_420 (y, flags);
-  guint16 *srcY = GET_Y_LINE (y);
-  guint16 *srcU = GET_U_LINE (uv);
-  guint16 *srcV = GET_V_LINE (uv);
-  guint16 *d = dest, Y, U, V;
+  const guint16 *restrict sy = GET_Y_LINE (y);
+  const guint16 *restrict su = GET_U_LINE (uv);
+  const guint16 *restrict sv = GET_V_LINE (uv);
+  guint16 *restrict d = dest, Y, U, V;
+
+  sy += x;
+  su += x >> 1;
+  sv += x >> 1;
 
   for (i = 0; i < width; i++) {
-    Y = GST_READ_UINT16_LE (srcY + i) << 6;
-    U = GST_READ_UINT16_LE (srcU + (i >> 1)) << 6;
-    V = GST_READ_UINT16_LE (srcV + (i >> 1)) << 6;
+    Y = GST_READ_UINT16_LE (sy + i) << 6;
+    U = GST_READ_UINT16_LE (su + (i >> 1)) << 6;
+    V = GST_READ_UINT16_LE (sv + (i >> 1)) << 6;
 
     if (!(flags & GST_VIDEO_PACK_FLAG_TRUNCATE_RANGE)) {
       Y |= (Y >> 10);
@@ -1833,6 +2308,12 @@
     d[i * 4 + 1] = Y;
     d[i * 4 + 2] = U;
     d[i * 4 + 3] = V;
+
+    if (x & 1) {
+      x = 0;
+      su++;
+      sv++;
+    }
   }
 }
 
@@ -1844,31 +2325,38 @@
 {
   int i;
   gint uv = GET_UV_420 (y, flags);
-  guint16 *destY = GET_Y_LINE (y);
-  guint16 *destU = GET_U_LINE (uv);
-  guint16 *destV = GET_V_LINE (uv);
+  guint16 *restrict dy = GET_Y_LINE (y);
+  guint16 *restrict du = GET_U_LINE (uv);
+  guint16 *restrict dv = GET_V_LINE (uv);
   guint16 Y0, Y1, U, V;
-  const guint16 *s = src;
+  const guint16 *restrict s = src;
 
-  for (i = 0; i < width - 1; i += 2) {
-    Y0 = s[i * 4 + 1] >> 6;
-    Y1 = s[i * 4 + 5] >> 6;
-    U = s[i * 4 + 2] >> 6;
-    V = s[i * 4 + 3] >> 6;
+  if (IS_CHROMA_LINE_420 (y, flags)) {
+    for (i = 0; i < width - 1; i += 2) {
+      Y0 = s[i * 4 + 1] >> 6;
+      Y1 = s[i * 4 + 5] >> 6;
+      U = s[i * 4 + 2] >> 6;
+      V = s[i * 4 + 3] >> 6;
 
-    GST_WRITE_UINT16_LE (destY + i + 0, Y0);
-    GST_WRITE_UINT16_LE (destY + i + 1, Y1);
-    GST_WRITE_UINT16_LE (destU + (i >> 1), U);
-    GST_WRITE_UINT16_LE (destV + (i >> 1), V);
-  }
-  if (i == width - 1) {
-    Y0 = s[i * 4 + 1] >> 6;
-    U = s[i * 4 + 2] >> 6;
-    V = s[i * 4 + 3] >> 6;
+      GST_WRITE_UINT16_LE (dy + i + 0, Y0);
+      GST_WRITE_UINT16_LE (dy + i + 1, Y1);
+      GST_WRITE_UINT16_LE (du + (i >> 1), U);
+      GST_WRITE_UINT16_LE (dv + (i >> 1), V);
+    }
+    if (i == width - 1) {
+      Y0 = s[i * 4 + 1] >> 6;
+      U = s[i * 4 + 2] >> 6;
+      V = s[i * 4 + 3] >> 6;
 
-    GST_WRITE_UINT16_LE (destY + i, Y0);
-    GST_WRITE_UINT16_LE (destU + (i >> 1), U);
-    GST_WRITE_UINT16_LE (destV + (i >> 1), V);
+      GST_WRITE_UINT16_LE (dy + i, Y0);
+      GST_WRITE_UINT16_LE (du + (i >> 1), U);
+      GST_WRITE_UINT16_LE (dv + (i >> 1), V);
+    }
+  } else {
+    for (i = 0; i < width; i++) {
+      Y0 = s[i * 4 + 1] >> 6;
+      GST_WRITE_UINT16_LE (dy + i, Y0);
+    }
   }
 }
 
@@ -1880,15 +2368,19 @@
 {
   int i;
   gint uv = GET_UV_420 (y, flags);
-  guint16 *srcY = GET_Y_LINE (y);
-  guint16 *srcU = GET_U_LINE (uv);
-  guint16 *srcV = GET_V_LINE (uv);
-  guint16 *d = dest, Y, U, V;
+  const guint16 *restrict sy = GET_Y_LINE (y);
+  const guint16 *restrict su = GET_U_LINE (uv);
+  const guint16 *restrict sv = GET_V_LINE (uv);
+  guint16 *restrict d = dest, Y, U, V;
+
+  sy += x;
+  su += x >> 1;
+  sv += x >> 1;
 
   for (i = 0; i < width; i++) {
-    Y = GST_READ_UINT16_BE (srcY + i) << 6;
-    U = GST_READ_UINT16_BE (srcU + (i >> 1)) << 6;
-    V = GST_READ_UINT16_BE (srcV + (i >> 1)) << 6;
+    Y = GST_READ_UINT16_BE (sy + i) << 6;
+    U = GST_READ_UINT16_BE (su + (i >> 1)) << 6;
+    V = GST_READ_UINT16_BE (sv + (i >> 1)) << 6;
 
     if (!(flags & GST_VIDEO_PACK_FLAG_TRUNCATE_RANGE)) {
       Y |= (Y >> 10);
@@ -1900,6 +2392,12 @@
     d[i * 4 + 1] = Y;
     d[i * 4 + 2] = U;
     d[i * 4 + 3] = V;
+
+    if (x & 1) {
+      x = 0;
+      su++;
+      sv++;
+    }
   }
 }
 
@@ -1911,31 +2409,38 @@
 {
   int i;
   gint uv = GET_UV_420 (y, flags);
-  guint16 *destY = GET_Y_LINE (y);
-  guint16 *destU = GET_U_LINE (uv);
-  guint16 *destV = GET_V_LINE (uv);
+  guint16 *restrict dy = GET_Y_LINE (y);
+  guint16 *restrict du = GET_U_LINE (uv);
+  guint16 *restrict dv = GET_V_LINE (uv);
   guint16 Y0, Y1, U, V;
-  const guint16 *s = src;
+  const guint16 *restrict s = src;
 
-  for (i = 0; i < width - 1; i += 2) {
-    Y0 = s[i * 4 + 1] >> 6;
-    Y1 = s[i * 4 + 5] >> 6;
-    U = s[i * 4 + 2] >> 6;
-    V = s[i * 4 + 3] >> 6;
+  if (IS_CHROMA_LINE_420 (y, flags)) {
+    for (i = 0; i < width - 1; i += 2) {
+      Y0 = s[i * 4 + 1] >> 6;
+      Y1 = s[i * 4 + 5] >> 6;
+      U = s[i * 4 + 2] >> 6;
+      V = s[i * 4 + 3] >> 6;
 
-    GST_WRITE_UINT16_BE (destY + i + 0, Y0);
-    GST_WRITE_UINT16_BE (destY + i + 1, Y1);
-    GST_WRITE_UINT16_BE (destU + (i >> 1), U);
-    GST_WRITE_UINT16_BE (destV + (i >> 1), V);
-  }
-  if (i == width - 1) {
-    Y0 = s[i * 4 + 1] >> 6;
-    U = s[i * 4 + 2] >> 6;
-    V = s[i * 4 + 3] >> 6;
+      GST_WRITE_UINT16_BE (dy + i + 0, Y0);
+      GST_WRITE_UINT16_BE (dy + i + 1, Y1);
+      GST_WRITE_UINT16_BE (du + (i >> 1), U);
+      GST_WRITE_UINT16_BE (dv + (i >> 1), V);
+    }
+    if (i == width - 1) {
+      Y0 = s[i * 4 + 1] >> 6;
+      U = s[i * 4 + 2] >> 6;
+      V = s[i * 4 + 3] >> 6;
 
-    GST_WRITE_UINT16_BE (destY + i, Y0);
-    GST_WRITE_UINT16_BE (destU + (i >> 1), U);
-    GST_WRITE_UINT16_BE (destV + (i >> 1), V);
+      GST_WRITE_UINT16_BE (dy + i, Y0);
+      GST_WRITE_UINT16_BE (du + (i >> 1), U);
+      GST_WRITE_UINT16_BE (dv + (i >> 1), V);
+    }
+  } else {
+    for (i = 0; i < width; i++) {
+      Y0 = s[i * 4 + 1] >> 6;
+      GST_WRITE_UINT16_BE (dy + i, Y0);
+    }
   }
 }
 
@@ -1946,15 +2451,19 @@
     const gint stride[GST_VIDEO_MAX_PLANES], gint x, gint y, gint width)
 {
   int i;
-  guint16 *srcY = GET_Y_LINE (y);
-  guint16 *srcU = GET_U_LINE (y);
-  guint16 *srcV = GET_V_LINE (y);
-  guint16 *d = dest, Y, U, V;
+  const guint16 *restrict sy = GET_Y_LINE (y);
+  const guint16 *restrict su = GET_U_LINE (y);
+  const guint16 *restrict sv = GET_V_LINE (y);
+  guint16 *restrict d = dest, Y, U, V;
+
+  sy += x;
+  su += x >> 1;
+  sv += x >> 1;
 
   for (i = 0; i < width; i++) {
-    Y = GST_READ_UINT16_LE (srcY + i) << 6;
-    U = GST_READ_UINT16_LE (srcU + (i >> 1)) << 6;
-    V = GST_READ_UINT16_LE (srcV + (i >> 1)) << 6;
+    Y = GST_READ_UINT16_LE (sy + i) << 6;
+    U = GST_READ_UINT16_LE (su + (i >> 1)) << 6;
+    V = GST_READ_UINT16_LE (sv + (i >> 1)) << 6;
 
     if (!(flags & GST_VIDEO_PACK_FLAG_TRUNCATE_RANGE)) {
       Y |= (Y >> 10);
@@ -1966,6 +2475,12 @@
     d[i * 4 + 1] = Y;
     d[i * 4 + 2] = U;
     d[i * 4 + 3] = V;
+
+    if (x & 1) {
+      x = 0;
+      su++;
+      sv++;
+    }
   }
 }
 
@@ -1976,11 +2491,11 @@
     gint y, gint width)
 {
   int i;
-  guint16 *destY = GET_Y_LINE (y);
-  guint16 *destU = GET_U_LINE (y);
-  guint16 *destV = GET_V_LINE (y);
+  guint16 *restrict dy = GET_Y_LINE (y);
+  guint16 *restrict du = GET_U_LINE (y);
+  guint16 *restrict dv = GET_V_LINE (y);
   guint16 Y0, Y1, U, V;
-  const guint16 *s = src;
+  const guint16 *restrict s = src;
 
   for (i = 0; i < width - 1; i += 2) {
     Y0 = s[i * 4 + 1] >> 6;
@@ -1988,19 +2503,19 @@
     U = s[i * 4 + 2] >> 6;
     V = s[i * 4 + 3] >> 6;
 
-    GST_WRITE_UINT16_LE (destY + i + 0, Y0);
-    GST_WRITE_UINT16_LE (destY + i + 1, Y1);
-    GST_WRITE_UINT16_LE (destU + (i >> 1), U);
-    GST_WRITE_UINT16_LE (destV + (i >> 1), V);
+    GST_WRITE_UINT16_LE (dy + i + 0, Y0);
+    GST_WRITE_UINT16_LE (dy + i + 1, Y1);
+    GST_WRITE_UINT16_LE (du + (i >> 1), U);
+    GST_WRITE_UINT16_LE (dv + (i >> 1), V);
   }
   if (i == width - 1) {
     Y0 = s[i * 4 + 1] >> 6;
     U = s[i * 4 + 2] >> 6;
     V = s[i * 4 + 3] >> 6;
 
-    GST_WRITE_UINT16_LE (destY + i, Y0);
-    GST_WRITE_UINT16_LE (destU + (i >> 1), U);
-    GST_WRITE_UINT16_LE (destV + (i >> 1), V);
+    GST_WRITE_UINT16_LE (dy + i, Y0);
+    GST_WRITE_UINT16_LE (du + (i >> 1), U);
+    GST_WRITE_UINT16_LE (dv + (i >> 1), V);
   }
 }
 
@@ -2011,15 +2526,19 @@
     const gint stride[GST_VIDEO_MAX_PLANES], gint x, gint y, gint width)
 {
   int i;
-  guint16 *srcY = GET_Y_LINE (y);
-  guint16 *srcU = GET_U_LINE (y);
-  guint16 *srcV = GET_V_LINE (y);
-  guint16 *d = dest, Y, U, V;
+  const guint16 *restrict sy = GET_Y_LINE (y);
+  const guint16 *restrict su = GET_U_LINE (y);
+  const guint16 *restrict sv = GET_V_LINE (y);
+  guint16 *restrict d = dest, Y, U, V;
+
+  sy += x;
+  su += x >> 1;
+  sv += x >> 1;
 
   for (i = 0; i < width; i++) {
-    Y = GST_READ_UINT16_BE (srcY + i) << 6;
-    U = GST_READ_UINT16_BE (srcU + (i >> 1)) << 6;
-    V = GST_READ_UINT16_BE (srcV + (i >> 1)) << 6;
+    Y = GST_READ_UINT16_BE (sy + i) << 6;
+    U = GST_READ_UINT16_BE (su + (i >> 1)) << 6;
+    V = GST_READ_UINT16_BE (sv + (i >> 1)) << 6;
 
     if (!(flags & GST_VIDEO_PACK_FLAG_TRUNCATE_RANGE)) {
       Y |= (Y >> 10);
@@ -2031,6 +2550,12 @@
     d[i * 4 + 1] = Y;
     d[i * 4 + 2] = U;
     d[i * 4 + 3] = V;
+
+    if (x & 1) {
+      x = 0;
+      su++;
+      sv++;
+    }
   }
 }
 
@@ -2041,11 +2566,11 @@
     gint y, gint width)
 {
   int i;
-  guint16 *destY = GET_Y_LINE (y);
-  guint16 *destU = GET_U_LINE (y);
-  guint16 *destV = GET_V_LINE (y);
+  guint16 *restrict dy = GET_Y_LINE (y);
+  guint16 *restrict du = GET_U_LINE (y);
+  guint16 *restrict dv = GET_V_LINE (y);
   guint16 Y0, Y1, U, V;
-  const guint16 *s = src;
+  const guint16 *restrict s = src;
 
   for (i = 0; i < width - 1; i += 2) {
     Y0 = s[i * 4 + 1] >> 6;
@@ -2053,19 +2578,515 @@
     U = s[i * 4 + 2] >> 6;
     V = s[i * 4 + 3] >> 6;
 
-    GST_WRITE_UINT16_BE (destY + i + 0, Y0);
-    GST_WRITE_UINT16_BE (destY + i + 1, Y1);
-    GST_WRITE_UINT16_BE (destU + (i >> 1), U);
-    GST_WRITE_UINT16_BE (destV + (i >> 1), V);
+    GST_WRITE_UINT16_BE (dy + i + 0, Y0);
+    GST_WRITE_UINT16_BE (dy + i + 1, Y1);
+    GST_WRITE_UINT16_BE (du + (i >> 1), U);
+    GST_WRITE_UINT16_BE (dv + (i >> 1), V);
   }
   if (i == width - 1) {
     Y0 = s[i * 4 + 1] >> 6;
     U = s[i * 4 + 2] >> 6;
     V = s[i * 4 + 3] >> 6;
 
-    GST_WRITE_UINT16_BE (destY + i, Y0);
-    GST_WRITE_UINT16_BE (destU + (i >> 1), U);
-    GST_WRITE_UINT16_BE (destV + (i >> 1), V);
+    GST_WRITE_UINT16_BE (dy + i, Y0);
+    GST_WRITE_UINT16_BE (du + (i >> 1), U);
+    GST_WRITE_UINT16_BE (dv + (i >> 1), V);
+  }
+}
+
+#define PACK_A444_10LE GST_VIDEO_FORMAT_AYUV64, unpack_A444_10LE, 1, pack_A444_10LE
+static void
+unpack_A444_10LE (const GstVideoFormatInfo * info, GstVideoPackFlags flags,
+    gpointer dest, const gpointer data[GST_VIDEO_MAX_PLANES],
+    const gint stride[GST_VIDEO_MAX_PLANES], gint x, gint y, gint width)
+{
+  int i;
+  guint16 *restrict sa = GET_A_LINE (y);
+  guint16 *restrict sy = GET_Y_LINE (y);
+  guint16 *restrict su = GET_U_LINE (y);
+  guint16 *restrict sv = GET_V_LINE (y);
+  guint16 *restrict d = dest, A, Y, U, V;
+
+  sa += x;
+  sy += x;
+  su += x;
+  sv += x;
+
+  for (i = 0; i < width; i++) {
+    A = GST_READ_UINT16_LE (sa + i) << 6;
+    Y = GST_READ_UINT16_LE (sy + i) << 6;
+    U = GST_READ_UINT16_LE (su + i) << 6;
+    V = GST_READ_UINT16_LE (sv + i) << 6;
+
+    if (!(flags & GST_VIDEO_PACK_FLAG_TRUNCATE_RANGE)) {
+      A |= (A >> 10);
+      Y |= (Y >> 10);
+      U |= (U >> 10);
+      V |= (V >> 10);
+    }
+
+    d[i * 4 + 0] = A;
+    d[i * 4 + 1] = Y;
+    d[i * 4 + 2] = U;
+    d[i * 4 + 3] = V;
+  }
+}
+
+static void
+pack_A444_10LE (const GstVideoFormatInfo * info, GstVideoPackFlags flags,
+    const gpointer src, gint sstride, gpointer data[GST_VIDEO_MAX_PLANES],
+    const gint stride[GST_VIDEO_MAX_PLANES], GstVideoChromaSite chroma_site,
+    gint y, gint width)
+{
+  int i;
+  guint16 *restrict da = GET_A_LINE (y);
+  guint16 *restrict dy = GET_Y_LINE (y);
+  guint16 *restrict du = GET_U_LINE (y);
+  guint16 *restrict dv = GET_V_LINE (y);
+  guint16 A, Y, U, V;
+  const guint16 *restrict s = src;
+
+  for (i = 0; i < width; i++) {
+    A = (s[i * 4 + 0]) >> 6;
+    Y = (s[i * 4 + 1]) >> 6;
+    U = (s[i * 4 + 2]) >> 6;
+    V = (s[i * 4 + 3]) >> 6;
+
+    GST_WRITE_UINT16_LE (da + i, A);
+    GST_WRITE_UINT16_LE (dy + i, Y);
+    GST_WRITE_UINT16_LE (du + i, U);
+    GST_WRITE_UINT16_LE (dv + i, V);
+  }
+}
+
+#define PACK_A444_10BE GST_VIDEO_FORMAT_AYUV64, unpack_A444_10BE, 1, pack_A444_10BE
+static void
+unpack_A444_10BE (const GstVideoFormatInfo * info, GstVideoPackFlags flags,
+    gpointer dest, const gpointer data[GST_VIDEO_MAX_PLANES],
+    const gint stride[GST_VIDEO_MAX_PLANES], gint x, gint y, gint width)
+{
+  int i;
+  const guint16 *restrict sa = GET_A_LINE (y);
+  const guint16 *restrict sy = GET_Y_LINE (y);
+  const guint16 *restrict su = GET_U_LINE (y);
+  const guint16 *restrict sv = GET_V_LINE (y);
+  guint16 *restrict d = dest, A, Y, U, V;
+
+  sa += x;
+  sy += x;
+  su += x;
+  sv += x;
+
+  for (i = 0; i < width; i++) {
+    A = GST_READ_UINT16_BE (sa + i) << 6;
+    Y = GST_READ_UINT16_BE (sy + i) << 6;
+    U = GST_READ_UINT16_BE (su + i) << 6;
+    V = GST_READ_UINT16_BE (sv + i) << 6;
+
+    if (!(flags & GST_VIDEO_PACK_FLAG_TRUNCATE_RANGE)) {
+      A |= (A >> 10);
+      Y |= (Y >> 10);
+      U |= (U >> 10);
+      V |= (V >> 10);
+    }
+
+    d[i * 4 + 0] = A;
+    d[i * 4 + 1] = Y;
+    d[i * 4 + 2] = U;
+    d[i * 4 + 3] = V;
+  }
+}
+
+static void
+pack_A444_10BE (const GstVideoFormatInfo * info, GstVideoPackFlags flags,
+    const gpointer src, gint sstride, gpointer data[GST_VIDEO_MAX_PLANES],
+    const gint stride[GST_VIDEO_MAX_PLANES], GstVideoChromaSite chroma_site,
+    gint y, gint width)
+{
+  int i;
+  guint16 *restrict da = GET_A_LINE (y);
+  guint16 *restrict dy = GET_Y_LINE (y);
+  guint16 *restrict du = GET_U_LINE (y);
+  guint16 *restrict dv = GET_V_LINE (y);
+  guint16 A, Y, U, V;
+  const guint16 *restrict s = src;
+
+  for (i = 0; i < width; i++) {
+    A = s[i * 4 + 0] >> 6;
+    Y = s[i * 4 + 1] >> 6;
+    U = s[i * 4 + 2] >> 6;
+    V = s[i * 4 + 3] >> 6;
+
+    GST_WRITE_UINT16_BE (da + i, A);
+    GST_WRITE_UINT16_BE (dy + i, Y);
+    GST_WRITE_UINT16_BE (du + i, U);
+    GST_WRITE_UINT16_BE (dv + i, V);
+  }
+}
+
+#define PACK_A420_10LE GST_VIDEO_FORMAT_AYUV64, unpack_A420_10LE, 1, pack_A420_10LE
+static void
+unpack_A420_10LE (const GstVideoFormatInfo * info, GstVideoPackFlags flags,
+    gpointer dest, const gpointer data[GST_VIDEO_MAX_PLANES],
+    const gint stride[GST_VIDEO_MAX_PLANES], gint x, gint y, gint width)
+{
+  int i;
+  gint uv = GET_UV_420 (y, flags);
+  const guint16 *restrict sa = GET_A_LINE (y);
+  const guint16 *restrict sy = GET_Y_LINE (y);
+  const guint16 *restrict su = GET_U_LINE (uv);
+  const guint16 *restrict sv = GET_V_LINE (uv);
+  guint16 *restrict d = dest, A, Y, U, V;
+
+  sa += x;
+  sy += x;
+  su += x >> 1;
+  sv += x >> 1;
+
+  for (i = 0; i < width; i++) {
+    A = GST_READ_UINT16_LE (sa + i) << 6;
+    Y = GST_READ_UINT16_LE (sy + i) << 6;
+    U = GST_READ_UINT16_LE (su + (i >> 1)) << 6;
+    V = GST_READ_UINT16_LE (sv + (i >> 1)) << 6;
+
+    if (!(flags & GST_VIDEO_PACK_FLAG_TRUNCATE_RANGE)) {
+      A |= (A >> 10);
+      Y |= (Y >> 10);
+      U |= (U >> 10);
+      V |= (V >> 10);
+    }
+
+    d[i * 4 + 0] = A;
+    d[i * 4 + 1] = Y;
+    d[i * 4 + 2] = U;
+    d[i * 4 + 3] = V;
+
+    if (x & 1) {
+      x = 0;
+      su++;
+      sv++;
+    }
+  }
+}
+
+static void
+pack_A420_10LE (const GstVideoFormatInfo * info, GstVideoPackFlags flags,
+    const gpointer src, gint sstride, gpointer data[GST_VIDEO_MAX_PLANES],
+    const gint stride[GST_VIDEO_MAX_PLANES], GstVideoChromaSite chroma_site,
+    gint y, gint width)
+{
+  int i;
+  gint uv = GET_UV_420 (y, flags);
+  guint16 *restrict da = GET_A_LINE (y);
+  guint16 *restrict dy = GET_Y_LINE (y);
+  guint16 *restrict du = GET_U_LINE (uv);
+  guint16 *restrict dv = GET_V_LINE (uv);
+  guint16 A0, Y0, A1, Y1, U, V;
+  const guint16 *restrict s = src;
+
+  if (IS_CHROMA_LINE_420 (y, flags)) {
+    for (i = 0; i < width - 1; i += 2) {
+      A0 = s[i * 4 + 0] >> 6;
+      Y0 = s[i * 4 + 1] >> 6;
+      A1 = s[i * 4 + 4] >> 6;
+      Y1 = s[i * 4 + 5] >> 6;
+      U = s[i * 4 + 2] >> 6;
+      V = s[i * 4 + 3] >> 6;
+
+      GST_WRITE_UINT16_LE (da + i + 0, A0);
+      GST_WRITE_UINT16_LE (dy + i + 0, Y0);
+      GST_WRITE_UINT16_LE (da + i + 1, A1);
+      GST_WRITE_UINT16_LE (dy + i + 1, Y1);
+      GST_WRITE_UINT16_LE (du + (i >> 1), U);
+      GST_WRITE_UINT16_LE (dv + (i >> 1), V);
+    }
+    if (i == width - 1) {
+      A0 = s[i * 4 + 0] >> 6;
+      Y0 = s[i * 4 + 1] >> 6;
+      U = s[i * 4 + 2] >> 6;
+      V = s[i * 4 + 3] >> 6;
+
+      GST_WRITE_UINT16_LE (da + i, A0);
+      GST_WRITE_UINT16_LE (dy + i, Y0);
+      GST_WRITE_UINT16_LE (du + (i >> 1), U);
+      GST_WRITE_UINT16_LE (dv + (i >> 1), V);
+    }
+  } else {
+    for (i = 0; i < width; i++) {
+      A0 = s[i * 4 + 0] >> 6;
+      Y0 = s[i * 4 + 1] >> 6;
+      GST_WRITE_UINT16_LE (da + i, A0);
+      GST_WRITE_UINT16_LE (dy + i, Y0);
+    }
+  }
+}
+
+#define PACK_A420_10BE GST_VIDEO_FORMAT_AYUV64, unpack_A420_10BE, 1, pack_A420_10BE
+static void
+unpack_A420_10BE (const GstVideoFormatInfo * info, GstVideoPackFlags flags,
+    gpointer dest, const gpointer data[GST_VIDEO_MAX_PLANES],
+    const gint stride[GST_VIDEO_MAX_PLANES], gint x, gint y, gint width)
+{
+  int i;
+  gint uv = GET_UV_420 (y, flags);
+  const guint16 *restrict sa = GET_A_LINE (y);
+  const guint16 *restrict sy = GET_Y_LINE (y);
+  const guint16 *restrict su = GET_U_LINE (uv);
+  const guint16 *restrict sv = GET_V_LINE (uv);
+  guint16 *restrict d = dest, A, Y, U, V;
+
+  sa += x;
+  sy += x;
+  su += x >> 1;
+  sv += x >> 1;
+
+  for (i = 0; i < width; i++) {
+    A = GST_READ_UINT16_BE (sa + i) << 6;
+    Y = GST_READ_UINT16_BE (sy + i) << 6;
+    U = GST_READ_UINT16_BE (su + (i >> 1)) << 6;
+    V = GST_READ_UINT16_BE (sv + (i >> 1)) << 6;
+
+    if (!(flags & GST_VIDEO_PACK_FLAG_TRUNCATE_RANGE)) {
+      A |= (A >> 10);
+      Y |= (Y >> 10);
+      U |= (U >> 10);
+      V |= (V >> 10);
+    }
+
+    d[i * 4 + 0] = A;
+    d[i * 4 + 1] = Y;
+    d[i * 4 + 2] = U;
+    d[i * 4 + 3] = V;
+
+    if (x & 1) {
+      x = 0;
+      su++;
+      sv++;
+    }
+  }
+}
+
+static void
+pack_A420_10BE (const GstVideoFormatInfo * info, GstVideoPackFlags flags,
+    const gpointer src, gint sstride, gpointer data[GST_VIDEO_MAX_PLANES],
+    const gint stride[GST_VIDEO_MAX_PLANES], GstVideoChromaSite chroma_site,
+    gint y, gint width)
+{
+  int i;
+  gint uv = GET_UV_420 (y, flags);
+  guint16 *restrict da = GET_A_LINE (y);
+  guint16 *restrict dy = GET_Y_LINE (y);
+  guint16 *restrict du = GET_U_LINE (uv);
+  guint16 *restrict dv = GET_V_LINE (uv);
+  guint16 A0, Y0, A1, Y1, U, V;
+  const guint16 *restrict s = src;
+
+  if (IS_CHROMA_LINE_420 (y, flags)) {
+    for (i = 0; i < width - 1; i += 2) {
+      A0 = s[i * 4 + 0] >> 6;
+      Y0 = s[i * 4 + 1] >> 6;
+      A1 = s[i * 4 + 4] >> 6;
+      Y1 = s[i * 4 + 5] >> 6;
+      U = s[i * 4 + 2] >> 6;
+      V = s[i * 4 + 3] >> 6;
+
+      GST_WRITE_UINT16_BE (da + i + 0, A0);
+      GST_WRITE_UINT16_BE (dy + i + 0, Y0);
+      GST_WRITE_UINT16_BE (da + i + 1, A1);
+      GST_WRITE_UINT16_BE (dy + i + 1, Y1);
+      GST_WRITE_UINT16_BE (du + (i >> 1), U);
+      GST_WRITE_UINT16_BE (dv + (i >> 1), V);
+    }
+    if (i == width - 1) {
+      A0 = s[i * 4 + 0] >> 6;
+      Y0 = s[i * 4 + 1] >> 6;
+      U = s[i * 4 + 2] >> 6;
+      V = s[i * 4 + 3] >> 6;
+
+      GST_WRITE_UINT16_BE (da + i, A0);
+      GST_WRITE_UINT16_BE (dy + i, Y0);
+      GST_WRITE_UINT16_BE (du + (i >> 1), U);
+      GST_WRITE_UINT16_BE (dv + (i >> 1), V);
+    }
+  } else {
+    for (i = 0; i < width; i++) {
+      A0 = s[i * 4 + 0] >> 6;
+      Y0 = s[i * 4 + 1] >> 6;
+      GST_WRITE_UINT16_BE (da + i, A0);
+      GST_WRITE_UINT16_BE (dy + i, Y0);
+    }
+  }
+}
+
+#define PACK_A422_10LE GST_VIDEO_FORMAT_AYUV64, unpack_A422_10LE, 1, pack_A422_10LE
+static void
+unpack_A422_10LE (const GstVideoFormatInfo * info, GstVideoPackFlags flags,
+    gpointer dest, const gpointer data[GST_VIDEO_MAX_PLANES],
+    const gint stride[GST_VIDEO_MAX_PLANES], gint x, gint y, gint width)
+{
+  int i;
+  const guint16 *restrict sa = GET_A_LINE (y);
+  const guint16 *restrict sy = GET_Y_LINE (y);
+  const guint16 *restrict su = GET_U_LINE (y);
+  const guint16 *restrict sv = GET_V_LINE (y);
+  guint16 *restrict d = dest, A, Y, U, V;
+
+  sa += x;
+  sy += x;
+  su += x >> 1;
+  sv += x >> 1;
+
+  for (i = 0; i < width; i++) {
+    A = GST_READ_UINT16_LE (sa + i) << 6;
+    Y = GST_READ_UINT16_LE (sy + i) << 6;
+    U = GST_READ_UINT16_LE (su + (i >> 1)) << 6;
+    V = GST_READ_UINT16_LE (sv + (i >> 1)) << 6;
+
+    if (!(flags & GST_VIDEO_PACK_FLAG_TRUNCATE_RANGE)) {
+      A |= (A >> 10);
+      Y |= (Y >> 10);
+      U |= (U >> 10);
+      V |= (V >> 10);
+    }
+
+    d[i * 4 + 0] = A;
+    d[i * 4 + 1] = Y;
+    d[i * 4 + 2] = U;
+    d[i * 4 + 3] = V;
+
+    if (x & 1) {
+      x = 0;
+      su++;
+      sv++;
+    }
+  }
+}
+
+static void
+pack_A422_10LE (const GstVideoFormatInfo * info, GstVideoPackFlags flags,
+    const gpointer src, gint sstride, gpointer data[GST_VIDEO_MAX_PLANES],
+    const gint stride[GST_VIDEO_MAX_PLANES], GstVideoChromaSite chroma_site,
+    gint y, gint width)
+{
+  int i;
+  guint16 *restrict da = GET_A_LINE (y);
+  guint16 *restrict dy = GET_Y_LINE (y);
+  guint16 *restrict du = GET_U_LINE (y);
+  guint16 *restrict dv = GET_V_LINE (y);
+  guint16 A0, Y0, A1, Y1, U, V;
+  const guint16 *restrict s = src;
+
+  for (i = 0; i < width - 1; i += 2) {
+    A0 = s[i * 4 + 0] >> 6;
+    Y0 = s[i * 4 + 1] >> 6;
+    A1 = s[i * 4 + 4] >> 6;
+    Y1 = s[i * 4 + 5] >> 6;
+    U = s[i * 4 + 2] >> 6;
+    V = s[i * 4 + 3] >> 6;
+
+    GST_WRITE_UINT16_LE (da + i + 0, A0);
+    GST_WRITE_UINT16_LE (dy + i + 0, Y0);
+    GST_WRITE_UINT16_LE (da + i + 1, A1);
+    GST_WRITE_UINT16_LE (dy + i + 1, Y1);
+    GST_WRITE_UINT16_LE (du + (i >> 1), U);
+    GST_WRITE_UINT16_LE (dv + (i >> 1), V);
+  }
+  if (i == width - 1) {
+    A0 = s[i * 4 + 0] >> 6;
+    Y0 = s[i * 4 + 1] >> 6;
+    U = s[i * 4 + 2] >> 6;
+    V = s[i * 4 + 3] >> 6;
+
+    GST_WRITE_UINT16_LE (da + i, A0);
+    GST_WRITE_UINT16_LE (dy + i, Y0);
+    GST_WRITE_UINT16_LE (du + (i >> 1), U);
+    GST_WRITE_UINT16_LE (dv + (i >> 1), V);
+  }
+}
+
+#define PACK_A422_10BE GST_VIDEO_FORMAT_AYUV64, unpack_A422_10BE, 1, pack_A422_10BE
+static void
+unpack_A422_10BE (const GstVideoFormatInfo * info, GstVideoPackFlags flags,
+    gpointer dest, const gpointer data[GST_VIDEO_MAX_PLANES],
+    const gint stride[GST_VIDEO_MAX_PLANES], gint x, gint y, gint width)
+{
+  int i;
+  const guint16 *restrict sa = GET_A_LINE (y);
+  const guint16 *restrict sy = GET_Y_LINE (y);
+  const guint16 *restrict su = GET_U_LINE (y);
+  const guint16 *restrict sv = GET_V_LINE (y);
+  guint16 *restrict d = dest, A, Y, U, V;
+
+  sa += x;
+  sy += x;
+  su += x >> 1;
+  sv += x >> 1;
+
+  for (i = 0; i < width; i++) {
+    A = GST_READ_UINT16_BE (sa + i) << 6;
+    Y = GST_READ_UINT16_BE (sy + i) << 6;
+    U = GST_READ_UINT16_BE (su + (i >> 1)) << 6;
+    V = GST_READ_UINT16_BE (sv + (i >> 1)) << 6;
+
+    if (!(flags & GST_VIDEO_PACK_FLAG_TRUNCATE_RANGE)) {
+      A |= (A >> 10);
+      Y |= (Y >> 10);
+      U |= (U >> 10);
+      V |= (V >> 10);
+    }
+
+    d[i * 4 + 0] = A;
+    d[i * 4 + 1] = Y;
+    d[i * 4 + 2] = U;
+    d[i * 4 + 3] = V;
+
+    if (x & 1) {
+      x = 0;
+      su++;
+      sv++;
+    }
+  }
+}
+
+static void
+pack_A422_10BE (const GstVideoFormatInfo * info, GstVideoPackFlags flags,
+    const gpointer src, gint sstride, gpointer data[GST_VIDEO_MAX_PLANES],
+    const gint stride[GST_VIDEO_MAX_PLANES], GstVideoChromaSite chroma_site,
+    gint y, gint width)
+{
+  int i;
+  guint16 *restrict da = GET_A_LINE (y);
+  guint16 *restrict dy = GET_Y_LINE (y);
+  guint16 *restrict du = GET_U_LINE (y);
+  guint16 *restrict dv = GET_V_LINE (y);
+  guint16 A0, Y0, A1, Y1, U, V;
+  const guint16 *restrict s = src;
+
+  for (i = 0; i < width - 1; i += 2) {
+    A0 = s[i * 4 + 0] >> 6;
+    Y0 = s[i * 4 + 1] >> 6;
+    A1 = s[i * 4 + 4] >> 6;
+    Y1 = s[i * 4 + 5] >> 6;
+    U = s[i * 4 + 2] >> 6;
+    V = s[i * 4 + 3] >> 6;
+
+    GST_WRITE_UINT16_BE (da + i + 0, A0);
+    GST_WRITE_UINT16_BE (dy + i + 0, Y0);
+    GST_WRITE_UINT16_BE (da + i + 1, A1);
+    GST_WRITE_UINT16_BE (dy + i + 1, Y1);
+    GST_WRITE_UINT16_BE (du + (i >> 1), U);
+    GST_WRITE_UINT16_BE (dv + (i >> 1), V);
+  }
+  if (i == width - 1) {
+    A0 = s[i * 4 + 0] >> 6;
+    Y0 = s[i * 4 + 1] >> 6;
+    U = s[i * 4 + 2] >> 6;
+    V = s[i * 4 + 3] >> 6;
+
+    GST_WRITE_UINT16_BE (da + i, A0);
+    GST_WRITE_UINT16_BE (dy + i, Y0);
+    GST_WRITE_UINT16_BE (du + (i >> 1), U);
+    GST_WRITE_UINT16_BE (dv + (i >> 1), V);
   }
 }
 
@@ -2217,6 +3238,7 @@
 #define DPTH8888         8, 4, { 0, 0, 0, 0 }, { 8, 8, 8, 8 }
 #define DPTH8880         8, 4, { 0, 0, 0, 0 }, { 8, 8, 8, 0 }
 #define DPTH10_10_10     10, 3, { 0, 0, 0, 0 }, { 10, 10, 10, 0 }
+#define DPTH10_10_10_10  10, 4, { 0, 0, 0, 0 }, { 10, 10, 10, 10 }
 #define DPTH16           16, 1, { 0, 0, 0, 0 }, { 16, 0, 0, 0 }
 #define DPTH16_16_16     16, 3, { 0, 0, 0, 0 }, { 16, 16, 16, 0 }
 #define DPTH16_16_16_16  16, 4, { 0, 0, 0, 0 }, { 16, 16, 16, 16 }
@@ -2232,6 +3254,7 @@
 #define PSTR122           { 1, 2, 2, 0 }
 #define PSTR2             { 2, 0, 0, 0 }
 #define PSTR222           { 2, 2, 2, 0 }
+#define PSTR2222          { 2, 2, 2, 2 }
 #define PSTR244           { 2, 4, 4, 0 }
 #define PSTR444           { 4, 4, 4, 0 }
 #define PSTR4444          { 4, 4, 4, 4 }
@@ -2278,6 +3301,7 @@
 #define SUB444            { 0, 0, 0, 0 }, { 0, 0, 0, 0 }
 #define SUB4444           { 0, 0, 0, 0 }, { 0, 0, 0, 0 }
 #define SUB4204           { 0, 1, 1, 0 }, { 0, 1, 1, 0 }
+#define SUB4224           { 0, 1, 1, 0 }, { 0, 0, 0, 0 }
 
 /* tile_mode, tile_width, tile_height */
 #define TILE_64x32(mode) GST_VIDEO_TILE_MODE_ ##mode, 6, 5
@@ -2315,7 +3339,7 @@
 #define MAKE_GRAY_LE_FORMAT(name, desc, depth, pstride, plane, offs, sub, pack) \
  { 0x00000000, {GST_VIDEO_FORMAT_ ##name, G_STRINGIFY(name), desc, GST_VIDEO_FORMAT_FLAG_GRAY | GST_VIDEO_FORMAT_FLAG_LE, depth, pstride, plane, offs, sub, pack } }
 
-static VideoFormat formats[] = {
+static const VideoFormat formats[] = {
   {0x00000000, {GST_VIDEO_FORMAT_UNKNOWN, "UNKNOWN", "unknown video", 0, DPTH0,
           PSTR0, PLANE_NA, OFFS0}},
   {0x00000000, {GST_VIDEO_FORMAT_ENCODED, "ENCODED", "encoded video",
@@ -2446,12 +3470,24 @@
       OFFS0, SUB444,
       PACK_GBR_10LE),
   MAKE_YUV_FORMAT (NV16, "raw video", GST_MAKE_FOURCC ('N', 'V', '1', '6'),
-      DPTH888, PSTR111, PLANE011, OFFS001, SUB422, PACK_NV16),
+      DPTH888, PSTR122, PLANE011, OFFS001, SUB422, PACK_NV16),
   MAKE_YUV_FORMAT (NV24, "raw video", GST_MAKE_FOURCC ('N', 'V', '2', '4'),
-      DPTH888, PSTR111, PLANE011, OFFS001, SUB444, PACK_NV24),
+      DPTH888, PSTR122, PLANE011, OFFS001, SUB444, PACK_NV24),
   MAKE_YUV_T_FORMAT (NV12_64Z32, "raw video",
       GST_MAKE_FOURCC ('T', 'M', '1', '2'), DPTH8880, PSTR122, PLANE011,
       OFFS001, SUB420, PACK_NV12_64Z32, TILE_64x32 (ZFLIPZ_2X2)),
+  MAKE_YUV_FORMAT (A420_10BE, "raw video", 0x00000000, DPTH10_10_10_10,
+      PSTR2222, PLANE0123, OFFS0, SUB4204, PACK_A420_10BE),
+  MAKE_YUV_LE_FORMAT (A420_10LE, "raw video", 0x00000000, DPTH10_10_10_10,
+      PSTR2222, PLANE0123, OFFS0, SUB4204, PACK_A420_10LE),
+  MAKE_YUV_FORMAT (A422_10BE, "raw video", 0x00000000, DPTH10_10_10_10,
+      PSTR2222, PLANE0123, OFFS0, SUB4224, PACK_A422_10BE),
+  MAKE_YUV_LE_FORMAT (A422_10LE, "raw video", 0x00000000, DPTH10_10_10_10,
+      PSTR2222, PLANE0123, OFFS0, SUB4224, PACK_A422_10LE),
+  MAKE_YUV_FORMAT (A444_10BE, "raw video", 0x00000000, DPTH10_10_10_10,
+      PSTR2222, PLANE0123, OFFS0, SUB4444, PACK_A444_10BE),
+  MAKE_YUV_LE_FORMAT (A444_10LE, "raw video", 0x00000000, DPTH10_10_10_10,
+      PSTR2222, PLANE0123, OFFS0, SUB4444, PACK_A444_10LE),
 };
 
 static GstVideoFormat
@@ -2728,6 +3764,15 @@
   return formats[format].fourcc;
 }
 
+/**
+ * gst_video_format_to_string:
+ * @format: a #GstVideoFormat video format
+ *
+ * Returns a string containing a descriptive name for
+ * the #GstVideoFormat if there is one, or NULL otherwise.
+ *
+ * Returns: the name corresponding to @format
+ */
 const gchar *
 gst_video_format_to_string (GstVideoFormat format)
 {
diff --git a/gst-libs/gst/video/video-format.h b/gst-libs/gst/video/video-format.h
index e51c70d..e60f9ca 100644
--- a/gst-libs/gst/video/video-format.h
+++ b/gst-libs/gst/video/video-format.h
@@ -86,6 +86,12 @@
  * @GST_VIDEO_FORMAT_NV16: planar 4:2:2 YUV with interleaved UV plane
  * @GST_VIDEO_FORMAT_NV24: planar 4:4:4 YUV with interleaved UV plane
  * @GST_VIDEO_FORMAT_NV12_64Z32: NV12 with 64x32 tiling in zigzag pattern
+ * @GST_VIDEO_FORMAT_A420_10BE: planar 4:4:2:0 YUV, 10 bits per channel
+ * @GST_VIDEO_FORMAT_A420_10LE: planar 4:4:2:0 YUV, 10 bits per channel
+ * @GST_VIDEO_FORMAT_A422_10BE: planar 4:4:2:2 YUV, 10 bits per channel
+ * @GST_VIDEO_FORMAT_A422_10LE: planar 4:4:2:2 YUV, 10 bits per channel
+ * @GST_VIDEO_FORMAT_A444_10BE: planar 4:4:4:4 YUV, 10 bits per channel
+ * @GST_VIDEO_FORMAT_A444_10LE: planar 4:4:4:4 YUV, 10 bits per channel
  *
  * Enum value describing the most common video formats.
  */
@@ -144,6 +150,12 @@
   GST_VIDEO_FORMAT_NV16,
   GST_VIDEO_FORMAT_NV24,
   GST_VIDEO_FORMAT_NV12_64Z32,
+  GST_VIDEO_FORMAT_A420_10BE,
+  GST_VIDEO_FORMAT_A420_10LE,
+  GST_VIDEO_FORMAT_A422_10BE,
+  GST_VIDEO_FORMAT_A422_10LE,
+  GST_VIDEO_FORMAT_A444_10BE,
+  GST_VIDEO_FORMAT_A444_10LE,
 } GstVideoFormat;
 
 #define GST_VIDEO_MAX_PLANES 4
@@ -272,14 +284,18 @@
  * contain at least pack_lines lines with a stride of @sstride and @y
  * should be a multiple of pack_lines.
  *
- * Subsampled formats will use the horizontally cosited component in the
- * destination. Subsampling should be performed before packing.
+ * Subsampled formats will use the horizontally and vertically cosited
+ * component from the source. Subsampling should be performed before
+ * packing.
  *
- * Because tis function does not have a x coordinate, it is not possible to
+ * Because this function does not have a x coordinate, it is not possible to
  * pack pixels starting from an unaligned position. For tiled images this
  * means that packing should start from a tile coordinate. For subsampled
  * formats this means that a complete pixel need to be packed.
  */
+/* FIXME(2.0): remove the chroma_site, it is unused and is not relevant for
+ * packing, chroma subsampling based on chroma-site should be done in a separate
+ * step before packing*/
 typedef void (*GstVideoFormatPack)           (const GstVideoFormatInfo *info,
                                               GstVideoPackFlags flags,
                                               const gpointer src, gint sstride,
@@ -463,7 +479,8 @@
     "YVYU, Y444, v210, v216, NV12, NV21, NV16, NV24, GRAY8, GRAY16_BE, GRAY16_LE, " \
     "v308, RGB16, BGR16, RGB15, BGR15, UYVP, A420, RGB8P, YUV9, YVU9, " \
     "IYU1, ARGB64, AYUV64, r210, I420_10LE, I420_10BE, I422_10LE, I422_10BE, " \
-    " Y444_10LE, Y444_10BE, GBR, GBR_10LE, GBR_10BE, NV12_64Z32 }"
+    " Y444_10LE, Y444_10BE, GBR, GBR_10LE, GBR_10BE, NV12_64Z32, A420_10LE, "\
+    " A420_10BE, A422_10LE, A422_10BE, A444_10LE, A444_10BE }"
 
 /**
  * GST_VIDEO_CAPS_MAKE:
diff --git a/gst-libs/gst/video/video-frame.c b/gst-libs/gst/video/video-frame.c
index 537cf70..19c1b0a 100644
--- a/gst-libs/gst/video/video-frame.c
+++ b/gst-libs/gst/video/video-frame.c
@@ -72,13 +72,19 @@
   frame->info = *info;
 
   if (meta) {
+    /* All these values must be consistent */
+    g_return_val_if_fail (info->finfo->format == meta->format, FALSE);
+    g_return_val_if_fail (info->width >= meta->width, FALSE);
+    g_return_val_if_fail (info->height >= meta->height, FALSE);
+    g_return_val_if_fail (info->finfo->n_planes == meta->n_planes, FALSE);
+
     frame->info.finfo = gst_video_format_get_info (meta->format);
     frame->info.width = meta->width;
     frame->info.height = meta->height;
     frame->id = meta->id;
     frame->flags = meta->flags;
 
-    for (i = 0; i < info->finfo->n_planes; i++) {
+    for (i = 0; i < meta->n_planes; i++) {
       frame->info.offset[i] = meta->offset[i];
       if (!gst_video_meta_map (meta, i, &frame->map[i], &frame->data[i],
               &frame->info.stride[i], flags))
@@ -105,7 +111,10 @@
       frame->data[i] = frame->map[0].data + info->offset[i];
     }
   }
-  frame->buffer = gst_buffer_ref (buffer);
+  frame->buffer = buffer;
+  if ((flags & GST_VIDEO_FRAME_MAP_FLAG_NO_REF) == 0)
+    gst_buffer_ref (frame->buffer);
+
   frame->meta = meta;
 
   /* buffer flags enhance the frame flags */
@@ -189,11 +198,13 @@
   GstBuffer *buffer;
   GstVideoMeta *meta;
   gint i;
+  GstMapFlags flags;
 
   g_return_if_fail (frame != NULL);
 
   buffer = frame->buffer;
   meta = frame->meta;
+  flags = frame->map[0].flags;
 
   if (meta) {
     for (i = 0; i < frame->info.finfo->n_planes; i++) {
@@ -202,7 +213,9 @@
   } else {
     gst_buffer_unmap (buffer, &frame->map[0]);
   }
-  gst_buffer_unref (buffer);
+
+  if ((flags & GST_VIDEO_FRAME_MAP_FLAG_NO_REF) == 0)
+    gst_buffer_unref (frame->buffer);
 }
 
 /**
diff --git a/gst-libs/gst/video/video-frame.h b/gst-libs/gst/video/video-frame.h
index 670806e..929ebab 100644
--- a/gst-libs/gst/video/video-frame.h
+++ b/gst-libs/gst/video/video-frame.h
@@ -53,6 +53,7 @@
 /**
  * GstVideoFrame:
  * @info: the #GstVideoInfo
+ * @flags: #GstVideoFrameFlags for the frame
  * @buffer: the mapped buffer
  * @meta: pointer to metadata if any
  * @id: id of the mapped frame. the id can for example be used to
@@ -135,6 +136,7 @@
  * @GST_VIDEO_BUFFER_FLAG_ONEFIELD:    If the #GstBuffer is interlaced, then only the
  *                                     first field (as defined by the %GST_VIDEO_BUFFER_TFF
  *                                     flag setting) is to be displayed.
+ * @GST_VIDEO_BUFFER_FLAG_LAST:        Offset to define more flags
  *
  * Additional video buffer flags.
  */
@@ -147,6 +149,24 @@
   GST_VIDEO_BUFFER_FLAG_LAST        = (GST_BUFFER_FLAG_LAST << 8)
 } GstVideoBufferFlags;
 
+/**
+ * GstVideoFrameMapFlags:
+ * @GST_VIDEO_FRAME_MAP_FLAG_NO_REF:  Don't take another reference of the buffer and store it in
+ *                                    the GstVideoFrame. This makes sure that the buffer stays
+ *                                    writable while the frame is mapped, but requires that the
+ *                                    buffer reference stays valid until the frame is unmapped again.
+ * @GST_VIDEO_FRAME_MAP_FLAG_LAST:    Offset to define more flags
+ *
+ * Additional mapping flags for gst_video_frame_map().
+ *
+ * Since: 1.6
+ */
+typedef enum {
+  GST_VIDEO_FRAME_MAP_FLAG_NO_REF   = (GST_MAP_FLAG_LAST << 0),
+  GST_VIDEO_FRAME_MAP_FLAG_LAST     = (GST_MAP_FLAG_LAST << 8)
+  /* 8 more flags possible afterwards */
+} GstVideoFrameMapFlags;
+
 G_END_DECLS
 
 #endif /* __GST_VIDEO_FRAME_H__ */
diff --git a/gst-libs/gst/video/video-info.c b/gst-libs/gst/video/video-info.c
index 52c9b12..8533617 100644
--- a/gst-libs/gst/video/video-info.c
+++ b/gst-libs/gst/video/video-info.c
@@ -63,15 +63,58 @@
 #define DEFAULT_RGB     2
 #define DEFAULT_GRAY    3
 #define DEFAULT_UNKNOWN 4
+#define DEFAULT_YUV_UHD 5
 
 static const GstVideoColorimetry default_color[] = {
-  MAKE_COLORIMETRY (_16_235, BT601, BT709, BT470M),
+  MAKE_COLORIMETRY (_16_235, BT601, BT709, SMPTE170M),
   MAKE_COLORIMETRY (_16_235, BT709, BT709, BT709),
-  MAKE_COLORIMETRY (_0_255, RGB, UNKNOWN, UNKNOWN),
+  MAKE_COLORIMETRY (_0_255, RGB, SRGB, BT709),
   MAKE_COLORIMETRY (_0_255, BT601, UNKNOWN, UNKNOWN),
   MAKE_COLORIMETRY (_UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN),
+  MAKE_COLORIMETRY (_16_235, BT2020, BT2020_12, BT2020),
 };
 
+static void
+set_default_colorimetry (GstVideoInfo * info)
+{
+  const GstVideoFormatInfo *finfo = info->finfo;
+
+  if (GST_VIDEO_FORMAT_INFO_IS_YUV (finfo)) {
+    if (info->height >= 2160) {
+      info->chroma_site = GST_VIDEO_CHROMA_SITE_H_COSITED;
+      info->colorimetry = default_color[DEFAULT_YUV_UHD];
+    } else if (info->height > 576) {
+      info->chroma_site = GST_VIDEO_CHROMA_SITE_H_COSITED;
+      info->colorimetry = default_color[DEFAULT_YUV_HD];
+    } else {
+      info->chroma_site = GST_VIDEO_CHROMA_SITE_NONE;
+      info->colorimetry = default_color[DEFAULT_YUV_SD];
+    }
+  } else if (GST_VIDEO_FORMAT_INFO_IS_GRAY (finfo)) {
+    info->colorimetry = default_color[DEFAULT_GRAY];
+  } else if (GST_VIDEO_FORMAT_INFO_IS_RGB (finfo)) {
+    info->colorimetry = default_color[DEFAULT_RGB];
+  } else {
+    info->colorimetry = default_color[DEFAULT_UNKNOWN];
+  }
+}
+
+static gboolean
+validate_colorimetry (GstVideoInfo * info)
+{
+  const GstVideoFormatInfo *finfo = info->finfo;
+
+  if (!GST_VIDEO_FORMAT_INFO_IS_RGB (finfo) &&
+      info->colorimetry.matrix == GST_VIDEO_COLOR_MATRIX_RGB)
+    return FALSE;
+
+  if (GST_VIDEO_FORMAT_INFO_IS_YUV (finfo) &&
+      info->colorimetry.matrix == GST_VIDEO_COLOR_MATRIX_UNKNOWN)
+    return FALSE;
+
+  return TRUE;
+}
+
 /**
  * gst_video_info_set_format:
  * @info: a #GstVideoInfo
@@ -81,38 +124,24 @@
  *
  * Set the default info for a video frame of @format and @width and @height.
  *
- * Note: This initializes @info first, no values are preserved.
+ * Note: This initializes @info first, no values are preserved. This function
+ * does not set the offsets correctly for interlaced vertically
+ * subsampled formats.
  */
 void
 gst_video_info_set_format (GstVideoInfo * info, GstVideoFormat format,
     guint width, guint height)
 {
-  const GstVideoFormatInfo *finfo;
-
   g_return_if_fail (info != NULL);
   g_return_if_fail (format != GST_VIDEO_FORMAT_UNKNOWN);
 
   gst_video_info_init (info);
 
-  finfo = gst_video_format_get_info (format);
-
-  info->flags = 0;
-  info->finfo = finfo;
+  info->finfo = gst_video_format_get_info (format);
   info->width = width;
   info->height = height;
 
-  if (GST_VIDEO_FORMAT_INFO_IS_YUV (finfo)) {
-    if (height > 576)
-      info->colorimetry = default_color[DEFAULT_YUV_HD];
-    else
-      info->colorimetry = default_color[DEFAULT_YUV_SD];
-  } else if (GST_VIDEO_FORMAT_INFO_IS_GRAY (finfo)) {
-    info->colorimetry = default_color[DEFAULT_GRAY];
-  } else if (GST_VIDEO_FORMAT_INFO_IS_RGB (finfo)) {
-    info->colorimetry = default_color[DEFAULT_RGB];
-  } else {
-    info->colorimetry = default_color[DEFAULT_UNKNOWN];
-  }
+  set_default_colorimetry (info);
 
   fill_planes (info);
 }
@@ -194,7 +223,11 @@
       format != GST_VIDEO_FORMAT_ENCODED)
     goto no_height;
 
-  gst_video_info_set_format (info, format, width, height);
+  gst_video_info_init (info);
+
+  info->finfo = gst_video_format_get_info (format);
+  info->width = width;
+  info->height = height;
 
   if (gst_structure_get_fraction (structure, "framerate", &fps_n, &fps_d)) {
     if (fps_n == 0) {
@@ -226,8 +259,18 @@
   else
     info->chroma_site = GST_VIDEO_CHROMA_SITE_UNKNOWN;
 
-  if ((s = gst_structure_get_string (structure, "colorimetry")))
-    gst_video_colorimetry_from_string (&info->colorimetry, s);
+  if ((s = gst_structure_get_string (structure, "colorimetry"))) {
+    if (!gst_video_colorimetry_from_string (&info->colorimetry, s)) {
+      GST_WARNING ("unparsable colorimetry, using default");
+      set_default_colorimetry (info);
+    } else if (!validate_colorimetry (info)) {
+      GST_WARNING ("invalid colorimetry, using default");
+      set_default_colorimetry (info);
+    }
+  } else {
+    GST_DEBUG ("no colorimetry, using default");
+    set_default_colorimetry (info);
+  }
 
   if (gst_structure_get_fraction (structure, "pixel-aspect-ratio",
           &par_n, &par_d)) {
@@ -237,6 +280,8 @@
     info->par_n = 1;
     info->par_d = 1;
   }
+  fill_planes (info);
+
   return TRUE;
 
   /* ERROR */
@@ -373,7 +418,7 @@
 static int
 fill_planes (GstVideoInfo * info)
 {
-  gsize width, height;
+  gsize width, height, cr_h;
 
   width = (gsize) info->width;
   height = (gsize) info->height;
@@ -467,10 +512,13 @@
       info->stride[2] = info->stride[1];
       info->offset[0] = 0;
       info->offset[1] = info->stride[0] * GST_ROUND_UP_2 (height);
-      info->offset[2] = info->offset[1] +
-          info->stride[1] * (GST_ROUND_UP_2 (height) / 2);
-      info->size = info->offset[2] +
-          info->stride[2] * (GST_ROUND_UP_2 (height) / 2);
+      cr_h = GST_ROUND_UP_2 (height) / 2;
+      if (GST_VIDEO_INFO_IS_INTERLACED (info))
+        cr_h = GST_ROUND_UP_2 (cr_h);
+      info->offset[2] = info->offset[1] + info->stride[1] * cr_h;
+      info->size = info->offset[2] + info->stride[2] * cr_h;
+      GST_DEBUG ("%d %d %d", GST_VIDEO_INFO_IS_INTERLACED (info),
+          (int) info->offset[2], (int) info->size);
       break;
     case GST_VIDEO_FORMAT_Y41B:
       info->stride[0] = GST_ROUND_UP_4 (width);
@@ -508,7 +556,10 @@
       info->stride[1] = info->stride[0];
       info->offset[0] = 0;
       info->offset[1] = info->stride[0] * GST_ROUND_UP_2 (height);
-      info->size = info->stride[0] * GST_ROUND_UP_2 (height) * 3 / 2;
+      cr_h = GST_ROUND_UP_2 (height) / 2;
+      if (GST_VIDEO_INFO_IS_INTERLACED (info))
+        cr_h = GST_ROUND_UP_2 (cr_h);
+      info->size = info->offset[1] + info->stride[0] * cr_h;
       break;
     case GST_VIDEO_FORMAT_NV16:
       info->stride[0] = GST_ROUND_UP_4 (width);
@@ -531,10 +582,11 @@
       info->stride[3] = info->stride[0];
       info->offset[0] = 0;
       info->offset[1] = info->stride[0] * GST_ROUND_UP_2 (height);
-      info->offset[2] = info->offset[1] +
-          info->stride[1] * (GST_ROUND_UP_2 (height) / 2);
-      info->offset[3] = info->offset[2] +
-          info->stride[2] * (GST_ROUND_UP_2 (height) / 2);
+      cr_h = GST_ROUND_UP_2 (height) / 2;
+      if (GST_VIDEO_INFO_IS_INTERLACED (info))
+        cr_h = GST_ROUND_UP_2 (cr_h);
+      info->offset[2] = info->offset[1] + info->stride[1] * cr_h;
+      info->offset[3] = info->offset[2] + info->stride[2] * cr_h;
       info->size = info->offset[3] + info->stride[0] * GST_ROUND_UP_2 (height);
       break;
     case GST_VIDEO_FORMAT_YUV9:
@@ -544,10 +596,11 @@
       info->stride[2] = info->stride[1];
       info->offset[0] = 0;
       info->offset[1] = info->stride[0] * height;
-      info->offset[2] = info->offset[1] +
-          info->stride[1] * (GST_ROUND_UP_4 (height) / 4);
-      info->size = info->offset[2] +
-          info->stride[2] * (GST_ROUND_UP_4 (height) / 4);
+      cr_h = GST_ROUND_UP_4 (height) / 4;
+      if (GST_VIDEO_INFO_IS_INTERLACED (info))
+        cr_h = GST_ROUND_UP_2 (cr_h);
+      info->offset[2] = info->offset[1] + info->stride[1] * cr_h;
+      info->size = info->offset[2] + info->stride[2] * cr_h;
       break;
     case GST_VIDEO_FORMAT_I420_10LE:
     case GST_VIDEO_FORMAT_I420_10BE:
@@ -556,10 +609,11 @@
       info->stride[2] = info->stride[1];
       info->offset[0] = 0;
       info->offset[1] = info->stride[0] * GST_ROUND_UP_2 (height);
-      info->offset[2] = info->offset[1] +
-          info->stride[1] * (GST_ROUND_UP_2 (height) / 2);
-      info->size = info->offset[2] +
-          info->stride[2] * (GST_ROUND_UP_2 (height) / 2);
+      cr_h = GST_ROUND_UP_2 (height) / 2;
+      if (GST_VIDEO_INFO_IS_INTERLACED (info))
+        cr_h = GST_ROUND_UP_2 (cr_h);
+      info->offset[2] = info->offset[1] + info->stride[1] * cr_h;
+      info->size = info->offset[2] + info->stride[2] * cr_h;
       break;
     case GST_VIDEO_FORMAT_I422_10LE:
     case GST_VIDEO_FORMAT_I422_10BE:
@@ -596,6 +650,48 @@
       info->size = info->offset[1] +
           GST_ROUND_UP_128 (width) * GST_ROUND_UP_64 (height) / 2;
       break;
+    case GST_VIDEO_FORMAT_A420_10LE:
+    case GST_VIDEO_FORMAT_A420_10BE:
+      info->stride[0] = GST_ROUND_UP_4 (width * 2);
+      info->stride[1] = GST_ROUND_UP_4 (width);
+      info->stride[2] = info->stride[1];
+      info->stride[3] = info->stride[0];
+      info->offset[0] = 0;
+      info->offset[1] = info->stride[0] * GST_ROUND_UP_2 (height);
+      cr_h = GST_ROUND_UP_2 (height) / 2;
+      if (GST_VIDEO_INFO_IS_INTERLACED (info))
+        cr_h = GST_ROUND_UP_2 (cr_h);
+      info->offset[2] = info->offset[1] + info->stride[1] * cr_h;
+      info->offset[3] = info->offset[2] + info->stride[2] * cr_h;
+      info->size = info->offset[3] + info->stride[0] * GST_ROUND_UP_2 (height);
+      break;
+    case GST_VIDEO_FORMAT_A422_10LE:
+    case GST_VIDEO_FORMAT_A422_10BE:
+      info->stride[0] = GST_ROUND_UP_4 (width * 2);
+      info->stride[1] = GST_ROUND_UP_4 (width);
+      info->stride[2] = info->stride[1];
+      info->stride[3] = info->stride[0];
+      info->offset[0] = 0;
+      info->offset[1] = info->stride[0] * GST_ROUND_UP_2 (height);
+      info->offset[2] = info->offset[1] +
+          info->stride[1] * GST_ROUND_UP_2 (height);
+      info->offset[3] =
+          info->offset[2] + info->stride[2] * GST_ROUND_UP_2 (height);
+      info->size = info->offset[3] + info->stride[0] * GST_ROUND_UP_2 (height);
+      break;
+    case GST_VIDEO_FORMAT_A444_10LE:
+    case GST_VIDEO_FORMAT_A444_10BE:
+      info->stride[0] = GST_ROUND_UP_4 (width * 2);
+      info->stride[1] = info->stride[0];
+      info->stride[2] = info->stride[0];
+      info->stride[3] = info->stride[0];
+      info->offset[0] = 0;
+      info->offset[1] = info->stride[0] * height;
+      info->offset[2] = info->offset[1] * 2;
+      info->offset[3] = info->offset[1] * 3;
+      info->size = info->stride[0] * height * 4;
+      break;
+
     case GST_VIDEO_FORMAT_ENCODED:
       break;
     case GST_VIDEO_FORMAT_UNKNOWN:
diff --git a/gst-libs/gst/video/video-orc-dist.c b/gst-libs/gst/video/video-orc-dist.c
index fad5d6a..71838d2 100644
--- a/gst-libs/gst/video/video-orc-dist.c
+++ b/gst-libs/gst/video/video-orc-dist.c
@@ -104,6 +104,8 @@
     const guint8 * ORC_RESTRICT s3, int n);
 void video_orc_pack_I420 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
     guint8 * ORC_RESTRICT d3, const guint8 * ORC_RESTRICT s1, int n);
+void video_orc_pack_Y (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+    int n);
 void video_orc_unpack_YUY2 (guint8 * ORC_RESTRICT d1,
     const guint8 * ORC_RESTRICT s1, int n);
 void video_orc_pack_YUY2 (guint8 * ORC_RESTRICT d1,
@@ -163,11 +165,297 @@
 void video_orc_pack_A420 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
     guint8 * ORC_RESTRICT d3, guint8 * ORC_RESTRICT d4,
     const guint8 * ORC_RESTRICT s1, int n);
+void video_orc_pack_AY (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
+    const guint8 * ORC_RESTRICT s1, int n);
+void video_orc_unpack_RGB15_le (guint32 * ORC_RESTRICT d1,
+    const guint16 * ORC_RESTRICT s1, int n);
+void video_orc_unpack_RGB15_be (guint32 * ORC_RESTRICT d1,
+    const guint16 * ORC_RESTRICT s1, int n);
+void video_orc_unpack_RGB15_le_trunc (guint32 * ORC_RESTRICT d1,
+    const guint16 * ORC_RESTRICT s1, int n);
+void video_orc_unpack_RGB15_be_trunc (guint32 * ORC_RESTRICT d1,
+    const guint16 * ORC_RESTRICT s1, int n);
+void video_orc_pack_RGB15_le (guint16 * ORC_RESTRICT d1,
+    const guint32 * ORC_RESTRICT s1, int n);
+void video_orc_pack_RGB15_be (guint16 * ORC_RESTRICT d1,
+    const guint32 * ORC_RESTRICT s1, int n);
+void video_orc_unpack_BGR15_le (guint32 * ORC_RESTRICT d1,
+    const guint16 * ORC_RESTRICT s1, int n);
+void video_orc_unpack_BGR15_be (guint32 * ORC_RESTRICT d1,
+    const guint16 * ORC_RESTRICT s1, int n);
+void video_orc_unpack_BGR15_le_trunc (guint32 * ORC_RESTRICT d1,
+    const guint16 * ORC_RESTRICT s1, int n);
+void video_orc_unpack_BGR15_be_trunc (guint32 * ORC_RESTRICT d1,
+    const guint16 * ORC_RESTRICT s1, int n);
+void video_orc_pack_BGR15_le (guint16 * ORC_RESTRICT d1,
+    const guint32 * ORC_RESTRICT s1, int n);
+void video_orc_pack_BGR15_be (guint16 * ORC_RESTRICT d1,
+    const guint32 * ORC_RESTRICT s1, int n);
+void video_orc_unpack_RGB16 (guint32 * ORC_RESTRICT d1,
+    const guint16 * ORC_RESTRICT s1, int n);
+void video_orc_unpack_RGB16_trunc (guint32 * ORC_RESTRICT d1,
+    const guint16 * ORC_RESTRICT s1, int n);
+void video_orc_pack_RGB16_le (guint16 * ORC_RESTRICT d1,
+    const guint32 * ORC_RESTRICT s1, int n);
+void video_orc_pack_RGB16_be (guint16 * ORC_RESTRICT d1,
+    const guint32 * ORC_RESTRICT s1, int n);
+void video_orc_unpack_BGR16 (guint32 * ORC_RESTRICT d1,
+    const guint16 * ORC_RESTRICT s1, int n);
+void video_orc_unpack_BGR16_trunc (guint32 * ORC_RESTRICT d1,
+    const guint16 * ORC_RESTRICT s1, int n);
+void video_orc_pack_BGR16_le (guint16 * ORC_RESTRICT d1,
+    const guint32 * ORC_RESTRICT s1, int n);
+void video_orc_pack_BGR16_be (guint16 * ORC_RESTRICT d1,
+    const guint32 * ORC_RESTRICT s1, int n);
 void video_orc_resample_bilinear_u32 (guint8 * ORC_RESTRICT d1,
     const guint8 * ORC_RESTRICT s1, int p1, int p2, int n);
 void video_orc_merge_linear_u8 (orc_uint8 * ORC_RESTRICT d1,
     const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2,
     int p1, int n);
+void video_orc_memset_2d (guint8 * ORC_RESTRICT d1, int d1_stride, int p1,
+    int n, int m);
+void video_orc_memcpy_2d (guint8 * ORC_RESTRICT d1, int d1_stride,
+    const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
+void video_orc_convert_u16_to_u8 (guint8 * ORC_RESTRICT d1,
+    const guint16 * ORC_RESTRICT s1, int n);
+void video_orc_convert_u8_to_u16 (guint16 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, int n);
+void video_orc_splat_u16 (guint8 * ORC_RESTRICT d1, int p1, int n);
+void video_orc_splat_u32 (guint8 * ORC_RESTRICT d1, int p1, int n);
+void video_orc_splat_u64 (guint8 * ORC_RESTRICT d1, orc_int64 p1, int n);
+void video_orc_splat2_u64 (guint8 * ORC_RESTRICT d1, int p1, int n);
+void video_orc_convert_I420_UYVY (guint8 * ORC_RESTRICT d1,
+    guint8 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1,
+    const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3,
+    const guint8 * ORC_RESTRICT s4, int n);
+void video_orc_convert_I420_YUY2 (guint8 * ORC_RESTRICT d1,
+    guint8 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1,
+    const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3,
+    const guint8 * ORC_RESTRICT s4, int n);
+void video_orc_convert_I420_AYUV (guint8 * ORC_RESTRICT d1,
+    guint8 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1,
+    const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3,
+    const guint8 * ORC_RESTRICT s4, int p1, int n);
+void video_orc_convert_YUY2_I420 (guint8 * ORC_RESTRICT d1,
+    guint8 * ORC_RESTRICT d2, guint8 * ORC_RESTRICT d3,
+    guint8 * ORC_RESTRICT d4, const guint8 * ORC_RESTRICT s1,
+    const guint8 * ORC_RESTRICT s2, int n);
+void video_orc_convert_UYVY_YUY2 (guint8 * ORC_RESTRICT d1, int d1_stride,
+    const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
+void video_orc_planar_chroma_420_422 (guint8 * ORC_RESTRICT d1, int d1_stride,
+    guint8 * ORC_RESTRICT d2, int d2_stride, const guint8 * ORC_RESTRICT s1,
+    int s1_stride, int n, int m);
+void video_orc_planar_chroma_420_444 (guint8 * ORC_RESTRICT d1, int d1_stride,
+    guint8 * ORC_RESTRICT d2, int d2_stride, const guint8 * ORC_RESTRICT s1,
+    int s1_stride, int n, int m);
+void video_orc_planar_chroma_422_444 (guint8 * ORC_RESTRICT d1, int d1_stride,
+    const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
+void video_orc_planar_chroma_444_422 (guint8 * ORC_RESTRICT d1, int d1_stride,
+    const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
+void video_orc_planar_chroma_444_420 (guint8 * ORC_RESTRICT d1, int d1_stride,
+    const guint8 * ORC_RESTRICT s1, int s1_stride,
+    const guint8 * ORC_RESTRICT s2, int s2_stride, int n, int m);
+void video_orc_planar_chroma_422_420 (guint8 * ORC_RESTRICT d1, int d1_stride,
+    const guint8 * ORC_RESTRICT s1, int s1_stride,
+    const guint8 * ORC_RESTRICT s2, int s2_stride, int n, int m);
+void video_orc_convert_YUY2_AYUV (guint8 * ORC_RESTRICT d1, int d1_stride,
+    const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m);
+void video_orc_convert_UYVY_AYUV (guint8 * ORC_RESTRICT d1, int d1_stride,
+    const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m);
+void video_orc_convert_YUY2_Y42B (guint8 * ORC_RESTRICT d1, int d1_stride,
+    guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3,
+    int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
+void video_orc_convert_UYVY_Y42B (guint8 * ORC_RESTRICT d1, int d1_stride,
+    guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3,
+    int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
+void video_orc_convert_YUY2_Y444 (guint8 * ORC_RESTRICT d1, int d1_stride,
+    guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3,
+    int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
+void video_orc_convert_UYVY_Y444 (guint8 * ORC_RESTRICT d1, int d1_stride,
+    guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3,
+    int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
+void video_orc_convert_UYVY_I420 (guint8 * ORC_RESTRICT d1,
+    guint8 * ORC_RESTRICT d2, guint8 * ORC_RESTRICT d3,
+    guint8 * ORC_RESTRICT d4, const guint8 * ORC_RESTRICT s1,
+    const guint8 * ORC_RESTRICT s2, int n);
+void video_orc_convert_AYUV_I420 (guint8 * ORC_RESTRICT d1, int d1_stride,
+    guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3,
+    int d3_stride, guint8 * ORC_RESTRICT d4, int d4_stride,
+    const guint8 * ORC_RESTRICT s1, int s1_stride,
+    const guint8 * ORC_RESTRICT s2, int s2_stride, int n, int m);
+void video_orc_convert_AYUV_YUY2 (guint8 * ORC_RESTRICT d1, int d1_stride,
+    const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
+void video_orc_convert_AYUV_UYVY (guint8 * ORC_RESTRICT d1, int d1_stride,
+    const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
+void video_orc_convert_AYUV_Y42B (guint8 * ORC_RESTRICT d1, int d1_stride,
+    guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3,
+    int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
+void video_orc_convert_AYUV_Y444 (guint8 * ORC_RESTRICT d1, int d1_stride,
+    guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3,
+    int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
+void video_orc_convert_Y42B_YUY2 (guint8 * ORC_RESTRICT d1, int d1_stride,
+    const guint8 * ORC_RESTRICT s1, int s1_stride,
+    const guint8 * ORC_RESTRICT s2, int s2_stride,
+    const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m);
+void video_orc_convert_Y42B_UYVY (guint8 * ORC_RESTRICT d1, int d1_stride,
+    const guint8 * ORC_RESTRICT s1, int s1_stride,
+    const guint8 * ORC_RESTRICT s2, int s2_stride,
+    const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m);
+void video_orc_convert_Y42B_AYUV (guint8 * ORC_RESTRICT d1, int d1_stride,
+    const guint8 * ORC_RESTRICT s1, int s1_stride,
+    const guint8 * ORC_RESTRICT s2, int s2_stride,
+    const guint8 * ORC_RESTRICT s3, int s3_stride, int p1, int n, int m);
+void video_orc_convert_Y444_YUY2 (guint8 * ORC_RESTRICT d1, int d1_stride,
+    const guint8 * ORC_RESTRICT s1, int s1_stride,
+    const guint8 * ORC_RESTRICT s2, int s2_stride,
+    const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m);
+void video_orc_convert_Y444_UYVY (guint8 * ORC_RESTRICT d1, int d1_stride,
+    const guint8 * ORC_RESTRICT s1, int s1_stride,
+    const guint8 * ORC_RESTRICT s2, int s2_stride,
+    const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m);
+void video_orc_convert_Y444_AYUV (guint8 * ORC_RESTRICT d1, int d1_stride,
+    const guint8 * ORC_RESTRICT s1, int s1_stride,
+    const guint8 * ORC_RESTRICT s2, int s2_stride,
+    const guint8 * ORC_RESTRICT s3, int s3_stride, int p1, int n, int m);
+void video_orc_convert_AYUV_ARGB (guint8 * ORC_RESTRICT d1, int d1_stride,
+    const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int p2, int p3,
+    int p4, int p5, int n, int m);
+void video_orc_convert_AYUV_BGRA (guint8 * ORC_RESTRICT d1, int d1_stride,
+    const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int p2, int p3,
+    int p4, int p5, int n, int m);
+void video_orc_convert_AYUV_ABGR (guint8 * ORC_RESTRICT d1, int d1_stride,
+    const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int p2, int p3,
+    int p4, int p5, int n, int m);
+void video_orc_convert_AYUV_RGBA (guint8 * ORC_RESTRICT d1, int d1_stride,
+    const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int p2, int p3,
+    int p4, int p5, int n, int m);
+void video_orc_convert_I420_BGRA (guint8 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
+    const guint8 * ORC_RESTRICT s3, int p1, int p2, int p3, int p4, int p5,
+    int n);
+void video_orc_matrix8 (guint8 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, orc_int64 p1, orc_int64 p2, orc_int64 p3,
+    orc_int64 p4, int n);
+void _custom_video_orc_matrix8 (guint8 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, orc_int64 p1, orc_int64 p2, orc_int64 p3,
+    orc_int64 p4, int n);
+void video_orc_resample_h_near_u32_lq (guint32 * ORC_RESTRICT d1,
+    const guint32 * ORC_RESTRICT s1, int p1, int p2, int n);
+void video_orc_resample_h_2tap_1u8_lq (guint8 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, int p1, int p2, int n);
+void video_orc_resample_h_2tap_4u8_lq (guint32 * ORC_RESTRICT d1,
+    const guint32 * ORC_RESTRICT s1, int p1, int p2, int n);
+void video_orc_resample_h_2tap_u8_lq (guint8 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
+    const gint16 * ORC_RESTRICT s3, const gint16 * ORC_RESTRICT s4, int n);
+void video_orc_resample_h_2tap_u16 (guint16 * ORC_RESTRICT d1,
+    const guint16 * ORC_RESTRICT s1, const guint16 * ORC_RESTRICT s2,
+    const gint16 * ORC_RESTRICT s3, const gint16 * ORC_RESTRICT s4, int n);
+void video_orc_resample_v_2tap_u8_lq (guint8 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, int p1,
+    int n);
+void video_orc_resample_v_2tap_u16 (guint16 * ORC_RESTRICT d1,
+    const guint16 * ORC_RESTRICT s1, const guint16 * ORC_RESTRICT s2, int p1,
+    int n);
+void video_orc_resample_v_2tap_u8 (guint8 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, int p1,
+    int n);
+void video_orc_resample_v_4tap_u8_lq (guint8 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
+    const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, int p1,
+    int p2, int p3, int p4, int n);
+void video_orc_resample_v_4tap_u8 (guint8 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
+    const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, int p1,
+    int p2, int p3, int p4, int n);
+void video_orc_resample_h_multaps_u8 (gint32 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, const gint16 * ORC_RESTRICT s2, int n);
+void video_orc_resample_h_muladdtaps_u8 (gint32 * ORC_RESTRICT d1,
+    int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride,
+    const gint16 * ORC_RESTRICT s2, int s2_stride, int n, int m);
+void video_orc_resample_scaletaps_u8 (guint8 * ORC_RESTRICT d1,
+    const gint32 * ORC_RESTRICT s1, int n);
+void video_orc_resample_h_multaps_u8_lq (gint16 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, const gint16 * ORC_RESTRICT s2, int n);
+void video_orc_resample_h_muladdtaps_u8_lq (gint16 * ORC_RESTRICT d1,
+    int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride,
+    const gint16 * ORC_RESTRICT s2, int s2_stride, int n, int m);
+void video_orc_resample_h_multaps3_u8_lq (gint16 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
+    const guint8 * ORC_RESTRICT s3, const gint16 * ORC_RESTRICT s4,
+    const gint16 * ORC_RESTRICT s5, const gint16 * ORC_RESTRICT s6, int n);
+void video_orc_resample_h_muladdtaps3_u8_lq (gint16 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
+    const guint8 * ORC_RESTRICT s3, const gint16 * ORC_RESTRICT s4,
+    const gint16 * ORC_RESTRICT s5, const gint16 * ORC_RESTRICT s6, int n);
+void video_orc_resample_h_muladdscaletaps3_u8_lq (guint8 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
+    const guint8 * ORC_RESTRICT s3, const gint16 * ORC_RESTRICT s4,
+    const gint16 * ORC_RESTRICT s5, const gint16 * ORC_RESTRICT s6,
+    const gint16 * ORC_RESTRICT s7, int n);
+void video_orc_resample_scaletaps_u8_lq (guint8 * ORC_RESTRICT d1,
+    const gint16 * ORC_RESTRICT s1, int n);
+void video_orc_resample_h_multaps_u16 (gint32 * ORC_RESTRICT d1,
+    const guint16 * ORC_RESTRICT s1, const gint16 * ORC_RESTRICT s2, int n);
+void video_orc_resample_h_muladdtaps_u16 (gint32 * ORC_RESTRICT d1,
+    int d1_stride, const guint16 * ORC_RESTRICT s1, int s1_stride,
+    const gint16 * ORC_RESTRICT s2, int s2_stride, int n, int m);
+void video_orc_resample_scaletaps_u16 (guint16 * ORC_RESTRICT d1,
+    const gint32 * ORC_RESTRICT s1, int n);
+void video_orc_resample_v_multaps_u8 (gint32 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, int p1, int n);
+void video_orc_resample_v_muladdtaps_u8 (gint32 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, int p1, int n);
+void video_orc_resample_v_multaps_u16 (gint32 * ORC_RESTRICT d1,
+    const guint16 * ORC_RESTRICT s1, int p1, int n);
+void video_orc_resample_v_muladdtaps_u16 (gint32 * ORC_RESTRICT d1,
+    const guint16 * ORC_RESTRICT s1, int p1, int n);
+void video_orc_resample_v_multaps_u8_lq (gint16 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, int p1, int n);
+void video_orc_resample_v_multaps4_u8_lq (gint16 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
+    const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, int p1,
+    int p2, int p3, int p4, int n);
+void video_orc_resample_v_muladdtaps_u8_lq (gint16 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, int p1, int n);
+void video_orc_resample_v_muladdtaps4_u8_lq (gint16 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
+    const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, int p1,
+    int p2, int p3, int p4, int n);
+void video_orc_resample_v_muladdscaletaps4_u8_lq (guint8 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
+    const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4,
+    const gint16 * ORC_RESTRICT s5, int p1, int p2, int p3, int p4, int n);
+void video_orc_chroma_down_h2_u8 (guint8 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, int n);
+void video_orc_chroma_down_v2_u8 (guint8 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, int n);
+void video_orc_chroma_up_v2_u8 (guint8 * ORC_RESTRICT d1,
+    guint8 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1,
+    const guint8 * ORC_RESTRICT s2, int n);
+void video_orc_chroma_up_v2_u16 (guint16 * ORC_RESTRICT d1,
+    guint16 * ORC_RESTRICT d2, const guint16 * ORC_RESTRICT s1,
+    const guint16 * ORC_RESTRICT s2, int n);
+void video_orc_chroma_down_v2_u16 (guint16 * ORC_RESTRICT d1,
+    const guint16 * ORC_RESTRICT s1, const guint16 * ORC_RESTRICT s2, int n);
+void video_orc_chroma_down_v4_u8 (guint8 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
+    const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, int n);
+void video_orc_chroma_down_v4_u16 (guint16 * ORC_RESTRICT d1,
+    const guint16 * ORC_RESTRICT s1, const guint16 * ORC_RESTRICT s2,
+    const guint16 * ORC_RESTRICT s3, const guint16 * ORC_RESTRICT s4, int n);
+void video_orc_dither_none_4u8_mask (guint8 * ORC_RESTRICT d1, int p1, int n);
+void video_orc_dither_none_4u16_mask (guint16 * ORC_RESTRICT d1, orc_int64 p1,
+    int n);
+void video_orc_dither_verterr_4u8_mask (guint8 * ORC_RESTRICT d1,
+    guint16 * ORC_RESTRICT d2, orc_int64 p1, int n);
+void video_orc_dither_fs_muladd_u8 (guint16 * ORC_RESTRICT d1, int n);
+void video_orc_dither_ordered_u8 (guint8 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, int n);
+void video_orc_dither_ordered_4u8_mask (guint8 * ORC_RESTRICT d1,
+    const guint16 * ORC_RESTRICT s1, orc_int64 p1, int n);
+void video_orc_dither_ordered_4u16_mask (guint16 * ORC_RESTRICT d1,
+    const guint16 * ORC_RESTRICT s1, orc_int64 p1, int n);
 
 
 /* begin Orc C target preamble */
@@ -259,8 +547,9 @@
     var42 = var41.i;
     /* 3: splatbl */
     var43.i =
-        ((var42 & 0xff) << 24) | ((var42 & 0xff) << 16) | ((var42 & 0xff) << 8)
-        | (var42 & 0xff);
+        ((((orc_uint32) var42) & 0xff) << 24) | ((((orc_uint32) var42) & 0xff)
+        << 16) | ((((orc_uint32) var42) & 0xff) << 8) | (((orc_uint32) var42) &
+        0xff);
     /* 4: convubw */
     var44.x4[0] = (orc_uint8) var43.x4[0];
     var44.x4[1] = (orc_uint8) var43.x4[1];
@@ -368,8 +657,9 @@
     var42 = var41.i;
     /* 3: splatbl */
     var43.i =
-        ((var42 & 0xff) << 24) | ((var42 & 0xff) << 16) | ((var42 & 0xff) << 8)
-        | (var42 & 0xff);
+        ((((orc_uint32) var42) & 0xff) << 24) | ((((orc_uint32) var42) & 0xff)
+        << 16) | ((((orc_uint32) var42) & 0xff) << 8) | (((orc_uint32) var42) &
+        0xff);
     /* 4: convubw */
     var44.x4[0] = (orc_uint8) var43.x4[0];
     var44.x4[1] = (orc_uint8) var43.x4[1];
@@ -451,7 +741,7 @@
       static const orc_uint8 bc[] = {
         1, 9, 22, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 98, 108, 101,
         110, 100, 95, 108, 105, 116, 116, 108, 101, 11, 4, 4, 12, 4, 4, 14,
-        4, 255, 0, 0, 0, 14, 4, 8, 0, 0, 0, 20, 4, 20, 2, 20,
+        4, 255, 0, 0, 0, 14, 2, 8, 0, 0, 0, 20, 4, 20, 2, 20,
         1, 20, 4, 20, 8, 20, 8, 20, 8, 113, 32, 4, 163, 33, 32, 157,
         34, 33, 152, 35, 34, 21, 2, 150, 38, 35, 21, 2, 95, 38, 38, 17,
         21, 2, 150, 37, 32, 113, 32, 0, 21, 2, 150, 36, 32, 21, 2, 98,
@@ -468,7 +758,7 @@
       orc_program_add_destination (p, 4, "d1");
       orc_program_add_source (p, 4, "s1");
       orc_program_add_constant (p, 4, 0x000000ff, "c1");
-      orc_program_add_constant (p, 4, 0x00000008, "c2");
+      orc_program_add_constant (p, 2, 0x00000008, "c2");
       orc_program_add_temporary (p, 4, "t1");
       orc_program_add_temporary (p, 2, "t2");
       orc_program_add_temporary (p, 1, "t3");
@@ -579,8 +869,9 @@
     var44 = var43.i;
     /* 4: splatbl */
     var45.i =
-        ((var44 & 0xff) << 24) | ((var44 & 0xff) << 16) | ((var44 & 0xff) << 8)
-        | (var44 & 0xff);
+        ((((orc_uint32) var44) & 0xff) << 24) | ((((orc_uint32) var44) & 0xff)
+        << 16) | ((((orc_uint32) var44) & 0xff) << 8) | (((orc_uint32) var44) &
+        0xff);
     /* 5: convubw */
     var46.x4[0] = (orc_uint8) var45.x4[0];
     var46.x4[1] = (orc_uint8) var45.x4[1];
@@ -691,8 +982,9 @@
     var44 = var43.i;
     /* 4: splatbl */
     var45.i =
-        ((var44 & 0xff) << 24) | ((var44 & 0xff) << 16) | ((var44 & 0xff) << 8)
-        | (var44 & 0xff);
+        ((((orc_uint32) var44) & 0xff) << 24) | ((((orc_uint32) var44) & 0xff)
+        << 16) | ((((orc_uint32) var44) & 0xff) << 8) | (((orc_uint32) var44) &
+        0xff);
     /* 5: convubw */
     var46.x4[0] = (orc_uint8) var45.x4[0];
     var46.x4[1] = (orc_uint8) var45.x4[1];
@@ -774,7 +1066,7 @@
       static const orc_uint8 bc[] = {
         1, 9, 19, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 98, 108, 101,
         110, 100, 95, 98, 105, 103, 11, 4, 4, 12, 4, 4, 14, 4, 0, 0,
-        0, 255, 14, 4, 24, 0, 0, 0, 14, 4, 8, 0, 0, 0, 20, 4,
+        0, 255, 14, 4, 24, 0, 0, 0, 14, 2, 8, 0, 0, 0, 20, 4,
         20, 4, 20, 2, 20, 1, 20, 4, 20, 8, 20, 8, 20, 8, 113, 32,
         4, 126, 33, 32, 17, 163, 34, 33, 157, 35, 34, 152, 36, 35, 21, 2,
         150, 39, 36, 21, 2, 95, 39, 39, 18, 21, 2, 150, 38, 32, 113, 32,
@@ -792,7 +1084,7 @@
       orc_program_add_source (p, 4, "s1");
       orc_program_add_constant (p, 4, 0xff000000, "c1");
       orc_program_add_constant (p, 4, 0x00000018, "c2");
-      orc_program_add_constant (p, 4, 0x00000008, "c3");
+      orc_program_add_constant (p, 2, 0x00000008, "c3");
       orc_program_add_temporary (p, 4, "t1");
       orc_program_add_temporary (p, 4, "t2");
       orc_program_add_temporary (p, 2, "t3");
@@ -1307,6 +1599,137 @@
 #endif
 
 
+/* video_orc_pack_Y */
+#ifdef DISABLE_ORC
+void
+video_orc_pack_Y (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+    int n)
+{
+  int i;
+  orc_int8 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var33;
+  orc_int8 var34;
+  orc_union16 var35;
+
+  ptr0 = (orc_int8 *) d1;
+  ptr4 = (orc_union32 *) s1;
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var33 = ptr4[i];
+    /* 1: select0lw */
+    {
+      orc_union32 _src;
+      _src.i = var33.i;
+      var35.i = _src.x2[0];
+    }
+    /* 2: select1wb */
+    {
+      orc_union16 _src;
+      _src.i = var35.i;
+      var34 = _src.x2[1];
+    }
+    /* 3: storeb */
+    ptr0[i] = var34;
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_pack_Y (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_int8 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var33;
+  orc_int8 var34;
+  orc_union16 var35;
+
+  ptr0 = (orc_int8 *) ex->arrays[0];
+  ptr4 = (orc_union32 *) ex->arrays[4];
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var33 = ptr4[i];
+    /* 1: select0lw */
+    {
+      orc_union32 _src;
+      _src.i = var33.i;
+      var35.i = _src.x2[0];
+    }
+    /* 2: select1wb */
+    {
+      orc_union16 _src;
+      _src.i = var35.i;
+      var34 = _src.x2[1];
+    }
+    /* 3: storeb */
+    ptr0[i] = var34;
+  }
+
+}
+
+void
+video_orc_pack_Y (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+    int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 16, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 112, 97, 99,
+        107, 95, 89, 11, 1, 1, 12, 4, 4, 20, 2, 190, 32, 4, 189, 0,
+        32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_pack_Y);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "video_orc_pack_Y");
+      orc_program_set_backup_function (p, _backup_video_orc_pack_Y);
+      orc_program_add_destination (p, 1, "d1");
+      orc_program_add_source (p, 4, "s1");
+      orc_program_add_temporary (p, 2, "t1");
+
+      orc_program_append_2 (p, "select0lw", 0, ORC_VAR_T1, ORC_VAR_S1,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "select1wb", 0, ORC_VAR_D1, ORC_VAR_T1,
+          ORC_VAR_D1, ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
 /* video_orc_unpack_YUY2 */
 #ifdef DISABLE_ORC
 void
@@ -4230,16 +4653,10 @@
   int i;
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var40;
-  orc_union32 var41;
-  orc_union16 var42;
-  orc_union16 var43;
-  orc_int8 var44;
-  orc_int8 var45;
-  orc_int8 var46;
-  orc_int8 var47;
-  orc_union16 var48;
-  orc_union16 var49;
+  orc_union32 var34;
+  orc_union32 var35;
+  orc_union32 var36;
+  orc_union32 var37;
 
   ptr0 = (orc_union32 *) d1;
   ptr4 = (orc_union32 *) s1;
@@ -4247,51 +4664,15 @@
 
   for (i = 0; i < n; i++) {
     /* 0: loadl */
-    var40 = ptr4[i];
-    /* 1: splitlw */
-    {
-      orc_union32 _src;
-      _src.i = var40.i;
-      var42.i = _src.x2[1];
-      var43.i = _src.x2[0];
-    }
-    /* 2: splitwb */
-    {
-      orc_union16 _src;
-      _src.i = var42.i;
-      var44 = _src.x2[1];
-      var45 = _src.x2[0];
-    }
-    /* 3: splitwb */
-    {
-      orc_union16 _src;
-      _src.i = var43.i;
-      var46 = _src.x2[1];
-      var47 = _src.x2[0];
-    }
-    /* 4: mergebw */
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var44;
-      _dest.x2[1] = var47;
-      var48.i = _dest.i;
-    }
-    /* 5: mergebw */
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var46;
-      _dest.x2[1] = var45;
-      var49.i = _dest.i;
-    }
-    /* 6: mergewl */
-    {
-      orc_union32 _dest;
-      _dest.x2[0] = var49.i;
-      _dest.x2[1] = var48.i;
-      var41.i = _dest.i;
-    }
-    /* 7: storel */
-    ptr0[i] = var41;
+    var35 = ptr4[i];
+    /* 1: shrul */
+    var36.i = ((orc_uint32) var35.i) >> 8;
+    /* 2: shll */
+    var37.i = ((orc_uint32) var35.i) << 24;
+    /* 3: orl */
+    var34.i = var37.i | var36.i;
+    /* 4: storel */
+    ptr0[i] = var34;
   }
 
 }
@@ -4304,16 +4685,10 @@
   int n = ex->n;
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var40;
-  orc_union32 var41;
-  orc_union16 var42;
-  orc_union16 var43;
-  orc_int8 var44;
-  orc_int8 var45;
-  orc_int8 var46;
-  orc_int8 var47;
-  orc_union16 var48;
-  orc_union16 var49;
+  orc_union32 var34;
+  orc_union32 var35;
+  orc_union32 var36;
+  orc_union32 var37;
 
   ptr0 = (orc_union32 *) ex->arrays[0];
   ptr4 = (orc_union32 *) ex->arrays[4];
@@ -4321,51 +4696,15 @@
 
   for (i = 0; i < n; i++) {
     /* 0: loadl */
-    var40 = ptr4[i];
-    /* 1: splitlw */
-    {
-      orc_union32 _src;
-      _src.i = var40.i;
-      var42.i = _src.x2[1];
-      var43.i = _src.x2[0];
-    }
-    /* 2: splitwb */
-    {
-      orc_union16 _src;
-      _src.i = var42.i;
-      var44 = _src.x2[1];
-      var45 = _src.x2[0];
-    }
-    /* 3: splitwb */
-    {
-      orc_union16 _src;
-      _src.i = var43.i;
-      var46 = _src.x2[1];
-      var47 = _src.x2[0];
-    }
-    /* 4: mergebw */
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var44;
-      _dest.x2[1] = var47;
-      var48.i = _dest.i;
-    }
-    /* 5: mergebw */
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var46;
-      _dest.x2[1] = var45;
-      var49.i = _dest.i;
-    }
-    /* 6: mergewl */
-    {
-      orc_union32 _dest;
-      _dest.x2[0] = var49.i;
-      _dest.x2[1] = var48.i;
-      var41.i = _dest.i;
-    }
-    /* 7: storel */
-    ptr0[i] = var41;
+    var35 = ptr4[i];
+    /* 1: shrul */
+    var36.i = ((orc_uint32) var35.i) >> 8;
+    /* 2: shll */
+    var37.i = ((orc_uint32) var35.i) << 24;
+    /* 3: orl */
+    var34.i = var37.i | var36.i;
+    /* 4: storel */
+    ptr0[i] = var34;
   }
 
 }
@@ -4387,10 +4726,9 @@
 #if 1
       static const orc_uint8 bc[] = {
         1, 9, 19, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 112, 97, 99,
-        107, 95, 82, 71, 66, 65, 11, 4, 4, 12, 4, 4, 20, 1, 20, 1,
-        20, 1, 20, 1, 20, 2, 20, 2, 20, 2, 20, 2, 198, 39, 38, 4,
-        199, 35, 34, 39, 199, 33, 32, 38, 196, 37, 35, 32, 196, 36, 33, 34,
-        195, 0, 36, 37, 2, 0,
+        107, 95, 82, 71, 66, 65, 11, 4, 4, 12, 4, 4, 14, 4, 8, 0,
+        0, 0, 14, 4, 24, 0, 0, 0, 20, 4, 20, 4, 113, 33, 4, 126,
+        32, 33, 16, 124, 33, 33, 17, 123, 0, 33, 32, 2, 0,
       };
       p = orc_program_new_from_static_bytecode (bc);
       orc_program_set_backup_function (p, _backup_video_orc_pack_RGBA);
@@ -4400,26 +4738,18 @@
       orc_program_set_backup_function (p, _backup_video_orc_pack_RGBA);
       orc_program_add_destination (p, 4, "d1");
       orc_program_add_source (p, 4, "s1");
-      orc_program_add_temporary (p, 1, "t1");
-      orc_program_add_temporary (p, 1, "t2");
-      orc_program_add_temporary (p, 1, "t3");
-      orc_program_add_temporary (p, 1, "t4");
-      orc_program_add_temporary (p, 2, "t5");
-      orc_program_add_temporary (p, 2, "t6");
-      orc_program_add_temporary (p, 2, "t7");
-      orc_program_add_temporary (p, 2, "t8");
+      orc_program_add_constant (p, 4, 0x00000008, "c1");
+      orc_program_add_constant (p, 4, 0x00000018, "c2");
+      orc_program_add_temporary (p, 4, "t1");
+      orc_program_add_temporary (p, 4, "t2");
 
-      orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T8, ORC_VAR_T7, ORC_VAR_S1,
+      orc_program_append_2 (p, "loadl", 0, ORC_VAR_T2, ORC_VAR_S1, ORC_VAR_D1,
           ORC_VAR_D1);
-      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_T8,
+      orc_program_append_2 (p, "shrul", 0, ORC_VAR_T1, ORC_VAR_T2, ORC_VAR_C1,
           ORC_VAR_D1);
-      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_T7,
+      orc_program_append_2 (p, "shll", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C2,
           ORC_VAR_D1);
-      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T6, ORC_VAR_T4, ORC_VAR_T1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T5, ORC_VAR_T2, ORC_VAR_T3,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T5, ORC_VAR_T6,
+      orc_program_append_2 (p, "orl", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_T1,
           ORC_VAR_D1);
 #endif
 
@@ -4452,16 +4782,10 @@
   int i;
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var40;
-  orc_union32 var41;
-  orc_union16 var42;
-  orc_union16 var43;
-  orc_int8 var44;
-  orc_int8 var45;
-  orc_int8 var46;
-  orc_int8 var47;
-  orc_union16 var48;
-  orc_union16 var49;
+  orc_union32 var34;
+  orc_union32 var35;
+  orc_union32 var36;
+  orc_union32 var37;
 
   ptr0 = (orc_union32 *) d1;
   ptr4 = (orc_union32 *) s1;
@@ -4469,51 +4793,15 @@
 
   for (i = 0; i < n; i++) {
     /* 0: loadl */
-    var40 = ptr4[i];
-    /* 1: splitlw */
-    {
-      orc_union32 _src;
-      _src.i = var40.i;
-      var42.i = _src.x2[1];
-      var43.i = _src.x2[0];
-    }
-    /* 2: splitwb */
-    {
-      orc_union16 _src;
-      _src.i = var43.i;
-      var44 = _src.x2[1];
-      var45 = _src.x2[0];
-    }
-    /* 3: splitwb */
-    {
-      orc_union16 _src;
-      _src.i = var42.i;
-      var46 = _src.x2[1];
-      var47 = _src.x2[0];
-    }
-    /* 4: mergebw */
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var46;
-      _dest.x2[1] = var45;
-      var48.i = _dest.i;
-    }
-    /* 5: mergebw */
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var44;
-      _dest.x2[1] = var47;
-      var49.i = _dest.i;
-    }
-    /* 6: mergewl */
-    {
-      orc_union32 _dest;
-      _dest.x2[0] = var48.i;
-      _dest.x2[1] = var49.i;
-      var41.i = _dest.i;
-    }
-    /* 7: storel */
-    ptr0[i] = var41;
+    var35 = ptr4[i];
+    /* 1: shll */
+    var36.i = ((orc_uint32) var35.i) << 8;
+    /* 2: shrul */
+    var37.i = ((orc_uint32) var35.i) >> 24;
+    /* 3: orl */
+    var34.i = var37.i | var36.i;
+    /* 4: storel */
+    ptr0[i] = var34;
   }
 
 }
@@ -4526,16 +4814,10 @@
   int n = ex->n;
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var40;
-  orc_union32 var41;
-  orc_union16 var42;
-  orc_union16 var43;
-  orc_int8 var44;
-  orc_int8 var45;
-  orc_int8 var46;
-  orc_int8 var47;
-  orc_union16 var48;
-  orc_union16 var49;
+  orc_union32 var34;
+  orc_union32 var35;
+  orc_union32 var36;
+  orc_union32 var37;
 
   ptr0 = (orc_union32 *) ex->arrays[0];
   ptr4 = (orc_union32 *) ex->arrays[4];
@@ -4543,51 +4825,15 @@
 
   for (i = 0; i < n; i++) {
     /* 0: loadl */
-    var40 = ptr4[i];
-    /* 1: splitlw */
-    {
-      orc_union32 _src;
-      _src.i = var40.i;
-      var42.i = _src.x2[1];
-      var43.i = _src.x2[0];
-    }
-    /* 2: splitwb */
-    {
-      orc_union16 _src;
-      _src.i = var43.i;
-      var44 = _src.x2[1];
-      var45 = _src.x2[0];
-    }
-    /* 3: splitwb */
-    {
-      orc_union16 _src;
-      _src.i = var42.i;
-      var46 = _src.x2[1];
-      var47 = _src.x2[0];
-    }
-    /* 4: mergebw */
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var46;
-      _dest.x2[1] = var45;
-      var48.i = _dest.i;
-    }
-    /* 5: mergebw */
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var44;
-      _dest.x2[1] = var47;
-      var49.i = _dest.i;
-    }
-    /* 6: mergewl */
-    {
-      orc_union32 _dest;
-      _dest.x2[0] = var48.i;
-      _dest.x2[1] = var49.i;
-      var41.i = _dest.i;
-    }
-    /* 7: storel */
-    ptr0[i] = var41;
+    var35 = ptr4[i];
+    /* 1: shll */
+    var36.i = ((orc_uint32) var35.i) << 8;
+    /* 2: shrul */
+    var37.i = ((orc_uint32) var35.i) >> 24;
+    /* 3: orl */
+    var34.i = var37.i | var36.i;
+    /* 4: storel */
+    ptr0[i] = var34;
   }
 
 }
@@ -4609,10 +4855,9 @@
 #if 1
       static const orc_uint8 bc[] = {
         1, 9, 21, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 117, 110, 112,
-        97, 99, 107, 95, 82, 71, 66, 65, 11, 4, 4, 12, 4, 4, 20, 1,
-        20, 1, 20, 1, 20, 1, 20, 2, 20, 2, 20, 2, 20, 2, 198, 37,
-        36, 4, 199, 34, 33, 36, 199, 32, 35, 37, 196, 38, 32, 33, 196, 39,
-        34, 35, 195, 0, 38, 39, 2, 0,
+        97, 99, 107, 95, 82, 71, 66, 65, 11, 4, 4, 12, 4, 4, 14, 4,
+        8, 0, 0, 0, 14, 4, 24, 0, 0, 0, 20, 4, 20, 4, 113, 33,
+        4, 124, 32, 33, 16, 126, 33, 33, 17, 123, 0, 33, 32, 2, 0,
       };
       p = orc_program_new_from_static_bytecode (bc);
       orc_program_set_backup_function (p, _backup_video_orc_unpack_RGBA);
@@ -4622,26 +4867,18 @@
       orc_program_set_backup_function (p, _backup_video_orc_unpack_RGBA);
       orc_program_add_destination (p, 4, "d1");
       orc_program_add_source (p, 4, "s1");
-      orc_program_add_temporary (p, 1, "t1");
-      orc_program_add_temporary (p, 1, "t2");
-      orc_program_add_temporary (p, 1, "t3");
-      orc_program_add_temporary (p, 1, "t4");
-      orc_program_add_temporary (p, 2, "t5");
-      orc_program_add_temporary (p, 2, "t6");
-      orc_program_add_temporary (p, 2, "t7");
-      orc_program_add_temporary (p, 2, "t8");
+      orc_program_add_constant (p, 4, 0x00000008, "c1");
+      orc_program_add_constant (p, 4, 0x00000018, "c2");
+      orc_program_add_temporary (p, 4, "t1");
+      orc_program_add_temporary (p, 4, "t2");
 
-      orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T6, ORC_VAR_T5, ORC_VAR_S1,
+      orc_program_append_2 (p, "loadl", 0, ORC_VAR_T2, ORC_VAR_S1, ORC_VAR_D1,
           ORC_VAR_D1);
-      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T3, ORC_VAR_T2, ORC_VAR_T5,
+      orc_program_append_2 (p, "shll", 0, ORC_VAR_T1, ORC_VAR_T2, ORC_VAR_C1,
           ORC_VAR_D1);
-      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T1, ORC_VAR_T4, ORC_VAR_T6,
+      orc_program_append_2 (p, "shrul", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C2,
           ORC_VAR_D1);
-      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T7, ORC_VAR_T1, ORC_VAR_T2,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T8, ORC_VAR_T3, ORC_VAR_T4,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T7, ORC_VAR_T8,
+      orc_program_append_2 (p, "orl", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_T1,
           ORC_VAR_D1);
 #endif
 
@@ -4674,16 +4911,11 @@
   int i;
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var40;
-  orc_union32 var41;
-  orc_union16 var42;
-  orc_union16 var43;
-  orc_int8 var44;
-  orc_int8 var45;
-  orc_int8 var46;
-  orc_int8 var47;
-  orc_union16 var48;
-  orc_union16 var49;
+  orc_union32 var34;
+  orc_union32 var35;
+  orc_union32 var36;
+  orc_union32 var37;
+  orc_union32 var38;
 
   ptr0 = (orc_union32 *) d1;
   ptr4 = (orc_union32 *) s1;
@@ -4691,51 +4923,17 @@
 
   for (i = 0; i < n; i++) {
     /* 0: loadl */
-    var40 = ptr4[i];
-    /* 1: splitlw */
-    {
-      orc_union32 _src;
-      _src.i = var40.i;
-      var42.i = _src.x2[1];
-      var43.i = _src.x2[0];
-    }
-    /* 2: splitwb */
-    {
-      orc_union16 _src;
-      _src.i = var42.i;
-      var44 = _src.x2[1];
-      var45 = _src.x2[0];
-    }
-    /* 3: splitwb */
-    {
-      orc_union16 _src;
-      _src.i = var43.i;
-      var46 = _src.x2[1];
-      var47 = _src.x2[0];
-    }
-    /* 4: mergebw */
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var47;
-      _dest.x2[1] = var44;
-      var48.i = _dest.i;
-    }
-    /* 5: mergebw */
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var45;
-      _dest.x2[1] = var46;
-      var49.i = _dest.i;
-    }
-    /* 6: mergewl */
-    {
-      orc_union32 _dest;
-      _dest.x2[0] = var48.i;
-      _dest.x2[1] = var49.i;
-      var41.i = _dest.i;
-    }
-    /* 7: storel */
-    ptr0[i] = var41;
+    var34 = ptr4[i];
+    /* 1: swapl */
+    var36.i = ORC_SWAP_L (var34.i);
+    /* 2: shll */
+    var37.i = ((orc_uint32) var36.i) << 8;
+    /* 3: shrul */
+    var38.i = ((orc_uint32) var36.i) >> 24;
+    /* 4: orl */
+    var35.i = var38.i | var37.i;
+    /* 5: storel */
+    ptr0[i] = var35;
   }
 
 }
@@ -4748,16 +4946,11 @@
   int n = ex->n;
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var40;
-  orc_union32 var41;
-  orc_union16 var42;
-  orc_union16 var43;
-  orc_int8 var44;
-  orc_int8 var45;
-  orc_int8 var46;
-  orc_int8 var47;
-  orc_union16 var48;
-  orc_union16 var49;
+  orc_union32 var34;
+  orc_union32 var35;
+  orc_union32 var36;
+  orc_union32 var37;
+  orc_union32 var38;
 
   ptr0 = (orc_union32 *) ex->arrays[0];
   ptr4 = (orc_union32 *) ex->arrays[4];
@@ -4765,51 +4958,17 @@
 
   for (i = 0; i < n; i++) {
     /* 0: loadl */
-    var40 = ptr4[i];
-    /* 1: splitlw */
-    {
-      orc_union32 _src;
-      _src.i = var40.i;
-      var42.i = _src.x2[1];
-      var43.i = _src.x2[0];
-    }
-    /* 2: splitwb */
-    {
-      orc_union16 _src;
-      _src.i = var42.i;
-      var44 = _src.x2[1];
-      var45 = _src.x2[0];
-    }
-    /* 3: splitwb */
-    {
-      orc_union16 _src;
-      _src.i = var43.i;
-      var46 = _src.x2[1];
-      var47 = _src.x2[0];
-    }
-    /* 4: mergebw */
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var47;
-      _dest.x2[1] = var44;
-      var48.i = _dest.i;
-    }
-    /* 5: mergebw */
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var45;
-      _dest.x2[1] = var46;
-      var49.i = _dest.i;
-    }
-    /* 6: mergewl */
-    {
-      orc_union32 _dest;
-      _dest.x2[0] = var48.i;
-      _dest.x2[1] = var49.i;
-      var41.i = _dest.i;
-    }
-    /* 7: storel */
-    ptr0[i] = var41;
+    var34 = ptr4[i];
+    /* 1: swapl */
+    var36.i = ORC_SWAP_L (var34.i);
+    /* 2: shll */
+    var37.i = ((orc_uint32) var36.i) << 8;
+    /* 3: shrul */
+    var38.i = ((orc_uint32) var36.i) >> 24;
+    /* 4: orl */
+    var35.i = var38.i | var37.i;
+    /* 5: storel */
+    ptr0[i] = var35;
   }
 
 }
@@ -4831,10 +4990,9 @@
 #if 1
       static const orc_uint8 bc[] = {
         1, 9, 21, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 117, 110, 112,
-        97, 99, 107, 95, 65, 66, 71, 82, 11, 4, 4, 12, 4, 4, 20, 1,
-        20, 1, 20, 1, 20, 1, 20, 2, 20, 2, 20, 2, 20, 2, 198, 36,
-        37, 4, 199, 33, 34, 36, 199, 35, 32, 37, 196, 38, 32, 33, 196, 39,
-        34, 35, 195, 0, 38, 39, 2, 0,
+        97, 99, 107, 95, 65, 66, 71, 82, 11, 4, 4, 12, 4, 4, 14, 4,
+        8, 0, 0, 0, 14, 4, 24, 0, 0, 0, 20, 4, 20, 4, 184, 33,
+        4, 124, 32, 33, 16, 126, 33, 33, 17, 123, 0, 33, 32, 2, 0,
       };
       p = orc_program_new_from_static_bytecode (bc);
       orc_program_set_backup_function (p, _backup_video_orc_unpack_ABGR);
@@ -4844,26 +5002,18 @@
       orc_program_set_backup_function (p, _backup_video_orc_unpack_ABGR);
       orc_program_add_destination (p, 4, "d1");
       orc_program_add_source (p, 4, "s1");
-      orc_program_add_temporary (p, 1, "t1");
-      orc_program_add_temporary (p, 1, "t2");
-      orc_program_add_temporary (p, 1, "t3");
-      orc_program_add_temporary (p, 1, "t4");
-      orc_program_add_temporary (p, 2, "t5");
-      orc_program_add_temporary (p, 2, "t6");
-      orc_program_add_temporary (p, 2, "t7");
-      orc_program_add_temporary (p, 2, "t8");
+      orc_program_add_constant (p, 4, 0x00000008, "c1");
+      orc_program_add_constant (p, 4, 0x00000018, "c2");
+      orc_program_add_temporary (p, 4, "t1");
+      orc_program_add_temporary (p, 4, "t2");
 
-      orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T5, ORC_VAR_T6, ORC_VAR_S1,
+      orc_program_append_2 (p, "swapl", 0, ORC_VAR_T2, ORC_VAR_S1, ORC_VAR_D1,
           ORC_VAR_D1);
-      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T2, ORC_VAR_T3, ORC_VAR_T5,
+      orc_program_append_2 (p, "shll", 0, ORC_VAR_T1, ORC_VAR_T2, ORC_VAR_C1,
           ORC_VAR_D1);
-      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T4, ORC_VAR_T1, ORC_VAR_T6,
+      orc_program_append_2 (p, "shrul", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C2,
           ORC_VAR_D1);
-      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T7, ORC_VAR_T1, ORC_VAR_T2,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T8, ORC_VAR_T3, ORC_VAR_T4,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T7, ORC_VAR_T8,
+      orc_program_append_2 (p, "orl", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_T1,
           ORC_VAR_D1);
 #endif
 
@@ -4896,16 +5046,11 @@
   int i;
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var40;
-  orc_union32 var41;
-  orc_union16 var42;
-  orc_union16 var43;
-  orc_int8 var44;
-  orc_int8 var45;
-  orc_int8 var46;
-  orc_int8 var47;
-  orc_union16 var48;
-  orc_union16 var49;
+  orc_union32 var34;
+  orc_union32 var35;
+  orc_union32 var36;
+  orc_union32 var37;
+  orc_union32 var38;
 
   ptr0 = (orc_union32 *) d1;
   ptr4 = (orc_union32 *) s1;
@@ -4913,51 +5058,17 @@
 
   for (i = 0; i < n; i++) {
     /* 0: loadl */
-    var40 = ptr4[i];
-    /* 1: splitlw */
-    {
-      orc_union32 _src;
-      _src.i = var40.i;
-      var42.i = _src.x2[1];
-      var43.i = _src.x2[0];
-    }
-    /* 2: splitwb */
-    {
-      orc_union16 _src;
-      _src.i = var42.i;
-      var44 = _src.x2[1];
-      var45 = _src.x2[0];
-    }
-    /* 3: splitwb */
-    {
-      orc_union16 _src;
-      _src.i = var43.i;
-      var46 = _src.x2[1];
-      var47 = _src.x2[0];
-    }
-    /* 4: mergebw */
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var47;
-      _dest.x2[1] = var44;
-      var48.i = _dest.i;
-    }
-    /* 5: mergebw */
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var45;
-      _dest.x2[1] = var46;
-      var49.i = _dest.i;
-    }
-    /* 6: mergewl */
-    {
-      orc_union32 _dest;
-      _dest.x2[0] = var48.i;
-      _dest.x2[1] = var49.i;
-      var41.i = _dest.i;
-    }
-    /* 7: storel */
-    ptr0[i] = var41;
+    var34 = ptr4[i];
+    /* 1: swapl */
+    var36.i = ORC_SWAP_L (var34.i);
+    /* 2: shll */
+    var37.i = ((orc_uint32) var36.i) << 8;
+    /* 3: shrul */
+    var38.i = ((orc_uint32) var36.i) >> 24;
+    /* 4: orl */
+    var35.i = var38.i | var37.i;
+    /* 5: storel */
+    ptr0[i] = var35;
   }
 
 }
@@ -4970,16 +5081,11 @@
   int n = ex->n;
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var40;
-  orc_union32 var41;
-  orc_union16 var42;
-  orc_union16 var43;
-  orc_int8 var44;
-  orc_int8 var45;
-  orc_int8 var46;
-  orc_int8 var47;
-  orc_union16 var48;
-  orc_union16 var49;
+  orc_union32 var34;
+  orc_union32 var35;
+  orc_union32 var36;
+  orc_union32 var37;
+  orc_union32 var38;
 
   ptr0 = (orc_union32 *) ex->arrays[0];
   ptr4 = (orc_union32 *) ex->arrays[4];
@@ -4987,51 +5093,17 @@
 
   for (i = 0; i < n; i++) {
     /* 0: loadl */
-    var40 = ptr4[i];
-    /* 1: splitlw */
-    {
-      orc_union32 _src;
-      _src.i = var40.i;
-      var42.i = _src.x2[1];
-      var43.i = _src.x2[0];
-    }
-    /* 2: splitwb */
-    {
-      orc_union16 _src;
-      _src.i = var42.i;
-      var44 = _src.x2[1];
-      var45 = _src.x2[0];
-    }
-    /* 3: splitwb */
-    {
-      orc_union16 _src;
-      _src.i = var43.i;
-      var46 = _src.x2[1];
-      var47 = _src.x2[0];
-    }
-    /* 4: mergebw */
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var47;
-      _dest.x2[1] = var44;
-      var48.i = _dest.i;
-    }
-    /* 5: mergebw */
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var45;
-      _dest.x2[1] = var46;
-      var49.i = _dest.i;
-    }
-    /* 6: mergewl */
-    {
-      orc_union32 _dest;
-      _dest.x2[0] = var48.i;
-      _dest.x2[1] = var49.i;
-      var41.i = _dest.i;
-    }
-    /* 7: storel */
-    ptr0[i] = var41;
+    var34 = ptr4[i];
+    /* 1: swapl */
+    var36.i = ORC_SWAP_L (var34.i);
+    /* 2: shll */
+    var37.i = ((orc_uint32) var36.i) << 8;
+    /* 3: shrul */
+    var38.i = ((orc_uint32) var36.i) >> 24;
+    /* 4: orl */
+    var35.i = var38.i | var37.i;
+    /* 5: storel */
+    ptr0[i] = var35;
   }
 
 }
@@ -5053,10 +5125,9 @@
 #if 1
       static const orc_uint8 bc[] = {
         1, 9, 19, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 112, 97, 99,
-        107, 95, 65, 66, 71, 82, 11, 4, 4, 12, 4, 4, 20, 1, 20, 1,
-        20, 1, 20, 1, 20, 2, 20, 2, 20, 2, 20, 2, 198, 39, 38, 4,
-        199, 35, 34, 39, 199, 33, 32, 38, 196, 37, 32, 35, 196, 36, 34, 33,
-        195, 0, 37, 36, 2, 0,
+        107, 95, 65, 66, 71, 82, 11, 4, 4, 12, 4, 4, 14, 4, 8, 0,
+        0, 0, 14, 4, 24, 0, 0, 0, 20, 4, 20, 4, 184, 33, 4, 124,
+        32, 33, 16, 126, 33, 33, 17, 123, 0, 33, 32, 2, 0,
       };
       p = orc_program_new_from_static_bytecode (bc);
       orc_program_set_backup_function (p, _backup_video_orc_pack_ABGR);
@@ -5066,26 +5137,18 @@
       orc_program_set_backup_function (p, _backup_video_orc_pack_ABGR);
       orc_program_add_destination (p, 4, "d1");
       orc_program_add_source (p, 4, "s1");
-      orc_program_add_temporary (p, 1, "t1");
-      orc_program_add_temporary (p, 1, "t2");
-      orc_program_add_temporary (p, 1, "t3");
-      orc_program_add_temporary (p, 1, "t4");
-      orc_program_add_temporary (p, 2, "t5");
-      orc_program_add_temporary (p, 2, "t6");
-      orc_program_add_temporary (p, 2, "t7");
-      orc_program_add_temporary (p, 2, "t8");
+      orc_program_add_constant (p, 4, 0x00000008, "c1");
+      orc_program_add_constant (p, 4, 0x00000018, "c2");
+      orc_program_add_temporary (p, 4, "t1");
+      orc_program_add_temporary (p, 4, "t2");
 
-      orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T8, ORC_VAR_T7, ORC_VAR_S1,
+      orc_program_append_2 (p, "swapl", 0, ORC_VAR_T2, ORC_VAR_S1, ORC_VAR_D1,
           ORC_VAR_D1);
-      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_T8,
+      orc_program_append_2 (p, "shll", 0, ORC_VAR_T1, ORC_VAR_T2, ORC_VAR_C1,
           ORC_VAR_D1);
-      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_T7,
+      orc_program_append_2 (p, "shrul", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C2,
           ORC_VAR_D1);
-      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T6, ORC_VAR_T1, ORC_VAR_T4,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T5, ORC_VAR_T3, ORC_VAR_T2,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T6, ORC_VAR_T5,
+      orc_program_append_2 (p, "orl", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_T1,
           ORC_VAR_D1);
 #endif
 
@@ -6712,6 +6775,5679 @@
 #endif
 
 
+/* video_orc_pack_AY */
+#ifdef DISABLE_ORC
+void
+video_orc_pack_AY (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
+    const guint8 * ORC_RESTRICT s1, int n)
+{
+  int i;
+  orc_int8 *ORC_RESTRICT ptr0;
+  orc_int8 *ORC_RESTRICT ptr1;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var33;
+  orc_int8 var34;
+  orc_int8 var35;
+  orc_union16 var36;
+
+  ptr0 = (orc_int8 *) d1;
+  ptr1 = (orc_int8 *) d2;
+  ptr4 = (orc_union32 *) s1;
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var33 = ptr4[i];
+    /* 1: select0lw */
+    {
+      orc_union32 _src;
+      _src.i = var33.i;
+      var36.i = _src.x2[0];
+    }
+    /* 2: select1wb */
+    {
+      orc_union16 _src;
+      _src.i = var36.i;
+      var34 = _src.x2[1];
+    }
+    /* 3: storeb */
+    ptr0[i] = var34;
+    /* 4: select0wb */
+    {
+      orc_union16 _src;
+      _src.i = var36.i;
+      var35 = _src.x2[0];
+    }
+    /* 5: storeb */
+    ptr1[i] = var35;
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_pack_AY (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_int8 *ORC_RESTRICT ptr0;
+  orc_int8 *ORC_RESTRICT ptr1;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var33;
+  orc_int8 var34;
+  orc_int8 var35;
+  orc_union16 var36;
+
+  ptr0 = (orc_int8 *) ex->arrays[0];
+  ptr1 = (orc_int8 *) ex->arrays[1];
+  ptr4 = (orc_union32 *) ex->arrays[4];
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var33 = ptr4[i];
+    /* 1: select0lw */
+    {
+      orc_union32 _src;
+      _src.i = var33.i;
+      var36.i = _src.x2[0];
+    }
+    /* 2: select1wb */
+    {
+      orc_union16 _src;
+      _src.i = var36.i;
+      var34 = _src.x2[1];
+    }
+    /* 3: storeb */
+    ptr0[i] = var34;
+    /* 4: select0wb */
+    {
+      orc_union16 _src;
+      _src.i = var36.i;
+      var35 = _src.x2[0];
+    }
+    /* 5: storeb */
+    ptr1[i] = var35;
+  }
+
+}
+
+void
+video_orc_pack_AY (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
+    const guint8 * ORC_RESTRICT s1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 17, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 112, 97, 99,
+        107, 95, 65, 89, 11, 1, 1, 11, 1, 1, 12, 4, 4, 20, 2, 190,
+        32, 4, 189, 0, 32, 188, 1, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_pack_AY);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "video_orc_pack_AY");
+      orc_program_set_backup_function (p, _backup_video_orc_pack_AY);
+      orc_program_add_destination (p, 1, "d1");
+      orc_program_add_destination (p, 1, "d2");
+      orc_program_add_source (p, 4, "s1");
+      orc_program_add_temporary (p, 2, "t1");
+
+      orc_program_append_2 (p, "select0lw", 0, ORC_VAR_T1, ORC_VAR_S1,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "select1wb", 0, ORC_VAR_D1, ORC_VAR_T1,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "select0wb", 0, ORC_VAR_D2, ORC_VAR_T1,
+          ORC_VAR_D1, ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_D2] = d2;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_unpack_RGB15_le */
+#ifdef DISABLE_ORC
+void
+video_orc_unpack_RGB15_le (guint32 * ORC_RESTRICT d1,
+    const guint16 * ORC_RESTRICT s1, int n)
+{
+  int i;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var38;
+#else
+  orc_union16 var38;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var39;
+#else
+  orc_union16 var39;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var40;
+#else
+  orc_union16 var40;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var41;
+#else
+  orc_union16 var41;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var42;
+#else
+  orc_union16 var42;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var43;
+#else
+  orc_union16 var43;
+#endif
+  orc_union32 var44;
+  orc_union16 var45;
+  orc_union16 var46;
+  orc_union16 var47;
+  orc_union16 var48;
+  orc_union16 var49;
+  orc_union16 var50;
+  orc_union16 var51;
+  orc_union16 var52;
+  orc_union32 var53;
+  orc_union32 var54;
+  orc_union32 var55;
+
+  ptr0 = (orc_union32 *) d1;
+  ptr4 = (orc_union16 *) s1;
+
+  /* 1: loadpw */
+  var38.i = (int) 0x00007c00;   /* 31744 or 1.56836e-319f */
+  /* 3: loadpw */
+  var39.i = (int) 0x000003e0;   /* 992 or 4.90113e-321f */
+  /* 5: loadpw */
+  var40.i = (int) 0x0000001f;   /* 31 or 1.5316e-322f */
+  /* 8: loadpw */
+  var41.i = (int) 0x00000210;   /* 528 or 2.60867e-321f */
+  /* 10: loadpw */
+  var42.i = (int) 0x00004200;   /* 16896 or 8.34773e-320f */
+  /* 13: loadpw */
+  var43.i = (int) 0x000000ff;   /* 255 or 1.25987e-321f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadw */
+    var45 = ptr4[i];
+    /* 2: andw */
+    var46.i = var45.i & var38.i;
+    /* 4: andw */
+    var47.i = var45.i & var39.i;
+    /* 6: andw */
+    var48.i = var45.i & var40.i;
+    /* 7: shlw */
+    var49.i = ((orc_uint16) var48.i) << 5;
+    /* 9: mulhsw */
+    var50.i = (var46.i * var41.i) >> 16;
+    /* 11: mulhsw */
+    var51.i = (var47.i * var42.i) >> 16;
+    /* 12: mulhsw */
+    var52.i = (var49.i * var42.i) >> 16;
+    /* 14: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var43.i;
+      _dest.x2[1] = var51.i;
+      var53.i = _dest.i;
+    }
+    /* 15: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var50.i;
+      _dest.x2[1] = var52.i;
+      var54.i = _dest.i;
+    }
+    /* 16: shll */
+    var55.i = ((orc_uint32) var54.i) << 8;
+    /* 17: orl */
+    var44.i = var53.i | var55.i;
+    /* 18: storel */
+    ptr0[i] = var44;
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_unpack_RGB15_le (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var38;
+#else
+  orc_union16 var38;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var39;
+#else
+  orc_union16 var39;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var40;
+#else
+  orc_union16 var40;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var41;
+#else
+  orc_union16 var41;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var42;
+#else
+  orc_union16 var42;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var43;
+#else
+  orc_union16 var43;
+#endif
+  orc_union32 var44;
+  orc_union16 var45;
+  orc_union16 var46;
+  orc_union16 var47;
+  orc_union16 var48;
+  orc_union16 var49;
+  orc_union16 var50;
+  orc_union16 var51;
+  orc_union16 var52;
+  orc_union32 var53;
+  orc_union32 var54;
+  orc_union32 var55;
+
+  ptr0 = (orc_union32 *) ex->arrays[0];
+  ptr4 = (orc_union16 *) ex->arrays[4];
+
+  /* 1: loadpw */
+  var38.i = (int) 0x00007c00;   /* 31744 or 1.56836e-319f */
+  /* 3: loadpw */
+  var39.i = (int) 0x000003e0;   /* 992 or 4.90113e-321f */
+  /* 5: loadpw */
+  var40.i = (int) 0x0000001f;   /* 31 or 1.5316e-322f */
+  /* 8: loadpw */
+  var41.i = (int) 0x00000210;   /* 528 or 2.60867e-321f */
+  /* 10: loadpw */
+  var42.i = (int) 0x00004200;   /* 16896 or 8.34773e-320f */
+  /* 13: loadpw */
+  var43.i = (int) 0x000000ff;   /* 255 or 1.25987e-321f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadw */
+    var45 = ptr4[i];
+    /* 2: andw */
+    var46.i = var45.i & var38.i;
+    /* 4: andw */
+    var47.i = var45.i & var39.i;
+    /* 6: andw */
+    var48.i = var45.i & var40.i;
+    /* 7: shlw */
+    var49.i = ((orc_uint16) var48.i) << 5;
+    /* 9: mulhsw */
+    var50.i = (var46.i * var41.i) >> 16;
+    /* 11: mulhsw */
+    var51.i = (var47.i * var42.i) >> 16;
+    /* 12: mulhsw */
+    var52.i = (var49.i * var42.i) >> 16;
+    /* 14: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var43.i;
+      _dest.x2[1] = var51.i;
+      var53.i = _dest.i;
+    }
+    /* 15: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var50.i;
+      _dest.x2[1] = var52.i;
+      var54.i = _dest.i;
+    }
+    /* 16: shll */
+    var55.i = ((orc_uint32) var54.i) << 8;
+    /* 17: orl */
+    var44.i = var53.i | var55.i;
+    /* 18: storel */
+    ptr0[i] = var44;
+  }
+
+}
+
+void
+video_orc_unpack_RGB15_le (guint32 * ORC_RESTRICT d1,
+    const guint16 * ORC_RESTRICT s1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 25, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 117, 110, 112,
+        97, 99, 107, 95, 82, 71, 66, 49, 53, 95, 108, 101, 11, 4, 4, 12,
+        2, 2, 14, 2, 0, 124, 0, 0, 14, 2, 224, 3, 0, 0, 14, 2,
+        31, 0, 0, 0, 14, 2, 5, 0, 0, 0, 14, 2, 16, 2, 0, 0,
+        14, 2, 0, 66, 0, 0, 14, 2, 255, 0, 0, 0, 14, 4, 8, 0,
+        0, 0, 20, 2, 20, 2, 20, 2, 20, 2, 20, 4, 20, 4, 82, 32,
+        4, 73, 33, 32, 16, 73, 34, 32, 17, 73, 35, 32, 18, 93, 35, 35,
+        19, 90, 33, 33, 20, 90, 34, 34, 21, 90, 35, 35, 21, 195, 36, 22,
+        34, 195, 37, 33, 35, 124, 37, 37, 23, 123, 0, 36, 37, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_unpack_RGB15_le);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "video_orc_unpack_RGB15_le");
+      orc_program_set_backup_function (p, _backup_video_orc_unpack_RGB15_le);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 2, "s1");
+      orc_program_add_constant (p, 2, 0x00007c00, "c1");
+      orc_program_add_constant (p, 2, 0x000003e0, "c2");
+      orc_program_add_constant (p, 2, 0x0000001f, "c3");
+      orc_program_add_constant (p, 2, 0x00000005, "c4");
+      orc_program_add_constant (p, 2, 0x00000210, "c5");
+      orc_program_add_constant (p, 2, 0x00004200, "c6");
+      orc_program_add_constant (p, 2, 0x000000ff, "c7");
+      orc_program_add_constant (p, 4, 0x00000008, "c8");
+      orc_program_add_temporary (p, 2, "t1");
+      orc_program_add_temporary (p, 2, "t2");
+      orc_program_add_temporary (p, 2, "t3");
+      orc_program_add_temporary (p, 2, "t4");
+      orc_program_add_temporary (p, 4, "t5");
+      orc_program_add_temporary (p, 4, "t6");
+
+      orc_program_append_2 (p, "loadw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "andw", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_C1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "andw", 0, ORC_VAR_T3, ORC_VAR_T1, ORC_VAR_C2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "andw", 0, ORC_VAR_T4, ORC_VAR_T1, ORC_VAR_C3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shlw", 0, ORC_VAR_T4, ORC_VAR_T4, ORC_VAR_C4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C5,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_C6,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T4, ORC_VAR_T4, ORC_VAR_C6,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T5, ORC_VAR_C7, ORC_VAR_T3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T6, ORC_VAR_T2, ORC_VAR_T4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shll", 0, ORC_VAR_T6, ORC_VAR_T6, ORC_VAR_C8,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "orl", 0, ORC_VAR_D1, ORC_VAR_T5, ORC_VAR_T6,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_unpack_RGB15_be */
+#ifdef DISABLE_ORC
+void
+video_orc_unpack_RGB15_be (guint32 * ORC_RESTRICT d1,
+    const guint16 * ORC_RESTRICT s1, int n)
+{
+  int i;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var38;
+#else
+  orc_union16 var38;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var39;
+#else
+  orc_union16 var39;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var40;
+#else
+  orc_union16 var40;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var41;
+#else
+  orc_union16 var41;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var42;
+#else
+  orc_union16 var42;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var43;
+#else
+  orc_union16 var43;
+#endif
+  orc_union32 var44;
+  orc_union16 var45;
+  orc_union16 var46;
+  orc_union16 var47;
+  orc_union16 var48;
+  orc_union16 var49;
+  orc_union16 var50;
+  orc_union16 var51;
+  orc_union16 var52;
+  orc_union32 var53;
+  orc_union32 var54;
+  orc_union32 var55;
+
+  ptr0 = (orc_union32 *) d1;
+  ptr4 = (orc_union16 *) s1;
+
+  /* 1: loadpw */
+  var38.i = (int) 0x00007c00;   /* 31744 or 1.56836e-319f */
+  /* 3: loadpw */
+  var39.i = (int) 0x000003e0;   /* 992 or 4.90113e-321f */
+  /* 5: loadpw */
+  var40.i = (int) 0x0000001f;   /* 31 or 1.5316e-322f */
+  /* 8: loadpw */
+  var41.i = (int) 0x00000210;   /* 528 or 2.60867e-321f */
+  /* 10: loadpw */
+  var42.i = (int) 0x00004200;   /* 16896 or 8.34773e-320f */
+  /* 13: loadpw */
+  var43.i = (int) 0x000000ff;   /* 255 or 1.25987e-321f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadw */
+    var45 = ptr4[i];
+    /* 2: andw */
+    var46.i = var45.i & var38.i;
+    /* 4: andw */
+    var47.i = var45.i & var39.i;
+    /* 6: andw */
+    var48.i = var45.i & var40.i;
+    /* 7: shlw */
+    var49.i = ((orc_uint16) var48.i) << 5;
+    /* 9: mulhsw */
+    var50.i = (var46.i * var41.i) >> 16;
+    /* 11: mulhsw */
+    var51.i = (var47.i * var42.i) >> 16;
+    /* 12: mulhsw */
+    var52.i = (var49.i * var42.i) >> 16;
+    /* 14: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var43.i;
+      _dest.x2[1] = var51.i;
+      var53.i = _dest.i;
+    }
+    /* 15: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var50.i;
+      _dest.x2[1] = var52.i;
+      var54.i = _dest.i;
+    }
+    /* 16: shll */
+    var55.i = ((orc_uint32) var53.i) << 8;
+    /* 17: orl */
+    var44.i = var55.i | var54.i;
+    /* 18: storel */
+    ptr0[i] = var44;
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_unpack_RGB15_be (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var38;
+#else
+  orc_union16 var38;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var39;
+#else
+  orc_union16 var39;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var40;
+#else
+  orc_union16 var40;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var41;
+#else
+  orc_union16 var41;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var42;
+#else
+  orc_union16 var42;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var43;
+#else
+  orc_union16 var43;
+#endif
+  orc_union32 var44;
+  orc_union16 var45;
+  orc_union16 var46;
+  orc_union16 var47;
+  orc_union16 var48;
+  orc_union16 var49;
+  orc_union16 var50;
+  orc_union16 var51;
+  orc_union16 var52;
+  orc_union32 var53;
+  orc_union32 var54;
+  orc_union32 var55;
+
+  ptr0 = (orc_union32 *) ex->arrays[0];
+  ptr4 = (orc_union16 *) ex->arrays[4];
+
+  /* 1: loadpw */
+  var38.i = (int) 0x00007c00;   /* 31744 or 1.56836e-319f */
+  /* 3: loadpw */
+  var39.i = (int) 0x000003e0;   /* 992 or 4.90113e-321f */
+  /* 5: loadpw */
+  var40.i = (int) 0x0000001f;   /* 31 or 1.5316e-322f */
+  /* 8: loadpw */
+  var41.i = (int) 0x00000210;   /* 528 or 2.60867e-321f */
+  /* 10: loadpw */
+  var42.i = (int) 0x00004200;   /* 16896 or 8.34773e-320f */
+  /* 13: loadpw */
+  var43.i = (int) 0x000000ff;   /* 255 or 1.25987e-321f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadw */
+    var45 = ptr4[i];
+    /* 2: andw */
+    var46.i = var45.i & var38.i;
+    /* 4: andw */
+    var47.i = var45.i & var39.i;
+    /* 6: andw */
+    var48.i = var45.i & var40.i;
+    /* 7: shlw */
+    var49.i = ((orc_uint16) var48.i) << 5;
+    /* 9: mulhsw */
+    var50.i = (var46.i * var41.i) >> 16;
+    /* 11: mulhsw */
+    var51.i = (var47.i * var42.i) >> 16;
+    /* 12: mulhsw */
+    var52.i = (var49.i * var42.i) >> 16;
+    /* 14: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var43.i;
+      _dest.x2[1] = var51.i;
+      var53.i = _dest.i;
+    }
+    /* 15: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var50.i;
+      _dest.x2[1] = var52.i;
+      var54.i = _dest.i;
+    }
+    /* 16: shll */
+    var55.i = ((orc_uint32) var53.i) << 8;
+    /* 17: orl */
+    var44.i = var55.i | var54.i;
+    /* 18: storel */
+    ptr0[i] = var44;
+  }
+
+}
+
+void
+video_orc_unpack_RGB15_be (guint32 * ORC_RESTRICT d1,
+    const guint16 * ORC_RESTRICT s1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 25, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 117, 110, 112,
+        97, 99, 107, 95, 82, 71, 66, 49, 53, 95, 98, 101, 11, 4, 4, 12,
+        2, 2, 14, 2, 0, 124, 0, 0, 14, 2, 224, 3, 0, 0, 14, 2,
+        31, 0, 0, 0, 14, 2, 5, 0, 0, 0, 14, 2, 16, 2, 0, 0,
+        14, 2, 0, 66, 0, 0, 14, 2, 255, 0, 0, 0, 14, 4, 8, 0,
+        0, 0, 20, 2, 20, 2, 20, 2, 20, 2, 20, 4, 20, 4, 82, 32,
+        4, 73, 33, 32, 16, 73, 34, 32, 17, 73, 35, 32, 18, 93, 35, 35,
+        19, 90, 33, 33, 20, 90, 34, 34, 21, 90, 35, 35, 21, 195, 36, 22,
+        34, 195, 37, 33, 35, 124, 36, 36, 23, 123, 0, 36, 37, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_unpack_RGB15_be);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "video_orc_unpack_RGB15_be");
+      orc_program_set_backup_function (p, _backup_video_orc_unpack_RGB15_be);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 2, "s1");
+      orc_program_add_constant (p, 2, 0x00007c00, "c1");
+      orc_program_add_constant (p, 2, 0x000003e0, "c2");
+      orc_program_add_constant (p, 2, 0x0000001f, "c3");
+      orc_program_add_constant (p, 2, 0x00000005, "c4");
+      orc_program_add_constant (p, 2, 0x00000210, "c5");
+      orc_program_add_constant (p, 2, 0x00004200, "c6");
+      orc_program_add_constant (p, 2, 0x000000ff, "c7");
+      orc_program_add_constant (p, 4, 0x00000008, "c8");
+      orc_program_add_temporary (p, 2, "t1");
+      orc_program_add_temporary (p, 2, "t2");
+      orc_program_add_temporary (p, 2, "t3");
+      orc_program_add_temporary (p, 2, "t4");
+      orc_program_add_temporary (p, 4, "t5");
+      orc_program_add_temporary (p, 4, "t6");
+
+      orc_program_append_2 (p, "loadw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "andw", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_C1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "andw", 0, ORC_VAR_T3, ORC_VAR_T1, ORC_VAR_C2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "andw", 0, ORC_VAR_T4, ORC_VAR_T1, ORC_VAR_C3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shlw", 0, ORC_VAR_T4, ORC_VAR_T4, ORC_VAR_C4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C5,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_C6,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T4, ORC_VAR_T4, ORC_VAR_C6,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T5, ORC_VAR_C7, ORC_VAR_T3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T6, ORC_VAR_T2, ORC_VAR_T4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shll", 0, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_C8,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "orl", 0, ORC_VAR_D1, ORC_VAR_T5, ORC_VAR_T6,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_unpack_RGB15_le_trunc */
+#ifdef DISABLE_ORC
+void
+video_orc_unpack_RGB15_le_trunc (guint32 * ORC_RESTRICT d1,
+    const guint16 * ORC_RESTRICT s1, int n)
+{
+  int i;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var38;
+#else
+  orc_union16 var38;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var39;
+#else
+  orc_union16 var39;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var40;
+#else
+  orc_union16 var40;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var41;
+#else
+  orc_union16 var41;
+#endif
+  orc_union32 var42;
+  orc_union16 var43;
+  orc_union16 var44;
+  orc_union16 var45;
+  orc_union16 var46;
+  orc_union16 var47;
+  orc_union16 var48;
+  orc_union16 var49;
+  orc_union32 var50;
+  orc_union32 var51;
+  orc_union32 var52;
+
+  ptr0 = (orc_union32 *) d1;
+  ptr4 = (orc_union16 *) s1;
+
+  /* 1: loadpw */
+  var38.i = (int) 0x00007c00;   /* 31744 or 1.56836e-319f */
+  /* 3: loadpw */
+  var39.i = (int) 0x000003e0;   /* 992 or 4.90113e-321f */
+  /* 5: loadpw */
+  var40.i = (int) 0x0000001f;   /* 31 or 1.5316e-322f */
+  /* 10: loadpw */
+  var41.i = (int) 0x000000ff;   /* 255 or 1.25987e-321f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadw */
+    var43 = ptr4[i];
+    /* 2: andw */
+    var44.i = var43.i & var38.i;
+    /* 4: andw */
+    var45.i = var43.i & var39.i;
+    /* 6: andw */
+    var46.i = var43.i & var40.i;
+    /* 7: shruw */
+    var47.i = ((orc_uint16) var44.i) >> 7;
+    /* 8: shruw */
+    var48.i = ((orc_uint16) var45.i) >> 2;
+    /* 9: shlw */
+    var49.i = ((orc_uint16) var46.i) << 3;
+    /* 11: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var41.i;
+      _dest.x2[1] = var48.i;
+      var50.i = _dest.i;
+    }
+    /* 12: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var47.i;
+      _dest.x2[1] = var49.i;
+      var51.i = _dest.i;
+    }
+    /* 13: shll */
+    var52.i = ((orc_uint32) var51.i) << 8;
+    /* 14: orl */
+    var42.i = var50.i | var52.i;
+    /* 15: storel */
+    ptr0[i] = var42;
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_unpack_RGB15_le_trunc (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var38;
+#else
+  orc_union16 var38;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var39;
+#else
+  orc_union16 var39;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var40;
+#else
+  orc_union16 var40;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var41;
+#else
+  orc_union16 var41;
+#endif
+  orc_union32 var42;
+  orc_union16 var43;
+  orc_union16 var44;
+  orc_union16 var45;
+  orc_union16 var46;
+  orc_union16 var47;
+  orc_union16 var48;
+  orc_union16 var49;
+  orc_union32 var50;
+  orc_union32 var51;
+  orc_union32 var52;
+
+  ptr0 = (orc_union32 *) ex->arrays[0];
+  ptr4 = (orc_union16 *) ex->arrays[4];
+
+  /* 1: loadpw */
+  var38.i = (int) 0x00007c00;   /* 31744 or 1.56836e-319f */
+  /* 3: loadpw */
+  var39.i = (int) 0x000003e0;   /* 992 or 4.90113e-321f */
+  /* 5: loadpw */
+  var40.i = (int) 0x0000001f;   /* 31 or 1.5316e-322f */
+  /* 10: loadpw */
+  var41.i = (int) 0x000000ff;   /* 255 or 1.25987e-321f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadw */
+    var43 = ptr4[i];
+    /* 2: andw */
+    var44.i = var43.i & var38.i;
+    /* 4: andw */
+    var45.i = var43.i & var39.i;
+    /* 6: andw */
+    var46.i = var43.i & var40.i;
+    /* 7: shruw */
+    var47.i = ((orc_uint16) var44.i) >> 7;
+    /* 8: shruw */
+    var48.i = ((orc_uint16) var45.i) >> 2;
+    /* 9: shlw */
+    var49.i = ((orc_uint16) var46.i) << 3;
+    /* 11: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var41.i;
+      _dest.x2[1] = var48.i;
+      var50.i = _dest.i;
+    }
+    /* 12: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var47.i;
+      _dest.x2[1] = var49.i;
+      var51.i = _dest.i;
+    }
+    /* 13: shll */
+    var52.i = ((orc_uint32) var51.i) << 8;
+    /* 14: orl */
+    var42.i = var50.i | var52.i;
+    /* 15: storel */
+    ptr0[i] = var42;
+  }
+
+}
+
+void
+video_orc_unpack_RGB15_le_trunc (guint32 * ORC_RESTRICT d1,
+    const guint16 * ORC_RESTRICT s1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 31, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 117, 110, 112,
+        97, 99, 107, 95, 82, 71, 66, 49, 53, 95, 108, 101, 95, 116, 114, 117,
+        110, 99, 11, 4, 4, 12, 2, 2, 14, 2, 0, 124, 0, 0, 14, 2,
+        224, 3, 0, 0, 14, 2, 31, 0, 0, 0, 14, 2, 7, 0, 0, 0,
+        14, 2, 2, 0, 0, 0, 14, 2, 3, 0, 0, 0, 14, 2, 255, 0,
+        0, 0, 14, 4, 8, 0, 0, 0, 20, 2, 20, 2, 20, 2, 20, 2,
+        20, 4, 20, 4, 82, 32, 4, 73, 33, 32, 16, 73, 34, 32, 17, 73,
+        35, 32, 18, 95, 33, 33, 19, 95, 34, 34, 20, 93, 35, 35, 21, 195,
+        36, 22, 34, 195, 37, 33, 35, 124, 37, 37, 23, 123, 0, 36, 37, 2,
+        0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_orc_unpack_RGB15_le_trunc);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "video_orc_unpack_RGB15_le_trunc");
+      orc_program_set_backup_function (p,
+          _backup_video_orc_unpack_RGB15_le_trunc);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 2, "s1");
+      orc_program_add_constant (p, 2, 0x00007c00, "c1");
+      orc_program_add_constant (p, 2, 0x000003e0, "c2");
+      orc_program_add_constant (p, 2, 0x0000001f, "c3");
+      orc_program_add_constant (p, 2, 0x00000007, "c4");
+      orc_program_add_constant (p, 2, 0x00000002, "c5");
+      orc_program_add_constant (p, 2, 0x00000003, "c6");
+      orc_program_add_constant (p, 2, 0x000000ff, "c7");
+      orc_program_add_constant (p, 4, 0x00000008, "c8");
+      orc_program_add_temporary (p, 2, "t1");
+      orc_program_add_temporary (p, 2, "t2");
+      orc_program_add_temporary (p, 2, "t3");
+      orc_program_add_temporary (p, 2, "t4");
+      orc_program_add_temporary (p, 4, "t5");
+      orc_program_add_temporary (p, 4, "t6");
+
+      orc_program_append_2 (p, "loadw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "andw", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_C1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "andw", 0, ORC_VAR_T3, ORC_VAR_T1, ORC_VAR_C2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "andw", 0, ORC_VAR_T4, ORC_VAR_T1, ORC_VAR_C3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shruw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shruw", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_C5,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shlw", 0, ORC_VAR_T4, ORC_VAR_T4, ORC_VAR_C6,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T5, ORC_VAR_C7, ORC_VAR_T3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T6, ORC_VAR_T2, ORC_VAR_T4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shll", 0, ORC_VAR_T6, ORC_VAR_T6, ORC_VAR_C8,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "orl", 0, ORC_VAR_D1, ORC_VAR_T5, ORC_VAR_T6,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_unpack_RGB15_be_trunc */
+#ifdef DISABLE_ORC
+void
+video_orc_unpack_RGB15_be_trunc (guint32 * ORC_RESTRICT d1,
+    const guint16 * ORC_RESTRICT s1, int n)
+{
+  int i;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var38;
+#else
+  orc_union16 var38;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var39;
+#else
+  orc_union16 var39;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var40;
+#else
+  orc_union16 var40;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var41;
+#else
+  orc_union16 var41;
+#endif
+  orc_union32 var42;
+  orc_union16 var43;
+  orc_union16 var44;
+  orc_union16 var45;
+  orc_union16 var46;
+  orc_union16 var47;
+  orc_union16 var48;
+  orc_union16 var49;
+  orc_union32 var50;
+  orc_union32 var51;
+  orc_union32 var52;
+
+  ptr0 = (orc_union32 *) d1;
+  ptr4 = (orc_union16 *) s1;
+
+  /* 1: loadpw */
+  var38.i = (int) 0x00007c00;   /* 31744 or 1.56836e-319f */
+  /* 3: loadpw */
+  var39.i = (int) 0x000003e0;   /* 992 or 4.90113e-321f */
+  /* 5: loadpw */
+  var40.i = (int) 0x0000001f;   /* 31 or 1.5316e-322f */
+  /* 10: loadpw */
+  var41.i = (int) 0x000000ff;   /* 255 or 1.25987e-321f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadw */
+    var43 = ptr4[i];
+    /* 2: andw */
+    var44.i = var43.i & var38.i;
+    /* 4: andw */
+    var45.i = var43.i & var39.i;
+    /* 6: andw */
+    var46.i = var43.i & var40.i;
+    /* 7: shruw */
+    var47.i = ((orc_uint16) var44.i) >> 7;
+    /* 8: shruw */
+    var48.i = ((orc_uint16) var45.i) >> 2;
+    /* 9: shlw */
+    var49.i = ((orc_uint16) var46.i) << 3;
+    /* 11: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var41.i;
+      _dest.x2[1] = var48.i;
+      var50.i = _dest.i;
+    }
+    /* 12: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var47.i;
+      _dest.x2[1] = var49.i;
+      var51.i = _dest.i;
+    }
+    /* 13: shll */
+    var52.i = ((orc_uint32) var50.i) << 8;
+    /* 14: orl */
+    var42.i = var52.i | var51.i;
+    /* 15: storel */
+    ptr0[i] = var42;
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_unpack_RGB15_be_trunc (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var38;
+#else
+  orc_union16 var38;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var39;
+#else
+  orc_union16 var39;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var40;
+#else
+  orc_union16 var40;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var41;
+#else
+  orc_union16 var41;
+#endif
+  orc_union32 var42;
+  orc_union16 var43;
+  orc_union16 var44;
+  orc_union16 var45;
+  orc_union16 var46;
+  orc_union16 var47;
+  orc_union16 var48;
+  orc_union16 var49;
+  orc_union32 var50;
+  orc_union32 var51;
+  orc_union32 var52;
+
+  ptr0 = (orc_union32 *) ex->arrays[0];
+  ptr4 = (orc_union16 *) ex->arrays[4];
+
+  /* 1: loadpw */
+  var38.i = (int) 0x00007c00;   /* 31744 or 1.56836e-319f */
+  /* 3: loadpw */
+  var39.i = (int) 0x000003e0;   /* 992 or 4.90113e-321f */
+  /* 5: loadpw */
+  var40.i = (int) 0x0000001f;   /* 31 or 1.5316e-322f */
+  /* 10: loadpw */
+  var41.i = (int) 0x000000ff;   /* 255 or 1.25987e-321f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadw */
+    var43 = ptr4[i];
+    /* 2: andw */
+    var44.i = var43.i & var38.i;
+    /* 4: andw */
+    var45.i = var43.i & var39.i;
+    /* 6: andw */
+    var46.i = var43.i & var40.i;
+    /* 7: shruw */
+    var47.i = ((orc_uint16) var44.i) >> 7;
+    /* 8: shruw */
+    var48.i = ((orc_uint16) var45.i) >> 2;
+    /* 9: shlw */
+    var49.i = ((orc_uint16) var46.i) << 3;
+    /* 11: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var41.i;
+      _dest.x2[1] = var48.i;
+      var50.i = _dest.i;
+    }
+    /* 12: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var47.i;
+      _dest.x2[1] = var49.i;
+      var51.i = _dest.i;
+    }
+    /* 13: shll */
+    var52.i = ((orc_uint32) var50.i) << 8;
+    /* 14: orl */
+    var42.i = var52.i | var51.i;
+    /* 15: storel */
+    ptr0[i] = var42;
+  }
+
+}
+
+void
+video_orc_unpack_RGB15_be_trunc (guint32 * ORC_RESTRICT d1,
+    const guint16 * ORC_RESTRICT s1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 31, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 117, 110, 112,
+        97, 99, 107, 95, 82, 71, 66, 49, 53, 95, 98, 101, 95, 116, 114, 117,
+        110, 99, 11, 4, 4, 12, 2, 2, 14, 2, 0, 124, 0, 0, 14, 2,
+        224, 3, 0, 0, 14, 2, 31, 0, 0, 0, 14, 2, 7, 0, 0, 0,
+        14, 2, 2, 0, 0, 0, 14, 2, 3, 0, 0, 0, 14, 2, 255, 0,
+        0, 0, 14, 4, 8, 0, 0, 0, 20, 2, 20, 2, 20, 2, 20, 2,
+        20, 4, 20, 4, 82, 32, 4, 73, 33, 32, 16, 73, 34, 32, 17, 73,
+        35, 32, 18, 95, 33, 33, 19, 95, 34, 34, 20, 93, 35, 35, 21, 195,
+        36, 22, 34, 195, 37, 33, 35, 124, 36, 36, 23, 123, 0, 36, 37, 2,
+        0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_orc_unpack_RGB15_be_trunc);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "video_orc_unpack_RGB15_be_trunc");
+      orc_program_set_backup_function (p,
+          _backup_video_orc_unpack_RGB15_be_trunc);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 2, "s1");
+      orc_program_add_constant (p, 2, 0x00007c00, "c1");
+      orc_program_add_constant (p, 2, 0x000003e0, "c2");
+      orc_program_add_constant (p, 2, 0x0000001f, "c3");
+      orc_program_add_constant (p, 2, 0x00000007, "c4");
+      orc_program_add_constant (p, 2, 0x00000002, "c5");
+      orc_program_add_constant (p, 2, 0x00000003, "c6");
+      orc_program_add_constant (p, 2, 0x000000ff, "c7");
+      orc_program_add_constant (p, 4, 0x00000008, "c8");
+      orc_program_add_temporary (p, 2, "t1");
+      orc_program_add_temporary (p, 2, "t2");
+      orc_program_add_temporary (p, 2, "t3");
+      orc_program_add_temporary (p, 2, "t4");
+      orc_program_add_temporary (p, 4, "t5");
+      orc_program_add_temporary (p, 4, "t6");
+
+      orc_program_append_2 (p, "loadw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "andw", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_C1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "andw", 0, ORC_VAR_T3, ORC_VAR_T1, ORC_VAR_C2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "andw", 0, ORC_VAR_T4, ORC_VAR_T1, ORC_VAR_C3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shruw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shruw", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_C5,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shlw", 0, ORC_VAR_T4, ORC_VAR_T4, ORC_VAR_C6,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T5, ORC_VAR_C7, ORC_VAR_T3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T6, ORC_VAR_T2, ORC_VAR_T4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shll", 0, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_C8,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "orl", 0, ORC_VAR_D1, ORC_VAR_T5, ORC_VAR_T6,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_pack_RGB15_le */
+#ifdef DISABLE_ORC
+void
+video_orc_pack_RGB15_le (guint16 * ORC_RESTRICT d1,
+    const guint32 * ORC_RESTRICT s1, int n)
+{
+  int i;
+  orc_union16 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var37;
+#else
+  orc_union32 var37;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var38;
+#else
+  orc_union32 var38;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var39;
+#else
+  orc_union32 var39;
+#endif
+  orc_union16 var40;
+  orc_union32 var41;
+  orc_union32 var42;
+  orc_union32 var43;
+  orc_union32 var44;
+  orc_union32 var45;
+  orc_union32 var46;
+  orc_union32 var47;
+  orc_union32 var48;
+  orc_union32 var49;
+
+  ptr0 = (orc_union16 *) d1;
+  ptr4 = (orc_union32 *) s1;
+
+  /* 1: loadpl */
+  var37.i = (int) 0x0000f800;   /* 63488 or 3.13672e-319f */
+  /* 3: loadpl */
+  var38.i = (int) 0x00f80000;   /* 16252928 or 8.03001e-317f */
+  /* 5: loadpl */
+  var39.i = (int) 0xf8000000;   /* -134217728 or 2.05568e-314f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var41 = ptr4[i];
+    /* 2: andl */
+    var42.i = var41.i & var37.i;
+    /* 4: andl */
+    var43.i = var41.i & var38.i;
+    /* 6: andl */
+    var44.i = var41.i & var39.i;
+    /* 7: shrul */
+    var45.i = ((orc_uint32) var42.i) >> 1;
+    /* 8: shrul */
+    var46.i = ((orc_uint32) var43.i) >> 14;
+    /* 9: shrul */
+    var47.i = ((orc_uint32) var44.i) >> 27;
+    /* 10: orl */
+    var48.i = var45.i | var46.i;
+    /* 11: orl */
+    var49.i = var48.i | var47.i;
+    /* 12: select0lw */
+    {
+      orc_union32 _src;
+      _src.i = var49.i;
+      var40.i = _src.x2[0];
+    }
+    /* 13: storew */
+    ptr0[i] = var40;
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_pack_RGB15_le (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union16 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var37;
+#else
+  orc_union32 var37;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var38;
+#else
+  orc_union32 var38;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var39;
+#else
+  orc_union32 var39;
+#endif
+  orc_union16 var40;
+  orc_union32 var41;
+  orc_union32 var42;
+  orc_union32 var43;
+  orc_union32 var44;
+  orc_union32 var45;
+  orc_union32 var46;
+  orc_union32 var47;
+  orc_union32 var48;
+  orc_union32 var49;
+
+  ptr0 = (orc_union16 *) ex->arrays[0];
+  ptr4 = (orc_union32 *) ex->arrays[4];
+
+  /* 1: loadpl */
+  var37.i = (int) 0x0000f800;   /* 63488 or 3.13672e-319f */
+  /* 3: loadpl */
+  var38.i = (int) 0x00f80000;   /* 16252928 or 8.03001e-317f */
+  /* 5: loadpl */
+  var39.i = (int) 0xf8000000;   /* -134217728 or 2.05568e-314f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var41 = ptr4[i];
+    /* 2: andl */
+    var42.i = var41.i & var37.i;
+    /* 4: andl */
+    var43.i = var41.i & var38.i;
+    /* 6: andl */
+    var44.i = var41.i & var39.i;
+    /* 7: shrul */
+    var45.i = ((orc_uint32) var42.i) >> 1;
+    /* 8: shrul */
+    var46.i = ((orc_uint32) var43.i) >> 14;
+    /* 9: shrul */
+    var47.i = ((orc_uint32) var44.i) >> 27;
+    /* 10: orl */
+    var48.i = var45.i | var46.i;
+    /* 11: orl */
+    var49.i = var48.i | var47.i;
+    /* 12: select0lw */
+    {
+      orc_union32 _src;
+      _src.i = var49.i;
+      var40.i = _src.x2[0];
+    }
+    /* 13: storew */
+    ptr0[i] = var40;
+  }
+
+}
+
+void
+video_orc_pack_RGB15_le (guint16 * ORC_RESTRICT d1,
+    const guint32 * ORC_RESTRICT s1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 23, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 112, 97, 99,
+        107, 95, 82, 71, 66, 49, 53, 95, 108, 101, 11, 2, 2, 12, 4, 4,
+        14, 4, 0, 248, 0, 0, 14, 4, 0, 0, 248, 0, 14, 4, 0, 0,
+        0, 248, 14, 4, 1, 0, 0, 0, 14, 4, 14, 0, 0, 0, 14, 4,
+        27, 0, 0, 0, 20, 4, 20, 4, 20, 4, 20, 4, 20, 4, 113, 32,
+        4, 106, 33, 32, 16, 106, 34, 32, 17, 106, 35, 32, 18, 126, 33, 33,
+        19, 126, 34, 34, 20, 126, 35, 35, 21, 123, 36, 33, 34, 123, 36, 36,
+        35, 190, 0, 36, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_pack_RGB15_le);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "video_orc_pack_RGB15_le");
+      orc_program_set_backup_function (p, _backup_video_orc_pack_RGB15_le);
+      orc_program_add_destination (p, 2, "d1");
+      orc_program_add_source (p, 4, "s1");
+      orc_program_add_constant (p, 4, 0x0000f800, "c1");
+      orc_program_add_constant (p, 4, 0x00f80000, "c2");
+      orc_program_add_constant (p, 4, 0xf8000000, "c3");
+      orc_program_add_constant (p, 4, 0x00000001, "c4");
+      orc_program_add_constant (p, 4, 0x0000000e, "c5");
+      orc_program_add_constant (p, 4, 0x0000001b, "c6");
+      orc_program_add_temporary (p, 4, "t1");
+      orc_program_add_temporary (p, 4, "t2");
+      orc_program_add_temporary (p, 4, "t3");
+      orc_program_add_temporary (p, 4, "t4");
+      orc_program_add_temporary (p, 4, "t5");
+
+      orc_program_append_2 (p, "loadl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "andl", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_C1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "andl", 0, ORC_VAR_T3, ORC_VAR_T1, ORC_VAR_C2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "andl", 0, ORC_VAR_T4, ORC_VAR_T1, ORC_VAR_C3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shrul", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shrul", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_C5,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shrul", 0, ORC_VAR_T4, ORC_VAR_T4, ORC_VAR_C6,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "orl", 0, ORC_VAR_T5, ORC_VAR_T2, ORC_VAR_T3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "orl", 0, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_T4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "select0lw", 0, ORC_VAR_D1, ORC_VAR_T5,
+          ORC_VAR_D1, ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_pack_RGB15_be */
+#ifdef DISABLE_ORC
+void
+video_orc_pack_RGB15_be (guint16 * ORC_RESTRICT d1,
+    const guint32 * ORC_RESTRICT s1, int n)
+{
+  int i;
+  orc_union16 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var37;
+#else
+  orc_union32 var37;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var38;
+#else
+  orc_union32 var38;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var39;
+#else
+  orc_union32 var39;
+#endif
+  orc_union16 var40;
+  orc_union32 var41;
+  orc_union32 var42;
+  orc_union32 var43;
+  orc_union32 var44;
+  orc_union32 var45;
+  orc_union32 var46;
+  orc_union32 var47;
+  orc_union32 var48;
+  orc_union32 var49;
+
+  ptr0 = (orc_union16 *) d1;
+  ptr4 = (orc_union32 *) s1;
+
+  /* 1: loadpl */
+  var37.i = (int) 0x00f80000;   /* 16252928 or 8.03001e-317f */
+  /* 3: loadpl */
+  var38.i = (int) 0x0000f800;   /* 63488 or 3.13672e-319f */
+  /* 5: loadpl */
+  var39.i = (int) 0x000000f8;   /* 248 or 1.22528e-321f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var41 = ptr4[i];
+    /* 2: andl */
+    var42.i = var41.i & var37.i;
+    /* 4: andl */
+    var43.i = var41.i & var38.i;
+    /* 6: andl */
+    var44.i = var41.i & var39.i;
+    /* 7: shrul */
+    var45.i = ((orc_uint32) var42.i) >> 9;
+    /* 8: shrul */
+    var46.i = ((orc_uint32) var43.i) >> 6;
+    /* 9: shrul */
+    var47.i = ((orc_uint32) var44.i) >> 3;
+    /* 10: orl */
+    var48.i = var45.i | var46.i;
+    /* 11: orl */
+    var49.i = var48.i | var47.i;
+    /* 12: select1lw */
+    {
+      orc_union32 _src;
+      _src.i = var49.i;
+      var40.i = _src.x2[1];
+    }
+    /* 13: storew */
+    ptr0[i] = var40;
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_pack_RGB15_be (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union16 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var37;
+#else
+  orc_union32 var37;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var38;
+#else
+  orc_union32 var38;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var39;
+#else
+  orc_union32 var39;
+#endif
+  orc_union16 var40;
+  orc_union32 var41;
+  orc_union32 var42;
+  orc_union32 var43;
+  orc_union32 var44;
+  orc_union32 var45;
+  orc_union32 var46;
+  orc_union32 var47;
+  orc_union32 var48;
+  orc_union32 var49;
+
+  ptr0 = (orc_union16 *) ex->arrays[0];
+  ptr4 = (orc_union32 *) ex->arrays[4];
+
+  /* 1: loadpl */
+  var37.i = (int) 0x00f80000;   /* 16252928 or 8.03001e-317f */
+  /* 3: loadpl */
+  var38.i = (int) 0x0000f800;   /* 63488 or 3.13672e-319f */
+  /* 5: loadpl */
+  var39.i = (int) 0x000000f8;   /* 248 or 1.22528e-321f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var41 = ptr4[i];
+    /* 2: andl */
+    var42.i = var41.i & var37.i;
+    /* 4: andl */
+    var43.i = var41.i & var38.i;
+    /* 6: andl */
+    var44.i = var41.i & var39.i;
+    /* 7: shrul */
+    var45.i = ((orc_uint32) var42.i) >> 9;
+    /* 8: shrul */
+    var46.i = ((orc_uint32) var43.i) >> 6;
+    /* 9: shrul */
+    var47.i = ((orc_uint32) var44.i) >> 3;
+    /* 10: orl */
+    var48.i = var45.i | var46.i;
+    /* 11: orl */
+    var49.i = var48.i | var47.i;
+    /* 12: select1lw */
+    {
+      orc_union32 _src;
+      _src.i = var49.i;
+      var40.i = _src.x2[1];
+    }
+    /* 13: storew */
+    ptr0[i] = var40;
+  }
+
+}
+
+void
+video_orc_pack_RGB15_be (guint16 * ORC_RESTRICT d1,
+    const guint32 * ORC_RESTRICT s1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 23, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 112, 97, 99,
+        107, 95, 82, 71, 66, 49, 53, 95, 98, 101, 11, 2, 2, 12, 4, 4,
+        14, 4, 0, 0, 248, 0, 14, 4, 0, 248, 0, 0, 14, 4, 248, 0,
+        0, 0, 14, 4, 9, 0, 0, 0, 14, 4, 6, 0, 0, 0, 14, 4,
+        3, 0, 0, 0, 20, 4, 20, 4, 20, 4, 20, 4, 20, 4, 113, 32,
+        4, 106, 33, 32, 16, 106, 34, 32, 17, 106, 35, 32, 18, 126, 33, 33,
+        19, 126, 34, 34, 20, 126, 35, 35, 21, 123, 36, 33, 34, 123, 36, 36,
+        35, 191, 0, 36, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_pack_RGB15_be);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "video_orc_pack_RGB15_be");
+      orc_program_set_backup_function (p, _backup_video_orc_pack_RGB15_be);
+      orc_program_add_destination (p, 2, "d1");
+      orc_program_add_source (p, 4, "s1");
+      orc_program_add_constant (p, 4, 0x00f80000, "c1");
+      orc_program_add_constant (p, 4, 0x0000f800, "c2");
+      orc_program_add_constant (p, 4, 0x000000f8, "c3");
+      orc_program_add_constant (p, 4, 0x00000009, "c4");
+      orc_program_add_constant (p, 4, 0x00000006, "c5");
+      orc_program_add_constant (p, 4, 0x00000003, "c6");
+      orc_program_add_temporary (p, 4, "t1");
+      orc_program_add_temporary (p, 4, "t2");
+      orc_program_add_temporary (p, 4, "t3");
+      orc_program_add_temporary (p, 4, "t4");
+      orc_program_add_temporary (p, 4, "t5");
+
+      orc_program_append_2 (p, "loadl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "andl", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_C1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "andl", 0, ORC_VAR_T3, ORC_VAR_T1, ORC_VAR_C2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "andl", 0, ORC_VAR_T4, ORC_VAR_T1, ORC_VAR_C3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shrul", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shrul", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_C5,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shrul", 0, ORC_VAR_T4, ORC_VAR_T4, ORC_VAR_C6,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "orl", 0, ORC_VAR_T5, ORC_VAR_T2, ORC_VAR_T3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "orl", 0, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_T4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "select1lw", 0, ORC_VAR_D1, ORC_VAR_T5,
+          ORC_VAR_D1, ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_unpack_BGR15_le */
+#ifdef DISABLE_ORC
+void
+video_orc_unpack_BGR15_le (guint32 * ORC_RESTRICT d1,
+    const guint16 * ORC_RESTRICT s1, int n)
+{
+  int i;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var38;
+#else
+  orc_union16 var38;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var39;
+#else
+  orc_union16 var39;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var40;
+#else
+  orc_union16 var40;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var41;
+#else
+  orc_union16 var41;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var42;
+#else
+  orc_union16 var42;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var43;
+#else
+  orc_union16 var43;
+#endif
+  orc_union32 var44;
+  orc_union16 var45;
+  orc_union16 var46;
+  orc_union16 var47;
+  orc_union16 var48;
+  orc_union16 var49;
+  orc_union16 var50;
+  orc_union16 var51;
+  orc_union16 var52;
+  orc_union32 var53;
+  orc_union32 var54;
+  orc_union32 var55;
+
+  ptr0 = (orc_union32 *) d1;
+  ptr4 = (orc_union16 *) s1;
+
+  /* 1: loadpw */
+  var38.i = (int) 0x00007c00;   /* 31744 or 1.56836e-319f */
+  /* 3: loadpw */
+  var39.i = (int) 0x000003e0;   /* 992 or 4.90113e-321f */
+  /* 5: loadpw */
+  var40.i = (int) 0x0000001f;   /* 31 or 1.5316e-322f */
+  /* 8: loadpw */
+  var41.i = (int) 0x00000210;   /* 528 or 2.60867e-321f */
+  /* 10: loadpw */
+  var42.i = (int) 0x00004200;   /* 16896 or 8.34773e-320f */
+  /* 13: loadpw */
+  var43.i = (int) 0x000000ff;   /* 255 or 1.25987e-321f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadw */
+    var45 = ptr4[i];
+    /* 2: andw */
+    var46.i = var45.i & var38.i;
+    /* 4: andw */
+    var47.i = var45.i & var39.i;
+    /* 6: andw */
+    var48.i = var45.i & var40.i;
+    /* 7: shlw */
+    var49.i = ((orc_uint16) var48.i) << 5;
+    /* 9: mulhsw */
+    var50.i = (var46.i * var41.i) >> 16;
+    /* 11: mulhsw */
+    var51.i = (var47.i * var42.i) >> 16;
+    /* 12: mulhsw */
+    var52.i = (var49.i * var42.i) >> 16;
+    /* 14: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var43.i;
+      _dest.x2[1] = var51.i;
+      var53.i = _dest.i;
+    }
+    /* 15: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var52.i;
+      _dest.x2[1] = var50.i;
+      var54.i = _dest.i;
+    }
+    /* 16: shll */
+    var55.i = ((orc_uint32) var54.i) << 8;
+    /* 17: orl */
+    var44.i = var53.i | var55.i;
+    /* 18: storel */
+    ptr0[i] = var44;
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_unpack_BGR15_le (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var38;
+#else
+  orc_union16 var38;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var39;
+#else
+  orc_union16 var39;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var40;
+#else
+  orc_union16 var40;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var41;
+#else
+  orc_union16 var41;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var42;
+#else
+  orc_union16 var42;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var43;
+#else
+  orc_union16 var43;
+#endif
+  orc_union32 var44;
+  orc_union16 var45;
+  orc_union16 var46;
+  orc_union16 var47;
+  orc_union16 var48;
+  orc_union16 var49;
+  orc_union16 var50;
+  orc_union16 var51;
+  orc_union16 var52;
+  orc_union32 var53;
+  orc_union32 var54;
+  orc_union32 var55;
+
+  ptr0 = (orc_union32 *) ex->arrays[0];
+  ptr4 = (orc_union16 *) ex->arrays[4];
+
+  /* 1: loadpw */
+  var38.i = (int) 0x00007c00;   /* 31744 or 1.56836e-319f */
+  /* 3: loadpw */
+  var39.i = (int) 0x000003e0;   /* 992 or 4.90113e-321f */
+  /* 5: loadpw */
+  var40.i = (int) 0x0000001f;   /* 31 or 1.5316e-322f */
+  /* 8: loadpw */
+  var41.i = (int) 0x00000210;   /* 528 or 2.60867e-321f */
+  /* 10: loadpw */
+  var42.i = (int) 0x00004200;   /* 16896 or 8.34773e-320f */
+  /* 13: loadpw */
+  var43.i = (int) 0x000000ff;   /* 255 or 1.25987e-321f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadw */
+    var45 = ptr4[i];
+    /* 2: andw */
+    var46.i = var45.i & var38.i;
+    /* 4: andw */
+    var47.i = var45.i & var39.i;
+    /* 6: andw */
+    var48.i = var45.i & var40.i;
+    /* 7: shlw */
+    var49.i = ((orc_uint16) var48.i) << 5;
+    /* 9: mulhsw */
+    var50.i = (var46.i * var41.i) >> 16;
+    /* 11: mulhsw */
+    var51.i = (var47.i * var42.i) >> 16;
+    /* 12: mulhsw */
+    var52.i = (var49.i * var42.i) >> 16;
+    /* 14: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var43.i;
+      _dest.x2[1] = var51.i;
+      var53.i = _dest.i;
+    }
+    /* 15: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var52.i;
+      _dest.x2[1] = var50.i;
+      var54.i = _dest.i;
+    }
+    /* 16: shll */
+    var55.i = ((orc_uint32) var54.i) << 8;
+    /* 17: orl */
+    var44.i = var53.i | var55.i;
+    /* 18: storel */
+    ptr0[i] = var44;
+  }
+
+}
+
+void
+video_orc_unpack_BGR15_le (guint32 * ORC_RESTRICT d1,
+    const guint16 * ORC_RESTRICT s1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 25, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 117, 110, 112,
+        97, 99, 107, 95, 66, 71, 82, 49, 53, 95, 108, 101, 11, 4, 4, 12,
+        2, 2, 14, 2, 0, 124, 0, 0, 14, 2, 224, 3, 0, 0, 14, 2,
+        31, 0, 0, 0, 14, 2, 5, 0, 0, 0, 14, 2, 16, 2, 0, 0,
+        14, 2, 0, 66, 0, 0, 14, 2, 255, 0, 0, 0, 14, 4, 8, 0,
+        0, 0, 20, 2, 20, 2, 20, 2, 20, 2, 20, 4, 20, 4, 82, 32,
+        4, 73, 35, 32, 16, 73, 34, 32, 17, 73, 33, 32, 18, 93, 33, 33,
+        19, 90, 35, 35, 20, 90, 34, 34, 21, 90, 33, 33, 21, 195, 36, 22,
+        34, 195, 37, 33, 35, 124, 37, 37, 23, 123, 0, 36, 37, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_unpack_BGR15_le);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "video_orc_unpack_BGR15_le");
+      orc_program_set_backup_function (p, _backup_video_orc_unpack_BGR15_le);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 2, "s1");
+      orc_program_add_constant (p, 2, 0x00007c00, "c1");
+      orc_program_add_constant (p, 2, 0x000003e0, "c2");
+      orc_program_add_constant (p, 2, 0x0000001f, "c3");
+      orc_program_add_constant (p, 2, 0x00000005, "c4");
+      orc_program_add_constant (p, 2, 0x00000210, "c5");
+      orc_program_add_constant (p, 2, 0x00004200, "c6");
+      orc_program_add_constant (p, 2, 0x000000ff, "c7");
+      orc_program_add_constant (p, 4, 0x00000008, "c8");
+      orc_program_add_temporary (p, 2, "t1");
+      orc_program_add_temporary (p, 2, "t2");
+      orc_program_add_temporary (p, 2, "t3");
+      orc_program_add_temporary (p, 2, "t4");
+      orc_program_add_temporary (p, 4, "t5");
+      orc_program_add_temporary (p, 4, "t6");
+
+      orc_program_append_2 (p, "loadw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "andw", 0, ORC_VAR_T4, ORC_VAR_T1, ORC_VAR_C1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "andw", 0, ORC_VAR_T3, ORC_VAR_T1, ORC_VAR_C2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "andw", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_C3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shlw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T4, ORC_VAR_T4, ORC_VAR_C5,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_C6,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C6,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T5, ORC_VAR_C7, ORC_VAR_T3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T6, ORC_VAR_T2, ORC_VAR_T4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shll", 0, ORC_VAR_T6, ORC_VAR_T6, ORC_VAR_C8,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "orl", 0, ORC_VAR_D1, ORC_VAR_T5, ORC_VAR_T6,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_unpack_BGR15_be */
+#ifdef DISABLE_ORC
+void
+video_orc_unpack_BGR15_be (guint32 * ORC_RESTRICT d1,
+    const guint16 * ORC_RESTRICT s1, int n)
+{
+  int i;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var38;
+#else
+  orc_union16 var38;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var39;
+#else
+  orc_union16 var39;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var40;
+#else
+  orc_union16 var40;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var41;
+#else
+  orc_union16 var41;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var42;
+#else
+  orc_union16 var42;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var43;
+#else
+  orc_union16 var43;
+#endif
+  orc_union32 var44;
+  orc_union16 var45;
+  orc_union16 var46;
+  orc_union16 var47;
+  orc_union16 var48;
+  orc_union16 var49;
+  orc_union16 var50;
+  orc_union16 var51;
+  orc_union16 var52;
+  orc_union32 var53;
+  orc_union32 var54;
+  orc_union32 var55;
+
+  ptr0 = (orc_union32 *) d1;
+  ptr4 = (orc_union16 *) s1;
+
+  /* 1: loadpw */
+  var38.i = (int) 0x00007c00;   /* 31744 or 1.56836e-319f */
+  /* 3: loadpw */
+  var39.i = (int) 0x000003e0;   /* 992 or 4.90113e-321f */
+  /* 5: loadpw */
+  var40.i = (int) 0x0000001f;   /* 31 or 1.5316e-322f */
+  /* 8: loadpw */
+  var41.i = (int) 0x00000210;   /* 528 or 2.60867e-321f */
+  /* 10: loadpw */
+  var42.i = (int) 0x00004200;   /* 16896 or 8.34773e-320f */
+  /* 13: loadpw */
+  var43.i = (int) 0x000000ff;   /* 255 or 1.25987e-321f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadw */
+    var45 = ptr4[i];
+    /* 2: andw */
+    var46.i = var45.i & var38.i;
+    /* 4: andw */
+    var47.i = var45.i & var39.i;
+    /* 6: andw */
+    var48.i = var45.i & var40.i;
+    /* 7: shlw */
+    var49.i = ((orc_uint16) var48.i) << 5;
+    /* 9: mulhsw */
+    var50.i = (var46.i * var41.i) >> 16;
+    /* 11: mulhsw */
+    var51.i = (var47.i * var42.i) >> 16;
+    /* 12: mulhsw */
+    var52.i = (var49.i * var42.i) >> 16;
+    /* 14: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var43.i;
+      _dest.x2[1] = var51.i;
+      var53.i = _dest.i;
+    }
+    /* 15: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var52.i;
+      _dest.x2[1] = var50.i;
+      var54.i = _dest.i;
+    }
+    /* 16: shll */
+    var55.i = ((orc_uint32) var53.i) << 8;
+    /* 17: orl */
+    var44.i = var55.i | var54.i;
+    /* 18: storel */
+    ptr0[i] = var44;
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_unpack_BGR15_be (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var38;
+#else
+  orc_union16 var38;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var39;
+#else
+  orc_union16 var39;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var40;
+#else
+  orc_union16 var40;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var41;
+#else
+  orc_union16 var41;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var42;
+#else
+  orc_union16 var42;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var43;
+#else
+  orc_union16 var43;
+#endif
+  orc_union32 var44;
+  orc_union16 var45;
+  orc_union16 var46;
+  orc_union16 var47;
+  orc_union16 var48;
+  orc_union16 var49;
+  orc_union16 var50;
+  orc_union16 var51;
+  orc_union16 var52;
+  orc_union32 var53;
+  orc_union32 var54;
+  orc_union32 var55;
+
+  ptr0 = (orc_union32 *) ex->arrays[0];
+  ptr4 = (orc_union16 *) ex->arrays[4];
+
+  /* 1: loadpw */
+  var38.i = (int) 0x00007c00;   /* 31744 or 1.56836e-319f */
+  /* 3: loadpw */
+  var39.i = (int) 0x000003e0;   /* 992 or 4.90113e-321f */
+  /* 5: loadpw */
+  var40.i = (int) 0x0000001f;   /* 31 or 1.5316e-322f */
+  /* 8: loadpw */
+  var41.i = (int) 0x00000210;   /* 528 or 2.60867e-321f */
+  /* 10: loadpw */
+  var42.i = (int) 0x00004200;   /* 16896 or 8.34773e-320f */
+  /* 13: loadpw */
+  var43.i = (int) 0x000000ff;   /* 255 or 1.25987e-321f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadw */
+    var45 = ptr4[i];
+    /* 2: andw */
+    var46.i = var45.i & var38.i;
+    /* 4: andw */
+    var47.i = var45.i & var39.i;
+    /* 6: andw */
+    var48.i = var45.i & var40.i;
+    /* 7: shlw */
+    var49.i = ((orc_uint16) var48.i) << 5;
+    /* 9: mulhsw */
+    var50.i = (var46.i * var41.i) >> 16;
+    /* 11: mulhsw */
+    var51.i = (var47.i * var42.i) >> 16;
+    /* 12: mulhsw */
+    var52.i = (var49.i * var42.i) >> 16;
+    /* 14: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var43.i;
+      _dest.x2[1] = var51.i;
+      var53.i = _dest.i;
+    }
+    /* 15: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var52.i;
+      _dest.x2[1] = var50.i;
+      var54.i = _dest.i;
+    }
+    /* 16: shll */
+    var55.i = ((orc_uint32) var53.i) << 8;
+    /* 17: orl */
+    var44.i = var55.i | var54.i;
+    /* 18: storel */
+    ptr0[i] = var44;
+  }
+
+}
+
+void
+video_orc_unpack_BGR15_be (guint32 * ORC_RESTRICT d1,
+    const guint16 * ORC_RESTRICT s1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 25, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 117, 110, 112,
+        97, 99, 107, 95, 66, 71, 82, 49, 53, 95, 98, 101, 11, 4, 4, 12,
+        2, 2, 14, 2, 0, 124, 0, 0, 14, 2, 224, 3, 0, 0, 14, 2,
+        31, 0, 0, 0, 14, 2, 5, 0, 0, 0, 14, 2, 16, 2, 0, 0,
+        14, 2, 0, 66, 0, 0, 14, 2, 255, 0, 0, 0, 14, 4, 8, 0,
+        0, 0, 20, 2, 20, 2, 20, 2, 20, 2, 20, 4, 20, 4, 82, 32,
+        4, 73, 35, 32, 16, 73, 34, 32, 17, 73, 33, 32, 18, 93, 33, 33,
+        19, 90, 35, 35, 20, 90, 34, 34, 21, 90, 33, 33, 21, 195, 36, 22,
+        34, 195, 37, 33, 35, 124, 36, 36, 23, 123, 0, 36, 37, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_unpack_BGR15_be);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "video_orc_unpack_BGR15_be");
+      orc_program_set_backup_function (p, _backup_video_orc_unpack_BGR15_be);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 2, "s1");
+      orc_program_add_constant (p, 2, 0x00007c00, "c1");
+      orc_program_add_constant (p, 2, 0x000003e0, "c2");
+      orc_program_add_constant (p, 2, 0x0000001f, "c3");
+      orc_program_add_constant (p, 2, 0x00000005, "c4");
+      orc_program_add_constant (p, 2, 0x00000210, "c5");
+      orc_program_add_constant (p, 2, 0x00004200, "c6");
+      orc_program_add_constant (p, 2, 0x000000ff, "c7");
+      orc_program_add_constant (p, 4, 0x00000008, "c8");
+      orc_program_add_temporary (p, 2, "t1");
+      orc_program_add_temporary (p, 2, "t2");
+      orc_program_add_temporary (p, 2, "t3");
+      orc_program_add_temporary (p, 2, "t4");
+      orc_program_add_temporary (p, 4, "t5");
+      orc_program_add_temporary (p, 4, "t6");
+
+      orc_program_append_2 (p, "loadw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "andw", 0, ORC_VAR_T4, ORC_VAR_T1, ORC_VAR_C1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "andw", 0, ORC_VAR_T3, ORC_VAR_T1, ORC_VAR_C2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "andw", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_C3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shlw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T4, ORC_VAR_T4, ORC_VAR_C5,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_C6,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C6,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T5, ORC_VAR_C7, ORC_VAR_T3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T6, ORC_VAR_T2, ORC_VAR_T4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shll", 0, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_C8,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "orl", 0, ORC_VAR_D1, ORC_VAR_T5, ORC_VAR_T6,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_unpack_BGR15_le_trunc */
+#ifdef DISABLE_ORC
+void
+video_orc_unpack_BGR15_le_trunc (guint32 * ORC_RESTRICT d1,
+    const guint16 * ORC_RESTRICT s1, int n)
+{
+  int i;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var38;
+#else
+  orc_union16 var38;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var39;
+#else
+  orc_union16 var39;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var40;
+#else
+  orc_union16 var40;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var41;
+#else
+  orc_union16 var41;
+#endif
+  orc_union32 var42;
+  orc_union16 var43;
+  orc_union16 var44;
+  orc_union16 var45;
+  orc_union16 var46;
+  orc_union16 var47;
+  orc_union16 var48;
+  orc_union16 var49;
+  orc_union32 var50;
+  orc_union32 var51;
+  orc_union32 var52;
+
+  ptr0 = (orc_union32 *) d1;
+  ptr4 = (orc_union16 *) s1;
+
+  /* 1: loadpw */
+  var38.i = (int) 0x00007c00;   /* 31744 or 1.56836e-319f */
+  /* 3: loadpw */
+  var39.i = (int) 0x000003e0;   /* 992 or 4.90113e-321f */
+  /* 5: loadpw */
+  var40.i = (int) 0x0000001f;   /* 31 or 1.5316e-322f */
+  /* 10: loadpw */
+  var41.i = (int) 0x000000ff;   /* 255 or 1.25987e-321f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadw */
+    var43 = ptr4[i];
+    /* 2: andw */
+    var44.i = var43.i & var38.i;
+    /* 4: andw */
+    var45.i = var43.i & var39.i;
+    /* 6: andw */
+    var46.i = var43.i & var40.i;
+    /* 7: shruw */
+    var47.i = ((orc_uint16) var44.i) >> 7;
+    /* 8: shruw */
+    var48.i = ((orc_uint16) var45.i) >> 2;
+    /* 9: shlw */
+    var49.i = ((orc_uint16) var46.i) << 3;
+    /* 11: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var41.i;
+      _dest.x2[1] = var48.i;
+      var50.i = _dest.i;
+    }
+    /* 12: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var49.i;
+      _dest.x2[1] = var47.i;
+      var51.i = _dest.i;
+    }
+    /* 13: shll */
+    var52.i = ((orc_uint32) var51.i) << 8;
+    /* 14: orl */
+    var42.i = var50.i | var52.i;
+    /* 15: storel */
+    ptr0[i] = var42;
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_unpack_BGR15_le_trunc (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var38;
+#else
+  orc_union16 var38;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var39;
+#else
+  orc_union16 var39;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var40;
+#else
+  orc_union16 var40;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var41;
+#else
+  orc_union16 var41;
+#endif
+  orc_union32 var42;
+  orc_union16 var43;
+  orc_union16 var44;
+  orc_union16 var45;
+  orc_union16 var46;
+  orc_union16 var47;
+  orc_union16 var48;
+  orc_union16 var49;
+  orc_union32 var50;
+  orc_union32 var51;
+  orc_union32 var52;
+
+  ptr0 = (orc_union32 *) ex->arrays[0];
+  ptr4 = (orc_union16 *) ex->arrays[4];
+
+  /* 1: loadpw */
+  var38.i = (int) 0x00007c00;   /* 31744 or 1.56836e-319f */
+  /* 3: loadpw */
+  var39.i = (int) 0x000003e0;   /* 992 or 4.90113e-321f */
+  /* 5: loadpw */
+  var40.i = (int) 0x0000001f;   /* 31 or 1.5316e-322f */
+  /* 10: loadpw */
+  var41.i = (int) 0x000000ff;   /* 255 or 1.25987e-321f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadw */
+    var43 = ptr4[i];
+    /* 2: andw */
+    var44.i = var43.i & var38.i;
+    /* 4: andw */
+    var45.i = var43.i & var39.i;
+    /* 6: andw */
+    var46.i = var43.i & var40.i;
+    /* 7: shruw */
+    var47.i = ((orc_uint16) var44.i) >> 7;
+    /* 8: shruw */
+    var48.i = ((orc_uint16) var45.i) >> 2;
+    /* 9: shlw */
+    var49.i = ((orc_uint16) var46.i) << 3;
+    /* 11: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var41.i;
+      _dest.x2[1] = var48.i;
+      var50.i = _dest.i;
+    }
+    /* 12: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var49.i;
+      _dest.x2[1] = var47.i;
+      var51.i = _dest.i;
+    }
+    /* 13: shll */
+    var52.i = ((orc_uint32) var51.i) << 8;
+    /* 14: orl */
+    var42.i = var50.i | var52.i;
+    /* 15: storel */
+    ptr0[i] = var42;
+  }
+
+}
+
+void
+video_orc_unpack_BGR15_le_trunc (guint32 * ORC_RESTRICT d1,
+    const guint16 * ORC_RESTRICT s1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 31, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 117, 110, 112,
+        97, 99, 107, 95, 66, 71, 82, 49, 53, 95, 108, 101, 95, 116, 114, 117,
+        110, 99, 11, 4, 4, 12, 2, 2, 14, 2, 0, 124, 0, 0, 14, 2,
+        224, 3, 0, 0, 14, 2, 31, 0, 0, 0, 14, 2, 7, 0, 0, 0,
+        14, 2, 2, 0, 0, 0, 14, 2, 3, 0, 0, 0, 14, 2, 255, 0,
+        0, 0, 14, 4, 8, 0, 0, 0, 20, 2, 20, 2, 20, 2, 20, 2,
+        20, 4, 20, 4, 82, 32, 4, 73, 35, 32, 16, 73, 34, 32, 17, 73,
+        33, 32, 18, 95, 35, 35, 19, 95, 34, 34, 20, 93, 33, 33, 21, 195,
+        36, 22, 34, 195, 37, 33, 35, 124, 37, 37, 23, 123, 0, 36, 37, 2,
+        0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_orc_unpack_BGR15_le_trunc);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "video_orc_unpack_BGR15_le_trunc");
+      orc_program_set_backup_function (p,
+          _backup_video_orc_unpack_BGR15_le_trunc);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 2, "s1");
+      orc_program_add_constant (p, 2, 0x00007c00, "c1");
+      orc_program_add_constant (p, 2, 0x000003e0, "c2");
+      orc_program_add_constant (p, 2, 0x0000001f, "c3");
+      orc_program_add_constant (p, 2, 0x00000007, "c4");
+      orc_program_add_constant (p, 2, 0x00000002, "c5");
+      orc_program_add_constant (p, 2, 0x00000003, "c6");
+      orc_program_add_constant (p, 2, 0x000000ff, "c7");
+      orc_program_add_constant (p, 4, 0x00000008, "c8");
+      orc_program_add_temporary (p, 2, "t1");
+      orc_program_add_temporary (p, 2, "t2");
+      orc_program_add_temporary (p, 2, "t3");
+      orc_program_add_temporary (p, 2, "t4");
+      orc_program_add_temporary (p, 4, "t5");
+      orc_program_add_temporary (p, 4, "t6");
+
+      orc_program_append_2 (p, "loadw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "andw", 0, ORC_VAR_T4, ORC_VAR_T1, ORC_VAR_C1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "andw", 0, ORC_VAR_T3, ORC_VAR_T1, ORC_VAR_C2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "andw", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_C3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shruw", 0, ORC_VAR_T4, ORC_VAR_T4, ORC_VAR_C4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shruw", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_C5,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shlw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C6,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T5, ORC_VAR_C7, ORC_VAR_T3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T6, ORC_VAR_T2, ORC_VAR_T4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shll", 0, ORC_VAR_T6, ORC_VAR_T6, ORC_VAR_C8,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "orl", 0, ORC_VAR_D1, ORC_VAR_T5, ORC_VAR_T6,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_unpack_BGR15_be_trunc */
+#ifdef DISABLE_ORC
+void
+video_orc_unpack_BGR15_be_trunc (guint32 * ORC_RESTRICT d1,
+    const guint16 * ORC_RESTRICT s1, int n)
+{
+  int i;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var38;
+#else
+  orc_union16 var38;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var39;
+#else
+  orc_union16 var39;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var40;
+#else
+  orc_union16 var40;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var41;
+#else
+  orc_union16 var41;
+#endif
+  orc_union32 var42;
+  orc_union16 var43;
+  orc_union16 var44;
+  orc_union16 var45;
+  orc_union16 var46;
+  orc_union16 var47;
+  orc_union16 var48;
+  orc_union16 var49;
+  orc_union32 var50;
+  orc_union32 var51;
+  orc_union32 var52;
+
+  ptr0 = (orc_union32 *) d1;
+  ptr4 = (orc_union16 *) s1;
+
+  /* 1: loadpw */
+  var38.i = (int) 0x00007c00;   /* 31744 or 1.56836e-319f */
+  /* 3: loadpw */
+  var39.i = (int) 0x000003e0;   /* 992 or 4.90113e-321f */
+  /* 5: loadpw */
+  var40.i = (int) 0x0000001f;   /* 31 or 1.5316e-322f */
+  /* 10: loadpw */
+  var41.i = (int) 0x000000ff;   /* 255 or 1.25987e-321f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadw */
+    var43 = ptr4[i];
+    /* 2: andw */
+    var44.i = var43.i & var38.i;
+    /* 4: andw */
+    var45.i = var43.i & var39.i;
+    /* 6: andw */
+    var46.i = var43.i & var40.i;
+    /* 7: shruw */
+    var47.i = ((orc_uint16) var44.i) >> 7;
+    /* 8: shruw */
+    var48.i = ((orc_uint16) var45.i) >> 2;
+    /* 9: shlw */
+    var49.i = ((orc_uint16) var46.i) << 3;
+    /* 11: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var41.i;
+      _dest.x2[1] = var48.i;
+      var50.i = _dest.i;
+    }
+    /* 12: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var49.i;
+      _dest.x2[1] = var47.i;
+      var51.i = _dest.i;
+    }
+    /* 13: shll */
+    var52.i = ((orc_uint32) var50.i) << 8;
+    /* 14: orl */
+    var42.i = var52.i | var51.i;
+    /* 15: storel */
+    ptr0[i] = var42;
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_unpack_BGR15_be_trunc (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var38;
+#else
+  orc_union16 var38;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var39;
+#else
+  orc_union16 var39;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var40;
+#else
+  orc_union16 var40;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var41;
+#else
+  orc_union16 var41;
+#endif
+  orc_union32 var42;
+  orc_union16 var43;
+  orc_union16 var44;
+  orc_union16 var45;
+  orc_union16 var46;
+  orc_union16 var47;
+  orc_union16 var48;
+  orc_union16 var49;
+  orc_union32 var50;
+  orc_union32 var51;
+  orc_union32 var52;
+
+  ptr0 = (orc_union32 *) ex->arrays[0];
+  ptr4 = (orc_union16 *) ex->arrays[4];
+
+  /* 1: loadpw */
+  var38.i = (int) 0x00007c00;   /* 31744 or 1.56836e-319f */
+  /* 3: loadpw */
+  var39.i = (int) 0x000003e0;   /* 992 or 4.90113e-321f */
+  /* 5: loadpw */
+  var40.i = (int) 0x0000001f;   /* 31 or 1.5316e-322f */
+  /* 10: loadpw */
+  var41.i = (int) 0x000000ff;   /* 255 or 1.25987e-321f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadw */
+    var43 = ptr4[i];
+    /* 2: andw */
+    var44.i = var43.i & var38.i;
+    /* 4: andw */
+    var45.i = var43.i & var39.i;
+    /* 6: andw */
+    var46.i = var43.i & var40.i;
+    /* 7: shruw */
+    var47.i = ((orc_uint16) var44.i) >> 7;
+    /* 8: shruw */
+    var48.i = ((orc_uint16) var45.i) >> 2;
+    /* 9: shlw */
+    var49.i = ((orc_uint16) var46.i) << 3;
+    /* 11: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var41.i;
+      _dest.x2[1] = var48.i;
+      var50.i = _dest.i;
+    }
+    /* 12: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var49.i;
+      _dest.x2[1] = var47.i;
+      var51.i = _dest.i;
+    }
+    /* 13: shll */
+    var52.i = ((orc_uint32) var50.i) << 8;
+    /* 14: orl */
+    var42.i = var52.i | var51.i;
+    /* 15: storel */
+    ptr0[i] = var42;
+  }
+
+}
+
+void
+video_orc_unpack_BGR15_be_trunc (guint32 * ORC_RESTRICT d1,
+    const guint16 * ORC_RESTRICT s1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 31, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 117, 110, 112,
+        97, 99, 107, 95, 66, 71, 82, 49, 53, 95, 98, 101, 95, 116, 114, 117,
+        110, 99, 11, 4, 4, 12, 2, 2, 14, 2, 0, 124, 0, 0, 14, 2,
+        224, 3, 0, 0, 14, 2, 31, 0, 0, 0, 14, 2, 7, 0, 0, 0,
+        14, 2, 2, 0, 0, 0, 14, 2, 3, 0, 0, 0, 14, 2, 255, 0,
+        0, 0, 14, 4, 8, 0, 0, 0, 20, 2, 20, 2, 20, 2, 20, 2,
+        20, 4, 20, 4, 82, 32, 4, 73, 35, 32, 16, 73, 34, 32, 17, 73,
+        33, 32, 18, 95, 35, 35, 19, 95, 34, 34, 20, 93, 33, 33, 21, 195,
+        36, 22, 34, 195, 37, 33, 35, 124, 36, 36, 23, 123, 0, 36, 37, 2,
+        0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_orc_unpack_BGR15_be_trunc);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "video_orc_unpack_BGR15_be_trunc");
+      orc_program_set_backup_function (p,
+          _backup_video_orc_unpack_BGR15_be_trunc);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 2, "s1");
+      orc_program_add_constant (p, 2, 0x00007c00, "c1");
+      orc_program_add_constant (p, 2, 0x000003e0, "c2");
+      orc_program_add_constant (p, 2, 0x0000001f, "c3");
+      orc_program_add_constant (p, 2, 0x00000007, "c4");
+      orc_program_add_constant (p, 2, 0x00000002, "c5");
+      orc_program_add_constant (p, 2, 0x00000003, "c6");
+      orc_program_add_constant (p, 2, 0x000000ff, "c7");
+      orc_program_add_constant (p, 4, 0x00000008, "c8");
+      orc_program_add_temporary (p, 2, "t1");
+      orc_program_add_temporary (p, 2, "t2");
+      orc_program_add_temporary (p, 2, "t3");
+      orc_program_add_temporary (p, 2, "t4");
+      orc_program_add_temporary (p, 4, "t5");
+      orc_program_add_temporary (p, 4, "t6");
+
+      orc_program_append_2 (p, "loadw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "andw", 0, ORC_VAR_T4, ORC_VAR_T1, ORC_VAR_C1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "andw", 0, ORC_VAR_T3, ORC_VAR_T1, ORC_VAR_C2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "andw", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_C3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shruw", 0, ORC_VAR_T4, ORC_VAR_T4, ORC_VAR_C4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shruw", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_C5,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shlw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C6,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T5, ORC_VAR_C7, ORC_VAR_T3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T6, ORC_VAR_T2, ORC_VAR_T4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shll", 0, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_C8,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "orl", 0, ORC_VAR_D1, ORC_VAR_T5, ORC_VAR_T6,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_pack_BGR15_le */
+#ifdef DISABLE_ORC
+void
+video_orc_pack_BGR15_le (guint16 * ORC_RESTRICT d1,
+    const guint32 * ORC_RESTRICT s1, int n)
+{
+  int i;
+  orc_union16 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var37;
+#else
+  orc_union32 var37;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var38;
+#else
+  orc_union32 var38;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var39;
+#else
+  orc_union32 var39;
+#endif
+  orc_union16 var40;
+  orc_union32 var41;
+  orc_union32 var42;
+  orc_union32 var43;
+  orc_union32 var44;
+  orc_union32 var45;
+  orc_union32 var46;
+  orc_union32 var47;
+  orc_union32 var48;
+  orc_union32 var49;
+
+  ptr0 = (orc_union16 *) d1;
+  ptr4 = (orc_union32 *) s1;
+
+  /* 1: loadpl */
+  var37.i = (int) 0x0000f800;   /* 63488 or 3.13672e-319f */
+  /* 3: loadpl */
+  var38.i = (int) 0x00f80000;   /* 16252928 or 8.03001e-317f */
+  /* 5: loadpl */
+  var39.i = (int) 0xf8000000;   /* -134217728 or 2.05568e-314f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var41 = ptr4[i];
+    /* 2: andl */
+    var42.i = var41.i & var37.i;
+    /* 4: andl */
+    var43.i = var41.i & var38.i;
+    /* 6: andl */
+    var44.i = var41.i & var39.i;
+    /* 7: shrul */
+    var45.i = ((orc_uint32) var44.i) >> 17;
+    /* 8: shrul */
+    var46.i = ((orc_uint32) var43.i) >> 14;
+    /* 9: shrul */
+    var47.i = ((orc_uint32) var42.i) >> 11;
+    /* 10: orl */
+    var48.i = var47.i | var46.i;
+    /* 11: orl */
+    var49.i = var48.i | var45.i;
+    /* 12: select0lw */
+    {
+      orc_union32 _src;
+      _src.i = var49.i;
+      var40.i = _src.x2[0];
+    }
+    /* 13: storew */
+    ptr0[i] = var40;
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_pack_BGR15_le (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union16 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var37;
+#else
+  orc_union32 var37;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var38;
+#else
+  orc_union32 var38;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var39;
+#else
+  orc_union32 var39;
+#endif
+  orc_union16 var40;
+  orc_union32 var41;
+  orc_union32 var42;
+  orc_union32 var43;
+  orc_union32 var44;
+  orc_union32 var45;
+  orc_union32 var46;
+  orc_union32 var47;
+  orc_union32 var48;
+  orc_union32 var49;
+
+  ptr0 = (orc_union16 *) ex->arrays[0];
+  ptr4 = (orc_union32 *) ex->arrays[4];
+
+  /* 1: loadpl */
+  var37.i = (int) 0x0000f800;   /* 63488 or 3.13672e-319f */
+  /* 3: loadpl */
+  var38.i = (int) 0x00f80000;   /* 16252928 or 8.03001e-317f */
+  /* 5: loadpl */
+  var39.i = (int) 0xf8000000;   /* -134217728 or 2.05568e-314f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var41 = ptr4[i];
+    /* 2: andl */
+    var42.i = var41.i & var37.i;
+    /* 4: andl */
+    var43.i = var41.i & var38.i;
+    /* 6: andl */
+    var44.i = var41.i & var39.i;
+    /* 7: shrul */
+    var45.i = ((orc_uint32) var44.i) >> 17;
+    /* 8: shrul */
+    var46.i = ((orc_uint32) var43.i) >> 14;
+    /* 9: shrul */
+    var47.i = ((orc_uint32) var42.i) >> 11;
+    /* 10: orl */
+    var48.i = var47.i | var46.i;
+    /* 11: orl */
+    var49.i = var48.i | var45.i;
+    /* 12: select0lw */
+    {
+      orc_union32 _src;
+      _src.i = var49.i;
+      var40.i = _src.x2[0];
+    }
+    /* 13: storew */
+    ptr0[i] = var40;
+  }
+
+}
+
+void
+video_orc_pack_BGR15_le (guint16 * ORC_RESTRICT d1,
+    const guint32 * ORC_RESTRICT s1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 23, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 112, 97, 99,
+        107, 95, 66, 71, 82, 49, 53, 95, 108, 101, 11, 2, 2, 12, 4, 4,
+        14, 4, 0, 248, 0, 0, 14, 4, 0, 0, 248, 0, 14, 4, 0, 0,
+        0, 248, 14, 4, 17, 0, 0, 0, 14, 4, 14, 0, 0, 0, 14, 4,
+        11, 0, 0, 0, 20, 4, 20, 4, 20, 4, 20, 4, 20, 4, 113, 32,
+        4, 106, 33, 32, 16, 106, 34, 32, 17, 106, 35, 32, 18, 126, 35, 35,
+        19, 126, 34, 34, 20, 126, 33, 33, 21, 123, 36, 33, 34, 123, 36, 36,
+        35, 190, 0, 36, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_pack_BGR15_le);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "video_orc_pack_BGR15_le");
+      orc_program_set_backup_function (p, _backup_video_orc_pack_BGR15_le);
+      orc_program_add_destination (p, 2, "d1");
+      orc_program_add_source (p, 4, "s1");
+      orc_program_add_constant (p, 4, 0x0000f800, "c1");
+      orc_program_add_constant (p, 4, 0x00f80000, "c2");
+      orc_program_add_constant (p, 4, 0xf8000000, "c3");
+      orc_program_add_constant (p, 4, 0x00000011, "c4");
+      orc_program_add_constant (p, 4, 0x0000000e, "c5");
+      orc_program_add_constant (p, 4, 0x0000000b, "c6");
+      orc_program_add_temporary (p, 4, "t1");
+      orc_program_add_temporary (p, 4, "t2");
+      orc_program_add_temporary (p, 4, "t3");
+      orc_program_add_temporary (p, 4, "t4");
+      orc_program_add_temporary (p, 4, "t5");
+
+      orc_program_append_2 (p, "loadl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "andl", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_C1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "andl", 0, ORC_VAR_T3, ORC_VAR_T1, ORC_VAR_C2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "andl", 0, ORC_VAR_T4, ORC_VAR_T1, ORC_VAR_C3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shrul", 0, ORC_VAR_T4, ORC_VAR_T4, ORC_VAR_C4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shrul", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_C5,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shrul", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C6,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "orl", 0, ORC_VAR_T5, ORC_VAR_T2, ORC_VAR_T3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "orl", 0, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_T4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "select0lw", 0, ORC_VAR_D1, ORC_VAR_T5,
+          ORC_VAR_D1, ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_pack_BGR15_be */
+#ifdef DISABLE_ORC
+void
+video_orc_pack_BGR15_be (guint16 * ORC_RESTRICT d1,
+    const guint32 * ORC_RESTRICT s1, int n)
+{
+  int i;
+  orc_union16 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var37;
+#else
+  orc_union32 var37;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var38;
+#else
+  orc_union32 var38;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var39;
+#else
+  orc_union32 var39;
+#endif
+  orc_union16 var40;
+  orc_union32 var41;
+  orc_union32 var42;
+  orc_union32 var43;
+  orc_union32 var44;
+  orc_union32 var45;
+  orc_union32 var46;
+  orc_union32 var47;
+  orc_union32 var48;
+  orc_union32 var49;
+
+  ptr0 = (orc_union16 *) d1;
+  ptr4 = (orc_union32 *) s1;
+
+  /* 1: loadpl */
+  var37.i = (int) 0x00f80000;   /* 16252928 or 8.03001e-317f */
+  /* 3: loadpl */
+  var38.i = (int) 0x0000f800;   /* 63488 or 3.13672e-319f */
+  /* 5: loadpl */
+  var39.i = (int) 0x000000f8;   /* 248 or 1.22528e-321f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var41 = ptr4[i];
+    /* 2: andl */
+    var42.i = var41.i & var37.i;
+    /* 4: andl */
+    var43.i = var41.i & var38.i;
+    /* 6: andl */
+    var44.i = var41.i & var39.i;
+    /* 7: shll */
+    var45.i = ((orc_uint32) var44.i) << 7;
+    /* 8: shrul */
+    var46.i = ((orc_uint32) var43.i) >> 6;
+    /* 9: shrul */
+    var47.i = ((orc_uint32) var42.i) >> 19;
+    /* 10: orl */
+    var48.i = var47.i | var46.i;
+    /* 11: orl */
+    var49.i = var48.i | var45.i;
+    /* 12: select1lw */
+    {
+      orc_union32 _src;
+      _src.i = var49.i;
+      var40.i = _src.x2[1];
+    }
+    /* 13: storew */
+    ptr0[i] = var40;
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_pack_BGR15_be (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union16 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var37;
+#else
+  orc_union32 var37;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var38;
+#else
+  orc_union32 var38;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var39;
+#else
+  orc_union32 var39;
+#endif
+  orc_union16 var40;
+  orc_union32 var41;
+  orc_union32 var42;
+  orc_union32 var43;
+  orc_union32 var44;
+  orc_union32 var45;
+  orc_union32 var46;
+  orc_union32 var47;
+  orc_union32 var48;
+  orc_union32 var49;
+
+  ptr0 = (orc_union16 *) ex->arrays[0];
+  ptr4 = (orc_union32 *) ex->arrays[4];
+
+  /* 1: loadpl */
+  var37.i = (int) 0x00f80000;   /* 16252928 or 8.03001e-317f */
+  /* 3: loadpl */
+  var38.i = (int) 0x0000f800;   /* 63488 or 3.13672e-319f */
+  /* 5: loadpl */
+  var39.i = (int) 0x000000f8;   /* 248 or 1.22528e-321f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var41 = ptr4[i];
+    /* 2: andl */
+    var42.i = var41.i & var37.i;
+    /* 4: andl */
+    var43.i = var41.i & var38.i;
+    /* 6: andl */
+    var44.i = var41.i & var39.i;
+    /* 7: shll */
+    var45.i = ((orc_uint32) var44.i) << 7;
+    /* 8: shrul */
+    var46.i = ((orc_uint32) var43.i) >> 6;
+    /* 9: shrul */
+    var47.i = ((orc_uint32) var42.i) >> 19;
+    /* 10: orl */
+    var48.i = var47.i | var46.i;
+    /* 11: orl */
+    var49.i = var48.i | var45.i;
+    /* 12: select1lw */
+    {
+      orc_union32 _src;
+      _src.i = var49.i;
+      var40.i = _src.x2[1];
+    }
+    /* 13: storew */
+    ptr0[i] = var40;
+  }
+
+}
+
+void
+video_orc_pack_BGR15_be (guint16 * ORC_RESTRICT d1,
+    const guint32 * ORC_RESTRICT s1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 23, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 112, 97, 99,
+        107, 95, 66, 71, 82, 49, 53, 95, 98, 101, 11, 2, 2, 12, 4, 4,
+        14, 4, 0, 0, 248, 0, 14, 4, 0, 248, 0, 0, 14, 4, 248, 0,
+        0, 0, 14, 4, 7, 0, 0, 0, 14, 4, 6, 0, 0, 0, 14, 4,
+        19, 0, 0, 0, 20, 4, 20, 4, 20, 4, 20, 4, 20, 4, 113, 32,
+        4, 106, 33, 32, 16, 106, 34, 32, 17, 106, 35, 32, 18, 124, 35, 35,
+        19, 126, 34, 34, 20, 126, 33, 33, 21, 123, 36, 33, 34, 123, 36, 36,
+        35, 191, 0, 36, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_pack_BGR15_be);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "video_orc_pack_BGR15_be");
+      orc_program_set_backup_function (p, _backup_video_orc_pack_BGR15_be);
+      orc_program_add_destination (p, 2, "d1");
+      orc_program_add_source (p, 4, "s1");
+      orc_program_add_constant (p, 4, 0x00f80000, "c1");
+      orc_program_add_constant (p, 4, 0x0000f800, "c2");
+      orc_program_add_constant (p, 4, 0x000000f8, "c3");
+      orc_program_add_constant (p, 4, 0x00000007, "c4");
+      orc_program_add_constant (p, 4, 0x00000006, "c5");
+      orc_program_add_constant (p, 4, 0x00000013, "c6");
+      orc_program_add_temporary (p, 4, "t1");
+      orc_program_add_temporary (p, 4, "t2");
+      orc_program_add_temporary (p, 4, "t3");
+      orc_program_add_temporary (p, 4, "t4");
+      orc_program_add_temporary (p, 4, "t5");
+
+      orc_program_append_2 (p, "loadl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "andl", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_C1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "andl", 0, ORC_VAR_T3, ORC_VAR_T1, ORC_VAR_C2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "andl", 0, ORC_VAR_T4, ORC_VAR_T1, ORC_VAR_C3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shll", 0, ORC_VAR_T4, ORC_VAR_T4, ORC_VAR_C4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shrul", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_C5,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shrul", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C6,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "orl", 0, ORC_VAR_T5, ORC_VAR_T2, ORC_VAR_T3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "orl", 0, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_T4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "select1lw", 0, ORC_VAR_D1, ORC_VAR_T5,
+          ORC_VAR_D1, ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_unpack_RGB16 */
+#ifdef DISABLE_ORC
+void
+video_orc_unpack_RGB16 (guint32 * ORC_RESTRICT d1,
+    const guint16 * ORC_RESTRICT s1, int n)
+{
+  int i;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var39;
+#else
+  orc_union16 var39;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var40;
+#else
+  orc_union16 var40;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var41;
+#else
+  orc_union16 var41;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var42;
+#else
+  orc_union16 var42;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var43;
+#else
+  orc_union16 var43;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var44;
+#else
+  orc_union16 var44;
+#endif
+  orc_union32 var45;
+  orc_union16 var46;
+  orc_union16 var47;
+  orc_union16 var48;
+  orc_union16 var49;
+  orc_union16 var50;
+  orc_union16 var51;
+  orc_union16 var52;
+  orc_union16 var53;
+  orc_union16 var54;
+  orc_union32 var55;
+  orc_union32 var56;
+  orc_union64 var57;
+
+  ptr0 = (orc_union32 *) d1;
+  ptr4 = (orc_union16 *) s1;
+
+  /* 1: loadpw */
+  var39.i = (int) 0x0000f800;   /* 63488 or 3.13672e-319f */
+  /* 3: loadpw */
+  var40.i = (int) 0x000007e0;   /* 2016 or 9.96036e-321f */
+  /* 5: loadpw */
+  var41.i = (int) 0x0000001f;   /* 31 or 1.5316e-322f */
+  /* 9: loadpw */
+  var42.i = (int) 0x00004200;   /* 16896 or 8.34773e-320f */
+  /* 11: loadpw */
+  var43.i = (int) 0x00002080;   /* 8320 or 4.11063e-320f */
+  /* 14: loadpw */
+  var44.i = (int) 0x000000ff;   /* 255 or 1.25987e-321f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadw */
+    var46 = ptr4[i];
+    /* 2: andw */
+    var47.i = var46.i & var39.i;
+    /* 4: andw */
+    var48.i = var46.i & var40.i;
+    /* 6: andw */
+    var49.i = var46.i & var41.i;
+    /* 7: shruw */
+    var50.i = ((orc_uint16) var47.i) >> 6;
+    /* 8: shlw */
+    var51.i = ((orc_uint16) var49.i) << 5;
+    /* 10: mulhsw */
+    var52.i = (var50.i * var42.i) >> 16;
+    /* 12: mulhsw */
+    var53.i = (var48.i * var43.i) >> 16;
+    /* 13: mulhsw */
+    var54.i = (var51.i * var42.i) >> 16;
+    /* 15: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var44.i;
+      _dest.x2[1] = var52.i;
+      var55.i = _dest.i;
+    }
+    /* 16: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var53.i;
+      _dest.x2[1] = var54.i;
+      var56.i = _dest.i;
+    }
+    /* 17: mergelq */
+    {
+      orc_union64 _dest;
+      _dest.x2[0] = var55.i;
+      _dest.x2[1] = var56.i;
+      var57.i = _dest.i;
+    }
+    /* 18: convsuswb */
+    var45.x4[0] = ORC_CLAMP_UB (var57.x4[0]);
+    var45.x4[1] = ORC_CLAMP_UB (var57.x4[1]);
+    var45.x4[2] = ORC_CLAMP_UB (var57.x4[2]);
+    var45.x4[3] = ORC_CLAMP_UB (var57.x4[3]);
+    /* 19: storel */
+    ptr0[i] = var45;
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_unpack_RGB16 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var39;
+#else
+  orc_union16 var39;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var40;
+#else
+  orc_union16 var40;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var41;
+#else
+  orc_union16 var41;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var42;
+#else
+  orc_union16 var42;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var43;
+#else
+  orc_union16 var43;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var44;
+#else
+  orc_union16 var44;
+#endif
+  orc_union32 var45;
+  orc_union16 var46;
+  orc_union16 var47;
+  orc_union16 var48;
+  orc_union16 var49;
+  orc_union16 var50;
+  orc_union16 var51;
+  orc_union16 var52;
+  orc_union16 var53;
+  orc_union16 var54;
+  orc_union32 var55;
+  orc_union32 var56;
+  orc_union64 var57;
+
+  ptr0 = (orc_union32 *) ex->arrays[0];
+  ptr4 = (orc_union16 *) ex->arrays[4];
+
+  /* 1: loadpw */
+  var39.i = (int) 0x0000f800;   /* 63488 or 3.13672e-319f */
+  /* 3: loadpw */
+  var40.i = (int) 0x000007e0;   /* 2016 or 9.96036e-321f */
+  /* 5: loadpw */
+  var41.i = (int) 0x0000001f;   /* 31 or 1.5316e-322f */
+  /* 9: loadpw */
+  var42.i = (int) 0x00004200;   /* 16896 or 8.34773e-320f */
+  /* 11: loadpw */
+  var43.i = (int) 0x00002080;   /* 8320 or 4.11063e-320f */
+  /* 14: loadpw */
+  var44.i = (int) 0x000000ff;   /* 255 or 1.25987e-321f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadw */
+    var46 = ptr4[i];
+    /* 2: andw */
+    var47.i = var46.i & var39.i;
+    /* 4: andw */
+    var48.i = var46.i & var40.i;
+    /* 6: andw */
+    var49.i = var46.i & var41.i;
+    /* 7: shruw */
+    var50.i = ((orc_uint16) var47.i) >> 6;
+    /* 8: shlw */
+    var51.i = ((orc_uint16) var49.i) << 5;
+    /* 10: mulhsw */
+    var52.i = (var50.i * var42.i) >> 16;
+    /* 12: mulhsw */
+    var53.i = (var48.i * var43.i) >> 16;
+    /* 13: mulhsw */
+    var54.i = (var51.i * var42.i) >> 16;
+    /* 15: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var44.i;
+      _dest.x2[1] = var52.i;
+      var55.i = _dest.i;
+    }
+    /* 16: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var53.i;
+      _dest.x2[1] = var54.i;
+      var56.i = _dest.i;
+    }
+    /* 17: mergelq */
+    {
+      orc_union64 _dest;
+      _dest.x2[0] = var55.i;
+      _dest.x2[1] = var56.i;
+      var57.i = _dest.i;
+    }
+    /* 18: convsuswb */
+    var45.x4[0] = ORC_CLAMP_UB (var57.x4[0]);
+    var45.x4[1] = ORC_CLAMP_UB (var57.x4[1]);
+    var45.x4[2] = ORC_CLAMP_UB (var57.x4[2]);
+    var45.x4[3] = ORC_CLAMP_UB (var57.x4[3]);
+    /* 19: storel */
+    ptr0[i] = var45;
+  }
+
+}
+
+void
+video_orc_unpack_RGB16 (guint32 * ORC_RESTRICT d1,
+    const guint16 * ORC_RESTRICT s1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 22, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 117, 110, 112,
+        97, 99, 107, 95, 82, 71, 66, 49, 54, 11, 4, 4, 12, 2, 2, 14,
+        2, 0, 248, 0, 0, 14, 2, 224, 7, 0, 0, 14, 2, 31, 0, 0,
+        0, 14, 2, 6, 0, 0, 0, 14, 2, 5, 0, 0, 0, 14, 2, 0,
+        66, 0, 0, 14, 2, 128, 32, 0, 0, 14, 2, 255, 0, 0, 0, 20,
+        2, 20, 2, 20, 2, 20, 2, 20, 4, 20, 4, 20, 8, 82, 32, 4,
+        73, 33, 32, 16, 73, 34, 32, 17, 73, 35, 32, 18, 95, 33, 33, 19,
+        93, 35, 35, 20, 90, 33, 33, 21, 90, 34, 34, 22, 90, 35, 35, 21,
+        195, 36, 23, 33, 195, 37, 34, 35, 194, 38, 36, 37, 21, 2, 160, 0,
+        38, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_unpack_RGB16);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "video_orc_unpack_RGB16");
+      orc_program_set_backup_function (p, _backup_video_orc_unpack_RGB16);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 2, "s1");
+      orc_program_add_constant (p, 2, 0x0000f800, "c1");
+      orc_program_add_constant (p, 2, 0x000007e0, "c2");
+      orc_program_add_constant (p, 2, 0x0000001f, "c3");
+      orc_program_add_constant (p, 2, 0x00000006, "c4");
+      orc_program_add_constant (p, 2, 0x00000005, "c5");
+      orc_program_add_constant (p, 2, 0x00004200, "c6");
+      orc_program_add_constant (p, 2, 0x00002080, "c7");
+      orc_program_add_constant (p, 2, 0x000000ff, "c8");
+      orc_program_add_temporary (p, 2, "t1");
+      orc_program_add_temporary (p, 2, "t2");
+      orc_program_add_temporary (p, 2, "t3");
+      orc_program_add_temporary (p, 2, "t4");
+      orc_program_add_temporary (p, 4, "t5");
+      orc_program_add_temporary (p, 4, "t6");
+      orc_program_add_temporary (p, 8, "t7");
+
+      orc_program_append_2 (p, "loadw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "andw", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_C1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "andw", 0, ORC_VAR_T3, ORC_VAR_T1, ORC_VAR_C2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "andw", 0, ORC_VAR_T4, ORC_VAR_T1, ORC_VAR_C3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shruw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shlw", 0, ORC_VAR_T4, ORC_VAR_T4, ORC_VAR_C5,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C6,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_C7,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T4, ORC_VAR_T4, ORC_VAR_C6,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T5, ORC_VAR_C8, ORC_VAR_T2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T6, ORC_VAR_T3, ORC_VAR_T4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergelq", 0, ORC_VAR_T7, ORC_VAR_T5, ORC_VAR_T6,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convsuswb", 2, ORC_VAR_D1, ORC_VAR_T7,
+          ORC_VAR_D1, ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_unpack_RGB16_trunc */
+#ifdef DISABLE_ORC
+void
+video_orc_unpack_RGB16_trunc (guint32 * ORC_RESTRICT d1,
+    const guint16 * ORC_RESTRICT s1, int n)
+{
+  int i;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var39;
+#else
+  orc_union16 var39;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var40;
+#else
+  orc_union16 var40;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var41;
+#else
+  orc_union16 var41;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var42;
+#else
+  orc_union16 var42;
+#endif
+  orc_union32 var43;
+  orc_union16 var44;
+  orc_union16 var45;
+  orc_union16 var46;
+  orc_union16 var47;
+  orc_union16 var48;
+  orc_union16 var49;
+  orc_union16 var50;
+  orc_union32 var51;
+  orc_union32 var52;
+  orc_union64 var53;
+
+  ptr0 = (orc_union32 *) d1;
+  ptr4 = (orc_union16 *) s1;
+
+  /* 1: loadpw */
+  var39.i = (int) 0x0000f800;   /* 63488 or 3.13672e-319f */
+  /* 3: loadpw */
+  var40.i = (int) 0x000007e0;   /* 2016 or 9.96036e-321f */
+  /* 5: loadpw */
+  var41.i = (int) 0x0000001f;   /* 31 or 1.5316e-322f */
+  /* 10: loadpw */
+  var42.i = (int) 0x000000ff;   /* 255 or 1.25987e-321f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadw */
+    var44 = ptr4[i];
+    /* 2: andw */
+    var45.i = var44.i & var39.i;
+    /* 4: andw */
+    var46.i = var44.i & var40.i;
+    /* 6: andw */
+    var47.i = var44.i & var41.i;
+    /* 7: shruw */
+    var48.i = ((orc_uint16) var45.i) >> 8;
+    /* 8: shruw */
+    var49.i = ((orc_uint16) var46.i) >> 3;
+    /* 9: shlw */
+    var50.i = ((orc_uint16) var47.i) << 3;
+    /* 11: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var42.i;
+      _dest.x2[1] = var48.i;
+      var51.i = _dest.i;
+    }
+    /* 12: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var49.i;
+      _dest.x2[1] = var50.i;
+      var52.i = _dest.i;
+    }
+    /* 13: mergelq */
+    {
+      orc_union64 _dest;
+      _dest.x2[0] = var51.i;
+      _dest.x2[1] = var52.i;
+      var53.i = _dest.i;
+    }
+    /* 14: convsuswb */
+    var43.x4[0] = ORC_CLAMP_UB (var53.x4[0]);
+    var43.x4[1] = ORC_CLAMP_UB (var53.x4[1]);
+    var43.x4[2] = ORC_CLAMP_UB (var53.x4[2]);
+    var43.x4[3] = ORC_CLAMP_UB (var53.x4[3]);
+    /* 15: storel */
+    ptr0[i] = var43;
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_unpack_RGB16_trunc (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var39;
+#else
+  orc_union16 var39;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var40;
+#else
+  orc_union16 var40;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var41;
+#else
+  orc_union16 var41;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var42;
+#else
+  orc_union16 var42;
+#endif
+  orc_union32 var43;
+  orc_union16 var44;
+  orc_union16 var45;
+  orc_union16 var46;
+  orc_union16 var47;
+  orc_union16 var48;
+  orc_union16 var49;
+  orc_union16 var50;
+  orc_union32 var51;
+  orc_union32 var52;
+  orc_union64 var53;
+
+  ptr0 = (orc_union32 *) ex->arrays[0];
+  ptr4 = (orc_union16 *) ex->arrays[4];
+
+  /* 1: loadpw */
+  var39.i = (int) 0x0000f800;   /* 63488 or 3.13672e-319f */
+  /* 3: loadpw */
+  var40.i = (int) 0x000007e0;   /* 2016 or 9.96036e-321f */
+  /* 5: loadpw */
+  var41.i = (int) 0x0000001f;   /* 31 or 1.5316e-322f */
+  /* 10: loadpw */
+  var42.i = (int) 0x000000ff;   /* 255 or 1.25987e-321f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadw */
+    var44 = ptr4[i];
+    /* 2: andw */
+    var45.i = var44.i & var39.i;
+    /* 4: andw */
+    var46.i = var44.i & var40.i;
+    /* 6: andw */
+    var47.i = var44.i & var41.i;
+    /* 7: shruw */
+    var48.i = ((orc_uint16) var45.i) >> 8;
+    /* 8: shruw */
+    var49.i = ((orc_uint16) var46.i) >> 3;
+    /* 9: shlw */
+    var50.i = ((orc_uint16) var47.i) << 3;
+    /* 11: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var42.i;
+      _dest.x2[1] = var48.i;
+      var51.i = _dest.i;
+    }
+    /* 12: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var49.i;
+      _dest.x2[1] = var50.i;
+      var52.i = _dest.i;
+    }
+    /* 13: mergelq */
+    {
+      orc_union64 _dest;
+      _dest.x2[0] = var51.i;
+      _dest.x2[1] = var52.i;
+      var53.i = _dest.i;
+    }
+    /* 14: convsuswb */
+    var43.x4[0] = ORC_CLAMP_UB (var53.x4[0]);
+    var43.x4[1] = ORC_CLAMP_UB (var53.x4[1]);
+    var43.x4[2] = ORC_CLAMP_UB (var53.x4[2]);
+    var43.x4[3] = ORC_CLAMP_UB (var53.x4[3]);
+    /* 15: storel */
+    ptr0[i] = var43;
+  }
+
+}
+
+void
+video_orc_unpack_RGB16_trunc (guint32 * ORC_RESTRICT d1,
+    const guint16 * ORC_RESTRICT s1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 28, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 117, 110, 112,
+        97, 99, 107, 95, 82, 71, 66, 49, 54, 95, 116, 114, 117, 110, 99, 11,
+        4, 4, 12, 2, 2, 14, 2, 0, 248, 0, 0, 14, 2, 224, 7, 0,
+        0, 14, 2, 31, 0, 0, 0, 14, 2, 8, 0, 0, 0, 14, 2, 3,
+        0, 0, 0, 14, 2, 255, 0, 0, 0, 20, 2, 20, 2, 20, 2, 20,
+        2, 20, 4, 20, 4, 20, 8, 82, 32, 4, 73, 33, 32, 16, 73, 34,
+        32, 17, 73, 35, 32, 18, 95, 33, 33, 19, 95, 34, 34, 20, 93, 35,
+        35, 20, 195, 36, 21, 33, 195, 37, 34, 35, 194, 38, 36, 37, 21, 2,
+        160, 0, 38, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_unpack_RGB16_trunc);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "video_orc_unpack_RGB16_trunc");
+      orc_program_set_backup_function (p, _backup_video_orc_unpack_RGB16_trunc);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 2, "s1");
+      orc_program_add_constant (p, 2, 0x0000f800, "c1");
+      orc_program_add_constant (p, 2, 0x000007e0, "c2");
+      orc_program_add_constant (p, 2, 0x0000001f, "c3");
+      orc_program_add_constant (p, 2, 0x00000008, "c4");
+      orc_program_add_constant (p, 2, 0x00000003, "c5");
+      orc_program_add_constant (p, 2, 0x000000ff, "c6");
+      orc_program_add_temporary (p, 2, "t1");
+      orc_program_add_temporary (p, 2, "t2");
+      orc_program_add_temporary (p, 2, "t3");
+      orc_program_add_temporary (p, 2, "t4");
+      orc_program_add_temporary (p, 4, "t5");
+      orc_program_add_temporary (p, 4, "t6");
+      orc_program_add_temporary (p, 8, "t7");
+
+      orc_program_append_2 (p, "loadw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "andw", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_C1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "andw", 0, ORC_VAR_T3, ORC_VAR_T1, ORC_VAR_C2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "andw", 0, ORC_VAR_T4, ORC_VAR_T1, ORC_VAR_C3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shruw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shruw", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_C5,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shlw", 0, ORC_VAR_T4, ORC_VAR_T4, ORC_VAR_C5,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T5, ORC_VAR_C6, ORC_VAR_T2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T6, ORC_VAR_T3, ORC_VAR_T4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergelq", 0, ORC_VAR_T7, ORC_VAR_T5, ORC_VAR_T6,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convsuswb", 2, ORC_VAR_D1, ORC_VAR_T7,
+          ORC_VAR_D1, ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_pack_RGB16_le */
+#ifdef DISABLE_ORC
+void
+video_orc_pack_RGB16_le (guint16 * ORC_RESTRICT d1,
+    const guint32 * ORC_RESTRICT s1, int n)
+{
+  int i;
+  orc_union16 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var37;
+#else
+  orc_union32 var37;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var38;
+#else
+  orc_union32 var38;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var39;
+#else
+  orc_union32 var39;
+#endif
+  orc_union16 var40;
+  orc_union32 var41;
+  orc_union32 var42;
+  orc_union32 var43;
+  orc_union32 var44;
+  orc_union32 var45;
+  orc_union32 var46;
+  orc_union32 var47;
+  orc_union32 var48;
+
+  ptr0 = (orc_union16 *) d1;
+  ptr4 = (orc_union32 *) s1;
+
+  /* 1: loadpl */
+  var37.i = (int) 0x0000f800;   /* 63488 or 3.13672e-319f */
+  /* 3: loadpl */
+  var38.i = (int) 0x00fc0000;   /* 16515072 or 8.15953e-317f */
+  /* 5: loadpl */
+  var39.i = (int) 0xf8000000;   /* -134217728 or 2.05568e-314f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var41 = ptr4[i];
+    /* 2: andl */
+    var42.i = var41.i & var37.i;
+    /* 4: andl */
+    var43.i = var41.i & var38.i;
+    /* 6: andl */
+    var44.i = var41.i & var39.i;
+    /* 7: shrul */
+    var45.i = ((orc_uint32) var43.i) >> 13;
+    /* 8: shrul */
+    var46.i = ((orc_uint32) var44.i) >> 27;
+    /* 9: orl */
+    var47.i = var42.i | var45.i;
+    /* 10: orl */
+    var48.i = var47.i | var46.i;
+    /* 11: select0lw */
+    {
+      orc_union32 _src;
+      _src.i = var48.i;
+      var40.i = _src.x2[0];
+    }
+    /* 12: storew */
+    ptr0[i] = var40;
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_pack_RGB16_le (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union16 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var37;
+#else
+  orc_union32 var37;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var38;
+#else
+  orc_union32 var38;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var39;
+#else
+  orc_union32 var39;
+#endif
+  orc_union16 var40;
+  orc_union32 var41;
+  orc_union32 var42;
+  orc_union32 var43;
+  orc_union32 var44;
+  orc_union32 var45;
+  orc_union32 var46;
+  orc_union32 var47;
+  orc_union32 var48;
+
+  ptr0 = (orc_union16 *) ex->arrays[0];
+  ptr4 = (orc_union32 *) ex->arrays[4];
+
+  /* 1: loadpl */
+  var37.i = (int) 0x0000f800;   /* 63488 or 3.13672e-319f */
+  /* 3: loadpl */
+  var38.i = (int) 0x00fc0000;   /* 16515072 or 8.15953e-317f */
+  /* 5: loadpl */
+  var39.i = (int) 0xf8000000;   /* -134217728 or 2.05568e-314f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var41 = ptr4[i];
+    /* 2: andl */
+    var42.i = var41.i & var37.i;
+    /* 4: andl */
+    var43.i = var41.i & var38.i;
+    /* 6: andl */
+    var44.i = var41.i & var39.i;
+    /* 7: shrul */
+    var45.i = ((orc_uint32) var43.i) >> 13;
+    /* 8: shrul */
+    var46.i = ((orc_uint32) var44.i) >> 27;
+    /* 9: orl */
+    var47.i = var42.i | var45.i;
+    /* 10: orl */
+    var48.i = var47.i | var46.i;
+    /* 11: select0lw */
+    {
+      orc_union32 _src;
+      _src.i = var48.i;
+      var40.i = _src.x2[0];
+    }
+    /* 12: storew */
+    ptr0[i] = var40;
+  }
+
+}
+
+void
+video_orc_pack_RGB16_le (guint16 * ORC_RESTRICT d1,
+    const guint32 * ORC_RESTRICT s1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 23, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 112, 97, 99,
+        107, 95, 82, 71, 66, 49, 54, 95, 108, 101, 11, 2, 2, 12, 4, 4,
+        14, 4, 0, 248, 0, 0, 14, 4, 0, 0, 252, 0, 14, 4, 0, 0,
+        0, 248, 14, 4, 13, 0, 0, 0, 14, 4, 27, 0, 0, 0, 20, 4,
+        20, 4, 20, 4, 20, 4, 20, 4, 113, 32, 4, 106, 33, 32, 16, 106,
+        34, 32, 17, 106, 35, 32, 18, 126, 34, 34, 19, 126, 35, 35, 20, 123,
+        36, 33, 34, 123, 36, 36, 35, 190, 0, 36, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_pack_RGB16_le);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "video_orc_pack_RGB16_le");
+      orc_program_set_backup_function (p, _backup_video_orc_pack_RGB16_le);
+      orc_program_add_destination (p, 2, "d1");
+      orc_program_add_source (p, 4, "s1");
+      orc_program_add_constant (p, 4, 0x0000f800, "c1");
+      orc_program_add_constant (p, 4, 0x00fc0000, "c2");
+      orc_program_add_constant (p, 4, 0xf8000000, "c3");
+      orc_program_add_constant (p, 4, 0x0000000d, "c4");
+      orc_program_add_constant (p, 4, 0x0000001b, "c5");
+      orc_program_add_temporary (p, 4, "t1");
+      orc_program_add_temporary (p, 4, "t2");
+      orc_program_add_temporary (p, 4, "t3");
+      orc_program_add_temporary (p, 4, "t4");
+      orc_program_add_temporary (p, 4, "t5");
+
+      orc_program_append_2 (p, "loadl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "andl", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_C1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "andl", 0, ORC_VAR_T3, ORC_VAR_T1, ORC_VAR_C2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "andl", 0, ORC_VAR_T4, ORC_VAR_T1, ORC_VAR_C3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shrul", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_C4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shrul", 0, ORC_VAR_T4, ORC_VAR_T4, ORC_VAR_C5,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "orl", 0, ORC_VAR_T5, ORC_VAR_T2, ORC_VAR_T3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "orl", 0, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_T4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "select0lw", 0, ORC_VAR_D1, ORC_VAR_T5,
+          ORC_VAR_D1, ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_pack_RGB16_be */
+#ifdef DISABLE_ORC
+void
+video_orc_pack_RGB16_be (guint16 * ORC_RESTRICT d1,
+    const guint32 * ORC_RESTRICT s1, int n)
+{
+  int i;
+  orc_union16 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var37;
+#else
+  orc_union32 var37;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var38;
+#else
+  orc_union32 var38;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var39;
+#else
+  orc_union32 var39;
+#endif
+  orc_union16 var40;
+  orc_union32 var41;
+  orc_union32 var42;
+  orc_union32 var43;
+  orc_union32 var44;
+  orc_union32 var45;
+  orc_union32 var46;
+  orc_union32 var47;
+  orc_union32 var48;
+  orc_union32 var49;
+
+  ptr0 = (orc_union16 *) d1;
+  ptr4 = (orc_union32 *) s1;
+
+  /* 1: loadpl */
+  var37.i = (int) 0x00f80000;   /* 16252928 or 8.03001e-317f */
+  /* 3: loadpl */
+  var38.i = (int) 0x0000fc00;   /* 64512 or 3.18732e-319f */
+  /* 5: loadpl */
+  var39.i = (int) 0x000000f8;   /* 248 or 1.22528e-321f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var41 = ptr4[i];
+    /* 2: andl */
+    var42.i = var41.i & var37.i;
+    /* 4: andl */
+    var43.i = var41.i & var38.i;
+    /* 6: andl */
+    var44.i = var41.i & var39.i;
+    /* 7: shrul */
+    var45.i = ((orc_uint32) var42.i) >> 8;
+    /* 8: shrul */
+    var46.i = ((orc_uint32) var43.i) >> 5;
+    /* 9: shrul */
+    var47.i = ((orc_uint32) var44.i) >> 3;
+    /* 10: orl */
+    var48.i = var45.i | var46.i;
+    /* 11: orl */
+    var49.i = var48.i | var47.i;
+    /* 12: select1lw */
+    {
+      orc_union32 _src;
+      _src.i = var49.i;
+      var40.i = _src.x2[1];
+    }
+    /* 13: storew */
+    ptr0[i] = var40;
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_pack_RGB16_be (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union16 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var37;
+#else
+  orc_union32 var37;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var38;
+#else
+  orc_union32 var38;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var39;
+#else
+  orc_union32 var39;
+#endif
+  orc_union16 var40;
+  orc_union32 var41;
+  orc_union32 var42;
+  orc_union32 var43;
+  orc_union32 var44;
+  orc_union32 var45;
+  orc_union32 var46;
+  orc_union32 var47;
+  orc_union32 var48;
+  orc_union32 var49;
+
+  ptr0 = (orc_union16 *) ex->arrays[0];
+  ptr4 = (orc_union32 *) ex->arrays[4];
+
+  /* 1: loadpl */
+  var37.i = (int) 0x00f80000;   /* 16252928 or 8.03001e-317f */
+  /* 3: loadpl */
+  var38.i = (int) 0x0000fc00;   /* 64512 or 3.18732e-319f */
+  /* 5: loadpl */
+  var39.i = (int) 0x000000f8;   /* 248 or 1.22528e-321f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var41 = ptr4[i];
+    /* 2: andl */
+    var42.i = var41.i & var37.i;
+    /* 4: andl */
+    var43.i = var41.i & var38.i;
+    /* 6: andl */
+    var44.i = var41.i & var39.i;
+    /* 7: shrul */
+    var45.i = ((orc_uint32) var42.i) >> 8;
+    /* 8: shrul */
+    var46.i = ((orc_uint32) var43.i) >> 5;
+    /* 9: shrul */
+    var47.i = ((orc_uint32) var44.i) >> 3;
+    /* 10: orl */
+    var48.i = var45.i | var46.i;
+    /* 11: orl */
+    var49.i = var48.i | var47.i;
+    /* 12: select1lw */
+    {
+      orc_union32 _src;
+      _src.i = var49.i;
+      var40.i = _src.x2[1];
+    }
+    /* 13: storew */
+    ptr0[i] = var40;
+  }
+
+}
+
+void
+video_orc_pack_RGB16_be (guint16 * ORC_RESTRICT d1,
+    const guint32 * ORC_RESTRICT s1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 23, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 112, 97, 99,
+        107, 95, 82, 71, 66, 49, 54, 95, 98, 101, 11, 2, 2, 12, 4, 4,
+        14, 4, 0, 0, 248, 0, 14, 4, 0, 252, 0, 0, 14, 4, 248, 0,
+        0, 0, 14, 4, 8, 0, 0, 0, 14, 4, 5, 0, 0, 0, 14, 4,
+        3, 0, 0, 0, 20, 4, 20, 4, 20, 4, 20, 4, 20, 4, 113, 32,
+        4, 106, 33, 32, 16, 106, 34, 32, 17, 106, 35, 32, 18, 126, 33, 33,
+        19, 126, 34, 34, 20, 126, 35, 35, 21, 123, 36, 33, 34, 123, 36, 36,
+        35, 191, 0, 36, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_pack_RGB16_be);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "video_orc_pack_RGB16_be");
+      orc_program_set_backup_function (p, _backup_video_orc_pack_RGB16_be);
+      orc_program_add_destination (p, 2, "d1");
+      orc_program_add_source (p, 4, "s1");
+      orc_program_add_constant (p, 4, 0x00f80000, "c1");
+      orc_program_add_constant (p, 4, 0x0000fc00, "c2");
+      orc_program_add_constant (p, 4, 0x000000f8, "c3");
+      orc_program_add_constant (p, 4, 0x00000008, "c4");
+      orc_program_add_constant (p, 4, 0x00000005, "c5");
+      orc_program_add_constant (p, 4, 0x00000003, "c6");
+      orc_program_add_temporary (p, 4, "t1");
+      orc_program_add_temporary (p, 4, "t2");
+      orc_program_add_temporary (p, 4, "t3");
+      orc_program_add_temporary (p, 4, "t4");
+      orc_program_add_temporary (p, 4, "t5");
+
+      orc_program_append_2 (p, "loadl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "andl", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_C1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "andl", 0, ORC_VAR_T3, ORC_VAR_T1, ORC_VAR_C2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "andl", 0, ORC_VAR_T4, ORC_VAR_T1, ORC_VAR_C3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shrul", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shrul", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_C5,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shrul", 0, ORC_VAR_T4, ORC_VAR_T4, ORC_VAR_C6,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "orl", 0, ORC_VAR_T5, ORC_VAR_T2, ORC_VAR_T3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "orl", 0, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_T4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "select1lw", 0, ORC_VAR_D1, ORC_VAR_T5,
+          ORC_VAR_D1, ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_unpack_BGR16 */
+#ifdef DISABLE_ORC
+void
+video_orc_unpack_BGR16 (guint32 * ORC_RESTRICT d1,
+    const guint16 * ORC_RESTRICT s1, int n)
+{
+  int i;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var39;
+#else
+  orc_union16 var39;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var40;
+#else
+  orc_union16 var40;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var41;
+#else
+  orc_union16 var41;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var42;
+#else
+  orc_union16 var42;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var43;
+#else
+  orc_union16 var43;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var44;
+#else
+  orc_union16 var44;
+#endif
+  orc_union32 var45;
+  orc_union16 var46;
+  orc_union16 var47;
+  orc_union16 var48;
+  orc_union16 var49;
+  orc_union16 var50;
+  orc_union16 var51;
+  orc_union16 var52;
+  orc_union16 var53;
+  orc_union16 var54;
+  orc_union32 var55;
+  orc_union32 var56;
+  orc_union64 var57;
+
+  ptr0 = (orc_union32 *) d1;
+  ptr4 = (orc_union16 *) s1;
+
+  /* 1: loadpw */
+  var39.i = (int) 0x0000f800;   /* 63488 or 3.13672e-319f */
+  /* 3: loadpw */
+  var40.i = (int) 0x000007e0;   /* 2016 or 9.96036e-321f */
+  /* 5: loadpw */
+  var41.i = (int) 0x0000001f;   /* 31 or 1.5316e-322f */
+  /* 9: loadpw */
+  var42.i = (int) 0x00004200;   /* 16896 or 8.34773e-320f */
+  /* 11: loadpw */
+  var43.i = (int) 0x00002080;   /* 8320 or 4.11063e-320f */
+  /* 14: loadpw */
+  var44.i = (int) 0x000000ff;   /* 255 or 1.25987e-321f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadw */
+    var46 = ptr4[i];
+    /* 2: andw */
+    var47.i = var46.i & var39.i;
+    /* 4: andw */
+    var48.i = var46.i & var40.i;
+    /* 6: andw */
+    var49.i = var46.i & var41.i;
+    /* 7: shruw */
+    var50.i = ((orc_uint16) var47.i) >> 6;
+    /* 8: shlw */
+    var51.i = ((orc_uint16) var49.i) << 5;
+    /* 10: mulhsw */
+    var52.i = (var50.i * var42.i) >> 16;
+    /* 12: mulhsw */
+    var53.i = (var48.i * var43.i) >> 16;
+    /* 13: mulhsw */
+    var54.i = (var51.i * var42.i) >> 16;
+    /* 15: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var44.i;
+      _dest.x2[1] = var54.i;
+      var55.i = _dest.i;
+    }
+    /* 16: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var53.i;
+      _dest.x2[1] = var52.i;
+      var56.i = _dest.i;
+    }
+    /* 17: mergelq */
+    {
+      orc_union64 _dest;
+      _dest.x2[0] = var55.i;
+      _dest.x2[1] = var56.i;
+      var57.i = _dest.i;
+    }
+    /* 18: convsuswb */
+    var45.x4[0] = ORC_CLAMP_UB (var57.x4[0]);
+    var45.x4[1] = ORC_CLAMP_UB (var57.x4[1]);
+    var45.x4[2] = ORC_CLAMP_UB (var57.x4[2]);
+    var45.x4[3] = ORC_CLAMP_UB (var57.x4[3]);
+    /* 19: storel */
+    ptr0[i] = var45;
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_unpack_BGR16 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var39;
+#else
+  orc_union16 var39;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var40;
+#else
+  orc_union16 var40;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var41;
+#else
+  orc_union16 var41;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var42;
+#else
+  orc_union16 var42;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var43;
+#else
+  orc_union16 var43;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var44;
+#else
+  orc_union16 var44;
+#endif
+  orc_union32 var45;
+  orc_union16 var46;
+  orc_union16 var47;
+  orc_union16 var48;
+  orc_union16 var49;
+  orc_union16 var50;
+  orc_union16 var51;
+  orc_union16 var52;
+  orc_union16 var53;
+  orc_union16 var54;
+  orc_union32 var55;
+  orc_union32 var56;
+  orc_union64 var57;
+
+  ptr0 = (orc_union32 *) ex->arrays[0];
+  ptr4 = (orc_union16 *) ex->arrays[4];
+
+  /* 1: loadpw */
+  var39.i = (int) 0x0000f800;   /* 63488 or 3.13672e-319f */
+  /* 3: loadpw */
+  var40.i = (int) 0x000007e0;   /* 2016 or 9.96036e-321f */
+  /* 5: loadpw */
+  var41.i = (int) 0x0000001f;   /* 31 or 1.5316e-322f */
+  /* 9: loadpw */
+  var42.i = (int) 0x00004200;   /* 16896 or 8.34773e-320f */
+  /* 11: loadpw */
+  var43.i = (int) 0x00002080;   /* 8320 or 4.11063e-320f */
+  /* 14: loadpw */
+  var44.i = (int) 0x000000ff;   /* 255 or 1.25987e-321f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadw */
+    var46 = ptr4[i];
+    /* 2: andw */
+    var47.i = var46.i & var39.i;
+    /* 4: andw */
+    var48.i = var46.i & var40.i;
+    /* 6: andw */
+    var49.i = var46.i & var41.i;
+    /* 7: shruw */
+    var50.i = ((orc_uint16) var47.i) >> 6;
+    /* 8: shlw */
+    var51.i = ((orc_uint16) var49.i) << 5;
+    /* 10: mulhsw */
+    var52.i = (var50.i * var42.i) >> 16;
+    /* 12: mulhsw */
+    var53.i = (var48.i * var43.i) >> 16;
+    /* 13: mulhsw */
+    var54.i = (var51.i * var42.i) >> 16;
+    /* 15: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var44.i;
+      _dest.x2[1] = var54.i;
+      var55.i = _dest.i;
+    }
+    /* 16: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var53.i;
+      _dest.x2[1] = var52.i;
+      var56.i = _dest.i;
+    }
+    /* 17: mergelq */
+    {
+      orc_union64 _dest;
+      _dest.x2[0] = var55.i;
+      _dest.x2[1] = var56.i;
+      var57.i = _dest.i;
+    }
+    /* 18: convsuswb */
+    var45.x4[0] = ORC_CLAMP_UB (var57.x4[0]);
+    var45.x4[1] = ORC_CLAMP_UB (var57.x4[1]);
+    var45.x4[2] = ORC_CLAMP_UB (var57.x4[2]);
+    var45.x4[3] = ORC_CLAMP_UB (var57.x4[3]);
+    /* 19: storel */
+    ptr0[i] = var45;
+  }
+
+}
+
+void
+video_orc_unpack_BGR16 (guint32 * ORC_RESTRICT d1,
+    const guint16 * ORC_RESTRICT s1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 22, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 117, 110, 112,
+        97, 99, 107, 95, 66, 71, 82, 49, 54, 11, 4, 4, 12, 2, 2, 14,
+        2, 0, 248, 0, 0, 14, 2, 224, 7, 0, 0, 14, 2, 31, 0, 0,
+        0, 14, 2, 6, 0, 0, 0, 14, 2, 5, 0, 0, 0, 14, 2, 0,
+        66, 0, 0, 14, 2, 128, 32, 0, 0, 14, 2, 255, 0, 0, 0, 20,
+        2, 20, 2, 20, 2, 20, 2, 20, 4, 20, 4, 20, 8, 82, 32, 4,
+        73, 35, 32, 16, 73, 34, 32, 17, 73, 33, 32, 18, 95, 35, 35, 19,
+        93, 33, 33, 20, 90, 35, 35, 21, 90, 34, 34, 22, 90, 33, 33, 21,
+        195, 36, 23, 33, 195, 37, 34, 35, 194, 38, 36, 37, 21, 2, 160, 0,
+        38, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_unpack_BGR16);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "video_orc_unpack_BGR16");
+      orc_program_set_backup_function (p, _backup_video_orc_unpack_BGR16);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 2, "s1");
+      orc_program_add_constant (p, 2, 0x0000f800, "c1");
+      orc_program_add_constant (p, 2, 0x000007e0, "c2");
+      orc_program_add_constant (p, 2, 0x0000001f, "c3");
+      orc_program_add_constant (p, 2, 0x00000006, "c4");
+      orc_program_add_constant (p, 2, 0x00000005, "c5");
+      orc_program_add_constant (p, 2, 0x00004200, "c6");
+      orc_program_add_constant (p, 2, 0x00002080, "c7");
+      orc_program_add_constant (p, 2, 0x000000ff, "c8");
+      orc_program_add_temporary (p, 2, "t1");
+      orc_program_add_temporary (p, 2, "t2");
+      orc_program_add_temporary (p, 2, "t3");
+      orc_program_add_temporary (p, 2, "t4");
+      orc_program_add_temporary (p, 4, "t5");
+      orc_program_add_temporary (p, 4, "t6");
+      orc_program_add_temporary (p, 8, "t7");
+
+      orc_program_append_2 (p, "loadw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "andw", 0, ORC_VAR_T4, ORC_VAR_T1, ORC_VAR_C1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "andw", 0, ORC_VAR_T3, ORC_VAR_T1, ORC_VAR_C2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "andw", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_C3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shruw", 0, ORC_VAR_T4, ORC_VAR_T4, ORC_VAR_C4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shlw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C5,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T4, ORC_VAR_T4, ORC_VAR_C6,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_C7,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C6,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T5, ORC_VAR_C8, ORC_VAR_T2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T6, ORC_VAR_T3, ORC_VAR_T4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergelq", 0, ORC_VAR_T7, ORC_VAR_T5, ORC_VAR_T6,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convsuswb", 2, ORC_VAR_D1, ORC_VAR_T7,
+          ORC_VAR_D1, ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_unpack_BGR16_trunc */
+#ifdef DISABLE_ORC
+void
+video_orc_unpack_BGR16_trunc (guint32 * ORC_RESTRICT d1,
+    const guint16 * ORC_RESTRICT s1, int n)
+{
+  int i;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var39;
+#else
+  orc_union16 var39;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var40;
+#else
+  orc_union16 var40;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var41;
+#else
+  orc_union16 var41;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var42;
+#else
+  orc_union16 var42;
+#endif
+  orc_union32 var43;
+  orc_union16 var44;
+  orc_union16 var45;
+  orc_union16 var46;
+  orc_union16 var47;
+  orc_union16 var48;
+  orc_union16 var49;
+  orc_union16 var50;
+  orc_union32 var51;
+  orc_union32 var52;
+  orc_union64 var53;
+
+  ptr0 = (orc_union32 *) d1;
+  ptr4 = (orc_union16 *) s1;
+
+  /* 1: loadpw */
+  var39.i = (int) 0x0000f800;   /* 63488 or 3.13672e-319f */
+  /* 3: loadpw */
+  var40.i = (int) 0x000007e0;   /* 2016 or 9.96036e-321f */
+  /* 5: loadpw */
+  var41.i = (int) 0x0000001f;   /* 31 or 1.5316e-322f */
+  /* 10: loadpw */
+  var42.i = (int) 0x000000ff;   /* 255 or 1.25987e-321f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadw */
+    var44 = ptr4[i];
+    /* 2: andw */
+    var45.i = var44.i & var39.i;
+    /* 4: andw */
+    var46.i = var44.i & var40.i;
+    /* 6: andw */
+    var47.i = var44.i & var41.i;
+    /* 7: shruw */
+    var48.i = ((orc_uint16) var45.i) >> 8;
+    /* 8: shruw */
+    var49.i = ((orc_uint16) var46.i) >> 3;
+    /* 9: shlw */
+    var50.i = ((orc_uint16) var47.i) << 3;
+    /* 11: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var42.i;
+      _dest.x2[1] = var50.i;
+      var51.i = _dest.i;
+    }
+    /* 12: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var49.i;
+      _dest.x2[1] = var48.i;
+      var52.i = _dest.i;
+    }
+    /* 13: mergelq */
+    {
+      orc_union64 _dest;
+      _dest.x2[0] = var51.i;
+      _dest.x2[1] = var52.i;
+      var53.i = _dest.i;
+    }
+    /* 14: convsuswb */
+    var43.x4[0] = ORC_CLAMP_UB (var53.x4[0]);
+    var43.x4[1] = ORC_CLAMP_UB (var53.x4[1]);
+    var43.x4[2] = ORC_CLAMP_UB (var53.x4[2]);
+    var43.x4[3] = ORC_CLAMP_UB (var53.x4[3]);
+    /* 15: storel */
+    ptr0[i] = var43;
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_unpack_BGR16_trunc (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var39;
+#else
+  orc_union16 var39;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var40;
+#else
+  orc_union16 var40;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var41;
+#else
+  orc_union16 var41;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var42;
+#else
+  orc_union16 var42;
+#endif
+  orc_union32 var43;
+  orc_union16 var44;
+  orc_union16 var45;
+  orc_union16 var46;
+  orc_union16 var47;
+  orc_union16 var48;
+  orc_union16 var49;
+  orc_union16 var50;
+  orc_union32 var51;
+  orc_union32 var52;
+  orc_union64 var53;
+
+  ptr0 = (orc_union32 *) ex->arrays[0];
+  ptr4 = (orc_union16 *) ex->arrays[4];
+
+  /* 1: loadpw */
+  var39.i = (int) 0x0000f800;   /* 63488 or 3.13672e-319f */
+  /* 3: loadpw */
+  var40.i = (int) 0x000007e0;   /* 2016 or 9.96036e-321f */
+  /* 5: loadpw */
+  var41.i = (int) 0x0000001f;   /* 31 or 1.5316e-322f */
+  /* 10: loadpw */
+  var42.i = (int) 0x000000ff;   /* 255 or 1.25987e-321f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadw */
+    var44 = ptr4[i];
+    /* 2: andw */
+    var45.i = var44.i & var39.i;
+    /* 4: andw */
+    var46.i = var44.i & var40.i;
+    /* 6: andw */
+    var47.i = var44.i & var41.i;
+    /* 7: shruw */
+    var48.i = ((orc_uint16) var45.i) >> 8;
+    /* 8: shruw */
+    var49.i = ((orc_uint16) var46.i) >> 3;
+    /* 9: shlw */
+    var50.i = ((orc_uint16) var47.i) << 3;
+    /* 11: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var42.i;
+      _dest.x2[1] = var50.i;
+      var51.i = _dest.i;
+    }
+    /* 12: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var49.i;
+      _dest.x2[1] = var48.i;
+      var52.i = _dest.i;
+    }
+    /* 13: mergelq */
+    {
+      orc_union64 _dest;
+      _dest.x2[0] = var51.i;
+      _dest.x2[1] = var52.i;
+      var53.i = _dest.i;
+    }
+    /* 14: convsuswb */
+    var43.x4[0] = ORC_CLAMP_UB (var53.x4[0]);
+    var43.x4[1] = ORC_CLAMP_UB (var53.x4[1]);
+    var43.x4[2] = ORC_CLAMP_UB (var53.x4[2]);
+    var43.x4[3] = ORC_CLAMP_UB (var53.x4[3]);
+    /* 15: storel */
+    ptr0[i] = var43;
+  }
+
+}
+
+void
+video_orc_unpack_BGR16_trunc (guint32 * ORC_RESTRICT d1,
+    const guint16 * ORC_RESTRICT s1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 28, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 117, 110, 112,
+        97, 99, 107, 95, 66, 71, 82, 49, 54, 95, 116, 114, 117, 110, 99, 11,
+        4, 4, 12, 2, 2, 14, 2, 0, 248, 0, 0, 14, 2, 224, 7, 0,
+        0, 14, 2, 31, 0, 0, 0, 14, 2, 8, 0, 0, 0, 14, 2, 3,
+        0, 0, 0, 14, 2, 255, 0, 0, 0, 20, 2, 20, 2, 20, 2, 20,
+        2, 20, 4, 20, 4, 20, 8, 82, 32, 4, 73, 35, 32, 16, 73, 34,
+        32, 17, 73, 33, 32, 18, 95, 35, 35, 19, 95, 34, 34, 20, 93, 33,
+        33, 20, 195, 36, 21, 33, 195, 37, 34, 35, 194, 38, 36, 37, 21, 2,
+        160, 0, 38, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_unpack_BGR16_trunc);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "video_orc_unpack_BGR16_trunc");
+      orc_program_set_backup_function (p, _backup_video_orc_unpack_BGR16_trunc);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 2, "s1");
+      orc_program_add_constant (p, 2, 0x0000f800, "c1");
+      orc_program_add_constant (p, 2, 0x000007e0, "c2");
+      orc_program_add_constant (p, 2, 0x0000001f, "c3");
+      orc_program_add_constant (p, 2, 0x00000008, "c4");
+      orc_program_add_constant (p, 2, 0x00000003, "c5");
+      orc_program_add_constant (p, 2, 0x000000ff, "c6");
+      orc_program_add_temporary (p, 2, "t1");
+      orc_program_add_temporary (p, 2, "t2");
+      orc_program_add_temporary (p, 2, "t3");
+      orc_program_add_temporary (p, 2, "t4");
+      orc_program_add_temporary (p, 4, "t5");
+      orc_program_add_temporary (p, 4, "t6");
+      orc_program_add_temporary (p, 8, "t7");
+
+      orc_program_append_2 (p, "loadw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "andw", 0, ORC_VAR_T4, ORC_VAR_T1, ORC_VAR_C1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "andw", 0, ORC_VAR_T3, ORC_VAR_T1, ORC_VAR_C2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "andw", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_C3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shruw", 0, ORC_VAR_T4, ORC_VAR_T4, ORC_VAR_C4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shruw", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_C5,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shlw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C5,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T5, ORC_VAR_C6, ORC_VAR_T2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T6, ORC_VAR_T3, ORC_VAR_T4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergelq", 0, ORC_VAR_T7, ORC_VAR_T5, ORC_VAR_T6,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convsuswb", 2, ORC_VAR_D1, ORC_VAR_T7,
+          ORC_VAR_D1, ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_pack_BGR16_le */
+#ifdef DISABLE_ORC
+void
+video_orc_pack_BGR16_le (guint16 * ORC_RESTRICT d1,
+    const guint32 * ORC_RESTRICT s1, int n)
+{
+  int i;
+  orc_union16 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var37;
+#else
+  orc_union32 var37;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var38;
+#else
+  orc_union32 var38;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var39;
+#else
+  orc_union32 var39;
+#endif
+  orc_union16 var40;
+  orc_union32 var41;
+  orc_union32 var42;
+  orc_union32 var43;
+  orc_union32 var44;
+  orc_union32 var45;
+  orc_union32 var46;
+  orc_union32 var47;
+  orc_union32 var48;
+  orc_union32 var49;
+
+  ptr0 = (orc_union16 *) d1;
+  ptr4 = (orc_union32 *) s1;
+
+  /* 1: loadpl */
+  var37.i = (int) 0x0000f800;   /* 63488 or 3.13672e-319f */
+  /* 3: loadpl */
+  var38.i = (int) 0x00fc0000;   /* 16515072 or 8.15953e-317f */
+  /* 5: loadpl */
+  var39.i = (int) 0xf8000000;   /* -134217728 or 2.05568e-314f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var41 = ptr4[i];
+    /* 2: andl */
+    var42.i = var41.i & var37.i;
+    /* 4: andl */
+    var43.i = var41.i & var38.i;
+    /* 6: andl */
+    var44.i = var41.i & var39.i;
+    /* 7: shrul */
+    var45.i = ((orc_uint32) var42.i) >> 11;
+    /* 8: shrul */
+    var46.i = ((orc_uint32) var43.i) >> 13;
+    /* 9: shrul */
+    var47.i = ((orc_uint32) var44.i) >> 16;
+    /* 10: orl */
+    var48.i = var45.i | var46.i;
+    /* 11: orl */
+    var49.i = var48.i | var47.i;
+    /* 12: select0lw */
+    {
+      orc_union32 _src;
+      _src.i = var49.i;
+      var40.i = _src.x2[0];
+    }
+    /* 13: storew */
+    ptr0[i] = var40;
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_pack_BGR16_le (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union16 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var37;
+#else
+  orc_union32 var37;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var38;
+#else
+  orc_union32 var38;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var39;
+#else
+  orc_union32 var39;
+#endif
+  orc_union16 var40;
+  orc_union32 var41;
+  orc_union32 var42;
+  orc_union32 var43;
+  orc_union32 var44;
+  orc_union32 var45;
+  orc_union32 var46;
+  orc_union32 var47;
+  orc_union32 var48;
+  orc_union32 var49;
+
+  ptr0 = (orc_union16 *) ex->arrays[0];
+  ptr4 = (orc_union32 *) ex->arrays[4];
+
+  /* 1: loadpl */
+  var37.i = (int) 0x0000f800;   /* 63488 or 3.13672e-319f */
+  /* 3: loadpl */
+  var38.i = (int) 0x00fc0000;   /* 16515072 or 8.15953e-317f */
+  /* 5: loadpl */
+  var39.i = (int) 0xf8000000;   /* -134217728 or 2.05568e-314f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var41 = ptr4[i];
+    /* 2: andl */
+    var42.i = var41.i & var37.i;
+    /* 4: andl */
+    var43.i = var41.i & var38.i;
+    /* 6: andl */
+    var44.i = var41.i & var39.i;
+    /* 7: shrul */
+    var45.i = ((orc_uint32) var42.i) >> 11;
+    /* 8: shrul */
+    var46.i = ((orc_uint32) var43.i) >> 13;
+    /* 9: shrul */
+    var47.i = ((orc_uint32) var44.i) >> 16;
+    /* 10: orl */
+    var48.i = var45.i | var46.i;
+    /* 11: orl */
+    var49.i = var48.i | var47.i;
+    /* 12: select0lw */
+    {
+      orc_union32 _src;
+      _src.i = var49.i;
+      var40.i = _src.x2[0];
+    }
+    /* 13: storew */
+    ptr0[i] = var40;
+  }
+
+}
+
+void
+video_orc_pack_BGR16_le (guint16 * ORC_RESTRICT d1,
+    const guint32 * ORC_RESTRICT s1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 23, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 112, 97, 99,
+        107, 95, 66, 71, 82, 49, 54, 95, 108, 101, 11, 2, 2, 12, 4, 4,
+        14, 4, 0, 248, 0, 0, 14, 4, 0, 0, 252, 0, 14, 4, 0, 0,
+        0, 248, 14, 4, 11, 0, 0, 0, 14, 4, 13, 0, 0, 0, 14, 4,
+        16, 0, 0, 0, 20, 4, 20, 4, 20, 4, 20, 4, 20, 4, 113, 32,
+        4, 106, 33, 32, 16, 106, 34, 32, 17, 106, 35, 32, 18, 126, 33, 33,
+        19, 126, 34, 34, 20, 126, 35, 35, 21, 123, 36, 33, 34, 123, 36, 36,
+        35, 190, 0, 36, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_pack_BGR16_le);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "video_orc_pack_BGR16_le");
+      orc_program_set_backup_function (p, _backup_video_orc_pack_BGR16_le);
+      orc_program_add_destination (p, 2, "d1");
+      orc_program_add_source (p, 4, "s1");
+      orc_program_add_constant (p, 4, 0x0000f800, "c1");
+      orc_program_add_constant (p, 4, 0x00fc0000, "c2");
+      orc_program_add_constant (p, 4, 0xf8000000, "c3");
+      orc_program_add_constant (p, 4, 0x0000000b, "c4");
+      orc_program_add_constant (p, 4, 0x0000000d, "c5");
+      orc_program_add_constant (p, 4, 0x00000010, "c6");
+      orc_program_add_temporary (p, 4, "t1");
+      orc_program_add_temporary (p, 4, "t2");
+      orc_program_add_temporary (p, 4, "t3");
+      orc_program_add_temporary (p, 4, "t4");
+      orc_program_add_temporary (p, 4, "t5");
+
+      orc_program_append_2 (p, "loadl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "andl", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_C1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "andl", 0, ORC_VAR_T3, ORC_VAR_T1, ORC_VAR_C2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "andl", 0, ORC_VAR_T4, ORC_VAR_T1, ORC_VAR_C3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shrul", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shrul", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_C5,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shrul", 0, ORC_VAR_T4, ORC_VAR_T4, ORC_VAR_C6,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "orl", 0, ORC_VAR_T5, ORC_VAR_T2, ORC_VAR_T3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "orl", 0, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_T4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "select0lw", 0, ORC_VAR_D1, ORC_VAR_T5,
+          ORC_VAR_D1, ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_pack_BGR16_be */
+#ifdef DISABLE_ORC
+void
+video_orc_pack_BGR16_be (guint16 * ORC_RESTRICT d1,
+    const guint32 * ORC_RESTRICT s1, int n)
+{
+  int i;
+  orc_union16 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var37;
+#else
+  orc_union32 var37;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var38;
+#else
+  orc_union32 var38;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var39;
+#else
+  orc_union32 var39;
+#endif
+  orc_union16 var40;
+  orc_union32 var41;
+  orc_union32 var42;
+  orc_union32 var43;
+  orc_union32 var44;
+  orc_union32 var45;
+  orc_union32 var46;
+  orc_union32 var47;
+  orc_union32 var48;
+  orc_union32 var49;
+
+  ptr0 = (orc_union16 *) d1;
+  ptr4 = (orc_union32 *) s1;
+
+  /* 1: loadpl */
+  var37.i = (int) 0x00f80000;   /* 16252928 or 8.03001e-317f */
+  /* 3: loadpl */
+  var38.i = (int) 0x0000fc00;   /* 64512 or 3.18732e-319f */
+  /* 5: loadpl */
+  var39.i = (int) 0x000000f8;   /* 248 or 1.22528e-321f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var41 = ptr4[i];
+    /* 2: andl */
+    var42.i = var41.i & var37.i;
+    /* 4: andl */
+    var43.i = var41.i & var38.i;
+    /* 6: andl */
+    var44.i = var41.i & var39.i;
+    /* 7: shll */
+    var45.i = ((orc_uint32) var44.i) << 8;
+    /* 8: shrul */
+    var46.i = ((orc_uint32) var43.i) >> 5;
+    /* 9: shrul */
+    var47.i = ((orc_uint32) var42.i) >> 19;
+    /* 10: orl */
+    var48.i = var47.i | var46.i;
+    /* 11: orl */
+    var49.i = var48.i | var45.i;
+    /* 12: select1lw */
+    {
+      orc_union32 _src;
+      _src.i = var49.i;
+      var40.i = _src.x2[1];
+    }
+    /* 13: storew */
+    ptr0[i] = var40;
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_pack_BGR16_be (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union16 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var37;
+#else
+  orc_union32 var37;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var38;
+#else
+  orc_union32 var38;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var39;
+#else
+  orc_union32 var39;
+#endif
+  orc_union16 var40;
+  orc_union32 var41;
+  orc_union32 var42;
+  orc_union32 var43;
+  orc_union32 var44;
+  orc_union32 var45;
+  orc_union32 var46;
+  orc_union32 var47;
+  orc_union32 var48;
+  orc_union32 var49;
+
+  ptr0 = (orc_union16 *) ex->arrays[0];
+  ptr4 = (orc_union32 *) ex->arrays[4];
+
+  /* 1: loadpl */
+  var37.i = (int) 0x00f80000;   /* 16252928 or 8.03001e-317f */
+  /* 3: loadpl */
+  var38.i = (int) 0x0000fc00;   /* 64512 or 3.18732e-319f */
+  /* 5: loadpl */
+  var39.i = (int) 0x000000f8;   /* 248 or 1.22528e-321f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var41 = ptr4[i];
+    /* 2: andl */
+    var42.i = var41.i & var37.i;
+    /* 4: andl */
+    var43.i = var41.i & var38.i;
+    /* 6: andl */
+    var44.i = var41.i & var39.i;
+    /* 7: shll */
+    var45.i = ((orc_uint32) var44.i) << 8;
+    /* 8: shrul */
+    var46.i = ((orc_uint32) var43.i) >> 5;
+    /* 9: shrul */
+    var47.i = ((orc_uint32) var42.i) >> 19;
+    /* 10: orl */
+    var48.i = var47.i | var46.i;
+    /* 11: orl */
+    var49.i = var48.i | var45.i;
+    /* 12: select1lw */
+    {
+      orc_union32 _src;
+      _src.i = var49.i;
+      var40.i = _src.x2[1];
+    }
+    /* 13: storew */
+    ptr0[i] = var40;
+  }
+
+}
+
+void
+video_orc_pack_BGR16_be (guint16 * ORC_RESTRICT d1,
+    const guint32 * ORC_RESTRICT s1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 23, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 112, 97, 99,
+        107, 95, 66, 71, 82, 49, 54, 95, 98, 101, 11, 2, 2, 12, 4, 4,
+        14, 4, 0, 0, 248, 0, 14, 4, 0, 252, 0, 0, 14, 4, 248, 0,
+        0, 0, 14, 4, 8, 0, 0, 0, 14, 4, 5, 0, 0, 0, 14, 4,
+        19, 0, 0, 0, 20, 4, 20, 4, 20, 4, 20, 4, 20, 4, 113, 32,
+        4, 106, 33, 32, 16, 106, 34, 32, 17, 106, 35, 32, 18, 124, 35, 35,
+        19, 126, 34, 34, 20, 126, 33, 33, 21, 123, 36, 33, 34, 123, 36, 36,
+        35, 191, 0, 36, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_pack_BGR16_be);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "video_orc_pack_BGR16_be");
+      orc_program_set_backup_function (p, _backup_video_orc_pack_BGR16_be);
+      orc_program_add_destination (p, 2, "d1");
+      orc_program_add_source (p, 4, "s1");
+      orc_program_add_constant (p, 4, 0x00f80000, "c1");
+      orc_program_add_constant (p, 4, 0x0000fc00, "c2");
+      orc_program_add_constant (p, 4, 0x000000f8, "c3");
+      orc_program_add_constant (p, 4, 0x00000008, "c4");
+      orc_program_add_constant (p, 4, 0x00000005, "c5");
+      orc_program_add_constant (p, 4, 0x00000013, "c6");
+      orc_program_add_temporary (p, 4, "t1");
+      orc_program_add_temporary (p, 4, "t2");
+      orc_program_add_temporary (p, 4, "t3");
+      orc_program_add_temporary (p, 4, "t4");
+      orc_program_add_temporary (p, 4, "t5");
+
+      orc_program_append_2 (p, "loadl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "andl", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_C1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "andl", 0, ORC_VAR_T3, ORC_VAR_T1, ORC_VAR_C2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "andl", 0, ORC_VAR_T4, ORC_VAR_T1, ORC_VAR_C3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shll", 0, ORC_VAR_T4, ORC_VAR_T4, ORC_VAR_C4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shrul", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_C5,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shrul", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C6,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "orl", 0, ORC_VAR_T5, ORC_VAR_T2, ORC_VAR_T3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "orl", 0, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_T4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "select1lw", 0, ORC_VAR_D1, ORC_VAR_T5,
+          ORC_VAR_D1, ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
 /* video_orc_resample_bilinear_u32 */
 #ifdef DISABLE_ORC
 void
@@ -6809,7 +12545,7 @@
       static const orc_uint8 bc[] = {
         1, 9, 31, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 114, 101, 115,
         97, 109, 112, 108, 101, 95, 98, 105, 108, 105, 110, 101, 97, 114, 95,
-        117,
+            117,
         51, 50, 11, 4, 4, 12, 4, 4, 16, 4, 16, 4, 51, 0, 4, 24,
         25, 2, 0,
       };
@@ -6997,7 +12733,7 @@
       static const orc_uint8 bc[] = {
         1, 9, 25, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 109, 101, 114,
         103, 101, 95, 108, 105, 110, 101, 97, 114, 95, 117, 56, 11, 1, 1, 12,
-        1, 1, 12, 1, 1, 14, 4, 128, 0, 0, 0, 16, 1, 20, 2, 20,
+        1, 1, 12, 1, 1, 14, 2, 128, 0, 0, 0, 16, 1, 20, 2, 20,
         2, 20, 1, 20, 1, 43, 34, 4, 150, 32, 4, 150, 33, 5, 98, 33,
         33, 32, 89, 33, 33, 24, 70, 33, 33, 16, 158, 35, 33, 33, 0, 35,
         34, 2, 0,
@@ -7011,7 +12747,7 @@
       orc_program_add_destination (p, 1, "d1");
       orc_program_add_source (p, 1, "s1");
       orc_program_add_source (p, 1, "s2");
-      orc_program_add_constant (p, 4, 0x00000080, "c1");
+      orc_program_add_constant (p, 2, 0x00000080, "c1");
       orc_program_add_parameter (p, 1, "p1");
       orc_program_add_temporary (p, 2, "t1");
       orc_program_add_temporary (p, 2, "t2");
@@ -7056,3 +12792,18444 @@
   func (ex);
 }
 #endif
+
+
+/* video_orc_memset_2d */
+#ifdef DISABLE_ORC
+void
+video_orc_memset_2d (guint8 * ORC_RESTRICT d1, int d1_stride, int p1, int n,
+    int m)
+{
+  int i;
+  int j;
+  orc_int8 *ORC_RESTRICT ptr0;
+  orc_int8 var32;
+
+  for (j = 0; j < m; j++) {
+    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
+
+    /* 0: loadpb */
+    var32 = p1;
+
+    for (i = 0; i < n; i++) {
+      /* 1: storeb */
+      ptr0[i] = var32;
+    }
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_memset_2d (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int j;
+  int n = ex->n;
+  int m = ex->params[ORC_VAR_A1];
+  orc_int8 *ORC_RESTRICT ptr0;
+  orc_int8 var32;
+
+  for (j = 0; j < m; j++) {
+    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
+
+    /* 0: loadpb */
+    var32 = ex->params[24];
+
+    for (i = 0; i < n; i++) {
+      /* 1: storeb */
+      ptr0[i] = var32;
+    }
+  }
+
+}
+
+void
+video_orc_memset_2d (guint8 * ORC_RESTRICT d1, int d1_stride, int p1, int n,
+    int m)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 7, 9, 19, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 109, 101,
+        109, 115, 101, 116, 95, 50, 100, 11, 1, 1, 16, 1, 64, 0, 24, 2,
+        0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_memset_2d);
+#else
+      p = orc_program_new ();
+      orc_program_set_2d (p);
+      orc_program_set_name (p, "video_orc_memset_2d");
+      orc_program_set_backup_function (p, _backup_video_orc_memset_2d);
+      orc_program_add_destination (p, 1, "d1");
+      orc_program_add_parameter (p, 1, "p1");
+
+      orc_program_append_2 (p, "storeb", 0, ORC_VAR_D1, ORC_VAR_P1, ORC_VAR_D1,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ORC_EXECUTOR_M (ex) = m;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->params[ORC_VAR_D1] = d1_stride;
+  ex->params[ORC_VAR_P1] = p1;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_memcpy_2d */
+#ifdef DISABLE_ORC
+void
+video_orc_memcpy_2d (guint8 * ORC_RESTRICT d1, int d1_stride,
+    const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
+{
+  int i;
+  int j;
+  orc_int8 *ORC_RESTRICT ptr0;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  orc_int8 var32;
+  orc_int8 var33;
+
+  for (j = 0; j < m; j++) {
+    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
+    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
+
+
+    for (i = 0; i < n; i++) {
+      /* 0: loadb */
+      var32 = ptr4[i];
+      /* 1: copyb */
+      var33 = var32;
+      /* 2: storeb */
+      ptr0[i] = var33;
+    }
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_memcpy_2d (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int j;
+  int n = ex->n;
+  int m = ex->params[ORC_VAR_A1];
+  orc_int8 *ORC_RESTRICT ptr0;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  orc_int8 var32;
+  orc_int8 var33;
+
+  for (j = 0; j < m; j++) {
+    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
+    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
+
+
+    for (i = 0; i < n; i++) {
+      /* 0: loadb */
+      var32 = ptr4[i];
+      /* 1: copyb */
+      var33 = var32;
+      /* 2: storeb */
+      ptr0[i] = var33;
+    }
+  }
+
+}
+
+void
+video_orc_memcpy_2d (guint8 * ORC_RESTRICT d1, int d1_stride,
+    const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 7, 9, 19, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 109, 101,
+        109, 99, 112, 121, 95, 50, 100, 11, 1, 1, 12, 1, 1, 42, 0, 4,
+        2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_memcpy_2d);
+#else
+      p = orc_program_new ();
+      orc_program_set_2d (p);
+      orc_program_set_name (p, "video_orc_memcpy_2d");
+      orc_program_set_backup_function (p, _backup_video_orc_memcpy_2d);
+      orc_program_add_destination (p, 1, "d1");
+      orc_program_add_source (p, 1, "s1");
+
+      orc_program_append_2 (p, "copyb", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_D1,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ORC_EXECUTOR_M (ex) = m;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->params[ORC_VAR_D1] = d1_stride;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->params[ORC_VAR_S1] = s1_stride;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_convert_u16_to_u8 */
+#ifdef DISABLE_ORC
+void
+video_orc_convert_u16_to_u8 (guint8 * ORC_RESTRICT d1,
+    const guint16 * ORC_RESTRICT s1, int n)
+{
+  int i;
+  orc_int8 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+  orc_union16 var32;
+  orc_int8 var33;
+
+  ptr0 = (orc_int8 *) d1;
+  ptr4 = (orc_union16 *) s1;
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadw */
+    var32 = ptr4[i];
+    /* 1: convhwb */
+    var33 = ((orc_uint16) var32.i) >> 8;
+    /* 2: storeb */
+    ptr0[i] = var33;
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_convert_u16_to_u8 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_int8 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+  orc_union16 var32;
+  orc_int8 var33;
+
+  ptr0 = (orc_int8 *) ex->arrays[0];
+  ptr4 = (orc_union16 *) ex->arrays[4];
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadw */
+    var32 = ptr4[i];
+    /* 1: convhwb */
+    var33 = ((orc_uint16) var32.i) >> 8;
+    /* 2: storeb */
+    ptr0[i] = var33;
+  }
+
+}
+
+void
+video_orc_convert_u16_to_u8 (guint8 * ORC_RESTRICT d1,
+    const guint16 * ORC_RESTRICT s1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 27, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 99, 111, 110,
+        118, 101, 114, 116, 95, 117, 49, 54, 95, 116, 111, 95, 117, 56, 11, 1,
+        1, 12, 2, 2, 158, 0, 4, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_convert_u16_to_u8);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "video_orc_convert_u16_to_u8");
+      orc_program_set_backup_function (p, _backup_video_orc_convert_u16_to_u8);
+      orc_program_add_destination (p, 1, "d1");
+      orc_program_add_source (p, 2, "s1");
+
+      orc_program_append_2 (p, "convhwb", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_D1,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_convert_u8_to_u16 */
+#ifdef DISABLE_ORC
+void
+video_orc_convert_u8_to_u16 (guint16 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, int n)
+{
+  int i;
+  orc_union16 *ORC_RESTRICT ptr0;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  orc_int8 var32;
+  orc_int8 var33;
+  orc_union16 var34;
+
+  ptr0 = (orc_union16 *) d1;
+  ptr4 = (orc_int8 *) s1;
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadb */
+    var32 = ptr4[i];
+    /* 1: loadb */
+    var33 = ptr4[i];
+    /* 2: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var32;
+      _dest.x2[1] = var33;
+      var34.i = _dest.i;
+    }
+    /* 3: storew */
+    ptr0[i] = var34;
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_convert_u8_to_u16 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union16 *ORC_RESTRICT ptr0;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  orc_int8 var32;
+  orc_int8 var33;
+  orc_union16 var34;
+
+  ptr0 = (orc_union16 *) ex->arrays[0];
+  ptr4 = (orc_int8 *) ex->arrays[4];
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadb */
+    var32 = ptr4[i];
+    /* 1: loadb */
+    var33 = ptr4[i];
+    /* 2: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var32;
+      _dest.x2[1] = var33;
+      var34.i = _dest.i;
+    }
+    /* 3: storew */
+    ptr0[i] = var34;
+  }
+
+}
+
+void
+video_orc_convert_u8_to_u16 (guint16 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 27, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 99, 111, 110,
+        118, 101, 114, 116, 95, 117, 56, 95, 116, 111, 95, 117, 49, 54, 11, 2,
+        2, 12, 1, 1, 196, 0, 4, 4, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_convert_u8_to_u16);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "video_orc_convert_u8_to_u16");
+      orc_program_set_backup_function (p, _backup_video_orc_convert_u8_to_u16);
+      orc_program_add_destination (p, 2, "d1");
+      orc_program_add_source (p, 1, "s1");
+
+      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_S1,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_splat_u16 */
+#ifdef DISABLE_ORC
+void
+video_orc_splat_u16 (guint8 * ORC_RESTRICT d1, int p1, int n)
+{
+  int i;
+  orc_union16 *ORC_RESTRICT ptr0;
+  orc_union16 var32;
+
+  ptr0 = (orc_union16 *) d1;
+
+  /* 0: loadpw */
+  var32.i = p1;
+
+  for (i = 0; i < n; i++) {
+    /* 1: storew */
+    ptr0[i] = var32;
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_splat_u16 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union16 *ORC_RESTRICT ptr0;
+  orc_union16 var32;
+
+  ptr0 = (orc_union16 *) ex->arrays[0];
+
+  /* 0: loadpw */
+  var32.i = ex->params[24];
+
+  for (i = 0; i < n; i++) {
+    /* 1: storew */
+    ptr0[i] = var32;
+  }
+
+}
+
+void
+video_orc_splat_u16 (guint8 * ORC_RESTRICT d1, int p1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 19, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 115, 112, 108,
+        97, 116, 95, 117, 49, 54, 11, 2, 2, 16, 2, 97, 0, 24, 2, 0,
+
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_splat_u16);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "video_orc_splat_u16");
+      orc_program_set_backup_function (p, _backup_video_orc_splat_u16);
+      orc_program_add_destination (p, 2, "d1");
+      orc_program_add_parameter (p, 2, "p1");
+
+      orc_program_append_2 (p, "storew", 0, ORC_VAR_D1, ORC_VAR_P1, ORC_VAR_D1,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->params[ORC_VAR_P1] = p1;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_splat_u32 */
+#ifdef DISABLE_ORC
+void
+video_orc_splat_u32 (guint8 * ORC_RESTRICT d1, int p1, int n)
+{
+  int i;
+  orc_union32 *ORC_RESTRICT ptr0;
+  orc_union32 var32;
+
+  ptr0 = (orc_union32 *) d1;
+
+  /* 0: loadpl */
+  var32.i = p1;
+
+  for (i = 0; i < n; i++) {
+    /* 1: storel */
+    ptr0[i] = var32;
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_splat_u32 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union32 *ORC_RESTRICT ptr0;
+  orc_union32 var32;
+
+  ptr0 = (orc_union32 *) ex->arrays[0];
+
+  /* 0: loadpl */
+  var32.i = ex->params[24];
+
+  for (i = 0; i < n; i++) {
+    /* 1: storel */
+    ptr0[i] = var32;
+  }
+
+}
+
+void
+video_orc_splat_u32 (guint8 * ORC_RESTRICT d1, int p1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 19, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 115, 112, 108,
+        97, 116, 95, 117, 51, 50, 11, 4, 4, 16, 4, 128, 0, 24, 2, 0,
+
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_splat_u32);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "video_orc_splat_u32");
+      orc_program_set_backup_function (p, _backup_video_orc_splat_u32);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_parameter (p, 4, "p1");
+
+      orc_program_append_2 (p, "storel", 0, ORC_VAR_D1, ORC_VAR_P1, ORC_VAR_D1,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->params[ORC_VAR_P1] = p1;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_splat_u64 */
+#ifdef DISABLE_ORC
+void
+video_orc_splat_u64 (guint8 * ORC_RESTRICT d1, orc_int64 p1, int n)
+{
+  int i;
+  orc_union64 *ORC_RESTRICT ptr0;
+  orc_union64 var32;
+
+  ptr0 = (orc_union64 *) d1;
+
+  /* 0: loadpq */
+  var32.i = p1;
+
+  for (i = 0; i < n; i++) {
+    /* 1: storeq */
+    ptr0[i] = var32;
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_splat_u64 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union64 *ORC_RESTRICT ptr0;
+  orc_union64 var32;
+
+  ptr0 = (orc_union64 *) ex->arrays[0];
+
+  /* 0: loadpq */
+  var32.i =
+      (ex->params[24] & 0xffffffff) | ((orc_uint64) (ex->params[24 +
+              (ORC_VAR_T1 - ORC_VAR_P1)]) << 32);
+
+  for (i = 0; i < n; i++) {
+    /* 1: storeq */
+    ptr0[i] = var32;
+  }
+
+}
+
+void
+video_orc_splat_u64 (guint8 * ORC_RESTRICT d1, orc_int64 p1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 19, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 115, 112, 108,
+        97, 116, 95, 117, 54, 52, 11, 8, 8, 18, 8, 135, 0, 24, 2, 0,
+
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_splat_u64);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "video_orc_splat_u64");
+      orc_program_set_backup_function (p, _backup_video_orc_splat_u64);
+      orc_program_add_destination (p, 8, "d1");
+      orc_program_add_parameter_int64 (p, 8, "p1");
+
+      orc_program_append_2 (p, "storeq", 0, ORC_VAR_D1, ORC_VAR_P1, ORC_VAR_D1,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  {
+    orc_union64 tmp;
+    tmp.i = p1;
+    ex->params[ORC_VAR_P1] = ((orc_uint64) tmp.i) & 0xffffffff;
+    ex->params[ORC_VAR_T1] = ((orc_uint64) tmp.i) >> 32;
+  }
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_splat2_u64 */
+#ifdef DISABLE_ORC
+void
+video_orc_splat2_u64 (guint8 * ORC_RESTRICT d1, int p1, int n)
+{
+  int i;
+  orc_union64 *ORC_RESTRICT ptr0;
+  orc_union64 var33;
+  orc_union32 var34;
+
+  ptr0 = (orc_union64 *) d1;
+
+  /* 0: loadpl */
+  var34.i = p1;
+
+  for (i = 0; i < n; i++) {
+    /* 1: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var34.x4[0];
+      _dest.x2[1] = var34.x4[0];
+      var33.x4[0] = _dest.i;
+    }
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var34.x4[1];
+      _dest.x2[1] = var34.x4[1];
+      var33.x4[1] = _dest.i;
+    }
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var34.x4[2];
+      _dest.x2[1] = var34.x4[2];
+      var33.x4[2] = _dest.i;
+    }
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var34.x4[3];
+      _dest.x2[1] = var34.x4[3];
+      var33.x4[3] = _dest.i;
+    }
+    /* 2: storeq */
+    ptr0[i] = var33;
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_splat2_u64 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union64 *ORC_RESTRICT ptr0;
+  orc_union64 var33;
+  orc_union32 var34;
+
+  ptr0 = (orc_union64 *) ex->arrays[0];
+
+  /* 0: loadpl */
+  var34.i = ex->params[24];
+
+  for (i = 0; i < n; i++) {
+    /* 1: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var34.x4[0];
+      _dest.x2[1] = var34.x4[0];
+      var33.x4[0] = _dest.i;
+    }
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var34.x4[1];
+      _dest.x2[1] = var34.x4[1];
+      var33.x4[1] = _dest.i;
+    }
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var34.x4[2];
+      _dest.x2[1] = var34.x4[2];
+      var33.x4[2] = _dest.i;
+    }
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var34.x4[3];
+      _dest.x2[1] = var34.x4[3];
+      var33.x4[3] = _dest.i;
+    }
+    /* 2: storeq */
+    ptr0[i] = var33;
+  }
+
+}
+
+void
+video_orc_splat2_u64 (guint8 * ORC_RESTRICT d1, int p1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 20, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 115, 112, 108,
+        97, 116, 50, 95, 117, 54, 52, 11, 8, 8, 16, 4, 20, 4, 115, 32,
+        24, 21, 2, 196, 0, 32, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_splat2_u64);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "video_orc_splat2_u64");
+      orc_program_set_backup_function (p, _backup_video_orc_splat2_u64);
+      orc_program_add_destination (p, 8, "d1");
+      orc_program_add_parameter (p, 4, "p1");
+      orc_program_add_temporary (p, 4, "t1");
+
+      orc_program_append_2 (p, "loadpl", 0, ORC_VAR_T1, ORC_VAR_P1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergebw", 2, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T1,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->params[ORC_VAR_P1] = p1;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_convert_I420_UYVY */
+#ifdef DISABLE_ORC
+void
+video_orc_convert_I420_UYVY (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
+    const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
+    const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, int n)
+{
+  int i;
+  orc_union32 *ORC_RESTRICT ptr0;
+  orc_union32 *ORC_RESTRICT ptr1;
+  const orc_union16 *ORC_RESTRICT ptr4;
+  const orc_union16 *ORC_RESTRICT ptr5;
+  const orc_int8 *ORC_RESTRICT ptr6;
+  const orc_int8 *ORC_RESTRICT ptr7;
+  orc_int8 var33;
+  orc_int8 var34;
+  orc_union16 var35;
+  orc_union32 var36;
+  orc_union16 var37;
+  orc_union32 var38;
+  orc_union16 var39;
+
+  ptr0 = (orc_union32 *) d1;
+  ptr1 = (orc_union32 *) d2;
+  ptr4 = (orc_union16 *) s1;
+  ptr5 = (orc_union16 *) s2;
+  ptr6 = (orc_int8 *) s3;
+  ptr7 = (orc_int8 *) s4;
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadb */
+    var33 = ptr6[i];
+    /* 1: loadb */
+    var34 = ptr7[i];
+    /* 2: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var33;
+      _dest.x2[1] = var34;
+      var39.i = _dest.i;
+    }
+    /* 3: loadw */
+    var35 = ptr4[i];
+    /* 4: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var39.x2[0];
+      _dest.x2[1] = var35.x2[0];
+      var36.x2[0] = _dest.i;
+    }
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var39.x2[1];
+      _dest.x2[1] = var35.x2[1];
+      var36.x2[1] = _dest.i;
+    }
+    /* 5: storel */
+    ptr0[i] = var36;
+    /* 6: loadw */
+    var37 = ptr5[i];
+    /* 7: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var39.x2[0];
+      _dest.x2[1] = var37.x2[0];
+      var38.x2[0] = _dest.i;
+    }
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var39.x2[1];
+      _dest.x2[1] = var37.x2[1];
+      var38.x2[1] = _dest.i;
+    }
+    /* 8: storel */
+    ptr1[i] = var38;
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_convert_I420_UYVY (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union32 *ORC_RESTRICT ptr0;
+  orc_union32 *ORC_RESTRICT ptr1;
+  const orc_union16 *ORC_RESTRICT ptr4;
+  const orc_union16 *ORC_RESTRICT ptr5;
+  const orc_int8 *ORC_RESTRICT ptr6;
+  const orc_int8 *ORC_RESTRICT ptr7;
+  orc_int8 var33;
+  orc_int8 var34;
+  orc_union16 var35;
+  orc_union32 var36;
+  orc_union16 var37;
+  orc_union32 var38;
+  orc_union16 var39;
+
+  ptr0 = (orc_union32 *) ex->arrays[0];
+  ptr1 = (orc_union32 *) ex->arrays[1];
+  ptr4 = (orc_union16 *) ex->arrays[4];
+  ptr5 = (orc_union16 *) ex->arrays[5];
+  ptr6 = (orc_int8 *) ex->arrays[6];
+  ptr7 = (orc_int8 *) ex->arrays[7];
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadb */
+    var33 = ptr6[i];
+    /* 1: loadb */
+    var34 = ptr7[i];
+    /* 2: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var33;
+      _dest.x2[1] = var34;
+      var39.i = _dest.i;
+    }
+    /* 3: loadw */
+    var35 = ptr4[i];
+    /* 4: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var39.x2[0];
+      _dest.x2[1] = var35.x2[0];
+      var36.x2[0] = _dest.i;
+    }
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var39.x2[1];
+      _dest.x2[1] = var35.x2[1];
+      var36.x2[1] = _dest.i;
+    }
+    /* 5: storel */
+    ptr0[i] = var36;
+    /* 6: loadw */
+    var37 = ptr5[i];
+    /* 7: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var39.x2[0];
+      _dest.x2[1] = var37.x2[0];
+      var38.x2[0] = _dest.i;
+    }
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var39.x2[1];
+      _dest.x2[1] = var37.x2[1];
+      var38.x2[1] = _dest.i;
+    }
+    /* 8: storel */
+    ptr1[i] = var38;
+  }
+
+}
+
+void
+video_orc_convert_I420_UYVY (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
+    const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
+    const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 27, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 99, 111, 110,
+        118, 101, 114, 116, 95, 73, 52, 50, 48, 95, 85, 89, 86, 89, 11, 4,
+        4, 11, 4, 4, 12, 2, 2, 12, 2, 2, 12, 1, 1, 12, 1, 1,
+        20, 2, 196, 32, 6, 7, 21, 1, 196, 0, 32, 4, 21, 1, 196, 1,
+        32, 5, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_convert_I420_UYVY);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "video_orc_convert_I420_UYVY");
+      orc_program_set_backup_function (p, _backup_video_orc_convert_I420_UYVY);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_destination (p, 4, "d2");
+      orc_program_add_source (p, 2, "s1");
+      orc_program_add_source (p, 2, "s2");
+      orc_program_add_source (p, 1, "s3");
+      orc_program_add_source (p, 1, "s4");
+      orc_program_add_temporary (p, 2, "t1");
+
+      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_S3, ORC_VAR_S4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_S1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D2, ORC_VAR_T1, ORC_VAR_S2,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_D2] = d2;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->arrays[ORC_VAR_S2] = (void *) s2;
+  ex->arrays[ORC_VAR_S3] = (void *) s3;
+  ex->arrays[ORC_VAR_S4] = (void *) s4;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_convert_I420_YUY2 */
+#ifdef DISABLE_ORC
+void
+video_orc_convert_I420_YUY2 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
+    const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
+    const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, int n)
+{
+  int i;
+  orc_union32 *ORC_RESTRICT ptr0;
+  orc_union32 *ORC_RESTRICT ptr1;
+  const orc_union16 *ORC_RESTRICT ptr4;
+  const orc_union16 *ORC_RESTRICT ptr5;
+  const orc_int8 *ORC_RESTRICT ptr6;
+  const orc_int8 *ORC_RESTRICT ptr7;
+  orc_int8 var33;
+  orc_int8 var34;
+  orc_union16 var35;
+  orc_union32 var36;
+  orc_union16 var37;
+  orc_union32 var38;
+  orc_union16 var39;
+
+  ptr0 = (orc_union32 *) d1;
+  ptr1 = (orc_union32 *) d2;
+  ptr4 = (orc_union16 *) s1;
+  ptr5 = (orc_union16 *) s2;
+  ptr6 = (orc_int8 *) s3;
+  ptr7 = (orc_int8 *) s4;
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadb */
+    var33 = ptr6[i];
+    /* 1: loadb */
+    var34 = ptr7[i];
+    /* 2: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var33;
+      _dest.x2[1] = var34;
+      var39.i = _dest.i;
+    }
+    /* 3: loadw */
+    var35 = ptr4[i];
+    /* 4: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var35.x2[0];
+      _dest.x2[1] = var39.x2[0];
+      var36.x2[0] = _dest.i;
+    }
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var35.x2[1];
+      _dest.x2[1] = var39.x2[1];
+      var36.x2[1] = _dest.i;
+    }
+    /* 5: storel */
+    ptr0[i] = var36;
+    /* 6: loadw */
+    var37 = ptr5[i];
+    /* 7: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var37.x2[0];
+      _dest.x2[1] = var39.x2[0];
+      var38.x2[0] = _dest.i;
+    }
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var37.x2[1];
+      _dest.x2[1] = var39.x2[1];
+      var38.x2[1] = _dest.i;
+    }
+    /* 8: storel */
+    ptr1[i] = var38;
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_convert_I420_YUY2 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union32 *ORC_RESTRICT ptr0;
+  orc_union32 *ORC_RESTRICT ptr1;
+  const orc_union16 *ORC_RESTRICT ptr4;
+  const orc_union16 *ORC_RESTRICT ptr5;
+  const orc_int8 *ORC_RESTRICT ptr6;
+  const orc_int8 *ORC_RESTRICT ptr7;
+  orc_int8 var33;
+  orc_int8 var34;
+  orc_union16 var35;
+  orc_union32 var36;
+  orc_union16 var37;
+  orc_union32 var38;
+  orc_union16 var39;
+
+  ptr0 = (orc_union32 *) ex->arrays[0];
+  ptr1 = (orc_union32 *) ex->arrays[1];
+  ptr4 = (orc_union16 *) ex->arrays[4];
+  ptr5 = (orc_union16 *) ex->arrays[5];
+  ptr6 = (orc_int8 *) ex->arrays[6];
+  ptr7 = (orc_int8 *) ex->arrays[7];
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadb */
+    var33 = ptr6[i];
+    /* 1: loadb */
+    var34 = ptr7[i];
+    /* 2: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var33;
+      _dest.x2[1] = var34;
+      var39.i = _dest.i;
+    }
+    /* 3: loadw */
+    var35 = ptr4[i];
+    /* 4: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var35.x2[0];
+      _dest.x2[1] = var39.x2[0];
+      var36.x2[0] = _dest.i;
+    }
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var35.x2[1];
+      _dest.x2[1] = var39.x2[1];
+      var36.x2[1] = _dest.i;
+    }
+    /* 5: storel */
+    ptr0[i] = var36;
+    /* 6: loadw */
+    var37 = ptr5[i];
+    /* 7: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var37.x2[0];
+      _dest.x2[1] = var39.x2[0];
+      var38.x2[0] = _dest.i;
+    }
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var37.x2[1];
+      _dest.x2[1] = var39.x2[1];
+      var38.x2[1] = _dest.i;
+    }
+    /* 8: storel */
+    ptr1[i] = var38;
+  }
+
+}
+
+void
+video_orc_convert_I420_YUY2 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
+    const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
+    const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 27, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 99, 111, 110,
+        118, 101, 114, 116, 95, 73, 52, 50, 48, 95, 89, 85, 89, 50, 11, 4,
+        4, 11, 4, 4, 12, 2, 2, 12, 2, 2, 12, 1, 1, 12, 1, 1,
+        20, 2, 196, 32, 6, 7, 21, 1, 196, 0, 4, 32, 21, 1, 196, 1,
+        5, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_convert_I420_YUY2);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "video_orc_convert_I420_YUY2");
+      orc_program_set_backup_function (p, _backup_video_orc_convert_I420_YUY2);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_destination (p, 4, "d2");
+      orc_program_add_source (p, 2, "s1");
+      orc_program_add_source (p, 2, "s2");
+      orc_program_add_source (p, 1, "s3");
+      orc_program_add_source (p, 1, "s4");
+      orc_program_add_temporary (p, 2, "t1");
+
+      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_S3, ORC_VAR_S4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_T1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D2, ORC_VAR_S2, ORC_VAR_T1,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_D2] = d2;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->arrays[ORC_VAR_S2] = (void *) s2;
+  ex->arrays[ORC_VAR_S3] = (void *) s3;
+  ex->arrays[ORC_VAR_S4] = (void *) s4;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_convert_I420_AYUV */
+#ifdef DISABLE_ORC
+void
+video_orc_convert_I420_AYUV (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
+    const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
+    const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, int p1,
+    int n)
+{
+  int i;
+  orc_union32 *ORC_RESTRICT ptr0;
+  orc_union32 *ORC_RESTRICT ptr1;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  const orc_int8 *ORC_RESTRICT ptr5;
+  const orc_int8 *ORC_RESTRICT ptr6;
+  const orc_int8 *ORC_RESTRICT ptr7;
+  orc_int8 var36;
+  orc_int8 var37;
+  orc_union32 var38;
+  orc_int8 var39;
+  orc_union32 var40;
+  orc_int8 var41;
+  orc_int8 var42;
+  orc_union16 var43;
+  orc_union16 var44;
+  orc_union16 var45;
+
+  ptr0 = (orc_union32 *) d1;
+  ptr1 = (orc_union32 *) d2;
+  ptr4 = (orc_int8 *) s1;
+  ptr5 = (orc_int8 *) s2;
+  ptr6 = (orc_int8 *) s3;
+  ptr7 = (orc_int8 *) s4;
+
+  /* 3: loadpb */
+  var36 = p1;
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadupdb */
+    var41 = ptr6[i >> 1];
+    /* 1: loadupdb */
+    var42 = ptr7[i >> 1];
+    /* 2: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var41;
+      _dest.x2[1] = var42;
+      var43.i = _dest.i;
+    }
+    /* 4: loadb */
+    var37 = ptr4[i];
+    /* 5: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var36;
+      _dest.x2[1] = var37;
+      var44.i = _dest.i;
+    }
+    /* 6: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var44.i;
+      _dest.x2[1] = var43.i;
+      var38.i = _dest.i;
+    }
+    /* 7: storel */
+    ptr0[i] = var38;
+    /* 8: loadb */
+    var39 = ptr5[i];
+    /* 9: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var36;
+      _dest.x2[1] = var39;
+      var45.i = _dest.i;
+    }
+    /* 10: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var45.i;
+      _dest.x2[1] = var43.i;
+      var40.i = _dest.i;
+    }
+    /* 11: storel */
+    ptr1[i] = var40;
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_convert_I420_AYUV (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union32 *ORC_RESTRICT ptr0;
+  orc_union32 *ORC_RESTRICT ptr1;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  const orc_int8 *ORC_RESTRICT ptr5;
+  const orc_int8 *ORC_RESTRICT ptr6;
+  const orc_int8 *ORC_RESTRICT ptr7;
+  orc_int8 var36;
+  orc_int8 var37;
+  orc_union32 var38;
+  orc_int8 var39;
+  orc_union32 var40;
+  orc_int8 var41;
+  orc_int8 var42;
+  orc_union16 var43;
+  orc_union16 var44;
+  orc_union16 var45;
+
+  ptr0 = (orc_union32 *) ex->arrays[0];
+  ptr1 = (orc_union32 *) ex->arrays[1];
+  ptr4 = (orc_int8 *) ex->arrays[4];
+  ptr5 = (orc_int8 *) ex->arrays[5];
+  ptr6 = (orc_int8 *) ex->arrays[6];
+  ptr7 = (orc_int8 *) ex->arrays[7];
+
+  /* 3: loadpb */
+  var36 = ex->params[24];
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadupdb */
+    var41 = ptr6[i >> 1];
+    /* 1: loadupdb */
+    var42 = ptr7[i >> 1];
+    /* 2: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var41;
+      _dest.x2[1] = var42;
+      var43.i = _dest.i;
+    }
+    /* 4: loadb */
+    var37 = ptr4[i];
+    /* 5: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var36;
+      _dest.x2[1] = var37;
+      var44.i = _dest.i;
+    }
+    /* 6: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var44.i;
+      _dest.x2[1] = var43.i;
+      var38.i = _dest.i;
+    }
+    /* 7: storel */
+    ptr0[i] = var38;
+    /* 8: loadb */
+    var39 = ptr5[i];
+    /* 9: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var36;
+      _dest.x2[1] = var39;
+      var45.i = _dest.i;
+    }
+    /* 10: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var45.i;
+      _dest.x2[1] = var43.i;
+      var40.i = _dest.i;
+    }
+    /* 11: storel */
+    ptr1[i] = var40;
+  }
+
+}
+
+void
+video_orc_convert_I420_AYUV (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
+    const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
+    const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, int p1,
+    int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 27, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 99, 111, 110,
+        118, 101, 114, 116, 95, 73, 52, 50, 48, 95, 65, 89, 85, 86, 11, 4,
+        4, 11, 4, 4, 12, 1, 1, 12, 1, 1, 12, 1, 1, 12, 1, 1,
+        16, 1, 20, 2, 20, 2, 20, 1, 20, 1, 45, 34, 6, 45, 35, 7,
+        196, 32, 34, 35, 196, 33, 24, 4, 195, 0, 33, 32, 196, 33, 24, 5,
+        195, 1, 33, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_convert_I420_AYUV);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "video_orc_convert_I420_AYUV");
+      orc_program_set_backup_function (p, _backup_video_orc_convert_I420_AYUV);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_destination (p, 4, "d2");
+      orc_program_add_source (p, 1, "s1");
+      orc_program_add_source (p, 1, "s2");
+      orc_program_add_source (p, 1, "s3");
+      orc_program_add_source (p, 1, "s4");
+      orc_program_add_parameter (p, 1, "p1");
+      orc_program_add_temporary (p, 2, "t1");
+      orc_program_add_temporary (p, 2, "t2");
+      orc_program_add_temporary (p, 1, "t3");
+      orc_program_add_temporary (p, 1, "t4");
+
+      orc_program_append_2 (p, "loadupdb", 0, ORC_VAR_T3, ORC_VAR_S3,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "loadupdb", 0, ORC_VAR_T4, ORC_VAR_S4,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_T3, ORC_VAR_T4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T2, ORC_VAR_P1, ORC_VAR_S1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_T1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T2, ORC_VAR_P1, ORC_VAR_S2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D2, ORC_VAR_T2, ORC_VAR_T1,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_D2] = d2;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->arrays[ORC_VAR_S2] = (void *) s2;
+  ex->arrays[ORC_VAR_S3] = (void *) s3;
+  ex->arrays[ORC_VAR_S4] = (void *) s4;
+  ex->params[ORC_VAR_P1] = p1;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_convert_YUY2_I420 */
+#ifdef DISABLE_ORC
+void
+video_orc_convert_YUY2_I420 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
+    guint8 * ORC_RESTRICT d3, guint8 * ORC_RESTRICT d4,
+    const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, int n)
+{
+  int i;
+  orc_union16 *ORC_RESTRICT ptr0;
+  orc_union16 *ORC_RESTRICT ptr1;
+  orc_int8 *ORC_RESTRICT ptr2;
+  orc_int8 *ORC_RESTRICT ptr3;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  const orc_union32 *ORC_RESTRICT ptr5;
+  orc_union32 var35;
+  orc_union32 var36;
+  orc_int8 var37;
+  orc_int8 var38;
+  orc_union16 var39;
+  orc_union16 var40;
+  orc_union16 var41;
+  orc_union16 var42;
+  orc_union16 var43;
+
+  ptr0 = (orc_union16 *) d1;
+  ptr1 = (orc_union16 *) d2;
+  ptr2 = (orc_int8 *) d3;
+  ptr3 = (orc_int8 *) d4;
+  ptr4 = (orc_union32 *) s1;
+  ptr5 = (orc_union32 *) s2;
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var35 = ptr4[i];
+    /* 1: splitwb */
+    {
+      orc_union16 _src;
+      _src.i = var35.x2[0];
+      var39.x2[0] = _src.x2[1];
+      var40.x2[0] = _src.x2[0];
+    }
+    {
+      orc_union16 _src;
+      _src.i = var35.x2[1];
+      var39.x2[1] = _src.x2[1];
+      var40.x2[1] = _src.x2[0];
+    }
+    /* 2: storew */
+    ptr0[i] = var40;
+    /* 3: loadl */
+    var36 = ptr5[i];
+    /* 4: splitwb */
+    {
+      orc_union16 _src;
+      _src.i = var36.x2[0];
+      var41.x2[0] = _src.x2[1];
+      var42.x2[0] = _src.x2[0];
+    }
+    {
+      orc_union16 _src;
+      _src.i = var36.x2[1];
+      var41.x2[1] = _src.x2[1];
+      var42.x2[1] = _src.x2[0];
+    }
+    /* 5: storew */
+    ptr1[i] = var42;
+    /* 6: avgub */
+    var43.x2[0] = ((orc_uint8) var39.x2[0] + (orc_uint8) var41.x2[0] + 1) >> 1;
+    var43.x2[1] = ((orc_uint8) var39.x2[1] + (orc_uint8) var41.x2[1] + 1) >> 1;
+    /* 7: splitwb */
+    {
+      orc_union16 _src;
+      _src.i = var43.i;
+      var37 = _src.x2[1];
+      var38 = _src.x2[0];
+    }
+    /* 8: storeb */
+    ptr3[i] = var37;
+    /* 9: storeb */
+    ptr2[i] = var38;
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_convert_YUY2_I420 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union16 *ORC_RESTRICT ptr0;
+  orc_union16 *ORC_RESTRICT ptr1;
+  orc_int8 *ORC_RESTRICT ptr2;
+  orc_int8 *ORC_RESTRICT ptr3;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  const orc_union32 *ORC_RESTRICT ptr5;
+  orc_union32 var35;
+  orc_union32 var36;
+  orc_int8 var37;
+  orc_int8 var38;
+  orc_union16 var39;
+  orc_union16 var40;
+  orc_union16 var41;
+  orc_union16 var42;
+  orc_union16 var43;
+
+  ptr0 = (orc_union16 *) ex->arrays[0];
+  ptr1 = (orc_union16 *) ex->arrays[1];
+  ptr2 = (orc_int8 *) ex->arrays[2];
+  ptr3 = (orc_int8 *) ex->arrays[3];
+  ptr4 = (orc_union32 *) ex->arrays[4];
+  ptr5 = (orc_union32 *) ex->arrays[5];
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var35 = ptr4[i];
+    /* 1: splitwb */
+    {
+      orc_union16 _src;
+      _src.i = var35.x2[0];
+      var39.x2[0] = _src.x2[1];
+      var40.x2[0] = _src.x2[0];
+    }
+    {
+      orc_union16 _src;
+      _src.i = var35.x2[1];
+      var39.x2[1] = _src.x2[1];
+      var40.x2[1] = _src.x2[0];
+    }
+    /* 2: storew */
+    ptr0[i] = var40;
+    /* 3: loadl */
+    var36 = ptr5[i];
+    /* 4: splitwb */
+    {
+      orc_union16 _src;
+      _src.i = var36.x2[0];
+      var41.x2[0] = _src.x2[1];
+      var42.x2[0] = _src.x2[0];
+    }
+    {
+      orc_union16 _src;
+      _src.i = var36.x2[1];
+      var41.x2[1] = _src.x2[1];
+      var42.x2[1] = _src.x2[0];
+    }
+    /* 5: storew */
+    ptr1[i] = var42;
+    /* 6: avgub */
+    var43.x2[0] = ((orc_uint8) var39.x2[0] + (orc_uint8) var41.x2[0] + 1) >> 1;
+    var43.x2[1] = ((orc_uint8) var39.x2[1] + (orc_uint8) var41.x2[1] + 1) >> 1;
+    /* 7: splitwb */
+    {
+      orc_union16 _src;
+      _src.i = var43.i;
+      var37 = _src.x2[1];
+      var38 = _src.x2[0];
+    }
+    /* 8: storeb */
+    ptr3[i] = var37;
+    /* 9: storeb */
+    ptr2[i] = var38;
+  }
+
+}
+
+void
+video_orc_convert_YUY2_I420 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
+    guint8 * ORC_RESTRICT d3, guint8 * ORC_RESTRICT d4,
+    const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 27, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 99, 111, 110,
+        118, 101, 114, 116, 95, 89, 85, 89, 50, 95, 73, 52, 50, 48, 11, 2,
+        2, 11, 2, 2, 11, 1, 1, 11, 1, 1, 12, 4, 4, 12, 4, 4,
+        20, 2, 20, 2, 20, 2, 21, 1, 199, 32, 34, 4, 97, 0, 34, 21,
+        1, 199, 33, 34, 5, 97, 1, 34, 21, 1, 39, 32, 32, 33, 199, 3,
+        2, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_convert_YUY2_I420);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "video_orc_convert_YUY2_I420");
+      orc_program_set_backup_function (p, _backup_video_orc_convert_YUY2_I420);
+      orc_program_add_destination (p, 2, "d1");
+      orc_program_add_destination (p, 2, "d2");
+      orc_program_add_destination (p, 1, "d3");
+      orc_program_add_destination (p, 1, "d4");
+      orc_program_add_source (p, 4, "s1");
+      orc_program_add_source (p, 4, "s2");
+      orc_program_add_temporary (p, 2, "t1");
+      orc_program_add_temporary (p, 2, "t2");
+      orc_program_add_temporary (p, 2, "t3");
+
+      orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T1, ORC_VAR_T3, ORC_VAR_S1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "storew", 0, ORC_VAR_D1, ORC_VAR_T3, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T2, ORC_VAR_T3, ORC_VAR_S2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "storew", 0, ORC_VAR_D2, ORC_VAR_T3, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "avgub", 1, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_D4, ORC_VAR_D3, ORC_VAR_T1,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_D2] = d2;
+  ex->arrays[ORC_VAR_D3] = d3;
+  ex->arrays[ORC_VAR_D4] = d4;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->arrays[ORC_VAR_S2] = (void *) s2;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_convert_UYVY_YUY2 */
+#ifdef DISABLE_ORC
+void
+video_orc_convert_UYVY_YUY2 (guint8 * ORC_RESTRICT d1, int d1_stride,
+    const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
+{
+  int i;
+  int j;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var32;
+  orc_union32 var33;
+
+  for (j = 0; j < m; j++) {
+    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
+    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
+
+
+    for (i = 0; i < n; i++) {
+      /* 0: loadl */
+      var32 = ptr4[i];
+      /* 1: swapw */
+      var33.x2[0] = ORC_SWAP_W (var32.x2[0]);
+      var33.x2[1] = ORC_SWAP_W (var32.x2[1]);
+      /* 2: storel */
+      ptr0[i] = var33;
+    }
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_convert_UYVY_YUY2 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int j;
+  int n = ex->n;
+  int m = ex->params[ORC_VAR_A1];
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var32;
+  orc_union32 var33;
+
+  for (j = 0; j < m; j++) {
+    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
+    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
+
+
+    for (i = 0; i < n; i++) {
+      /* 0: loadl */
+      var32 = ptr4[i];
+      /* 1: swapw */
+      var33.x2[0] = ORC_SWAP_W (var32.x2[0]);
+      var33.x2[1] = ORC_SWAP_W (var32.x2[1]);
+      /* 2: storel */
+      ptr0[i] = var33;
+    }
+  }
+
+}
+
+void
+video_orc_convert_UYVY_YUY2 (guint8 * ORC_RESTRICT d1, int d1_stride,
+    const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 7, 9, 27, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 99, 111,
+        110, 118, 101, 114, 116, 95, 85, 89, 86, 89, 95, 89, 85, 89, 50, 11,
+        4, 4, 12, 4, 4, 21, 1, 183, 0, 4, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_convert_UYVY_YUY2);
+#else
+      p = orc_program_new ();
+      orc_program_set_2d (p);
+      orc_program_set_name (p, "video_orc_convert_UYVY_YUY2");
+      orc_program_set_backup_function (p, _backup_video_orc_convert_UYVY_YUY2);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 4, "s1");
+
+      orc_program_append_2 (p, "swapw", 1, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_D1,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ORC_EXECUTOR_M (ex) = m;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->params[ORC_VAR_D1] = d1_stride;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->params[ORC_VAR_S1] = s1_stride;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_planar_chroma_420_422 */
+#ifdef DISABLE_ORC
+void
+video_orc_planar_chroma_420_422 (guint8 * ORC_RESTRICT d1, int d1_stride,
+    guint8 * ORC_RESTRICT d2, int d2_stride, const guint8 * ORC_RESTRICT s1,
+    int s1_stride, int n, int m)
+{
+  int i;
+  int j;
+  orc_int8 *ORC_RESTRICT ptr0;
+  orc_int8 *ORC_RESTRICT ptr1;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  orc_int8 var32;
+  orc_int8 var33;
+  orc_int8 var34;
+  orc_int8 var35;
+
+  for (j = 0; j < m; j++) {
+    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
+    ptr1 = ORC_PTR_OFFSET (d2, d2_stride * j);
+    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
+
+
+    for (i = 0; i < n; i++) {
+      /* 0: loadb */
+      var32 = ptr4[i];
+      /* 1: copyb */
+      var33 = var32;
+      /* 2: storeb */
+      ptr0[i] = var33;
+      /* 3: loadb */
+      var34 = ptr4[i];
+      /* 4: copyb */
+      var35 = var34;
+      /* 5: storeb */
+      ptr1[i] = var35;
+    }
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_planar_chroma_420_422 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int j;
+  int n = ex->n;
+  int m = ex->params[ORC_VAR_A1];
+  orc_int8 *ORC_RESTRICT ptr0;
+  orc_int8 *ORC_RESTRICT ptr1;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  orc_int8 var32;
+  orc_int8 var33;
+  orc_int8 var34;
+  orc_int8 var35;
+
+  for (j = 0; j < m; j++) {
+    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
+    ptr1 = ORC_PTR_OFFSET (ex->arrays[1], ex->params[1] * j);
+    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
+
+
+    for (i = 0; i < n; i++) {
+      /* 0: loadb */
+      var32 = ptr4[i];
+      /* 1: copyb */
+      var33 = var32;
+      /* 2: storeb */
+      ptr0[i] = var33;
+      /* 3: loadb */
+      var34 = ptr4[i];
+      /* 4: copyb */
+      var35 = var34;
+      /* 5: storeb */
+      ptr1[i] = var35;
+    }
+  }
+
+}
+
+void
+video_orc_planar_chroma_420_422 (guint8 * ORC_RESTRICT d1, int d1_stride,
+    guint8 * ORC_RESTRICT d2, int d2_stride, const guint8 * ORC_RESTRICT s1,
+    int s1_stride, int n, int m)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 7, 9, 31, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 112, 108,
+        97, 110, 97, 114, 95, 99, 104, 114, 111, 109, 97, 95, 52, 50, 48, 95,
+        52, 50, 50, 11, 1, 1, 11, 1, 1, 12, 1, 1, 42, 0, 4, 42,
+        1, 4, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_orc_planar_chroma_420_422);
+#else
+      p = orc_program_new ();
+      orc_program_set_2d (p);
+      orc_program_set_name (p, "video_orc_planar_chroma_420_422");
+      orc_program_set_backup_function (p,
+          _backup_video_orc_planar_chroma_420_422);
+      orc_program_add_destination (p, 1, "d1");
+      orc_program_add_destination (p, 1, "d2");
+      orc_program_add_source (p, 1, "s1");
+
+      orc_program_append_2 (p, "copyb", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "copyb", 0, ORC_VAR_D2, ORC_VAR_S1, ORC_VAR_D1,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ORC_EXECUTOR_M (ex) = m;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->params[ORC_VAR_D1] = d1_stride;
+  ex->arrays[ORC_VAR_D2] = d2;
+  ex->params[ORC_VAR_D2] = d2_stride;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->params[ORC_VAR_S1] = s1_stride;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_planar_chroma_420_444 */
+#ifdef DISABLE_ORC
+void
+video_orc_planar_chroma_420_444 (guint8 * ORC_RESTRICT d1, int d1_stride,
+    guint8 * ORC_RESTRICT d2, int d2_stride, const guint8 * ORC_RESTRICT s1,
+    int s1_stride, int n, int m)
+{
+  int i;
+  int j;
+  orc_union16 *ORC_RESTRICT ptr0;
+  orc_union16 *ORC_RESTRICT ptr1;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  orc_int8 var33;
+  orc_union16 var34;
+
+  for (j = 0; j < m; j++) {
+    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
+    ptr1 = ORC_PTR_OFFSET (d2, d2_stride * j);
+    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
+
+
+    for (i = 0; i < n; i++) {
+      /* 0: loadb */
+      var33 = ptr4[i];
+      /* 1: splatbw */
+      var34.i = ((var33 & 0xff) << 8) | (var33 & 0xff);
+      /* 2: storew */
+      ptr0[i] = var34;
+      /* 3: storew */
+      ptr1[i] = var34;
+    }
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_planar_chroma_420_444 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int j;
+  int n = ex->n;
+  int m = ex->params[ORC_VAR_A1];
+  orc_union16 *ORC_RESTRICT ptr0;
+  orc_union16 *ORC_RESTRICT ptr1;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  orc_int8 var33;
+  orc_union16 var34;
+
+  for (j = 0; j < m; j++) {
+    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
+    ptr1 = ORC_PTR_OFFSET (ex->arrays[1], ex->params[1] * j);
+    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
+
+
+    for (i = 0; i < n; i++) {
+      /* 0: loadb */
+      var33 = ptr4[i];
+      /* 1: splatbw */
+      var34.i = ((var33 & 0xff) << 8) | (var33 & 0xff);
+      /* 2: storew */
+      ptr0[i] = var34;
+      /* 3: storew */
+      ptr1[i] = var34;
+    }
+  }
+
+}
+
+void
+video_orc_planar_chroma_420_444 (guint8 * ORC_RESTRICT d1, int d1_stride,
+    guint8 * ORC_RESTRICT d2, int d2_stride, const guint8 * ORC_RESTRICT s1,
+    int s1_stride, int n, int m)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 7, 9, 31, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 112, 108,
+        97, 110, 97, 114, 95, 99, 104, 114, 111, 109, 97, 95, 52, 50, 48, 95,
+        52, 52, 52, 11, 2, 2, 11, 2, 2, 12, 1, 1, 20, 2, 151, 32,
+        4, 97, 0, 32, 97, 1, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_orc_planar_chroma_420_444);
+#else
+      p = orc_program_new ();
+      orc_program_set_2d (p);
+      orc_program_set_name (p, "video_orc_planar_chroma_420_444");
+      orc_program_set_backup_function (p,
+          _backup_video_orc_planar_chroma_420_444);
+      orc_program_add_destination (p, 2, "d1");
+      orc_program_add_destination (p, 2, "d2");
+      orc_program_add_source (p, 1, "s1");
+      orc_program_add_temporary (p, 2, "t1");
+
+      orc_program_append_2 (p, "splatbw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "storew", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "storew", 0, ORC_VAR_D2, ORC_VAR_T1, ORC_VAR_D1,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ORC_EXECUTOR_M (ex) = m;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->params[ORC_VAR_D1] = d1_stride;
+  ex->arrays[ORC_VAR_D2] = d2;
+  ex->params[ORC_VAR_D2] = d2_stride;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->params[ORC_VAR_S1] = s1_stride;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_planar_chroma_422_444 */
+#ifdef DISABLE_ORC
+void
+video_orc_planar_chroma_422_444 (guint8 * ORC_RESTRICT d1, int d1_stride,
+    const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
+{
+  int i;
+  int j;
+  orc_union16 *ORC_RESTRICT ptr0;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  orc_int8 var33;
+  orc_union16 var34;
+
+  for (j = 0; j < m; j++) {
+    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
+    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
+
+
+    for (i = 0; i < n; i++) {
+      /* 0: loadb */
+      var33 = ptr4[i];
+      /* 1: splatbw */
+      var34.i = ((var33 & 0xff) << 8) | (var33 & 0xff);
+      /* 2: storew */
+      ptr0[i] = var34;
+    }
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_planar_chroma_422_444 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int j;
+  int n = ex->n;
+  int m = ex->params[ORC_VAR_A1];
+  orc_union16 *ORC_RESTRICT ptr0;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  orc_int8 var33;
+  orc_union16 var34;
+
+  for (j = 0; j < m; j++) {
+    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
+    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
+
+
+    for (i = 0; i < n; i++) {
+      /* 0: loadb */
+      var33 = ptr4[i];
+      /* 1: splatbw */
+      var34.i = ((var33 & 0xff) << 8) | (var33 & 0xff);
+      /* 2: storew */
+      ptr0[i] = var34;
+    }
+  }
+
+}
+
+void
+video_orc_planar_chroma_422_444 (guint8 * ORC_RESTRICT d1, int d1_stride,
+    const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 7, 9, 31, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 112, 108,
+        97, 110, 97, 114, 95, 99, 104, 114, 111, 109, 97, 95, 52, 50, 50, 95,
+        52, 52, 52, 11, 2, 2, 12, 1, 1, 20, 2, 151, 32, 4, 97, 0,
+        32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_orc_planar_chroma_422_444);
+#else
+      p = orc_program_new ();
+      orc_program_set_2d (p);
+      orc_program_set_name (p, "video_orc_planar_chroma_422_444");
+      orc_program_set_backup_function (p,
+          _backup_video_orc_planar_chroma_422_444);
+      orc_program_add_destination (p, 2, "d1");
+      orc_program_add_source (p, 1, "s1");
+      orc_program_add_temporary (p, 2, "t1");
+
+      orc_program_append_2 (p, "splatbw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "storew", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ORC_EXECUTOR_M (ex) = m;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->params[ORC_VAR_D1] = d1_stride;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->params[ORC_VAR_S1] = s1_stride;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_planar_chroma_444_422 */
+#ifdef DISABLE_ORC
+void
+video_orc_planar_chroma_444_422 (guint8 * ORC_RESTRICT d1, int d1_stride,
+    const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
+{
+  int i;
+  int j;
+  orc_int8 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+  orc_union16 var34;
+  orc_int8 var35;
+  orc_int8 var36;
+  orc_int8 var37;
+
+  for (j = 0; j < m; j++) {
+    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
+    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
+
+
+    for (i = 0; i < n; i++) {
+      /* 0: loadw */
+      var34 = ptr4[i];
+      /* 1: splitwb */
+      {
+        orc_union16 _src;
+        _src.i = var34.i;
+        var36 = _src.x2[1];
+        var37 = _src.x2[0];
+      }
+      /* 2: avgub */
+      var35 = ((orc_uint8) var36 + (orc_uint8) var37 + 1) >> 1;
+      /* 3: storeb */
+      ptr0[i] = var35;
+    }
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_planar_chroma_444_422 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int j;
+  int n = ex->n;
+  int m = ex->params[ORC_VAR_A1];
+  orc_int8 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+  orc_union16 var34;
+  orc_int8 var35;
+  orc_int8 var36;
+  orc_int8 var37;
+
+  for (j = 0; j < m; j++) {
+    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
+    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
+
+
+    for (i = 0; i < n; i++) {
+      /* 0: loadw */
+      var34 = ptr4[i];
+      /* 1: splitwb */
+      {
+        orc_union16 _src;
+        _src.i = var34.i;
+        var36 = _src.x2[1];
+        var37 = _src.x2[0];
+      }
+      /* 2: avgub */
+      var35 = ((orc_uint8) var36 + (orc_uint8) var37 + 1) >> 1;
+      /* 3: storeb */
+      ptr0[i] = var35;
+    }
+  }
+
+}
+
+void
+video_orc_planar_chroma_444_422 (guint8 * ORC_RESTRICT d1, int d1_stride,
+    const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 7, 9, 31, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 112, 108,
+        97, 110, 97, 114, 95, 99, 104, 114, 111, 109, 97, 95, 52, 52, 52, 95,
+        52, 50, 50, 11, 1, 1, 12, 2, 2, 20, 1, 20, 1, 199, 32, 33,
+        4, 39, 0, 32, 33, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_orc_planar_chroma_444_422);
+#else
+      p = orc_program_new ();
+      orc_program_set_2d (p);
+      orc_program_set_name (p, "video_orc_planar_chroma_444_422");
+      orc_program_set_backup_function (p,
+          _backup_video_orc_planar_chroma_444_422);
+      orc_program_add_destination (p, 1, "d1");
+      orc_program_add_source (p, 2, "s1");
+      orc_program_add_temporary (p, 1, "t1");
+      orc_program_add_temporary (p, 1, "t2");
+
+      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T1, ORC_VAR_T2, ORC_VAR_S1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "avgub", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T2,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ORC_EXECUTOR_M (ex) = m;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->params[ORC_VAR_D1] = d1_stride;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->params[ORC_VAR_S1] = s1_stride;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_planar_chroma_444_420 */
+#ifdef DISABLE_ORC
+void
+video_orc_planar_chroma_444_420 (guint8 * ORC_RESTRICT d1, int d1_stride,
+    const guint8 * ORC_RESTRICT s1, int s1_stride,
+    const guint8 * ORC_RESTRICT s2, int s2_stride, int n, int m)
+{
+  int i;
+  int j;
+  orc_int8 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+  const orc_union16 *ORC_RESTRICT ptr5;
+  orc_union16 var35;
+  orc_union16 var36;
+  orc_int8 var37;
+  orc_union16 var38;
+  orc_int8 var39;
+  orc_int8 var40;
+
+  for (j = 0; j < m; j++) {
+    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
+    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
+    ptr5 = ORC_PTR_OFFSET (s2, s2_stride * j);
+
+
+    for (i = 0; i < n; i++) {
+      /* 0: loadw */
+      var35 = ptr4[i];
+      /* 1: loadw */
+      var36 = ptr5[i];
+      /* 2: avgub */
+      var38.x2[0] =
+          ((orc_uint8) var35.x2[0] + (orc_uint8) var36.x2[0] + 1) >> 1;
+      var38.x2[1] =
+          ((orc_uint8) var35.x2[1] + (orc_uint8) var36.x2[1] + 1) >> 1;
+      /* 3: splitwb */
+      {
+        orc_union16 _src;
+        _src.i = var38.i;
+        var39 = _src.x2[1];
+        var40 = _src.x2[0];
+      }
+      /* 4: avgub */
+      var37 = ((orc_uint8) var39 + (orc_uint8) var40 + 1) >> 1;
+      /* 5: storeb */
+      ptr0[i] = var37;
+    }
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_planar_chroma_444_420 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int j;
+  int n = ex->n;
+  int m = ex->params[ORC_VAR_A1];
+  orc_int8 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+  const orc_union16 *ORC_RESTRICT ptr5;
+  orc_union16 var35;
+  orc_union16 var36;
+  orc_int8 var37;
+  orc_union16 var38;
+  orc_int8 var39;
+  orc_int8 var40;
+
+  for (j = 0; j < m; j++) {
+    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
+    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
+    ptr5 = ORC_PTR_OFFSET (ex->arrays[5], ex->params[5] * j);
+
+
+    for (i = 0; i < n; i++) {
+      /* 0: loadw */
+      var35 = ptr4[i];
+      /* 1: loadw */
+      var36 = ptr5[i];
+      /* 2: avgub */
+      var38.x2[0] =
+          ((orc_uint8) var35.x2[0] + (orc_uint8) var36.x2[0] + 1) >> 1;
+      var38.x2[1] =
+          ((orc_uint8) var35.x2[1] + (orc_uint8) var36.x2[1] + 1) >> 1;
+      /* 3: splitwb */
+      {
+        orc_union16 _src;
+        _src.i = var38.i;
+        var39 = _src.x2[1];
+        var40 = _src.x2[0];
+      }
+      /* 4: avgub */
+      var37 = ((orc_uint8) var39 + (orc_uint8) var40 + 1) >> 1;
+      /* 5: storeb */
+      ptr0[i] = var37;
+    }
+  }
+
+}
+
+void
+video_orc_planar_chroma_444_420 (guint8 * ORC_RESTRICT d1, int d1_stride,
+    const guint8 * ORC_RESTRICT s1, int s1_stride,
+    const guint8 * ORC_RESTRICT s2, int s2_stride, int n, int m)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 7, 9, 31, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 112, 108,
+        97, 110, 97, 114, 95, 99, 104, 114, 111, 109, 97, 95, 52, 52, 52, 95,
+        52, 50, 48, 11, 1, 1, 12, 2, 2, 12, 2, 2, 20, 2, 20, 1,
+        20, 1, 21, 1, 39, 32, 4, 5, 199, 33, 34, 32, 39, 0, 33, 34,
+        2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_orc_planar_chroma_444_420);
+#else
+      p = orc_program_new ();
+      orc_program_set_2d (p);
+      orc_program_set_name (p, "video_orc_planar_chroma_444_420");
+      orc_program_set_backup_function (p,
+          _backup_video_orc_planar_chroma_444_420);
+      orc_program_add_destination (p, 1, "d1");
+      orc_program_add_source (p, 2, "s1");
+      orc_program_add_source (p, 2, "s2");
+      orc_program_add_temporary (p, 2, "t1");
+      orc_program_add_temporary (p, 1, "t2");
+      orc_program_add_temporary (p, 1, "t3");
+
+      orc_program_append_2 (p, "avgub", 1, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_S2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T2, ORC_VAR_T3, ORC_VAR_T1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "avgub", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_T3,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ORC_EXECUTOR_M (ex) = m;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->params[ORC_VAR_D1] = d1_stride;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->params[ORC_VAR_S1] = s1_stride;
+  ex->arrays[ORC_VAR_S2] = (void *) s2;
+  ex->params[ORC_VAR_S2] = s2_stride;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_planar_chroma_422_420 */
+#ifdef DISABLE_ORC
+void
+video_orc_planar_chroma_422_420 (guint8 * ORC_RESTRICT d1, int d1_stride,
+    const guint8 * ORC_RESTRICT s1, int s1_stride,
+    const guint8 * ORC_RESTRICT s2, int s2_stride, int n, int m)
+{
+  int i;
+  int j;
+  orc_int8 *ORC_RESTRICT ptr0;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  const orc_int8 *ORC_RESTRICT ptr5;
+  orc_int8 var32;
+  orc_int8 var33;
+  orc_int8 var34;
+
+  for (j = 0; j < m; j++) {
+    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
+    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
+    ptr5 = ORC_PTR_OFFSET (s2, s2_stride * j);
+
+
+    for (i = 0; i < n; i++) {
+      /* 0: loadb */
+      var32 = ptr4[i];
+      /* 1: loadb */
+      var33 = ptr5[i];
+      /* 2: avgub */
+      var34 = ((orc_uint8) var32 + (orc_uint8) var33 + 1) >> 1;
+      /* 3: storeb */
+      ptr0[i] = var34;
+    }
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_planar_chroma_422_420 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int j;
+  int n = ex->n;
+  int m = ex->params[ORC_VAR_A1];
+  orc_int8 *ORC_RESTRICT ptr0;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  const orc_int8 *ORC_RESTRICT ptr5;
+  orc_int8 var32;
+  orc_int8 var33;
+  orc_int8 var34;
+
+  for (j = 0; j < m; j++) {
+    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
+    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
+    ptr5 = ORC_PTR_OFFSET (ex->arrays[5], ex->params[5] * j);
+
+
+    for (i = 0; i < n; i++) {
+      /* 0: loadb */
+      var32 = ptr4[i];
+      /* 1: loadb */
+      var33 = ptr5[i];
+      /* 2: avgub */
+      var34 = ((orc_uint8) var32 + (orc_uint8) var33 + 1) >> 1;
+      /* 3: storeb */
+      ptr0[i] = var34;
+    }
+  }
+
+}
+
+void
+video_orc_planar_chroma_422_420 (guint8 * ORC_RESTRICT d1, int d1_stride,
+    const guint8 * ORC_RESTRICT s1, int s1_stride,
+    const guint8 * ORC_RESTRICT s2, int s2_stride, int n, int m)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 7, 9, 31, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 112, 108,
+        97, 110, 97, 114, 95, 99, 104, 114, 111, 109, 97, 95, 52, 50, 50, 95,
+        52, 50, 48, 11, 1, 1, 12, 1, 1, 12, 1, 1, 39, 0, 4, 5,
+        2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_orc_planar_chroma_422_420);
+#else
+      p = orc_program_new ();
+      orc_program_set_2d (p);
+      orc_program_set_name (p, "video_orc_planar_chroma_422_420");
+      orc_program_set_backup_function (p,
+          _backup_video_orc_planar_chroma_422_420);
+      orc_program_add_destination (p, 1, "d1");
+      orc_program_add_source (p, 1, "s1");
+      orc_program_add_source (p, 1, "s2");
+
+      orc_program_append_2 (p, "avgub", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_S2,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ORC_EXECUTOR_M (ex) = m;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->params[ORC_VAR_D1] = d1_stride;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->params[ORC_VAR_S1] = s1_stride;
+  ex->arrays[ORC_VAR_S2] = (void *) s2;
+  ex->params[ORC_VAR_S2] = s2_stride;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_convert_YUY2_AYUV */
+#ifdef DISABLE_ORC
+void
+video_orc_convert_YUY2_AYUV (guint8 * ORC_RESTRICT d1, int d1_stride,
+    const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m)
+{
+  int i;
+  int j;
+  orc_union64 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var36;
+  orc_union16 var37;
+  orc_union64 var38;
+  orc_union16 var39;
+  orc_union16 var40;
+  orc_union32 var41;
+  orc_union32 var42;
+
+  for (j = 0; j < m; j++) {
+    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
+    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
+
+    /* 2: loadpb */
+    var37.x2[0] = p1;
+    var37.x2[1] = p1;
+
+    for (i = 0; i < n; i++) {
+      /* 0: loadl */
+      var36 = ptr4[i];
+      /* 1: splitwb */
+      {
+        orc_union16 _src;
+        _src.i = var36.x2[0];
+        var39.x2[0] = _src.x2[1];
+        var40.x2[0] = _src.x2[0];
+      }
+      {
+        orc_union16 _src;
+        _src.i = var36.x2[1];
+        var39.x2[1] = _src.x2[1];
+        var40.x2[1] = _src.x2[0];
+      }
+      /* 3: mergebw */
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var37.x2[0];
+        _dest.x2[1] = var40.x2[0];
+        var41.x2[0] = _dest.i;
+      }
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var37.x2[1];
+        _dest.x2[1] = var40.x2[1];
+        var41.x2[1] = _dest.i;
+      }
+      /* 4: mergewl */
+      {
+        orc_union32 _dest;
+        _dest.x2[0] = var39.i;
+        _dest.x2[1] = var39.i;
+        var42.i = _dest.i;
+      }
+      /* 5: mergewl */
+      {
+        orc_union32 _dest;
+        _dest.x2[0] = var41.x2[0];
+        _dest.x2[1] = var42.x2[0];
+        var38.x2[0] = _dest.i;
+      }
+      {
+        orc_union32 _dest;
+        _dest.x2[0] = var41.x2[1];
+        _dest.x2[1] = var42.x2[1];
+        var38.x2[1] = _dest.i;
+      }
+      /* 6: storeq */
+      ptr0[i] = var38;
+    }
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_convert_YUY2_AYUV (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int j;
+  int n = ex->n;
+  int m = ex->params[ORC_VAR_A1];
+  orc_union64 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var36;
+  orc_union16 var37;
+  orc_union64 var38;
+  orc_union16 var39;
+  orc_union16 var40;
+  orc_union32 var41;
+  orc_union32 var42;
+
+  for (j = 0; j < m; j++) {
+    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
+    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
+
+    /* 2: loadpb */
+    var37.x2[0] = ex->params[24];
+    var37.x2[1] = ex->params[24];
+
+    for (i = 0; i < n; i++) {
+      /* 0: loadl */
+      var36 = ptr4[i];
+      /* 1: splitwb */
+      {
+        orc_union16 _src;
+        _src.i = var36.x2[0];
+        var39.x2[0] = _src.x2[1];
+        var40.x2[0] = _src.x2[0];
+      }
+      {
+        orc_union16 _src;
+        _src.i = var36.x2[1];
+        var39.x2[1] = _src.x2[1];
+        var40.x2[1] = _src.x2[0];
+      }
+      /* 3: mergebw */
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var37.x2[0];
+        _dest.x2[1] = var40.x2[0];
+        var41.x2[0] = _dest.i;
+      }
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var37.x2[1];
+        _dest.x2[1] = var40.x2[1];
+        var41.x2[1] = _dest.i;
+      }
+      /* 4: mergewl */
+      {
+        orc_union32 _dest;
+        _dest.x2[0] = var39.i;
+        _dest.x2[1] = var39.i;
+        var42.i = _dest.i;
+      }
+      /* 5: mergewl */
+      {
+        orc_union32 _dest;
+        _dest.x2[0] = var41.x2[0];
+        _dest.x2[1] = var42.x2[0];
+        var38.x2[0] = _dest.i;
+      }
+      {
+        orc_union32 _dest;
+        _dest.x2[0] = var41.x2[1];
+        _dest.x2[1] = var42.x2[1];
+        var38.x2[1] = _dest.i;
+      }
+      /* 6: storeq */
+      ptr0[i] = var38;
+    }
+  }
+
+}
+
+void
+video_orc_convert_YUY2_AYUV (guint8 * ORC_RESTRICT d1, int d1_stride,
+    const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 7, 9, 27, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 99, 111,
+        110, 118, 101, 114, 116, 95, 89, 85, 89, 50, 95, 65, 89, 85, 86, 11,
+        8, 8, 12, 4, 4, 16, 1, 20, 2, 20, 2, 20, 4, 20, 4, 21,
+        1, 199, 33, 32, 4, 21, 1, 196, 34, 24, 32, 195, 35, 33, 33, 21,
+        1, 195, 0, 34, 35, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_convert_YUY2_AYUV);
+#else
+      p = orc_program_new ();
+      orc_program_set_2d (p);
+      orc_program_set_name (p, "video_orc_convert_YUY2_AYUV");
+      orc_program_set_backup_function (p, _backup_video_orc_convert_YUY2_AYUV);
+      orc_program_add_destination (p, 8, "d1");
+      orc_program_add_source (p, 4, "s1");
+      orc_program_add_parameter (p, 1, "p1");
+      orc_program_add_temporary (p, 2, "t1");
+      orc_program_add_temporary (p, 2, "t2");
+      orc_program_add_temporary (p, 4, "t3");
+      orc_program_add_temporary (p, 4, "t4");
+
+      orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_S1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergebw", 1, ORC_VAR_T3, ORC_VAR_P1, ORC_VAR_T1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T4, ORC_VAR_T2, ORC_VAR_T2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergewl", 1, ORC_VAR_D1, ORC_VAR_T3, ORC_VAR_T4,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ORC_EXECUTOR_M (ex) = m;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->params[ORC_VAR_D1] = d1_stride;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->params[ORC_VAR_S1] = s1_stride;
+  ex->params[ORC_VAR_P1] = p1;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_convert_UYVY_AYUV */
+#ifdef DISABLE_ORC
+void
+video_orc_convert_UYVY_AYUV (guint8 * ORC_RESTRICT d1, int d1_stride,
+    const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m)
+{
+  int i;
+  int j;
+  orc_union64 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var36;
+  orc_union16 var37;
+  orc_union64 var38;
+  orc_union16 var39;
+  orc_union16 var40;
+  orc_union32 var41;
+  orc_union32 var42;
+
+  for (j = 0; j < m; j++) {
+    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
+    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
+
+    /* 2: loadpb */
+    var37.x2[0] = p1;
+    var37.x2[1] = p1;
+
+    for (i = 0; i < n; i++) {
+      /* 0: loadl */
+      var36 = ptr4[i];
+      /* 1: splitwb */
+      {
+        orc_union16 _src;
+        _src.i = var36.x2[0];
+        var39.x2[0] = _src.x2[1];
+        var40.x2[0] = _src.x2[0];
+      }
+      {
+        orc_union16 _src;
+        _src.i = var36.x2[1];
+        var39.x2[1] = _src.x2[1];
+        var40.x2[1] = _src.x2[0];
+      }
+      /* 3: mergebw */
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var37.x2[0];
+        _dest.x2[1] = var39.x2[0];
+        var41.x2[0] = _dest.i;
+      }
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var37.x2[1];
+        _dest.x2[1] = var39.x2[1];
+        var41.x2[1] = _dest.i;
+      }
+      /* 4: mergewl */
+      {
+        orc_union32 _dest;
+        _dest.x2[0] = var40.i;
+        _dest.x2[1] = var40.i;
+        var42.i = _dest.i;
+      }
+      /* 5: mergewl */
+      {
+        orc_union32 _dest;
+        _dest.x2[0] = var41.x2[0];
+        _dest.x2[1] = var42.x2[0];
+        var38.x2[0] = _dest.i;
+      }
+      {
+        orc_union32 _dest;
+        _dest.x2[0] = var41.x2[1];
+        _dest.x2[1] = var42.x2[1];
+        var38.x2[1] = _dest.i;
+      }
+      /* 6: storeq */
+      ptr0[i] = var38;
+    }
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_convert_UYVY_AYUV (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int j;
+  int n = ex->n;
+  int m = ex->params[ORC_VAR_A1];
+  orc_union64 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var36;
+  orc_union16 var37;
+  orc_union64 var38;
+  orc_union16 var39;
+  orc_union16 var40;
+  orc_union32 var41;
+  orc_union32 var42;
+
+  for (j = 0; j < m; j++) {
+    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
+    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
+
+    /* 2: loadpb */
+    var37.x2[0] = ex->params[24];
+    var37.x2[1] = ex->params[24];
+
+    for (i = 0; i < n; i++) {
+      /* 0: loadl */
+      var36 = ptr4[i];
+      /* 1: splitwb */
+      {
+        orc_union16 _src;
+        _src.i = var36.x2[0];
+        var39.x2[0] = _src.x2[1];
+        var40.x2[0] = _src.x2[0];
+      }
+      {
+        orc_union16 _src;
+        _src.i = var36.x2[1];
+        var39.x2[1] = _src.x2[1];
+        var40.x2[1] = _src.x2[0];
+      }
+      /* 3: mergebw */
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var37.x2[0];
+        _dest.x2[1] = var39.x2[0];
+        var41.x2[0] = _dest.i;
+      }
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var37.x2[1];
+        _dest.x2[1] = var39.x2[1];
+        var41.x2[1] = _dest.i;
+      }
+      /* 4: mergewl */
+      {
+        orc_union32 _dest;
+        _dest.x2[0] = var40.i;
+        _dest.x2[1] = var40.i;
+        var42.i = _dest.i;
+      }
+      /* 5: mergewl */
+      {
+        orc_union32 _dest;
+        _dest.x2[0] = var41.x2[0];
+        _dest.x2[1] = var42.x2[0];
+        var38.x2[0] = _dest.i;
+      }
+      {
+        orc_union32 _dest;
+        _dest.x2[0] = var41.x2[1];
+        _dest.x2[1] = var42.x2[1];
+        var38.x2[1] = _dest.i;
+      }
+      /* 6: storeq */
+      ptr0[i] = var38;
+    }
+  }
+
+}
+
+void
+video_orc_convert_UYVY_AYUV (guint8 * ORC_RESTRICT d1, int d1_stride,
+    const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 7, 9, 27, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 99, 111,
+        110, 118, 101, 114, 116, 95, 85, 89, 86, 89, 95, 65, 89, 85, 86, 11,
+        8, 8, 12, 4, 4, 16, 1, 20, 2, 20, 2, 20, 4, 20, 4, 21,
+        1, 199, 32, 33, 4, 21, 1, 196, 34, 24, 32, 195, 35, 33, 33, 21,
+        1, 195, 0, 34, 35, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_convert_UYVY_AYUV);
+#else
+      p = orc_program_new ();
+      orc_program_set_2d (p);
+      orc_program_set_name (p, "video_orc_convert_UYVY_AYUV");
+      orc_program_set_backup_function (p, _backup_video_orc_convert_UYVY_AYUV);
+      orc_program_add_destination (p, 8, "d1");
+      orc_program_add_source (p, 4, "s1");
+      orc_program_add_parameter (p, 1, "p1");
+      orc_program_add_temporary (p, 2, "t1");
+      orc_program_add_temporary (p, 2, "t2");
+      orc_program_add_temporary (p, 4, "t3");
+      orc_program_add_temporary (p, 4, "t4");
+
+      orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T1, ORC_VAR_T2, ORC_VAR_S1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergebw", 1, ORC_VAR_T3, ORC_VAR_P1, ORC_VAR_T1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T4, ORC_VAR_T2, ORC_VAR_T2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergewl", 1, ORC_VAR_D1, ORC_VAR_T3, ORC_VAR_T4,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ORC_EXECUTOR_M (ex) = m;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->params[ORC_VAR_D1] = d1_stride;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->params[ORC_VAR_S1] = s1_stride;
+  ex->params[ORC_VAR_P1] = p1;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_convert_YUY2_Y42B */
+#ifdef DISABLE_ORC
+void
+video_orc_convert_YUY2_Y42B (guint8 * ORC_RESTRICT d1, int d1_stride,
+    guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3,
+    int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
+{
+  int i;
+  int j;
+  orc_union16 *ORC_RESTRICT ptr0;
+  orc_int8 *ORC_RESTRICT ptr1;
+  orc_int8 *ORC_RESTRICT ptr2;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var33;
+  orc_union16 var34;
+  orc_int8 var35;
+  orc_int8 var36;
+  orc_union16 var37;
+
+  for (j = 0; j < m; j++) {
+    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
+    ptr1 = ORC_PTR_OFFSET (d2, d2_stride * j);
+    ptr2 = ORC_PTR_OFFSET (d3, d3_stride * j);
+    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
+
+
+    for (i = 0; i < n; i++) {
+      /* 0: loadl */
+      var33 = ptr4[i];
+      /* 1: splitwb */
+      {
+        orc_union16 _src;
+        _src.i = var33.x2[0];
+        var37.x2[0] = _src.x2[1];
+        var34.x2[0] = _src.x2[0];
+      }
+      {
+        orc_union16 _src;
+        _src.i = var33.x2[1];
+        var37.x2[1] = _src.x2[1];
+        var34.x2[1] = _src.x2[0];
+      }
+      /* 2: storew */
+      ptr0[i] = var34;
+      /* 3: splitwb */
+      {
+        orc_union16 _src;
+        _src.i = var37.i;
+        var35 = _src.x2[1];
+        var36 = _src.x2[0];
+      }
+      /* 4: storeb */
+      ptr2[i] = var35;
+      /* 5: storeb */
+      ptr1[i] = var36;
+    }
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_convert_YUY2_Y42B (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int j;
+  int n = ex->n;
+  int m = ex->params[ORC_VAR_A1];
+  orc_union16 *ORC_RESTRICT ptr0;
+  orc_int8 *ORC_RESTRICT ptr1;
+  orc_int8 *ORC_RESTRICT ptr2;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var33;
+  orc_union16 var34;
+  orc_int8 var35;
+  orc_int8 var36;
+  orc_union16 var37;
+
+  for (j = 0; j < m; j++) {
+    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
+    ptr1 = ORC_PTR_OFFSET (ex->arrays[1], ex->params[1] * j);
+    ptr2 = ORC_PTR_OFFSET (ex->arrays[2], ex->params[2] * j);
+    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
+
+
+    for (i = 0; i < n; i++) {
+      /* 0: loadl */
+      var33 = ptr4[i];
+      /* 1: splitwb */
+      {
+        orc_union16 _src;
+        _src.i = var33.x2[0];
+        var37.x2[0] = _src.x2[1];
+        var34.x2[0] = _src.x2[0];
+      }
+      {
+        orc_union16 _src;
+        _src.i = var33.x2[1];
+        var37.x2[1] = _src.x2[1];
+        var34.x2[1] = _src.x2[0];
+      }
+      /* 2: storew */
+      ptr0[i] = var34;
+      /* 3: splitwb */
+      {
+        orc_union16 _src;
+        _src.i = var37.i;
+        var35 = _src.x2[1];
+        var36 = _src.x2[0];
+      }
+      /* 4: storeb */
+      ptr2[i] = var35;
+      /* 5: storeb */
+      ptr1[i] = var36;
+    }
+  }
+
+}
+
+void
+video_orc_convert_YUY2_Y42B (guint8 * ORC_RESTRICT d1, int d1_stride,
+    guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3,
+    int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 7, 9, 27, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 99, 111,
+        110, 118, 101, 114, 116, 95, 89, 85, 89, 50, 95, 89, 52, 50, 66, 11,
+        2, 2, 11, 1, 1, 11, 1, 1, 12, 4, 4, 20, 2, 21, 1, 199,
+        32, 0, 4, 199, 2, 1, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_convert_YUY2_Y42B);
+#else
+      p = orc_program_new ();
+      orc_program_set_2d (p);
+      orc_program_set_name (p, "video_orc_convert_YUY2_Y42B");
+      orc_program_set_backup_function (p, _backup_video_orc_convert_YUY2_Y42B);
+      orc_program_add_destination (p, 2, "d1");
+      orc_program_add_destination (p, 1, "d2");
+      orc_program_add_destination (p, 1, "d3");
+      orc_program_add_source (p, 4, "s1");
+      orc_program_add_temporary (p, 2, "t1");
+
+      orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_S1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_D3, ORC_VAR_D2, ORC_VAR_T1,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ORC_EXECUTOR_M (ex) = m;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->params[ORC_VAR_D1] = d1_stride;
+  ex->arrays[ORC_VAR_D2] = d2;
+  ex->params[ORC_VAR_D2] = d2_stride;
+  ex->arrays[ORC_VAR_D3] = d3;
+  ex->params[ORC_VAR_D3] = d3_stride;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->params[ORC_VAR_S1] = s1_stride;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_convert_UYVY_Y42B */
+#ifdef DISABLE_ORC
+void
+video_orc_convert_UYVY_Y42B (guint8 * ORC_RESTRICT d1, int d1_stride,
+    guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3,
+    int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
+{
+  int i;
+  int j;
+  orc_union16 *ORC_RESTRICT ptr0;
+  orc_int8 *ORC_RESTRICT ptr1;
+  orc_int8 *ORC_RESTRICT ptr2;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var33;
+  orc_union16 var34;
+  orc_int8 var35;
+  orc_int8 var36;
+  orc_union16 var37;
+
+  for (j = 0; j < m; j++) {
+    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
+    ptr1 = ORC_PTR_OFFSET (d2, d2_stride * j);
+    ptr2 = ORC_PTR_OFFSET (d3, d3_stride * j);
+    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
+
+
+    for (i = 0; i < n; i++) {
+      /* 0: loadl */
+      var33 = ptr4[i];
+      /* 1: splitwb */
+      {
+        orc_union16 _src;
+        _src.i = var33.x2[0];
+        var34.x2[0] = _src.x2[1];
+        var37.x2[0] = _src.x2[0];
+      }
+      {
+        orc_union16 _src;
+        _src.i = var33.x2[1];
+        var34.x2[1] = _src.x2[1];
+        var37.x2[1] = _src.x2[0];
+      }
+      /* 2: storew */
+      ptr0[i] = var34;
+      /* 3: splitwb */
+      {
+        orc_union16 _src;
+        _src.i = var37.i;
+        var35 = _src.x2[1];
+        var36 = _src.x2[0];
+      }
+      /* 4: storeb */
+      ptr2[i] = var35;
+      /* 5: storeb */
+      ptr1[i] = var36;
+    }
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_convert_UYVY_Y42B (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int j;
+  int n = ex->n;
+  int m = ex->params[ORC_VAR_A1];
+  orc_union16 *ORC_RESTRICT ptr0;
+  orc_int8 *ORC_RESTRICT ptr1;
+  orc_int8 *ORC_RESTRICT ptr2;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var33;
+  orc_union16 var34;
+  orc_int8 var35;
+  orc_int8 var36;
+  orc_union16 var37;
+
+  for (j = 0; j < m; j++) {
+    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
+    ptr1 = ORC_PTR_OFFSET (ex->arrays[1], ex->params[1] * j);
+    ptr2 = ORC_PTR_OFFSET (ex->arrays[2], ex->params[2] * j);
+    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
+
+
+    for (i = 0; i < n; i++) {
+      /* 0: loadl */
+      var33 = ptr4[i];
+      /* 1: splitwb */
+      {
+        orc_union16 _src;
+        _src.i = var33.x2[0];
+        var34.x2[0] = _src.x2[1];
+        var37.x2[0] = _src.x2[0];
+      }
+      {
+        orc_union16 _src;
+        _src.i = var33.x2[1];
+        var34.x2[1] = _src.x2[1];
+        var37.x2[1] = _src.x2[0];
+      }
+      /* 2: storew */
+      ptr0[i] = var34;
+      /* 3: splitwb */
+      {
+        orc_union16 _src;
+        _src.i = var37.i;
+        var35 = _src.x2[1];
+        var36 = _src.x2[0];
+      }
+      /* 4: storeb */
+      ptr2[i] = var35;
+      /* 5: storeb */
+      ptr1[i] = var36;
+    }
+  }
+
+}
+
+void
+video_orc_convert_UYVY_Y42B (guint8 * ORC_RESTRICT d1, int d1_stride,
+    guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3,
+    int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 7, 9, 27, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 99, 111,
+        110, 118, 101, 114, 116, 95, 85, 89, 86, 89, 95, 89, 52, 50, 66, 11,
+        2, 2, 11, 1, 1, 11, 1, 1, 12, 4, 4, 20, 2, 21, 1, 199,
+        0, 32, 4, 199, 2, 1, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_convert_UYVY_Y42B);
+#else
+      p = orc_program_new ();
+      orc_program_set_2d (p);
+      orc_program_set_name (p, "video_orc_convert_UYVY_Y42B");
+      orc_program_set_backup_function (p, _backup_video_orc_convert_UYVY_Y42B);
+      orc_program_add_destination (p, 2, "d1");
+      orc_program_add_destination (p, 1, "d2");
+      orc_program_add_destination (p, 1, "d3");
+      orc_program_add_source (p, 4, "s1");
+      orc_program_add_temporary (p, 2, "t1");
+
+      orc_program_append_2 (p, "splitwb", 1, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_S1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_D3, ORC_VAR_D2, ORC_VAR_T1,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ORC_EXECUTOR_M (ex) = m;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->params[ORC_VAR_D1] = d1_stride;
+  ex->arrays[ORC_VAR_D2] = d2;
+  ex->params[ORC_VAR_D2] = d2_stride;
+  ex->arrays[ORC_VAR_D3] = d3;
+  ex->params[ORC_VAR_D3] = d3_stride;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->params[ORC_VAR_S1] = s1_stride;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_convert_YUY2_Y444 */
+#ifdef DISABLE_ORC
+void
+video_orc_convert_YUY2_Y444 (guint8 * ORC_RESTRICT d1, int d1_stride,
+    guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3,
+    int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
+{
+  int i;
+  int j;
+  orc_union16 *ORC_RESTRICT ptr0;
+  orc_union16 *ORC_RESTRICT ptr1;
+  orc_union16 *ORC_RESTRICT ptr2;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var35;
+  orc_union16 var36;
+  orc_union16 var37;
+  orc_union16 var38;
+  orc_union16 var39;
+  orc_int8 var40;
+  orc_int8 var41;
+
+  for (j = 0; j < m; j++) {
+    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
+    ptr1 = ORC_PTR_OFFSET (d2, d2_stride * j);
+    ptr2 = ORC_PTR_OFFSET (d3, d3_stride * j);
+    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
+
+
+    for (i = 0; i < n; i++) {
+      /* 0: loadl */
+      var35 = ptr4[i];
+      /* 1: splitwb */
+      {
+        orc_union16 _src;
+        _src.i = var35.x2[0];
+        var39.x2[0] = _src.x2[1];
+        var36.x2[0] = _src.x2[0];
+      }
+      {
+        orc_union16 _src;
+        _src.i = var35.x2[1];
+        var39.x2[1] = _src.x2[1];
+        var36.x2[1] = _src.x2[0];
+      }
+      /* 2: storew */
+      ptr0[i] = var36;
+      /* 3: splitwb */
+      {
+        orc_union16 _src;
+        _src.i = var39.i;
+        var40 = _src.x2[1];
+        var41 = _src.x2[0];
+      }
+      /* 4: splatbw */
+      var37.i = ((var41 & 0xff) << 8) | (var41 & 0xff);
+      /* 5: storew */
+      ptr1[i] = var37;
+      /* 6: splatbw */
+      var38.i = ((var40 & 0xff) << 8) | (var40 & 0xff);
+      /* 7: storew */
+      ptr2[i] = var38;
+    }
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_convert_YUY2_Y444 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int j;
+  int n = ex->n;
+  int m = ex->params[ORC_VAR_A1];
+  orc_union16 *ORC_RESTRICT ptr0;
+  orc_union16 *ORC_RESTRICT ptr1;
+  orc_union16 *ORC_RESTRICT ptr2;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var35;
+  orc_union16 var36;
+  orc_union16 var37;
+  orc_union16 var38;
+  orc_union16 var39;
+  orc_int8 var40;
+  orc_int8 var41;
+
+  for (j = 0; j < m; j++) {
+    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
+    ptr1 = ORC_PTR_OFFSET (ex->arrays[1], ex->params[1] * j);
+    ptr2 = ORC_PTR_OFFSET (ex->arrays[2], ex->params[2] * j);
+    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
+
+
+    for (i = 0; i < n; i++) {
+      /* 0: loadl */
+      var35 = ptr4[i];
+      /* 1: splitwb */
+      {
+        orc_union16 _src;
+        _src.i = var35.x2[0];
+        var39.x2[0] = _src.x2[1];
+        var36.x2[0] = _src.x2[0];
+      }
+      {
+        orc_union16 _src;
+        _src.i = var35.x2[1];
+        var39.x2[1] = _src.x2[1];
+        var36.x2[1] = _src.x2[0];
+      }
+      /* 2: storew */
+      ptr0[i] = var36;
+      /* 3: splitwb */
+      {
+        orc_union16 _src;
+        _src.i = var39.i;
+        var40 = _src.x2[1];
+        var41 = _src.x2[0];
+      }
+      /* 4: splatbw */
+      var37.i = ((var41 & 0xff) << 8) | (var41 & 0xff);
+      /* 5: storew */
+      ptr1[i] = var37;
+      /* 6: splatbw */
+      var38.i = ((var40 & 0xff) << 8) | (var40 & 0xff);
+      /* 7: storew */
+      ptr2[i] = var38;
+    }
+  }
+
+}
+
+void
+video_orc_convert_YUY2_Y444 (guint8 * ORC_RESTRICT d1, int d1_stride,
+    guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3,
+    int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 7, 9, 27, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 99, 111,
+        110, 118, 101, 114, 116, 95, 89, 85, 89, 50, 95, 89, 52, 52, 52, 11,
+        2, 2, 11, 2, 2, 11, 2, 2, 12, 4, 4, 20, 2, 20, 1, 20,
+        1, 21, 1, 199, 32, 0, 4, 199, 34, 33, 32, 151, 1, 33, 151, 2,
+        34, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_convert_YUY2_Y444);
+#else
+      p = orc_program_new ();
+      orc_program_set_2d (p);
+      orc_program_set_name (p, "video_orc_convert_YUY2_Y444");
+      orc_program_set_backup_function (p, _backup_video_orc_convert_YUY2_Y444);
+      orc_program_add_destination (p, 2, "d1");
+      orc_program_add_destination (p, 2, "d2");
+      orc_program_add_destination (p, 2, "d3");
+      orc_program_add_source (p, 4, "s1");
+      orc_program_add_temporary (p, 2, "t1");
+      orc_program_add_temporary (p, 1, "t2");
+      orc_program_add_temporary (p, 1, "t3");
+
+      orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_S1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T3, ORC_VAR_T2, ORC_VAR_T1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "splatbw", 0, ORC_VAR_D2, ORC_VAR_T2, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "splatbw", 0, ORC_VAR_D3, ORC_VAR_T3, ORC_VAR_D1,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ORC_EXECUTOR_M (ex) = m;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->params[ORC_VAR_D1] = d1_stride;
+  ex->arrays[ORC_VAR_D2] = d2;
+  ex->params[ORC_VAR_D2] = d2_stride;
+  ex->arrays[ORC_VAR_D3] = d3;
+  ex->params[ORC_VAR_D3] = d3_stride;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->params[ORC_VAR_S1] = s1_stride;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_convert_UYVY_Y444 */
+#ifdef DISABLE_ORC
+void
+video_orc_convert_UYVY_Y444 (guint8 * ORC_RESTRICT d1, int d1_stride,
+    guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3,
+    int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
+{
+  int i;
+  int j;
+  orc_union16 *ORC_RESTRICT ptr0;
+  orc_union16 *ORC_RESTRICT ptr1;
+  orc_union16 *ORC_RESTRICT ptr2;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var35;
+  orc_union16 var36;
+  orc_union16 var37;
+  orc_union16 var38;
+  orc_union16 var39;
+  orc_int8 var40;
+  orc_int8 var41;
+
+  for (j = 0; j < m; j++) {
+    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
+    ptr1 = ORC_PTR_OFFSET (d2, d2_stride * j);
+    ptr2 = ORC_PTR_OFFSET (d3, d3_stride * j);
+    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
+
+
+    for (i = 0; i < n; i++) {
+      /* 0: loadl */
+      var35 = ptr4[i];
+      /* 1: splitwb */
+      {
+        orc_union16 _src;
+        _src.i = var35.x2[0];
+        var36.x2[0] = _src.x2[1];
+        var39.x2[0] = _src.x2[0];
+      }
+      {
+        orc_union16 _src;
+        _src.i = var35.x2[1];
+        var36.x2[1] = _src.x2[1];
+        var39.x2[1] = _src.x2[0];
+      }
+      /* 2: storew */
+      ptr0[i] = var36;
+      /* 3: splitwb */
+      {
+        orc_union16 _src;
+        _src.i = var39.i;
+        var40 = _src.x2[1];
+        var41 = _src.x2[0];
+      }
+      /* 4: splatbw */
+      var37.i = ((var41 & 0xff) << 8) | (var41 & 0xff);
+      /* 5: storew */
+      ptr1[i] = var37;
+      /* 6: splatbw */
+      var38.i = ((var40 & 0xff) << 8) | (var40 & 0xff);
+      /* 7: storew */
+      ptr2[i] = var38;
+    }
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_convert_UYVY_Y444 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int j;
+  int n = ex->n;
+  int m = ex->params[ORC_VAR_A1];
+  orc_union16 *ORC_RESTRICT ptr0;
+  orc_union16 *ORC_RESTRICT ptr1;
+  orc_union16 *ORC_RESTRICT ptr2;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var35;
+  orc_union16 var36;
+  orc_union16 var37;
+  orc_union16 var38;
+  orc_union16 var39;
+  orc_int8 var40;
+  orc_int8 var41;
+
+  for (j = 0; j < m; j++) {
+    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
+    ptr1 = ORC_PTR_OFFSET (ex->arrays[1], ex->params[1] * j);
+    ptr2 = ORC_PTR_OFFSET (ex->arrays[2], ex->params[2] * j);
+    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
+
+
+    for (i = 0; i < n; i++) {
+      /* 0: loadl */
+      var35 = ptr4[i];
+      /* 1: splitwb */
+      {
+        orc_union16 _src;
+        _src.i = var35.x2[0];
+        var36.x2[0] = _src.x2[1];
+        var39.x2[0] = _src.x2[0];
+      }
+      {
+        orc_union16 _src;
+        _src.i = var35.x2[1];
+        var36.x2[1] = _src.x2[1];
+        var39.x2[1] = _src.x2[0];
+      }
+      /* 2: storew */
+      ptr0[i] = var36;
+      /* 3: splitwb */
+      {
+        orc_union16 _src;
+        _src.i = var39.i;
+        var40 = _src.x2[1];
+        var41 = _src.x2[0];
+      }
+      /* 4: splatbw */
+      var37.i = ((var41 & 0xff) << 8) | (var41 & 0xff);
+      /* 5: storew */
+      ptr1[i] = var37;
+      /* 6: splatbw */
+      var38.i = ((var40 & 0xff) << 8) | (var40 & 0xff);
+      /* 7: storew */
+      ptr2[i] = var38;
+    }
+  }
+
+}
+
+void
+video_orc_convert_UYVY_Y444 (guint8 * ORC_RESTRICT d1, int d1_stride,
+    guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3,
+    int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 7, 9, 27, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 99, 111,
+        110, 118, 101, 114, 116, 95, 85, 89, 86, 89, 95, 89, 52, 52, 52, 11,
+        2, 2, 11, 2, 2, 11, 2, 2, 12, 4, 4, 20, 2, 20, 1, 20,
+        1, 21, 1, 199, 0, 32, 4, 199, 34, 33, 32, 151, 1, 33, 151, 2,
+        34, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_convert_UYVY_Y444);
+#else
+      p = orc_program_new ();
+      orc_program_set_2d (p);
+      orc_program_set_name (p, "video_orc_convert_UYVY_Y444");
+      orc_program_set_backup_function (p, _backup_video_orc_convert_UYVY_Y444);
+      orc_program_add_destination (p, 2, "d1");
+      orc_program_add_destination (p, 2, "d2");
+      orc_program_add_destination (p, 2, "d3");
+      orc_program_add_source (p, 4, "s1");
+      orc_program_add_temporary (p, 2, "t1");
+      orc_program_add_temporary (p, 1, "t2");
+      orc_program_add_temporary (p, 1, "t3");
+
+      orc_program_append_2 (p, "splitwb", 1, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_S1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T3, ORC_VAR_T2, ORC_VAR_T1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "splatbw", 0, ORC_VAR_D2, ORC_VAR_T2, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "splatbw", 0, ORC_VAR_D3, ORC_VAR_T3, ORC_VAR_D1,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ORC_EXECUTOR_M (ex) = m;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->params[ORC_VAR_D1] = d1_stride;
+  ex->arrays[ORC_VAR_D2] = d2;
+  ex->params[ORC_VAR_D2] = d2_stride;
+  ex->arrays[ORC_VAR_D3] = d3;
+  ex->params[ORC_VAR_D3] = d3_stride;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->params[ORC_VAR_S1] = s1_stride;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_convert_UYVY_I420 */
+#ifdef DISABLE_ORC
+void
+video_orc_convert_UYVY_I420 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
+    guint8 * ORC_RESTRICT d3, guint8 * ORC_RESTRICT d4,
+    const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, int n)
+{
+  int i;
+  orc_union16 *ORC_RESTRICT ptr0;
+  orc_union16 *ORC_RESTRICT ptr1;
+  orc_int8 *ORC_RESTRICT ptr2;
+  orc_int8 *ORC_RESTRICT ptr3;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  const orc_union32 *ORC_RESTRICT ptr5;
+  orc_union32 var35;
+  orc_union32 var36;
+  orc_int8 var37;
+  orc_int8 var38;
+  orc_union16 var39;
+  orc_union16 var40;
+  orc_union16 var41;
+  orc_union16 var42;
+  orc_union16 var43;
+
+  ptr0 = (orc_union16 *) d1;
+  ptr1 = (orc_union16 *) d2;
+  ptr2 = (orc_int8 *) d3;
+  ptr3 = (orc_int8 *) d4;
+  ptr4 = (orc_union32 *) s1;
+  ptr5 = (orc_union32 *) s2;
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var35 = ptr4[i];
+    /* 1: splitwb */
+    {
+      orc_union16 _src;
+      _src.i = var35.x2[0];
+      var39.x2[0] = _src.x2[1];
+      var40.x2[0] = _src.x2[0];
+    }
+    {
+      orc_union16 _src;
+      _src.i = var35.x2[1];
+      var39.x2[1] = _src.x2[1];
+      var40.x2[1] = _src.x2[0];
+    }
+    /* 2: storew */
+    ptr0[i] = var39;
+    /* 3: loadl */
+    var36 = ptr5[i];
+    /* 4: splitwb */
+    {
+      orc_union16 _src;
+      _src.i = var36.x2[0];
+      var41.x2[0] = _src.x2[1];
+      var42.x2[0] = _src.x2[0];
+    }
+    {
+      orc_union16 _src;
+      _src.i = var36.x2[1];
+      var41.x2[1] = _src.x2[1];
+      var42.x2[1] = _src.x2[0];
+    }
+    /* 5: storew */
+    ptr1[i] = var41;
+    /* 6: avgub */
+    var43.x2[0] = ((orc_uint8) var40.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
+    var43.x2[1] = ((orc_uint8) var40.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
+    /* 7: splitwb */
+    {
+      orc_union16 _src;
+      _src.i = var43.i;
+      var37 = _src.x2[1];
+      var38 = _src.x2[0];
+    }
+    /* 8: storeb */
+    ptr3[i] = var37;
+    /* 9: storeb */
+    ptr2[i] = var38;
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_convert_UYVY_I420 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union16 *ORC_RESTRICT ptr0;
+  orc_union16 *ORC_RESTRICT ptr1;
+  orc_int8 *ORC_RESTRICT ptr2;
+  orc_int8 *ORC_RESTRICT ptr3;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  const orc_union32 *ORC_RESTRICT ptr5;
+  orc_union32 var35;
+  orc_union32 var36;
+  orc_int8 var37;
+  orc_int8 var38;
+  orc_union16 var39;
+  orc_union16 var40;
+  orc_union16 var41;
+  orc_union16 var42;
+  orc_union16 var43;
+
+  ptr0 = (orc_union16 *) ex->arrays[0];
+  ptr1 = (orc_union16 *) ex->arrays[1];
+  ptr2 = (orc_int8 *) ex->arrays[2];
+  ptr3 = (orc_int8 *) ex->arrays[3];
+  ptr4 = (orc_union32 *) ex->arrays[4];
+  ptr5 = (orc_union32 *) ex->arrays[5];
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var35 = ptr4[i];
+    /* 1: splitwb */
+    {
+      orc_union16 _src;
+      _src.i = var35.x2[0];
+      var39.x2[0] = _src.x2[1];
+      var40.x2[0] = _src.x2[0];
+    }
+    {
+      orc_union16 _src;
+      _src.i = var35.x2[1];
+      var39.x2[1] = _src.x2[1];
+      var40.x2[1] = _src.x2[0];
+    }
+    /* 2: storew */
+    ptr0[i] = var39;
+    /* 3: loadl */
+    var36 = ptr5[i];
+    /* 4: splitwb */
+    {
+      orc_union16 _src;
+      _src.i = var36.x2[0];
+      var41.x2[0] = _src.x2[1];
+      var42.x2[0] = _src.x2[0];
+    }
+    {
+      orc_union16 _src;
+      _src.i = var36.x2[1];
+      var41.x2[1] = _src.x2[1];
+      var42.x2[1] = _src.x2[0];
+    }
+    /* 5: storew */
+    ptr1[i] = var41;
+    /* 6: avgub */
+    var43.x2[0] = ((orc_uint8) var40.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
+    var43.x2[1] = ((orc_uint8) var40.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
+    /* 7: splitwb */
+    {
+      orc_union16 _src;
+      _src.i = var43.i;
+      var37 = _src.x2[1];
+      var38 = _src.x2[0];
+    }
+    /* 8: storeb */
+    ptr3[i] = var37;
+    /* 9: storeb */
+    ptr2[i] = var38;
+  }
+
+}
+
+void
+video_orc_convert_UYVY_I420 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
+    guint8 * ORC_RESTRICT d3, guint8 * ORC_RESTRICT d4,
+    const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 27, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 99, 111, 110,
+        118, 101, 114, 116, 95, 85, 89, 86, 89, 95, 73, 52, 50, 48, 11, 2,
+        2, 11, 2, 2, 11, 1, 1, 11, 1, 1, 12, 4, 4, 12, 4, 4,
+        20, 2, 20, 2, 20, 2, 21, 1, 199, 34, 32, 4, 97, 0, 34, 21,
+        1, 199, 34, 33, 5, 97, 1, 34, 21, 1, 39, 32, 32, 33, 199, 3,
+        2, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_convert_UYVY_I420);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "video_orc_convert_UYVY_I420");
+      orc_program_set_backup_function (p, _backup_video_orc_convert_UYVY_I420);
+      orc_program_add_destination (p, 2, "d1");
+      orc_program_add_destination (p, 2, "d2");
+      orc_program_add_destination (p, 1, "d3");
+      orc_program_add_destination (p, 1, "d4");
+      orc_program_add_source (p, 4, "s1");
+      orc_program_add_source (p, 4, "s2");
+      orc_program_add_temporary (p, 2, "t1");
+      orc_program_add_temporary (p, 2, "t2");
+      orc_program_add_temporary (p, 2, "t3");
+
+      orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T3, ORC_VAR_T1, ORC_VAR_S1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "storew", 0, ORC_VAR_D1, ORC_VAR_T3, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T3, ORC_VAR_T2, ORC_VAR_S2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "storew", 0, ORC_VAR_D2, ORC_VAR_T3, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "avgub", 1, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_D4, ORC_VAR_D3, ORC_VAR_T1,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_D2] = d2;
+  ex->arrays[ORC_VAR_D3] = d3;
+  ex->arrays[ORC_VAR_D4] = d4;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->arrays[ORC_VAR_S2] = (void *) s2;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_convert_AYUV_I420 */
+#ifdef DISABLE_ORC
+void
+video_orc_convert_AYUV_I420 (guint8 * ORC_RESTRICT d1, int d1_stride,
+    guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3,
+    int d3_stride, guint8 * ORC_RESTRICT d4, int d4_stride,
+    const guint8 * ORC_RESTRICT s1, int s1_stride,
+    const guint8 * ORC_RESTRICT s2, int s2_stride, int n, int m)
+{
+  int i;
+  int j;
+  orc_union16 *ORC_RESTRICT ptr0;
+  orc_union16 *ORC_RESTRICT ptr1;
+  orc_int8 *ORC_RESTRICT ptr2;
+  orc_int8 *ORC_RESTRICT ptr3;
+  const orc_union64 *ORC_RESTRICT ptr4;
+  const orc_union64 *ORC_RESTRICT ptr5;
+  orc_union64 var40;
+  orc_union16 var41;
+  orc_union64 var42;
+  orc_union16 var43;
+  orc_int8 var44;
+  orc_int8 var45;
+  orc_union32 var46;
+  orc_union32 var47;
+  orc_union32 var48;
+  orc_union32 var49;
+  orc_union32 var50;
+  orc_union16 var51;
+  orc_union16 var52;
+  orc_int8 var53;
+  orc_int8 var54;
+  orc_int8 var55;
+  orc_int8 var56;
+
+  for (j = 0; j < m; j++) {
+    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
+    ptr1 = ORC_PTR_OFFSET (d2, d2_stride * j);
+    ptr2 = ORC_PTR_OFFSET (d3, d3_stride * j);
+    ptr3 = ORC_PTR_OFFSET (d4, d4_stride * j);
+    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
+    ptr5 = ORC_PTR_OFFSET (s2, s2_stride * j);
+
+
+    for (i = 0; i < n; i++) {
+      /* 0: loadq */
+      var40 = ptr4[i];
+      /* 1: splitlw */
+      {
+        orc_union32 _src;
+        _src.i = var40.x2[0];
+        var46.x2[0] = _src.x2[1];
+        var47.x2[0] = _src.x2[0];
+      }
+      {
+        orc_union32 _src;
+        _src.i = var40.x2[1];
+        var46.x2[1] = _src.x2[1];
+        var47.x2[1] = _src.x2[0];
+      }
+      /* 2: select1wb */
+      {
+        orc_union16 _src;
+        _src.i = var47.x2[0];
+        var41.x2[0] = _src.x2[1];
+      }
+      {
+        orc_union16 _src;
+        _src.i = var47.x2[1];
+        var41.x2[1] = _src.x2[1];
+      }
+      /* 3: storew */
+      ptr0[i] = var41;
+      /* 4: loadq */
+      var42 = ptr5[i];
+      /* 5: splitlw */
+      {
+        orc_union32 _src;
+        _src.i = var42.x2[0];
+        var48.x2[0] = _src.x2[1];
+        var49.x2[0] = _src.x2[0];
+      }
+      {
+        orc_union32 _src;
+        _src.i = var42.x2[1];
+        var48.x2[1] = _src.x2[1];
+        var49.x2[1] = _src.x2[0];
+      }
+      /* 6: select1wb */
+      {
+        orc_union16 _src;
+        _src.i = var49.x2[0];
+        var43.x2[0] = _src.x2[1];
+      }
+      {
+        orc_union16 _src;
+        _src.i = var49.x2[1];
+        var43.x2[1] = _src.x2[1];
+      }
+      /* 7: storew */
+      ptr1[i] = var43;
+      /* 8: avgub */
+      var50.x4[0] =
+          ((orc_uint8) var46.x4[0] + (orc_uint8) var48.x4[0] + 1) >> 1;
+      var50.x4[1] =
+          ((orc_uint8) var46.x4[1] + (orc_uint8) var48.x4[1] + 1) >> 1;
+      var50.x4[2] =
+          ((orc_uint8) var46.x4[2] + (orc_uint8) var48.x4[2] + 1) >> 1;
+      var50.x4[3] =
+          ((orc_uint8) var46.x4[3] + (orc_uint8) var48.x4[3] + 1) >> 1;
+      /* 9: splitwb */
+      {
+        orc_union16 _src;
+        _src.i = var50.x2[0];
+        var51.x2[0] = _src.x2[1];
+        var52.x2[0] = _src.x2[0];
+      }
+      {
+        orc_union16 _src;
+        _src.i = var50.x2[1];
+        var51.x2[1] = _src.x2[1];
+        var52.x2[1] = _src.x2[0];
+      }
+      /* 10: splitwb */
+      {
+        orc_union16 _src;
+        _src.i = var52.i;
+        var53 = _src.x2[1];
+        var54 = _src.x2[0];
+      }
+      /* 11: avgub */
+      var44 = ((orc_uint8) var53 + (orc_uint8) var54 + 1) >> 1;
+      /* 12: storeb */
+      ptr2[i] = var44;
+      /* 13: splitwb */
+      {
+        orc_union16 _src;
+        _src.i = var51.i;
+        var55 = _src.x2[1];
+        var56 = _src.x2[0];
+      }
+      /* 14: avgub */
+      var45 = ((orc_uint8) var55 + (orc_uint8) var56 + 1) >> 1;
+      /* 15: storeb */
+      ptr3[i] = var45;
+    }
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_convert_AYUV_I420 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int j;
+  int n = ex->n;
+  int m = ex->params[ORC_VAR_A1];
+  orc_union16 *ORC_RESTRICT ptr0;
+  orc_union16 *ORC_RESTRICT ptr1;
+  orc_int8 *ORC_RESTRICT ptr2;
+  orc_int8 *ORC_RESTRICT ptr3;
+  const orc_union64 *ORC_RESTRICT ptr4;
+  const orc_union64 *ORC_RESTRICT ptr5;
+  orc_union64 var40;
+  orc_union16 var41;
+  orc_union64 var42;
+  orc_union16 var43;
+  orc_int8 var44;
+  orc_int8 var45;
+  orc_union32 var46;
+  orc_union32 var47;
+  orc_union32 var48;
+  orc_union32 var49;
+  orc_union32 var50;
+  orc_union16 var51;
+  orc_union16 var52;
+  orc_int8 var53;
+  orc_int8 var54;
+  orc_int8 var55;
+  orc_int8 var56;
+
+  for (j = 0; j < m; j++) {
+    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
+    ptr1 = ORC_PTR_OFFSET (ex->arrays[1], ex->params[1] * j);
+    ptr2 = ORC_PTR_OFFSET (ex->arrays[2], ex->params[2] * j);
+    ptr3 = ORC_PTR_OFFSET (ex->arrays[3], ex->params[3] * j);
+    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
+    ptr5 = ORC_PTR_OFFSET (ex->arrays[5], ex->params[5] * j);
+
+
+    for (i = 0; i < n; i++) {
+      /* 0: loadq */
+      var40 = ptr4[i];
+      /* 1: splitlw */
+      {
+        orc_union32 _src;
+        _src.i = var40.x2[0];
+        var46.x2[0] = _src.x2[1];
+        var47.x2[0] = _src.x2[0];
+      }
+      {
+        orc_union32 _src;
+        _src.i = var40.x2[1];
+        var46.x2[1] = _src.x2[1];
+        var47.x2[1] = _src.x2[0];
+      }
+      /* 2: select1wb */
+      {
+        orc_union16 _src;
+        _src.i = var47.x2[0];
+        var41.x2[0] = _src.x2[1];
+      }
+      {
+        orc_union16 _src;
+        _src.i = var47.x2[1];
+        var41.x2[1] = _src.x2[1];
+      }
+      /* 3: storew */
+      ptr0[i] = var41;
+      /* 4: loadq */
+      var42 = ptr5[i];
+      /* 5: splitlw */
+      {
+        orc_union32 _src;
+        _src.i = var42.x2[0];
+        var48.x2[0] = _src.x2[1];
+        var49.x2[0] = _src.x2[0];
+      }
+      {
+        orc_union32 _src;
+        _src.i = var42.x2[1];
+        var48.x2[1] = _src.x2[1];
+        var49.x2[1] = _src.x2[0];
+      }
+      /* 6: select1wb */
+      {
+        orc_union16 _src;
+        _src.i = var49.x2[0];
+        var43.x2[0] = _src.x2[1];
+      }
+      {
+        orc_union16 _src;
+        _src.i = var49.x2[1];
+        var43.x2[1] = _src.x2[1];
+      }
+      /* 7: storew */
+      ptr1[i] = var43;
+      /* 8: avgub */
+      var50.x4[0] =
+          ((orc_uint8) var46.x4[0] + (orc_uint8) var48.x4[0] + 1) >> 1;
+      var50.x4[1] =
+          ((orc_uint8) var46.x4[1] + (orc_uint8) var48.x4[1] + 1) >> 1;
+      var50.x4[2] =
+          ((orc_uint8) var46.x4[2] + (orc_uint8) var48.x4[2] + 1) >> 1;
+      var50.x4[3] =
+          ((orc_uint8) var46.x4[3] + (orc_uint8) var48.x4[3] + 1) >> 1;
+      /* 9: splitwb */
+      {
+        orc_union16 _src;
+        _src.i = var50.x2[0];
+        var51.x2[0] = _src.x2[1];
+        var52.x2[0] = _src.x2[0];
+      }
+      {
+        orc_union16 _src;
+        _src.i = var50.x2[1];
+        var51.x2[1] = _src.x2[1];
+        var52.x2[1] = _src.x2[0];
+      }
+      /* 10: splitwb */
+      {
+        orc_union16 _src;
+        _src.i = var52.i;
+        var53 = _src.x2[1];
+        var54 = _src.x2[0];
+      }
+      /* 11: avgub */
+      var44 = ((orc_uint8) var53 + (orc_uint8) var54 + 1) >> 1;
+      /* 12: storeb */
+      ptr2[i] = var44;
+      /* 13: splitwb */
+      {
+        orc_union16 _src;
+        _src.i = var51.i;
+        var55 = _src.x2[1];
+        var56 = _src.x2[0];
+      }
+      /* 14: avgub */
+      var45 = ((orc_uint8) var55 + (orc_uint8) var56 + 1) >> 1;
+      /* 15: storeb */
+      ptr3[i] = var45;
+    }
+  }
+
+}
+
+void
+video_orc_convert_AYUV_I420 (guint8 * ORC_RESTRICT d1, int d1_stride,
+    guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3,
+    int d3_stride, guint8 * ORC_RESTRICT d4, int d4_stride,
+    const guint8 * ORC_RESTRICT s1, int s1_stride,
+    const guint8 * ORC_RESTRICT s2, int s2_stride, int n, int m)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 7, 9, 27, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 99, 111,
+        110, 118, 101, 114, 116, 95, 65, 89, 85, 86, 95, 73, 52, 50, 48, 11,
+        2, 2, 11, 2, 2, 11, 1, 1, 11, 1, 1, 12, 8, 8, 12, 8,
+        8, 20, 4, 20, 4, 20, 4, 20, 4, 20, 2, 20, 2, 20, 1, 20,
+        1, 21, 1, 198, 33, 32, 4, 21, 1, 189, 0, 32, 21, 1, 198, 34,
+        32, 5, 21, 1, 189, 1, 32, 21, 2, 39, 35, 33, 34, 21, 1, 199,
+        37, 36, 35, 199, 38, 39, 36, 39, 2, 38, 39, 199, 38, 39, 37, 39,
+        3, 38, 39, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_convert_AYUV_I420);
+#else
+      p = orc_program_new ();
+      orc_program_set_2d (p);
+      orc_program_set_name (p, "video_orc_convert_AYUV_I420");
+      orc_program_set_backup_function (p, _backup_video_orc_convert_AYUV_I420);
+      orc_program_add_destination (p, 2, "d1");
+      orc_program_add_destination (p, 2, "d2");
+      orc_program_add_destination (p, 1, "d3");
+      orc_program_add_destination (p, 1, "d4");
+      orc_program_add_source (p, 8, "s1");
+      orc_program_add_source (p, 8, "s2");
+      orc_program_add_temporary (p, 4, "t1");
+      orc_program_add_temporary (p, 4, "t2");
+      orc_program_add_temporary (p, 4, "t3");
+      orc_program_add_temporary (p, 4, "t4");
+      orc_program_add_temporary (p, 2, "t5");
+      orc_program_add_temporary (p, 2, "t6");
+      orc_program_add_temporary (p, 1, "t7");
+      orc_program_add_temporary (p, 1, "t8");
+
+      orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_S1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "select1wb", 1, ORC_VAR_D1, ORC_VAR_T1,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T3, ORC_VAR_T1, ORC_VAR_S2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "select1wb", 1, ORC_VAR_D2, ORC_VAR_T1,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "avgub", 2, ORC_VAR_T4, ORC_VAR_T2, ORC_VAR_T3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T6, ORC_VAR_T5, ORC_VAR_T4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T7, ORC_VAR_T8, ORC_VAR_T5,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "avgub", 0, ORC_VAR_D3, ORC_VAR_T7, ORC_VAR_T8,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T7, ORC_VAR_T8, ORC_VAR_T6,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "avgub", 0, ORC_VAR_D4, ORC_VAR_T7, ORC_VAR_T8,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ORC_EXECUTOR_M (ex) = m;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->params[ORC_VAR_D1] = d1_stride;
+  ex->arrays[ORC_VAR_D2] = d2;
+  ex->params[ORC_VAR_D2] = d2_stride;
+  ex->arrays[ORC_VAR_D3] = d3;
+  ex->params[ORC_VAR_D3] = d3_stride;
+  ex->arrays[ORC_VAR_D4] = d4;
+  ex->params[ORC_VAR_D4] = d4_stride;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->params[ORC_VAR_S1] = s1_stride;
+  ex->arrays[ORC_VAR_S2] = (void *) s2;
+  ex->params[ORC_VAR_S2] = s2_stride;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_convert_AYUV_YUY2 */
+#ifdef DISABLE_ORC
+void
+video_orc_convert_AYUV_YUY2 (guint8 * ORC_RESTRICT d1, int d1_stride,
+    const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
+{
+  int i;
+  int j;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union64 *ORC_RESTRICT ptr4;
+  orc_union64 var37;
+  orc_union32 var38;
+  orc_union32 var39;
+  orc_union32 var40;
+  orc_union16 var41;
+  orc_union16 var42;
+  orc_union16 var43;
+  orc_union16 var44;
+
+  for (j = 0; j < m; j++) {
+    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
+    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
+
+
+    for (i = 0; i < n; i++) {
+      /* 0: loadq */
+      var37 = ptr4[i];
+      /* 1: splitlw */
+      {
+        orc_union32 _src;
+        _src.i = var37.x2[0];
+        var39.x2[0] = _src.x2[1];
+        var40.x2[0] = _src.x2[0];
+      }
+      {
+        orc_union32 _src;
+        _src.i = var37.x2[1];
+        var39.x2[1] = _src.x2[1];
+        var40.x2[1] = _src.x2[0];
+      }
+      /* 2: splitlw */
+      {
+        orc_union32 _src;
+        _src.i = var39.i;
+        var41.i = _src.x2[1];
+        var42.i = _src.x2[0];
+      }
+      /* 3: avgub */
+      var43.x2[0] =
+          ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
+      var43.x2[1] =
+          ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
+      /* 4: select1wb */
+      {
+        orc_union16 _src;
+        _src.i = var40.x2[0];
+        var44.x2[0] = _src.x2[1];
+      }
+      {
+        orc_union16 _src;
+        _src.i = var40.x2[1];
+        var44.x2[1] = _src.x2[1];
+      }
+      /* 5: mergebw */
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var44.x2[0];
+        _dest.x2[1] = var43.x2[0];
+        var38.x2[0] = _dest.i;
+      }
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var44.x2[1];
+        _dest.x2[1] = var43.x2[1];
+        var38.x2[1] = _dest.i;
+      }
+      /* 6: storel */
+      ptr0[i] = var38;
+    }
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_convert_AYUV_YUY2 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int j;
+  int n = ex->n;
+  int m = ex->params[ORC_VAR_A1];
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union64 *ORC_RESTRICT ptr4;
+  orc_union64 var37;
+  orc_union32 var38;
+  orc_union32 var39;
+  orc_union32 var40;
+  orc_union16 var41;
+  orc_union16 var42;
+  orc_union16 var43;
+  orc_union16 var44;
+
+  for (j = 0; j < m; j++) {
+    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
+    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
+
+
+    for (i = 0; i < n; i++) {
+      /* 0: loadq */
+      var37 = ptr4[i];
+      /* 1: splitlw */
+      {
+        orc_union32 _src;
+        _src.i = var37.x2[0];
+        var39.x2[0] = _src.x2[1];
+        var40.x2[0] = _src.x2[0];
+      }
+      {
+        orc_union32 _src;
+        _src.i = var37.x2[1];
+        var39.x2[1] = _src.x2[1];
+        var40.x2[1] = _src.x2[0];
+      }
+      /* 2: splitlw */
+      {
+        orc_union32 _src;
+        _src.i = var39.i;
+        var41.i = _src.x2[1];
+        var42.i = _src.x2[0];
+      }
+      /* 3: avgub */
+      var43.x2[0] =
+          ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
+      var43.x2[1] =
+          ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
+      /* 4: select1wb */
+      {
+        orc_union16 _src;
+        _src.i = var40.x2[0];
+        var44.x2[0] = _src.x2[1];
+      }
+      {
+        orc_union16 _src;
+        _src.i = var40.x2[1];
+        var44.x2[1] = _src.x2[1];
+      }
+      /* 5: mergebw */
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var44.x2[0];
+        _dest.x2[1] = var43.x2[0];
+        var38.x2[0] = _dest.i;
+      }
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var44.x2[1];
+        _dest.x2[1] = var43.x2[1];
+        var38.x2[1] = _dest.i;
+      }
+      /* 6: storel */
+      ptr0[i] = var38;
+    }
+  }
+
+}
+
+void
+video_orc_convert_AYUV_YUY2 (guint8 * ORC_RESTRICT d1, int d1_stride,
+    const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 7, 9, 27, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 99, 111,
+        110, 118, 101, 114, 116, 95, 65, 89, 85, 86, 95, 89, 85, 89, 50, 11,
+        4, 4, 12, 8, 8, 20, 2, 20, 2, 20, 2, 20, 4, 20, 4, 21,
+        1, 198, 36, 35, 4, 198, 33, 34, 36, 21, 1, 39, 33, 33, 34, 21,
+        1, 189, 32, 35, 21, 1, 196, 0, 32, 33, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_convert_AYUV_YUY2);
+#else
+      p = orc_program_new ();
+      orc_program_set_2d (p);
+      orc_program_set_name (p, "video_orc_convert_AYUV_YUY2");
+      orc_program_set_backup_function (p, _backup_video_orc_convert_AYUV_YUY2);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 8, "s1");
+      orc_program_add_temporary (p, 2, "t1");
+      orc_program_add_temporary (p, 2, "t2");
+      orc_program_add_temporary (p, 2, "t3");
+      orc_program_add_temporary (p, 4, "t4");
+      orc_program_add_temporary (p, 4, "t5");
+
+      orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T5, ORC_VAR_T4, ORC_VAR_S1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T2, ORC_VAR_T3, ORC_VAR_T5,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "avgub", 1, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_T3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "select1wb", 1, ORC_VAR_T1, ORC_VAR_T4,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T2,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ORC_EXECUTOR_M (ex) = m;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->params[ORC_VAR_D1] = d1_stride;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->params[ORC_VAR_S1] = s1_stride;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_convert_AYUV_UYVY */
+#ifdef DISABLE_ORC
+void
+video_orc_convert_AYUV_UYVY (guint8 * ORC_RESTRICT d1, int d1_stride,
+    const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
+{
+  int i;
+  int j;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union64 *ORC_RESTRICT ptr4;
+  orc_union64 var37;
+  orc_union32 var38;
+  orc_union32 var39;
+  orc_union32 var40;
+  orc_union16 var41;
+  orc_union16 var42;
+  orc_union16 var43;
+  orc_union16 var44;
+
+  for (j = 0; j < m; j++) {
+    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
+    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
+
+
+    for (i = 0; i < n; i++) {
+      /* 0: loadq */
+      var37 = ptr4[i];
+      /* 1: splitlw */
+      {
+        orc_union32 _src;
+        _src.i = var37.x2[0];
+        var39.x2[0] = _src.x2[1];
+        var40.x2[0] = _src.x2[0];
+      }
+      {
+        orc_union32 _src;
+        _src.i = var37.x2[1];
+        var39.x2[1] = _src.x2[1];
+        var40.x2[1] = _src.x2[0];
+      }
+      /* 2: splitlw */
+      {
+        orc_union32 _src;
+        _src.i = var39.i;
+        var41.i = _src.x2[1];
+        var42.i = _src.x2[0];
+      }
+      /* 3: avgub */
+      var43.x2[0] =
+          ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
+      var43.x2[1] =
+          ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
+      /* 4: select1wb */
+      {
+        orc_union16 _src;
+        _src.i = var40.x2[0];
+        var44.x2[0] = _src.x2[1];
+      }
+      {
+        orc_union16 _src;
+        _src.i = var40.x2[1];
+        var44.x2[1] = _src.x2[1];
+      }
+      /* 5: mergebw */
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var43.x2[0];
+        _dest.x2[1] = var44.x2[0];
+        var38.x2[0] = _dest.i;
+      }
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var43.x2[1];
+        _dest.x2[1] = var44.x2[1];
+        var38.x2[1] = _dest.i;
+      }
+      /* 6: storel */
+      ptr0[i] = var38;
+    }
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_convert_AYUV_UYVY (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int j;
+  int n = ex->n;
+  int m = ex->params[ORC_VAR_A1];
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union64 *ORC_RESTRICT ptr4;
+  orc_union64 var37;
+  orc_union32 var38;
+  orc_union32 var39;
+  orc_union32 var40;
+  orc_union16 var41;
+  orc_union16 var42;
+  orc_union16 var43;
+  orc_union16 var44;
+
+  for (j = 0; j < m; j++) {
+    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
+    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
+
+
+    for (i = 0; i < n; i++) {
+      /* 0: loadq */
+      var37 = ptr4[i];
+      /* 1: splitlw */
+      {
+        orc_union32 _src;
+        _src.i = var37.x2[0];
+        var39.x2[0] = _src.x2[1];
+        var40.x2[0] = _src.x2[0];
+      }
+      {
+        orc_union32 _src;
+        _src.i = var37.x2[1];
+        var39.x2[1] = _src.x2[1];
+        var40.x2[1] = _src.x2[0];
+      }
+      /* 2: splitlw */
+      {
+        orc_union32 _src;
+        _src.i = var39.i;
+        var41.i = _src.x2[1];
+        var42.i = _src.x2[0];
+      }
+      /* 3: avgub */
+      var43.x2[0] =
+          ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
+      var43.x2[1] =
+          ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
+      /* 4: select1wb */
+      {
+        orc_union16 _src;
+        _src.i = var40.x2[0];
+        var44.x2[0] = _src.x2[1];
+      }
+      {
+        orc_union16 _src;
+        _src.i = var40.x2[1];
+        var44.x2[1] = _src.x2[1];
+      }
+      /* 5: mergebw */
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var43.x2[0];
+        _dest.x2[1] = var44.x2[0];
+        var38.x2[0] = _dest.i;
+      }
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var43.x2[1];
+        _dest.x2[1] = var44.x2[1];
+        var38.x2[1] = _dest.i;
+      }
+      /* 6: storel */
+      ptr0[i] = var38;
+    }
+  }
+
+}
+
+void
+video_orc_convert_AYUV_UYVY (guint8 * ORC_RESTRICT d1, int d1_stride,
+    const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 7, 9, 27, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 99, 111,
+        110, 118, 101, 114, 116, 95, 65, 89, 85, 86, 95, 85, 89, 86, 89, 11,
+        4, 4, 12, 8, 8, 20, 2, 20, 2, 20, 2, 20, 4, 20, 4, 21,
+        1, 198, 36, 35, 4, 198, 33, 34, 36, 21, 1, 39, 33, 33, 34, 21,
+        1, 189, 32, 35, 21, 1, 196, 0, 33, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_convert_AYUV_UYVY);
+#else
+      p = orc_program_new ();
+      orc_program_set_2d (p);
+      orc_program_set_name (p, "video_orc_convert_AYUV_UYVY");
+      orc_program_set_backup_function (p, _backup_video_orc_convert_AYUV_UYVY);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 8, "s1");
+      orc_program_add_temporary (p, 2, "t1");
+      orc_program_add_temporary (p, 2, "t2");
+      orc_program_add_temporary (p, 2, "t3");
+      orc_program_add_temporary (p, 4, "t4");
+      orc_program_add_temporary (p, 4, "t5");
+
+      orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T5, ORC_VAR_T4, ORC_VAR_S1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T2, ORC_VAR_T3, ORC_VAR_T5,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "avgub", 1, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_T3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "select1wb", 1, ORC_VAR_T1, ORC_VAR_T4,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_T1,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ORC_EXECUTOR_M (ex) = m;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->params[ORC_VAR_D1] = d1_stride;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->params[ORC_VAR_S1] = s1_stride;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_convert_AYUV_Y42B */
+#ifdef DISABLE_ORC
+void
+video_orc_convert_AYUV_Y42B (guint8 * ORC_RESTRICT d1, int d1_stride,
+    guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3,
+    int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
+{
+  int i;
+  int j;
+  orc_union16 *ORC_RESTRICT ptr0;
+  orc_int8 *ORC_RESTRICT ptr1;
+  orc_int8 *ORC_RESTRICT ptr2;
+  const orc_union64 *ORC_RESTRICT ptr4;
+  orc_union64 var36;
+  orc_int8 var37;
+  orc_int8 var38;
+  orc_union16 var39;
+  orc_union32 var40;
+  orc_union32 var41;
+  orc_union16 var42;
+  orc_union16 var43;
+  orc_union16 var44;
+
+  for (j = 0; j < m; j++) {
+    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
+    ptr1 = ORC_PTR_OFFSET (d2, d2_stride * j);
+    ptr2 = ORC_PTR_OFFSET (d3, d3_stride * j);
+    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
+
+
+    for (i = 0; i < n; i++) {
+      /* 0: loadq */
+      var36 = ptr4[i];
+      /* 1: splitlw */
+      {
+        orc_union32 _src;
+        _src.i = var36.x2[0];
+        var40.x2[0] = _src.x2[1];
+        var41.x2[0] = _src.x2[0];
+      }
+      {
+        orc_union32 _src;
+        _src.i = var36.x2[1];
+        var40.x2[1] = _src.x2[1];
+        var41.x2[1] = _src.x2[0];
+      }
+      /* 2: splitlw */
+      {
+        orc_union32 _src;
+        _src.i = var40.i;
+        var42.i = _src.x2[1];
+        var43.i = _src.x2[0];
+      }
+      /* 3: avgub */
+      var44.x2[0] =
+          ((orc_uint8) var42.x2[0] + (orc_uint8) var43.x2[0] + 1) >> 1;
+      var44.x2[1] =
+          ((orc_uint8) var42.x2[1] + (orc_uint8) var43.x2[1] + 1) >> 1;
+      /* 4: splitwb */
+      {
+        orc_union16 _src;
+        _src.i = var44.i;
+        var37 = _src.x2[1];
+        var38 = _src.x2[0];
+      }
+      /* 5: storeb */
+      ptr2[i] = var37;
+      /* 6: storeb */
+      ptr1[i] = var38;
+      /* 7: select1wb */
+      {
+        orc_union16 _src;
+        _src.i = var41.x2[0];
+        var39.x2[0] = _src.x2[1];
+      }
+      {
+        orc_union16 _src;
+        _src.i = var41.x2[1];
+        var39.x2[1] = _src.x2[1];
+      }
+      /* 8: storew */
+      ptr0[i] = var39;
+    }
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_convert_AYUV_Y42B (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int j;
+  int n = ex->n;
+  int m = ex->params[ORC_VAR_A1];
+  orc_union16 *ORC_RESTRICT ptr0;
+  orc_int8 *ORC_RESTRICT ptr1;
+  orc_int8 *ORC_RESTRICT ptr2;
+  const orc_union64 *ORC_RESTRICT ptr4;
+  orc_union64 var36;
+  orc_int8 var37;
+  orc_int8 var38;
+  orc_union16 var39;
+  orc_union32 var40;
+  orc_union32 var41;
+  orc_union16 var42;
+  orc_union16 var43;
+  orc_union16 var44;
+
+  for (j = 0; j < m; j++) {
+    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
+    ptr1 = ORC_PTR_OFFSET (ex->arrays[1], ex->params[1] * j);
+    ptr2 = ORC_PTR_OFFSET (ex->arrays[2], ex->params[2] * j);
+    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
+
+
+    for (i = 0; i < n; i++) {
+      /* 0: loadq */
+      var36 = ptr4[i];
+      /* 1: splitlw */
+      {
+        orc_union32 _src;
+        _src.i = var36.x2[0];
+        var40.x2[0] = _src.x2[1];
+        var41.x2[0] = _src.x2[0];
+      }
+      {
+        orc_union32 _src;
+        _src.i = var36.x2[1];
+        var40.x2[1] = _src.x2[1];
+        var41.x2[1] = _src.x2[0];
+      }
+      /* 2: splitlw */
+      {
+        orc_union32 _src;
+        _src.i = var40.i;
+        var42.i = _src.x2[1];
+        var43.i = _src.x2[0];
+      }
+      /* 3: avgub */
+      var44.x2[0] =
+          ((orc_uint8) var42.x2[0] + (orc_uint8) var43.x2[0] + 1) >> 1;
+      var44.x2[1] =
+          ((orc_uint8) var42.x2[1] + (orc_uint8) var43.x2[1] + 1) >> 1;
+      /* 4: splitwb */
+      {
+        orc_union16 _src;
+        _src.i = var44.i;
+        var37 = _src.x2[1];
+        var38 = _src.x2[0];
+      }
+      /* 5: storeb */
+      ptr2[i] = var37;
+      /* 6: storeb */
+      ptr1[i] = var38;
+      /* 7: select1wb */
+      {
+        orc_union16 _src;
+        _src.i = var41.x2[0];
+        var39.x2[0] = _src.x2[1];
+      }
+      {
+        orc_union16 _src;
+        _src.i = var41.x2[1];
+        var39.x2[1] = _src.x2[1];
+      }
+      /* 8: storew */
+      ptr0[i] = var39;
+    }
+  }
+
+}
+
+void
+video_orc_convert_AYUV_Y42B (guint8 * ORC_RESTRICT d1, int d1_stride,
+    guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3,
+    int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 7, 9, 27, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 99, 111,
+        110, 118, 101, 114, 116, 95, 65, 89, 85, 86, 95, 89, 52, 50, 66, 11,
+        2, 2, 11, 1, 1, 11, 1, 1, 12, 8, 8, 20, 4, 20, 4, 20,
+        2, 20, 2, 21, 1, 198, 33, 32, 4, 198, 34, 35, 33, 21, 1, 39,
+        34, 34, 35, 199, 2, 1, 34, 21, 1, 189, 0, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_convert_AYUV_Y42B);
+#else
+      p = orc_program_new ();
+      orc_program_set_2d (p);
+      orc_program_set_name (p, "video_orc_convert_AYUV_Y42B");
+      orc_program_set_backup_function (p, _backup_video_orc_convert_AYUV_Y42B);
+      orc_program_add_destination (p, 2, "d1");
+      orc_program_add_destination (p, 1, "d2");
+      orc_program_add_destination (p, 1, "d3");
+      orc_program_add_source (p, 8, "s1");
+      orc_program_add_temporary (p, 4, "t1");
+      orc_program_add_temporary (p, 4, "t2");
+      orc_program_add_temporary (p, 2, "t3");
+      orc_program_add_temporary (p, 2, "t4");
+
+      orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_S1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T3, ORC_VAR_T4, ORC_VAR_T2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "avgub", 1, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_T4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_D3, ORC_VAR_D2, ORC_VAR_T3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "select1wb", 1, ORC_VAR_D1, ORC_VAR_T1,
+          ORC_VAR_D1, ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ORC_EXECUTOR_M (ex) = m;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->params[ORC_VAR_D1] = d1_stride;
+  ex->arrays[ORC_VAR_D2] = d2;
+  ex->params[ORC_VAR_D2] = d2_stride;
+  ex->arrays[ORC_VAR_D3] = d3;
+  ex->params[ORC_VAR_D3] = d3_stride;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->params[ORC_VAR_S1] = s1_stride;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_convert_AYUV_Y444 */
+#ifdef DISABLE_ORC
+void
+video_orc_convert_AYUV_Y444 (guint8 * ORC_RESTRICT d1, int d1_stride,
+    guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3,
+    int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
+{
+  int i;
+  int j;
+  orc_int8 *ORC_RESTRICT ptr0;
+  orc_int8 *ORC_RESTRICT ptr1;
+  orc_int8 *ORC_RESTRICT ptr2;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var34;
+  orc_int8 var35;
+  orc_int8 var36;
+  orc_int8 var37;
+  orc_union16 var38;
+  orc_union16 var39;
+
+  for (j = 0; j < m; j++) {
+    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
+    ptr1 = ORC_PTR_OFFSET (d2, d2_stride * j);
+    ptr2 = ORC_PTR_OFFSET (d3, d3_stride * j);
+    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
+
+
+    for (i = 0; i < n; i++) {
+      /* 0: loadl */
+      var34 = ptr4[i];
+      /* 1: splitlw */
+      {
+        orc_union32 _src;
+        _src.i = var34.i;
+        var38.i = _src.x2[1];
+        var39.i = _src.x2[0];
+      }
+      /* 2: splitwb */
+      {
+        orc_union16 _src;
+        _src.i = var38.i;
+        var35 = _src.x2[1];
+        var36 = _src.x2[0];
+      }
+      /* 3: storeb */
+      ptr2[i] = var35;
+      /* 4: storeb */
+      ptr1[i] = var36;
+      /* 5: select1wb */
+      {
+        orc_union16 _src;
+        _src.i = var39.i;
+        var37 = _src.x2[1];
+      }
+      /* 6: storeb */
+      ptr0[i] = var37;
+    }
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_convert_AYUV_Y444 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int j;
+  int n = ex->n;
+  int m = ex->params[ORC_VAR_A1];
+  orc_int8 *ORC_RESTRICT ptr0;
+  orc_int8 *ORC_RESTRICT ptr1;
+  orc_int8 *ORC_RESTRICT ptr2;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var34;
+  orc_int8 var35;
+  orc_int8 var36;
+  orc_int8 var37;
+  orc_union16 var38;
+  orc_union16 var39;
+
+  for (j = 0; j < m; j++) {
+    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
+    ptr1 = ORC_PTR_OFFSET (ex->arrays[1], ex->params[1] * j);
+    ptr2 = ORC_PTR_OFFSET (ex->arrays[2], ex->params[2] * j);
+    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
+
+
+    for (i = 0; i < n; i++) {
+      /* 0: loadl */
+      var34 = ptr4[i];
+      /* 1: splitlw */
+      {
+        orc_union32 _src;
+        _src.i = var34.i;
+        var38.i = _src.x2[1];
+        var39.i = _src.x2[0];
+      }
+      /* 2: splitwb */
+      {
+        orc_union16 _src;
+        _src.i = var38.i;
+        var35 = _src.x2[1];
+        var36 = _src.x2[0];
+      }
+      /* 3: storeb */
+      ptr2[i] = var35;
+      /* 4: storeb */
+      ptr1[i] = var36;
+      /* 5: select1wb */
+      {
+        orc_union16 _src;
+        _src.i = var39.i;
+        var37 = _src.x2[1];
+      }
+      /* 6: storeb */
+      ptr0[i] = var37;
+    }
+  }
+
+}
+
+void
+video_orc_convert_AYUV_Y444 (guint8 * ORC_RESTRICT d1, int d1_stride,
+    guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3,
+    int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 7, 9, 27, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 99, 111,
+        110, 118, 101, 114, 116, 95, 65, 89, 85, 86, 95, 89, 52, 52, 52, 11,
+        1, 1, 11, 1, 1, 11, 1, 1, 12, 4, 4, 20, 2, 20, 2, 198,
+        33, 32, 4, 199, 2, 1, 33, 189, 0, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_convert_AYUV_Y444);
+#else
+      p = orc_program_new ();
+      orc_program_set_2d (p);
+      orc_program_set_name (p, "video_orc_convert_AYUV_Y444");
+      orc_program_set_backup_function (p, _backup_video_orc_convert_AYUV_Y444);
+      orc_program_add_destination (p, 1, "d1");
+      orc_program_add_destination (p, 1, "d2");
+      orc_program_add_destination (p, 1, "d3");
+      orc_program_add_source (p, 4, "s1");
+      orc_program_add_temporary (p, 2, "t1");
+      orc_program_add_temporary (p, 2, "t2");
+
+      orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_S1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_D3, ORC_VAR_D2, ORC_VAR_T2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "select1wb", 0, ORC_VAR_D1, ORC_VAR_T1,
+          ORC_VAR_D1, ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ORC_EXECUTOR_M (ex) = m;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->params[ORC_VAR_D1] = d1_stride;
+  ex->arrays[ORC_VAR_D2] = d2;
+  ex->params[ORC_VAR_D2] = d2_stride;
+  ex->arrays[ORC_VAR_D3] = d3;
+  ex->params[ORC_VAR_D3] = d3_stride;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->params[ORC_VAR_S1] = s1_stride;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_convert_Y42B_YUY2 */
+#ifdef DISABLE_ORC
+void
+video_orc_convert_Y42B_YUY2 (guint8 * ORC_RESTRICT d1, int d1_stride,
+    const guint8 * ORC_RESTRICT s1, int s1_stride,
+    const guint8 * ORC_RESTRICT s2, int s2_stride,
+    const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m)
+{
+  int i;
+  int j;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+  const orc_int8 *ORC_RESTRICT ptr5;
+  const orc_int8 *ORC_RESTRICT ptr6;
+  orc_int8 var33;
+  orc_int8 var34;
+  orc_union16 var35;
+  orc_union32 var36;
+  orc_union16 var37;
+
+  for (j = 0; j < m; j++) {
+    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
+    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
+    ptr5 = ORC_PTR_OFFSET (s2, s2_stride * j);
+    ptr6 = ORC_PTR_OFFSET (s3, s3_stride * j);
+
+
+    for (i = 0; i < n; i++) {
+      /* 0: loadb */
+      var33 = ptr5[i];
+      /* 1: loadb */
+      var34 = ptr6[i];
+      /* 2: mergebw */
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var33;
+        _dest.x2[1] = var34;
+        var37.i = _dest.i;
+      }
+      /* 3: loadw */
+      var35 = ptr4[i];
+      /* 4: mergebw */
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var35.x2[0];
+        _dest.x2[1] = var37.x2[0];
+        var36.x2[0] = _dest.i;
+      }
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var35.x2[1];
+        _dest.x2[1] = var37.x2[1];
+        var36.x2[1] = _dest.i;
+      }
+      /* 5: storel */
+      ptr0[i] = var36;
+    }
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_convert_Y42B_YUY2 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int j;
+  int n = ex->n;
+  int m = ex->params[ORC_VAR_A1];
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+  const orc_int8 *ORC_RESTRICT ptr5;
+  const orc_int8 *ORC_RESTRICT ptr6;
+  orc_int8 var33;
+  orc_int8 var34;
+  orc_union16 var35;
+  orc_union32 var36;
+  orc_union16 var37;
+
+  for (j = 0; j < m; j++) {
+    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
+    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
+    ptr5 = ORC_PTR_OFFSET (ex->arrays[5], ex->params[5] * j);
+    ptr6 = ORC_PTR_OFFSET (ex->arrays[6], ex->params[6] * j);
+
+
+    for (i = 0; i < n; i++) {
+      /* 0: loadb */
+      var33 = ptr5[i];
+      /* 1: loadb */
+      var34 = ptr6[i];
+      /* 2: mergebw */
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var33;
+        _dest.x2[1] = var34;
+        var37.i = _dest.i;
+      }
+      /* 3: loadw */
+      var35 = ptr4[i];
+      /* 4: mergebw */
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var35.x2[0];
+        _dest.x2[1] = var37.x2[0];
+        var36.x2[0] = _dest.i;
+      }
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var35.x2[1];
+        _dest.x2[1] = var37.x2[1];
+        var36.x2[1] = _dest.i;
+      }
+      /* 5: storel */
+      ptr0[i] = var36;
+    }
+  }
+
+}
+
+void
+video_orc_convert_Y42B_YUY2 (guint8 * ORC_RESTRICT d1, int d1_stride,
+    const guint8 * ORC_RESTRICT s1, int s1_stride,
+    const guint8 * ORC_RESTRICT s2, int s2_stride,
+    const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 7, 9, 27, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 99, 111,
+        110, 118, 101, 114, 116, 95, 89, 52, 50, 66, 95, 89, 85, 89, 50, 11,
+        4, 4, 12, 2, 2, 12, 1, 1, 12, 1, 1, 20, 2, 196, 32, 5,
+        6, 21, 1, 196, 0, 4, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_convert_Y42B_YUY2);
+#else
+      p = orc_program_new ();
+      orc_program_set_2d (p);
+      orc_program_set_name (p, "video_orc_convert_Y42B_YUY2");
+      orc_program_set_backup_function (p, _backup_video_orc_convert_Y42B_YUY2);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 2, "s1");
+      orc_program_add_source (p, 1, "s2");
+      orc_program_add_source (p, 1, "s3");
+      orc_program_add_temporary (p, 2, "t1");
+
+      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_S2, ORC_VAR_S3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_T1,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ORC_EXECUTOR_M (ex) = m;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->params[ORC_VAR_D1] = d1_stride;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->params[ORC_VAR_S1] = s1_stride;
+  ex->arrays[ORC_VAR_S2] = (void *) s2;
+  ex->params[ORC_VAR_S2] = s2_stride;
+  ex->arrays[ORC_VAR_S3] = (void *) s3;
+  ex->params[ORC_VAR_S3] = s3_stride;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_convert_Y42B_UYVY */
+#ifdef DISABLE_ORC
+void
+video_orc_convert_Y42B_UYVY (guint8 * ORC_RESTRICT d1, int d1_stride,
+    const guint8 * ORC_RESTRICT s1, int s1_stride,
+    const guint8 * ORC_RESTRICT s2, int s2_stride,
+    const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m)
+{
+  int i;
+  int j;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+  const orc_int8 *ORC_RESTRICT ptr5;
+  const orc_int8 *ORC_RESTRICT ptr6;
+  orc_int8 var33;
+  orc_int8 var34;
+  orc_union16 var35;
+  orc_union32 var36;
+  orc_union16 var37;
+
+  for (j = 0; j < m; j++) {
+    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
+    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
+    ptr5 = ORC_PTR_OFFSET (s2, s2_stride * j);
+    ptr6 = ORC_PTR_OFFSET (s3, s3_stride * j);
+
+
+    for (i = 0; i < n; i++) {
+      /* 0: loadb */
+      var33 = ptr5[i];
+      /* 1: loadb */
+      var34 = ptr6[i];
+      /* 2: mergebw */
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var33;
+        _dest.x2[1] = var34;
+        var37.i = _dest.i;
+      }
+      /* 3: loadw */
+      var35 = ptr4[i];
+      /* 4: mergebw */
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var37.x2[0];
+        _dest.x2[1] = var35.x2[0];
+        var36.x2[0] = _dest.i;
+      }
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var37.x2[1];
+        _dest.x2[1] = var35.x2[1];
+        var36.x2[1] = _dest.i;
+      }
+      /* 5: storel */
+      ptr0[i] = var36;
+    }
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_convert_Y42B_UYVY (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int j;
+  int n = ex->n;
+  int m = ex->params[ORC_VAR_A1];
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+  const orc_int8 *ORC_RESTRICT ptr5;
+  const orc_int8 *ORC_RESTRICT ptr6;
+  orc_int8 var33;
+  orc_int8 var34;
+  orc_union16 var35;
+  orc_union32 var36;
+  orc_union16 var37;
+
+  for (j = 0; j < m; j++) {
+    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
+    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
+    ptr5 = ORC_PTR_OFFSET (ex->arrays[5], ex->params[5] * j);
+    ptr6 = ORC_PTR_OFFSET (ex->arrays[6], ex->params[6] * j);
+
+
+    for (i = 0; i < n; i++) {
+      /* 0: loadb */
+      var33 = ptr5[i];
+      /* 1: loadb */
+      var34 = ptr6[i];
+      /* 2: mergebw */
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var33;
+        _dest.x2[1] = var34;
+        var37.i = _dest.i;
+      }
+      /* 3: loadw */
+      var35 = ptr4[i];
+      /* 4: mergebw */
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var37.x2[0];
+        _dest.x2[1] = var35.x2[0];
+        var36.x2[0] = _dest.i;
+      }
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var37.x2[1];
+        _dest.x2[1] = var35.x2[1];
+        var36.x2[1] = _dest.i;
+      }
+      /* 5: storel */
+      ptr0[i] = var36;
+    }
+  }
+
+}
+
+void
+video_orc_convert_Y42B_UYVY (guint8 * ORC_RESTRICT d1, int d1_stride,
+    const guint8 * ORC_RESTRICT s1, int s1_stride,
+    const guint8 * ORC_RESTRICT s2, int s2_stride,
+    const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 7, 9, 27, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 99, 111,
+        110, 118, 101, 114, 116, 95, 89, 52, 50, 66, 95, 85, 89, 86, 89, 11,
+        4, 4, 12, 2, 2, 12, 1, 1, 12, 1, 1, 20, 2, 196, 32, 5,
+        6, 21, 1, 196, 0, 32, 4, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_convert_Y42B_UYVY);
+#else
+      p = orc_program_new ();
+      orc_program_set_2d (p);
+      orc_program_set_name (p, "video_orc_convert_Y42B_UYVY");
+      orc_program_set_backup_function (p, _backup_video_orc_convert_Y42B_UYVY);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 2, "s1");
+      orc_program_add_source (p, 1, "s2");
+      orc_program_add_source (p, 1, "s3");
+      orc_program_add_temporary (p, 2, "t1");
+
+      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_S2, ORC_VAR_S3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_S1,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ORC_EXECUTOR_M (ex) = m;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->params[ORC_VAR_D1] = d1_stride;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->params[ORC_VAR_S1] = s1_stride;
+  ex->arrays[ORC_VAR_S2] = (void *) s2;
+  ex->params[ORC_VAR_S2] = s2_stride;
+  ex->arrays[ORC_VAR_S3] = (void *) s3;
+  ex->params[ORC_VAR_S3] = s3_stride;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_convert_Y42B_AYUV */
+#ifdef DISABLE_ORC
+void
+video_orc_convert_Y42B_AYUV (guint8 * ORC_RESTRICT d1, int d1_stride,
+    const guint8 * ORC_RESTRICT s1, int s1_stride,
+    const guint8 * ORC_RESTRICT s2, int s2_stride,
+    const guint8 * ORC_RESTRICT s3, int s3_stride, int p1, int n, int m)
+{
+  int i;
+  int j;
+  orc_union64 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+  const orc_int8 *ORC_RESTRICT ptr5;
+  const orc_int8 *ORC_RESTRICT ptr6;
+  orc_int8 var36;
+  orc_int8 var37;
+  orc_union16 var38;
+  orc_union16 var39;
+  orc_union64 var40;
+  orc_union16 var41;
+  orc_union32 var42;
+  orc_union32 var43;
+
+  for (j = 0; j < m; j++) {
+    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
+    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
+    ptr5 = ORC_PTR_OFFSET (s2, s2_stride * j);
+    ptr6 = ORC_PTR_OFFSET (s3, s3_stride * j);
+
+    /* 3: loadpb */
+    var38.x2[0] = p1;
+    var38.x2[1] = p1;
+
+    for (i = 0; i < n; i++) {
+      /* 0: loadb */
+      var36 = ptr5[i];
+      /* 1: loadb */
+      var37 = ptr6[i];
+      /* 2: mergebw */
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var36;
+        _dest.x2[1] = var37;
+        var41.i = _dest.i;
+      }
+      /* 4: loadw */
+      var39 = ptr4[i];
+      /* 5: mergebw */
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var38.x2[0];
+        _dest.x2[1] = var39.x2[0];
+        var42.x2[0] = _dest.i;
+      }
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var38.x2[1];
+        _dest.x2[1] = var39.x2[1];
+        var42.x2[1] = _dest.i;
+      }
+      /* 6: mergewl */
+      {
+        orc_union32 _dest;
+        _dest.x2[0] = var41.i;
+        _dest.x2[1] = var41.i;
+        var43.i = _dest.i;
+      }
+      /* 7: mergewl */
+      {
+        orc_union32 _dest;
+        _dest.x2[0] = var42.x2[0];
+        _dest.x2[1] = var43.x2[0];
+        var40.x2[0] = _dest.i;
+      }
+      {
+        orc_union32 _dest;
+        _dest.x2[0] = var42.x2[1];
+        _dest.x2[1] = var43.x2[1];
+        var40.x2[1] = _dest.i;
+      }
+      /* 8: storeq */
+      ptr0[i] = var40;
+    }
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_convert_Y42B_AYUV (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int j;
+  int n = ex->n;
+  int m = ex->params[ORC_VAR_A1];
+  orc_union64 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+  const orc_int8 *ORC_RESTRICT ptr5;
+  const orc_int8 *ORC_RESTRICT ptr6;
+  orc_int8 var36;
+  orc_int8 var37;
+  orc_union16 var38;
+  orc_union16 var39;
+  orc_union64 var40;
+  orc_union16 var41;
+  orc_union32 var42;
+  orc_union32 var43;
+
+  for (j = 0; j < m; j++) {
+    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
+    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
+    ptr5 = ORC_PTR_OFFSET (ex->arrays[5], ex->params[5] * j);
+    ptr6 = ORC_PTR_OFFSET (ex->arrays[6], ex->params[6] * j);
+
+    /* 3: loadpb */
+    var38.x2[0] = ex->params[24];
+    var38.x2[1] = ex->params[24];
+
+    for (i = 0; i < n; i++) {
+      /* 0: loadb */
+      var36 = ptr5[i];
+      /* 1: loadb */
+      var37 = ptr6[i];
+      /* 2: mergebw */
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var36;
+        _dest.x2[1] = var37;
+        var41.i = _dest.i;
+      }
+      /* 4: loadw */
+      var39 = ptr4[i];
+      /* 5: mergebw */
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var38.x2[0];
+        _dest.x2[1] = var39.x2[0];
+        var42.x2[0] = _dest.i;
+      }
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var38.x2[1];
+        _dest.x2[1] = var39.x2[1];
+        var42.x2[1] = _dest.i;
+      }
+      /* 6: mergewl */
+      {
+        orc_union32 _dest;
+        _dest.x2[0] = var41.i;
+        _dest.x2[1] = var41.i;
+        var43.i = _dest.i;
+      }
+      /* 7: mergewl */
+      {
+        orc_union32 _dest;
+        _dest.x2[0] = var42.x2[0];
+        _dest.x2[1] = var43.x2[0];
+        var40.x2[0] = _dest.i;
+      }
+      {
+        orc_union32 _dest;
+        _dest.x2[0] = var42.x2[1];
+        _dest.x2[1] = var43.x2[1];
+        var40.x2[1] = _dest.i;
+      }
+      /* 8: storeq */
+      ptr0[i] = var40;
+    }
+  }
+
+}
+
+void
+video_orc_convert_Y42B_AYUV (guint8 * ORC_RESTRICT d1, int d1_stride,
+    const guint8 * ORC_RESTRICT s1, int s1_stride,
+    const guint8 * ORC_RESTRICT s2, int s2_stride,
+    const guint8 * ORC_RESTRICT s3, int s3_stride, int p1, int n, int m)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 7, 9, 27, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 99, 111,
+        110, 118, 101, 114, 116, 95, 89, 52, 50, 66, 95, 65, 89, 85, 86, 11,
+        8, 8, 12, 2, 2, 12, 1, 1, 12, 1, 1, 16, 1, 20, 2, 20,
+        2, 20, 4, 20, 4, 196, 32, 5, 6, 21, 1, 196, 35, 24, 4, 195,
+        34, 32, 32, 21, 1, 195, 0, 35, 34, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_convert_Y42B_AYUV);
+#else
+      p = orc_program_new ();
+      orc_program_set_2d (p);
+      orc_program_set_name (p, "video_orc_convert_Y42B_AYUV");
+      orc_program_set_backup_function (p, _backup_video_orc_convert_Y42B_AYUV);
+      orc_program_add_destination (p, 8, "d1");
+      orc_program_add_source (p, 2, "s1");
+      orc_program_add_source (p, 1, "s2");
+      orc_program_add_source (p, 1, "s3");
+      orc_program_add_parameter (p, 1, "p1");
+      orc_program_add_temporary (p, 2, "t1");
+      orc_program_add_temporary (p, 2, "t2");
+      orc_program_add_temporary (p, 4, "t3");
+      orc_program_add_temporary (p, 4, "t4");
+
+      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_S2, ORC_VAR_S3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergebw", 1, ORC_VAR_T4, ORC_VAR_P1, ORC_VAR_S1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T3, ORC_VAR_T1, ORC_VAR_T1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergewl", 1, ORC_VAR_D1, ORC_VAR_T4, ORC_VAR_T3,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ORC_EXECUTOR_M (ex) = m;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->params[ORC_VAR_D1] = d1_stride;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->params[ORC_VAR_S1] = s1_stride;
+  ex->arrays[ORC_VAR_S2] = (void *) s2;
+  ex->params[ORC_VAR_S2] = s2_stride;
+  ex->arrays[ORC_VAR_S3] = (void *) s3;
+  ex->params[ORC_VAR_S3] = s3_stride;
+  ex->params[ORC_VAR_P1] = p1;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_convert_Y444_YUY2 */
+#ifdef DISABLE_ORC
+void
+video_orc_convert_Y444_YUY2 (guint8 * ORC_RESTRICT d1, int d1_stride,
+    const guint8 * ORC_RESTRICT s1, int s1_stride,
+    const guint8 * ORC_RESTRICT s2, int s2_stride,
+    const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m)
+{
+  int i;
+  int j;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+  const orc_union16 *ORC_RESTRICT ptr5;
+  const orc_union16 *ORC_RESTRICT ptr6;
+  orc_union16 var36;
+  orc_union16 var37;
+  orc_union16 var38;
+  orc_union32 var39;
+  orc_union32 var40;
+  orc_union16 var41;
+  orc_union16 var42;
+  orc_union16 var43;
+
+  for (j = 0; j < m; j++) {
+    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
+    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
+    ptr5 = ORC_PTR_OFFSET (s2, s2_stride * j);
+    ptr6 = ORC_PTR_OFFSET (s3, s3_stride * j);
+
+
+    for (i = 0; i < n; i++) {
+      /* 0: loadw */
+      var36 = ptr5[i];
+      /* 1: loadw */
+      var37 = ptr6[i];
+      /* 2: mergebw */
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var36.x2[0];
+        _dest.x2[1] = var37.x2[0];
+        var40.x2[0] = _dest.i;
+      }
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var36.x2[1];
+        _dest.x2[1] = var37.x2[1];
+        var40.x2[1] = _dest.i;
+      }
+      /* 3: splitlw */
+      {
+        orc_union32 _src;
+        _src.i = var40.i;
+        var41.i = _src.x2[1];
+        var42.i = _src.x2[0];
+      }
+      /* 4: avgub */
+      var43.x2[0] =
+          ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
+      var43.x2[1] =
+          ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
+      /* 5: loadw */
+      var38 = ptr4[i];
+      /* 6: mergebw */
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var38.x2[0];
+        _dest.x2[1] = var43.x2[0];
+        var39.x2[0] = _dest.i;
+      }
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var38.x2[1];
+        _dest.x2[1] = var43.x2[1];
+        var39.x2[1] = _dest.i;
+      }
+      /* 7: storel */
+      ptr0[i] = var39;
+    }
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_convert_Y444_YUY2 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int j;
+  int n = ex->n;
+  int m = ex->params[ORC_VAR_A1];
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+  const orc_union16 *ORC_RESTRICT ptr5;
+  const orc_union16 *ORC_RESTRICT ptr6;
+  orc_union16 var36;
+  orc_union16 var37;
+  orc_union16 var38;
+  orc_union32 var39;
+  orc_union32 var40;
+  orc_union16 var41;
+  orc_union16 var42;
+  orc_union16 var43;
+
+  for (j = 0; j < m; j++) {
+    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
+    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
+    ptr5 = ORC_PTR_OFFSET (ex->arrays[5], ex->params[5] * j);
+    ptr6 = ORC_PTR_OFFSET (ex->arrays[6], ex->params[6] * j);
+
+
+    for (i = 0; i < n; i++) {
+      /* 0: loadw */
+      var36 = ptr5[i];
+      /* 1: loadw */
+      var37 = ptr6[i];
+      /* 2: mergebw */
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var36.x2[0];
+        _dest.x2[1] = var37.x2[0];
+        var40.x2[0] = _dest.i;
+      }
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var36.x2[1];
+        _dest.x2[1] = var37.x2[1];
+        var40.x2[1] = _dest.i;
+      }
+      /* 3: splitlw */
+      {
+        orc_union32 _src;
+        _src.i = var40.i;
+        var41.i = _src.x2[1];
+        var42.i = _src.x2[0];
+      }
+      /* 4: avgub */
+      var43.x2[0] =
+          ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
+      var43.x2[1] =
+          ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
+      /* 5: loadw */
+      var38 = ptr4[i];
+      /* 6: mergebw */
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var38.x2[0];
+        _dest.x2[1] = var43.x2[0];
+        var39.x2[0] = _dest.i;
+      }
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var38.x2[1];
+        _dest.x2[1] = var43.x2[1];
+        var39.x2[1] = _dest.i;
+      }
+      /* 7: storel */
+      ptr0[i] = var39;
+    }
+  }
+
+}
+
+void
+video_orc_convert_Y444_YUY2 (guint8 * ORC_RESTRICT d1, int d1_stride,
+    const guint8 * ORC_RESTRICT s1, int s1_stride,
+    const guint8 * ORC_RESTRICT s2, int s2_stride,
+    const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 7, 9, 27, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 99, 111,
+        110, 118, 101, 114, 116, 95, 89, 52, 52, 52, 95, 89, 85, 89, 50, 11,
+        4, 4, 12, 2, 2, 12, 2, 2, 12, 2, 2, 20, 2, 20, 4, 20,
+        2, 20, 2, 21, 1, 196, 33, 5, 6, 198, 34, 35, 33, 21, 1, 39,
+        32, 34, 35, 21, 1, 196, 0, 4, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_convert_Y444_YUY2);
+#else
+      p = orc_program_new ();
+      orc_program_set_2d (p);
+      orc_program_set_name (p, "video_orc_convert_Y444_YUY2");
+      orc_program_set_backup_function (p, _backup_video_orc_convert_Y444_YUY2);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 2, "s1");
+      orc_program_add_source (p, 2, "s2");
+      orc_program_add_source (p, 2, "s3");
+      orc_program_add_temporary (p, 2, "t1");
+      orc_program_add_temporary (p, 4, "t2");
+      orc_program_add_temporary (p, 2, "t3");
+      orc_program_add_temporary (p, 2, "t4");
+
+      orc_program_append_2 (p, "mergebw", 1, ORC_VAR_T2, ORC_VAR_S2, ORC_VAR_S3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T3, ORC_VAR_T4, ORC_VAR_T2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "avgub", 1, ORC_VAR_T1, ORC_VAR_T3, ORC_VAR_T4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_T1,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ORC_EXECUTOR_M (ex) = m;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->params[ORC_VAR_D1] = d1_stride;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->params[ORC_VAR_S1] = s1_stride;
+  ex->arrays[ORC_VAR_S2] = (void *) s2;
+  ex->params[ORC_VAR_S2] = s2_stride;
+  ex->arrays[ORC_VAR_S3] = (void *) s3;
+  ex->params[ORC_VAR_S3] = s3_stride;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_convert_Y444_UYVY */
+#ifdef DISABLE_ORC
+void
+video_orc_convert_Y444_UYVY (guint8 * ORC_RESTRICT d1, int d1_stride,
+    const guint8 * ORC_RESTRICT s1, int s1_stride,
+    const guint8 * ORC_RESTRICT s2, int s2_stride,
+    const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m)
+{
+  int i;
+  int j;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+  const orc_union16 *ORC_RESTRICT ptr5;
+  const orc_union16 *ORC_RESTRICT ptr6;
+  orc_union16 var36;
+  orc_union16 var37;
+  orc_union16 var38;
+  orc_union32 var39;
+  orc_union32 var40;
+  orc_union16 var41;
+  orc_union16 var42;
+  orc_union16 var43;
+
+  for (j = 0; j < m; j++) {
+    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
+    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
+    ptr5 = ORC_PTR_OFFSET (s2, s2_stride * j);
+    ptr6 = ORC_PTR_OFFSET (s3, s3_stride * j);
+
+
+    for (i = 0; i < n; i++) {
+      /* 0: loadw */
+      var36 = ptr5[i];
+      /* 1: loadw */
+      var37 = ptr6[i];
+      /* 2: mergebw */
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var36.x2[0];
+        _dest.x2[1] = var37.x2[0];
+        var40.x2[0] = _dest.i;
+      }
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var36.x2[1];
+        _dest.x2[1] = var37.x2[1];
+        var40.x2[1] = _dest.i;
+      }
+      /* 3: splitlw */
+      {
+        orc_union32 _src;
+        _src.i = var40.i;
+        var41.i = _src.x2[1];
+        var42.i = _src.x2[0];
+      }
+      /* 4: avgub */
+      var43.x2[0] =
+          ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
+      var43.x2[1] =
+          ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
+      /* 5: loadw */
+      var38 = ptr4[i];
+      /* 6: mergebw */
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var43.x2[0];
+        _dest.x2[1] = var38.x2[0];
+        var39.x2[0] = _dest.i;
+      }
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var43.x2[1];
+        _dest.x2[1] = var38.x2[1];
+        var39.x2[1] = _dest.i;
+      }
+      /* 7: storel */
+      ptr0[i] = var39;
+    }
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_convert_Y444_UYVY (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int j;
+  int n = ex->n;
+  int m = ex->params[ORC_VAR_A1];
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+  const orc_union16 *ORC_RESTRICT ptr5;
+  const orc_union16 *ORC_RESTRICT ptr6;
+  orc_union16 var36;
+  orc_union16 var37;
+  orc_union16 var38;
+  orc_union32 var39;
+  orc_union32 var40;
+  orc_union16 var41;
+  orc_union16 var42;
+  orc_union16 var43;
+
+  for (j = 0; j < m; j++) {
+    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
+    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
+    ptr5 = ORC_PTR_OFFSET (ex->arrays[5], ex->params[5] * j);
+    ptr6 = ORC_PTR_OFFSET (ex->arrays[6], ex->params[6] * j);
+
+
+    for (i = 0; i < n; i++) {
+      /* 0: loadw */
+      var36 = ptr5[i];
+      /* 1: loadw */
+      var37 = ptr6[i];
+      /* 2: mergebw */
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var36.x2[0];
+        _dest.x2[1] = var37.x2[0];
+        var40.x2[0] = _dest.i;
+      }
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var36.x2[1];
+        _dest.x2[1] = var37.x2[1];
+        var40.x2[1] = _dest.i;
+      }
+      /* 3: splitlw */
+      {
+        orc_union32 _src;
+        _src.i = var40.i;
+        var41.i = _src.x2[1];
+        var42.i = _src.x2[0];
+      }
+      /* 4: avgub */
+      var43.x2[0] =
+          ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
+      var43.x2[1] =
+          ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
+      /* 5: loadw */
+      var38 = ptr4[i];
+      /* 6: mergebw */
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var43.x2[0];
+        _dest.x2[1] = var38.x2[0];
+        var39.x2[0] = _dest.i;
+      }
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var43.x2[1];
+        _dest.x2[1] = var38.x2[1];
+        var39.x2[1] = _dest.i;
+      }
+      /* 7: storel */
+      ptr0[i] = var39;
+    }
+  }
+
+}
+
+void
+video_orc_convert_Y444_UYVY (guint8 * ORC_RESTRICT d1, int d1_stride,
+    const guint8 * ORC_RESTRICT s1, int s1_stride,
+    const guint8 * ORC_RESTRICT s2, int s2_stride,
+    const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 7, 9, 27, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 99, 111,
+        110, 118, 101, 114, 116, 95, 89, 52, 52, 52, 95, 85, 89, 86, 89, 11,
+        4, 4, 12, 2, 2, 12, 2, 2, 12, 2, 2, 20, 2, 20, 4, 20,
+        2, 20, 2, 21, 1, 196, 33, 5, 6, 198, 34, 35, 33, 21, 1, 39,
+        32, 34, 35, 21, 1, 196, 0, 32, 4, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_convert_Y444_UYVY);
+#else
+      p = orc_program_new ();
+      orc_program_set_2d (p);
+      orc_program_set_name (p, "video_orc_convert_Y444_UYVY");
+      orc_program_set_backup_function (p, _backup_video_orc_convert_Y444_UYVY);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 2, "s1");
+      orc_program_add_source (p, 2, "s2");
+      orc_program_add_source (p, 2, "s3");
+      orc_program_add_temporary (p, 2, "t1");
+      orc_program_add_temporary (p, 4, "t2");
+      orc_program_add_temporary (p, 2, "t3");
+      orc_program_add_temporary (p, 2, "t4");
+
+      orc_program_append_2 (p, "mergebw", 1, ORC_VAR_T2, ORC_VAR_S2, ORC_VAR_S3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T3, ORC_VAR_T4, ORC_VAR_T2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "avgub", 1, ORC_VAR_T1, ORC_VAR_T3, ORC_VAR_T4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_S1,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ORC_EXECUTOR_M (ex) = m;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->params[ORC_VAR_D1] = d1_stride;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->params[ORC_VAR_S1] = s1_stride;
+  ex->arrays[ORC_VAR_S2] = (void *) s2;
+  ex->params[ORC_VAR_S2] = s2_stride;
+  ex->arrays[ORC_VAR_S3] = (void *) s3;
+  ex->params[ORC_VAR_S3] = s3_stride;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_convert_Y444_AYUV */
+#ifdef DISABLE_ORC
+void
+video_orc_convert_Y444_AYUV (guint8 * ORC_RESTRICT d1, int d1_stride,
+    const guint8 * ORC_RESTRICT s1, int s1_stride,
+    const guint8 * ORC_RESTRICT s2, int s2_stride,
+    const guint8 * ORC_RESTRICT s3, int s3_stride, int p1, int n, int m)
+{
+  int i;
+  int j;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  const orc_int8 *ORC_RESTRICT ptr5;
+  const orc_int8 *ORC_RESTRICT ptr6;
+  orc_int8 var34;
+  orc_int8 var35;
+  orc_int8 var36;
+  orc_int8 var37;
+  orc_union32 var38;
+  orc_union16 var39;
+  orc_union16 var40;
+
+  for (j = 0; j < m; j++) {
+    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
+    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
+    ptr5 = ORC_PTR_OFFSET (s2, s2_stride * j);
+    ptr6 = ORC_PTR_OFFSET (s3, s3_stride * j);
+
+    /* 3: loadpb */
+    var36 = p1;
+
+    for (i = 0; i < n; i++) {
+      /* 0: loadb */
+      var34 = ptr5[i];
+      /* 1: loadb */
+      var35 = ptr6[i];
+      /* 2: mergebw */
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var34;
+        _dest.x2[1] = var35;
+        var39.i = _dest.i;
+      }
+      /* 4: loadb */
+      var37 = ptr4[i];
+      /* 5: mergebw */
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var36;
+        _dest.x2[1] = var37;
+        var40.i = _dest.i;
+      }
+      /* 6: mergewl */
+      {
+        orc_union32 _dest;
+        _dest.x2[0] = var40.i;
+        _dest.x2[1] = var39.i;
+        var38.i = _dest.i;
+      }
+      /* 7: storel */
+      ptr0[i] = var38;
+    }
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_convert_Y444_AYUV (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int j;
+  int n = ex->n;
+  int m = ex->params[ORC_VAR_A1];
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  const orc_int8 *ORC_RESTRICT ptr5;
+  const orc_int8 *ORC_RESTRICT ptr6;
+  orc_int8 var34;
+  orc_int8 var35;
+  orc_int8 var36;
+  orc_int8 var37;
+  orc_union32 var38;
+  orc_union16 var39;
+  orc_union16 var40;
+
+  for (j = 0; j < m; j++) {
+    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
+    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
+    ptr5 = ORC_PTR_OFFSET (ex->arrays[5], ex->params[5] * j);
+    ptr6 = ORC_PTR_OFFSET (ex->arrays[6], ex->params[6] * j);
+
+    /* 3: loadpb */
+    var36 = ex->params[24];
+
+    for (i = 0; i < n; i++) {
+      /* 0: loadb */
+      var34 = ptr5[i];
+      /* 1: loadb */
+      var35 = ptr6[i];
+      /* 2: mergebw */
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var34;
+        _dest.x2[1] = var35;
+        var39.i = _dest.i;
+      }
+      /* 4: loadb */
+      var37 = ptr4[i];
+      /* 5: mergebw */
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var36;
+        _dest.x2[1] = var37;
+        var40.i = _dest.i;
+      }
+      /* 6: mergewl */
+      {
+        orc_union32 _dest;
+        _dest.x2[0] = var40.i;
+        _dest.x2[1] = var39.i;
+        var38.i = _dest.i;
+      }
+      /* 7: storel */
+      ptr0[i] = var38;
+    }
+  }
+
+}
+
+void
+video_orc_convert_Y444_AYUV (guint8 * ORC_RESTRICT d1, int d1_stride,
+    const guint8 * ORC_RESTRICT s1, int s1_stride,
+    const guint8 * ORC_RESTRICT s2, int s2_stride,
+    const guint8 * ORC_RESTRICT s3, int s3_stride, int p1, int n, int m)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 7, 9, 27, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 99, 111,
+        110, 118, 101, 114, 116, 95, 89, 52, 52, 52, 95, 65, 89, 85, 86, 11,
+        4, 4, 12, 1, 1, 12, 1, 1, 12, 1, 1, 16, 1, 20, 2, 20,
+        2, 196, 32, 5, 6, 196, 33, 24, 4, 195, 0, 33, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_convert_Y444_AYUV);
+#else
+      p = orc_program_new ();
+      orc_program_set_2d (p);
+      orc_program_set_name (p, "video_orc_convert_Y444_AYUV");
+      orc_program_set_backup_function (p, _backup_video_orc_convert_Y444_AYUV);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 1, "s1");
+      orc_program_add_source (p, 1, "s2");
+      orc_program_add_source (p, 1, "s3");
+      orc_program_add_parameter (p, 1, "p1");
+      orc_program_add_temporary (p, 2, "t1");
+      orc_program_add_temporary (p, 2, "t2");
+
+      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_S2, ORC_VAR_S3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T2, ORC_VAR_P1, ORC_VAR_S1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_T1,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ORC_EXECUTOR_M (ex) = m;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->params[ORC_VAR_D1] = d1_stride;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->params[ORC_VAR_S1] = s1_stride;
+  ex->arrays[ORC_VAR_S2] = (void *) s2;
+  ex->params[ORC_VAR_S2] = s2_stride;
+  ex->arrays[ORC_VAR_S3] = (void *) s3;
+  ex->params[ORC_VAR_S3] = s3_stride;
+  ex->params[ORC_VAR_P1] = p1;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_convert_AYUV_ARGB */
+#ifdef DISABLE_ORC
+void
+video_orc_convert_AYUV_ARGB (guint8 * ORC_RESTRICT d1, int d1_stride,
+    const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int p2, int p3,
+    int p4, int p5, int n, int m)
+{
+  int i;
+  int j;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var46;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var47;
+#else
+  orc_union32 var47;
+#endif
+  orc_union16 var48;
+  orc_union16 var49;
+  orc_union16 var50;
+  orc_union16 var51;
+  orc_union16 var52;
+  orc_union32 var53;
+  orc_union32 var54;
+  orc_union16 var55;
+  orc_union16 var56;
+  orc_int8 var57;
+  orc_int8 var58;
+  orc_int8 var59;
+  orc_int8 var60;
+  orc_union16 var61;
+  orc_union16 var62;
+  orc_union16 var63;
+  orc_union16 var64;
+  orc_union16 var65;
+  orc_union16 var66;
+  orc_int8 var67;
+  orc_union16 var68;
+  orc_union16 var69;
+  orc_union16 var70;
+  orc_int8 var71;
+  orc_union16 var72;
+  orc_union16 var73;
+  orc_union16 var74;
+  orc_union16 var75;
+  orc_int8 var76;
+  orc_union16 var77;
+  orc_union32 var78;
+
+  for (j = 0; j < m; j++) {
+    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
+    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
+
+    /* 1: loadpb */
+    var47.x4[0] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
+    var47.x4[1] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
+    var47.x4[2] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
+    var47.x4[3] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
+    /* 9: loadpw */
+    var48.i = p1;
+    /* 11: loadpw */
+    var49.i = p2;
+    /* 16: loadpw */
+    var50.i = p3;
+    /* 20: loadpw */
+    var51.i = p4;
+    /* 23: loadpw */
+    var52.i = p5;
+
+    for (i = 0; i < n; i++) {
+      /* 0: loadl */
+      var46 = ptr4[i];
+      /* 2: subb */
+      var54.x4[0] = var46.x4[0] - var47.x4[0];
+      var54.x4[1] = var46.x4[1] - var47.x4[1];
+      var54.x4[2] = var46.x4[2] - var47.x4[2];
+      var54.x4[3] = var46.x4[3] - var47.x4[3];
+      /* 3: splitlw */
+      {
+        orc_union32 _src;
+        _src.i = var54.i;
+        var55.i = _src.x2[1];
+        var56.i = _src.x2[0];
+      }
+      /* 4: splitwb */
+      {
+        orc_union16 _src;
+        _src.i = var56.i;
+        var57 = _src.x2[1];
+        var58 = _src.x2[0];
+      }
+      /* 5: splitwb */
+      {
+        orc_union16 _src;
+        _src.i = var55.i;
+        var59 = _src.x2[1];
+        var60 = _src.x2[0];
+      }
+      /* 6: splatbw */
+      var61.i = ((var57 & 0xff) << 8) | (var57 & 0xff);
+      /* 7: splatbw */
+      var62.i = ((var60 & 0xff) << 8) | (var60 & 0xff);
+      /* 8: splatbw */
+      var63.i = ((var59 & 0xff) << 8) | (var59 & 0xff);
+      /* 10: mulhsw */
+      var64.i = (var61.i * var48.i) >> 16;
+      /* 12: mulhsw */
+      var65.i = (var63.i * var49.i) >> 16;
+      /* 13: addw */
+      var66.i = var64.i + var65.i;
+      /* 14: convssswb */
+      var67 = ORC_CLAMP_SB (var66.i);
+      /* 15: mergebw */
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var58;
+        _dest.x2[1] = var67;
+        var68.i = _dest.i;
+      }
+      /* 17: mulhsw */
+      var69.i = (var62.i * var50.i) >> 16;
+      /* 18: addw */
+      var70.i = var64.i + var69.i;
+      /* 19: convssswb */
+      var71 = ORC_CLAMP_SB (var70.i);
+      /* 21: mulhsw */
+      var72.i = (var62.i * var51.i) >> 16;
+      /* 22: addw */
+      var73.i = var64.i + var72.i;
+      /* 24: mulhsw */
+      var74.i = (var63.i * var52.i) >> 16;
+      /* 25: addw */
+      var75.i = var73.i + var74.i;
+      /* 26: convssswb */
+      var76 = ORC_CLAMP_SB (var75.i);
+      /* 27: mergebw */
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var76;
+        _dest.x2[1] = var71;
+        var77.i = _dest.i;
+      }
+      /* 28: mergewl */
+      {
+        orc_union32 _dest;
+        _dest.x2[0] = var68.i;
+        _dest.x2[1] = var77.i;
+        var78.i = _dest.i;
+      }
+      /* 29: addb */
+      var53.x4[0] = var78.x4[0] + var47.x4[0];
+      var53.x4[1] = var78.x4[1] + var47.x4[1];
+      var53.x4[2] = var78.x4[2] + var47.x4[2];
+      var53.x4[3] = var78.x4[3] + var47.x4[3];
+      /* 30: storel */
+      ptr0[i] = var53;
+    }
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_convert_AYUV_ARGB (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int j;
+  int n = ex->n;
+  int m = ex->params[ORC_VAR_A1];
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var46;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var47;
+#else
+  orc_union32 var47;
+#endif
+  orc_union16 var48;
+  orc_union16 var49;
+  orc_union16 var50;
+  orc_union16 var51;
+  orc_union16 var52;
+  orc_union32 var53;
+  orc_union32 var54;
+  orc_union16 var55;
+  orc_union16 var56;
+  orc_int8 var57;
+  orc_int8 var58;
+  orc_int8 var59;
+  orc_int8 var60;
+  orc_union16 var61;
+  orc_union16 var62;
+  orc_union16 var63;
+  orc_union16 var64;
+  orc_union16 var65;
+  orc_union16 var66;
+  orc_int8 var67;
+  orc_union16 var68;
+  orc_union16 var69;
+  orc_union16 var70;
+  orc_int8 var71;
+  orc_union16 var72;
+  orc_union16 var73;
+  orc_union16 var74;
+  orc_union16 var75;
+  orc_int8 var76;
+  orc_union16 var77;
+  orc_union32 var78;
+
+  for (j = 0; j < m; j++) {
+    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
+    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
+
+    /* 1: loadpb */
+    var47.x4[0] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
+    var47.x4[1] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
+    var47.x4[2] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
+    var47.x4[3] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
+    /* 9: loadpw */
+    var48.i = ex->params[24];
+    /* 11: loadpw */
+    var49.i = ex->params[25];
+    /* 16: loadpw */
+    var50.i = ex->params[26];
+    /* 20: loadpw */
+    var51.i = ex->params[27];
+    /* 23: loadpw */
+    var52.i = ex->params[28];
+
+    for (i = 0; i < n; i++) {
+      /* 0: loadl */
+      var46 = ptr4[i];
+      /* 2: subb */
+      var54.x4[0] = var46.x4[0] - var47.x4[0];
+      var54.x4[1] = var46.x4[1] - var47.x4[1];
+      var54.x4[2] = var46.x4[2] - var47.x4[2];
+      var54.x4[3] = var46.x4[3] - var47.x4[3];
+      /* 3: splitlw */
+      {
+        orc_union32 _src;
+        _src.i = var54.i;
+        var55.i = _src.x2[1];
+        var56.i = _src.x2[0];
+      }
+      /* 4: splitwb */
+      {
+        orc_union16 _src;
+        _src.i = var56.i;
+        var57 = _src.x2[1];
+        var58 = _src.x2[0];
+      }
+      /* 5: splitwb */
+      {
+        orc_union16 _src;
+        _src.i = var55.i;
+        var59 = _src.x2[1];
+        var60 = _src.x2[0];
+      }
+      /* 6: splatbw */
+      var61.i = ((var57 & 0xff) << 8) | (var57 & 0xff);
+      /* 7: splatbw */
+      var62.i = ((var60 & 0xff) << 8) | (var60 & 0xff);
+      /* 8: splatbw */
+      var63.i = ((var59 & 0xff) << 8) | (var59 & 0xff);
+      /* 10: mulhsw */
+      var64.i = (var61.i * var48.i) >> 16;
+      /* 12: mulhsw */
+      var65.i = (var63.i * var49.i) >> 16;
+      /* 13: addw */
+      var66.i = var64.i + var65.i;
+      /* 14: convssswb */
+      var67 = ORC_CLAMP_SB (var66.i);
+      /* 15: mergebw */
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var58;
+        _dest.x2[1] = var67;
+        var68.i = _dest.i;
+      }
+      /* 17: mulhsw */
+      var69.i = (var62.i * var50.i) >> 16;
+      /* 18: addw */
+      var70.i = var64.i + var69.i;
+      /* 19: convssswb */
+      var71 = ORC_CLAMP_SB (var70.i);
+      /* 21: mulhsw */
+      var72.i = (var62.i * var51.i) >> 16;
+      /* 22: addw */
+      var73.i = var64.i + var72.i;
+      /* 24: mulhsw */
+      var74.i = (var63.i * var52.i) >> 16;
+      /* 25: addw */
+      var75.i = var73.i + var74.i;
+      /* 26: convssswb */
+      var76 = ORC_CLAMP_SB (var75.i);
+      /* 27: mergebw */
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var76;
+        _dest.x2[1] = var71;
+        var77.i = _dest.i;
+      }
+      /* 28: mergewl */
+      {
+        orc_union32 _dest;
+        _dest.x2[0] = var68.i;
+        _dest.x2[1] = var77.i;
+        var78.i = _dest.i;
+      }
+      /* 29: addb */
+      var53.x4[0] = var78.x4[0] + var47.x4[0];
+      var53.x4[1] = var78.x4[1] + var47.x4[1];
+      var53.x4[2] = var78.x4[2] + var47.x4[2];
+      var53.x4[3] = var78.x4[3] + var47.x4[3];
+      /* 30: storel */
+      ptr0[i] = var53;
+    }
+  }
+
+}
+
+void
+video_orc_convert_AYUV_ARGB (guint8 * ORC_RESTRICT d1, int d1_stride,
+    const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int p2, int p3,
+    int p4, int p5, int n, int m)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 7, 9, 27, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 99, 111,
+        110, 118, 101, 114, 116, 95, 65, 89, 85, 86, 95, 65, 82, 71, 66, 11,
+        4, 4, 12, 4, 4, 14, 1, 128, 0, 0, 0, 16, 2, 16, 2, 16,
+        2, 16, 2, 16, 2, 20, 1, 20, 1, 20, 1, 20, 1, 20, 2, 20,
+        2, 20, 2, 20, 2, 20, 2, 20, 2, 20, 1, 20, 1, 20, 1, 20,
+        4, 21, 2, 65, 45, 4, 16, 198, 38, 36, 45, 199, 33, 32, 36, 199,
+        35, 34, 38, 151, 36, 33, 151, 37, 34, 151, 38, 35, 90, 36, 36, 24,
+        90, 39, 38, 25, 70, 39, 36, 39, 159, 42, 39, 196, 39, 32, 42, 90,
+        41, 37, 26, 70, 41, 36, 41, 159, 44, 41, 90, 40, 37, 27, 70, 40,
+        36, 40, 90, 36, 38, 28, 70, 40, 40, 36, 159, 43, 40, 196, 41, 43,
+        44, 195, 45, 39, 41, 21, 2, 33, 0, 45, 16, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_convert_AYUV_ARGB);
+#else
+      p = orc_program_new ();
+      orc_program_set_2d (p);
+      orc_program_set_name (p, "video_orc_convert_AYUV_ARGB");
+      orc_program_set_backup_function (p, _backup_video_orc_convert_AYUV_ARGB);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 4, "s1");
+      orc_program_add_constant (p, 1, 0x00000080, "c1");
+      orc_program_add_parameter (p, 2, "p1");
+      orc_program_add_parameter (p, 2, "p2");
+      orc_program_add_parameter (p, 2, "p3");
+      orc_program_add_parameter (p, 2, "p4");
+      orc_program_add_parameter (p, 2, "p5");
+      orc_program_add_temporary (p, 1, "t1");
+      orc_program_add_temporary (p, 1, "t2");
+      orc_program_add_temporary (p, 1, "t3");
+      orc_program_add_temporary (p, 1, "t4");
+      orc_program_add_temporary (p, 2, "t5");
+      orc_program_add_temporary (p, 2, "t6");
+      orc_program_add_temporary (p, 2, "t7");
+      orc_program_add_temporary (p, 2, "t8");
+      orc_program_add_temporary (p, 2, "t9");
+      orc_program_add_temporary (p, 2, "t10");
+      orc_program_add_temporary (p, 1, "t11");
+      orc_program_add_temporary (p, 1, "t12");
+      orc_program_add_temporary (p, 1, "t13");
+      orc_program_add_temporary (p, 4, "t14");
+
+      orc_program_append_2 (p, "subb", 2, ORC_VAR_T14, ORC_VAR_S1, ORC_VAR_C1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T7, ORC_VAR_T5,
+          ORC_VAR_T14, ORC_VAR_D1);
+      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_T5,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_T7,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "splatbw", 0, ORC_VAR_T5, ORC_VAR_T2, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "splatbw", 0, ORC_VAR_T6, ORC_VAR_T3, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "splatbw", 0, ORC_VAR_T7, ORC_VAR_T4, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_P1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T8, ORC_VAR_T7, ORC_VAR_P2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addw", 0, ORC_VAR_T8, ORC_VAR_T5, ORC_VAR_T8,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T11, ORC_VAR_T8,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T8, ORC_VAR_T1,
+          ORC_VAR_T11, ORC_VAR_D1);
+      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T10, ORC_VAR_T6, ORC_VAR_P3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addw", 0, ORC_VAR_T10, ORC_VAR_T5, ORC_VAR_T10,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T13, ORC_VAR_T10,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T9, ORC_VAR_T6, ORC_VAR_P4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addw", 0, ORC_VAR_T9, ORC_VAR_T5, ORC_VAR_T9,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T5, ORC_VAR_T7, ORC_VAR_P5,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addw", 0, ORC_VAR_T9, ORC_VAR_T9, ORC_VAR_T5,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T12, ORC_VAR_T9,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T10, ORC_VAR_T12,
+          ORC_VAR_T13, ORC_VAR_D1);
+      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T14, ORC_VAR_T8,
+          ORC_VAR_T10, ORC_VAR_D1);
+      orc_program_append_2 (p, "addb", 2, ORC_VAR_D1, ORC_VAR_T14, ORC_VAR_C1,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ORC_EXECUTOR_M (ex) = m;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->params[ORC_VAR_D1] = d1_stride;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->params[ORC_VAR_S1] = s1_stride;
+  ex->params[ORC_VAR_P1] = p1;
+  ex->params[ORC_VAR_P2] = p2;
+  ex->params[ORC_VAR_P3] = p3;
+  ex->params[ORC_VAR_P4] = p4;
+  ex->params[ORC_VAR_P5] = p5;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_convert_AYUV_BGRA */
+#ifdef DISABLE_ORC
+void
+video_orc_convert_AYUV_BGRA (guint8 * ORC_RESTRICT d1, int d1_stride,
+    const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int p2, int p3,
+    int p4, int p5, int n, int m)
+{
+  int i;
+  int j;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var46;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var47;
+#else
+  orc_union32 var47;
+#endif
+  orc_union16 var48;
+  orc_union16 var49;
+  orc_union16 var50;
+  orc_union16 var51;
+  orc_union16 var52;
+  orc_union32 var53;
+  orc_union32 var54;
+  orc_union16 var55;
+  orc_union16 var56;
+  orc_int8 var57;
+  orc_int8 var58;
+  orc_int8 var59;
+  orc_int8 var60;
+  orc_union16 var61;
+  orc_union16 var62;
+  orc_union16 var63;
+  orc_union16 var64;
+  orc_union16 var65;
+  orc_union16 var66;
+  orc_int8 var67;
+  orc_union16 var68;
+  orc_union16 var69;
+  orc_union16 var70;
+  orc_int8 var71;
+  orc_union16 var72;
+  orc_union16 var73;
+  orc_union16 var74;
+  orc_union16 var75;
+  orc_int8 var76;
+  orc_union16 var77;
+  orc_union32 var78;
+
+  for (j = 0; j < m; j++) {
+    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
+    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
+
+    /* 1: loadpb */
+    var47.x4[0] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
+    var47.x4[1] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
+    var47.x4[2] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
+    var47.x4[3] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
+    /* 9: loadpw */
+    var48.i = p1;
+    /* 11: loadpw */
+    var49.i = p2;
+    /* 16: loadpw */
+    var50.i = p3;
+    /* 20: loadpw */
+    var51.i = p4;
+    /* 23: loadpw */
+    var52.i = p5;
+
+    for (i = 0; i < n; i++) {
+      /* 0: loadl */
+      var46 = ptr4[i];
+      /* 2: subb */
+      var54.x4[0] = var46.x4[0] - var47.x4[0];
+      var54.x4[1] = var46.x4[1] - var47.x4[1];
+      var54.x4[2] = var46.x4[2] - var47.x4[2];
+      var54.x4[3] = var46.x4[3] - var47.x4[3];
+      /* 3: splitlw */
+      {
+        orc_union32 _src;
+        _src.i = var54.i;
+        var55.i = _src.x2[1];
+        var56.i = _src.x2[0];
+      }
+      /* 4: splitwb */
+      {
+        orc_union16 _src;
+        _src.i = var56.i;
+        var57 = _src.x2[1];
+        var58 = _src.x2[0];
+      }
+      /* 5: splitwb */
+      {
+        orc_union16 _src;
+        _src.i = var55.i;
+        var59 = _src.x2[1];
+        var60 = _src.x2[0];
+      }
+      /* 6: splatbw */
+      var61.i = ((var57 & 0xff) << 8) | (var57 & 0xff);
+      /* 7: splatbw */
+      var62.i = ((var60 & 0xff) << 8) | (var60 & 0xff);
+      /* 8: splatbw */
+      var63.i = ((var59 & 0xff) << 8) | (var59 & 0xff);
+      /* 10: mulhsw */
+      var64.i = (var61.i * var48.i) >> 16;
+      /* 12: mulhsw */
+      var65.i = (var63.i * var49.i) >> 16;
+      /* 13: addw */
+      var66.i = var64.i + var65.i;
+      /* 14: convssswb */
+      var67 = ORC_CLAMP_SB (var66.i);
+      /* 15: mergebw */
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var67;
+        _dest.x2[1] = var58;
+        var68.i = _dest.i;
+      }
+      /* 17: mulhsw */
+      var69.i = (var62.i * var50.i) >> 16;
+      /* 18: addw */
+      var70.i = var64.i + var69.i;
+      /* 19: convssswb */
+      var71 = ORC_CLAMP_SB (var70.i);
+      /* 21: mulhsw */
+      var72.i = (var62.i * var51.i) >> 16;
+      /* 22: addw */
+      var73.i = var64.i + var72.i;
+      /* 24: mulhsw */
+      var74.i = (var63.i * var52.i) >> 16;
+      /* 25: addw */
+      var75.i = var73.i + var74.i;
+      /* 26: convssswb */
+      var76 = ORC_CLAMP_SB (var75.i);
+      /* 27: mergebw */
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var71;
+        _dest.x2[1] = var76;
+        var77.i = _dest.i;
+      }
+      /* 28: mergewl */
+      {
+        orc_union32 _dest;
+        _dest.x2[0] = var77.i;
+        _dest.x2[1] = var68.i;
+        var78.i = _dest.i;
+      }
+      /* 29: addb */
+      var53.x4[0] = var78.x4[0] + var47.x4[0];
+      var53.x4[1] = var78.x4[1] + var47.x4[1];
+      var53.x4[2] = var78.x4[2] + var47.x4[2];
+      var53.x4[3] = var78.x4[3] + var47.x4[3];
+      /* 30: storel */
+      ptr0[i] = var53;
+    }
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_convert_AYUV_BGRA (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int j;
+  int n = ex->n;
+  int m = ex->params[ORC_VAR_A1];
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var46;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var47;
+#else
+  orc_union32 var47;
+#endif
+  orc_union16 var48;
+  orc_union16 var49;
+  orc_union16 var50;
+  orc_union16 var51;
+  orc_union16 var52;
+  orc_union32 var53;
+  orc_union32 var54;
+  orc_union16 var55;
+  orc_union16 var56;
+  orc_int8 var57;
+  orc_int8 var58;
+  orc_int8 var59;
+  orc_int8 var60;
+  orc_union16 var61;
+  orc_union16 var62;
+  orc_union16 var63;
+  orc_union16 var64;
+  orc_union16 var65;
+  orc_union16 var66;
+  orc_int8 var67;
+  orc_union16 var68;
+  orc_union16 var69;
+  orc_union16 var70;
+  orc_int8 var71;
+  orc_union16 var72;
+  orc_union16 var73;
+  orc_union16 var74;
+  orc_union16 var75;
+  orc_int8 var76;
+  orc_union16 var77;
+  orc_union32 var78;
+
+  for (j = 0; j < m; j++) {
+    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
+    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
+
+    /* 1: loadpb */
+    var47.x4[0] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
+    var47.x4[1] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
+    var47.x4[2] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
+    var47.x4[3] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
+    /* 9: loadpw */
+    var48.i = ex->params[24];
+    /* 11: loadpw */
+    var49.i = ex->params[25];
+    /* 16: loadpw */
+    var50.i = ex->params[26];
+    /* 20: loadpw */
+    var51.i = ex->params[27];
+    /* 23: loadpw */
+    var52.i = ex->params[28];
+
+    for (i = 0; i < n; i++) {
+      /* 0: loadl */
+      var46 = ptr4[i];
+      /* 2: subb */
+      var54.x4[0] = var46.x4[0] - var47.x4[0];
+      var54.x4[1] = var46.x4[1] - var47.x4[1];
+      var54.x4[2] = var46.x4[2] - var47.x4[2];
+      var54.x4[3] = var46.x4[3] - var47.x4[3];
+      /* 3: splitlw */
+      {
+        orc_union32 _src;
+        _src.i = var54.i;
+        var55.i = _src.x2[1];
+        var56.i = _src.x2[0];
+      }
+      /* 4: splitwb */
+      {
+        orc_union16 _src;
+        _src.i = var56.i;
+        var57 = _src.x2[1];
+        var58 = _src.x2[0];
+      }
+      /* 5: splitwb */
+      {
+        orc_union16 _src;
+        _src.i = var55.i;
+        var59 = _src.x2[1];
+        var60 = _src.x2[0];
+      }
+      /* 6: splatbw */
+      var61.i = ((var57 & 0xff) << 8) | (var57 & 0xff);
+      /* 7: splatbw */
+      var62.i = ((var60 & 0xff) << 8) | (var60 & 0xff);
+      /* 8: splatbw */
+      var63.i = ((var59 & 0xff) << 8) | (var59 & 0xff);
+      /* 10: mulhsw */
+      var64.i = (var61.i * var48.i) >> 16;
+      /* 12: mulhsw */
+      var65.i = (var63.i * var49.i) >> 16;
+      /* 13: addw */
+      var66.i = var64.i + var65.i;
+      /* 14: convssswb */
+      var67 = ORC_CLAMP_SB (var66.i);
+      /* 15: mergebw */
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var67;
+        _dest.x2[1] = var58;
+        var68.i = _dest.i;
+      }
+      /* 17: mulhsw */
+      var69.i = (var62.i * var50.i) >> 16;
+      /* 18: addw */
+      var70.i = var64.i + var69.i;
+      /* 19: convssswb */
+      var71 = ORC_CLAMP_SB (var70.i);
+      /* 21: mulhsw */
+      var72.i = (var62.i * var51.i) >> 16;
+      /* 22: addw */
+      var73.i = var64.i + var72.i;
+      /* 24: mulhsw */
+      var74.i = (var63.i * var52.i) >> 16;
+      /* 25: addw */
+      var75.i = var73.i + var74.i;
+      /* 26: convssswb */
+      var76 = ORC_CLAMP_SB (var75.i);
+      /* 27: mergebw */
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var71;
+        _dest.x2[1] = var76;
+        var77.i = _dest.i;
+      }
+      /* 28: mergewl */
+      {
+        orc_union32 _dest;
+        _dest.x2[0] = var77.i;
+        _dest.x2[1] = var68.i;
+        var78.i = _dest.i;
+      }
+      /* 29: addb */
+      var53.x4[0] = var78.x4[0] + var47.x4[0];
+      var53.x4[1] = var78.x4[1] + var47.x4[1];
+      var53.x4[2] = var78.x4[2] + var47.x4[2];
+      var53.x4[3] = var78.x4[3] + var47.x4[3];
+      /* 30: storel */
+      ptr0[i] = var53;
+    }
+  }
+
+}
+
+void
+video_orc_convert_AYUV_BGRA (guint8 * ORC_RESTRICT d1, int d1_stride,
+    const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int p2, int p3,
+    int p4, int p5, int n, int m)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 7, 9, 27, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 99, 111,
+        110, 118, 101, 114, 116, 95, 65, 89, 85, 86, 95, 66, 71, 82, 65, 11,
+        4, 4, 12, 4, 4, 14, 1, 128, 0, 0, 0, 16, 2, 16, 2, 16,
+        2, 16, 2, 16, 2, 20, 1, 20, 1, 20, 1, 20, 1, 20, 2, 20,
+        2, 20, 2, 20, 2, 20, 2, 20, 2, 20, 1, 20, 1, 20, 1, 20,
+        4, 21, 2, 65, 45, 4, 16, 198, 38, 36, 45, 199, 33, 32, 36, 199,
+        35, 34, 38, 151, 36, 33, 151, 37, 34, 151, 38, 35, 90, 36, 36, 24,
+        90, 39, 38, 25, 70, 39, 36, 39, 159, 42, 39, 196, 39, 42, 32, 90,
+        41, 37, 26, 70, 41, 36, 41, 159, 44, 41, 90, 40, 37, 27, 70, 40,
+        36, 40, 90, 36, 38, 28, 70, 40, 40, 36, 159, 43, 40, 196, 41, 44,
+        43, 195, 45, 41, 39, 21, 2, 33, 0, 45, 16, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_convert_AYUV_BGRA);
+#else
+      p = orc_program_new ();
+      orc_program_set_2d (p);
+      orc_program_set_name (p, "video_orc_convert_AYUV_BGRA");
+      orc_program_set_backup_function (p, _backup_video_orc_convert_AYUV_BGRA);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 4, "s1");
+      orc_program_add_constant (p, 1, 0x00000080, "c1");
+      orc_program_add_parameter (p, 2, "p1");
+      orc_program_add_parameter (p, 2, "p2");
+      orc_program_add_parameter (p, 2, "p3");
+      orc_program_add_parameter (p, 2, "p4");
+      orc_program_add_parameter (p, 2, "p5");
+      orc_program_add_temporary (p, 1, "t1");
+      orc_program_add_temporary (p, 1, "t2");
+      orc_program_add_temporary (p, 1, "t3");
+      orc_program_add_temporary (p, 1, "t4");
+      orc_program_add_temporary (p, 2, "t5");
+      orc_program_add_temporary (p, 2, "t6");
+      orc_program_add_temporary (p, 2, "t7");
+      orc_program_add_temporary (p, 2, "t8");
+      orc_program_add_temporary (p, 2, "t9");
+      orc_program_add_temporary (p, 2, "t10");
+      orc_program_add_temporary (p, 1, "t11");
+      orc_program_add_temporary (p, 1, "t12");
+      orc_program_add_temporary (p, 1, "t13");
+      orc_program_add_temporary (p, 4, "t14");
+
+      orc_program_append_2 (p, "subb", 2, ORC_VAR_T14, ORC_VAR_S1, ORC_VAR_C1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T7, ORC_VAR_T5,
+          ORC_VAR_T14, ORC_VAR_D1);
+      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_T5,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_T7,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "splatbw", 0, ORC_VAR_T5, ORC_VAR_T2, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "splatbw", 0, ORC_VAR_T6, ORC_VAR_T3, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "splatbw", 0, ORC_VAR_T7, ORC_VAR_T4, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_P1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T8, ORC_VAR_T7, ORC_VAR_P2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addw", 0, ORC_VAR_T8, ORC_VAR_T5, ORC_VAR_T8,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T11, ORC_VAR_T8,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T8, ORC_VAR_T11,
+          ORC_VAR_T1, ORC_VAR_D1);
+      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T10, ORC_VAR_T6, ORC_VAR_P3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addw", 0, ORC_VAR_T10, ORC_VAR_T5, ORC_VAR_T10,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T13, ORC_VAR_T10,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T9, ORC_VAR_T6, ORC_VAR_P4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addw", 0, ORC_VAR_T9, ORC_VAR_T5, ORC_VAR_T9,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T5, ORC_VAR_T7, ORC_VAR_P5,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addw", 0, ORC_VAR_T9, ORC_VAR_T9, ORC_VAR_T5,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T12, ORC_VAR_T9,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T10, ORC_VAR_T13,
+          ORC_VAR_T12, ORC_VAR_D1);
+      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T14, ORC_VAR_T10,
+          ORC_VAR_T8, ORC_VAR_D1);
+      orc_program_append_2 (p, "addb", 2, ORC_VAR_D1, ORC_VAR_T14, ORC_VAR_C1,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ORC_EXECUTOR_M (ex) = m;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->params[ORC_VAR_D1] = d1_stride;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->params[ORC_VAR_S1] = s1_stride;
+  ex->params[ORC_VAR_P1] = p1;
+  ex->params[ORC_VAR_P2] = p2;
+  ex->params[ORC_VAR_P3] = p3;
+  ex->params[ORC_VAR_P4] = p4;
+  ex->params[ORC_VAR_P5] = p5;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_convert_AYUV_ABGR */
+#ifdef DISABLE_ORC
+void
+video_orc_convert_AYUV_ABGR (guint8 * ORC_RESTRICT d1, int d1_stride,
+    const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int p2, int p3,
+    int p4, int p5, int n, int m)
+{
+  int i;
+  int j;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var46;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var47;
+#else
+  orc_union32 var47;
+#endif
+  orc_union16 var48;
+  orc_union16 var49;
+  orc_union16 var50;
+  orc_union16 var51;
+  orc_union16 var52;
+  orc_union32 var53;
+  orc_union32 var54;
+  orc_union16 var55;
+  orc_union16 var56;
+  orc_int8 var57;
+  orc_int8 var58;
+  orc_int8 var59;
+  orc_int8 var60;
+  orc_union16 var61;
+  orc_union16 var62;
+  orc_union16 var63;
+  orc_union16 var64;
+  orc_union16 var65;
+  orc_union16 var66;
+  orc_int8 var67;
+  orc_union16 var68;
+  orc_union16 var69;
+  orc_int8 var70;
+  orc_union16 var71;
+  orc_union16 var72;
+  orc_union16 var73;
+  orc_union16 var74;
+  orc_union16 var75;
+  orc_int8 var76;
+  orc_union16 var77;
+  orc_union32 var78;
+
+  for (j = 0; j < m; j++) {
+    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
+    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
+
+    /* 1: loadpb */
+    var47.x4[0] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
+    var47.x4[1] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
+    var47.x4[2] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
+    var47.x4[3] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
+    /* 9: loadpw */
+    var48.i = p1;
+    /* 11: loadpw */
+    var49.i = p2;
+    /* 15: loadpw */
+    var50.i = p3;
+    /* 20: loadpw */
+    var51.i = p4;
+    /* 23: loadpw */
+    var52.i = p5;
+
+    for (i = 0; i < n; i++) {
+      /* 0: loadl */
+      var46 = ptr4[i];
+      /* 2: subb */
+      var54.x4[0] = var46.x4[0] - var47.x4[0];
+      var54.x4[1] = var46.x4[1] - var47.x4[1];
+      var54.x4[2] = var46.x4[2] - var47.x4[2];
+      var54.x4[3] = var46.x4[3] - var47.x4[3];
+      /* 3: splitlw */
+      {
+        orc_union32 _src;
+        _src.i = var54.i;
+        var55.i = _src.x2[1];
+        var56.i = _src.x2[0];
+      }
+      /* 4: splitwb */
+      {
+        orc_union16 _src;
+        _src.i = var56.i;
+        var57 = _src.x2[1];
+        var58 = _src.x2[0];
+      }
+      /* 5: splitwb */
+      {
+        orc_union16 _src;
+        _src.i = var55.i;
+        var59 = _src.x2[1];
+        var60 = _src.x2[0];
+      }
+      /* 6: splatbw */
+      var61.i = ((var57 & 0xff) << 8) | (var57 & 0xff);
+      /* 7: splatbw */
+      var62.i = ((var60 & 0xff) << 8) | (var60 & 0xff);
+      /* 8: splatbw */
+      var63.i = ((var59 & 0xff) << 8) | (var59 & 0xff);
+      /* 10: mulhsw */
+      var64.i = (var61.i * var48.i) >> 16;
+      /* 12: mulhsw */
+      var65.i = (var63.i * var49.i) >> 16;
+      /* 13: addw */
+      var66.i = var64.i + var65.i;
+      /* 14: convssswb */
+      var67 = ORC_CLAMP_SB (var66.i);
+      /* 16: mulhsw */
+      var68.i = (var62.i * var50.i) >> 16;
+      /* 17: addw */
+      var69.i = var64.i + var68.i;
+      /* 18: convssswb */
+      var70 = ORC_CLAMP_SB (var69.i);
+      /* 19: mergebw */
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var58;
+        _dest.x2[1] = var70;
+        var71.i = _dest.i;
+      }
+      /* 21: mulhsw */
+      var72.i = (var62.i * var51.i) >> 16;
+      /* 22: addw */
+      var73.i = var64.i + var72.i;
+      /* 24: mulhsw */
+      var74.i = (var63.i * var52.i) >> 16;
+      /* 25: addw */
+      var75.i = var73.i + var74.i;
+      /* 26: convssswb */
+      var76 = ORC_CLAMP_SB (var75.i);
+      /* 27: mergebw */
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var76;
+        _dest.x2[1] = var67;
+        var77.i = _dest.i;
+      }
+      /* 28: mergewl */
+      {
+        orc_union32 _dest;
+        _dest.x2[0] = var71.i;
+        _dest.x2[1] = var77.i;
+        var78.i = _dest.i;
+      }
+      /* 29: addb */
+      var53.x4[0] = var78.x4[0] + var47.x4[0];
+      var53.x4[1] = var78.x4[1] + var47.x4[1];
+      var53.x4[2] = var78.x4[2] + var47.x4[2];
+      var53.x4[3] = var78.x4[3] + var47.x4[3];
+      /* 30: storel */
+      ptr0[i] = var53;
+    }
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_convert_AYUV_ABGR (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int j;
+  int n = ex->n;
+  int m = ex->params[ORC_VAR_A1];
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var46;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var47;
+#else
+  orc_union32 var47;
+#endif
+  orc_union16 var48;
+  orc_union16 var49;
+  orc_union16 var50;
+  orc_union16 var51;
+  orc_union16 var52;
+  orc_union32 var53;
+  orc_union32 var54;
+  orc_union16 var55;
+  orc_union16 var56;
+  orc_int8 var57;
+  orc_int8 var58;
+  orc_int8 var59;
+  orc_int8 var60;
+  orc_union16 var61;
+  orc_union16 var62;
+  orc_union16 var63;
+  orc_union16 var64;
+  orc_union16 var65;
+  orc_union16 var66;
+  orc_int8 var67;
+  orc_union16 var68;
+  orc_union16 var69;
+  orc_int8 var70;
+  orc_union16 var71;
+  orc_union16 var72;
+  orc_union16 var73;
+  orc_union16 var74;
+  orc_union16 var75;
+  orc_int8 var76;
+  orc_union16 var77;
+  orc_union32 var78;
+
+  for (j = 0; j < m; j++) {
+    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
+    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
+
+    /* 1: loadpb */
+    var47.x4[0] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
+    var47.x4[1] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
+    var47.x4[2] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
+    var47.x4[3] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
+    /* 9: loadpw */
+    var48.i = ex->params[24];
+    /* 11: loadpw */
+    var49.i = ex->params[25];
+    /* 15: loadpw */
+    var50.i = ex->params[26];
+    /* 20: loadpw */
+    var51.i = ex->params[27];
+    /* 23: loadpw */
+    var52.i = ex->params[28];
+
+    for (i = 0; i < n; i++) {
+      /* 0: loadl */
+      var46 = ptr4[i];
+      /* 2: subb */
+      var54.x4[0] = var46.x4[0] - var47.x4[0];
+      var54.x4[1] = var46.x4[1] - var47.x4[1];
+      var54.x4[2] = var46.x4[2] - var47.x4[2];
+      var54.x4[3] = var46.x4[3] - var47.x4[3];
+      /* 3: splitlw */
+      {
+        orc_union32 _src;
+        _src.i = var54.i;
+        var55.i = _src.x2[1];
+        var56.i = _src.x2[0];
+      }
+      /* 4: splitwb */
+      {
+        orc_union16 _src;
+        _src.i = var56.i;
+        var57 = _src.x2[1];
+        var58 = _src.x2[0];
+      }
+      /* 5: splitwb */
+      {
+        orc_union16 _src;
+        _src.i = var55.i;
+        var59 = _src.x2[1];
+        var60 = _src.x2[0];
+      }
+      /* 6: splatbw */
+      var61.i = ((var57 & 0xff) << 8) | (var57 & 0xff);
+      /* 7: splatbw */
+      var62.i = ((var60 & 0xff) << 8) | (var60 & 0xff);
+      /* 8: splatbw */
+      var63.i = ((var59 & 0xff) << 8) | (var59 & 0xff);
+      /* 10: mulhsw */
+      var64.i = (var61.i * var48.i) >> 16;
+      /* 12: mulhsw */
+      var65.i = (var63.i * var49.i) >> 16;
+      /* 13: addw */
+      var66.i = var64.i + var65.i;
+      /* 14: convssswb */
+      var67 = ORC_CLAMP_SB (var66.i);
+      /* 16: mulhsw */
+      var68.i = (var62.i * var50.i) >> 16;
+      /* 17: addw */
+      var69.i = var64.i + var68.i;
+      /* 18: convssswb */
+      var70 = ORC_CLAMP_SB (var69.i);
+      /* 19: mergebw */
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var58;
+        _dest.x2[1] = var70;
+        var71.i = _dest.i;
+      }
+      /* 21: mulhsw */
+      var72.i = (var62.i * var51.i) >> 16;
+      /* 22: addw */
+      var73.i = var64.i + var72.i;
+      /* 24: mulhsw */
+      var74.i = (var63.i * var52.i) >> 16;
+      /* 25: addw */
+      var75.i = var73.i + var74.i;
+      /* 26: convssswb */
+      var76 = ORC_CLAMP_SB (var75.i);
+      /* 27: mergebw */
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var76;
+        _dest.x2[1] = var67;
+        var77.i = _dest.i;
+      }
+      /* 28: mergewl */
+      {
+        orc_union32 _dest;
+        _dest.x2[0] = var71.i;
+        _dest.x2[1] = var77.i;
+        var78.i = _dest.i;
+      }
+      /* 29: addb */
+      var53.x4[0] = var78.x4[0] + var47.x4[0];
+      var53.x4[1] = var78.x4[1] + var47.x4[1];
+      var53.x4[2] = var78.x4[2] + var47.x4[2];
+      var53.x4[3] = var78.x4[3] + var47.x4[3];
+      /* 30: storel */
+      ptr0[i] = var53;
+    }
+  }
+
+}
+
+void
+video_orc_convert_AYUV_ABGR (guint8 * ORC_RESTRICT d1, int d1_stride,
+    const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int p2, int p3,
+    int p4, int p5, int n, int m)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 7, 9, 27, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 99, 111,
+        110, 118, 101, 114, 116, 95, 65, 89, 85, 86, 95, 65, 66, 71, 82, 11,
+        4, 4, 12, 4, 4, 14, 1, 128, 0, 0, 0, 16, 2, 16, 2, 16,
+        2, 16, 2, 16, 2, 20, 1, 20, 1, 20, 1, 20, 1, 20, 2, 20,
+        2, 20, 2, 20, 2, 20, 2, 20, 2, 20, 1, 20, 1, 20, 1, 20,
+        4, 21, 2, 65, 45, 4, 16, 198, 38, 36, 45, 199, 33, 32, 36, 199,
+        35, 34, 38, 151, 36, 33, 151, 37, 34, 151, 38, 35, 90, 36, 36, 24,
+        90, 39, 38, 25, 70, 39, 36, 39, 159, 42, 39, 90, 41, 37, 26, 70,
+        41, 36, 41, 159, 44, 41, 196, 41, 32, 44, 90, 40, 37, 27, 70, 40,
+        36, 40, 90, 36, 38, 28, 70, 40, 40, 36, 159, 43, 40, 196, 39, 43,
+        42, 195, 45, 41, 39, 21, 2, 33, 0, 45, 16, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_convert_AYUV_ABGR);
+#else
+      p = orc_program_new ();
+      orc_program_set_2d (p);
+      orc_program_set_name (p, "video_orc_convert_AYUV_ABGR");
+      orc_program_set_backup_function (p, _backup_video_orc_convert_AYUV_ABGR);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 4, "s1");
+      orc_program_add_constant (p, 1, 0x00000080, "c1");
+      orc_program_add_parameter (p, 2, "p1");
+      orc_program_add_parameter (p, 2, "p2");
+      orc_program_add_parameter (p, 2, "p3");
+      orc_program_add_parameter (p, 2, "p4");
+      orc_program_add_parameter (p, 2, "p5");
+      orc_program_add_temporary (p, 1, "t1");
+      orc_program_add_temporary (p, 1, "t2");
+      orc_program_add_temporary (p, 1, "t3");
+      orc_program_add_temporary (p, 1, "t4");
+      orc_program_add_temporary (p, 2, "t5");
+      orc_program_add_temporary (p, 2, "t6");
+      orc_program_add_temporary (p, 2, "t7");
+      orc_program_add_temporary (p, 2, "t8");
+      orc_program_add_temporary (p, 2, "t9");
+      orc_program_add_temporary (p, 2, "t10");
+      orc_program_add_temporary (p, 1, "t11");
+      orc_program_add_temporary (p, 1, "t12");
+      orc_program_add_temporary (p, 1, "t13");
+      orc_program_add_temporary (p, 4, "t14");
+
+      orc_program_append_2 (p, "subb", 2, ORC_VAR_T14, ORC_VAR_S1, ORC_VAR_C1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T7, ORC_VAR_T5,
+          ORC_VAR_T14, ORC_VAR_D1);
+      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_T5,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_T7,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "splatbw", 0, ORC_VAR_T5, ORC_VAR_T2, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "splatbw", 0, ORC_VAR_T6, ORC_VAR_T3, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "splatbw", 0, ORC_VAR_T7, ORC_VAR_T4, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_P1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T8, ORC_VAR_T7, ORC_VAR_P2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addw", 0, ORC_VAR_T8, ORC_VAR_T5, ORC_VAR_T8,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T11, ORC_VAR_T8,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T10, ORC_VAR_T6, ORC_VAR_P3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addw", 0, ORC_VAR_T10, ORC_VAR_T5, ORC_VAR_T10,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T13, ORC_VAR_T10,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T10, ORC_VAR_T1,
+          ORC_VAR_T13, ORC_VAR_D1);
+      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T9, ORC_VAR_T6, ORC_VAR_P4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addw", 0, ORC_VAR_T9, ORC_VAR_T5, ORC_VAR_T9,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T5, ORC_VAR_T7, ORC_VAR_P5,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addw", 0, ORC_VAR_T9, ORC_VAR_T9, ORC_VAR_T5,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T12, ORC_VAR_T9,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T8, ORC_VAR_T12,
+          ORC_VAR_T11, ORC_VAR_D1);
+      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T14, ORC_VAR_T10,
+          ORC_VAR_T8, ORC_VAR_D1);
+      orc_program_append_2 (p, "addb", 2, ORC_VAR_D1, ORC_VAR_T14, ORC_VAR_C1,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ORC_EXECUTOR_M (ex) = m;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->params[ORC_VAR_D1] = d1_stride;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->params[ORC_VAR_S1] = s1_stride;
+  ex->params[ORC_VAR_P1] = p1;
+  ex->params[ORC_VAR_P2] = p2;
+  ex->params[ORC_VAR_P3] = p3;
+  ex->params[ORC_VAR_P4] = p4;
+  ex->params[ORC_VAR_P5] = p5;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_convert_AYUV_RGBA */
+#ifdef DISABLE_ORC
+void
+video_orc_convert_AYUV_RGBA (guint8 * ORC_RESTRICT d1, int d1_stride,
+    const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int p2, int p3,
+    int p4, int p5, int n, int m)
+{
+  int i;
+  int j;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var46;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var47;
+#else
+  orc_union32 var47;
+#endif
+  orc_union16 var48;
+  orc_union16 var49;
+  orc_union16 var50;
+  orc_union16 var51;
+  orc_union16 var52;
+  orc_union32 var53;
+  orc_union32 var54;
+  orc_union16 var55;
+  orc_union16 var56;
+  orc_int8 var57;
+  orc_int8 var58;
+  orc_int8 var59;
+  orc_int8 var60;
+  orc_union16 var61;
+  orc_union16 var62;
+  orc_union16 var63;
+  orc_union16 var64;
+  orc_union16 var65;
+  orc_union16 var66;
+  orc_int8 var67;
+  orc_union16 var68;
+  orc_union16 var69;
+  orc_int8 var70;
+  orc_union16 var71;
+  orc_union16 var72;
+  orc_union16 var73;
+  orc_union16 var74;
+  orc_union16 var75;
+  orc_int8 var76;
+  orc_union16 var77;
+  orc_union32 var78;
+
+  for (j = 0; j < m; j++) {
+    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
+    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
+
+    /* 1: loadpb */
+    var47.x4[0] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
+    var47.x4[1] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
+    var47.x4[2] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
+    var47.x4[3] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
+    /* 9: loadpw */
+    var48.i = p1;
+    /* 11: loadpw */
+    var49.i = p2;
+    /* 15: loadpw */
+    var50.i = p3;
+    /* 20: loadpw */
+    var51.i = p4;
+    /* 23: loadpw */
+    var52.i = p5;
+
+    for (i = 0; i < n; i++) {
+      /* 0: loadl */
+      var46 = ptr4[i];
+      /* 2: subb */
+      var54.x4[0] = var46.x4[0] - var47.x4[0];
+      var54.x4[1] = var46.x4[1] - var47.x4[1];
+      var54.x4[2] = var46.x4[2] - var47.x4[2];
+      var54.x4[3] = var46.x4[3] - var47.x4[3];
+      /* 3: splitlw */
+      {
+        orc_union32 _src;
+        _src.i = var54.i;
+        var55.i = _src.x2[1];
+        var56.i = _src.x2[0];
+      }
+      /* 4: splitwb */
+      {
+        orc_union16 _src;
+        _src.i = var56.i;
+        var57 = _src.x2[1];
+        var58 = _src.x2[0];
+      }
+      /* 5: splitwb */
+      {
+        orc_union16 _src;
+        _src.i = var55.i;
+        var59 = _src.x2[1];
+        var60 = _src.x2[0];
+      }
+      /* 6: splatbw */
+      var61.i = ((var57 & 0xff) << 8) | (var57 & 0xff);
+      /* 7: splatbw */
+      var62.i = ((var60 & 0xff) << 8) | (var60 & 0xff);
+      /* 8: splatbw */
+      var63.i = ((var59 & 0xff) << 8) | (var59 & 0xff);
+      /* 10: mulhsw */
+      var64.i = (var61.i * var48.i) >> 16;
+      /* 12: mulhsw */
+      var65.i = (var63.i * var49.i) >> 16;
+      /* 13: addw */
+      var66.i = var64.i + var65.i;
+      /* 14: convssswb */
+      var67 = ORC_CLAMP_SB (var66.i);
+      /* 16: mulhsw */
+      var68.i = (var62.i * var50.i) >> 16;
+      /* 17: addw */
+      var69.i = var64.i + var68.i;
+      /* 18: convssswb */
+      var70 = ORC_CLAMP_SB (var69.i);
+      /* 19: mergebw */
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var70;
+        _dest.x2[1] = var58;
+        var71.i = _dest.i;
+      }
+      /* 21: mulhsw */
+      var72.i = (var62.i * var51.i) >> 16;
+      /* 22: addw */
+      var73.i = var64.i + var72.i;
+      /* 24: mulhsw */
+      var74.i = (var63.i * var52.i) >> 16;
+      /* 25: addw */
+      var75.i = var73.i + var74.i;
+      /* 26: convssswb */
+      var76 = ORC_CLAMP_SB (var75.i);
+      /* 27: mergebw */
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var67;
+        _dest.x2[1] = var76;
+        var77.i = _dest.i;
+      }
+      /* 28: mergewl */
+      {
+        orc_union32 _dest;
+        _dest.x2[0] = var77.i;
+        _dest.x2[1] = var71.i;
+        var78.i = _dest.i;
+      }
+      /* 29: addb */
+      var53.x4[0] = var78.x4[0] + var47.x4[0];
+      var53.x4[1] = var78.x4[1] + var47.x4[1];
+      var53.x4[2] = var78.x4[2] + var47.x4[2];
+      var53.x4[3] = var78.x4[3] + var47.x4[3];
+      /* 30: storel */
+      ptr0[i] = var53;
+    }
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_convert_AYUV_RGBA (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int j;
+  int n = ex->n;
+  int m = ex->params[ORC_VAR_A1];
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var46;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var47;
+#else
+  orc_union32 var47;
+#endif
+  orc_union16 var48;
+  orc_union16 var49;
+  orc_union16 var50;
+  orc_union16 var51;
+  orc_union16 var52;
+  orc_union32 var53;
+  orc_union32 var54;
+  orc_union16 var55;
+  orc_union16 var56;
+  orc_int8 var57;
+  orc_int8 var58;
+  orc_int8 var59;
+  orc_int8 var60;
+  orc_union16 var61;
+  orc_union16 var62;
+  orc_union16 var63;
+  orc_union16 var64;
+  orc_union16 var65;
+  orc_union16 var66;
+  orc_int8 var67;
+  orc_union16 var68;
+  orc_union16 var69;
+  orc_int8 var70;
+  orc_union16 var71;
+  orc_union16 var72;
+  orc_union16 var73;
+  orc_union16 var74;
+  orc_union16 var75;
+  orc_int8 var76;
+  orc_union16 var77;
+  orc_union32 var78;
+
+  for (j = 0; j < m; j++) {
+    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
+    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
+
+    /* 1: loadpb */
+    var47.x4[0] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
+    var47.x4[1] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
+    var47.x4[2] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
+    var47.x4[3] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
+    /* 9: loadpw */
+    var48.i = ex->params[24];
+    /* 11: loadpw */
+    var49.i = ex->params[25];
+    /* 15: loadpw */
+    var50.i = ex->params[26];
+    /* 20: loadpw */
+    var51.i = ex->params[27];
+    /* 23: loadpw */
+    var52.i = ex->params[28];
+
+    for (i = 0; i < n; i++) {
+      /* 0: loadl */
+      var46 = ptr4[i];
+      /* 2: subb */
+      var54.x4[0] = var46.x4[0] - var47.x4[0];
+      var54.x4[1] = var46.x4[1] - var47.x4[1];
+      var54.x4[2] = var46.x4[2] - var47.x4[2];
+      var54.x4[3] = var46.x4[3] - var47.x4[3];
+      /* 3: splitlw */
+      {
+        orc_union32 _src;
+        _src.i = var54.i;
+        var55.i = _src.x2[1];
+        var56.i = _src.x2[0];
+      }
+      /* 4: splitwb */
+      {
+        orc_union16 _src;
+        _src.i = var56.i;
+        var57 = _src.x2[1];
+        var58 = _src.x2[0];
+      }
+      /* 5: splitwb */
+      {
+        orc_union16 _src;
+        _src.i = var55.i;
+        var59 = _src.x2[1];
+        var60 = _src.x2[0];
+      }
+      /* 6: splatbw */
+      var61.i = ((var57 & 0xff) << 8) | (var57 & 0xff);
+      /* 7: splatbw */
+      var62.i = ((var60 & 0xff) << 8) | (var60 & 0xff);
+      /* 8: splatbw */
+      var63.i = ((var59 & 0xff) << 8) | (var59 & 0xff);
+      /* 10: mulhsw */
+      var64.i = (var61.i * var48.i) >> 16;
+      /* 12: mulhsw */
+      var65.i = (var63.i * var49.i) >> 16;
+      /* 13: addw */
+      var66.i = var64.i + var65.i;
+      /* 14: convssswb */
+      var67 = ORC_CLAMP_SB (var66.i);
+      /* 16: mulhsw */
+      var68.i = (var62.i * var50.i) >> 16;
+      /* 17: addw */
+      var69.i = var64.i + var68.i;
+      /* 18: convssswb */
+      var70 = ORC_CLAMP_SB (var69.i);
+      /* 19: mergebw */
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var70;
+        _dest.x2[1] = var58;
+        var71.i = _dest.i;
+      }
+      /* 21: mulhsw */
+      var72.i = (var62.i * var51.i) >> 16;
+      /* 22: addw */
+      var73.i = var64.i + var72.i;
+      /* 24: mulhsw */
+      var74.i = (var63.i * var52.i) >> 16;
+      /* 25: addw */
+      var75.i = var73.i + var74.i;
+      /* 26: convssswb */
+      var76 = ORC_CLAMP_SB (var75.i);
+      /* 27: mergebw */
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var67;
+        _dest.x2[1] = var76;
+        var77.i = _dest.i;
+      }
+      /* 28: mergewl */
+      {
+        orc_union32 _dest;
+        _dest.x2[0] = var77.i;
+        _dest.x2[1] = var71.i;
+        var78.i = _dest.i;
+      }
+      /* 29: addb */
+      var53.x4[0] = var78.x4[0] + var47.x4[0];
+      var53.x4[1] = var78.x4[1] + var47.x4[1];
+      var53.x4[2] = var78.x4[2] + var47.x4[2];
+      var53.x4[3] = var78.x4[3] + var47.x4[3];
+      /* 30: storel */
+      ptr0[i] = var53;
+    }
+  }
+
+}
+
+void
+video_orc_convert_AYUV_RGBA (guint8 * ORC_RESTRICT d1, int d1_stride,
+    const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int p2, int p3,
+    int p4, int p5, int n, int m)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 7, 9, 27, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 99, 111,
+        110, 118, 101, 114, 116, 95, 65, 89, 85, 86, 95, 82, 71, 66, 65, 11,
+        4, 4, 12, 4, 4, 14, 1, 128, 0, 0, 0, 16, 2, 16, 2, 16,
+        2, 16, 2, 16, 2, 20, 1, 20, 1, 20, 1, 20, 1, 20, 2, 20,
+        2, 20, 2, 20, 2, 20, 2, 20, 2, 20, 1, 20, 1, 20, 1, 20,
+        4, 21, 2, 65, 45, 4, 16, 198, 38, 36, 45, 199, 33, 32, 36, 199,
+        35, 34, 38, 151, 36, 33, 151, 37, 34, 151, 38, 35, 90, 36, 36, 24,
+        90, 39, 38, 25, 70, 39, 36, 39, 159, 42, 39, 90, 41, 37, 26, 70,
+        41, 36, 41, 159, 44, 41, 196, 41, 44, 32, 90, 40, 37, 27, 70, 40,
+        36, 40, 90, 36, 38, 28, 70, 40, 40, 36, 159, 43, 40, 196, 39, 42,
+        43, 195, 45, 39, 41, 21, 2, 33, 0, 45, 16, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_convert_AYUV_RGBA);
+#else
+      p = orc_program_new ();
+      orc_program_set_2d (p);
+      orc_program_set_name (p, "video_orc_convert_AYUV_RGBA");
+      orc_program_set_backup_function (p, _backup_video_orc_convert_AYUV_RGBA);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 4, "s1");
+      orc_program_add_constant (p, 1, 0x00000080, "c1");
+      orc_program_add_parameter (p, 2, "p1");
+      orc_program_add_parameter (p, 2, "p2");
+      orc_program_add_parameter (p, 2, "p3");
+      orc_program_add_parameter (p, 2, "p4");
+      orc_program_add_parameter (p, 2, "p5");
+      orc_program_add_temporary (p, 1, "t1");
+      orc_program_add_temporary (p, 1, "t2");
+      orc_program_add_temporary (p, 1, "t3");
+      orc_program_add_temporary (p, 1, "t4");
+      orc_program_add_temporary (p, 2, "t5");
+      orc_program_add_temporary (p, 2, "t6");
+      orc_program_add_temporary (p, 2, "t7");
+      orc_program_add_temporary (p, 2, "t8");
+      orc_program_add_temporary (p, 2, "t9");
+      orc_program_add_temporary (p, 2, "t10");
+      orc_program_add_temporary (p, 1, "t11");
+      orc_program_add_temporary (p, 1, "t12");
+      orc_program_add_temporary (p, 1, "t13");
+      orc_program_add_temporary (p, 4, "t14");
+
+      orc_program_append_2 (p, "subb", 2, ORC_VAR_T14, ORC_VAR_S1, ORC_VAR_C1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T7, ORC_VAR_T5,
+          ORC_VAR_T14, ORC_VAR_D1);
+      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_T5,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_T7,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "splatbw", 0, ORC_VAR_T5, ORC_VAR_T2, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "splatbw", 0, ORC_VAR_T6, ORC_VAR_T3, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "splatbw", 0, ORC_VAR_T7, ORC_VAR_T4, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_P1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T8, ORC_VAR_T7, ORC_VAR_P2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addw", 0, ORC_VAR_T8, ORC_VAR_T5, ORC_VAR_T8,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T11, ORC_VAR_T8,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T10, ORC_VAR_T6, ORC_VAR_P3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addw", 0, ORC_VAR_T10, ORC_VAR_T5, ORC_VAR_T10,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T13, ORC_VAR_T10,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T10, ORC_VAR_T13,
+          ORC_VAR_T1, ORC_VAR_D1);
+      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T9, ORC_VAR_T6, ORC_VAR_P4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addw", 0, ORC_VAR_T9, ORC_VAR_T5, ORC_VAR_T9,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T5, ORC_VAR_T7, ORC_VAR_P5,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addw", 0, ORC_VAR_T9, ORC_VAR_T9, ORC_VAR_T5,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T12, ORC_VAR_T9,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T8, ORC_VAR_T11,
+          ORC_VAR_T12, ORC_VAR_D1);
+      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T14, ORC_VAR_T8,
+          ORC_VAR_T10, ORC_VAR_D1);
+      orc_program_append_2 (p, "addb", 2, ORC_VAR_D1, ORC_VAR_T14, ORC_VAR_C1,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ORC_EXECUTOR_M (ex) = m;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->params[ORC_VAR_D1] = d1_stride;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->params[ORC_VAR_S1] = s1_stride;
+  ex->params[ORC_VAR_P1] = p1;
+  ex->params[ORC_VAR_P2] = p2;
+  ex->params[ORC_VAR_P3] = p3;
+  ex->params[ORC_VAR_P4] = p4;
+  ex->params[ORC_VAR_P5] = p5;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_convert_I420_BGRA */
+#ifdef DISABLE_ORC
+void
+video_orc_convert_I420_BGRA (guint8 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
+    const guint8 * ORC_RESTRICT s3, int p1, int p2, int p3, int p4, int p5,
+    int n)
+{
+  int i;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  const orc_int8 *ORC_RESTRICT ptr5;
+  const orc_int8 *ORC_RESTRICT ptr6;
+  orc_int8 var42;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_int8 var43;
+#else
+  orc_int8 var43;
+#endif
+  orc_union16 var44;
+  orc_union16 var45;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_int8 var46;
+#else
+  orc_int8 var46;
+#endif
+  orc_union16 var47;
+  orc_union16 var48;
+  orc_union16 var49;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var50;
+#else
+  orc_union32 var50;
+#endif
+  orc_union32 var51;
+  orc_int8 var52;
+  orc_union16 var53;
+  orc_int8 var54;
+  orc_int8 var55;
+  orc_union16 var56;
+  orc_int8 var57;
+  orc_int8 var58;
+  orc_union16 var59;
+  orc_union16 var60;
+  orc_union16 var61;
+  orc_union16 var62;
+  orc_int8 var63;
+  orc_union16 var64;
+  orc_union16 var65;
+  orc_union16 var66;
+  orc_int8 var67;
+  orc_union16 var68;
+  orc_union16 var69;
+  orc_union16 var70;
+  orc_union16 var71;
+  orc_int8 var72;
+  orc_union16 var73;
+  orc_union32 var74;
+
+  ptr0 = (orc_union32 *) d1;
+  ptr4 = (orc_int8 *) s1;
+  ptr5 = (orc_int8 *) s2;
+  ptr6 = (orc_int8 *) s3;
+
+  /* 1: loadpb */
+  var43 = (int) 0x00000080;     /* 128 or 6.32404e-322f */
+  /* 10: loadpw */
+  var44.i = p1;
+  /* 12: loadpw */
+  var45.i = p2;
+  /* 16: loadpb */
+  var46 = (int) 0x0000007f;     /* 127 or 6.27463e-322f */
+  /* 18: loadpw */
+  var47.i = p3;
+  /* 22: loadpw */
+  var48.i = p4;
+  /* 25: loadpw */
+  var49.i = p5;
+  /* 31: loadpb */
+  var50.x4[0] = (int) 0x00000080;       /* 128 or 6.32404e-322f */
+  var50.x4[1] = (int) 0x00000080;       /* 128 or 6.32404e-322f */
+  var50.x4[2] = (int) 0x00000080;       /* 128 or 6.32404e-322f */
+  var50.x4[3] = (int) 0x00000080;       /* 128 or 6.32404e-322f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadb */
+    var42 = ptr4[i];
+    /* 2: subb */
+    var52 = var42 - var43;
+    /* 3: splatbw */
+    var53.i = ((var52 & 0xff) << 8) | (var52 & 0xff);
+    /* 4: loadupdb */
+    var54 = ptr5[i >> 1];
+    /* 5: subb */
+    var55 = var54 - var43;
+    /* 6: splatbw */
+    var56.i = ((var55 & 0xff) << 8) | (var55 & 0xff);
+    /* 7: loadupdb */
+    var57 = ptr6[i >> 1];
+    /* 8: subb */
+    var58 = var57 - var43;
+    /* 9: splatbw */
+    var59.i = ((var58 & 0xff) << 8) | (var58 & 0xff);
+    /* 11: mulhsw */
+    var60.i = (var53.i * var44.i) >> 16;
+    /* 13: mulhsw */
+    var61.i = (var59.i * var45.i) >> 16;
+    /* 14: addw */
+    var62.i = var60.i + var61.i;
+    /* 15: convssswb */
+    var63 = ORC_CLAMP_SB (var62.i);
+    /* 17: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var63;
+      _dest.x2[1] = var46;
+      var64.i = _dest.i;
+    }
+    /* 19: mulhsw */
+    var65.i = (var56.i * var47.i) >> 16;
+    /* 20: addw */
+    var66.i = var60.i + var65.i;
+    /* 21: convssswb */
+    var67 = ORC_CLAMP_SB (var66.i);
+    /* 23: mulhsw */
+    var68.i = (var56.i * var48.i) >> 16;
+    /* 24: addw */
+    var69.i = var60.i + var68.i;
+    /* 26: mulhsw */
+    var70.i = (var59.i * var49.i) >> 16;
+    /* 27: addw */
+    var71.i = var69.i + var70.i;
+    /* 28: convssswb */
+    var72 = ORC_CLAMP_SB (var71.i);
+    /* 29: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var67;
+      _dest.x2[1] = var72;
+      var73.i = _dest.i;
+    }
+    /* 30: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var73.i;
+      _dest.x2[1] = var64.i;
+      var74.i = _dest.i;
+    }
+    /* 32: addb */
+    var51.x4[0] = var74.x4[0] + var50.x4[0];
+    var51.x4[1] = var74.x4[1] + var50.x4[1];
+    var51.x4[2] = var74.x4[2] + var50.x4[2];
+    var51.x4[3] = var74.x4[3] + var50.x4[3];
+    /* 33: storel */
+    ptr0[i] = var51;
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_convert_I420_BGRA (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  const orc_int8 *ORC_RESTRICT ptr5;
+  const orc_int8 *ORC_RESTRICT ptr6;
+  orc_int8 var42;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_int8 var43;
+#else
+  orc_int8 var43;
+#endif
+  orc_union16 var44;
+  orc_union16 var45;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_int8 var46;
+#else
+  orc_int8 var46;
+#endif
+  orc_union16 var47;
+  orc_union16 var48;
+  orc_union16 var49;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var50;
+#else
+  orc_union32 var50;
+#endif
+  orc_union32 var51;
+  orc_int8 var52;
+  orc_union16 var53;
+  orc_int8 var54;
+  orc_int8 var55;
+  orc_union16 var56;
+  orc_int8 var57;
+  orc_int8 var58;
+  orc_union16 var59;
+  orc_union16 var60;
+  orc_union16 var61;
+  orc_union16 var62;
+  orc_int8 var63;
+  orc_union16 var64;
+  orc_union16 var65;
+  orc_union16 var66;
+  orc_int8 var67;
+  orc_union16 var68;
+  orc_union16 var69;
+  orc_union16 var70;
+  orc_union16 var71;
+  orc_int8 var72;
+  orc_union16 var73;
+  orc_union32 var74;
+
+  ptr0 = (orc_union32 *) ex->arrays[0];
+  ptr4 = (orc_int8 *) ex->arrays[4];
+  ptr5 = (orc_int8 *) ex->arrays[5];
+  ptr6 = (orc_int8 *) ex->arrays[6];
+
+  /* 1: loadpb */
+  var43 = (int) 0x00000080;     /* 128 or 6.32404e-322f */
+  /* 10: loadpw */
+  var44.i = ex->params[24];
+  /* 12: loadpw */
+  var45.i = ex->params[25];
+  /* 16: loadpb */
+  var46 = (int) 0x0000007f;     /* 127 or 6.27463e-322f */
+  /* 18: loadpw */
+  var47.i = ex->params[26];
+  /* 22: loadpw */
+  var48.i = ex->params[27];
+  /* 25: loadpw */
+  var49.i = ex->params[28];
+  /* 31: loadpb */
+  var50.x4[0] = (int) 0x00000080;       /* 128 or 6.32404e-322f */
+  var50.x4[1] = (int) 0x00000080;       /* 128 or 6.32404e-322f */
+  var50.x4[2] = (int) 0x00000080;       /* 128 or 6.32404e-322f */
+  var50.x4[3] = (int) 0x00000080;       /* 128 or 6.32404e-322f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadb */
+    var42 = ptr4[i];
+    /* 2: subb */
+    var52 = var42 - var43;
+    /* 3: splatbw */
+    var53.i = ((var52 & 0xff) << 8) | (var52 & 0xff);
+    /* 4: loadupdb */
+    var54 = ptr5[i >> 1];
+    /* 5: subb */
+    var55 = var54 - var43;
+    /* 6: splatbw */
+    var56.i = ((var55 & 0xff) << 8) | (var55 & 0xff);
+    /* 7: loadupdb */
+    var57 = ptr6[i >> 1];
+    /* 8: subb */
+    var58 = var57 - var43;
+    /* 9: splatbw */
+    var59.i = ((var58 & 0xff) << 8) | (var58 & 0xff);
+    /* 11: mulhsw */
+    var60.i = (var53.i * var44.i) >> 16;
+    /* 13: mulhsw */
+    var61.i = (var59.i * var45.i) >> 16;
+    /* 14: addw */
+    var62.i = var60.i + var61.i;
+    /* 15: convssswb */
+    var63 = ORC_CLAMP_SB (var62.i);
+    /* 17: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var63;
+      _dest.x2[1] = var46;
+      var64.i = _dest.i;
+    }
+    /* 19: mulhsw */
+    var65.i = (var56.i * var47.i) >> 16;
+    /* 20: addw */
+    var66.i = var60.i + var65.i;
+    /* 21: convssswb */
+    var67 = ORC_CLAMP_SB (var66.i);
+    /* 23: mulhsw */
+    var68.i = (var56.i * var48.i) >> 16;
+    /* 24: addw */
+    var69.i = var60.i + var68.i;
+    /* 26: mulhsw */
+    var70.i = (var59.i * var49.i) >> 16;
+    /* 27: addw */
+    var71.i = var69.i + var70.i;
+    /* 28: convssswb */
+    var72 = ORC_CLAMP_SB (var71.i);
+    /* 29: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var67;
+      _dest.x2[1] = var72;
+      var73.i = _dest.i;
+    }
+    /* 30: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var73.i;
+      _dest.x2[1] = var64.i;
+      var74.i = _dest.i;
+    }
+    /* 32: addb */
+    var51.x4[0] = var74.x4[0] + var50.x4[0];
+    var51.x4[1] = var74.x4[1] + var50.x4[1];
+    var51.x4[2] = var74.x4[2] + var50.x4[2];
+    var51.x4[3] = var74.x4[3] + var50.x4[3];
+    /* 33: storel */
+    ptr0[i] = var51;
+  }
+
+}
+
+void
+video_orc_convert_I420_BGRA (guint8 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
+    const guint8 * ORC_RESTRICT s3, int p1, int p2, int p3, int p4, int p5,
+    int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 27, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 99, 111, 110,
+        118, 101, 114, 116, 95, 73, 52, 50, 48, 95, 66, 71, 82, 65, 11, 4,
+        4, 12, 1, 1, 12, 1, 1, 12, 1, 1, 14, 1, 128, 0, 0, 0,
+        14, 1, 127, 0, 0, 0, 16, 2, 16, 2, 16, 2, 16, 2, 16, 2,
+        20, 2, 20, 2, 20, 2, 20, 2, 20, 2, 20, 2, 20, 1, 20, 1,
+        20, 1, 20, 4, 65, 38, 4, 16, 151, 32, 38, 45, 38, 5, 65, 38,
+        38, 16, 151, 33, 38, 45, 38, 6, 65, 38, 38, 16, 151, 34, 38, 90,
+        32, 32, 24, 90, 35, 34, 25, 70, 35, 32, 35, 159, 38, 35, 196, 35,
+        38, 17, 90, 37, 33, 26, 70, 37, 32, 37, 159, 40, 37, 90, 36, 33,
+        27, 70, 36, 32, 36, 90, 32, 34, 28, 70, 36, 36, 32, 159, 39, 36,
+        196, 37, 40, 39, 195, 41, 37, 35, 21, 2, 33, 0, 41, 16, 2, 0,
+
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_convert_I420_BGRA);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "video_orc_convert_I420_BGRA");
+      orc_program_set_backup_function (p, _backup_video_orc_convert_I420_BGRA);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 1, "s1");
+      orc_program_add_source (p, 1, "s2");
+      orc_program_add_source (p, 1, "s3");
+      orc_program_add_constant (p, 1, 0x00000080, "c1");
+      orc_program_add_constant (p, 1, 0x0000007f, "c2");
+      orc_program_add_parameter (p, 2, "p1");
+      orc_program_add_parameter (p, 2, "p2");
+      orc_program_add_parameter (p, 2, "p3");
+      orc_program_add_parameter (p, 2, "p4");
+      orc_program_add_parameter (p, 2, "p5");
+      orc_program_add_temporary (p, 2, "t1");
+      orc_program_add_temporary (p, 2, "t2");
+      orc_program_add_temporary (p, 2, "t3");
+      orc_program_add_temporary (p, 2, "t4");
+      orc_program_add_temporary (p, 2, "t5");
+      orc_program_add_temporary (p, 2, "t6");
+      orc_program_add_temporary (p, 1, "t7");
+      orc_program_add_temporary (p, 1, "t8");
+      orc_program_add_temporary (p, 1, "t9");
+      orc_program_add_temporary (p, 4, "t10");
+
+      orc_program_append_2 (p, "subb", 0, ORC_VAR_T7, ORC_VAR_S1, ORC_VAR_C1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "splatbw", 0, ORC_VAR_T1, ORC_VAR_T7, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "loadupdb", 0, ORC_VAR_T7, ORC_VAR_S2,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "subb", 0, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_C1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "splatbw", 0, ORC_VAR_T2, ORC_VAR_T7, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "loadupdb", 0, ORC_VAR_T7, ORC_VAR_S3,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "subb", 0, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_C1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "splatbw", 0, ORC_VAR_T3, ORC_VAR_T7, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_P1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_P2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addw", 0, ORC_VAR_T4, ORC_VAR_T1, ORC_VAR_T4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T7, ORC_VAR_T4,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T4, ORC_VAR_T7, ORC_VAR_C2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T6, ORC_VAR_T2, ORC_VAR_P3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addw", 0, ORC_VAR_T6, ORC_VAR_T1, ORC_VAR_T6,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T9, ORC_VAR_T6,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T5, ORC_VAR_T2, ORC_VAR_P4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addw", 0, ORC_VAR_T5, ORC_VAR_T1, ORC_VAR_T5,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T1, ORC_VAR_T3, ORC_VAR_P5,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addw", 0, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_T1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T8, ORC_VAR_T5,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T6, ORC_VAR_T9, ORC_VAR_T8,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T10, ORC_VAR_T6,
+          ORC_VAR_T4, ORC_VAR_D1);
+      orc_program_append_2 (p, "addb", 2, ORC_VAR_D1, ORC_VAR_T10, ORC_VAR_C1,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->arrays[ORC_VAR_S2] = (void *) s2;
+  ex->arrays[ORC_VAR_S3] = (void *) s3;
+  ex->params[ORC_VAR_P1] = p1;
+  ex->params[ORC_VAR_P2] = p2;
+  ex->params[ORC_VAR_P3] = p3;
+  ex->params[ORC_VAR_P4] = p4;
+  ex->params[ORC_VAR_P5] = p5;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_matrix8 */
+#ifdef DISABLE_ORC
+void
+video_orc_matrix8 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+    orc_int64 p1, orc_int64 p2, orc_int64 p3, orc_int64 p4, int n)
+{
+  _custom_video_orc_matrix8 (d1, s1, p1, p2, p3, p4, n);
+}
+
+#else
+static void
+_backup_video_orc_matrix8 (OrcExecutor * ORC_RESTRICT ex)
+{
+  _custom_video_orc_matrix8 (ex->arrays[ORC_VAR_D1], ex->arrays[ORC_VAR_S1],
+      (ex->params[ORC_VAR_P1] & 0xffffffff) | ((orc_uint64) (ex->
+              params[ORC_VAR_T1]) << 32),
+      (ex->params[ORC_VAR_P2] & 0xffffffff) | ((orc_uint64) (ex->
+              params[ORC_VAR_T2]) << 32),
+      (ex->params[ORC_VAR_P3] & 0xffffffff) | ((orc_uint64) (ex->
+              params[ORC_VAR_T3]) << 32),
+      (ex->params[ORC_VAR_P4] & 0xffffffff) | ((orc_uint64) (ex->
+              params[ORC_VAR_T4]) << 32), ex->n);
+}
+
+void
+video_orc_matrix8 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+    orc_int64 p1, orc_int64 p2, orc_int64 p3, orc_int64 p4, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 17, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 109, 97, 116,
+        114, 105, 120, 56, 11, 4, 4, 12, 4, 4, 14, 1, 128, 0, 0, 0,
+        18, 8, 18, 8, 18, 8, 18, 8, 20, 2, 20, 2, 20, 1, 20, 1,
+        20, 4, 20, 4, 20, 8, 20, 8, 20, 8, 20, 8, 20, 8, 134, 40,
+        24, 134, 41, 25, 134, 42, 26, 21, 2, 65, 36, 4, 16, 190, 32, 36,
+        191, 33, 36, 188, 34, 32, 189, 35, 32, 150, 32, 34, 154, 36, 32, 21,
+        2, 196, 38, 36, 36, 152, 36, 35, 194, 39, 36, 36, 21, 2, 90, 39,
+        39, 40, 21, 2, 70, 38, 38, 39, 188, 34, 33, 152, 36, 34, 194, 39,
+        36, 36, 21, 2, 90, 39, 39, 41, 21, 2, 70, 38, 38, 39, 189, 35,
+        33, 152, 36, 35, 194, 39, 36, 36, 21, 2, 90, 39, 39, 42, 21, 2,
+        70, 38, 38, 39, 21, 2, 159, 37, 38, 21, 2, 33, 0, 37, 16, 2,
+        0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_matrix8);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "video_orc_matrix8");
+      orc_program_set_backup_function (p, _backup_video_orc_matrix8);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 4, "s1");
+      orc_program_add_constant (p, 1, 0x00000080, "c1");
+      orc_program_add_parameter_int64 (p, 8, "p1");
+      orc_program_add_parameter_int64 (p, 8, "p2");
+      orc_program_add_parameter_int64 (p, 8, "p3");
+      orc_program_add_parameter_int64 (p, 8, "p4");
+      orc_program_add_temporary (p, 2, "t1");
+      orc_program_add_temporary (p, 2, "t2");
+      orc_program_add_temporary (p, 1, "t3");
+      orc_program_add_temporary (p, 1, "t4");
+      orc_program_add_temporary (p, 4, "t5");
+      orc_program_add_temporary (p, 4, "t6");
+      orc_program_add_temporary (p, 8, "t7");
+      orc_program_add_temporary (p, 8, "t8");
+      orc_program_add_temporary (p, 8, "t9");
+      orc_program_add_temporary (p, 8, "t10");
+      orc_program_add_temporary (p, 8, "t11");
+
+      orc_program_append_2 (p, "loadpq", 0, ORC_VAR_T9, ORC_VAR_P1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "loadpq", 0, ORC_VAR_T10, ORC_VAR_P2, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "loadpq", 0, ORC_VAR_T11, ORC_VAR_P3, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "subb", 2, ORC_VAR_T5, ORC_VAR_S1, ORC_VAR_C1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "select0lw", 0, ORC_VAR_T1, ORC_VAR_T5,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "select1lw", 0, ORC_VAR_T2, ORC_VAR_T5,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "select0wb", 0, ORC_VAR_T3, ORC_VAR_T1,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "select1wb", 0, ORC_VAR_T4, ORC_VAR_T1,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "convubw", 0, ORC_VAR_T1, ORC_VAR_T3, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convuwl", 0, ORC_VAR_T5, ORC_VAR_T1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergebw", 2, ORC_VAR_T7, ORC_VAR_T5, ORC_VAR_T5,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "splatbl", 0, ORC_VAR_T5, ORC_VAR_T4, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergelq", 0, ORC_VAR_T8, ORC_VAR_T5, ORC_VAR_T5,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mulhsw", 2, ORC_VAR_T8, ORC_VAR_T8, ORC_VAR_T9,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addw", 2, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_T8,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "select0wb", 0, ORC_VAR_T3, ORC_VAR_T2,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "splatbl", 0, ORC_VAR_T5, ORC_VAR_T3, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergelq", 0, ORC_VAR_T8, ORC_VAR_T5, ORC_VAR_T5,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mulhsw", 2, ORC_VAR_T8, ORC_VAR_T8, ORC_VAR_T10,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addw", 2, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_T8,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "select1wb", 0, ORC_VAR_T4, ORC_VAR_T2,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "splatbl", 0, ORC_VAR_T5, ORC_VAR_T4, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergelq", 0, ORC_VAR_T8, ORC_VAR_T5, ORC_VAR_T5,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mulhsw", 2, ORC_VAR_T8, ORC_VAR_T8, ORC_VAR_T11,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addw", 2, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_T8,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convssswb", 2, ORC_VAR_T6, ORC_VAR_T7,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "addb", 2, ORC_VAR_D1, ORC_VAR_T6, ORC_VAR_C1,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  {
+    orc_union64 tmp;
+    tmp.i = p1;
+    ex->params[ORC_VAR_P1] = ((orc_uint64) tmp.i) & 0xffffffff;
+    ex->params[ORC_VAR_T1] = ((orc_uint64) tmp.i) >> 32;
+  }
+  {
+    orc_union64 tmp;
+    tmp.i = p2;
+    ex->params[ORC_VAR_P2] = ((orc_uint64) tmp.i) & 0xffffffff;
+    ex->params[ORC_VAR_T2] = ((orc_uint64) tmp.i) >> 32;
+  }
+  {
+    orc_union64 tmp;
+    tmp.i = p3;
+    ex->params[ORC_VAR_P3] = ((orc_uint64) tmp.i) & 0xffffffff;
+    ex->params[ORC_VAR_T3] = ((orc_uint64) tmp.i) >> 32;
+  }
+  {
+    orc_union64 tmp;
+    tmp.i = p4;
+    ex->params[ORC_VAR_P4] = ((orc_uint64) tmp.i) & 0xffffffff;
+    ex->params[ORC_VAR_T4] = ((orc_uint64) tmp.i) >> 32;
+  }
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_resample_h_near_u32_lq */
+#ifdef DISABLE_ORC
+void
+video_orc_resample_h_near_u32_lq (guint32 * ORC_RESTRICT d1,
+    const guint32 * ORC_RESTRICT s1, int p1, int p2, int n)
+{
+  int i;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var32;
+
+  ptr0 = (orc_union32 *) d1;
+  ptr4 = (orc_union32 *) s1;
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: ldresnearl */
+    var32 = ptr4[(p1 + i * p2) >> 16];
+    /* 1: storel */
+    ptr0[i] = var32;
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_resample_h_near_u32_lq (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var32;
+
+  ptr0 = (orc_union32 *) ex->arrays[0];
+  ptr4 = (orc_union32 *) ex->arrays[4];
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: ldresnearl */
+    var32 = ptr4[(ex->params[24] + i * ex->params[25]) >> 16];
+    /* 1: storel */
+    ptr0[i] = var32;
+  }
+
+}
+
+void
+video_orc_resample_h_near_u32_lq (guint32 * ORC_RESTRICT d1,
+    const guint32 * ORC_RESTRICT s1, int p1, int p2, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 32, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 114, 101, 115,
+        97, 109, 112, 108, 101, 95, 104, 95, 110, 101, 97, 114, 95, 117, 51, 50,
+        95, 108, 113, 11, 4, 4, 12, 4, 4, 16, 4, 16, 4, 49, 0, 4,
+        24, 25, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_orc_resample_h_near_u32_lq);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "video_orc_resample_h_near_u32_lq");
+      orc_program_set_backup_function (p,
+          _backup_video_orc_resample_h_near_u32_lq);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 4, "s1");
+      orc_program_add_parameter (p, 4, "p1");
+      orc_program_add_parameter (p, 4, "p2");
+
+      orc_program_append_2 (p, "ldresnearl", 0, ORC_VAR_D1, ORC_VAR_S1,
+          ORC_VAR_P1, ORC_VAR_P2);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->params[ORC_VAR_P1] = p1;
+  ex->params[ORC_VAR_P2] = p2;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_resample_h_2tap_1u8_lq */
+#ifdef DISABLE_ORC
+void
+video_orc_resample_h_2tap_1u8_lq (guint8 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, int p1, int p2, int n)
+{
+  int i;
+  orc_int8 *ORC_RESTRICT ptr0;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  orc_int8 var32;
+
+  ptr0 = (orc_int8 *) d1;
+  ptr4 = (orc_int8 *) s1;
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: ldreslinb */
+    {
+      int tmp = p1 + i * p2;
+      var32 =
+          ((orc_uint8) ptr4[tmp >> 16] * (256 - ((tmp >> 8) & 0xff)) +
+          (orc_uint8) ptr4[(tmp >> 16) + 1] * ((tmp >> 8) & 0xff)) >> 8;
+    }
+    /* 1: storeb */
+    ptr0[i] = var32;
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_resample_h_2tap_1u8_lq (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_int8 *ORC_RESTRICT ptr0;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  orc_int8 var32;
+
+  ptr0 = (orc_int8 *) ex->arrays[0];
+  ptr4 = (orc_int8 *) ex->arrays[4];
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: ldreslinb */
+    {
+      int tmp = ex->params[24] + i * ex->params[25];
+      var32 =
+          ((orc_uint8) ptr4[tmp >> 16] * (256 - ((tmp >> 8) & 0xff)) +
+          (orc_uint8) ptr4[(tmp >> 16) + 1] * ((tmp >> 8) & 0xff)) >> 8;
+    }
+    /* 1: storeb */
+    ptr0[i] = var32;
+  }
+
+}
+
+void
+video_orc_resample_h_2tap_1u8_lq (guint8 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, int p1, int p2, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 32, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 114, 101, 115,
+        97, 109, 112, 108, 101, 95, 104, 95, 50, 116, 97, 112, 95, 49, 117, 56,
+        95, 108, 113, 11, 1, 1, 12, 1, 1, 16, 4, 16, 4, 50, 0, 4,
+        24, 25, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_orc_resample_h_2tap_1u8_lq);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "video_orc_resample_h_2tap_1u8_lq");
+      orc_program_set_backup_function (p,
+          _backup_video_orc_resample_h_2tap_1u8_lq);
+      orc_program_add_destination (p, 1, "d1");
+      orc_program_add_source (p, 1, "s1");
+      orc_program_add_parameter (p, 4, "p1");
+      orc_program_add_parameter (p, 4, "p2");
+
+      orc_program_append_2 (p, "ldreslinb", 0, ORC_VAR_D1, ORC_VAR_S1,
+          ORC_VAR_P1, ORC_VAR_P2);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->params[ORC_VAR_P1] = p1;
+  ex->params[ORC_VAR_P2] = p2;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_resample_h_2tap_4u8_lq */
+#ifdef DISABLE_ORC
+void
+video_orc_resample_h_2tap_4u8_lq (guint32 * ORC_RESTRICT d1,
+    const guint32 * ORC_RESTRICT s1, int p1, int p2, int n)
+{
+  int i;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var32;
+
+  ptr0 = (orc_union32 *) d1;
+  ptr4 = (orc_union32 *) s1;
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: ldreslinl */
+    {
+      int tmp = p1 + i * p2;
+      orc_union32 a = ptr4[tmp >> 16];
+      orc_union32 b = ptr4[(tmp >> 16) + 1];
+      var32.x4[0] =
+          ((orc_uint8) a.x4[0] * (256 - ((tmp >> 8) & 0xff)) +
+          (orc_uint8) b.x4[0] * ((tmp >> 8) & 0xff)) >> 8;
+      var32.x4[1] =
+          ((orc_uint8) a.x4[1] * (256 - ((tmp >> 8) & 0xff)) +
+          (orc_uint8) b.x4[1] * ((tmp >> 8) & 0xff)) >> 8;
+      var32.x4[2] =
+          ((orc_uint8) a.x4[2] * (256 - ((tmp >> 8) & 0xff)) +
+          (orc_uint8) b.x4[2] * ((tmp >> 8) & 0xff)) >> 8;
+      var32.x4[3] =
+          ((orc_uint8) a.x4[3] * (256 - ((tmp >> 8) & 0xff)) +
+          (orc_uint8) b.x4[3] * ((tmp >> 8) & 0xff)) >> 8;
+    }
+    /* 1: storel */
+    ptr0[i] = var32;
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_resample_h_2tap_4u8_lq (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var32;
+
+  ptr0 = (orc_union32 *) ex->arrays[0];
+  ptr4 = (orc_union32 *) ex->arrays[4];
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: ldreslinl */
+    {
+      int tmp = ex->params[24] + i * ex->params[25];
+      orc_union32 a = ptr4[tmp >> 16];
+      orc_union32 b = ptr4[(tmp >> 16) + 1];
+      var32.x4[0] =
+          ((orc_uint8) a.x4[0] * (256 - ((tmp >> 8) & 0xff)) +
+          (orc_uint8) b.x4[0] * ((tmp >> 8) & 0xff)) >> 8;
+      var32.x4[1] =
+          ((orc_uint8) a.x4[1] * (256 - ((tmp >> 8) & 0xff)) +
+          (orc_uint8) b.x4[1] * ((tmp >> 8) & 0xff)) >> 8;
+      var32.x4[2] =
+          ((orc_uint8) a.x4[2] * (256 - ((tmp >> 8) & 0xff)) +
+          (orc_uint8) b.x4[2] * ((tmp >> 8) & 0xff)) >> 8;
+      var32.x4[3] =
+          ((orc_uint8) a.x4[3] * (256 - ((tmp >> 8) & 0xff)) +
+          (orc_uint8) b.x4[3] * ((tmp >> 8) & 0xff)) >> 8;
+    }
+    /* 1: storel */
+    ptr0[i] = var32;
+  }
+
+}
+
+void
+video_orc_resample_h_2tap_4u8_lq (guint32 * ORC_RESTRICT d1,
+    const guint32 * ORC_RESTRICT s1, int p1, int p2, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 32, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 114, 101, 115,
+        97, 109, 112, 108, 101, 95, 104, 95, 50, 116, 97, 112, 95, 52, 117, 56,
+        95, 108, 113, 11, 4, 4, 12, 4, 4, 16, 4, 16, 4, 51, 0, 4,
+        24, 25, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_orc_resample_h_2tap_4u8_lq);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "video_orc_resample_h_2tap_4u8_lq");
+      orc_program_set_backup_function (p,
+          _backup_video_orc_resample_h_2tap_4u8_lq);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 4, "s1");
+      orc_program_add_parameter (p, 4, "p1");
+      orc_program_add_parameter (p, 4, "p2");
+
+      orc_program_append_2 (p, "ldreslinl", 0, ORC_VAR_D1, ORC_VAR_S1,
+          ORC_VAR_P1, ORC_VAR_P2);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->params[ORC_VAR_P1] = p1;
+  ex->params[ORC_VAR_P2] = p2;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_resample_h_2tap_u8_lq */
+#ifdef DISABLE_ORC
+void
+video_orc_resample_h_2tap_u8_lq (guint8 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
+    const gint16 * ORC_RESTRICT s3, const gint16 * ORC_RESTRICT s4, int n)
+{
+  int i;
+  orc_int8 *ORC_RESTRICT ptr0;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  const orc_int8 *ORC_RESTRICT ptr5;
+  const orc_union16 *ORC_RESTRICT ptr6;
+  const orc_union16 *ORC_RESTRICT ptr7;
+  orc_int8 var34;
+  orc_union16 var35;
+  orc_int8 var36;
+  orc_union16 var37;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var38;
+#else
+  orc_union16 var38;
+#endif
+  orc_int8 var39;
+  orc_union16 var40;
+  orc_union16 var41;
+  orc_union16 var42;
+  orc_union16 var43;
+  orc_union16 var44;
+  orc_union16 var45;
+  orc_union16 var46;
+
+  ptr0 = (orc_int8 *) d1;
+  ptr4 = (orc_int8 *) s1;
+  ptr5 = (orc_int8 *) s2;
+  ptr6 = (orc_union16 *) s3;
+  ptr7 = (orc_union16 *) s4;
+
+  /* 9: loadpw */
+  var38.i = (int) 0x00000020;   /* 32 or 1.58101e-322f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadb */
+    var34 = ptr4[i];
+    /* 1: convubw */
+    var40.i = (orc_uint8) var34;
+    /* 2: loadw */
+    var35 = ptr6[i];
+    /* 3: mullw */
+    var41.i = (var40.i * var35.i) & 0xffff;
+    /* 4: loadb */
+    var36 = ptr5[i];
+    /* 5: convubw */
+    var42.i = (orc_uint8) var36;
+    /* 6: loadw */
+    var37 = ptr7[i];
+    /* 7: mullw */
+    var43.i = (var42.i * var37.i) & 0xffff;
+    /* 8: addw */
+    var44.i = var41.i + var43.i;
+    /* 10: addw */
+    var45.i = var44.i + var38.i;
+    /* 11: shrsw */
+    var46.i = var45.i >> 6;
+    /* 12: convsuswb */
+    var39 = ORC_CLAMP_UB (var46.i);
+    /* 13: storeb */
+    ptr0[i] = var39;
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_resample_h_2tap_u8_lq (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_int8 *ORC_RESTRICT ptr0;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  const orc_int8 *ORC_RESTRICT ptr5;
+  const orc_union16 *ORC_RESTRICT ptr6;
+  const orc_union16 *ORC_RESTRICT ptr7;
+  orc_int8 var34;
+  orc_union16 var35;
+  orc_int8 var36;
+  orc_union16 var37;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var38;
+#else
+  orc_union16 var38;
+#endif
+  orc_int8 var39;
+  orc_union16 var40;
+  orc_union16 var41;
+  orc_union16 var42;
+  orc_union16 var43;
+  orc_union16 var44;
+  orc_union16 var45;
+  orc_union16 var46;
+
+  ptr0 = (orc_int8 *) ex->arrays[0];
+  ptr4 = (orc_int8 *) ex->arrays[4];
+  ptr5 = (orc_int8 *) ex->arrays[5];
+  ptr6 = (orc_union16 *) ex->arrays[6];
+  ptr7 = (orc_union16 *) ex->arrays[7];
+
+  /* 9: loadpw */
+  var38.i = (int) 0x00000020;   /* 32 or 1.58101e-322f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadb */
+    var34 = ptr4[i];
+    /* 1: convubw */
+    var40.i = (orc_uint8) var34;
+    /* 2: loadw */
+    var35 = ptr6[i];
+    /* 3: mullw */
+    var41.i = (var40.i * var35.i) & 0xffff;
+    /* 4: loadb */
+    var36 = ptr5[i];
+    /* 5: convubw */
+    var42.i = (orc_uint8) var36;
+    /* 6: loadw */
+    var37 = ptr7[i];
+    /* 7: mullw */
+    var43.i = (var42.i * var37.i) & 0xffff;
+    /* 8: addw */
+    var44.i = var41.i + var43.i;
+    /* 10: addw */
+    var45.i = var44.i + var38.i;
+    /* 11: shrsw */
+    var46.i = var45.i >> 6;
+    /* 12: convsuswb */
+    var39 = ORC_CLAMP_UB (var46.i);
+    /* 13: storeb */
+    ptr0[i] = var39;
+  }
+
+}
+
+void
+video_orc_resample_h_2tap_u8_lq (guint8 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
+    const gint16 * ORC_RESTRICT s3, const gint16 * ORC_RESTRICT s4, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 31, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 114, 101, 115,
+        97, 109, 112, 108, 101, 95, 104, 95, 50, 116, 97, 112, 95, 117, 56, 95,
+        108, 113, 11, 1, 1, 12, 1, 1, 12, 1, 1, 12, 2, 2, 12, 2,
+        2, 14, 2, 32, 0, 0, 0, 14, 2, 6, 0, 0, 0, 20, 2, 20,
+        2, 150, 32, 4, 89, 32, 32, 6, 150, 33, 5, 89, 33, 33, 7, 70,
+        32, 32, 33, 70, 32, 32, 16, 94, 32, 32, 17, 160, 0, 32, 2, 0,
+
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_orc_resample_h_2tap_u8_lq);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "video_orc_resample_h_2tap_u8_lq");
+      orc_program_set_backup_function (p,
+          _backup_video_orc_resample_h_2tap_u8_lq);
+      orc_program_add_destination (p, 1, "d1");
+      orc_program_add_source (p, 1, "s1");
+      orc_program_add_source (p, 1, "s2");
+      orc_program_add_source (p, 2, "s3");
+      orc_program_add_source (p, 2, "s4");
+      orc_program_add_constant (p, 2, 0x00000020, "c1");
+      orc_program_add_constant (p, 2, 0x00000006, "c2");
+      orc_program_add_temporary (p, 2, "t1");
+      orc_program_add_temporary (p, 2, "t2");
+
+      orc_program_append_2 (p, "convubw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_S3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convubw", 0, ORC_VAR_T2, ORC_VAR_S2, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mullw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_S4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convsuswb", 0, ORC_VAR_D1, ORC_VAR_T1,
+          ORC_VAR_D1, ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->arrays[ORC_VAR_S2] = (void *) s2;
+  ex->arrays[ORC_VAR_S3] = (void *) s3;
+  ex->arrays[ORC_VAR_S4] = (void *) s4;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_resample_h_2tap_u16 */
+#ifdef DISABLE_ORC
+void
+video_orc_resample_h_2tap_u16 (guint16 * ORC_RESTRICT d1,
+    const guint16 * ORC_RESTRICT s1, const guint16 * ORC_RESTRICT s2,
+    const gint16 * ORC_RESTRICT s3, const gint16 * ORC_RESTRICT s4, int n)
+{
+  int i;
+  orc_union16 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+  const orc_union16 *ORC_RESTRICT ptr5;
+  const orc_union16 *ORC_RESTRICT ptr6;
+  const orc_union16 *ORC_RESTRICT ptr7;
+  orc_union16 var36;
+  orc_union16 var37;
+  orc_union16 var38;
+  orc_union16 var39;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var40;
+#else
+  orc_union32 var40;
+#endif
+  orc_union16 var41;
+  orc_union32 var42;
+  orc_union32 var43;
+  orc_union32 var44;
+  orc_union32 var45;
+  orc_union32 var46;
+  orc_union32 var47;
+  orc_union32 var48;
+  orc_union32 var49;
+  orc_union32 var50;
+
+  ptr0 = (orc_union16 *) d1;
+  ptr4 = (orc_union16 *) s1;
+  ptr5 = (orc_union16 *) s2;
+  ptr6 = (orc_union16 *) s3;
+  ptr7 = (orc_union16 *) s4;
+
+  /* 11: loadpl */
+  var40.i = (int) 0x00001000;   /* 4096 or 2.02369e-320f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadw */
+    var36 = ptr4[i];
+    /* 1: convuwl */
+    var42.i = (orc_uint16) var36.i;
+    /* 2: loadw */
+    var37 = ptr6[i];
+    /* 3: convswl */
+    var43.i = var37.i;
+    /* 4: mulll */
+    var44.i = (((orc_uint32) var42.i) * ((orc_uint32) var43.i)) & 0xffffffff;
+    /* 5: loadw */
+    var38 = ptr5[i];
+    /* 6: convuwl */
+    var45.i = (orc_uint16) var38.i;
+    /* 7: loadw */
+    var39 = ptr7[i];
+    /* 8: convswl */
+    var46.i = var39.i;
+    /* 9: mulll */
+    var47.i = (((orc_uint32) var45.i) * ((orc_uint32) var46.i)) & 0xffffffff;
+    /* 10: addl */
+    var48.i = ((orc_uint32) var44.i) + ((orc_uint32) var47.i);
+    /* 12: addl */
+    var49.i = ((orc_uint32) var48.i) + ((orc_uint32) var40.i);
+    /* 13: shrsl */
+    var50.i = var49.i >> 12;
+    /* 14: convsuslw */
+    var41.i = ORC_CLAMP_UW (var50.i);
+    /* 15: storew */
+    ptr0[i] = var41;
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_resample_h_2tap_u16 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union16 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+  const orc_union16 *ORC_RESTRICT ptr5;
+  const orc_union16 *ORC_RESTRICT ptr6;
+  const orc_union16 *ORC_RESTRICT ptr7;
+  orc_union16 var36;
+  orc_union16 var37;
+  orc_union16 var38;
+  orc_union16 var39;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var40;
+#else
+  orc_union32 var40;
+#endif
+  orc_union16 var41;
+  orc_union32 var42;
+  orc_union32 var43;
+  orc_union32 var44;
+  orc_union32 var45;
+  orc_union32 var46;
+  orc_union32 var47;
+  orc_union32 var48;
+  orc_union32 var49;
+  orc_union32 var50;
+
+  ptr0 = (orc_union16 *) ex->arrays[0];
+  ptr4 = (orc_union16 *) ex->arrays[4];
+  ptr5 = (orc_union16 *) ex->arrays[5];
+  ptr6 = (orc_union16 *) ex->arrays[6];
+  ptr7 = (orc_union16 *) ex->arrays[7];
+
+  /* 11: loadpl */
+  var40.i = (int) 0x00001000;   /* 4096 or 2.02369e-320f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadw */
+    var36 = ptr4[i];
+    /* 1: convuwl */
+    var42.i = (orc_uint16) var36.i;
+    /* 2: loadw */
+    var37 = ptr6[i];
+    /* 3: convswl */
+    var43.i = var37.i;
+    /* 4: mulll */
+    var44.i = (((orc_uint32) var42.i) * ((orc_uint32) var43.i)) & 0xffffffff;
+    /* 5: loadw */
+    var38 = ptr5[i];
+    /* 6: convuwl */
+    var45.i = (orc_uint16) var38.i;
+    /* 7: loadw */
+    var39 = ptr7[i];
+    /* 8: convswl */
+    var46.i = var39.i;
+    /* 9: mulll */
+    var47.i = (((orc_uint32) var45.i) * ((orc_uint32) var46.i)) & 0xffffffff;
+    /* 10: addl */
+    var48.i = ((orc_uint32) var44.i) + ((orc_uint32) var47.i);
+    /* 12: addl */
+    var49.i = ((orc_uint32) var48.i) + ((orc_uint32) var40.i);
+    /* 13: shrsl */
+    var50.i = var49.i >> 12;
+    /* 14: convsuslw */
+    var41.i = ORC_CLAMP_UW (var50.i);
+    /* 15: storew */
+    ptr0[i] = var41;
+  }
+
+}
+
+void
+video_orc_resample_h_2tap_u16 (guint16 * ORC_RESTRICT d1,
+    const guint16 * ORC_RESTRICT s1, const guint16 * ORC_RESTRICT s2,
+    const gint16 * ORC_RESTRICT s3, const gint16 * ORC_RESTRICT s4, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 29, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 114, 101, 115,
+        97, 109, 112, 108, 101, 95, 104, 95, 50, 116, 97, 112, 95, 117, 49, 54,
+        11, 2, 2, 12, 2, 2, 12, 2, 2, 12, 2, 2, 12, 2, 2, 14,
+        4, 0, 16, 0, 0, 14, 4, 12, 0, 0, 0, 20, 4, 20, 4, 20,
+        4, 20, 4, 154, 32, 4, 153, 34, 6, 120, 32, 32, 34, 154, 33, 5,
+        153, 35, 7, 120, 33, 33, 35, 103, 32, 32, 33, 103, 32, 32, 16, 125,
+        32, 32, 17, 166, 0, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_orc_resample_h_2tap_u16);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "video_orc_resample_h_2tap_u16");
+      orc_program_set_backup_function (p,
+          _backup_video_orc_resample_h_2tap_u16);
+      orc_program_add_destination (p, 2, "d1");
+      orc_program_add_source (p, 2, "s1");
+      orc_program_add_source (p, 2, "s2");
+      orc_program_add_source (p, 2, "s3");
+      orc_program_add_source (p, 2, "s4");
+      orc_program_add_constant (p, 4, 0x00001000, "c1");
+      orc_program_add_constant (p, 4, 0x0000000c, "c2");
+      orc_program_add_temporary (p, 4, "t1");
+      orc_program_add_temporary (p, 4, "t2");
+      orc_program_add_temporary (p, 4, "t3");
+      orc_program_add_temporary (p, 4, "t4");
+
+      orc_program_append_2 (p, "convuwl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convswl", 0, ORC_VAR_T3, ORC_VAR_S3, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mulll", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convuwl", 0, ORC_VAR_T2, ORC_VAR_S2, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convswl", 0, ORC_VAR_T4, ORC_VAR_S4, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mulll", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_T4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shrsl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convsuslw", 0, ORC_VAR_D1, ORC_VAR_T1,
+          ORC_VAR_D1, ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->arrays[ORC_VAR_S2] = (void *) s2;
+  ex->arrays[ORC_VAR_S3] = (void *) s3;
+  ex->arrays[ORC_VAR_S4] = (void *) s4;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_resample_v_2tap_u8_lq */
+#ifdef DISABLE_ORC
+void
+video_orc_resample_v_2tap_u8_lq (guint8 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, int p1,
+    int n)
+{
+  int i;
+  orc_int8 *ORC_RESTRICT ptr0;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  const orc_int8 *ORC_RESTRICT ptr5;
+  orc_int8 var35;
+  orc_int8 var36;
+  orc_union16 var37;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var38;
+#else
+  orc_union16 var38;
+#endif
+  orc_int8 var39;
+  orc_int8 var40;
+  orc_union16 var41;
+  orc_union16 var42;
+  orc_union16 var43;
+  orc_union16 var44;
+  orc_union16 var45;
+  orc_int8 var46;
+
+  ptr0 = (orc_int8 *) d1;
+  ptr4 = (orc_int8 *) s1;
+  ptr5 = (orc_int8 *) s2;
+
+  /* 5: loadpw */
+  var37.i = p1;
+  /* 7: loadpw */
+  var38.i = (int) 0x00000080;   /* 128 or 6.32404e-322f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadb */
+    var35 = ptr4[i];
+    /* 1: convubw */
+    var41.i = (orc_uint8) var35;
+    /* 2: loadb */
+    var36 = ptr5[i];
+    /* 3: convubw */
+    var42.i = (orc_uint8) var36;
+    /* 4: subw */
+    var43.i = var42.i - var41.i;
+    /* 6: mullw */
+    var44.i = (var43.i * var37.i) & 0xffff;
+    /* 8: addw */
+    var45.i = var44.i + var38.i;
+    /* 9: convhwb */
+    var46 = ((orc_uint16) var45.i) >> 8;
+    /* 10: loadb */
+    var39 = ptr4[i];
+    /* 11: addb */
+    var40 = var46 + var39;
+    /* 12: storeb */
+    ptr0[i] = var40;
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_resample_v_2tap_u8_lq (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_int8 *ORC_RESTRICT ptr0;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  const orc_int8 *ORC_RESTRICT ptr5;
+  orc_int8 var35;
+  orc_int8 var36;
+  orc_union16 var37;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var38;
+#else
+  orc_union16 var38;
+#endif
+  orc_int8 var39;
+  orc_int8 var40;
+  orc_union16 var41;
+  orc_union16 var42;
+  orc_union16 var43;
+  orc_union16 var44;
+  orc_union16 var45;
+  orc_int8 var46;
+
+  ptr0 = (orc_int8 *) ex->arrays[0];
+  ptr4 = (orc_int8 *) ex->arrays[4];
+  ptr5 = (orc_int8 *) ex->arrays[5];
+
+  /* 5: loadpw */
+  var37.i = ex->params[24];
+  /* 7: loadpw */
+  var38.i = (int) 0x00000080;   /* 128 or 6.32404e-322f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadb */
+    var35 = ptr4[i];
+    /* 1: convubw */
+    var41.i = (orc_uint8) var35;
+    /* 2: loadb */
+    var36 = ptr5[i];
+    /* 3: convubw */
+    var42.i = (orc_uint8) var36;
+    /* 4: subw */
+    var43.i = var42.i - var41.i;
+    /* 6: mullw */
+    var44.i = (var43.i * var37.i) & 0xffff;
+    /* 8: addw */
+    var45.i = var44.i + var38.i;
+    /* 9: convhwb */
+    var46 = ((orc_uint16) var45.i) >> 8;
+    /* 10: loadb */
+    var39 = ptr4[i];
+    /* 11: addb */
+    var40 = var46 + var39;
+    /* 12: storeb */
+    ptr0[i] = var40;
+  }
+
+}
+
+void
+video_orc_resample_v_2tap_u8_lq (guint8 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, int p1,
+    int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 31, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 114, 101, 115,
+        97, 109, 112, 108, 101, 95, 118, 95, 50, 116, 97, 112, 95, 117, 56, 95,
+        108, 113, 11, 1, 1, 12, 1, 1, 12, 1, 1, 14, 2, 128, 0, 0,
+        0, 16, 2, 20, 1, 20, 2, 20, 2, 150, 33, 4, 150, 34, 5, 98,
+        34, 34, 33, 89, 34, 34, 24, 70, 34, 34, 16, 158, 32, 34, 33, 0,
+        32, 4, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_orc_resample_v_2tap_u8_lq);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "video_orc_resample_v_2tap_u8_lq");
+      orc_program_set_backup_function (p,
+          _backup_video_orc_resample_v_2tap_u8_lq);
+      orc_program_add_destination (p, 1, "d1");
+      orc_program_add_source (p, 1, "s1");
+      orc_program_add_source (p, 1, "s2");
+      orc_program_add_constant (p, 2, 0x00000080, "c1");
+      orc_program_add_parameter (p, 2, "p1");
+      orc_program_add_temporary (p, 1, "t1");
+      orc_program_add_temporary (p, 2, "t2");
+      orc_program_add_temporary (p, 2, "t3");
+
+      orc_program_append_2 (p, "convubw", 0, ORC_VAR_T2, ORC_VAR_S1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convubw", 0, ORC_VAR_T3, ORC_VAR_S2, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "subw", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_T2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mullw", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_P1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addw", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_C1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convhwb", 0, ORC_VAR_T1, ORC_VAR_T3, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addb", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_S1,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->arrays[ORC_VAR_S2] = (void *) s2;
+  ex->params[ORC_VAR_P1] = p1;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_resample_v_2tap_u16 */
+#ifdef DISABLE_ORC
+void
+video_orc_resample_v_2tap_u16 (guint16 * ORC_RESTRICT d1,
+    const guint16 * ORC_RESTRICT s1, const guint16 * ORC_RESTRICT s2, int p1,
+    int n)
+{
+  int i;
+  orc_union16 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+  const orc_union16 *ORC_RESTRICT ptr5;
+  orc_union16 var35;
+  orc_union16 var36;
+  orc_union16 var37;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var38;
+#else
+  orc_union32 var38;
+#endif
+  orc_union16 var39;
+  orc_union32 var40;
+  orc_union32 var41;
+  orc_union32 var42;
+  orc_union32 var43;
+  orc_union32 var44;
+  orc_union32 var45;
+  orc_union32 var46;
+  orc_union32 var47;
+
+  ptr0 = (orc_union16 *) d1;
+  ptr4 = (orc_union16 *) s1;
+  ptr5 = (orc_union16 *) s2;
+
+  /* 5: loadpw */
+  var37.i = p1;
+  /* 8: loadpl */
+  var38.i = (int) 0x00001000;   /* 4096 or 2.02369e-320f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadw */
+    var35 = ptr4[i];
+    /* 1: convuwl */
+    var40.i = (orc_uint16) var35.i;
+    /* 2: loadw */
+    var36 = ptr5[i];
+    /* 3: convuwl */
+    var41.i = (orc_uint16) var36.i;
+    /* 4: subl */
+    var42.i = ((orc_uint32) var41.i) - ((orc_uint32) var40.i);
+    /* 6: convuwl */
+    var43.i = (orc_uint16) var37.i;
+    /* 7: mulll */
+    var44.i = (((orc_uint32) var42.i) * ((orc_uint32) var43.i)) & 0xffffffff;
+    /* 9: addl */
+    var45.i = ((orc_uint32) var44.i) + ((orc_uint32) var38.i);
+    /* 10: shrsl */
+    var46.i = var45.i >> 12;
+    /* 11: addl */
+    var47.i = ((orc_uint32) var40.i) + ((orc_uint32) var46.i);
+    /* 12: convsuslw */
+    var39.i = ORC_CLAMP_UW (var47.i);
+    /* 13: storew */
+    ptr0[i] = var39;
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_resample_v_2tap_u16 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union16 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+  const orc_union16 *ORC_RESTRICT ptr5;
+  orc_union16 var35;
+  orc_union16 var36;
+  orc_union16 var37;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var38;
+#else
+  orc_union32 var38;
+#endif
+  orc_union16 var39;
+  orc_union32 var40;
+  orc_union32 var41;
+  orc_union32 var42;
+  orc_union32 var43;
+  orc_union32 var44;
+  orc_union32 var45;
+  orc_union32 var46;
+  orc_union32 var47;
+
+  ptr0 = (orc_union16 *) ex->arrays[0];
+  ptr4 = (orc_union16 *) ex->arrays[4];
+  ptr5 = (orc_union16 *) ex->arrays[5];
+
+  /* 5: loadpw */
+  var37.i = ex->params[24];
+  /* 8: loadpl */
+  var38.i = (int) 0x00001000;   /* 4096 or 2.02369e-320f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadw */
+    var35 = ptr4[i];
+    /* 1: convuwl */
+    var40.i = (orc_uint16) var35.i;
+    /* 2: loadw */
+    var36 = ptr5[i];
+    /* 3: convuwl */
+    var41.i = (orc_uint16) var36.i;
+    /* 4: subl */
+    var42.i = ((orc_uint32) var41.i) - ((orc_uint32) var40.i);
+    /* 6: convuwl */
+    var43.i = (orc_uint16) var37.i;
+    /* 7: mulll */
+    var44.i = (((orc_uint32) var42.i) * ((orc_uint32) var43.i)) & 0xffffffff;
+    /* 9: addl */
+    var45.i = ((orc_uint32) var44.i) + ((orc_uint32) var38.i);
+    /* 10: shrsl */
+    var46.i = var45.i >> 12;
+    /* 11: addl */
+    var47.i = ((orc_uint32) var40.i) + ((orc_uint32) var46.i);
+    /* 12: convsuslw */
+    var39.i = ORC_CLAMP_UW (var47.i);
+    /* 13: storew */
+    ptr0[i] = var39;
+  }
+
+}
+
+void
+video_orc_resample_v_2tap_u16 (guint16 * ORC_RESTRICT d1,
+    const guint16 * ORC_RESTRICT s1, const guint16 * ORC_RESTRICT s2, int p1,
+    int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 29, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 114, 101, 115,
+        97, 109, 112, 108, 101, 95, 118, 95, 50, 116, 97, 112, 95, 117, 49, 54,
+        11, 2, 2, 12, 2, 2, 12, 2, 2, 14, 4, 0, 16, 0, 0, 14,
+        4, 12, 0, 0, 0, 16, 2, 20, 4, 20, 4, 20, 4, 154, 32, 4,
+        154, 33, 5, 129, 33, 33, 32, 154, 34, 24, 120, 33, 33, 34, 103, 33,
+        33, 16, 125, 33, 33, 17, 103, 32, 32, 33, 166, 0, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_orc_resample_v_2tap_u16);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "video_orc_resample_v_2tap_u16");
+      orc_program_set_backup_function (p,
+          _backup_video_orc_resample_v_2tap_u16);
+      orc_program_add_destination (p, 2, "d1");
+      orc_program_add_source (p, 2, "s1");
+      orc_program_add_source (p, 2, "s2");
+      orc_program_add_constant (p, 4, 0x00001000, "c1");
+      orc_program_add_constant (p, 4, 0x0000000c, "c2");
+      orc_program_add_parameter (p, 2, "p1");
+      orc_program_add_temporary (p, 4, "t1");
+      orc_program_add_temporary (p, 4, "t2");
+      orc_program_add_temporary (p, 4, "t3");
+
+      orc_program_append_2 (p, "convuwl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convuwl", 0, ORC_VAR_T2, ORC_VAR_S2, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "subl", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_T1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convuwl", 0, ORC_VAR_T3, ORC_VAR_P1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mulll", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_T3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addl", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shrsl", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convsuslw", 0, ORC_VAR_D1, ORC_VAR_T1,
+          ORC_VAR_D1, ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->arrays[ORC_VAR_S2] = (void *) s2;
+  ex->params[ORC_VAR_P1] = p1;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_resample_v_2tap_u8 */
+#ifdef DISABLE_ORC
+void
+video_orc_resample_v_2tap_u8 (guint8 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, int p1,
+    int n)
+{
+  int i;
+  orc_int8 *ORC_RESTRICT ptr0;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  const orc_int8 *ORC_RESTRICT ptr5;
+  orc_int8 var37;
+  orc_int8 var38;
+  orc_union16 var39;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var40;
+#else
+  orc_union32 var40;
+#endif
+  orc_int8 var41;
+  orc_union16 var42;
+  orc_union16 var43;
+  orc_union16 var44;
+  orc_union32 var45;
+  orc_union32 var46;
+  orc_union32 var47;
+  orc_union16 var48;
+  orc_union16 var49;
+
+  ptr0 = (orc_int8 *) d1;
+  ptr4 = (orc_int8 *) s1;
+  ptr5 = (orc_int8 *) s2;
+
+  /* 5: loadpw */
+  var39.i = p1;
+  /* 7: loadpl */
+  var40.i = (int) 0x00000fff;   /* 4095 or 2.0232e-320f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadb */
+    var37 = ptr4[i];
+    /* 1: convubw */
+    var42.i = (orc_uint8) var37;
+    /* 2: loadb */
+    var38 = ptr5[i];
+    /* 3: convubw */
+    var43.i = (orc_uint8) var38;
+    /* 4: subw */
+    var44.i = var43.i - var42.i;
+    /* 6: mulswl */
+    var45.i = var44.i * var39.i;
+    /* 8: addl */
+    var46.i = ((orc_uint32) var45.i) + ((orc_uint32) var40.i);
+    /* 9: shrsl */
+    var47.i = var46.i >> 12;
+    /* 10: convlw */
+    var48.i = var47.i;
+    /* 11: addw */
+    var49.i = var48.i + var42.i;
+    /* 12: convsuswb */
+    var41 = ORC_CLAMP_UB (var49.i);
+    /* 13: storeb */
+    ptr0[i] = var41;
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_resample_v_2tap_u8 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_int8 *ORC_RESTRICT ptr0;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  const orc_int8 *ORC_RESTRICT ptr5;
+  orc_int8 var37;
+  orc_int8 var38;
+  orc_union16 var39;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var40;
+#else
+  orc_union32 var40;
+#endif
+  orc_int8 var41;
+  orc_union16 var42;
+  orc_union16 var43;
+  orc_union16 var44;
+  orc_union32 var45;
+  orc_union32 var46;
+  orc_union32 var47;
+  orc_union16 var48;
+  orc_union16 var49;
+
+  ptr0 = (orc_int8 *) ex->arrays[0];
+  ptr4 = (orc_int8 *) ex->arrays[4];
+  ptr5 = (orc_int8 *) ex->arrays[5];
+
+  /* 5: loadpw */
+  var39.i = ex->params[24];
+  /* 7: loadpl */
+  var40.i = (int) 0x00000fff;   /* 4095 or 2.0232e-320f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadb */
+    var37 = ptr4[i];
+    /* 1: convubw */
+    var42.i = (orc_uint8) var37;
+    /* 2: loadb */
+    var38 = ptr5[i];
+    /* 3: convubw */
+    var43.i = (orc_uint8) var38;
+    /* 4: subw */
+    var44.i = var43.i - var42.i;
+    /* 6: mulswl */
+    var45.i = var44.i * var39.i;
+    /* 8: addl */
+    var46.i = ((orc_uint32) var45.i) + ((orc_uint32) var40.i);
+    /* 9: shrsl */
+    var47.i = var46.i >> 12;
+    /* 10: convlw */
+    var48.i = var47.i;
+    /* 11: addw */
+    var49.i = var48.i + var42.i;
+    /* 12: convsuswb */
+    var41 = ORC_CLAMP_UB (var49.i);
+    /* 13: storeb */
+    ptr0[i] = var41;
+  }
+
+}
+
+void
+video_orc_resample_v_2tap_u8 (guint8 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, int p1,
+    int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 28, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 114, 101, 115,
+        97, 109, 112, 108, 101, 95, 118, 95, 50, 116, 97, 112, 95, 117, 56, 11,
+        1, 1, 12, 1, 1, 12, 1, 1, 14, 4, 255, 15, 0, 0, 14, 4,
+        12, 0, 0, 0, 16, 2, 20, 1, 20, 2, 20, 2, 20, 4, 20, 4,
+        150, 33, 4, 150, 34, 5, 98, 34, 34, 33, 176, 36, 34, 24, 103, 36,
+        36, 16, 125, 36, 36, 17, 163, 34, 36, 70, 34, 34, 33, 160, 0, 34,
+        2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_resample_v_2tap_u8);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "video_orc_resample_v_2tap_u8");
+      orc_program_set_backup_function (p, _backup_video_orc_resample_v_2tap_u8);
+      orc_program_add_destination (p, 1, "d1");
+      orc_program_add_source (p, 1, "s1");
+      orc_program_add_source (p, 1, "s2");
+      orc_program_add_constant (p, 4, 0x00000fff, "c1");
+      orc_program_add_constant (p, 4, 0x0000000c, "c2");
+      orc_program_add_parameter (p, 2, "p1");
+      orc_program_add_temporary (p, 1, "t1");
+      orc_program_add_temporary (p, 2, "t2");
+      orc_program_add_temporary (p, 2, "t3");
+      orc_program_add_temporary (p, 4, "t4");
+      orc_program_add_temporary (p, 4, "t5");
+
+      orc_program_append_2 (p, "convubw", 0, ORC_VAR_T2, ORC_VAR_S1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convubw", 0, ORC_VAR_T3, ORC_VAR_S2, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "subw", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_T2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mulswl", 0, ORC_VAR_T5, ORC_VAR_T3, ORC_VAR_P1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addl", 0, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_C1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shrsl", 0, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_C2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convlw", 0, ORC_VAR_T3, ORC_VAR_T5, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addw", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_T2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convsuswb", 0, ORC_VAR_D1, ORC_VAR_T3,
+          ORC_VAR_D1, ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->arrays[ORC_VAR_S2] = (void *) s2;
+  ex->params[ORC_VAR_P1] = p1;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_resample_v_4tap_u8_lq */
+#ifdef DISABLE_ORC
+void
+video_orc_resample_v_4tap_u8_lq (guint8 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
+    const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, int p1,
+    int p2, int p3, int p4, int n)
+{
+  int i;
+  orc_int8 *ORC_RESTRICT ptr0;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  const orc_int8 *ORC_RESTRICT ptr5;
+  const orc_int8 *ORC_RESTRICT ptr6;
+  const orc_int8 *ORC_RESTRICT ptr7;
+  orc_int8 var34;
+  orc_union16 var35;
+  orc_int8 var36;
+  orc_union16 var37;
+  orc_int8 var38;
+  orc_union16 var39;
+  orc_int8 var40;
+  orc_union16 var41;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var42;
+#else
+  orc_union16 var42;
+#endif
+  orc_int8 var43;
+  orc_union16 var44;
+  orc_union16 var45;
+  orc_union16 var46;
+  orc_union16 var47;
+  orc_union16 var48;
+  orc_union16 var49;
+  orc_union16 var50;
+  orc_union16 var51;
+  orc_union16 var52;
+  orc_union16 var53;
+  orc_union16 var54;
+  orc_union16 var55;
+  orc_union16 var56;
+
+  ptr0 = (orc_int8 *) d1;
+  ptr4 = (orc_int8 *) s1;
+  ptr5 = (orc_int8 *) s2;
+  ptr6 = (orc_int8 *) s3;
+  ptr7 = (orc_int8 *) s4;
+
+  /* 2: loadpw */
+  var35.i = p1;
+  /* 6: loadpw */
+  var37.i = p2;
+  /* 11: loadpw */
+  var39.i = p3;
+  /* 16: loadpw */
+  var41.i = p4;
+  /* 19: loadpw */
+  var42.i = (int) 0x00000020;   /* 32 or 1.58101e-322f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadb */
+    var34 = ptr4[i];
+    /* 1: convubw */
+    var44.i = (orc_uint8) var34;
+    /* 3: mullw */
+    var45.i = (var44.i * var35.i) & 0xffff;
+    /* 4: loadb */
+    var36 = ptr5[i];
+    /* 5: convubw */
+    var46.i = (orc_uint8) var36;
+    /* 7: mullw */
+    var47.i = (var46.i * var37.i) & 0xffff;
+    /* 8: addw */
+    var48.i = var45.i + var47.i;
+    /* 9: loadb */
+    var38 = ptr6[i];
+    /* 10: convubw */
+    var49.i = (orc_uint8) var38;
+    /* 12: mullw */
+    var50.i = (var49.i * var39.i) & 0xffff;
+    /* 13: addw */
+    var51.i = var48.i + var50.i;
+    /* 14: loadb */
+    var40 = ptr7[i];
+    /* 15: convubw */
+    var52.i = (orc_uint8) var40;
+    /* 17: mullw */
+    var53.i = (var52.i * var41.i) & 0xffff;
+    /* 18: addw */
+    var54.i = var51.i + var53.i;
+    /* 20: addw */
+    var55.i = var54.i + var42.i;
+    /* 21: shrsw */
+    var56.i = var55.i >> 6;
+    /* 22: convsuswb */
+    var43 = ORC_CLAMP_UB (var56.i);
+    /* 23: storeb */
+    ptr0[i] = var43;
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_resample_v_4tap_u8_lq (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_int8 *ORC_RESTRICT ptr0;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  const orc_int8 *ORC_RESTRICT ptr5;
+  const orc_int8 *ORC_RESTRICT ptr6;
+  const orc_int8 *ORC_RESTRICT ptr7;
+  orc_int8 var34;
+  orc_union16 var35;
+  orc_int8 var36;
+  orc_union16 var37;
+  orc_int8 var38;
+  orc_union16 var39;
+  orc_int8 var40;
+  orc_union16 var41;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var42;
+#else
+  orc_union16 var42;
+#endif
+  orc_int8 var43;
+  orc_union16 var44;
+  orc_union16 var45;
+  orc_union16 var46;
+  orc_union16 var47;
+  orc_union16 var48;
+  orc_union16 var49;
+  orc_union16 var50;
+  orc_union16 var51;
+  orc_union16 var52;
+  orc_union16 var53;
+  orc_union16 var54;
+  orc_union16 var55;
+  orc_union16 var56;
+
+  ptr0 = (orc_int8 *) ex->arrays[0];
+  ptr4 = (orc_int8 *) ex->arrays[4];
+  ptr5 = (orc_int8 *) ex->arrays[5];
+  ptr6 = (orc_int8 *) ex->arrays[6];
+  ptr7 = (orc_int8 *) ex->arrays[7];
+
+  /* 2: loadpw */
+  var35.i = ex->params[24];
+  /* 6: loadpw */
+  var37.i = ex->params[25];
+  /* 11: loadpw */
+  var39.i = ex->params[26];
+  /* 16: loadpw */
+  var41.i = ex->params[27];
+  /* 19: loadpw */
+  var42.i = (int) 0x00000020;   /* 32 or 1.58101e-322f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadb */
+    var34 = ptr4[i];
+    /* 1: convubw */
+    var44.i = (orc_uint8) var34;
+    /* 3: mullw */
+    var45.i = (var44.i * var35.i) & 0xffff;
+    /* 4: loadb */
+    var36 = ptr5[i];
+    /* 5: convubw */
+    var46.i = (orc_uint8) var36;
+    /* 7: mullw */
+    var47.i = (var46.i * var37.i) & 0xffff;
+    /* 8: addw */
+    var48.i = var45.i + var47.i;
+    /* 9: loadb */
+    var38 = ptr6[i];
+    /* 10: convubw */
+    var49.i = (orc_uint8) var38;
+    /* 12: mullw */
+    var50.i = (var49.i * var39.i) & 0xffff;
+    /* 13: addw */
+    var51.i = var48.i + var50.i;
+    /* 14: loadb */
+    var40 = ptr7[i];
+    /* 15: convubw */
+    var52.i = (orc_uint8) var40;
+    /* 17: mullw */
+    var53.i = (var52.i * var41.i) & 0xffff;
+    /* 18: addw */
+    var54.i = var51.i + var53.i;
+    /* 20: addw */
+    var55.i = var54.i + var42.i;
+    /* 21: shrsw */
+    var56.i = var55.i >> 6;
+    /* 22: convsuswb */
+    var43 = ORC_CLAMP_UB (var56.i);
+    /* 23: storeb */
+    ptr0[i] = var43;
+  }
+
+}
+
+void
+video_orc_resample_v_4tap_u8_lq (guint8 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
+    const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, int p1,
+    int p2, int p3, int p4, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 31, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 114, 101, 115,
+        97, 109, 112, 108, 101, 95, 118, 95, 52, 116, 97, 112, 95, 117, 56, 95,
+        108, 113, 11, 1, 1, 12, 1, 1, 12, 1, 1, 12, 1, 1, 12, 1,
+        1, 14, 2, 32, 0, 0, 0, 14, 2, 6, 0, 0, 0, 16, 2, 16,
+        2, 16, 2, 16, 2, 20, 2, 20, 2, 150, 32, 4, 89, 32, 32, 24,
+        150, 33, 5, 89, 33, 33, 25, 70, 32, 32, 33, 150, 33, 6, 89, 33,
+        33, 26, 70, 32, 32, 33, 150, 33, 7, 89, 33, 33, 27, 70, 32, 32,
+        33, 70, 32, 32, 16, 94, 32, 32, 17, 160, 0, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_orc_resample_v_4tap_u8_lq);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "video_orc_resample_v_4tap_u8_lq");
+      orc_program_set_backup_function (p,
+          _backup_video_orc_resample_v_4tap_u8_lq);
+      orc_program_add_destination (p, 1, "d1");
+      orc_program_add_source (p, 1, "s1");
+      orc_program_add_source (p, 1, "s2");
+      orc_program_add_source (p, 1, "s3");
+      orc_program_add_source (p, 1, "s4");
+      orc_program_add_constant (p, 2, 0x00000020, "c1");
+      orc_program_add_constant (p, 2, 0x00000006, "c2");
+      orc_program_add_parameter (p, 2, "p1");
+      orc_program_add_parameter (p, 2, "p2");
+      orc_program_add_parameter (p, 2, "p3");
+      orc_program_add_parameter (p, 2, "p4");
+      orc_program_add_temporary (p, 2, "t1");
+      orc_program_add_temporary (p, 2, "t2");
+
+      orc_program_append_2 (p, "convubw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_P1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convubw", 0, ORC_VAR_T2, ORC_VAR_S2, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mullw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_P2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convubw", 0, ORC_VAR_T2, ORC_VAR_S3, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mullw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_P3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convubw", 0, ORC_VAR_T2, ORC_VAR_S4, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mullw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_P4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convsuswb", 0, ORC_VAR_D1, ORC_VAR_T1,
+          ORC_VAR_D1, ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->arrays[ORC_VAR_S2] = (void *) s2;
+  ex->arrays[ORC_VAR_S3] = (void *) s3;
+  ex->arrays[ORC_VAR_S4] = (void *) s4;
+  ex->params[ORC_VAR_P1] = p1;
+  ex->params[ORC_VAR_P2] = p2;
+  ex->params[ORC_VAR_P3] = p3;
+  ex->params[ORC_VAR_P4] = p4;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_resample_v_4tap_u8 */
+#ifdef DISABLE_ORC
+void
+video_orc_resample_v_4tap_u8 (guint8 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
+    const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, int p1,
+    int p2, int p3, int p4, int n)
+{
+  int i;
+  orc_int8 *ORC_RESTRICT ptr0;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  const orc_int8 *ORC_RESTRICT ptr5;
+  const orc_int8 *ORC_RESTRICT ptr6;
+  const orc_int8 *ORC_RESTRICT ptr7;
+  orc_int8 var36;
+  orc_union16 var37;
+  orc_int8 var38;
+  orc_union16 var39;
+  orc_int8 var40;
+  orc_union16 var41;
+  orc_int8 var42;
+  orc_union16 var43;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var44;
+#else
+  orc_union32 var44;
+#endif
+  orc_int8 var45;
+  orc_union16 var46;
+  orc_union32 var47;
+  orc_union16 var48;
+  orc_union32 var49;
+  orc_union32 var50;
+  orc_union16 var51;
+  orc_union32 var52;
+  orc_union32 var53;
+  orc_union16 var54;
+  orc_union32 var55;
+  orc_union32 var56;
+  orc_union32 var57;
+  orc_union32 var58;
+  orc_union16 var59;
+
+  ptr0 = (orc_int8 *) d1;
+  ptr4 = (orc_int8 *) s1;
+  ptr5 = (orc_int8 *) s2;
+  ptr6 = (orc_int8 *) s3;
+  ptr7 = (orc_int8 *) s4;
+
+  /* 2: loadpw */
+  var37.i = p1;
+  /* 6: loadpw */
+  var39.i = p2;
+  /* 11: loadpw */
+  var41.i = p3;
+  /* 16: loadpw */
+  var43.i = p4;
+  /* 19: loadpl */
+  var44.i = (int) 0x00000fff;   /* 4095 or 2.0232e-320f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadb */
+    var36 = ptr4[i];
+    /* 1: convubw */
+    var46.i = (orc_uint8) var36;
+    /* 3: mulswl */
+    var47.i = var46.i * var37.i;
+    /* 4: loadb */
+    var38 = ptr5[i];
+    /* 5: convubw */
+    var48.i = (orc_uint8) var38;
+    /* 7: mulswl */
+    var49.i = var48.i * var39.i;
+    /* 8: addl */
+    var50.i = ((orc_uint32) var47.i) + ((orc_uint32) var49.i);
+    /* 9: loadb */
+    var40 = ptr6[i];
+    /* 10: convubw */
+    var51.i = (orc_uint8) var40;
+    /* 12: mulswl */
+    var52.i = var51.i * var41.i;
+    /* 13: addl */
+    var53.i = ((orc_uint32) var50.i) + ((orc_uint32) var52.i);
+    /* 14: loadb */
+    var42 = ptr7[i];
+    /* 15: convubw */
+    var54.i = (orc_uint8) var42;
+    /* 17: mulswl */
+    var55.i = var54.i * var43.i;
+    /* 18: addl */
+    var56.i = ((orc_uint32) var53.i) + ((orc_uint32) var55.i);
+    /* 20: addl */
+    var57.i = ((orc_uint32) var56.i) + ((orc_uint32) var44.i);
+    /* 21: shrsl */
+    var58.i = var57.i >> 12;
+    /* 22: convsuslw */
+    var59.i = ORC_CLAMP_UW (var58.i);
+    /* 23: convsuswb */
+    var45 = ORC_CLAMP_UB (var59.i);
+    /* 24: storeb */
+    ptr0[i] = var45;
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_resample_v_4tap_u8 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_int8 *ORC_RESTRICT ptr0;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  const orc_int8 *ORC_RESTRICT ptr5;
+  const orc_int8 *ORC_RESTRICT ptr6;
+  const orc_int8 *ORC_RESTRICT ptr7;
+  orc_int8 var36;
+  orc_union16 var37;
+  orc_int8 var38;
+  orc_union16 var39;
+  orc_int8 var40;
+  orc_union16 var41;
+  orc_int8 var42;
+  orc_union16 var43;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var44;
+#else
+  orc_union32 var44;
+#endif
+  orc_int8 var45;
+  orc_union16 var46;
+  orc_union32 var47;
+  orc_union16 var48;
+  orc_union32 var49;
+  orc_union32 var50;
+  orc_union16 var51;
+  orc_union32 var52;
+  orc_union32 var53;
+  orc_union16 var54;
+  orc_union32 var55;
+  orc_union32 var56;
+  orc_union32 var57;
+  orc_union32 var58;
+  orc_union16 var59;
+
+  ptr0 = (orc_int8 *) ex->arrays[0];
+  ptr4 = (orc_int8 *) ex->arrays[4];
+  ptr5 = (orc_int8 *) ex->arrays[5];
+  ptr6 = (orc_int8 *) ex->arrays[6];
+  ptr7 = (orc_int8 *) ex->arrays[7];
+
+  /* 2: loadpw */
+  var37.i = ex->params[24];
+  /* 6: loadpw */
+  var39.i = ex->params[25];
+  /* 11: loadpw */
+  var41.i = ex->params[26];
+  /* 16: loadpw */
+  var43.i = ex->params[27];
+  /* 19: loadpl */
+  var44.i = (int) 0x00000fff;   /* 4095 or 2.0232e-320f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadb */
+    var36 = ptr4[i];
+    /* 1: convubw */
+    var46.i = (orc_uint8) var36;
+    /* 3: mulswl */
+    var47.i = var46.i * var37.i;
+    /* 4: loadb */
+    var38 = ptr5[i];
+    /* 5: convubw */
+    var48.i = (orc_uint8) var38;
+    /* 7: mulswl */
+    var49.i = var48.i * var39.i;
+    /* 8: addl */
+    var50.i = ((orc_uint32) var47.i) + ((orc_uint32) var49.i);
+    /* 9: loadb */
+    var40 = ptr6[i];
+    /* 10: convubw */
+    var51.i = (orc_uint8) var40;
+    /* 12: mulswl */
+    var52.i = var51.i * var41.i;
+    /* 13: addl */
+    var53.i = ((orc_uint32) var50.i) + ((orc_uint32) var52.i);
+    /* 14: loadb */
+    var42 = ptr7[i];
+    /* 15: convubw */
+    var54.i = (orc_uint8) var42;
+    /* 17: mulswl */
+    var55.i = var54.i * var43.i;
+    /* 18: addl */
+    var56.i = ((orc_uint32) var53.i) + ((orc_uint32) var55.i);
+    /* 20: addl */
+    var57.i = ((orc_uint32) var56.i) + ((orc_uint32) var44.i);
+    /* 21: shrsl */
+    var58.i = var57.i >> 12;
+    /* 22: convsuslw */
+    var59.i = ORC_CLAMP_UW (var58.i);
+    /* 23: convsuswb */
+    var45 = ORC_CLAMP_UB (var59.i);
+    /* 24: storeb */
+    ptr0[i] = var45;
+  }
+
+}
+
+void
+video_orc_resample_v_4tap_u8 (guint8 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
+    const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, int p1,
+    int p2, int p3, int p4, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 28, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 114, 101, 115,
+        97, 109, 112, 108, 101, 95, 118, 95, 52, 116, 97, 112, 95, 117, 56, 11,
+        1, 1, 12, 1, 1, 12, 1, 1, 12, 1, 1, 12, 1, 1, 14, 4,
+        255, 15, 0, 0, 14, 4, 12, 0, 0, 0, 16, 2, 16, 2, 16, 2,
+        16, 2, 20, 2, 20, 2, 20, 4, 20, 4, 150, 32, 4, 176, 34, 32,
+        24, 150, 33, 5, 176, 35, 33, 25, 103, 34, 34, 35, 150, 33, 6, 176,
+        35, 33, 26, 103, 34, 34, 35, 150, 33, 7, 176, 35, 33, 27, 103, 34,
+        34, 35, 103, 34, 34, 16, 125, 34, 34, 17, 166, 32, 34, 160, 0, 32,
+        2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_resample_v_4tap_u8);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "video_orc_resample_v_4tap_u8");
+      orc_program_set_backup_function (p, _backup_video_orc_resample_v_4tap_u8);
+      orc_program_add_destination (p, 1, "d1");
+      orc_program_add_source (p, 1, "s1");
+      orc_program_add_source (p, 1, "s2");
+      orc_program_add_source (p, 1, "s3");
+      orc_program_add_source (p, 1, "s4");
+      orc_program_add_constant (p, 4, 0x00000fff, "c1");
+      orc_program_add_constant (p, 4, 0x0000000c, "c2");
+      orc_program_add_parameter (p, 2, "p1");
+      orc_program_add_parameter (p, 2, "p2");
+      orc_program_add_parameter (p, 2, "p3");
+      orc_program_add_parameter (p, 2, "p4");
+      orc_program_add_temporary (p, 2, "t1");
+      orc_program_add_temporary (p, 2, "t2");
+      orc_program_add_temporary (p, 4, "t3");
+      orc_program_add_temporary (p, 4, "t4");
+
+      orc_program_append_2 (p, "convubw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mulswl", 0, ORC_VAR_T3, ORC_VAR_T1, ORC_VAR_P1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convubw", 0, ORC_VAR_T2, ORC_VAR_S2, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mulswl", 0, ORC_VAR_T4, ORC_VAR_T2, ORC_VAR_P2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addl", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_T4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convubw", 0, ORC_VAR_T2, ORC_VAR_S3, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mulswl", 0, ORC_VAR_T4, ORC_VAR_T2, ORC_VAR_P3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addl", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_T4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convubw", 0, ORC_VAR_T2, ORC_VAR_S4, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mulswl", 0, ORC_VAR_T4, ORC_VAR_T2, ORC_VAR_P4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addl", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_T4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addl", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_C1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shrsl", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_C2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convsuslw", 0, ORC_VAR_T1, ORC_VAR_T3,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "convsuswb", 0, ORC_VAR_D1, ORC_VAR_T1,
+          ORC_VAR_D1, ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->arrays[ORC_VAR_S2] = (void *) s2;
+  ex->arrays[ORC_VAR_S3] = (void *) s3;
+  ex->arrays[ORC_VAR_S4] = (void *) s4;
+  ex->params[ORC_VAR_P1] = p1;
+  ex->params[ORC_VAR_P2] = p2;
+  ex->params[ORC_VAR_P3] = p3;
+  ex->params[ORC_VAR_P4] = p4;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_resample_h_multaps_u8 */
+#ifdef DISABLE_ORC
+void
+video_orc_resample_h_multaps_u8 (gint32 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, const gint16 * ORC_RESTRICT s2, int n)
+{
+  int i;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  const orc_union16 *ORC_RESTRICT ptr5;
+  orc_int8 var33;
+  orc_union16 var34;
+  orc_union32 var35;
+  orc_union16 var36;
+
+  ptr0 = (orc_union32 *) d1;
+  ptr4 = (orc_int8 *) s1;
+  ptr5 = (orc_union16 *) s2;
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadb */
+    var33 = ptr4[i];
+    /* 1: convubw */
+    var36.i = (orc_uint8) var33;
+    /* 2: loadw */
+    var34 = ptr5[i];
+    /* 3: mulswl */
+    var35.i = var36.i * var34.i;
+    /* 4: storel */
+    ptr0[i] = var35;
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_resample_h_multaps_u8 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  const orc_union16 *ORC_RESTRICT ptr5;
+  orc_int8 var33;
+  orc_union16 var34;
+  orc_union32 var35;
+  orc_union16 var36;
+
+  ptr0 = (orc_union32 *) ex->arrays[0];
+  ptr4 = (orc_int8 *) ex->arrays[4];
+  ptr5 = (orc_union16 *) ex->arrays[5];
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadb */
+    var33 = ptr4[i];
+    /* 1: convubw */
+    var36.i = (orc_uint8) var33;
+    /* 2: loadw */
+    var34 = ptr5[i];
+    /* 3: mulswl */
+    var35.i = var36.i * var34.i;
+    /* 4: storel */
+    ptr0[i] = var35;
+  }
+
+}
+
+void
+video_orc_resample_h_multaps_u8 (gint32 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, const gint16 * ORC_RESTRICT s2, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 31, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 114, 101, 115,
+        97, 109, 112, 108, 101, 95, 104, 95, 109, 117, 108, 116, 97, 112, 115,
+            95,
+        117, 56, 11, 4, 4, 12, 1, 1, 12, 2, 2, 20, 2, 150, 32, 4,
+        176, 0, 32, 5, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_orc_resample_h_multaps_u8);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "video_orc_resample_h_multaps_u8");
+      orc_program_set_backup_function (p,
+          _backup_video_orc_resample_h_multaps_u8);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 1, "s1");
+      orc_program_add_source (p, 2, "s2");
+      orc_program_add_temporary (p, 2, "t1");
+
+      orc_program_append_2 (p, "convubw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mulswl", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_S2,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->arrays[ORC_VAR_S2] = (void *) s2;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_resample_h_muladdtaps_u8 */
+#ifdef DISABLE_ORC
+void
+video_orc_resample_h_muladdtaps_u8 (gint32 * ORC_RESTRICT d1, int d1_stride,
+    const guint8 * ORC_RESTRICT s1, int s1_stride,
+    const gint16 * ORC_RESTRICT s2, int s2_stride, int n, int m)
+{
+  int i;
+  int j;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  const orc_union16 *ORC_RESTRICT ptr5;
+  orc_int8 var34;
+  orc_union16 var35;
+  orc_union32 var36;
+  orc_union32 var37;
+  orc_union16 var38;
+  orc_union32 var39;
+
+  for (j = 0; j < m; j++) {
+    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
+    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
+    ptr5 = ORC_PTR_OFFSET (s2, s2_stride * j);
+
+
+    for (i = 0; i < n; i++) {
+      /* 0: loadb */
+      var34 = ptr4[i];
+      /* 1: convubw */
+      var38.i = (orc_uint8) var34;
+      /* 2: loadw */
+      var35 = ptr5[i];
+      /* 3: mulswl */
+      var39.i = var38.i * var35.i;
+      /* 4: loadl */
+      var36 = ptr0[i];
+      /* 5: addl */
+      var37.i = ((orc_uint32) var36.i) + ((orc_uint32) var39.i);
+      /* 6: storel */
+      ptr0[i] = var37;
+    }
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_resample_h_muladdtaps_u8 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int j;
+  int n = ex->n;
+  int m = ex->params[ORC_VAR_A1];
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  const orc_union16 *ORC_RESTRICT ptr5;
+  orc_int8 var34;
+  orc_union16 var35;
+  orc_union32 var36;
+  orc_union32 var37;
+  orc_union16 var38;
+  orc_union32 var39;
+
+  for (j = 0; j < m; j++) {
+    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
+    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
+    ptr5 = ORC_PTR_OFFSET (ex->arrays[5], ex->params[5] * j);
+
+
+    for (i = 0; i < n; i++) {
+      /* 0: loadb */
+      var34 = ptr4[i];
+      /* 1: convubw */
+      var38.i = (orc_uint8) var34;
+      /* 2: loadw */
+      var35 = ptr5[i];
+      /* 3: mulswl */
+      var39.i = var38.i * var35.i;
+      /* 4: loadl */
+      var36 = ptr0[i];
+      /* 5: addl */
+      var37.i = ((orc_uint32) var36.i) + ((orc_uint32) var39.i);
+      /* 6: storel */
+      ptr0[i] = var37;
+    }
+  }
+
+}
+
+void
+video_orc_resample_h_muladdtaps_u8 (gint32 * ORC_RESTRICT d1, int d1_stride,
+    const guint8 * ORC_RESTRICT s1, int s1_stride,
+    const gint16 * ORC_RESTRICT s2, int s2_stride, int n, int m)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 7, 9, 34, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 114, 101,
+        115, 97, 109, 112, 108, 101, 95, 104, 95, 109, 117, 108, 97, 100, 100,
+            116,
+        97, 112, 115, 95, 117, 56, 11, 4, 4, 12, 1, 1, 12, 2, 2, 20,
+        2, 20, 4, 150, 32, 4, 176, 33, 32, 5, 103, 0, 0, 33, 2, 0,
+
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_orc_resample_h_muladdtaps_u8);
+#else
+      p = orc_program_new ();
+      orc_program_set_2d (p);
+      orc_program_set_name (p, "video_orc_resample_h_muladdtaps_u8");
+      orc_program_set_backup_function (p,
+          _backup_video_orc_resample_h_muladdtaps_u8);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 1, "s1");
+      orc_program_add_source (p, 2, "s2");
+      orc_program_add_temporary (p, 2, "t1");
+      orc_program_add_temporary (p, 4, "t2");
+
+      orc_program_append_2 (p, "convubw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mulswl", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_S2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addl", 0, ORC_VAR_D1, ORC_VAR_D1, ORC_VAR_T2,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ORC_EXECUTOR_M (ex) = m;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->params[ORC_VAR_D1] = d1_stride;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->params[ORC_VAR_S1] = s1_stride;
+  ex->arrays[ORC_VAR_S2] = (void *) s2;
+  ex->params[ORC_VAR_S2] = s2_stride;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_resample_scaletaps_u8 */
+#ifdef DISABLE_ORC
+void
+video_orc_resample_scaletaps_u8 (guint8 * ORC_RESTRICT d1,
+    const gint32 * ORC_RESTRICT s1, int n)
+{
+  int i;
+  orc_int8 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var34;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var35;
+#else
+  orc_union32 var35;
+#endif
+  orc_int8 var36;
+  orc_union32 var37;
+  orc_union32 var38;
+  orc_union16 var39;
+
+  ptr0 = (orc_int8 *) d1;
+  ptr4 = (orc_union32 *) s1;
+
+  /* 1: loadpl */
+  var35.i = (int) 0x00000fff;   /* 4095 or 2.0232e-320f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var34 = ptr4[i];
+    /* 2: addl */
+    var37.i = ((orc_uint32) var34.i) + ((orc_uint32) var35.i);
+    /* 3: shrsl */
+    var38.i = var37.i >> 12;
+    /* 4: convsuslw */
+    var39.i = ORC_CLAMP_UW (var38.i);
+    /* 5: convsuswb */
+    var36 = ORC_CLAMP_UB (var39.i);
+    /* 6: storeb */
+    ptr0[i] = var36;
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_resample_scaletaps_u8 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_int8 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var34;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var35;
+#else
+  orc_union32 var35;
+#endif
+  orc_int8 var36;
+  orc_union32 var37;
+  orc_union32 var38;
+  orc_union16 var39;
+
+  ptr0 = (orc_int8 *) ex->arrays[0];
+  ptr4 = (orc_union32 *) ex->arrays[4];
+
+  /* 1: loadpl */
+  var35.i = (int) 0x00000fff;   /* 4095 or 2.0232e-320f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var34 = ptr4[i];
+    /* 2: addl */
+    var37.i = ((orc_uint32) var34.i) + ((orc_uint32) var35.i);
+    /* 3: shrsl */
+    var38.i = var37.i >> 12;
+    /* 4: convsuslw */
+    var39.i = ORC_CLAMP_UW (var38.i);
+    /* 5: convsuswb */
+    var36 = ORC_CLAMP_UB (var39.i);
+    /* 6: storeb */
+    ptr0[i] = var36;
+  }
+
+}
+
+void
+video_orc_resample_scaletaps_u8 (guint8 * ORC_RESTRICT d1,
+    const gint32 * ORC_RESTRICT s1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 31, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 114, 101, 115,
+        97, 109, 112, 108, 101, 95, 115, 99, 97, 108, 101, 116, 97, 112, 115,
+            95,
+        117, 56, 11, 1, 1, 12, 4, 4, 14, 4, 255, 15, 0, 0, 14, 4,
+        12, 0, 0, 0, 20, 2, 20, 4, 103, 33, 4, 16, 125, 33, 33, 17,
+        166, 32, 33, 160, 0, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_orc_resample_scaletaps_u8);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "video_orc_resample_scaletaps_u8");
+      orc_program_set_backup_function (p,
+          _backup_video_orc_resample_scaletaps_u8);
+      orc_program_add_destination (p, 1, "d1");
+      orc_program_add_source (p, 4, "s1");
+      orc_program_add_constant (p, 4, 0x00000fff, "c1");
+      orc_program_add_constant (p, 4, 0x0000000c, "c2");
+      orc_program_add_temporary (p, 2, "t1");
+      orc_program_add_temporary (p, 4, "t2");
+
+      orc_program_append_2 (p, "addl", 0, ORC_VAR_T2, ORC_VAR_S1, ORC_VAR_C1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shrsl", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convsuslw", 0, ORC_VAR_T1, ORC_VAR_T2,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "convsuswb", 0, ORC_VAR_D1, ORC_VAR_T1,
+          ORC_VAR_D1, ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_resample_h_multaps_u8_lq */
+#ifdef DISABLE_ORC
+void
+video_orc_resample_h_multaps_u8_lq (gint16 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, const gint16 * ORC_RESTRICT s2, int n)
+{
+  int i;
+  orc_union16 *ORC_RESTRICT ptr0;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  const orc_union16 *ORC_RESTRICT ptr5;
+  orc_int8 var33;
+  orc_union16 var34;
+  orc_union16 var35;
+  orc_union16 var36;
+
+  ptr0 = (orc_union16 *) d1;
+  ptr4 = (orc_int8 *) s1;
+  ptr5 = (orc_union16 *) s2;
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadb */
+    var33 = ptr4[i];
+    /* 1: convubw */
+    var36.i = (orc_uint8) var33;
+    /* 2: loadw */
+    var34 = ptr5[i];
+    /* 3: mullw */
+    var35.i = (var36.i * var34.i) & 0xffff;
+    /* 4: storew */
+    ptr0[i] = var35;
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_resample_h_multaps_u8_lq (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union16 *ORC_RESTRICT ptr0;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  const orc_union16 *ORC_RESTRICT ptr5;
+  orc_int8 var33;
+  orc_union16 var34;
+  orc_union16 var35;
+  orc_union16 var36;
+
+  ptr0 = (orc_union16 *) ex->arrays[0];
+  ptr4 = (orc_int8 *) ex->arrays[4];
+  ptr5 = (orc_union16 *) ex->arrays[5];
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadb */
+    var33 = ptr4[i];
+    /* 1: convubw */
+    var36.i = (orc_uint8) var33;
+    /* 2: loadw */
+    var34 = ptr5[i];
+    /* 3: mullw */
+    var35.i = (var36.i * var34.i) & 0xffff;
+    /* 4: storew */
+    ptr0[i] = var35;
+  }
+
+}
+
+void
+video_orc_resample_h_multaps_u8_lq (gint16 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, const gint16 * ORC_RESTRICT s2, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 34, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 114, 101, 115,
+        97, 109, 112, 108, 101, 95, 104, 95, 109, 117, 108, 116, 97, 112, 115,
+            95,
+        117, 56, 95, 108, 113, 11, 2, 2, 12, 1, 1, 12, 2, 2, 20, 2,
+        150, 32, 4, 89, 0, 32, 5, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_orc_resample_h_multaps_u8_lq);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "video_orc_resample_h_multaps_u8_lq");
+      orc_program_set_backup_function (p,
+          _backup_video_orc_resample_h_multaps_u8_lq);
+      orc_program_add_destination (p, 2, "d1");
+      orc_program_add_source (p, 1, "s1");
+      orc_program_add_source (p, 2, "s2");
+      orc_program_add_temporary (p, 2, "t1");
+
+      orc_program_append_2 (p, "convubw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mullw", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_S2,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->arrays[ORC_VAR_S2] = (void *) s2;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_resample_h_muladdtaps_u8_lq */
+#ifdef DISABLE_ORC
+void
+video_orc_resample_h_muladdtaps_u8_lq (gint16 * ORC_RESTRICT d1, int d1_stride,
+    const guint8 * ORC_RESTRICT s1, int s1_stride,
+    const gint16 * ORC_RESTRICT s2, int s2_stride, int n, int m)
+{
+  int i;
+  int j;
+  orc_union16 *ORC_RESTRICT ptr0;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  const orc_union16 *ORC_RESTRICT ptr5;
+  orc_int8 var33;
+  orc_union16 var34;
+  orc_union16 var35;
+  orc_union16 var36;
+  orc_union16 var37;
+  orc_union16 var38;
+
+  for (j = 0; j < m; j++) {
+    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
+    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
+    ptr5 = ORC_PTR_OFFSET (s2, s2_stride * j);
+
+
+    for (i = 0; i < n; i++) {
+      /* 0: loadb */
+      var33 = ptr4[i];
+      /* 1: convubw */
+      var37.i = (orc_uint8) var33;
+      /* 2: loadw */
+      var34 = ptr5[i];
+      /* 3: mullw */
+      var38.i = (var37.i * var34.i) & 0xffff;
+      /* 4: loadw */
+      var35 = ptr0[i];
+      /* 5: addw */
+      var36.i = var35.i + var38.i;
+      /* 6: storew */
+      ptr0[i] = var36;
+    }
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_resample_h_muladdtaps_u8_lq (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int j;
+  int n = ex->n;
+  int m = ex->params[ORC_VAR_A1];
+  orc_union16 *ORC_RESTRICT ptr0;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  const orc_union16 *ORC_RESTRICT ptr5;
+  orc_int8 var33;
+  orc_union16 var34;
+  orc_union16 var35;
+  orc_union16 var36;
+  orc_union16 var37;
+  orc_union16 var38;
+
+  for (j = 0; j < m; j++) {
+    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
+    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
+    ptr5 = ORC_PTR_OFFSET (ex->arrays[5], ex->params[5] * j);
+
+
+    for (i = 0; i < n; i++) {
+      /* 0: loadb */
+      var33 = ptr4[i];
+      /* 1: convubw */
+      var37.i = (orc_uint8) var33;
+      /* 2: loadw */
+      var34 = ptr5[i];
+      /* 3: mullw */
+      var38.i = (var37.i * var34.i) & 0xffff;
+      /* 4: loadw */
+      var35 = ptr0[i];
+      /* 5: addw */
+      var36.i = var35.i + var38.i;
+      /* 6: storew */
+      ptr0[i] = var36;
+    }
+  }
+
+}
+
+void
+video_orc_resample_h_muladdtaps_u8_lq (gint16 * ORC_RESTRICT d1, int d1_stride,
+    const guint8 * ORC_RESTRICT s1, int s1_stride,
+    const gint16 * ORC_RESTRICT s2, int s2_stride, int n, int m)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 7, 9, 37, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 114, 101,
+        115, 97, 109, 112, 108, 101, 95, 104, 95, 109, 117, 108, 97, 100, 100,
+            116,
+        97, 112, 115, 95, 117, 56, 95, 108, 113, 11, 2, 2, 12, 1, 1, 12,
+        2, 2, 20, 2, 150, 32, 4, 89, 32, 32, 5, 70, 0, 0, 32, 2,
+        0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_orc_resample_h_muladdtaps_u8_lq);
+#else
+      p = orc_program_new ();
+      orc_program_set_2d (p);
+      orc_program_set_name (p, "video_orc_resample_h_muladdtaps_u8_lq");
+      orc_program_set_backup_function (p,
+          _backup_video_orc_resample_h_muladdtaps_u8_lq);
+      orc_program_add_destination (p, 2, "d1");
+      orc_program_add_source (p, 1, "s1");
+      orc_program_add_source (p, 2, "s2");
+      orc_program_add_temporary (p, 2, "t1");
+
+      orc_program_append_2 (p, "convubw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_S2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addw", 0, ORC_VAR_D1, ORC_VAR_D1, ORC_VAR_T1,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ORC_EXECUTOR_M (ex) = m;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->params[ORC_VAR_D1] = d1_stride;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->params[ORC_VAR_S1] = s1_stride;
+  ex->arrays[ORC_VAR_S2] = (void *) s2;
+  ex->params[ORC_VAR_S2] = s2_stride;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_resample_h_multaps3_u8_lq */
+#ifdef DISABLE_ORC
+void
+video_orc_resample_h_multaps3_u8_lq (gint16 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
+    const guint8 * ORC_RESTRICT s3, const gint16 * ORC_RESTRICT s4,
+    const gint16 * ORC_RESTRICT s5, const gint16 * ORC_RESTRICT s6, int n)
+{
+  int i;
+  orc_union16 *ORC_RESTRICT ptr0;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  const orc_int8 *ORC_RESTRICT ptr5;
+  const orc_int8 *ORC_RESTRICT ptr6;
+  const orc_union16 *ORC_RESTRICT ptr7;
+  const orc_union16 *ORC_RESTRICT ptr8;
+  const orc_union16 *ORC_RESTRICT ptr9;
+  orc_int8 var34;
+  orc_union16 var35;
+  orc_int8 var36;
+  orc_union16 var37;
+  orc_int8 var38;
+  orc_union16 var39;
+  orc_union16 var40;
+  orc_union16 var41;
+  orc_union16 var42;
+  orc_union16 var43;
+  orc_union16 var44;
+  orc_union16 var45;
+  orc_union16 var46;
+  orc_union16 var47;
+
+  ptr0 = (orc_union16 *) d1;
+  ptr4 = (orc_int8 *) s1;
+  ptr5 = (orc_int8 *) s2;
+  ptr6 = (orc_int8 *) s3;
+  ptr7 = (orc_union16 *) s4;
+  ptr8 = (orc_union16 *) s5;
+  ptr9 = (orc_union16 *) s6;
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadb */
+    var34 = ptr4[i];
+    /* 1: convubw */
+    var41.i = (orc_uint8) var34;
+    /* 2: loadw */
+    var35 = ptr7[i];
+    /* 3: mullw */
+    var42.i = (var41.i * var35.i) & 0xffff;
+    /* 4: loadb */
+    var36 = ptr5[i];
+    /* 5: convubw */
+    var43.i = (orc_uint8) var36;
+    /* 6: loadw */
+    var37 = ptr8[i];
+    /* 7: mullw */
+    var44.i = (var43.i * var37.i) & 0xffff;
+    /* 8: addw */
+    var45.i = var42.i + var44.i;
+    /* 9: loadb */
+    var38 = ptr6[i];
+    /* 10: convubw */
+    var46.i = (orc_uint8) var38;
+    /* 11: loadw */
+    var39 = ptr9[i];
+    /* 12: mullw */
+    var47.i = (var46.i * var39.i) & 0xffff;
+    /* 13: addw */
+    var40.i = var45.i + var47.i;
+    /* 14: storew */
+    ptr0[i] = var40;
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_resample_h_multaps3_u8_lq (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union16 *ORC_RESTRICT ptr0;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  const orc_int8 *ORC_RESTRICT ptr5;
+  const orc_int8 *ORC_RESTRICT ptr6;
+  const orc_union16 *ORC_RESTRICT ptr7;
+  const orc_union16 *ORC_RESTRICT ptr8;
+  const orc_union16 *ORC_RESTRICT ptr9;
+  orc_int8 var34;
+  orc_union16 var35;
+  orc_int8 var36;
+  orc_union16 var37;
+  orc_int8 var38;
+  orc_union16 var39;
+  orc_union16 var40;
+  orc_union16 var41;
+  orc_union16 var42;
+  orc_union16 var43;
+  orc_union16 var44;
+  orc_union16 var45;
+  orc_union16 var46;
+  orc_union16 var47;
+
+  ptr0 = (orc_union16 *) ex->arrays[0];
+  ptr4 = (orc_int8 *) ex->arrays[4];
+  ptr5 = (orc_int8 *) ex->arrays[5];
+  ptr6 = (orc_int8 *) ex->arrays[6];
+  ptr7 = (orc_union16 *) ex->arrays[7];
+  ptr8 = (orc_union16 *) ex->arrays[8];
+  ptr9 = (orc_union16 *) ex->arrays[9];
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadb */
+    var34 = ptr4[i];
+    /* 1: convubw */
+    var41.i = (orc_uint8) var34;
+    /* 2: loadw */
+    var35 = ptr7[i];
+    /* 3: mullw */
+    var42.i = (var41.i * var35.i) & 0xffff;
+    /* 4: loadb */
+    var36 = ptr5[i];
+    /* 5: convubw */
+    var43.i = (orc_uint8) var36;
+    /* 6: loadw */
+    var37 = ptr8[i];
+    /* 7: mullw */
+    var44.i = (var43.i * var37.i) & 0xffff;
+    /* 8: addw */
+    var45.i = var42.i + var44.i;
+    /* 9: loadb */
+    var38 = ptr6[i];
+    /* 10: convubw */
+    var46.i = (orc_uint8) var38;
+    /* 11: loadw */
+    var39 = ptr9[i];
+    /* 12: mullw */
+    var47.i = (var46.i * var39.i) & 0xffff;
+    /* 13: addw */
+    var40.i = var45.i + var47.i;
+    /* 14: storew */
+    ptr0[i] = var40;
+  }
+
+}
+
+void
+video_orc_resample_h_multaps3_u8_lq (gint16 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
+    const guint8 * ORC_RESTRICT s3, const gint16 * ORC_RESTRICT s4,
+    const gint16 * ORC_RESTRICT s5, const gint16 * ORC_RESTRICT s6, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 35, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 114, 101, 115,
+        97, 109, 112, 108, 101, 95, 104, 95, 109, 117, 108, 116, 97, 112, 115,
+            51,
+        95, 117, 56, 95, 108, 113, 11, 2, 2, 12, 1, 1, 12, 1, 1, 12,
+        1, 1, 12, 2, 2, 12, 2, 2, 12, 2, 2, 20, 2, 20, 2, 150,
+        32, 4, 89, 32, 32, 7, 150, 33, 5, 89, 33, 33, 8, 70, 32, 32,
+        33, 150, 33, 6, 89, 33, 33, 9, 70, 0, 32, 33, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_orc_resample_h_multaps3_u8_lq);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "video_orc_resample_h_multaps3_u8_lq");
+      orc_program_set_backup_function (p,
+          _backup_video_orc_resample_h_multaps3_u8_lq);
+      orc_program_add_destination (p, 2, "d1");
+      orc_program_add_source (p, 1, "s1");
+      orc_program_add_source (p, 1, "s2");
+      orc_program_add_source (p, 1, "s3");
+      orc_program_add_source (p, 2, "s4");
+      orc_program_add_source (p, 2, "s5");
+      orc_program_add_source (p, 2, "s6");
+      orc_program_add_temporary (p, 2, "t1");
+      orc_program_add_temporary (p, 2, "t2");
+
+      orc_program_append_2 (p, "convubw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_S4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convubw", 0, ORC_VAR_T2, ORC_VAR_S2, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mullw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_S5,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convubw", 0, ORC_VAR_T2, ORC_VAR_S3, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mullw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_S6,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addw", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T2,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->arrays[ORC_VAR_S2] = (void *) s2;
+  ex->arrays[ORC_VAR_S3] = (void *) s3;
+  ex->arrays[ORC_VAR_S4] = (void *) s4;
+  ex->arrays[ORC_VAR_S5] = (void *) s5;
+  ex->arrays[ORC_VAR_S6] = (void *) s6;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_resample_h_muladdtaps3_u8_lq */
+#ifdef DISABLE_ORC
+void
+video_orc_resample_h_muladdtaps3_u8_lq (gint16 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
+    const guint8 * ORC_RESTRICT s3, const gint16 * ORC_RESTRICT s4,
+    const gint16 * ORC_RESTRICT s5, const gint16 * ORC_RESTRICT s6, int n)
+{
+  int i;
+  orc_union16 *ORC_RESTRICT ptr0;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  const orc_int8 *ORC_RESTRICT ptr5;
+  const orc_int8 *ORC_RESTRICT ptr6;
+  const orc_union16 *ORC_RESTRICT ptr7;
+  const orc_union16 *ORC_RESTRICT ptr8;
+  const orc_union16 *ORC_RESTRICT ptr9;
+  orc_int8 var34;
+  orc_union16 var35;
+  orc_int8 var36;
+  orc_union16 var37;
+  orc_int8 var38;
+  orc_union16 var39;
+  orc_union16 var40;
+  orc_union16 var41;
+  orc_union16 var42;
+  orc_union16 var43;
+  orc_union16 var44;
+  orc_union16 var45;
+  orc_union16 var46;
+  orc_union16 var47;
+  orc_union16 var48;
+  orc_union16 var49;
+
+  ptr0 = (orc_union16 *) d1;
+  ptr4 = (orc_int8 *) s1;
+  ptr5 = (orc_int8 *) s2;
+  ptr6 = (orc_int8 *) s3;
+  ptr7 = (orc_union16 *) s4;
+  ptr8 = (orc_union16 *) s5;
+  ptr9 = (orc_union16 *) s6;
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadb */
+    var34 = ptr4[i];
+    /* 1: convubw */
+    var42.i = (orc_uint8) var34;
+    /* 2: loadw */
+    var35 = ptr7[i];
+    /* 3: mullw */
+    var43.i = (var42.i * var35.i) & 0xffff;
+    /* 4: loadb */
+    var36 = ptr5[i];
+    /* 5: convubw */
+    var44.i = (orc_uint8) var36;
+    /* 6: loadw */
+    var37 = ptr8[i];
+    /* 7: mullw */
+    var45.i = (var44.i * var37.i) & 0xffff;
+    /* 8: addw */
+    var46.i = var43.i + var45.i;
+    /* 9: loadb */
+    var38 = ptr6[i];
+    /* 10: convubw */
+    var47.i = (orc_uint8) var38;
+    /* 11: loadw */
+    var39 = ptr9[i];
+    /* 12: mullw */
+    var48.i = (var47.i * var39.i) & 0xffff;
+    /* 13: addw */
+    var49.i = var46.i + var48.i;
+    /* 14: loadw */
+    var40 = ptr0[i];
+    /* 15: addw */
+    var41.i = var40.i + var49.i;
+    /* 16: storew */
+    ptr0[i] = var41;
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_resample_h_muladdtaps3_u8_lq (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union16 *ORC_RESTRICT ptr0;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  const orc_int8 *ORC_RESTRICT ptr5;
+  const orc_int8 *ORC_RESTRICT ptr6;
+  const orc_union16 *ORC_RESTRICT ptr7;
+  const orc_union16 *ORC_RESTRICT ptr8;
+  const orc_union16 *ORC_RESTRICT ptr9;
+  orc_int8 var34;
+  orc_union16 var35;
+  orc_int8 var36;
+  orc_union16 var37;
+  orc_int8 var38;
+  orc_union16 var39;
+  orc_union16 var40;
+  orc_union16 var41;
+  orc_union16 var42;
+  orc_union16 var43;
+  orc_union16 var44;
+  orc_union16 var45;
+  orc_union16 var46;
+  orc_union16 var47;
+  orc_union16 var48;
+  orc_union16 var49;
+
+  ptr0 = (orc_union16 *) ex->arrays[0];
+  ptr4 = (orc_int8 *) ex->arrays[4];
+  ptr5 = (orc_int8 *) ex->arrays[5];
+  ptr6 = (orc_int8 *) ex->arrays[6];
+  ptr7 = (orc_union16 *) ex->arrays[7];
+  ptr8 = (orc_union16 *) ex->arrays[8];
+  ptr9 = (orc_union16 *) ex->arrays[9];
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadb */
+    var34 = ptr4[i];
+    /* 1: convubw */
+    var42.i = (orc_uint8) var34;
+    /* 2: loadw */
+    var35 = ptr7[i];
+    /* 3: mullw */
+    var43.i = (var42.i * var35.i) & 0xffff;
+    /* 4: loadb */
+    var36 = ptr5[i];
+    /* 5: convubw */
+    var44.i = (orc_uint8) var36;
+    /* 6: loadw */
+    var37 = ptr8[i];
+    /* 7: mullw */
+    var45.i = (var44.i * var37.i) & 0xffff;
+    /* 8: addw */
+    var46.i = var43.i + var45.i;
+    /* 9: loadb */
+    var38 = ptr6[i];
+    /* 10: convubw */
+    var47.i = (orc_uint8) var38;
+    /* 11: loadw */
+    var39 = ptr9[i];
+    /* 12: mullw */
+    var48.i = (var47.i * var39.i) & 0xffff;
+    /* 13: addw */
+    var49.i = var46.i + var48.i;
+    /* 14: loadw */
+    var40 = ptr0[i];
+    /* 15: addw */
+    var41.i = var40.i + var49.i;
+    /* 16: storew */
+    ptr0[i] = var41;
+  }
+
+}
+
+void
+video_orc_resample_h_muladdtaps3_u8_lq (gint16 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
+    const guint8 * ORC_RESTRICT s3, const gint16 * ORC_RESTRICT s4,
+    const gint16 * ORC_RESTRICT s5, const gint16 * ORC_RESTRICT s6, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 38, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 114, 101, 115,
+        97, 109, 112, 108, 101, 95, 104, 95, 109, 117, 108, 97, 100, 100, 116,
+            97,
+        112, 115, 51, 95, 117, 56, 95, 108, 113, 11, 2, 2, 12, 1, 1, 12,
+        1, 1, 12, 1, 1, 12, 2, 2, 12, 2, 2, 12, 2, 2, 20, 2,
+        20, 2, 150, 32, 4, 89, 32, 32, 7, 150, 33, 5, 89, 33, 33, 8,
+        70, 32, 32, 33, 150, 33, 6, 89, 33, 33, 9, 70, 32, 32, 33, 70,
+        0, 0, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_orc_resample_h_muladdtaps3_u8_lq);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "video_orc_resample_h_muladdtaps3_u8_lq");
+      orc_program_set_backup_function (p,
+          _backup_video_orc_resample_h_muladdtaps3_u8_lq);
+      orc_program_add_destination (p, 2, "d1");
+      orc_program_add_source (p, 1, "s1");
+      orc_program_add_source (p, 1, "s2");
+      orc_program_add_source (p, 1, "s3");
+      orc_program_add_source (p, 2, "s4");
+      orc_program_add_source (p, 2, "s5");
+      orc_program_add_source (p, 2, "s6");
+      orc_program_add_temporary (p, 2, "t1");
+      orc_program_add_temporary (p, 2, "t2");
+
+      orc_program_append_2 (p, "convubw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_S4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convubw", 0, ORC_VAR_T2, ORC_VAR_S2, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mullw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_S5,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convubw", 0, ORC_VAR_T2, ORC_VAR_S3, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mullw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_S6,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addw", 0, ORC_VAR_D1, ORC_VAR_D1, ORC_VAR_T1,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->arrays[ORC_VAR_S2] = (void *) s2;
+  ex->arrays[ORC_VAR_S3] = (void *) s3;
+  ex->arrays[ORC_VAR_S4] = (void *) s4;
+  ex->arrays[ORC_VAR_S5] = (void *) s5;
+  ex->arrays[ORC_VAR_S6] = (void *) s6;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_resample_h_muladdscaletaps3_u8_lq */
+#ifdef DISABLE_ORC
+void
+video_orc_resample_h_muladdscaletaps3_u8_lq (guint8 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
+    const guint8 * ORC_RESTRICT s3, const gint16 * ORC_RESTRICT s4,
+    const gint16 * ORC_RESTRICT s5, const gint16 * ORC_RESTRICT s6,
+    const gint16 * ORC_RESTRICT s7, int n)
+{
+  int i;
+  orc_int8 *ORC_RESTRICT ptr0;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  const orc_int8 *ORC_RESTRICT ptr5;
+  const orc_int8 *ORC_RESTRICT ptr6;
+  const orc_union16 *ORC_RESTRICT ptr7;
+  const orc_union16 *ORC_RESTRICT ptr8;
+  const orc_union16 *ORC_RESTRICT ptr9;
+  const orc_union16 *ORC_RESTRICT ptr10;
+  orc_int8 var34;
+  orc_union16 var35;
+  orc_int8 var36;
+  orc_union16 var37;
+  orc_int8 var38;
+  orc_union16 var39;
+  orc_union16 var40;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var41;
+#else
+  orc_union16 var41;
+#endif
+  orc_int8 var42;
+  orc_union16 var43;
+  orc_union16 var44;
+  orc_union16 var45;
+  orc_union16 var46;
+  orc_union16 var47;
+  orc_union16 var48;
+  orc_union16 var49;
+  orc_union16 var50;
+  orc_union16 var51;
+  orc_union16 var52;
+  orc_union16 var53;
+
+  ptr0 = (orc_int8 *) d1;
+  ptr4 = (orc_int8 *) s1;
+  ptr5 = (orc_int8 *) s2;
+  ptr6 = (orc_int8 *) s3;
+  ptr7 = (orc_union16 *) s4;
+  ptr8 = (orc_union16 *) s5;
+  ptr9 = (orc_union16 *) s6;
+  ptr10 = (orc_union16 *) s7;
+
+  /* 16: loadpw */
+  var41.i = (int) 0x00000020;   /* 32 or 1.58101e-322f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadb */
+    var34 = ptr4[i];
+    /* 1: convubw */
+    var43.i = (orc_uint8) var34;
+    /* 2: loadw */
+    var35 = ptr7[i];
+    /* 3: mullw */
+    var44.i = (var43.i * var35.i) & 0xffff;
+    /* 4: loadb */
+    var36 = ptr5[i];
+    /* 5: convubw */
+    var45.i = (orc_uint8) var36;
+    /* 6: loadw */
+    var37 = ptr8[i];
+    /* 7: mullw */
+    var46.i = (var45.i * var37.i) & 0xffff;
+    /* 8: addw */
+    var47.i = var44.i + var46.i;
+    /* 9: loadb */
+    var38 = ptr6[i];
+    /* 10: convubw */
+    var48.i = (orc_uint8) var38;
+    /* 11: loadw */
+    var39 = ptr9[i];
+    /* 12: mullw */
+    var49.i = (var48.i * var39.i) & 0xffff;
+    /* 13: addw */
+    var50.i = var47.i + var49.i;
+    /* 14: loadw */
+    var40 = ptr10[i];
+    /* 15: addw */
+    var51.i = var50.i + var40.i;
+    /* 17: addw */
+    var52.i = var51.i + var41.i;
+    /* 18: shrsw */
+    var53.i = var52.i >> 6;
+    /* 19: convsuswb */
+    var42 = ORC_CLAMP_UB (var53.i);
+    /* 20: storeb */
+    ptr0[i] = var42;
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_resample_h_muladdscaletaps3_u8_lq (OrcExecutor *
+    ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_int8 *ORC_RESTRICT ptr0;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  const orc_int8 *ORC_RESTRICT ptr5;
+  const orc_int8 *ORC_RESTRICT ptr6;
+  const orc_union16 *ORC_RESTRICT ptr7;
+  const orc_union16 *ORC_RESTRICT ptr8;
+  const orc_union16 *ORC_RESTRICT ptr9;
+  const orc_union16 *ORC_RESTRICT ptr10;
+  orc_int8 var34;
+  orc_union16 var35;
+  orc_int8 var36;
+  orc_union16 var37;
+  orc_int8 var38;
+  orc_union16 var39;
+  orc_union16 var40;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var41;
+#else
+  orc_union16 var41;
+#endif
+  orc_int8 var42;
+  orc_union16 var43;
+  orc_union16 var44;
+  orc_union16 var45;
+  orc_union16 var46;
+  orc_union16 var47;
+  orc_union16 var48;
+  orc_union16 var49;
+  orc_union16 var50;
+  orc_union16 var51;
+  orc_union16 var52;
+  orc_union16 var53;
+
+  ptr0 = (orc_int8 *) ex->arrays[0];
+  ptr4 = (orc_int8 *) ex->arrays[4];
+  ptr5 = (orc_int8 *) ex->arrays[5];
+  ptr6 = (orc_int8 *) ex->arrays[6];
+  ptr7 = (orc_union16 *) ex->arrays[7];
+  ptr8 = (orc_union16 *) ex->arrays[8];
+  ptr9 = (orc_union16 *) ex->arrays[9];
+  ptr10 = (orc_union16 *) ex->arrays[10];
+
+  /* 16: loadpw */
+  var41.i = (int) 0x00000020;   /* 32 or 1.58101e-322f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadb */
+    var34 = ptr4[i];
+    /* 1: convubw */
+    var43.i = (orc_uint8) var34;
+    /* 2: loadw */
+    var35 = ptr7[i];
+    /* 3: mullw */
+    var44.i = (var43.i * var35.i) & 0xffff;
+    /* 4: loadb */
+    var36 = ptr5[i];
+    /* 5: convubw */
+    var45.i = (orc_uint8) var36;
+    /* 6: loadw */
+    var37 = ptr8[i];
+    /* 7: mullw */
+    var46.i = (var45.i * var37.i) & 0xffff;
+    /* 8: addw */
+    var47.i = var44.i + var46.i;
+    /* 9: loadb */
+    var38 = ptr6[i];
+    /* 10: convubw */
+    var48.i = (orc_uint8) var38;
+    /* 11: loadw */
+    var39 = ptr9[i];
+    /* 12: mullw */
+    var49.i = (var48.i * var39.i) & 0xffff;
+    /* 13: addw */
+    var50.i = var47.i + var49.i;
+    /* 14: loadw */
+    var40 = ptr10[i];
+    /* 15: addw */
+    var51.i = var50.i + var40.i;
+    /* 17: addw */
+    var52.i = var51.i + var41.i;
+    /* 18: shrsw */
+    var53.i = var52.i >> 6;
+    /* 19: convsuswb */
+    var42 = ORC_CLAMP_UB (var53.i);
+    /* 20: storeb */
+    ptr0[i] = var42;
+  }
+
+}
+
+void
+video_orc_resample_h_muladdscaletaps3_u8_lq (guint8 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
+    const guint8 * ORC_RESTRICT s3, const gint16 * ORC_RESTRICT s4,
+    const gint16 * ORC_RESTRICT s5, const gint16 * ORC_RESTRICT s6,
+    const gint16 * ORC_RESTRICT s7, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 43, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 114, 101, 115,
+        97, 109, 112, 108, 101, 95, 104, 95, 109, 117, 108, 97, 100, 100, 115,
+            99,
+        97, 108, 101, 116, 97, 112, 115, 51, 95, 117, 56, 95, 108, 113, 11, 1,
+        1, 12, 1, 1, 12, 1, 1, 12, 1, 1, 12, 2, 2, 12, 2, 2,
+        12, 2, 2, 12, 2, 2, 14, 2, 32, 0, 0, 0, 14, 2, 6, 0,
+        0, 0, 20, 2, 20, 2, 150, 32, 4, 89, 32, 32, 7, 150, 33, 5,
+        89, 33, 33, 8, 70, 32, 32, 33, 150, 33, 6, 89, 33, 33, 9, 70,
+        32, 32, 33, 70, 32, 32, 10, 70, 32, 32, 16, 94, 32, 32, 17, 160,
+        0, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_orc_resample_h_muladdscaletaps3_u8_lq);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "video_orc_resample_h_muladdscaletaps3_u8_lq");
+      orc_program_set_backup_function (p,
+          _backup_video_orc_resample_h_muladdscaletaps3_u8_lq);
+      orc_program_add_destination (p, 1, "d1");
+      orc_program_add_source (p, 1, "s1");
+      orc_program_add_source (p, 1, "s2");
+      orc_program_add_source (p, 1, "s3");
+      orc_program_add_source (p, 2, "s4");
+      orc_program_add_source (p, 2, "s5");
+      orc_program_add_source (p, 2, "s6");
+      orc_program_add_source (p, 2, "s7");
+      orc_program_add_constant (p, 2, 0x00000020, "c1");
+      orc_program_add_constant (p, 2, 0x00000006, "c2");
+      orc_program_add_temporary (p, 2, "t1");
+      orc_program_add_temporary (p, 2, "t2");
+
+      orc_program_append_2 (p, "convubw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_S4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convubw", 0, ORC_VAR_T2, ORC_VAR_S2, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mullw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_S5,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convubw", 0, ORC_VAR_T2, ORC_VAR_S3, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mullw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_S6,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_S7,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convsuswb", 0, ORC_VAR_D1, ORC_VAR_T1,
+          ORC_VAR_D1, ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->arrays[ORC_VAR_S2] = (void *) s2;
+  ex->arrays[ORC_VAR_S3] = (void *) s3;
+  ex->arrays[ORC_VAR_S4] = (void *) s4;
+  ex->arrays[ORC_VAR_S5] = (void *) s5;
+  ex->arrays[ORC_VAR_S6] = (void *) s6;
+  ex->arrays[ORC_VAR_S7] = (void *) s7;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_resample_scaletaps_u8_lq */
+#ifdef DISABLE_ORC
+void
+video_orc_resample_scaletaps_u8_lq (guint8 * ORC_RESTRICT d1,
+    const gint16 * ORC_RESTRICT s1, int n)
+{
+  int i;
+  orc_int8 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+  orc_union16 var33;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var34;
+#else
+  orc_union16 var34;
+#endif
+  orc_int8 var35;
+  orc_union16 var36;
+  orc_union16 var37;
+
+  ptr0 = (orc_int8 *) d1;
+  ptr4 = (orc_union16 *) s1;
+
+  /* 1: loadpw */
+  var34.i = (int) 0x00000020;   /* 32 or 1.58101e-322f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadw */
+    var33 = ptr4[i];
+    /* 2: addw */
+    var36.i = var33.i + var34.i;
+    /* 3: shrsw */
+    var37.i = var36.i >> 6;
+    /* 4: convsuswb */
+    var35 = ORC_CLAMP_UB (var37.i);
+    /* 5: storeb */
+    ptr0[i] = var35;
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_resample_scaletaps_u8_lq (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_int8 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+  orc_union16 var33;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var34;
+#else
+  orc_union16 var34;
+#endif
+  orc_int8 var35;
+  orc_union16 var36;
+  orc_union16 var37;
+
+  ptr0 = (orc_int8 *) ex->arrays[0];
+  ptr4 = (orc_union16 *) ex->arrays[4];
+
+  /* 1: loadpw */
+  var34.i = (int) 0x00000020;   /* 32 or 1.58101e-322f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadw */
+    var33 = ptr4[i];
+    /* 2: addw */
+    var36.i = var33.i + var34.i;
+    /* 3: shrsw */
+    var37.i = var36.i >> 6;
+    /* 4: convsuswb */
+    var35 = ORC_CLAMP_UB (var37.i);
+    /* 5: storeb */
+    ptr0[i] = var35;
+  }
+
+}
+
+void
+video_orc_resample_scaletaps_u8_lq (guint8 * ORC_RESTRICT d1,
+    const gint16 * ORC_RESTRICT s1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 34, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 114, 101, 115,
+        97, 109, 112, 108, 101, 95, 115, 99, 97, 108, 101, 116, 97, 112, 115,
+            95,
+        117, 56, 95, 108, 113, 11, 1, 1, 12, 2, 2, 14, 2, 32, 0, 0,
+        0, 14, 2, 6, 0, 0, 0, 20, 2, 70, 32, 4, 16, 94, 32, 32,
+        17, 160, 0, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_orc_resample_scaletaps_u8_lq);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "video_orc_resample_scaletaps_u8_lq");
+      orc_program_set_backup_function (p,
+          _backup_video_orc_resample_scaletaps_u8_lq);
+      orc_program_add_destination (p, 1, "d1");
+      orc_program_add_source (p, 2, "s1");
+      orc_program_add_constant (p, 2, 0x00000020, "c1");
+      orc_program_add_constant (p, 2, 0x00000006, "c2");
+      orc_program_add_temporary (p, 2, "t1");
+
+      orc_program_append_2 (p, "addw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_C1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convsuswb", 0, ORC_VAR_D1, ORC_VAR_T1,
+          ORC_VAR_D1, ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_resample_h_multaps_u16 */
+#ifdef DISABLE_ORC
+void
+video_orc_resample_h_multaps_u16 (gint32 * ORC_RESTRICT d1,
+    const guint16 * ORC_RESTRICT s1, const gint16 * ORC_RESTRICT s2, int n)
+{
+  int i;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+  const orc_union16 *ORC_RESTRICT ptr5;
+  orc_union16 var34;
+  orc_union16 var35;
+  orc_union32 var36;
+  orc_union32 var37;
+  orc_union32 var38;
+
+  ptr0 = (orc_union32 *) d1;
+  ptr4 = (orc_union16 *) s1;
+  ptr5 = (orc_union16 *) s2;
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadw */
+    var34 = ptr4[i];
+    /* 1: convuwl */
+    var37.i = (orc_uint16) var34.i;
+    /* 2: loadw */
+    var35 = ptr5[i];
+    /* 3: convswl */
+    var38.i = var35.i;
+    /* 4: mulll */
+    var36.i = (((orc_uint32) var37.i) * ((orc_uint32) var38.i)) & 0xffffffff;
+    /* 5: storel */
+    ptr0[i] = var36;
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_resample_h_multaps_u16 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+  const orc_union16 *ORC_RESTRICT ptr5;
+  orc_union16 var34;
+  orc_union16 var35;
+  orc_union32 var36;
+  orc_union32 var37;
+  orc_union32 var38;
+
+  ptr0 = (orc_union32 *) ex->arrays[0];
+  ptr4 = (orc_union16 *) ex->arrays[4];
+  ptr5 = (orc_union16 *) ex->arrays[5];
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadw */
+    var34 = ptr4[i];
+    /* 1: convuwl */
+    var37.i = (orc_uint16) var34.i;
+    /* 2: loadw */
+    var35 = ptr5[i];
+    /* 3: convswl */
+    var38.i = var35.i;
+    /* 4: mulll */
+    var36.i = (((orc_uint32) var37.i) * ((orc_uint32) var38.i)) & 0xffffffff;
+    /* 5: storel */
+    ptr0[i] = var36;
+  }
+
+}
+
+void
+video_orc_resample_h_multaps_u16 (gint32 * ORC_RESTRICT d1,
+    const guint16 * ORC_RESTRICT s1, const gint16 * ORC_RESTRICT s2, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 32, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 114, 101, 115,
+        97, 109, 112, 108, 101, 95, 104, 95, 109, 117, 108, 116, 97, 112, 115,
+            95,
+        117, 49, 54, 11, 4, 4, 12, 2, 2, 12, 2, 2, 20, 4, 20, 4,
+        154, 32, 4, 153, 33, 5, 120, 0, 32, 33, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_orc_resample_h_multaps_u16);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "video_orc_resample_h_multaps_u16");
+      orc_program_set_backup_function (p,
+          _backup_video_orc_resample_h_multaps_u16);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 2, "s1");
+      orc_program_add_source (p, 2, "s2");
+      orc_program_add_temporary (p, 4, "t1");
+      orc_program_add_temporary (p, 4, "t2");
+
+      orc_program_append_2 (p, "convuwl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convswl", 0, ORC_VAR_T2, ORC_VAR_S2, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mulll", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T2,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->arrays[ORC_VAR_S2] = (void *) s2;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_resample_h_muladdtaps_u16 */
+#ifdef DISABLE_ORC
+void
+video_orc_resample_h_muladdtaps_u16 (gint32 * ORC_RESTRICT d1, int d1_stride,
+    const guint16 * ORC_RESTRICT s1, int s1_stride,
+    const gint16 * ORC_RESTRICT s2, int s2_stride, int n, int m)
+{
+  int i;
+  int j;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+  const orc_union16 *ORC_RESTRICT ptr5;
+  orc_union16 var34;
+  orc_union16 var35;
+  orc_union32 var36;
+  orc_union32 var37;
+  orc_union32 var38;
+  orc_union32 var39;
+  orc_union32 var40;
+
+  for (j = 0; j < m; j++) {
+    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
+    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
+    ptr5 = ORC_PTR_OFFSET (s2, s2_stride * j);
+
+
+    for (i = 0; i < n; i++) {
+      /* 0: loadw */
+      var34 = ptr4[i];
+      /* 1: convuwl */
+      var38.i = (orc_uint16) var34.i;
+      /* 2: loadw */
+      var35 = ptr5[i];
+      /* 3: convswl */
+      var39.i = var35.i;
+      /* 4: mulll */
+      var40.i = (((orc_uint32) var38.i) * ((orc_uint32) var39.i)) & 0xffffffff;
+      /* 5: loadl */
+      var36 = ptr0[i];
+      /* 6: addl */
+      var37.i = ((orc_uint32) var36.i) + ((orc_uint32) var40.i);
+      /* 7: storel */
+      ptr0[i] = var37;
+    }
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_resample_h_muladdtaps_u16 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int j;
+  int n = ex->n;
+  int m = ex->params[ORC_VAR_A1];
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+  const orc_union16 *ORC_RESTRICT ptr5;
+  orc_union16 var34;
+  orc_union16 var35;
+  orc_union32 var36;
+  orc_union32 var37;
+  orc_union32 var38;
+  orc_union32 var39;
+  orc_union32 var40;
+
+  for (j = 0; j < m; j++) {
+    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
+    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
+    ptr5 = ORC_PTR_OFFSET (ex->arrays[5], ex->params[5] * j);
+
+
+    for (i = 0; i < n; i++) {
+      /* 0: loadw */
+      var34 = ptr4[i];
+      /* 1: convuwl */
+      var38.i = (orc_uint16) var34.i;
+      /* 2: loadw */
+      var35 = ptr5[i];
+      /* 3: convswl */
+      var39.i = var35.i;
+      /* 4: mulll */
+      var40.i = (((orc_uint32) var38.i) * ((orc_uint32) var39.i)) & 0xffffffff;
+      /* 5: loadl */
+      var36 = ptr0[i];
+      /* 6: addl */
+      var37.i = ((orc_uint32) var36.i) + ((orc_uint32) var40.i);
+      /* 7: storel */
+      ptr0[i] = var37;
+    }
+  }
+
+}
+
+void
+video_orc_resample_h_muladdtaps_u16 (gint32 * ORC_RESTRICT d1, int d1_stride,
+    const guint16 * ORC_RESTRICT s1, int s1_stride,
+    const gint16 * ORC_RESTRICT s2, int s2_stride, int n, int m)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 114, 101,
+        115, 97, 109, 112, 108, 101, 95, 104, 95, 109, 117, 108, 97, 100, 100,
+            116,
+        97, 112, 115, 95, 117, 49, 54, 11, 4, 4, 12, 2, 2, 12, 2, 2,
+        20, 4, 20, 4, 154, 32, 4, 153, 33, 5, 120, 32, 32, 33, 103, 0,
+        0, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_orc_resample_h_muladdtaps_u16);
+#else
+      p = orc_program_new ();
+      orc_program_set_2d (p);
+      orc_program_set_name (p, "video_orc_resample_h_muladdtaps_u16");
+      orc_program_set_backup_function (p,
+          _backup_video_orc_resample_h_muladdtaps_u16);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 2, "s1");
+      orc_program_add_source (p, 2, "s2");
+      orc_program_add_temporary (p, 4, "t1");
+      orc_program_add_temporary (p, 4, "t2");
+
+      orc_program_append_2 (p, "convuwl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convswl", 0, ORC_VAR_T2, ORC_VAR_S2, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mulll", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addl", 0, ORC_VAR_D1, ORC_VAR_D1, ORC_VAR_T1,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ORC_EXECUTOR_M (ex) = m;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->params[ORC_VAR_D1] = d1_stride;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->params[ORC_VAR_S1] = s1_stride;
+  ex->arrays[ORC_VAR_S2] = (void *) s2;
+  ex->params[ORC_VAR_S2] = s2_stride;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_resample_scaletaps_u16 */
+#ifdef DISABLE_ORC
+void
+video_orc_resample_scaletaps_u16 (guint16 * ORC_RESTRICT d1,
+    const gint32 * ORC_RESTRICT s1, int n)
+{
+  int i;
+  orc_union16 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var33;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var34;
+#else
+  orc_union32 var34;
+#endif
+  orc_union16 var35;
+  orc_union32 var36;
+  orc_union32 var37;
+
+  ptr0 = (orc_union16 *) d1;
+  ptr4 = (orc_union32 *) s1;
+
+  /* 1: loadpl */
+  var34.i = (int) 0x00000fff;   /* 4095 or 2.0232e-320f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var33 = ptr4[i];
+    /* 2: addl */
+    var36.i = ((orc_uint32) var33.i) + ((orc_uint32) var34.i);
+    /* 3: shrsl */
+    var37.i = var36.i >> 12;
+    /* 4: convsuslw */
+    var35.i = ORC_CLAMP_UW (var37.i);
+    /* 5: storew */
+    ptr0[i] = var35;
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_resample_scaletaps_u16 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union16 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var33;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var34;
+#else
+  orc_union32 var34;
+#endif
+  orc_union16 var35;
+  orc_union32 var36;
+  orc_union32 var37;
+
+  ptr0 = (orc_union16 *) ex->arrays[0];
+  ptr4 = (orc_union32 *) ex->arrays[4];
+
+  /* 1: loadpl */
+  var34.i = (int) 0x00000fff;   /* 4095 or 2.0232e-320f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var33 = ptr4[i];
+    /* 2: addl */
+    var36.i = ((orc_uint32) var33.i) + ((orc_uint32) var34.i);
+    /* 3: shrsl */
+    var37.i = var36.i >> 12;
+    /* 4: convsuslw */
+    var35.i = ORC_CLAMP_UW (var37.i);
+    /* 5: storew */
+    ptr0[i] = var35;
+  }
+
+}
+
+void
+video_orc_resample_scaletaps_u16 (guint16 * ORC_RESTRICT d1,
+    const gint32 * ORC_RESTRICT s1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 32, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 114, 101, 115,
+        97, 109, 112, 108, 101, 95, 115, 99, 97, 108, 101, 116, 97, 112, 115,
+            95,
+        117, 49, 54, 11, 2, 2, 12, 4, 4, 14, 4, 255, 15, 0, 0, 14,
+        4, 12, 0, 0, 0, 20, 4, 103, 32, 4, 16, 125, 32, 32, 17, 166,
+        0, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_orc_resample_scaletaps_u16);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "video_orc_resample_scaletaps_u16");
+      orc_program_set_backup_function (p,
+          _backup_video_orc_resample_scaletaps_u16);
+      orc_program_add_destination (p, 2, "d1");
+      orc_program_add_source (p, 4, "s1");
+      orc_program_add_constant (p, 4, 0x00000fff, "c1");
+      orc_program_add_constant (p, 4, 0x0000000c, "c2");
+      orc_program_add_temporary (p, 4, "t1");
+
+      orc_program_append_2 (p, "addl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_C1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shrsl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convsuslw", 0, ORC_VAR_D1, ORC_VAR_T1,
+          ORC_VAR_D1, ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_resample_v_multaps_u8 */
+#ifdef DISABLE_ORC
+void
+video_orc_resample_v_multaps_u8 (gint32 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, int p1, int n)
+{
+  int i;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  orc_int8 var33;
+  orc_union16 var34;
+  orc_union32 var35;
+  orc_union16 var36;
+
+  ptr0 = (orc_union32 *) d1;
+  ptr4 = (orc_int8 *) s1;
+
+  /* 2: loadpw */
+  var34.i = p1;
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadb */
+    var33 = ptr4[i];
+    /* 1: convubw */
+    var36.i = (orc_uint8) var33;
+    /* 3: mulswl */
+    var35.i = var36.i * var34.i;
+    /* 4: storel */
+    ptr0[i] = var35;
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_resample_v_multaps_u8 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  orc_int8 var33;
+  orc_union16 var34;
+  orc_union32 var35;
+  orc_union16 var36;
+
+  ptr0 = (orc_union32 *) ex->arrays[0];
+  ptr4 = (orc_int8 *) ex->arrays[4];
+
+  /* 2: loadpw */
+  var34.i = ex->params[24];
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadb */
+    var33 = ptr4[i];
+    /* 1: convubw */
+    var36.i = (orc_uint8) var33;
+    /* 3: mulswl */
+    var35.i = var36.i * var34.i;
+    /* 4: storel */
+    ptr0[i] = var35;
+  }
+
+}
+
+void
+video_orc_resample_v_multaps_u8 (gint32 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, int p1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 31, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 114, 101, 115,
+        97, 109, 112, 108, 101, 95, 118, 95, 109, 117, 108, 116, 97, 112, 115,
+            95,
+        117, 56, 11, 4, 4, 12, 1, 1, 16, 2, 20, 2, 150, 32, 4, 176,
+        0, 32, 24, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_orc_resample_v_multaps_u8);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "video_orc_resample_v_multaps_u8");
+      orc_program_set_backup_function (p,
+          _backup_video_orc_resample_v_multaps_u8);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 1, "s1");
+      orc_program_add_parameter (p, 2, "p1");
+      orc_program_add_temporary (p, 2, "t1");
+
+      orc_program_append_2 (p, "convubw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mulswl", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_P1,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->params[ORC_VAR_P1] = p1;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_resample_v_muladdtaps_u8 */
+#ifdef DISABLE_ORC
+void
+video_orc_resample_v_muladdtaps_u8 (gint32 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, int p1, int n)
+{
+  int i;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  orc_int8 var34;
+  orc_union16 var35;
+  orc_union32 var36;
+  orc_union32 var37;
+  orc_union16 var38;
+  orc_union32 var39;
+
+  ptr0 = (orc_union32 *) d1;
+  ptr4 = (orc_int8 *) s1;
+
+  /* 2: loadpw */
+  var35.i = p1;
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadb */
+    var34 = ptr4[i];
+    /* 1: convubw */
+    var38.i = (orc_uint8) var34;
+    /* 3: mulswl */
+    var39.i = var38.i * var35.i;
+    /* 4: loadl */
+    var36 = ptr0[i];
+    /* 5: addl */
+    var37.i = ((orc_uint32) var36.i) + ((orc_uint32) var39.i);
+    /* 6: storel */
+    ptr0[i] = var37;
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_resample_v_muladdtaps_u8 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  orc_int8 var34;
+  orc_union16 var35;
+  orc_union32 var36;
+  orc_union32 var37;
+  orc_union16 var38;
+  orc_union32 var39;
+
+  ptr0 = (orc_union32 *) ex->arrays[0];
+  ptr4 = (orc_int8 *) ex->arrays[4];
+
+  /* 2: loadpw */
+  var35.i = ex->params[24];
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadb */
+    var34 = ptr4[i];
+    /* 1: convubw */
+    var38.i = (orc_uint8) var34;
+    /* 3: mulswl */
+    var39.i = var38.i * var35.i;
+    /* 4: loadl */
+    var36 = ptr0[i];
+    /* 5: addl */
+    var37.i = ((orc_uint32) var36.i) + ((orc_uint32) var39.i);
+    /* 6: storel */
+    ptr0[i] = var37;
+  }
+
+}
+
+void
+video_orc_resample_v_muladdtaps_u8 (gint32 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, int p1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 34, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 114, 101, 115,
+        97, 109, 112, 108, 101, 95, 118, 95, 109, 117, 108, 97, 100, 100, 116,
+            97,
+        112, 115, 95, 117, 56, 11, 4, 4, 12, 1, 1, 16, 2, 20, 2, 20,
+        4, 150, 32, 4, 176, 33, 32, 24, 103, 0, 0, 33, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_orc_resample_v_muladdtaps_u8);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "video_orc_resample_v_muladdtaps_u8");
+      orc_program_set_backup_function (p,
+          _backup_video_orc_resample_v_muladdtaps_u8);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 1, "s1");
+      orc_program_add_parameter (p, 2, "p1");
+      orc_program_add_temporary (p, 2, "t1");
+      orc_program_add_temporary (p, 4, "t2");
+
+      orc_program_append_2 (p, "convubw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mulswl", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_P1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addl", 0, ORC_VAR_D1, ORC_VAR_D1, ORC_VAR_T2,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->params[ORC_VAR_P1] = p1;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_resample_v_multaps_u16 */
+#ifdef DISABLE_ORC
+void
+video_orc_resample_v_multaps_u16 (gint32 * ORC_RESTRICT d1,
+    const guint16 * ORC_RESTRICT s1, int p1, int n)
+{
+  int i;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+  orc_union16 var33;
+  orc_union32 var34;
+  orc_union32 var35;
+  orc_union32 var36;
+
+  ptr0 = (orc_union32 *) d1;
+  ptr4 = (orc_union16 *) s1;
+
+  /* 2: loadpl */
+  var34.i = p1;
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadw */
+    var33 = ptr4[i];
+    /* 1: convuwl */
+    var36.i = (orc_uint16) var33.i;
+    /* 3: mulll */
+    var35.i = (((orc_uint32) var36.i) * ((orc_uint32) var34.i)) & 0xffffffff;
+    /* 4: storel */
+    ptr0[i] = var35;
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_resample_v_multaps_u16 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+  orc_union16 var33;
+  orc_union32 var34;
+  orc_union32 var35;
+  orc_union32 var36;
+
+  ptr0 = (orc_union32 *) ex->arrays[0];
+  ptr4 = (orc_union16 *) ex->arrays[4];
+
+  /* 2: loadpl */
+  var34.i = ex->params[24];
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadw */
+    var33 = ptr4[i];
+    /* 1: convuwl */
+    var36.i = (orc_uint16) var33.i;
+    /* 3: mulll */
+    var35.i = (((orc_uint32) var36.i) * ((orc_uint32) var34.i)) & 0xffffffff;
+    /* 4: storel */
+    ptr0[i] = var35;
+  }
+
+}
+
+void
+video_orc_resample_v_multaps_u16 (gint32 * ORC_RESTRICT d1,
+    const guint16 * ORC_RESTRICT s1, int p1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 32, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 114, 101, 115,
+        97, 109, 112, 108, 101, 95, 118, 95, 109, 117, 108, 116, 97, 112, 115,
+            95,
+        117, 49, 54, 11, 4, 4, 12, 2, 2, 16, 2, 20, 4, 154, 32, 4,
+        120, 0, 32, 24, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_orc_resample_v_multaps_u16);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "video_orc_resample_v_multaps_u16");
+      orc_program_set_backup_function (p,
+          _backup_video_orc_resample_v_multaps_u16);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 2, "s1");
+      orc_program_add_parameter (p, 2, "p1");
+      orc_program_add_temporary (p, 4, "t1");
+
+      orc_program_append_2 (p, "convuwl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mulll", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_P1,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->params[ORC_VAR_P1] = p1;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_resample_v_muladdtaps_u16 */
+#ifdef DISABLE_ORC
+void
+video_orc_resample_v_muladdtaps_u16 (gint32 * ORC_RESTRICT d1,
+    const guint16 * ORC_RESTRICT s1, int p1, int n)
+{
+  int i;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+  orc_union16 var34;
+  orc_union16 var35;
+  orc_union32 var36;
+  orc_union32 var37;
+  orc_union32 var38;
+  orc_union32 var39;
+  orc_union32 var40;
+
+  ptr0 = (orc_union32 *) d1;
+  ptr4 = (orc_union16 *) s1;
+
+  /* 2: loadpw */
+  var35.i = p1;
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadw */
+    var34 = ptr4[i];
+    /* 1: convuwl */
+    var38.i = (orc_uint16) var34.i;
+    /* 3: convswl */
+    var39.i = var35.i;
+    /* 4: mulll */
+    var40.i = (((orc_uint32) var38.i) * ((orc_uint32) var39.i)) & 0xffffffff;
+    /* 5: loadl */
+    var36 = ptr0[i];
+    /* 6: addl */
+    var37.i = ((orc_uint32) var36.i) + ((orc_uint32) var40.i);
+    /* 7: storel */
+    ptr0[i] = var37;
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_resample_v_muladdtaps_u16 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+  orc_union16 var34;
+  orc_union16 var35;
+  orc_union32 var36;
+  orc_union32 var37;
+  orc_union32 var38;
+  orc_union32 var39;
+  orc_union32 var40;
+
+  ptr0 = (orc_union32 *) ex->arrays[0];
+  ptr4 = (orc_union16 *) ex->arrays[4];
+
+  /* 2: loadpw */
+  var35.i = ex->params[24];
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadw */
+    var34 = ptr4[i];
+    /* 1: convuwl */
+    var38.i = (orc_uint16) var34.i;
+    /* 3: convswl */
+    var39.i = var35.i;
+    /* 4: mulll */
+    var40.i = (((orc_uint32) var38.i) * ((orc_uint32) var39.i)) & 0xffffffff;
+    /* 5: loadl */
+    var36 = ptr0[i];
+    /* 6: addl */
+    var37.i = ((orc_uint32) var36.i) + ((orc_uint32) var40.i);
+    /* 7: storel */
+    ptr0[i] = var37;
+  }
+
+}
+
+void
+video_orc_resample_v_muladdtaps_u16 (gint32 * ORC_RESTRICT d1,
+    const guint16 * ORC_RESTRICT s1, int p1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 35, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 114, 101, 115,
+        97, 109, 112, 108, 101, 95, 118, 95, 109, 117, 108, 97, 100, 100, 116,
+            97,
+        112, 115, 95, 117, 49, 54, 11, 4, 4, 12, 2, 2, 16, 2, 20, 4,
+        20, 4, 154, 32, 4, 153, 33, 24, 120, 32, 32, 33, 103, 0, 0, 32,
+        2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_orc_resample_v_muladdtaps_u16);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "video_orc_resample_v_muladdtaps_u16");
+      orc_program_set_backup_function (p,
+          _backup_video_orc_resample_v_muladdtaps_u16);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 2, "s1");
+      orc_program_add_parameter (p, 2, "p1");
+      orc_program_add_temporary (p, 4, "t1");
+      orc_program_add_temporary (p, 4, "t2");
+
+      orc_program_append_2 (p, "convuwl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convswl", 0, ORC_VAR_T2, ORC_VAR_P1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mulll", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addl", 0, ORC_VAR_D1, ORC_VAR_D1, ORC_VAR_T1,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->params[ORC_VAR_P1] = p1;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_resample_v_multaps_u8_lq */
+#ifdef DISABLE_ORC
+void
+video_orc_resample_v_multaps_u8_lq (gint16 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, int p1, int n)
+{
+  int i;
+  orc_union16 *ORC_RESTRICT ptr0;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  orc_int8 var33;
+  orc_union16 var34;
+  orc_union16 var35;
+  orc_union16 var36;
+
+  ptr0 = (orc_union16 *) d1;
+  ptr4 = (orc_int8 *) s1;
+
+  /* 2: loadpw */
+  var34.i = p1;
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadb */
+    var33 = ptr4[i];
+    /* 1: convubw */
+    var36.i = (orc_uint8) var33;
+    /* 3: mullw */
+    var35.i = (var36.i * var34.i) & 0xffff;
+    /* 4: storew */
+    ptr0[i] = var35;
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_resample_v_multaps_u8_lq (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union16 *ORC_RESTRICT ptr0;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  orc_int8 var33;
+  orc_union16 var34;
+  orc_union16 var35;
+  orc_union16 var36;
+
+  ptr0 = (orc_union16 *) ex->arrays[0];
+  ptr4 = (orc_int8 *) ex->arrays[4];
+
+  /* 2: loadpw */
+  var34.i = ex->params[24];
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadb */
+    var33 = ptr4[i];
+    /* 1: convubw */
+    var36.i = (orc_uint8) var33;
+    /* 3: mullw */
+    var35.i = (var36.i * var34.i) & 0xffff;
+    /* 4: storew */
+    ptr0[i] = var35;
+  }
+
+}
+
+void
+video_orc_resample_v_multaps_u8_lq (gint16 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, int p1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 34, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 114, 101, 115,
+        97, 109, 112, 108, 101, 95, 118, 95, 109, 117, 108, 116, 97, 112, 115,
+            95,
+        117, 56, 95, 108, 113, 11, 2, 2, 12, 1, 1, 16, 2, 20, 2, 150,
+        32, 4, 89, 0, 32, 24, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_orc_resample_v_multaps_u8_lq);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "video_orc_resample_v_multaps_u8_lq");
+      orc_program_set_backup_function (p,
+          _backup_video_orc_resample_v_multaps_u8_lq);
+      orc_program_add_destination (p, 2, "d1");
+      orc_program_add_source (p, 1, "s1");
+      orc_program_add_parameter (p, 2, "p1");
+      orc_program_add_temporary (p, 2, "t1");
+
+      orc_program_append_2 (p, "convubw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mullw", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_P1,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->params[ORC_VAR_P1] = p1;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_resample_v_multaps4_u8_lq */
+#ifdef DISABLE_ORC
+void
+video_orc_resample_v_multaps4_u8_lq (gint16 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
+    const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, int p1,
+    int p2, int p3, int p4, int n)
+{
+  int i;
+  orc_union16 *ORC_RESTRICT ptr0;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  const orc_int8 *ORC_RESTRICT ptr5;
+  const orc_int8 *ORC_RESTRICT ptr6;
+  const orc_int8 *ORC_RESTRICT ptr7;
+  orc_int8 var34;
+  orc_union16 var35;
+  orc_int8 var36;
+  orc_union16 var37;
+  orc_int8 var38;
+  orc_union16 var39;
+  orc_int8 var40;
+  orc_union16 var41;
+  orc_union16 var42;
+  orc_union16 var43;
+  orc_union16 var44;
+  orc_union16 var45;
+  orc_union16 var46;
+  orc_union16 var47;
+  orc_union16 var48;
+  orc_union16 var49;
+  orc_union16 var50;
+  orc_union16 var51;
+  orc_union16 var52;
+
+  ptr0 = (orc_union16 *) d1;
+  ptr4 = (orc_int8 *) s1;
+  ptr5 = (orc_int8 *) s2;
+  ptr6 = (orc_int8 *) s3;
+  ptr7 = (orc_int8 *) s4;
+
+  /* 2: loadpw */
+  var35.i = p1;
+  /* 6: loadpw */
+  var37.i = p2;
+  /* 11: loadpw */
+  var39.i = p3;
+  /* 16: loadpw */
+  var41.i = p4;
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadb */
+    var34 = ptr4[i];
+    /* 1: convubw */
+    var43.i = (orc_uint8) var34;
+    /* 3: mullw */
+    var44.i = (var43.i * var35.i) & 0xffff;
+    /* 4: loadb */
+    var36 = ptr5[i];
+    /* 5: convubw */
+    var45.i = (orc_uint8) var36;
+    /* 7: mullw */
+    var46.i = (var45.i * var37.i) & 0xffff;
+    /* 8: addw */
+    var47.i = var44.i + var46.i;
+    /* 9: loadb */
+    var38 = ptr6[i];
+    /* 10: convubw */
+    var48.i = (orc_uint8) var38;
+    /* 12: mullw */
+    var49.i = (var48.i * var39.i) & 0xffff;
+    /* 13: addw */
+    var50.i = var47.i + var49.i;
+    /* 14: loadb */
+    var40 = ptr7[i];
+    /* 15: convubw */
+    var51.i = (orc_uint8) var40;
+    /* 17: mullw */
+    var52.i = (var51.i * var41.i) & 0xffff;
+    /* 18: addw */
+    var42.i = var50.i + var52.i;
+    /* 19: storew */
+    ptr0[i] = var42;
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_resample_v_multaps4_u8_lq (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union16 *ORC_RESTRICT ptr0;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  const orc_int8 *ORC_RESTRICT ptr5;
+  const orc_int8 *ORC_RESTRICT ptr6;
+  const orc_int8 *ORC_RESTRICT ptr7;
+  orc_int8 var34;
+  orc_union16 var35;
+  orc_int8 var36;
+  orc_union16 var37;
+  orc_int8 var38;
+  orc_union16 var39;
+  orc_int8 var40;
+  orc_union16 var41;
+  orc_union16 var42;
+  orc_union16 var43;
+  orc_union16 var44;
+  orc_union16 var45;
+  orc_union16 var46;
+  orc_union16 var47;
+  orc_union16 var48;
+  orc_union16 var49;
+  orc_union16 var50;
+  orc_union16 var51;
+  orc_union16 var52;
+
+  ptr0 = (orc_union16 *) ex->arrays[0];
+  ptr4 = (orc_int8 *) ex->arrays[4];
+  ptr5 = (orc_int8 *) ex->arrays[5];
+  ptr6 = (orc_int8 *) ex->arrays[6];
+  ptr7 = (orc_int8 *) ex->arrays[7];
+
+  /* 2: loadpw */
+  var35.i = ex->params[24];
+  /* 6: loadpw */
+  var37.i = ex->params[25];
+  /* 11: loadpw */
+  var39.i = ex->params[26];
+  /* 16: loadpw */
+  var41.i = ex->params[27];
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadb */
+    var34 = ptr4[i];
+    /* 1: convubw */
+    var43.i = (orc_uint8) var34;
+    /* 3: mullw */
+    var44.i = (var43.i * var35.i) & 0xffff;
+    /* 4: loadb */
+    var36 = ptr5[i];
+    /* 5: convubw */
+    var45.i = (orc_uint8) var36;
+    /* 7: mullw */
+    var46.i = (var45.i * var37.i) & 0xffff;
+    /* 8: addw */
+    var47.i = var44.i + var46.i;
+    /* 9: loadb */
+    var38 = ptr6[i];
+    /* 10: convubw */
+    var48.i = (orc_uint8) var38;
+    /* 12: mullw */
+    var49.i = (var48.i * var39.i) & 0xffff;
+    /* 13: addw */
+    var50.i = var47.i + var49.i;
+    /* 14: loadb */
+    var40 = ptr7[i];
+    /* 15: convubw */
+    var51.i = (orc_uint8) var40;
+    /* 17: mullw */
+    var52.i = (var51.i * var41.i) & 0xffff;
+    /* 18: addw */
+    var42.i = var50.i + var52.i;
+    /* 19: storew */
+    ptr0[i] = var42;
+  }
+
+}
+
+void
+video_orc_resample_v_multaps4_u8_lq (gint16 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
+    const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, int p1,
+    int p2, int p3, int p4, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 35, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 114, 101, 115,
+        97, 109, 112, 108, 101, 95, 118, 95, 109, 117, 108, 116, 97, 112, 115,
+            52,
+        95, 117, 56, 95, 108, 113, 11, 2, 2, 12, 1, 1, 12, 1, 1, 12,
+        1, 1, 12, 1, 1, 16, 2, 16, 2, 16, 2, 16, 2, 20, 2, 20,
+        2, 150, 32, 4, 89, 32, 32, 24, 150, 33, 5, 89, 33, 33, 25, 70,
+        32, 32, 33, 150, 33, 6, 89, 33, 33, 26, 70, 32, 32, 33, 150, 33,
+        7, 89, 33, 33, 27, 70, 0, 32, 33, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_orc_resample_v_multaps4_u8_lq);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "video_orc_resample_v_multaps4_u8_lq");
+      orc_program_set_backup_function (p,
+          _backup_video_orc_resample_v_multaps4_u8_lq);
+      orc_program_add_destination (p, 2, "d1");
+      orc_program_add_source (p, 1, "s1");
+      orc_program_add_source (p, 1, "s2");
+      orc_program_add_source (p, 1, "s3");
+      orc_program_add_source (p, 1, "s4");
+      orc_program_add_parameter (p, 2, "p1");
+      orc_program_add_parameter (p, 2, "p2");
+      orc_program_add_parameter (p, 2, "p3");
+      orc_program_add_parameter (p, 2, "p4");
+      orc_program_add_temporary (p, 2, "t1");
+      orc_program_add_temporary (p, 2, "t2");
+
+      orc_program_append_2 (p, "convubw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_P1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convubw", 0, ORC_VAR_T2, ORC_VAR_S2, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mullw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_P2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convubw", 0, ORC_VAR_T2, ORC_VAR_S3, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mullw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_P3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convubw", 0, ORC_VAR_T2, ORC_VAR_S4, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mullw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_P4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addw", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T2,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->arrays[ORC_VAR_S2] = (void *) s2;
+  ex->arrays[ORC_VAR_S3] = (void *) s3;
+  ex->arrays[ORC_VAR_S4] = (void *) s4;
+  ex->params[ORC_VAR_P1] = p1;
+  ex->params[ORC_VAR_P2] = p2;
+  ex->params[ORC_VAR_P3] = p3;
+  ex->params[ORC_VAR_P4] = p4;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_resample_v_muladdtaps_u8_lq */
+#ifdef DISABLE_ORC
+void
+video_orc_resample_v_muladdtaps_u8_lq (gint16 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, int p1, int n)
+{
+  int i;
+  orc_union16 *ORC_RESTRICT ptr0;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  orc_int8 var33;
+  orc_union16 var34;
+  orc_union16 var35;
+  orc_union16 var36;
+  orc_union16 var37;
+  orc_union16 var38;
+
+  ptr0 = (orc_union16 *) d1;
+  ptr4 = (orc_int8 *) s1;
+
+  /* 2: loadpw */
+  var34.i = p1;
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadb */
+    var33 = ptr4[i];
+    /* 1: convubw */
+    var37.i = (orc_uint8) var33;
+    /* 3: mullw */
+    var38.i = (var37.i * var34.i) & 0xffff;
+    /* 4: loadw */
+    var35 = ptr0[i];
+    /* 5: addw */
+    var36.i = var35.i + var38.i;
+    /* 6: storew */
+    ptr0[i] = var36;
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_resample_v_muladdtaps_u8_lq (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union16 *ORC_RESTRICT ptr0;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  orc_int8 var33;
+  orc_union16 var34;
+  orc_union16 var35;
+  orc_union16 var36;
+  orc_union16 var37;
+  orc_union16 var38;
+
+  ptr0 = (orc_union16 *) ex->arrays[0];
+  ptr4 = (orc_int8 *) ex->arrays[4];
+
+  /* 2: loadpw */
+  var34.i = ex->params[24];
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadb */
+    var33 = ptr4[i];
+    /* 1: convubw */
+    var37.i = (orc_uint8) var33;
+    /* 3: mullw */
+    var38.i = (var37.i * var34.i) & 0xffff;
+    /* 4: loadw */
+    var35 = ptr0[i];
+    /* 5: addw */
+    var36.i = var35.i + var38.i;
+    /* 6: storew */
+    ptr0[i] = var36;
+  }
+
+}
+
+void
+video_orc_resample_v_muladdtaps_u8_lq (gint16 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, int p1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 37, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 114, 101, 115,
+        97, 109, 112, 108, 101, 95, 118, 95, 109, 117, 108, 97, 100, 100, 116,
+            97,
+        112, 115, 95, 117, 56, 95, 108, 113, 11, 2, 2, 12, 1, 1, 16, 2,
+        20, 2, 150, 32, 4, 89, 32, 32, 24, 70, 0, 0, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_orc_resample_v_muladdtaps_u8_lq);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "video_orc_resample_v_muladdtaps_u8_lq");
+      orc_program_set_backup_function (p,
+          _backup_video_orc_resample_v_muladdtaps_u8_lq);
+      orc_program_add_destination (p, 2, "d1");
+      orc_program_add_source (p, 1, "s1");
+      orc_program_add_parameter (p, 2, "p1");
+      orc_program_add_temporary (p, 2, "t1");
+
+      orc_program_append_2 (p, "convubw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_P1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addw", 0, ORC_VAR_D1, ORC_VAR_D1, ORC_VAR_T1,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->params[ORC_VAR_P1] = p1;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_resample_v_muladdtaps4_u8_lq */
+#ifdef DISABLE_ORC
+void
+video_orc_resample_v_muladdtaps4_u8_lq (gint16 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
+    const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, int p1,
+    int p2, int p3, int p4, int n)
+{
+  int i;
+  orc_union16 *ORC_RESTRICT ptr0;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  const orc_int8 *ORC_RESTRICT ptr5;
+  const orc_int8 *ORC_RESTRICT ptr6;
+  const orc_int8 *ORC_RESTRICT ptr7;
+  orc_int8 var34;
+  orc_union16 var35;
+  orc_int8 var36;
+  orc_union16 var37;
+  orc_int8 var38;
+  orc_union16 var39;
+  orc_int8 var40;
+  orc_union16 var41;
+  orc_union16 var42;
+  orc_union16 var43;
+  orc_union16 var44;
+  orc_union16 var45;
+  orc_union16 var46;
+  orc_union16 var47;
+  orc_union16 var48;
+  orc_union16 var49;
+  orc_union16 var50;
+  orc_union16 var51;
+  orc_union16 var52;
+  orc_union16 var53;
+  orc_union16 var54;
+
+  ptr0 = (orc_union16 *) d1;
+  ptr4 = (orc_int8 *) s1;
+  ptr5 = (orc_int8 *) s2;
+  ptr6 = (orc_int8 *) s3;
+  ptr7 = (orc_int8 *) s4;
+
+  /* 2: loadpw */
+  var35.i = p1;
+  /* 6: loadpw */
+  var37.i = p2;
+  /* 11: loadpw */
+  var39.i = p3;
+  /* 16: loadpw */
+  var41.i = p4;
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadb */
+    var34 = ptr4[i];
+    /* 1: convubw */
+    var44.i = (orc_uint8) var34;
+    /* 3: mullw */
+    var45.i = (var44.i * var35.i) & 0xffff;
+    /* 4: loadb */
+    var36 = ptr5[i];
+    /* 5: convubw */
+    var46.i = (orc_uint8) var36;
+    /* 7: mullw */
+    var47.i = (var46.i * var37.i) & 0xffff;
+    /* 8: addw */
+    var48.i = var45.i + var47.i;
+    /* 9: loadb */
+    var38 = ptr6[i];
+    /* 10: convubw */
+    var49.i = (orc_uint8) var38;
+    /* 12: mullw */
+    var50.i = (var49.i * var39.i) & 0xffff;
+    /* 13: addw */
+    var51.i = var48.i + var50.i;
+    /* 14: loadb */
+    var40 = ptr7[i];
+    /* 15: convubw */
+    var52.i = (orc_uint8) var40;
+    /* 17: mullw */
+    var53.i = (var52.i * var41.i) & 0xffff;
+    /* 18: addw */
+    var54.i = var51.i + var53.i;
+    /* 19: loadw */
+    var42 = ptr0[i];
+    /* 20: addw */
+    var43.i = var42.i + var54.i;
+    /* 21: storew */
+    ptr0[i] = var43;
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_resample_v_muladdtaps4_u8_lq (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union16 *ORC_RESTRICT ptr0;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  const orc_int8 *ORC_RESTRICT ptr5;
+  const orc_int8 *ORC_RESTRICT ptr6;
+  const orc_int8 *ORC_RESTRICT ptr7;
+  orc_int8 var34;
+  orc_union16 var35;
+  orc_int8 var36;
+  orc_union16 var37;
+  orc_int8 var38;
+  orc_union16 var39;
+  orc_int8 var40;
+  orc_union16 var41;
+  orc_union16 var42;
+  orc_union16 var43;
+  orc_union16 var44;
+  orc_union16 var45;
+  orc_union16 var46;
+  orc_union16 var47;
+  orc_union16 var48;
+  orc_union16 var49;
+  orc_union16 var50;
+  orc_union16 var51;
+  orc_union16 var52;
+  orc_union16 var53;
+  orc_union16 var54;
+
+  ptr0 = (orc_union16 *) ex->arrays[0];
+  ptr4 = (orc_int8 *) ex->arrays[4];
+  ptr5 = (orc_int8 *) ex->arrays[5];
+  ptr6 = (orc_int8 *) ex->arrays[6];
+  ptr7 = (orc_int8 *) ex->arrays[7];
+
+  /* 2: loadpw */
+  var35.i = ex->params[24];
+  /* 6: loadpw */
+  var37.i = ex->params[25];
+  /* 11: loadpw */
+  var39.i = ex->params[26];
+  /* 16: loadpw */
+  var41.i = ex->params[27];
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadb */
+    var34 = ptr4[i];
+    /* 1: convubw */
+    var44.i = (orc_uint8) var34;
+    /* 3: mullw */
+    var45.i = (var44.i * var35.i) & 0xffff;
+    /* 4: loadb */
+    var36 = ptr5[i];
+    /* 5: convubw */
+    var46.i = (orc_uint8) var36;
+    /* 7: mullw */
+    var47.i = (var46.i * var37.i) & 0xffff;
+    /* 8: addw */
+    var48.i = var45.i + var47.i;
+    /* 9: loadb */
+    var38 = ptr6[i];
+    /* 10: convubw */
+    var49.i = (orc_uint8) var38;
+    /* 12: mullw */
+    var50.i = (var49.i * var39.i) & 0xffff;
+    /* 13: addw */
+    var51.i = var48.i + var50.i;
+    /* 14: loadb */
+    var40 = ptr7[i];
+    /* 15: convubw */
+    var52.i = (orc_uint8) var40;
+    /* 17: mullw */
+    var53.i = (var52.i * var41.i) & 0xffff;
+    /* 18: addw */
+    var54.i = var51.i + var53.i;
+    /* 19: loadw */
+    var42 = ptr0[i];
+    /* 20: addw */
+    var43.i = var42.i + var54.i;
+    /* 21: storew */
+    ptr0[i] = var43;
+  }
+
+}
+
+void
+video_orc_resample_v_muladdtaps4_u8_lq (gint16 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
+    const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, int p1,
+    int p2, int p3, int p4, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 38, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 114, 101, 115,
+        97, 109, 112, 108, 101, 95, 118, 95, 109, 117, 108, 97, 100, 100, 116,
+            97,
+        112, 115, 52, 95, 117, 56, 95, 108, 113, 11, 2, 2, 12, 1, 1, 12,
+        1, 1, 12, 1, 1, 12, 1, 1, 16, 2, 16, 2, 16, 2, 16, 2,
+        20, 2, 20, 2, 150, 32, 4, 89, 32, 32, 24, 150, 33, 5, 89, 33,
+        33, 25, 70, 32, 32, 33, 150, 33, 6, 89, 33, 33, 26, 70, 32, 32,
+        33, 150, 33, 7, 89, 33, 33, 27, 70, 32, 32, 33, 70, 0, 0, 32,
+        2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_orc_resample_v_muladdtaps4_u8_lq);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "video_orc_resample_v_muladdtaps4_u8_lq");
+      orc_program_set_backup_function (p,
+          _backup_video_orc_resample_v_muladdtaps4_u8_lq);
+      orc_program_add_destination (p, 2, "d1");
+      orc_program_add_source (p, 1, "s1");
+      orc_program_add_source (p, 1, "s2");
+      orc_program_add_source (p, 1, "s3");
+      orc_program_add_source (p, 1, "s4");
+      orc_program_add_parameter (p, 2, "p1");
+      orc_program_add_parameter (p, 2, "p2");
+      orc_program_add_parameter (p, 2, "p3");
+      orc_program_add_parameter (p, 2, "p4");
+      orc_program_add_temporary (p, 2, "t1");
+      orc_program_add_temporary (p, 2, "t2");
+
+      orc_program_append_2 (p, "convubw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_P1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convubw", 0, ORC_VAR_T2, ORC_VAR_S2, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mullw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_P2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convubw", 0, ORC_VAR_T2, ORC_VAR_S3, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mullw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_P3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convubw", 0, ORC_VAR_T2, ORC_VAR_S4, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mullw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_P4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addw", 0, ORC_VAR_D1, ORC_VAR_D1, ORC_VAR_T1,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->arrays[ORC_VAR_S2] = (void *) s2;
+  ex->arrays[ORC_VAR_S3] = (void *) s3;
+  ex->arrays[ORC_VAR_S4] = (void *) s4;
+  ex->params[ORC_VAR_P1] = p1;
+  ex->params[ORC_VAR_P2] = p2;
+  ex->params[ORC_VAR_P3] = p3;
+  ex->params[ORC_VAR_P4] = p4;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_resample_v_muladdscaletaps4_u8_lq */
+#ifdef DISABLE_ORC
+void
+video_orc_resample_v_muladdscaletaps4_u8_lq (guint8 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
+    const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4,
+    const gint16 * ORC_RESTRICT s5, int p1, int p2, int p3, int p4, int n)
+{
+  int i;
+  orc_int8 *ORC_RESTRICT ptr0;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  const orc_int8 *ORC_RESTRICT ptr5;
+  const orc_int8 *ORC_RESTRICT ptr6;
+  const orc_int8 *ORC_RESTRICT ptr7;
+  const orc_union16 *ORC_RESTRICT ptr8;
+  orc_int8 var34;
+  orc_union16 var35;
+  orc_int8 var36;
+  orc_union16 var37;
+  orc_int8 var38;
+  orc_union16 var39;
+  orc_int8 var40;
+  orc_union16 var41;
+  orc_union16 var42;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var43;
+#else
+  orc_union16 var43;
+#endif
+  orc_int8 var44;
+  orc_union16 var45;
+  orc_union16 var46;
+  orc_union16 var47;
+  orc_union16 var48;
+  orc_union16 var49;
+  orc_union16 var50;
+  orc_union16 var51;
+  orc_union16 var52;
+  orc_union16 var53;
+  orc_union16 var54;
+  orc_union16 var55;
+  orc_union16 var56;
+  orc_union16 var57;
+  orc_union16 var58;
+
+  ptr0 = (orc_int8 *) d1;
+  ptr4 = (orc_int8 *) s1;
+  ptr5 = (orc_int8 *) s2;
+  ptr6 = (orc_int8 *) s3;
+  ptr7 = (orc_int8 *) s4;
+  ptr8 = (orc_union16 *) s5;
+
+  /* 2: loadpw */
+  var35.i = p1;
+  /* 6: loadpw */
+  var37.i = p2;
+  /* 11: loadpw */
+  var39.i = p3;
+  /* 16: loadpw */
+  var41.i = p4;
+  /* 21: loadpw */
+  var43.i = (int) 0x00000020;   /* 32 or 1.58101e-322f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadb */
+    var34 = ptr4[i];
+    /* 1: convubw */
+    var45.i = (orc_uint8) var34;
+    /* 3: mullw */
+    var46.i = (var45.i * var35.i) & 0xffff;
+    /* 4: loadb */
+    var36 = ptr5[i];
+    /* 5: convubw */
+    var47.i = (orc_uint8) var36;
+    /* 7: mullw */
+    var48.i = (var47.i * var37.i) & 0xffff;
+    /* 8: addw */
+    var49.i = var46.i + var48.i;
+    /* 9: loadb */
+    var38 = ptr6[i];
+    /* 10: convubw */
+    var50.i = (orc_uint8) var38;
+    /* 12: mullw */
+    var51.i = (var50.i * var39.i) & 0xffff;
+    /* 13: addw */
+    var52.i = var49.i + var51.i;
+    /* 14: loadb */
+    var40 = ptr7[i];
+    /* 15: convubw */
+    var53.i = (orc_uint8) var40;
+    /* 17: mullw */
+    var54.i = (var53.i * var41.i) & 0xffff;
+    /* 18: addw */
+    var55.i = var52.i + var54.i;
+    /* 19: loadw */
+    var42 = ptr8[i];
+    /* 20: addw */
+    var56.i = var55.i + var42.i;
+    /* 22: addw */
+    var57.i = var56.i + var43.i;
+    /* 23: shrsw */
+    var58.i = var57.i >> 6;
+    /* 24: convsuswb */
+    var44 = ORC_CLAMP_UB (var58.i);
+    /* 25: storeb */
+    ptr0[i] = var44;
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_resample_v_muladdscaletaps4_u8_lq (OrcExecutor *
+    ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_int8 *ORC_RESTRICT ptr0;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  const orc_int8 *ORC_RESTRICT ptr5;
+  const orc_int8 *ORC_RESTRICT ptr6;
+  const orc_int8 *ORC_RESTRICT ptr7;
+  const orc_union16 *ORC_RESTRICT ptr8;
+  orc_int8 var34;
+  orc_union16 var35;
+  orc_int8 var36;
+  orc_union16 var37;
+  orc_int8 var38;
+  orc_union16 var39;
+  orc_int8 var40;
+  orc_union16 var41;
+  orc_union16 var42;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var43;
+#else
+  orc_union16 var43;
+#endif
+  orc_int8 var44;
+  orc_union16 var45;
+  orc_union16 var46;
+  orc_union16 var47;
+  orc_union16 var48;
+  orc_union16 var49;
+  orc_union16 var50;
+  orc_union16 var51;
+  orc_union16 var52;
+  orc_union16 var53;
+  orc_union16 var54;
+  orc_union16 var55;
+  orc_union16 var56;
+  orc_union16 var57;
+  orc_union16 var58;
+
+  ptr0 = (orc_int8 *) ex->arrays[0];
+  ptr4 = (orc_int8 *) ex->arrays[4];
+  ptr5 = (orc_int8 *) ex->arrays[5];
+  ptr6 = (orc_int8 *) ex->arrays[6];
+  ptr7 = (orc_int8 *) ex->arrays[7];
+  ptr8 = (orc_union16 *) ex->arrays[8];
+
+  /* 2: loadpw */
+  var35.i = ex->params[24];
+  /* 6: loadpw */
+  var37.i = ex->params[25];
+  /* 11: loadpw */
+  var39.i = ex->params[26];
+  /* 16: loadpw */
+  var41.i = ex->params[27];
+  /* 21: loadpw */
+  var43.i = (int) 0x00000020;   /* 32 or 1.58101e-322f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadb */
+    var34 = ptr4[i];
+    /* 1: convubw */
+    var45.i = (orc_uint8) var34;
+    /* 3: mullw */
+    var46.i = (var45.i * var35.i) & 0xffff;
+    /* 4: loadb */
+    var36 = ptr5[i];
+    /* 5: convubw */
+    var47.i = (orc_uint8) var36;
+    /* 7: mullw */
+    var48.i = (var47.i * var37.i) & 0xffff;
+    /* 8: addw */
+    var49.i = var46.i + var48.i;
+    /* 9: loadb */
+    var38 = ptr6[i];
+    /* 10: convubw */
+    var50.i = (orc_uint8) var38;
+    /* 12: mullw */
+    var51.i = (var50.i * var39.i) & 0xffff;
+    /* 13: addw */
+    var52.i = var49.i + var51.i;
+    /* 14: loadb */
+    var40 = ptr7[i];
+    /* 15: convubw */
+    var53.i = (orc_uint8) var40;
+    /* 17: mullw */
+    var54.i = (var53.i * var41.i) & 0xffff;
+    /* 18: addw */
+    var55.i = var52.i + var54.i;
+    /* 19: loadw */
+    var42 = ptr8[i];
+    /* 20: addw */
+    var56.i = var55.i + var42.i;
+    /* 22: addw */
+    var57.i = var56.i + var43.i;
+    /* 23: shrsw */
+    var58.i = var57.i >> 6;
+    /* 24: convsuswb */
+    var44 = ORC_CLAMP_UB (var58.i);
+    /* 25: storeb */
+    ptr0[i] = var44;
+  }
+
+}
+
+void
+video_orc_resample_v_muladdscaletaps4_u8_lq (guint8 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
+    const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4,
+    const gint16 * ORC_RESTRICT s5, int p1, int p2, int p3, int p4, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 43, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 114, 101, 115,
+        97, 109, 112, 108, 101, 95, 118, 95, 109, 117, 108, 97, 100, 100, 115,
+            99,
+        97, 108, 101, 116, 97, 112, 115, 52, 95, 117, 56, 95, 108, 113, 11, 1,
+        1, 12, 1, 1, 12, 1, 1, 12, 1, 1, 12, 1, 1, 12, 2, 2,
+        14, 2, 32, 0, 0, 0, 14, 2, 6, 0, 0, 0, 16, 2, 16, 2,
+        16, 2, 16, 2, 20, 2, 20, 2, 150, 32, 4, 89, 32, 32, 24, 150,
+        33, 5, 89, 33, 33, 25, 70, 32, 32, 33, 150, 33, 6, 89, 33, 33,
+        26, 70, 32, 32, 33, 150, 33, 7, 89, 33, 33, 27, 70, 32, 32, 33,
+        70, 32, 32, 8, 70, 32, 32, 16, 94, 32, 32, 17, 160, 0, 32, 2,
+        0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_orc_resample_v_muladdscaletaps4_u8_lq);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "video_orc_resample_v_muladdscaletaps4_u8_lq");
+      orc_program_set_backup_function (p,
+          _backup_video_orc_resample_v_muladdscaletaps4_u8_lq);
+      orc_program_add_destination (p, 1, "d1");
+      orc_program_add_source (p, 1, "s1");
+      orc_program_add_source (p, 1, "s2");
+      orc_program_add_source (p, 1, "s3");
+      orc_program_add_source (p, 1, "s4");
+      orc_program_add_source (p, 2, "s5");
+      orc_program_add_constant (p, 2, 0x00000020, "c1");
+      orc_program_add_constant (p, 2, 0x00000006, "c2");
+      orc_program_add_parameter (p, 2, "p1");
+      orc_program_add_parameter (p, 2, "p2");
+      orc_program_add_parameter (p, 2, "p3");
+      orc_program_add_parameter (p, 2, "p4");
+      orc_program_add_temporary (p, 2, "t1");
+      orc_program_add_temporary (p, 2, "t2");
+
+      orc_program_append_2 (p, "convubw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_P1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convubw", 0, ORC_VAR_T2, ORC_VAR_S2, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mullw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_P2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convubw", 0, ORC_VAR_T2, ORC_VAR_S3, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mullw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_P3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convubw", 0, ORC_VAR_T2, ORC_VAR_S4, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mullw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_P4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_S5,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convsuswb", 0, ORC_VAR_D1, ORC_VAR_T1,
+          ORC_VAR_D1, ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->arrays[ORC_VAR_S2] = (void *) s2;
+  ex->arrays[ORC_VAR_S3] = (void *) s3;
+  ex->arrays[ORC_VAR_S4] = (void *) s4;
+  ex->arrays[ORC_VAR_S5] = (void *) s5;
+  ex->params[ORC_VAR_P1] = p1;
+  ex->params[ORC_VAR_P2] = p2;
+  ex->params[ORC_VAR_P3] = p3;
+  ex->params[ORC_VAR_P4] = p4;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_chroma_down_h2_u8 */
+#ifdef DISABLE_ORC
+void
+video_orc_chroma_down_h2_u8 (guint8 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, int n)
+{
+  int i;
+  orc_union64 *ORC_RESTRICT ptr0;
+  const orc_union64 *ORC_RESTRICT ptr4;
+  orc_union64 var37;
+  orc_union64 var38;
+  orc_union32 var39;
+  orc_union32 var40;
+  orc_union16 var41;
+  orc_union16 var42;
+  orc_union16 var43;
+  orc_union16 var44;
+  orc_union32 var45;
+
+  ptr0 = (orc_union64 *) d1;
+  ptr4 = (orc_union64 *) s1;
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadq */
+    var37 = ptr4[i];
+    /* 1: splitql */
+    {
+      orc_union64 _src;
+      _src.i = var37.i;
+      var39.i = _src.x2[1];
+      var40.i = _src.x2[0];
+    }
+    /* 2: splitlw */
+    {
+      orc_union32 _src;
+      _src.i = var40.i;
+      var41.i = _src.x2[1];
+      var42.i = _src.x2[0];
+    }
+    /* 3: select1lw */
+    {
+      orc_union32 _src;
+      _src.i = var39.i;
+      var43.i = _src.x2[1];
+    }
+    /* 4: avgub */
+    var44.x2[0] = ((orc_uint8) var41.x2[0] + (orc_uint8) var43.x2[0] + 1) >> 1;
+    var44.x2[1] = ((orc_uint8) var41.x2[1] + (orc_uint8) var43.x2[1] + 1) >> 1;
+    /* 5: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var42.i;
+      _dest.x2[1] = var44.i;
+      var45.i = _dest.i;
+    }
+    /* 6: mergelq */
+    {
+      orc_union64 _dest;
+      _dest.x2[0] = var45.i;
+      _dest.x2[1] = var39.i;
+      var38.i = _dest.i;
+    }
+    /* 7: storeq */
+    ptr0[i] = var38;
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_chroma_down_h2_u8 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union64 *ORC_RESTRICT ptr0;
+  const orc_union64 *ORC_RESTRICT ptr4;
+  orc_union64 var37;
+  orc_union64 var38;
+  orc_union32 var39;
+  orc_union32 var40;
+  orc_union16 var41;
+  orc_union16 var42;
+  orc_union16 var43;
+  orc_union16 var44;
+  orc_union32 var45;
+
+  ptr0 = (orc_union64 *) ex->arrays[0];
+  ptr4 = (orc_union64 *) ex->arrays[4];
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadq */
+    var37 = ptr4[i];
+    /* 1: splitql */
+    {
+      orc_union64 _src;
+      _src.i = var37.i;
+      var39.i = _src.x2[1];
+      var40.i = _src.x2[0];
+    }
+    /* 2: splitlw */
+    {
+      orc_union32 _src;
+      _src.i = var40.i;
+      var41.i = _src.x2[1];
+      var42.i = _src.x2[0];
+    }
+    /* 3: select1lw */
+    {
+      orc_union32 _src;
+      _src.i = var39.i;
+      var43.i = _src.x2[1];
+    }
+    /* 4: avgub */
+    var44.x2[0] = ((orc_uint8) var41.x2[0] + (orc_uint8) var43.x2[0] + 1) >> 1;
+    var44.x2[1] = ((orc_uint8) var41.x2[1] + (orc_uint8) var43.x2[1] + 1) >> 1;
+    /* 5: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var42.i;
+      _dest.x2[1] = var44.i;
+      var45.i = _dest.i;
+    }
+    /* 6: mergelq */
+    {
+      orc_union64 _dest;
+      _dest.x2[0] = var45.i;
+      _dest.x2[1] = var39.i;
+      var38.i = _dest.i;
+    }
+    /* 7: storeq */
+    ptr0[i] = var38;
+  }
+
+}
+
+void
+video_orc_chroma_down_h2_u8 (guint8 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 27, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 99, 104, 114,
+        111, 109, 97, 95, 100, 111, 119, 110, 95, 104, 50, 95, 117, 56, 11, 8,
+        8, 12, 8, 8, 20, 4, 20, 4, 20, 2, 20, 2, 20, 2, 197, 33,
+        32, 4, 198, 35, 34, 32, 191, 36, 33, 21, 1, 39, 35, 35, 36, 195,
+        32, 34, 35, 194, 0, 32, 33, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_chroma_down_h2_u8);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "video_orc_chroma_down_h2_u8");
+      orc_program_set_backup_function (p, _backup_video_orc_chroma_down_h2_u8);
+      orc_program_add_destination (p, 8, "d1");
+      orc_program_add_source (p, 8, "s1");
+      orc_program_add_temporary (p, 4, "t1");
+      orc_program_add_temporary (p, 4, "t2");
+      orc_program_add_temporary (p, 2, "t3");
+      orc_program_add_temporary (p, 2, "t4");
+      orc_program_add_temporary (p, 2, "t5");
+
+      orc_program_append_2 (p, "splitql", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_S1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_T1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "select1lw", 0, ORC_VAR_T5, ORC_VAR_T2,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "avgub", 1, ORC_VAR_T4, ORC_VAR_T4, ORC_VAR_T5,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T1, ORC_VAR_T3, ORC_VAR_T4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergelq", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T2,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_chroma_down_v2_u8 */
+#ifdef DISABLE_ORC
+void
+video_orc_chroma_down_v2_u8 (guint8 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, int n)
+{
+  int i;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  const orc_union32 *ORC_RESTRICT ptr5;
+  orc_union32 var35;
+  orc_union32 var36;
+  orc_union32 var37;
+  orc_union16 var38;
+  orc_union16 var39;
+  orc_union16 var40;
+  orc_union16 var41;
+
+  ptr0 = (orc_union32 *) d1;
+  ptr4 = (orc_union32 *) s1;
+  ptr5 = (orc_union32 *) s2;
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var35 = ptr4[i];
+    /* 1: splitlw */
+    {
+      orc_union32 _src;
+      _src.i = var35.i;
+      var38.i = _src.x2[1];
+      var39.i = _src.x2[0];
+    }
+    /* 2: loadl */
+    var36 = ptr5[i];
+    /* 3: select1lw */
+    {
+      orc_union32 _src;
+      _src.i = var36.i;
+      var40.i = _src.x2[1];
+    }
+    /* 4: avgub */
+    var41.x2[0] = ((orc_uint8) var38.x2[0] + (orc_uint8) var40.x2[0] + 1) >> 1;
+    var41.x2[1] = ((orc_uint8) var38.x2[1] + (orc_uint8) var40.x2[1] + 1) >> 1;
+    /* 5: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var39.i;
+      _dest.x2[1] = var41.i;
+      var37.i = _dest.i;
+    }
+    /* 6: storel */
+    ptr0[i] = var37;
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_chroma_down_v2_u8 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  const orc_union32 *ORC_RESTRICT ptr5;
+  orc_union32 var35;
+  orc_union32 var36;
+  orc_union32 var37;
+  orc_union16 var38;
+  orc_union16 var39;
+  orc_union16 var40;
+  orc_union16 var41;
+
+  ptr0 = (orc_union32 *) ex->arrays[0];
+  ptr4 = (orc_union32 *) ex->arrays[4];
+  ptr5 = (orc_union32 *) ex->arrays[5];
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var35 = ptr4[i];
+    /* 1: splitlw */
+    {
+      orc_union32 _src;
+      _src.i = var35.i;
+      var38.i = _src.x2[1];
+      var39.i = _src.x2[0];
+    }
+    /* 2: loadl */
+    var36 = ptr5[i];
+    /* 3: select1lw */
+    {
+      orc_union32 _src;
+      _src.i = var36.i;
+      var40.i = _src.x2[1];
+    }
+    /* 4: avgub */
+    var41.x2[0] = ((orc_uint8) var38.x2[0] + (orc_uint8) var40.x2[0] + 1) >> 1;
+    var41.x2[1] = ((orc_uint8) var38.x2[1] + (orc_uint8) var40.x2[1] + 1) >> 1;
+    /* 5: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var39.i;
+      _dest.x2[1] = var41.i;
+      var37.i = _dest.i;
+    }
+    /* 6: storel */
+    ptr0[i] = var37;
+  }
+
+}
+
+void
+video_orc_chroma_down_v2_u8 (guint8 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 27, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 99, 104, 114,
+        111, 109, 97, 95, 100, 111, 119, 110, 95, 118, 50, 95, 117, 56, 11, 4,
+        4, 12, 4, 4, 12, 4, 4, 20, 2, 20, 2, 20, 2, 198, 33, 32,
+        4, 191, 34, 5, 21, 1, 39, 33, 33, 34, 195, 0, 32, 33, 2, 0,
+
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_chroma_down_v2_u8);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "video_orc_chroma_down_v2_u8");
+      orc_program_set_backup_function (p, _backup_video_orc_chroma_down_v2_u8);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 4, "s1");
+      orc_program_add_source (p, 4, "s2");
+      orc_program_add_temporary (p, 2, "t1");
+      orc_program_add_temporary (p, 2, "t2");
+      orc_program_add_temporary (p, 2, "t3");
+
+      orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_S1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "select1lw", 0, ORC_VAR_T3, ORC_VAR_S2,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "avgub", 1, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_T3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T2,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->arrays[ORC_VAR_S2] = (void *) s2;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_chroma_up_v2_u8 */
+#ifdef DISABLE_ORC
+void
+video_orc_chroma_up_v2_u8 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
+    const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, int n)
+{
+  int i;
+  orc_union32 *ORC_RESTRICT ptr0;
+  orc_union32 *ORC_RESTRICT ptr1;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  const orc_union32 *ORC_RESTRICT ptr5;
+  orc_union32 var39;
+  orc_union32 var40;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var41;
+#else
+  orc_union32 var41;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var42;
+#else
+  orc_union32 var42;
+#endif
+  orc_union32 var43;
+  orc_union32 var44;
+  orc_union16 var45;
+  orc_union16 var46;
+  orc_union16 var47;
+  orc_union16 var48;
+  orc_union32 var49;
+  orc_union32 var50;
+  orc_union32 var51;
+  orc_union32 var52;
+  orc_union32 var53;
+  orc_union32 var54;
+  orc_union16 var55;
+  orc_union32 var56;
+  orc_union32 var57;
+  orc_union32 var58;
+  orc_union32 var59;
+  orc_union16 var60;
+
+  ptr0 = (orc_union32 *) d1;
+  ptr1 = (orc_union32 *) d2;
+  ptr4 = (orc_union32 *) s1;
+  ptr5 = (orc_union32 *) s2;
+
+  /* 6: loadpw */
+  var41.x2[0] = (int) 0x00000003;       /* 3 or 1.4822e-323f */
+  var41.x2[1] = (int) 0x00000003;       /* 3 or 1.4822e-323f */
+  /* 9: loadpw */
+  var42.x2[0] = (int) 0x00000002;       /* 2 or 9.88131e-324f */
+  var42.x2[1] = (int) 0x00000002;       /* 2 or 9.88131e-324f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var39 = ptr4[i];
+    /* 1: splitlw */
+    {
+      orc_union32 _src;
+      _src.i = var39.i;
+      var45.i = _src.x2[1];
+      var46.i = _src.x2[0];
+    }
+    /* 2: loadl */
+    var40 = ptr5[i];
+    /* 3: splitlw */
+    {
+      orc_union32 _src;
+      _src.i = var40.i;
+      var47.i = _src.x2[1];
+      var48.i = _src.x2[0];
+    }
+    /* 4: convubw */
+    var49.x2[0] = (orc_uint8) var45.x2[0];
+    var49.x2[1] = (orc_uint8) var45.x2[1];
+    /* 5: convubw */
+    var50.x2[0] = (orc_uint8) var47.x2[0];
+    var50.x2[1] = (orc_uint8) var47.x2[1];
+    /* 7: mullw */
+    var51.x2[0] = (var49.x2[0] * var41.x2[0]) & 0xffff;
+    var51.x2[1] = (var49.x2[1] * var41.x2[1]) & 0xffff;
+    /* 8: addw */
+    var52.x2[0] = var51.x2[0] + var50.x2[0];
+    var52.x2[1] = var51.x2[1] + var50.x2[1];
+    /* 10: addw */
+    var53.x2[0] = var52.x2[0] + var42.x2[0];
+    var53.x2[1] = var52.x2[1] + var42.x2[1];
+    /* 11: shruw */
+    var54.x2[0] = ((orc_uint16) var53.x2[0]) >> 2;
+    var54.x2[1] = ((orc_uint16) var53.x2[1]) >> 2;
+    /* 12: convsuswb */
+    var55.x2[0] = ORC_CLAMP_UB (var54.x2[0]);
+    var55.x2[1] = ORC_CLAMP_UB (var54.x2[1]);
+    /* 13: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var46.i;
+      _dest.x2[1] = var55.i;
+      var43.i = _dest.i;
+    }
+    /* 14: storel */
+    ptr0[i] = var43;
+    /* 15: mullw */
+    var56.x2[0] = (var50.x2[0] * var41.x2[0]) & 0xffff;
+    var56.x2[1] = (var50.x2[1] * var41.x2[1]) & 0xffff;
+    /* 16: addw */
+    var57.x2[0] = var56.x2[0] + var49.x2[0];
+    var57.x2[1] = var56.x2[1] + var49.x2[1];
+    /* 17: addw */
+    var58.x2[0] = var57.x2[0] + var42.x2[0];
+    var58.x2[1] = var57.x2[1] + var42.x2[1];
+    /* 18: shruw */
+    var59.x2[0] = ((orc_uint16) var58.x2[0]) >> 2;
+    var59.x2[1] = ((orc_uint16) var58.x2[1]) >> 2;
+    /* 19: convsuswb */
+    var60.x2[0] = ORC_CLAMP_UB (var59.x2[0]);
+    var60.x2[1] = ORC_CLAMP_UB (var59.x2[1]);
+    /* 20: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var48.i;
+      _dest.x2[1] = var60.i;
+      var44.i = _dest.i;
+    }
+    /* 21: storel */
+    ptr1[i] = var44;
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_chroma_up_v2_u8 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union32 *ORC_RESTRICT ptr0;
+  orc_union32 *ORC_RESTRICT ptr1;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  const orc_union32 *ORC_RESTRICT ptr5;
+  orc_union32 var39;
+  orc_union32 var40;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var41;
+#else
+  orc_union32 var41;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var42;
+#else
+  orc_union32 var42;
+#endif
+  orc_union32 var43;
+  orc_union32 var44;
+  orc_union16 var45;
+  orc_union16 var46;
+  orc_union16 var47;
+  orc_union16 var48;
+  orc_union32 var49;
+  orc_union32 var50;
+  orc_union32 var51;
+  orc_union32 var52;
+  orc_union32 var53;
+  orc_union32 var54;
+  orc_union16 var55;
+  orc_union32 var56;
+  orc_union32 var57;
+  orc_union32 var58;
+  orc_union32 var59;
+  orc_union16 var60;
+
+  ptr0 = (orc_union32 *) ex->arrays[0];
+  ptr1 = (orc_union32 *) ex->arrays[1];
+  ptr4 = (orc_union32 *) ex->arrays[4];
+  ptr5 = (orc_union32 *) ex->arrays[5];
+
+  /* 6: loadpw */
+  var41.x2[0] = (int) 0x00000003;       /* 3 or 1.4822e-323f */
+  var41.x2[1] = (int) 0x00000003;       /* 3 or 1.4822e-323f */
+  /* 9: loadpw */
+  var42.x2[0] = (int) 0x00000002;       /* 2 or 9.88131e-324f */
+  var42.x2[1] = (int) 0x00000002;       /* 2 or 9.88131e-324f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var39 = ptr4[i];
+    /* 1: splitlw */
+    {
+      orc_union32 _src;
+      _src.i = var39.i;
+      var45.i = _src.x2[1];
+      var46.i = _src.x2[0];
+    }
+    /* 2: loadl */
+    var40 = ptr5[i];
+    /* 3: splitlw */
+    {
+      orc_union32 _src;
+      _src.i = var40.i;
+      var47.i = _src.x2[1];
+      var48.i = _src.x2[0];
+    }
+    /* 4: convubw */
+    var49.x2[0] = (orc_uint8) var45.x2[0];
+    var49.x2[1] = (orc_uint8) var45.x2[1];
+    /* 5: convubw */
+    var50.x2[0] = (orc_uint8) var47.x2[0];
+    var50.x2[1] = (orc_uint8) var47.x2[1];
+    /* 7: mullw */
+    var51.x2[0] = (var49.x2[0] * var41.x2[0]) & 0xffff;
+    var51.x2[1] = (var49.x2[1] * var41.x2[1]) & 0xffff;
+    /* 8: addw */
+    var52.x2[0] = var51.x2[0] + var50.x2[0];
+    var52.x2[1] = var51.x2[1] + var50.x2[1];
+    /* 10: addw */
+    var53.x2[0] = var52.x2[0] + var42.x2[0];
+    var53.x2[1] = var52.x2[1] + var42.x2[1];
+    /* 11: shruw */
+    var54.x2[0] = ((orc_uint16) var53.x2[0]) >> 2;
+    var54.x2[1] = ((orc_uint16) var53.x2[1]) >> 2;
+    /* 12: convsuswb */
+    var55.x2[0] = ORC_CLAMP_UB (var54.x2[0]);
+    var55.x2[1] = ORC_CLAMP_UB (var54.x2[1]);
+    /* 13: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var46.i;
+      _dest.x2[1] = var55.i;
+      var43.i = _dest.i;
+    }
+    /* 14: storel */
+    ptr0[i] = var43;
+    /* 15: mullw */
+    var56.x2[0] = (var50.x2[0] * var41.x2[0]) & 0xffff;
+    var56.x2[1] = (var50.x2[1] * var41.x2[1]) & 0xffff;
+    /* 16: addw */
+    var57.x2[0] = var56.x2[0] + var49.x2[0];
+    var57.x2[1] = var56.x2[1] + var49.x2[1];
+    /* 17: addw */
+    var58.x2[0] = var57.x2[0] + var42.x2[0];
+    var58.x2[1] = var57.x2[1] + var42.x2[1];
+    /* 18: shruw */
+    var59.x2[0] = ((orc_uint16) var58.x2[0]) >> 2;
+    var59.x2[1] = ((orc_uint16) var58.x2[1]) >> 2;
+    /* 19: convsuswb */
+    var60.x2[0] = ORC_CLAMP_UB (var59.x2[0]);
+    var60.x2[1] = ORC_CLAMP_UB (var59.x2[1]);
+    /* 20: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var48.i;
+      _dest.x2[1] = var60.i;
+      var44.i = _dest.i;
+    }
+    /* 21: storel */
+    ptr1[i] = var44;
+  }
+
+}
+
+void
+video_orc_chroma_up_v2_u8 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
+    const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 25, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 99, 104, 114,
+        111, 109, 97, 95, 117, 112, 95, 118, 50, 95, 117, 56, 11, 4, 4, 11,
+        4, 4, 12, 4, 4, 12, 4, 4, 14, 2, 3, 0, 0, 0, 14, 2,
+        2, 0, 0, 0, 20, 2, 20, 2, 20, 2, 20, 2, 20, 4, 20, 4,
+        20, 4, 198, 34, 32, 4, 198, 35, 33, 5, 21, 1, 150, 36, 34, 21,
+        1, 150, 37, 35, 21, 1, 89, 38, 36, 16, 21, 1, 70, 38, 38, 37,
+        21, 1, 70, 38, 38, 17, 21, 1, 95, 38, 38, 17, 21, 1, 160, 34,
+        38, 195, 0, 32, 34, 21, 1, 89, 38, 37, 16, 21, 1, 70, 38, 38,
+        36, 21, 1, 70, 38, 38, 17, 21, 1, 95, 38, 38, 17, 21, 1, 160,
+        35, 38, 195, 1, 33, 35, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_chroma_up_v2_u8);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "video_orc_chroma_up_v2_u8");
+      orc_program_set_backup_function (p, _backup_video_orc_chroma_up_v2_u8);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_destination (p, 4, "d2");
+      orc_program_add_source (p, 4, "s1");
+      orc_program_add_source (p, 4, "s2");
+      orc_program_add_constant (p, 2, 0x00000003, "c1");
+      orc_program_add_constant (p, 2, 0x00000002, "c2");
+      orc_program_add_temporary (p, 2, "t1");
+      orc_program_add_temporary (p, 2, "t2");
+      orc_program_add_temporary (p, 2, "t3");
+      orc_program_add_temporary (p, 2, "t4");
+      orc_program_add_temporary (p, 4, "t5");
+      orc_program_add_temporary (p, 4, "t6");
+      orc_program_add_temporary (p, 4, "t7");
+
+      orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T3, ORC_VAR_T1, ORC_VAR_S1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T4, ORC_VAR_T2, ORC_VAR_S2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convubw", 1, ORC_VAR_T5, ORC_VAR_T3, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convubw", 1, ORC_VAR_T6, ORC_VAR_T4, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mullw", 1, ORC_VAR_T7, ORC_VAR_T5, ORC_VAR_C1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addw", 1, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_T6,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addw", 1, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_C2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shruw", 1, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_C2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convsuswb", 1, ORC_VAR_T3, ORC_VAR_T7,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mullw", 1, ORC_VAR_T7, ORC_VAR_T6, ORC_VAR_C1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addw", 1, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_T5,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addw", 1, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_C2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shruw", 1, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_C2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convsuswb", 1, ORC_VAR_T4, ORC_VAR_T7,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D2, ORC_VAR_T2, ORC_VAR_T4,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_D2] = d2;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->arrays[ORC_VAR_S2] = (void *) s2;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_chroma_up_v2_u16 */
+#ifdef DISABLE_ORC
+void
+video_orc_chroma_up_v2_u16 (guint16 * ORC_RESTRICT d1,
+    guint16 * ORC_RESTRICT d2, const guint16 * ORC_RESTRICT s1,
+    const guint16 * ORC_RESTRICT s2, int n)
+{
+  int i;
+  orc_union64 *ORC_RESTRICT ptr0;
+  orc_union64 *ORC_RESTRICT ptr1;
+  const orc_union64 *ORC_RESTRICT ptr4;
+  const orc_union64 *ORC_RESTRICT ptr5;
+  orc_union64 var39;
+  orc_union64 var40;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union64 var41;
+#else
+  orc_union64 var41;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union64 var42;
+#else
+  orc_union64 var42;
+#endif
+  orc_union64 var43;
+  orc_union64 var44;
+  orc_union32 var45;
+  orc_union32 var46;
+  orc_union32 var47;
+  orc_union32 var48;
+  orc_union64 var49;
+  orc_union64 var50;
+  orc_union64 var51;
+  orc_union64 var52;
+  orc_union64 var53;
+  orc_union64 var54;
+  orc_union32 var55;
+  orc_union64 var56;
+  orc_union64 var57;
+  orc_union64 var58;
+  orc_union64 var59;
+  orc_union32 var60;
+
+  ptr0 = (orc_union64 *) d1;
+  ptr1 = (orc_union64 *) d2;
+  ptr4 = (orc_union64 *) s1;
+  ptr5 = (orc_union64 *) s2;
+
+  /* 6: loadpl */
+  var41.x2[0] = (int) 0x00000003;       /* 3 or 1.4822e-323f */
+  var41.x2[1] = (int) 0x00000003;       /* 3 or 1.4822e-323f */
+  /* 9: loadpl */
+  var42.x2[0] = (int) 0x00000002;       /* 2 or 9.88131e-324f */
+  var42.x2[1] = (int) 0x00000002;       /* 2 or 9.88131e-324f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadq */
+    var39 = ptr4[i];
+    /* 1: splitql */
+    {
+      orc_union64 _src;
+      _src.i = var39.i;
+      var45.i = _src.x2[1];
+      var46.i = _src.x2[0];
+    }
+    /* 2: loadq */
+    var40 = ptr5[i];
+    /* 3: splitql */
+    {
+      orc_union64 _src;
+      _src.i = var40.i;
+      var47.i = _src.x2[1];
+      var48.i = _src.x2[0];
+    }
+    /* 4: convuwl */
+    var49.x2[0] = (orc_uint16) var45.x2[0];
+    var49.x2[1] = (orc_uint16) var45.x2[1];
+    /* 5: convuwl */
+    var50.x2[0] = (orc_uint16) var47.x2[0];
+    var50.x2[1] = (orc_uint16) var47.x2[1];
+    /* 7: mulll */
+    var51.x2[0] =
+        (((orc_uint32) var49.x2[0]) * ((orc_uint32) var41.x2[0])) & 0xffffffff;
+    var51.x2[1] =
+        (((orc_uint32) var49.x2[1]) * ((orc_uint32) var41.x2[1])) & 0xffffffff;
+    /* 8: addl */
+    var52.x2[0] = ((orc_uint32) var51.x2[0]) + ((orc_uint32) var50.x2[0]);
+    var52.x2[1] = ((orc_uint32) var51.x2[1]) + ((orc_uint32) var50.x2[1]);
+    /* 10: addl */
+    var53.x2[0] = ((orc_uint32) var52.x2[0]) + ((orc_uint32) var42.x2[0]);
+    var53.x2[1] = ((orc_uint32) var52.x2[1]) + ((orc_uint32) var42.x2[1]);
+    /* 11: shrul */
+    var54.x2[0] = ((orc_uint32) var53.x2[0]) >> 2;
+    var54.x2[1] = ((orc_uint32) var53.x2[1]) >> 2;
+    /* 12: convsuslw */
+    var55.x2[0] = ORC_CLAMP_UW (var54.x2[0]);
+    var55.x2[1] = ORC_CLAMP_UW (var54.x2[1]);
+    /* 13: mergelq */
+    {
+      orc_union64 _dest;
+      _dest.x2[0] = var46.i;
+      _dest.x2[1] = var55.i;
+      var43.i = _dest.i;
+    }
+    /* 14: storeq */
+    ptr0[i] = var43;
+    /* 15: mulll */
+    var56.x2[0] =
+        (((orc_uint32) var50.x2[0]) * ((orc_uint32) var41.x2[0])) & 0xffffffff;
+    var56.x2[1] =
+        (((orc_uint32) var50.x2[1]) * ((orc_uint32) var41.x2[1])) & 0xffffffff;
+    /* 16: addl */
+    var57.x2[0] = ((orc_uint32) var56.x2[0]) + ((orc_uint32) var49.x2[0]);
+    var57.x2[1] = ((orc_uint32) var56.x2[1]) + ((orc_uint32) var49.x2[1]);
+    /* 17: addl */
+    var58.x2[0] = ((orc_uint32) var57.x2[0]) + ((orc_uint32) var42.x2[0]);
+    var58.x2[1] = ((orc_uint32) var57.x2[1]) + ((orc_uint32) var42.x2[1]);
+    /* 18: shrul */
+    var59.x2[0] = ((orc_uint32) var58.x2[0]) >> 2;
+    var59.x2[1] = ((orc_uint32) var58.x2[1]) >> 2;
+    /* 19: convsuslw */
+    var60.x2[0] = ORC_CLAMP_UW (var59.x2[0]);
+    var60.x2[1] = ORC_CLAMP_UW (var59.x2[1]);
+    /* 20: mergelq */
+    {
+      orc_union64 _dest;
+      _dest.x2[0] = var48.i;
+      _dest.x2[1] = var60.i;
+      var44.i = _dest.i;
+    }
+    /* 21: storeq */
+    ptr1[i] = var44;
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_chroma_up_v2_u16 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union64 *ORC_RESTRICT ptr0;
+  orc_union64 *ORC_RESTRICT ptr1;
+  const orc_union64 *ORC_RESTRICT ptr4;
+  const orc_union64 *ORC_RESTRICT ptr5;
+  orc_union64 var39;
+  orc_union64 var40;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union64 var41;
+#else
+  orc_union64 var41;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union64 var42;
+#else
+  orc_union64 var42;
+#endif
+  orc_union64 var43;
+  orc_union64 var44;
+  orc_union32 var45;
+  orc_union32 var46;
+  orc_union32 var47;
+  orc_union32 var48;
+  orc_union64 var49;
+  orc_union64 var50;
+  orc_union64 var51;
+  orc_union64 var52;
+  orc_union64 var53;
+  orc_union64 var54;
+  orc_union32 var55;
+  orc_union64 var56;
+  orc_union64 var57;
+  orc_union64 var58;
+  orc_union64 var59;
+  orc_union32 var60;
+
+  ptr0 = (orc_union64 *) ex->arrays[0];
+  ptr1 = (orc_union64 *) ex->arrays[1];
+  ptr4 = (orc_union64 *) ex->arrays[4];
+  ptr5 = (orc_union64 *) ex->arrays[5];
+
+  /* 6: loadpl */
+  var41.x2[0] = (int) 0x00000003;       /* 3 or 1.4822e-323f */
+  var41.x2[1] = (int) 0x00000003;       /* 3 or 1.4822e-323f */
+  /* 9: loadpl */
+  var42.x2[0] = (int) 0x00000002;       /* 2 or 9.88131e-324f */
+  var42.x2[1] = (int) 0x00000002;       /* 2 or 9.88131e-324f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadq */
+    var39 = ptr4[i];
+    /* 1: splitql */
+    {
+      orc_union64 _src;
+      _src.i = var39.i;
+      var45.i = _src.x2[1];
+      var46.i = _src.x2[0];
+    }
+    /* 2: loadq */
+    var40 = ptr5[i];
+    /* 3: splitql */
+    {
+      orc_union64 _src;
+      _src.i = var40.i;
+      var47.i = _src.x2[1];
+      var48.i = _src.x2[0];
+    }
+    /* 4: convuwl */
+    var49.x2[0] = (orc_uint16) var45.x2[0];
+    var49.x2[1] = (orc_uint16) var45.x2[1];
+    /* 5: convuwl */
+    var50.x2[0] = (orc_uint16) var47.x2[0];
+    var50.x2[1] = (orc_uint16) var47.x2[1];
+    /* 7: mulll */
+    var51.x2[0] =
+        (((orc_uint32) var49.x2[0]) * ((orc_uint32) var41.x2[0])) & 0xffffffff;
+    var51.x2[1] =
+        (((orc_uint32) var49.x2[1]) * ((orc_uint32) var41.x2[1])) & 0xffffffff;
+    /* 8: addl */
+    var52.x2[0] = ((orc_uint32) var51.x2[0]) + ((orc_uint32) var50.x2[0]);
+    var52.x2[1] = ((orc_uint32) var51.x2[1]) + ((orc_uint32) var50.x2[1]);
+    /* 10: addl */
+    var53.x2[0] = ((orc_uint32) var52.x2[0]) + ((orc_uint32) var42.x2[0]);
+    var53.x2[1] = ((orc_uint32) var52.x2[1]) + ((orc_uint32) var42.x2[1]);
+    /* 11: shrul */
+    var54.x2[0] = ((orc_uint32) var53.x2[0]) >> 2;
+    var54.x2[1] = ((orc_uint32) var53.x2[1]) >> 2;
+    /* 12: convsuslw */
+    var55.x2[0] = ORC_CLAMP_UW (var54.x2[0]);
+    var55.x2[1] = ORC_CLAMP_UW (var54.x2[1]);
+    /* 13: mergelq */
+    {
+      orc_union64 _dest;
+      _dest.x2[0] = var46.i;
+      _dest.x2[1] = var55.i;
+      var43.i = _dest.i;
+    }
+    /* 14: storeq */
+    ptr0[i] = var43;
+    /* 15: mulll */
+    var56.x2[0] =
+        (((orc_uint32) var50.x2[0]) * ((orc_uint32) var41.x2[0])) & 0xffffffff;
+    var56.x2[1] =
+        (((orc_uint32) var50.x2[1]) * ((orc_uint32) var41.x2[1])) & 0xffffffff;
+    /* 16: addl */
+    var57.x2[0] = ((orc_uint32) var56.x2[0]) + ((orc_uint32) var49.x2[0]);
+    var57.x2[1] = ((orc_uint32) var56.x2[1]) + ((orc_uint32) var49.x2[1]);
+    /* 17: addl */
+    var58.x2[0] = ((orc_uint32) var57.x2[0]) + ((orc_uint32) var42.x2[0]);
+    var58.x2[1] = ((orc_uint32) var57.x2[1]) + ((orc_uint32) var42.x2[1]);
+    /* 18: shrul */
+    var59.x2[0] = ((orc_uint32) var58.x2[0]) >> 2;
+    var59.x2[1] = ((orc_uint32) var58.x2[1]) >> 2;
+    /* 19: convsuslw */
+    var60.x2[0] = ORC_CLAMP_UW (var59.x2[0]);
+    var60.x2[1] = ORC_CLAMP_UW (var59.x2[1]);
+    /* 20: mergelq */
+    {
+      orc_union64 _dest;
+      _dest.x2[0] = var48.i;
+      _dest.x2[1] = var60.i;
+      var44.i = _dest.i;
+    }
+    /* 21: storeq */
+    ptr1[i] = var44;
+  }
+
+}
+
+void
+video_orc_chroma_up_v2_u16 (guint16 * ORC_RESTRICT d1,
+    guint16 * ORC_RESTRICT d2, const guint16 * ORC_RESTRICT s1,
+    const guint16 * ORC_RESTRICT s2, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 26, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 99, 104, 114,
+        111, 109, 97, 95, 117, 112, 95, 118, 50, 95, 117, 49, 54, 11, 8, 8,
+        11, 8, 8, 12, 8, 8, 12, 8, 8, 14, 4, 3, 0, 0, 0, 14,
+        4, 2, 0, 0, 0, 20, 4, 20, 4, 20, 4, 20, 4, 20, 8, 20,
+        8, 20, 8, 197, 34, 32, 4, 197, 35, 33, 5, 21, 1, 154, 36, 34,
+        21, 1, 154, 37, 35, 21, 1, 120, 38, 36, 16, 21, 1, 103, 38, 38,
+        37, 21, 1, 103, 38, 38, 17, 21, 1, 126, 38, 38, 17, 21, 1, 166,
+        34, 38, 194, 0, 32, 34, 21, 1, 120, 38, 37, 16, 21, 1, 103, 38,
+        38, 36, 21, 1, 103, 38, 38, 17, 21, 1, 126, 38, 38, 17, 21, 1,
+        166, 35, 38, 194, 1, 33, 35, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_chroma_up_v2_u16);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "video_orc_chroma_up_v2_u16");
+      orc_program_set_backup_function (p, _backup_video_orc_chroma_up_v2_u16);
+      orc_program_add_destination (p, 8, "d1");
+      orc_program_add_destination (p, 8, "d2");
+      orc_program_add_source (p, 8, "s1");
+      orc_program_add_source (p, 8, "s2");
+      orc_program_add_constant (p, 4, 0x00000003, "c1");
+      orc_program_add_constant (p, 4, 0x00000002, "c2");
+      orc_program_add_temporary (p, 4, "t1");
+      orc_program_add_temporary (p, 4, "t2");
+      orc_program_add_temporary (p, 4, "t3");
+      orc_program_add_temporary (p, 4, "t4");
+      orc_program_add_temporary (p, 8, "t5");
+      orc_program_add_temporary (p, 8, "t6");
+      orc_program_add_temporary (p, 8, "t7");
+
+      orc_program_append_2 (p, "splitql", 0, ORC_VAR_T3, ORC_VAR_T1, ORC_VAR_S1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "splitql", 0, ORC_VAR_T4, ORC_VAR_T2, ORC_VAR_S2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convuwl", 1, ORC_VAR_T5, ORC_VAR_T3, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convuwl", 1, ORC_VAR_T6, ORC_VAR_T4, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mulll", 1, ORC_VAR_T7, ORC_VAR_T5, ORC_VAR_C1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addl", 1, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_T6,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addl", 1, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_C2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shrul", 1, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_C2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convsuslw", 1, ORC_VAR_T3, ORC_VAR_T7,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "mergelq", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mulll", 1, ORC_VAR_T7, ORC_VAR_T6, ORC_VAR_C1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addl", 1, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_T5,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addl", 1, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_C2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shrul", 1, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_C2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convsuslw", 1, ORC_VAR_T4, ORC_VAR_T7,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "mergelq", 0, ORC_VAR_D2, ORC_VAR_T2, ORC_VAR_T4,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_D2] = d2;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->arrays[ORC_VAR_S2] = (void *) s2;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_chroma_down_v2_u16 */
+#ifdef DISABLE_ORC
+void
+video_orc_chroma_down_v2_u16 (guint16 * ORC_RESTRICT d1,
+    const guint16 * ORC_RESTRICT s1, const guint16 * ORC_RESTRICT s2, int n)
+{
+  int i;
+  orc_union64 *ORC_RESTRICT ptr0;
+  const orc_union64 *ORC_RESTRICT ptr4;
+  const orc_union64 *ORC_RESTRICT ptr5;
+  orc_union64 var35;
+  orc_union64 var36;
+  orc_union64 var37;
+  orc_union32 var38;
+  orc_union32 var39;
+  orc_union32 var40;
+  orc_union32 var41;
+
+  ptr0 = (orc_union64 *) d1;
+  ptr4 = (orc_union64 *) s1;
+  ptr5 = (orc_union64 *) s2;
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadq */
+    var35 = ptr4[i];
+    /* 1: splitql */
+    {
+      orc_union64 _src;
+      _src.i = var35.i;
+      var38.i = _src.x2[1];
+      var39.i = _src.x2[0];
+    }
+    /* 2: loadq */
+    var36 = ptr5[i];
+    /* 3: select1ql */
+    {
+      orc_union64 _src;
+      _src.i = var36.i;
+      var40.i = _src.x2[1];
+    }
+    /* 4: avguw */
+    var41.x2[0] =
+        ((orc_uint16) var38.x2[0] + (orc_uint16) var40.x2[0] + 1) >> 1;
+    var41.x2[1] =
+        ((orc_uint16) var38.x2[1] + (orc_uint16) var40.x2[1] + 1) >> 1;
+    /* 5: mergelq */
+    {
+      orc_union64 _dest;
+      _dest.x2[0] = var39.i;
+      _dest.x2[1] = var41.i;
+      var37.i = _dest.i;
+    }
+    /* 6: storeq */
+    ptr0[i] = var37;
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_chroma_down_v2_u16 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union64 *ORC_RESTRICT ptr0;
+  const orc_union64 *ORC_RESTRICT ptr4;
+  const orc_union64 *ORC_RESTRICT ptr5;
+  orc_union64 var35;
+  orc_union64 var36;
+  orc_union64 var37;
+  orc_union32 var38;
+  orc_union32 var39;
+  orc_union32 var40;
+  orc_union32 var41;
+
+  ptr0 = (orc_union64 *) ex->arrays[0];
+  ptr4 = (orc_union64 *) ex->arrays[4];
+  ptr5 = (orc_union64 *) ex->arrays[5];
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadq */
+    var35 = ptr4[i];
+    /* 1: splitql */
+    {
+      orc_union64 _src;
+      _src.i = var35.i;
+      var38.i = _src.x2[1];
+      var39.i = _src.x2[0];
+    }
+    /* 2: loadq */
+    var36 = ptr5[i];
+    /* 3: select1ql */
+    {
+      orc_union64 _src;
+      _src.i = var36.i;
+      var40.i = _src.x2[1];
+    }
+    /* 4: avguw */
+    var41.x2[0] =
+        ((orc_uint16) var38.x2[0] + (orc_uint16) var40.x2[0] + 1) >> 1;
+    var41.x2[1] =
+        ((orc_uint16) var38.x2[1] + (orc_uint16) var40.x2[1] + 1) >> 1;
+    /* 5: mergelq */
+    {
+      orc_union64 _dest;
+      _dest.x2[0] = var39.i;
+      _dest.x2[1] = var41.i;
+      var37.i = _dest.i;
+    }
+    /* 6: storeq */
+    ptr0[i] = var37;
+  }
+
+}
+
+void
+video_orc_chroma_down_v2_u16 (guint16 * ORC_RESTRICT d1,
+    const guint16 * ORC_RESTRICT s1, const guint16 * ORC_RESTRICT s2, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 28, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 99, 104, 114,
+        111, 109, 97, 95, 100, 111, 119, 110, 95, 118, 50, 95, 117, 49, 54, 11,
+        8, 8, 12, 8, 8, 12, 8, 8, 20, 4, 20, 4, 20, 4, 197, 33,
+        32, 4, 193, 34, 5, 21, 1, 76, 33, 33, 34, 194, 0, 32, 33, 2,
+        0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_chroma_down_v2_u16);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "video_orc_chroma_down_v2_u16");
+      orc_program_set_backup_function (p, _backup_video_orc_chroma_down_v2_u16);
+      orc_program_add_destination (p, 8, "d1");
+      orc_program_add_source (p, 8, "s1");
+      orc_program_add_source (p, 8, "s2");
+      orc_program_add_temporary (p, 4, "t1");
+      orc_program_add_temporary (p, 4, "t2");
+      orc_program_add_temporary (p, 4, "t3");
+
+      orc_program_append_2 (p, "splitql", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_S1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "select1ql", 0, ORC_VAR_T3, ORC_VAR_S2,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "avguw", 1, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_T3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergelq", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T2,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->arrays[ORC_VAR_S2] = (void *) s2;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_chroma_down_v4_u8 */
+#ifdef DISABLE_ORC
+void
+video_orc_chroma_down_v4_u8 (guint8 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
+    const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, int n)
+{
+  int i;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  const orc_union32 *ORC_RESTRICT ptr5;
+  const orc_union32 *ORC_RESTRICT ptr6;
+  const orc_union32 *ORC_RESTRICT ptr7;
+  orc_union32 var37;
+  orc_union32 var38;
+  orc_union32 var39;
+  orc_union32 var40;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var41;
+#else
+  orc_union32 var41;
+#endif
+  orc_union32 var42;
+  orc_union16 var43;
+  orc_union16 var44;
+  orc_union32 var45;
+  orc_union16 var46;
+  orc_union32 var47;
+  orc_union32 var48;
+  orc_union16 var49;
+  orc_union32 var50;
+  orc_union16 var51;
+  orc_union32 var52;
+  orc_union32 var53;
+  orc_union32 var54;
+  orc_union32 var55;
+  orc_union32 var56;
+  orc_union32 var57;
+  orc_union32 var58;
+  orc_union16 var59;
+
+  ptr0 = (orc_union32 *) d1;
+  ptr4 = (orc_union32 *) s1;
+  ptr5 = (orc_union32 *) s2;
+  ptr6 = (orc_union32 *) s3;
+  ptr7 = (orc_union32 *) s4;
+
+  /* 17: loadpw */
+  var41.x2[0] = (int) 0x00000004;       /* 4 or 1.97626e-323f */
+  var41.x2[1] = (int) 0x00000004;       /* 4 or 1.97626e-323f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var37 = ptr4[i];
+    /* 1: splitlw */
+    {
+      orc_union32 _src;
+      _src.i = var37.i;
+      var43.i = _src.x2[1];
+      var44.i = _src.x2[0];
+    }
+    /* 2: convubw */
+    var45.x2[0] = (orc_uint8) var43.x2[0];
+    var45.x2[1] = (orc_uint8) var43.x2[1];
+    /* 3: loadl */
+    var38 = ptr7[i];
+    /* 4: select1lw */
+    {
+      orc_union32 _src;
+      _src.i = var38.i;
+      var46.i = _src.x2[1];
+    }
+    /* 5: convubw */
+    var47.x2[0] = (orc_uint8) var46.x2[0];
+    var47.x2[1] = (orc_uint8) var46.x2[1];
+    /* 6: addw */
+    var48.x2[0] = var45.x2[0] + var47.x2[0];
+    var48.x2[1] = var45.x2[1] + var47.x2[1];
+    /* 7: loadl */
+    var39 = ptr5[i];
+    /* 8: select1lw */
+    {
+      orc_union32 _src;
+      _src.i = var39.i;
+      var49.i = _src.x2[1];
+    }
+    /* 9: convubw */
+    var50.x2[0] = (orc_uint8) var49.x2[0];
+    var50.x2[1] = (orc_uint8) var49.x2[1];
+    /* 10: loadl */
+    var40 = ptr6[i];
+    /* 11: select1lw */
+    {
+      orc_union32 _src;
+      _src.i = var40.i;
+      var51.i = _src.x2[1];
+    }
+    /* 12: convubw */
+    var52.x2[0] = (orc_uint8) var51.x2[0];
+    var52.x2[1] = (orc_uint8) var51.x2[1];
+    /* 13: addw */
+    var53.x2[0] = var50.x2[0] + var52.x2[0];
+    var53.x2[1] = var50.x2[1] + var52.x2[1];
+    /* 14: shlw */
+    var54.x2[0] = ((orc_uint16) var53.x2[0]) << 1;
+    var54.x2[1] = ((orc_uint16) var53.x2[1]) << 1;
+    /* 15: addw */
+    var55.x2[0] = var53.x2[0] + var54.x2[0];
+    var55.x2[1] = var53.x2[1] + var54.x2[1];
+    /* 16: addw */
+    var56.x2[0] = var48.x2[0] + var55.x2[0];
+    var56.x2[1] = var48.x2[1] + var55.x2[1];
+    /* 18: addw */
+    var57.x2[0] = var56.x2[0] + var41.x2[0];
+    var57.x2[1] = var56.x2[1] + var41.x2[1];
+    /* 19: shruw */
+    var58.x2[0] = ((orc_uint16) var57.x2[0]) >> 3;
+    var58.x2[1] = ((orc_uint16) var57.x2[1]) >> 3;
+    /* 20: convsuswb */
+    var59.x2[0] = ORC_CLAMP_UB (var58.x2[0]);
+    var59.x2[1] = ORC_CLAMP_UB (var58.x2[1]);
+    /* 21: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var44.i;
+      _dest.x2[1] = var59.i;
+      var42.i = _dest.i;
+    }
+    /* 22: storel */
+    ptr0[i] = var42;
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_chroma_down_v4_u8 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  const orc_union32 *ORC_RESTRICT ptr5;
+  const orc_union32 *ORC_RESTRICT ptr6;
+  const orc_union32 *ORC_RESTRICT ptr7;
+  orc_union32 var37;
+  orc_union32 var38;
+  orc_union32 var39;
+  orc_union32 var40;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var41;
+#else
+  orc_union32 var41;
+#endif
+  orc_union32 var42;
+  orc_union16 var43;
+  orc_union16 var44;
+  orc_union32 var45;
+  orc_union16 var46;
+  orc_union32 var47;
+  orc_union32 var48;
+  orc_union16 var49;
+  orc_union32 var50;
+  orc_union16 var51;
+  orc_union32 var52;
+  orc_union32 var53;
+  orc_union32 var54;
+  orc_union32 var55;
+  orc_union32 var56;
+  orc_union32 var57;
+  orc_union32 var58;
+  orc_union16 var59;
+
+  ptr0 = (orc_union32 *) ex->arrays[0];
+  ptr4 = (orc_union32 *) ex->arrays[4];
+  ptr5 = (orc_union32 *) ex->arrays[5];
+  ptr6 = (orc_union32 *) ex->arrays[6];
+  ptr7 = (orc_union32 *) ex->arrays[7];
+
+  /* 17: loadpw */
+  var41.x2[0] = (int) 0x00000004;       /* 4 or 1.97626e-323f */
+  var41.x2[1] = (int) 0x00000004;       /* 4 or 1.97626e-323f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var37 = ptr4[i];
+    /* 1: splitlw */
+    {
+      orc_union32 _src;
+      _src.i = var37.i;
+      var43.i = _src.x2[1];
+      var44.i = _src.x2[0];
+    }
+    /* 2: convubw */
+    var45.x2[0] = (orc_uint8) var43.x2[0];
+    var45.x2[1] = (orc_uint8) var43.x2[1];
+    /* 3: loadl */
+    var38 = ptr7[i];
+    /* 4: select1lw */
+    {
+      orc_union32 _src;
+      _src.i = var38.i;
+      var46.i = _src.x2[1];
+    }
+    /* 5: convubw */
+    var47.x2[0] = (orc_uint8) var46.x2[0];
+    var47.x2[1] = (orc_uint8) var46.x2[1];
+    /* 6: addw */
+    var48.x2[0] = var45.x2[0] + var47.x2[0];
+    var48.x2[1] = var45.x2[1] + var47.x2[1];
+    /* 7: loadl */
+    var39 = ptr5[i];
+    /* 8: select1lw */
+    {
+      orc_union32 _src;
+      _src.i = var39.i;
+      var49.i = _src.x2[1];
+    }
+    /* 9: convubw */
+    var50.x2[0] = (orc_uint8) var49.x2[0];
+    var50.x2[1] = (orc_uint8) var49.x2[1];
+    /* 10: loadl */
+    var40 = ptr6[i];
+    /* 11: select1lw */
+    {
+      orc_union32 _src;
+      _src.i = var40.i;
+      var51.i = _src.x2[1];
+    }
+    /* 12: convubw */
+    var52.x2[0] = (orc_uint8) var51.x2[0];
+    var52.x2[1] = (orc_uint8) var51.x2[1];
+    /* 13: addw */
+    var53.x2[0] = var50.x2[0] + var52.x2[0];
+    var53.x2[1] = var50.x2[1] + var52.x2[1];
+    /* 14: shlw */
+    var54.x2[0] = ((orc_uint16) var53.x2[0]) << 1;
+    var54.x2[1] = ((orc_uint16) var53.x2[1]) << 1;
+    /* 15: addw */
+    var55.x2[0] = var53.x2[0] + var54.x2[0];
+    var55.x2[1] = var53.x2[1] + var54.x2[1];
+    /* 16: addw */
+    var56.x2[0] = var48.x2[0] + var55.x2[0];
+    var56.x2[1] = var48.x2[1] + var55.x2[1];
+    /* 18: addw */
+    var57.x2[0] = var56.x2[0] + var41.x2[0];
+    var57.x2[1] = var56.x2[1] + var41.x2[1];
+    /* 19: shruw */
+    var58.x2[0] = ((orc_uint16) var57.x2[0]) >> 3;
+    var58.x2[1] = ((orc_uint16) var57.x2[1]) >> 3;
+    /* 20: convsuswb */
+    var59.x2[0] = ORC_CLAMP_UB (var58.x2[0]);
+    var59.x2[1] = ORC_CLAMP_UB (var58.x2[1]);
+    /* 21: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var44.i;
+      _dest.x2[1] = var59.i;
+      var42.i = _dest.i;
+    }
+    /* 22: storel */
+    ptr0[i] = var42;
+  }
+
+}
+
+void
+video_orc_chroma_down_v4_u8 (guint8 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
+    const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 27, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 99, 104, 114,
+        111, 109, 97, 95, 100, 111, 119, 110, 95, 118, 52, 95, 117, 56, 11, 4,
+        4, 12, 4, 4, 12, 4, 4, 12, 4, 4, 12, 4, 4, 14, 2, 1,
+        0, 0, 0, 14, 2, 4, 0, 0, 0, 14, 2, 3, 0, 0, 0, 20,
+        2, 20, 2, 20, 4, 20, 4, 20, 4, 198, 33, 32, 4, 21, 1, 150,
+        34, 33, 191, 33, 7, 21, 1, 150, 35, 33, 21, 1, 70, 36, 34, 35,
+        191, 33, 5, 21, 1, 150, 34, 33, 191, 33, 6, 21, 1, 150, 35, 33,
+        21, 1, 70, 34, 34, 35, 21, 1, 93, 35, 34, 16, 21, 1, 70, 34,
+        34, 35, 21, 1, 70, 36, 36, 34, 21, 1, 70, 36, 36, 17, 21, 1,
+        95, 36, 36, 18, 21, 1, 160, 33, 36, 195, 0, 32, 33, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_chroma_down_v4_u8);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "video_orc_chroma_down_v4_u8");
+      orc_program_set_backup_function (p, _backup_video_orc_chroma_down_v4_u8);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 4, "s1");
+      orc_program_add_source (p, 4, "s2");
+      orc_program_add_source (p, 4, "s3");
+      orc_program_add_source (p, 4, "s4");
+      orc_program_add_constant (p, 2, 0x00000001, "c1");
+      orc_program_add_constant (p, 2, 0x00000004, "c2");
+      orc_program_add_constant (p, 2, 0x00000003, "c3");
+      orc_program_add_temporary (p, 2, "t1");
+      orc_program_add_temporary (p, 2, "t2");
+      orc_program_add_temporary (p, 4, "t3");
+      orc_program_add_temporary (p, 4, "t4");
+      orc_program_add_temporary (p, 4, "t5");
+
+      orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_S1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convubw", 1, ORC_VAR_T3, ORC_VAR_T2, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "select1lw", 0, ORC_VAR_T2, ORC_VAR_S4,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "convubw", 1, ORC_VAR_T4, ORC_VAR_T2, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addw", 1, ORC_VAR_T5, ORC_VAR_T3, ORC_VAR_T4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "select1lw", 0, ORC_VAR_T2, ORC_VAR_S2,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "convubw", 1, ORC_VAR_T3, ORC_VAR_T2, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "select1lw", 0, ORC_VAR_T2, ORC_VAR_S3,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "convubw", 1, ORC_VAR_T4, ORC_VAR_T2, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addw", 1, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_T4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shlw", 1, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_C1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addw", 1, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_T4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addw", 1, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_T3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addw", 1, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_C2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shruw", 1, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_C3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convsuswb", 1, ORC_VAR_T2, ORC_VAR_T5,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T2,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->arrays[ORC_VAR_S2] = (void *) s2;
+  ex->arrays[ORC_VAR_S3] = (void *) s3;
+  ex->arrays[ORC_VAR_S4] = (void *) s4;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_chroma_down_v4_u16 */
+#ifdef DISABLE_ORC
+void
+video_orc_chroma_down_v4_u16 (guint16 * ORC_RESTRICT d1,
+    const guint16 * ORC_RESTRICT s1, const guint16 * ORC_RESTRICT s2,
+    const guint16 * ORC_RESTRICT s3, const guint16 * ORC_RESTRICT s4, int n)
+{
+  int i;
+  orc_union64 *ORC_RESTRICT ptr0;
+  const orc_union64 *ORC_RESTRICT ptr4;
+  const orc_union64 *ORC_RESTRICT ptr5;
+  const orc_union64 *ORC_RESTRICT ptr6;
+  const orc_union64 *ORC_RESTRICT ptr7;
+  orc_union64 var37;
+  orc_union64 var38;
+  orc_union64 var39;
+  orc_union64 var40;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union64 var41;
+#else
+  orc_union64 var41;
+#endif
+  orc_union64 var42;
+  orc_union32 var43;
+  orc_union32 var44;
+  orc_union64 var45;
+  orc_union32 var46;
+  orc_union64 var47;
+  orc_union64 var48;
+  orc_union32 var49;
+  orc_union64 var50;
+  orc_union32 var51;
+  orc_union64 var52;
+  orc_union64 var53;
+  orc_union64 var54;
+  orc_union64 var55;
+  orc_union64 var56;
+  orc_union64 var57;
+  orc_union64 var58;
+  orc_union32 var59;
+
+  ptr0 = (orc_union64 *) d1;
+  ptr4 = (orc_union64 *) s1;
+  ptr5 = (orc_union64 *) s2;
+  ptr6 = (orc_union64 *) s3;
+  ptr7 = (orc_union64 *) s4;
+
+  /* 17: loadpl */
+  var41.x2[0] = (int) 0x00000004;       /* 4 or 1.97626e-323f */
+  var41.x2[1] = (int) 0x00000004;       /* 4 or 1.97626e-323f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadq */
+    var37 = ptr4[i];
+    /* 1: splitql */
+    {
+      orc_union64 _src;
+      _src.i = var37.i;
+      var43.i = _src.x2[1];
+      var44.i = _src.x2[0];
+    }
+    /* 2: convuwl */
+    var45.x2[0] = (orc_uint16) var43.x2[0];
+    var45.x2[1] = (orc_uint16) var43.x2[1];
+    /* 3: loadq */
+    var38 = ptr7[i];
+    /* 4: select1ql */
+    {
+      orc_union64 _src;
+      _src.i = var38.i;
+      var46.i = _src.x2[1];
+    }
+    /* 5: convuwl */
+    var47.x2[0] = (orc_uint16) var46.x2[0];
+    var47.x2[1] = (orc_uint16) var46.x2[1];
+    /* 6: addl */
+    var48.x2[0] = ((orc_uint32) var45.x2[0]) + ((orc_uint32) var47.x2[0]);
+    var48.x2[1] = ((orc_uint32) var45.x2[1]) + ((orc_uint32) var47.x2[1]);
+    /* 7: loadq */
+    var39 = ptr5[i];
+    /* 8: select1ql */
+    {
+      orc_union64 _src;
+      _src.i = var39.i;
+      var49.i = _src.x2[1];
+    }
+    /* 9: convuwl */
+    var50.x2[0] = (orc_uint16) var49.x2[0];
+    var50.x2[1] = (orc_uint16) var49.x2[1];
+    /* 10: loadq */
+    var40 = ptr6[i];
+    /* 11: select1ql */
+    {
+      orc_union64 _src;
+      _src.i = var40.i;
+      var51.i = _src.x2[1];
+    }
+    /* 12: convuwl */
+    var52.x2[0] = (orc_uint16) var51.x2[0];
+    var52.x2[1] = (orc_uint16) var51.x2[1];
+    /* 13: addl */
+    var53.x2[0] = ((orc_uint32) var50.x2[0]) + ((orc_uint32) var52.x2[0]);
+    var53.x2[1] = ((orc_uint32) var50.x2[1]) + ((orc_uint32) var52.x2[1]);
+    /* 14: shll */
+    var54.x2[0] = ((orc_uint32) var53.x2[0]) << 1;
+    var54.x2[1] = ((orc_uint32) var53.x2[1]) << 1;
+    /* 15: addl */
+    var55.x2[0] = ((orc_uint32) var53.x2[0]) + ((orc_uint32) var54.x2[0]);
+    var55.x2[1] = ((orc_uint32) var53.x2[1]) + ((orc_uint32) var54.x2[1]);
+    /* 16: addl */
+    var56.x2[0] = ((orc_uint32) var48.x2[0]) + ((orc_uint32) var55.x2[0]);
+    var56.x2[1] = ((orc_uint32) var48.x2[1]) + ((orc_uint32) var55.x2[1]);
+    /* 18: addl */
+    var57.x2[0] = ((orc_uint32) var56.x2[0]) + ((orc_uint32) var41.x2[0]);
+    var57.x2[1] = ((orc_uint32) var56.x2[1]) + ((orc_uint32) var41.x2[1]);
+    /* 19: shrul */
+    var58.x2[0] = ((orc_uint32) var57.x2[0]) >> 3;
+    var58.x2[1] = ((orc_uint32) var57.x2[1]) >> 3;
+    /* 20: convsuslw */
+    var59.x2[0] = ORC_CLAMP_UW (var58.x2[0]);
+    var59.x2[1] = ORC_CLAMP_UW (var58.x2[1]);
+    /* 21: mergelq */
+    {
+      orc_union64 _dest;
+      _dest.x2[0] = var44.i;
+      _dest.x2[1] = var59.i;
+      var42.i = _dest.i;
+    }
+    /* 22: storeq */
+    ptr0[i] = var42;
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_chroma_down_v4_u16 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union64 *ORC_RESTRICT ptr0;
+  const orc_union64 *ORC_RESTRICT ptr4;
+  const orc_union64 *ORC_RESTRICT ptr5;
+  const orc_union64 *ORC_RESTRICT ptr6;
+  const orc_union64 *ORC_RESTRICT ptr7;
+  orc_union64 var37;
+  orc_union64 var38;
+  orc_union64 var39;
+  orc_union64 var40;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union64 var41;
+#else
+  orc_union64 var41;
+#endif
+  orc_union64 var42;
+  orc_union32 var43;
+  orc_union32 var44;
+  orc_union64 var45;
+  orc_union32 var46;
+  orc_union64 var47;
+  orc_union64 var48;
+  orc_union32 var49;
+  orc_union64 var50;
+  orc_union32 var51;
+  orc_union64 var52;
+  orc_union64 var53;
+  orc_union64 var54;
+  orc_union64 var55;
+  orc_union64 var56;
+  orc_union64 var57;
+  orc_union64 var58;
+  orc_union32 var59;
+
+  ptr0 = (orc_union64 *) ex->arrays[0];
+  ptr4 = (orc_union64 *) ex->arrays[4];
+  ptr5 = (orc_union64 *) ex->arrays[5];
+  ptr6 = (orc_union64 *) ex->arrays[6];
+  ptr7 = (orc_union64 *) ex->arrays[7];
+
+  /* 17: loadpl */
+  var41.x2[0] = (int) 0x00000004;       /* 4 or 1.97626e-323f */
+  var41.x2[1] = (int) 0x00000004;       /* 4 or 1.97626e-323f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadq */
+    var37 = ptr4[i];
+    /* 1: splitql */
+    {
+      orc_union64 _src;
+      _src.i = var37.i;
+      var43.i = _src.x2[1];
+      var44.i = _src.x2[0];
+    }
+    /* 2: convuwl */
+    var45.x2[0] = (orc_uint16) var43.x2[0];
+    var45.x2[1] = (orc_uint16) var43.x2[1];
+    /* 3: loadq */
+    var38 = ptr7[i];
+    /* 4: select1ql */
+    {
+      orc_union64 _src;
+      _src.i = var38.i;
+      var46.i = _src.x2[1];
+    }
+    /* 5: convuwl */
+    var47.x2[0] = (orc_uint16) var46.x2[0];
+    var47.x2[1] = (orc_uint16) var46.x2[1];
+    /* 6: addl */
+    var48.x2[0] = ((orc_uint32) var45.x2[0]) + ((orc_uint32) var47.x2[0]);
+    var48.x2[1] = ((orc_uint32) var45.x2[1]) + ((orc_uint32) var47.x2[1]);
+    /* 7: loadq */
+    var39 = ptr5[i];
+    /* 8: select1ql */
+    {
+      orc_union64 _src;
+      _src.i = var39.i;
+      var49.i = _src.x2[1];
+    }
+    /* 9: convuwl */
+    var50.x2[0] = (orc_uint16) var49.x2[0];
+    var50.x2[1] = (orc_uint16) var49.x2[1];
+    /* 10: loadq */
+    var40 = ptr6[i];
+    /* 11: select1ql */
+    {
+      orc_union64 _src;
+      _src.i = var40.i;
+      var51.i = _src.x2[1];
+    }
+    /* 12: convuwl */
+    var52.x2[0] = (orc_uint16) var51.x2[0];
+    var52.x2[1] = (orc_uint16) var51.x2[1];
+    /* 13: addl */
+    var53.x2[0] = ((orc_uint32) var50.x2[0]) + ((orc_uint32) var52.x2[0]);
+    var53.x2[1] = ((orc_uint32) var50.x2[1]) + ((orc_uint32) var52.x2[1]);
+    /* 14: shll */
+    var54.x2[0] = ((orc_uint32) var53.x2[0]) << 1;
+    var54.x2[1] = ((orc_uint32) var53.x2[1]) << 1;
+    /* 15: addl */
+    var55.x2[0] = ((orc_uint32) var53.x2[0]) + ((orc_uint32) var54.x2[0]);
+    var55.x2[1] = ((orc_uint32) var53.x2[1]) + ((orc_uint32) var54.x2[1]);
+    /* 16: addl */
+    var56.x2[0] = ((orc_uint32) var48.x2[0]) + ((orc_uint32) var55.x2[0]);
+    var56.x2[1] = ((orc_uint32) var48.x2[1]) + ((orc_uint32) var55.x2[1]);
+    /* 18: addl */
+    var57.x2[0] = ((orc_uint32) var56.x2[0]) + ((orc_uint32) var41.x2[0]);
+    var57.x2[1] = ((orc_uint32) var56.x2[1]) + ((orc_uint32) var41.x2[1]);
+    /* 19: shrul */
+    var58.x2[0] = ((orc_uint32) var57.x2[0]) >> 3;
+    var58.x2[1] = ((orc_uint32) var57.x2[1]) >> 3;
+    /* 20: convsuslw */
+    var59.x2[0] = ORC_CLAMP_UW (var58.x2[0]);
+    var59.x2[1] = ORC_CLAMP_UW (var58.x2[1]);
+    /* 21: mergelq */
+    {
+      orc_union64 _dest;
+      _dest.x2[0] = var44.i;
+      _dest.x2[1] = var59.i;
+      var42.i = _dest.i;
+    }
+    /* 22: storeq */
+    ptr0[i] = var42;
+  }
+
+}
+
+void
+video_orc_chroma_down_v4_u16 (guint16 * ORC_RESTRICT d1,
+    const guint16 * ORC_RESTRICT s1, const guint16 * ORC_RESTRICT s2,
+    const guint16 * ORC_RESTRICT s3, const guint16 * ORC_RESTRICT s4, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 28, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 99, 104, 114,
+        111, 109, 97, 95, 100, 111, 119, 110, 95, 118, 52, 95, 117, 49, 54, 11,
+        8, 8, 12, 8, 8, 12, 8, 8, 12, 8, 8, 12, 8, 8, 14, 4,
+        1, 0, 0, 0, 14, 4, 4, 0, 0, 0, 14, 4, 3, 0, 0, 0,
+        20, 4, 20, 4, 20, 8, 20, 8, 20, 8, 197, 33, 32, 4, 21, 1,
+        154, 34, 33, 193, 33, 7, 21, 1, 154, 35, 33, 21, 1, 103, 36, 34,
+        35, 193, 33, 5, 21, 1, 154, 34, 33, 193, 33, 6, 21, 1, 154, 35,
+        33, 21, 1, 103, 34, 34, 35, 21, 1, 124, 35, 34, 16, 21, 1, 103,
+        34, 34, 35, 21, 1, 103, 36, 36, 34, 21, 1, 103, 36, 36, 17, 21,
+        1, 126, 36, 36, 18, 21, 1, 166, 33, 36, 194, 0, 32, 33, 2, 0,
+
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_chroma_down_v4_u16);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "video_orc_chroma_down_v4_u16");
+      orc_program_set_backup_function (p, _backup_video_orc_chroma_down_v4_u16);
+      orc_program_add_destination (p, 8, "d1");
+      orc_program_add_source (p, 8, "s1");
+      orc_program_add_source (p, 8, "s2");
+      orc_program_add_source (p, 8, "s3");
+      orc_program_add_source (p, 8, "s4");
+      orc_program_add_constant (p, 4, 0x00000001, "c1");
+      orc_program_add_constant (p, 4, 0x00000004, "c2");
+      orc_program_add_constant (p, 4, 0x00000003, "c3");
+      orc_program_add_temporary (p, 4, "t1");
+      orc_program_add_temporary (p, 4, "t2");
+      orc_program_add_temporary (p, 8, "t3");
+      orc_program_add_temporary (p, 8, "t4");
+      orc_program_add_temporary (p, 8, "t5");
+
+      orc_program_append_2 (p, "splitql", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_S1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convuwl", 1, ORC_VAR_T3, ORC_VAR_T2, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "select1ql", 0, ORC_VAR_T2, ORC_VAR_S4,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "convuwl", 1, ORC_VAR_T4, ORC_VAR_T2, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addl", 1, ORC_VAR_T5, ORC_VAR_T3, ORC_VAR_T4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "select1ql", 0, ORC_VAR_T2, ORC_VAR_S2,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "convuwl", 1, ORC_VAR_T3, ORC_VAR_T2, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "select1ql", 0, ORC_VAR_T2, ORC_VAR_S3,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "convuwl", 1, ORC_VAR_T4, ORC_VAR_T2, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addl", 1, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_T4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shll", 1, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_C1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addl", 1, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_T4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addl", 1, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_T3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addl", 1, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_C2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shrul", 1, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_C3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convsuslw", 1, ORC_VAR_T2, ORC_VAR_T5,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "mergelq", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T2,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->arrays[ORC_VAR_S2] = (void *) s2;
+  ex->arrays[ORC_VAR_S3] = (void *) s3;
+  ex->arrays[ORC_VAR_S4] = (void *) s4;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_dither_none_4u8_mask */
+#ifdef DISABLE_ORC
+void
+video_orc_dither_none_4u8_mask (guint8 * ORC_RESTRICT d1, int p1, int n)
+{
+  int i;
+  orc_union32 *ORC_RESTRICT ptr0;
+  orc_union32 var33;
+  orc_union32 var34;
+  orc_union32 var35;
+
+  ptr0 = (orc_union32 *) d1;
+
+  /* 0: loadpl */
+  var35.i = p1;
+
+  for (i = 0; i < n; i++) {
+    /* 1: loadl */
+    var33 = ptr0[i];
+    /* 2: andnb */
+    var34.x4[0] = (~var35.x4[0]) & var33.x4[0];
+    var34.x4[1] = (~var35.x4[1]) & var33.x4[1];
+    var34.x4[2] = (~var35.x4[2]) & var33.x4[2];
+    var34.x4[3] = (~var35.x4[3]) & var33.x4[3];
+    /* 3: storel */
+    ptr0[i] = var34;
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_dither_none_4u8_mask (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union32 *ORC_RESTRICT ptr0;
+  orc_union32 var33;
+  orc_union32 var34;
+  orc_union32 var35;
+
+  ptr0 = (orc_union32 *) ex->arrays[0];
+
+  /* 0: loadpl */
+  var35.i = ex->params[24];
+
+  for (i = 0; i < n; i++) {
+    /* 1: loadl */
+    var33 = ptr0[i];
+    /* 2: andnb */
+    var34.x4[0] = (~var35.x4[0]) & var33.x4[0];
+    var34.x4[1] = (~var35.x4[1]) & var33.x4[1];
+    var34.x4[2] = (~var35.x4[2]) & var33.x4[2];
+    var34.x4[3] = (~var35.x4[3]) & var33.x4[3];
+    /* 3: storel */
+    ptr0[i] = var34;
+  }
+
+}
+
+void
+video_orc_dither_none_4u8_mask (guint8 * ORC_RESTRICT d1, int p1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 30, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 100, 105, 116,
+        104, 101, 114, 95, 110, 111, 110, 101, 95, 52, 117, 56, 95, 109, 97,
+            115,
+        107, 11, 4, 4, 16, 4, 20, 4, 115, 32, 24, 21, 2, 37, 0, 32,
+        0, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_orc_dither_none_4u8_mask);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "video_orc_dither_none_4u8_mask");
+      orc_program_set_backup_function (p,
+          _backup_video_orc_dither_none_4u8_mask);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_parameter (p, 4, "p1");
+      orc_program_add_temporary (p, 4, "t1");
+
+      orc_program_append_2 (p, "loadpl", 0, ORC_VAR_T1, ORC_VAR_P1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "andnb", 2, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->params[ORC_VAR_P1] = p1;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_dither_none_4u16_mask */
+#ifdef DISABLE_ORC
+void
+video_orc_dither_none_4u16_mask (guint16 * ORC_RESTRICT d1, orc_int64 p1, int n)
+{
+  int i;
+  orc_union64 *ORC_RESTRICT ptr0;
+  orc_union64 var33;
+  orc_union64 var34;
+  orc_union64 var35;
+
+  ptr0 = (orc_union64 *) d1;
+
+  /* 0: loadpq */
+  var35.i = p1;
+
+  for (i = 0; i < n; i++) {
+    /* 1: loadq */
+    var33 = ptr0[i];
+    /* 2: andnw */
+    var34.x4[0] = (~var35.x4[0]) & var33.x4[0];
+    var34.x4[1] = (~var35.x4[1]) & var33.x4[1];
+    var34.x4[2] = (~var35.x4[2]) & var33.x4[2];
+    var34.x4[3] = (~var35.x4[3]) & var33.x4[3];
+    /* 3: storeq */
+    ptr0[i] = var34;
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_dither_none_4u16_mask (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union64 *ORC_RESTRICT ptr0;
+  orc_union64 var33;
+  orc_union64 var34;
+  orc_union64 var35;
+
+  ptr0 = (orc_union64 *) ex->arrays[0];
+
+  /* 0: loadpq */
+  var35.i =
+      (ex->params[24] & 0xffffffff) | ((orc_uint64) (ex->params[24 +
+              (ORC_VAR_T1 - ORC_VAR_P1)]) << 32);
+
+  for (i = 0; i < n; i++) {
+    /* 1: loadq */
+    var33 = ptr0[i];
+    /* 2: andnw */
+    var34.x4[0] = (~var35.x4[0]) & var33.x4[0];
+    var34.x4[1] = (~var35.x4[1]) & var33.x4[1];
+    var34.x4[2] = (~var35.x4[2]) & var33.x4[2];
+    var34.x4[3] = (~var35.x4[3]) & var33.x4[3];
+    /* 3: storeq */
+    ptr0[i] = var34;
+  }
+
+}
+
+void
+video_orc_dither_none_4u16_mask (guint16 * ORC_RESTRICT d1, orc_int64 p1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 31, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 100, 105, 116,
+        104, 101, 114, 95, 110, 111, 110, 101, 95, 52, 117, 49, 54, 95, 109, 97,
+        115, 107, 11, 8, 8, 18, 8, 20, 8, 134, 32, 24, 21, 2, 74, 0,
+        32, 0, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_orc_dither_none_4u16_mask);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "video_orc_dither_none_4u16_mask");
+      orc_program_set_backup_function (p,
+          _backup_video_orc_dither_none_4u16_mask);
+      orc_program_add_destination (p, 8, "d1");
+      orc_program_add_parameter_int64 (p, 8, "p1");
+      orc_program_add_temporary (p, 8, "t1");
+
+      orc_program_append_2 (p, "loadpq", 0, ORC_VAR_T1, ORC_VAR_P1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "andnw", 2, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  {
+    orc_union64 tmp;
+    tmp.i = p1;
+    ex->params[ORC_VAR_P1] = ((orc_uint64) tmp.i) & 0xffffffff;
+    ex->params[ORC_VAR_T1] = ((orc_uint64) tmp.i) >> 32;
+  }
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_dither_verterr_4u8_mask */
+#ifdef DISABLE_ORC
+void
+video_orc_dither_verterr_4u8_mask (guint8 * ORC_RESTRICT d1,
+    guint16 * ORC_RESTRICT d2, orc_int64 p1, int n)
+{
+  int i;
+  orc_union32 *ORC_RESTRICT ptr0;
+  orc_union64 *ORC_RESTRICT ptr1;
+  orc_union32 var34;
+  orc_union64 var35;
+  orc_union64 var36;
+  orc_union32 var37;
+  orc_union64 var38;
+  orc_union64 var39;
+  orc_union64 var40;
+  orc_union64 var41;
+
+  ptr0 = (orc_union32 *) d1;
+  ptr1 = (orc_union64 *) d2;
+
+  /* 0: loadpq */
+  var38.i = p1;
+
+  for (i = 0; i < n; i++) {
+    /* 1: loadl */
+    var34 = ptr0[i];
+    /* 2: convubw */
+    var39.x4[0] = (orc_uint8) var34.x4[0];
+    var39.x4[1] = (orc_uint8) var34.x4[1];
+    var39.x4[2] = (orc_uint8) var34.x4[2];
+    var39.x4[3] = (orc_uint8) var34.x4[3];
+    /* 3: loadq */
+    var35 = ptr1[i];
+    /* 4: addw */
+    var40.x4[0] = var35.x4[0] + var39.x4[0];
+    var40.x4[1] = var35.x4[1] + var39.x4[1];
+    var40.x4[2] = var35.x4[2] + var39.x4[2];
+    var40.x4[3] = var35.x4[3] + var39.x4[3];
+    /* 5: andw */
+    var36.x4[0] = var38.x4[0] & var40.x4[0];
+    var36.x4[1] = var38.x4[1] & var40.x4[1];
+    var36.x4[2] = var38.x4[2] & var40.x4[2];
+    var36.x4[3] = var38.x4[3] & var40.x4[3];
+    /* 6: storeq */
+    ptr1[i] = var36;
+    /* 7: andnw */
+    var41.x4[0] = (~var38.x4[0]) & var40.x4[0];
+    var41.x4[1] = (~var38.x4[1]) & var40.x4[1];
+    var41.x4[2] = (~var38.x4[2]) & var40.x4[2];
+    var41.x4[3] = (~var38.x4[3]) & var40.x4[3];
+    /* 8: convsuswb */
+    var37.x4[0] = ORC_CLAMP_UB (var41.x4[0]);
+    var37.x4[1] = ORC_CLAMP_UB (var41.x4[1]);
+    var37.x4[2] = ORC_CLAMP_UB (var41.x4[2]);
+    var37.x4[3] = ORC_CLAMP_UB (var41.x4[3]);
+    /* 9: storel */
+    ptr0[i] = var37;
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_dither_verterr_4u8_mask (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union32 *ORC_RESTRICT ptr0;
+  orc_union64 *ORC_RESTRICT ptr1;
+  orc_union32 var34;
+  orc_union64 var35;
+  orc_union64 var36;
+  orc_union32 var37;
+  orc_union64 var38;
+  orc_union64 var39;
+  orc_union64 var40;
+  orc_union64 var41;
+
+  ptr0 = (orc_union32 *) ex->arrays[0];
+  ptr1 = (orc_union64 *) ex->arrays[1];
+
+  /* 0: loadpq */
+  var38.i =
+      (ex->params[24] & 0xffffffff) | ((orc_uint64) (ex->params[24 +
+              (ORC_VAR_T1 - ORC_VAR_P1)]) << 32);
+
+  for (i = 0; i < n; i++) {
+    /* 1: loadl */
+    var34 = ptr0[i];
+    /* 2: convubw */
+    var39.x4[0] = (orc_uint8) var34.x4[0];
+    var39.x4[1] = (orc_uint8) var34.x4[1];
+    var39.x4[2] = (orc_uint8) var34.x4[2];
+    var39.x4[3] = (orc_uint8) var34.x4[3];
+    /* 3: loadq */
+    var35 = ptr1[i];
+    /* 4: addw */
+    var40.x4[0] = var35.x4[0] + var39.x4[0];
+    var40.x4[1] = var35.x4[1] + var39.x4[1];
+    var40.x4[2] = var35.x4[2] + var39.x4[2];
+    var40.x4[3] = var35.x4[3] + var39.x4[3];
+    /* 5: andw */
+    var36.x4[0] = var38.x4[0] & var40.x4[0];
+    var36.x4[1] = var38.x4[1] & var40.x4[1];
+    var36.x4[2] = var38.x4[2] & var40.x4[2];
+    var36.x4[3] = var38.x4[3] & var40.x4[3];
+    /* 6: storeq */
+    ptr1[i] = var36;
+    /* 7: andnw */
+    var41.x4[0] = (~var38.x4[0]) & var40.x4[0];
+    var41.x4[1] = (~var38.x4[1]) & var40.x4[1];
+    var41.x4[2] = (~var38.x4[2]) & var40.x4[2];
+    var41.x4[3] = (~var38.x4[3]) & var40.x4[3];
+    /* 8: convsuswb */
+    var37.x4[0] = ORC_CLAMP_UB (var41.x4[0]);
+    var37.x4[1] = ORC_CLAMP_UB (var41.x4[1]);
+    var37.x4[2] = ORC_CLAMP_UB (var41.x4[2]);
+    var37.x4[3] = ORC_CLAMP_UB (var41.x4[3]);
+    /* 9: storel */
+    ptr0[i] = var37;
+  }
+
+}
+
+void
+video_orc_dither_verterr_4u8_mask (guint8 * ORC_RESTRICT d1,
+    guint16 * ORC_RESTRICT d2, orc_int64 p1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 33, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 100, 105, 116,
+        104, 101, 114, 95, 118, 101, 114, 116, 101, 114, 114, 95, 52, 117, 56,
+            95,
+        109, 97, 115, 107, 11, 4, 4, 11, 8, 8, 18, 8, 20, 8, 20, 8,
+        134, 32, 24, 21, 2, 150, 33, 0, 21, 2, 70, 33, 1, 33, 21, 2,
+        73, 1, 32, 33, 21, 2, 74, 33, 32, 33, 21, 2, 160, 0, 33, 2,
+        0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_orc_dither_verterr_4u8_mask);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "video_orc_dither_verterr_4u8_mask");
+      orc_program_set_backup_function (p,
+          _backup_video_orc_dither_verterr_4u8_mask);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_destination (p, 8, "d2");
+      orc_program_add_parameter_int64 (p, 8, "p1");
+      orc_program_add_temporary (p, 8, "t1");
+      orc_program_add_temporary (p, 8, "t2");
+
+      orc_program_append_2 (p, "loadpq", 0, ORC_VAR_T1, ORC_VAR_P1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convubw", 2, ORC_VAR_T2, ORC_VAR_D1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addw", 2, ORC_VAR_T2, ORC_VAR_D2, ORC_VAR_T2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "andw", 2, ORC_VAR_D2, ORC_VAR_T1, ORC_VAR_T2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "andnw", 2, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_T2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convsuswb", 2, ORC_VAR_D1, ORC_VAR_T2,
+          ORC_VAR_D1, ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_D2] = d2;
+  {
+    orc_union64 tmp;
+    tmp.i = p1;
+    ex->params[ORC_VAR_P1] = ((orc_uint64) tmp.i) & 0xffffffff;
+    ex->params[ORC_VAR_T1] = ((orc_uint64) tmp.i) >> 32;
+  }
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_dither_fs_muladd_u8 */
+#ifdef DISABLE_ORC
+void
+video_orc_dither_fs_muladd_u8 (guint16 * ORC_RESTRICT d1, int n)
+{
+  int i;
+  orc_union16 *ORC_RESTRICT ptr0;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var34;
+#else
+  orc_union16 var34;
+#endif
+  orc_union16 var35;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var36;
+#else
+  orc_union16 var36;
+#endif
+  orc_union16 var37;
+  orc_union16 var38;
+  orc_union16 var39;
+  orc_union16 var40;
+  orc_union16 var41;
+  orc_union16 var42;
+
+  ptr0 = (orc_union16 *) d1;
+
+  /* 1: loadpw */
+  var34.i = (int) 0x00000005;   /* 5 or 2.47033e-323f */
+  /* 6: loadpw */
+  var36.i = (int) 0x00000003;   /* 3 or 1.4822e-323f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadoffw */
+    var38 = ptr0[i + 4];
+    /* 2: mullw */
+    var39.i = (var38.i * var34.i) & 0xffff;
+    /* 3: loadw */
+    var35 = ptr0[i];
+    /* 4: addw */
+    var40.i = var39.i + var35.i;
+    /* 5: loadoffw */
+    var41 = ptr0[i + 8];
+    /* 7: mullw */
+    var42.i = (var41.i * var36.i) & 0xffff;
+    /* 8: addw */
+    var37.i = var40.i + var42.i;
+    /* 9: storew */
+    ptr0[i] = var37;
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_dither_fs_muladd_u8 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union16 *ORC_RESTRICT ptr0;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var34;
+#else
+  orc_union16 var34;
+#endif
+  orc_union16 var35;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var36;
+#else
+  orc_union16 var36;
+#endif
+  orc_union16 var37;
+  orc_union16 var38;
+  orc_union16 var39;
+  orc_union16 var40;
+  orc_union16 var41;
+  orc_union16 var42;
+
+  ptr0 = (orc_union16 *) ex->arrays[0];
+
+  /* 1: loadpw */
+  var34.i = (int) 0x00000005;   /* 5 or 2.47033e-323f */
+  /* 6: loadpw */
+  var36.i = (int) 0x00000003;   /* 3 or 1.4822e-323f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadoffw */
+    var38 = ptr0[i + 4];
+    /* 2: mullw */
+    var39.i = (var38.i * var34.i) & 0xffff;
+    /* 3: loadw */
+    var35 = ptr0[i];
+    /* 4: addw */
+    var40.i = var39.i + var35.i;
+    /* 5: loadoffw */
+    var41 = ptr0[i + 8];
+    /* 7: mullw */
+    var42.i = (var41.i * var36.i) & 0xffff;
+    /* 8: addw */
+    var37.i = var40.i + var42.i;
+    /* 9: storew */
+    ptr0[i] = var37;
+  }
+
+}
+
+void
+video_orc_dither_fs_muladd_u8 (guint16 * ORC_RESTRICT d1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 29, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 100, 105, 116,
+        104, 101, 114, 95, 102, 115, 95, 109, 117, 108, 97, 100, 100, 95, 117,
+            56,
+        11, 2, 2, 14, 4, 4, 0, 0, 0, 14, 2, 5, 0, 0, 0, 14,
+        4, 8, 0, 0, 0, 14, 2, 3, 0, 0, 0, 20, 2, 20, 2, 83,
+        33, 0, 16, 89, 33, 33, 17, 70, 32, 33, 0, 83, 33, 0, 18, 89,
+        33, 33, 19, 70, 0, 32, 33, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_orc_dither_fs_muladd_u8);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "video_orc_dither_fs_muladd_u8");
+      orc_program_set_backup_function (p,
+          _backup_video_orc_dither_fs_muladd_u8);
+      orc_program_add_destination (p, 2, "d1");
+      orc_program_add_constant (p, 4, 0x00000004, "c1");
+      orc_program_add_constant (p, 2, 0x00000005, "c2");
+      orc_program_add_constant (p, 4, 0x00000008, "c3");
+      orc_program_add_constant (p, 2, 0x00000003, "c4");
+      orc_program_add_temporary (p, 2, "t1");
+      orc_program_add_temporary (p, 2, "t2");
+
+      orc_program_append_2 (p, "loadoffw", 0, ORC_VAR_T2, ORC_VAR_D1,
+          ORC_VAR_C1, ORC_VAR_D1);
+      orc_program_append_2 (p, "mullw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addw", 0, ORC_VAR_T1, ORC_VAR_T2, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "loadoffw", 0, ORC_VAR_T2, ORC_VAR_D1,
+          ORC_VAR_C3, ORC_VAR_D1);
+      orc_program_append_2 (p, "mullw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addw", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T2,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_dither_ordered_u8 */
+#ifdef DISABLE_ORC
+void
+video_orc_dither_ordered_u8 (guint8 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, int n)
+{
+  int i;
+  orc_int8 *ORC_RESTRICT ptr0;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  orc_int8 var32;
+  orc_int8 var33;
+  orc_int8 var34;
+
+  ptr0 = (orc_int8 *) d1;
+  ptr4 = (orc_int8 *) s1;
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadb */
+    var32 = ptr0[i];
+    /* 1: loadb */
+    var33 = ptr4[i];
+    /* 2: addusb */
+    var34 = ORC_CLAMP_UB ((orc_uint8) var32 + (orc_uint8) var33);
+    /* 3: storeb */
+    ptr0[i] = var34;
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_dither_ordered_u8 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_int8 *ORC_RESTRICT ptr0;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  orc_int8 var32;
+  orc_int8 var33;
+  orc_int8 var34;
+
+  ptr0 = (orc_int8 *) ex->arrays[0];
+  ptr4 = (orc_int8 *) ex->arrays[4];
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadb */
+    var32 = ptr0[i];
+    /* 1: loadb */
+    var33 = ptr4[i];
+    /* 2: addusb */
+    var34 = ORC_CLAMP_UB ((orc_uint8) var32 + (orc_uint8) var33);
+    /* 3: storeb */
+    ptr0[i] = var34;
+  }
+
+}
+
+void
+video_orc_dither_ordered_u8 (guint8 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 27, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 100, 105, 116,
+        104, 101, 114, 95, 111, 114, 100, 101, 114, 101, 100, 95, 117, 56, 11,
+            1,
+        1, 12, 1, 1, 35, 0, 0, 4, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_dither_ordered_u8);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "video_orc_dither_ordered_u8");
+      orc_program_set_backup_function (p, _backup_video_orc_dither_ordered_u8);
+      orc_program_add_destination (p, 1, "d1");
+      orc_program_add_source (p, 1, "s1");
+
+      orc_program_append_2 (p, "addusb", 0, ORC_VAR_D1, ORC_VAR_D1, ORC_VAR_S1,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_dither_ordered_4u8_mask */
+#ifdef DISABLE_ORC
+void
+video_orc_dither_ordered_4u8_mask (guint8 * ORC_RESTRICT d1,
+    const guint16 * ORC_RESTRICT s1, orc_int64 p1, int n)
+{
+  int i;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union64 *ORC_RESTRICT ptr4;
+  orc_union32 var34;
+  orc_union64 var35;
+  orc_union32 var36;
+  orc_union64 var37;
+  orc_union64 var38;
+  orc_union64 var39;
+  orc_union64 var40;
+
+  ptr0 = (orc_union32 *) d1;
+  ptr4 = (orc_union64 *) s1;
+
+  /* 0: loadpq */
+  var37.i = p1;
+
+  for (i = 0; i < n; i++) {
+    /* 1: loadl */
+    var34 = ptr0[i];
+    /* 2: convubw */
+    var38.x4[0] = (orc_uint8) var34.x4[0];
+    var38.x4[1] = (orc_uint8) var34.x4[1];
+    var38.x4[2] = (orc_uint8) var34.x4[2];
+    var38.x4[3] = (orc_uint8) var34.x4[3];
+    /* 3: loadq */
+    var35 = ptr4[i];
+    /* 4: addw */
+    var39.x4[0] = var38.x4[0] + var35.x4[0];
+    var39.x4[1] = var38.x4[1] + var35.x4[1];
+    var39.x4[2] = var38.x4[2] + var35.x4[2];
+    var39.x4[3] = var38.x4[3] + var35.x4[3];
+    /* 5: andnw */
+    var40.x4[0] = (~var37.x4[0]) & var39.x4[0];
+    var40.x4[1] = (~var37.x4[1]) & var39.x4[1];
+    var40.x4[2] = (~var37.x4[2]) & var39.x4[2];
+    var40.x4[3] = (~var37.x4[3]) & var39.x4[3];
+    /* 6: convsuswb */
+    var36.x4[0] = ORC_CLAMP_UB (var40.x4[0]);
+    var36.x4[1] = ORC_CLAMP_UB (var40.x4[1]);
+    var36.x4[2] = ORC_CLAMP_UB (var40.x4[2]);
+    var36.x4[3] = ORC_CLAMP_UB (var40.x4[3]);
+    /* 7: storel */
+    ptr0[i] = var36;
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_dither_ordered_4u8_mask (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union64 *ORC_RESTRICT ptr4;
+  orc_union32 var34;
+  orc_union64 var35;
+  orc_union32 var36;
+  orc_union64 var37;
+  orc_union64 var38;
+  orc_union64 var39;
+  orc_union64 var40;
+
+  ptr0 = (orc_union32 *) ex->arrays[0];
+  ptr4 = (orc_union64 *) ex->arrays[4];
+
+  /* 0: loadpq */
+  var37.i =
+      (ex->params[24] & 0xffffffff) | ((orc_uint64) (ex->params[24 +
+              (ORC_VAR_T1 - ORC_VAR_P1)]) << 32);
+
+  for (i = 0; i < n; i++) {
+    /* 1: loadl */
+    var34 = ptr0[i];
+    /* 2: convubw */
+    var38.x4[0] = (orc_uint8) var34.x4[0];
+    var38.x4[1] = (orc_uint8) var34.x4[1];
+    var38.x4[2] = (orc_uint8) var34.x4[2];
+    var38.x4[3] = (orc_uint8) var34.x4[3];
+    /* 3: loadq */
+    var35 = ptr4[i];
+    /* 4: addw */
+    var39.x4[0] = var38.x4[0] + var35.x4[0];
+    var39.x4[1] = var38.x4[1] + var35.x4[1];
+    var39.x4[2] = var38.x4[2] + var35.x4[2];
+    var39.x4[3] = var38.x4[3] + var35.x4[3];
+    /* 5: andnw */
+    var40.x4[0] = (~var37.x4[0]) & var39.x4[0];
+    var40.x4[1] = (~var37.x4[1]) & var39.x4[1];
+    var40.x4[2] = (~var37.x4[2]) & var39.x4[2];
+    var40.x4[3] = (~var37.x4[3]) & var39.x4[3];
+    /* 6: convsuswb */
+    var36.x4[0] = ORC_CLAMP_UB (var40.x4[0]);
+    var36.x4[1] = ORC_CLAMP_UB (var40.x4[1]);
+    var36.x4[2] = ORC_CLAMP_UB (var40.x4[2]);
+    var36.x4[3] = ORC_CLAMP_UB (var40.x4[3]);
+    /* 7: storel */
+    ptr0[i] = var36;
+  }
+
+}
+
+void
+video_orc_dither_ordered_4u8_mask (guint8 * ORC_RESTRICT d1,
+    const guint16 * ORC_RESTRICT s1, orc_int64 p1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 33, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 100, 105, 116,
+        104, 101, 114, 95, 111, 114, 100, 101, 114, 101, 100, 95, 52, 117, 56,
+            95,
+        109, 97, 115, 107, 11, 4, 4, 12, 8, 8, 18, 8, 20, 8, 20, 8,
+        134, 33, 24, 21, 2, 150, 32, 0, 21, 2, 70, 32, 32, 4, 21, 2,
+        74, 32, 33, 32, 21, 2, 160, 0, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_orc_dither_ordered_4u8_mask);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "video_orc_dither_ordered_4u8_mask");
+      orc_program_set_backup_function (p,
+          _backup_video_orc_dither_ordered_4u8_mask);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 8, "s1");
+      orc_program_add_parameter_int64 (p, 8, "p1");
+      orc_program_add_temporary (p, 8, "t1");
+      orc_program_add_temporary (p, 8, "t2");
+
+      orc_program_append_2 (p, "loadpq", 0, ORC_VAR_T2, ORC_VAR_P1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convubw", 2, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addw", 2, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_S1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "andnw", 2, ORC_VAR_T1, ORC_VAR_T2, ORC_VAR_T1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convsuswb", 2, ORC_VAR_D1, ORC_VAR_T1,
+          ORC_VAR_D1, ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  {
+    orc_union64 tmp;
+    tmp.i = p1;
+    ex->params[ORC_VAR_P1] = ((orc_uint64) tmp.i) & 0xffffffff;
+    ex->params[ORC_VAR_T1] = ((orc_uint64) tmp.i) >> 32;
+  }
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_dither_ordered_4u16_mask */
+#ifdef DISABLE_ORC
+void
+video_orc_dither_ordered_4u16_mask (guint16 * ORC_RESTRICT d1,
+    const guint16 * ORC_RESTRICT s1, orc_int64 p1, int n)
+{
+  int i;
+  orc_union64 *ORC_RESTRICT ptr0;
+  const orc_union64 *ORC_RESTRICT ptr4;
+  orc_union64 var34;
+  orc_union64 var35;
+  orc_union64 var36;
+  orc_union64 var37;
+  orc_union64 var38;
+
+  ptr0 = (orc_union64 *) d1;
+  ptr4 = (orc_union64 *) s1;
+
+  /* 0: loadpq */
+  var37.i = p1;
+
+  for (i = 0; i < n; i++) {
+    /* 1: loadq */
+    var34 = ptr0[i];
+    /* 2: loadq */
+    var35 = ptr4[i];
+    /* 3: addw */
+    var38.x4[0] = var34.x4[0] + var35.x4[0];
+    var38.x4[1] = var34.x4[1] + var35.x4[1];
+    var38.x4[2] = var34.x4[2] + var35.x4[2];
+    var38.x4[3] = var34.x4[3] + var35.x4[3];
+    /* 4: andnw */
+    var36.x4[0] = (~var37.x4[0]) & var38.x4[0];
+    var36.x4[1] = (~var37.x4[1]) & var38.x4[1];
+    var36.x4[2] = (~var37.x4[2]) & var38.x4[2];
+    var36.x4[3] = (~var37.x4[3]) & var38.x4[3];
+    /* 5: storeq */
+    ptr0[i] = var36;
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_dither_ordered_4u16_mask (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union64 *ORC_RESTRICT ptr0;
+  const orc_union64 *ORC_RESTRICT ptr4;
+  orc_union64 var34;
+  orc_union64 var35;
+  orc_union64 var36;
+  orc_union64 var37;
+  orc_union64 var38;
+
+  ptr0 = (orc_union64 *) ex->arrays[0];
+  ptr4 = (orc_union64 *) ex->arrays[4];
+
+  /* 0: loadpq */
+  var37.i =
+      (ex->params[24] & 0xffffffff) | ((orc_uint64) (ex->params[24 +
+              (ORC_VAR_T1 - ORC_VAR_P1)]) << 32);
+
+  for (i = 0; i < n; i++) {
+    /* 1: loadq */
+    var34 = ptr0[i];
+    /* 2: loadq */
+    var35 = ptr4[i];
+    /* 3: addw */
+    var38.x4[0] = var34.x4[0] + var35.x4[0];
+    var38.x4[1] = var34.x4[1] + var35.x4[1];
+    var38.x4[2] = var34.x4[2] + var35.x4[2];
+    var38.x4[3] = var34.x4[3] + var35.x4[3];
+    /* 4: andnw */
+    var36.x4[0] = (~var37.x4[0]) & var38.x4[0];
+    var36.x4[1] = (~var37.x4[1]) & var38.x4[1];
+    var36.x4[2] = (~var37.x4[2]) & var38.x4[2];
+    var36.x4[3] = (~var37.x4[3]) & var38.x4[3];
+    /* 5: storeq */
+    ptr0[i] = var36;
+  }
+
+}
+
+void
+video_orc_dither_ordered_4u16_mask (guint16 * ORC_RESTRICT d1,
+    const guint16 * ORC_RESTRICT s1, orc_int64 p1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 34, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 100, 105, 116,
+        104, 101, 114, 95, 111, 114, 100, 101, 114, 101, 100, 95, 52, 117, 49,
+            54,
+        95, 109, 97, 115, 107, 11, 8, 8, 12, 8, 8, 18, 8, 20, 8, 20,
+        8, 134, 33, 24, 21, 2, 70, 32, 0, 4, 21, 2, 74, 0, 33, 32,
+        2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_orc_dither_ordered_4u16_mask);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "video_orc_dither_ordered_4u16_mask");
+      orc_program_set_backup_function (p,
+          _backup_video_orc_dither_ordered_4u16_mask);
+      orc_program_add_destination (p, 8, "d1");
+      orc_program_add_source (p, 8, "s1");
+      orc_program_add_parameter_int64 (p, 8, "p1");
+      orc_program_add_temporary (p, 8, "t1");
+      orc_program_add_temporary (p, 8, "t2");
+
+      orc_program_append_2 (p, "loadpq", 0, ORC_VAR_T2, ORC_VAR_P1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addw", 2, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_S1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "andnw", 2, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_T1,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  {
+    orc_union64 tmp;
+    tmp.i = p1;
+    ex->params[ORC_VAR_P1] = ((orc_uint64) tmp.i) & 0xffffffff;
+    ex->params[ORC_VAR_T1] = ((orc_uint64) tmp.i) >> 32;
+  }
+
+  func = c->exec;
+  func (ex);
+}
+#endif
diff --git a/gst-libs/gst/video/video-orc-dist.h b/gst-libs/gst/video/video-orc-dist.h
index cf0b982..827406d 100644
--- a/gst-libs/gst/video/video-orc-dist.h
+++ b/gst-libs/gst/video/video-orc-dist.h
@@ -84,6 +84,7 @@
 void video_orc_blend_big (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
 void video_orc_unpack_I420 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, int n);
 void video_orc_pack_I420 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2, guint8 * ORC_RESTRICT d3, const guint8 * ORC_RESTRICT s1, int n);
+void video_orc_pack_Y (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
 void video_orc_unpack_YUY2 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
 void video_orc_pack_YUY2 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
 void video_orc_pack_UYVY (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
@@ -111,8 +112,118 @@
 void video_orc_pack_NV24 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1, int n);
 void video_orc_unpack_A420 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, int n);
 void video_orc_pack_A420 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2, guint8 * ORC_RESTRICT d3, guint8 * ORC_RESTRICT d4, const guint8 * ORC_RESTRICT s1, int n);
+void video_orc_pack_AY (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1, int n);
+void video_orc_unpack_RGB15_le (guint32 * ORC_RESTRICT d1, const guint16 * ORC_RESTRICT s1, int n);
+void video_orc_unpack_RGB15_be (guint32 * ORC_RESTRICT d1, const guint16 * ORC_RESTRICT s1, int n);
+void video_orc_unpack_RGB15_le_trunc (guint32 * ORC_RESTRICT d1, const guint16 * ORC_RESTRICT s1, int n);
+void video_orc_unpack_RGB15_be_trunc (guint32 * ORC_RESTRICT d1, const guint16 * ORC_RESTRICT s1, int n);
+void video_orc_pack_RGB15_le (guint16 * ORC_RESTRICT d1, const guint32 * ORC_RESTRICT s1, int n);
+void video_orc_pack_RGB15_be (guint16 * ORC_RESTRICT d1, const guint32 * ORC_RESTRICT s1, int n);
+void video_orc_unpack_BGR15_le (guint32 * ORC_RESTRICT d1, const guint16 * ORC_RESTRICT s1, int n);
+void video_orc_unpack_BGR15_be (guint32 * ORC_RESTRICT d1, const guint16 * ORC_RESTRICT s1, int n);
+void video_orc_unpack_BGR15_le_trunc (guint32 * ORC_RESTRICT d1, const guint16 * ORC_RESTRICT s1, int n);
+void video_orc_unpack_BGR15_be_trunc (guint32 * ORC_RESTRICT d1, const guint16 * ORC_RESTRICT s1, int n);
+void video_orc_pack_BGR15_le (guint16 * ORC_RESTRICT d1, const guint32 * ORC_RESTRICT s1, int n);
+void video_orc_pack_BGR15_be (guint16 * ORC_RESTRICT d1, const guint32 * ORC_RESTRICT s1, int n);
+void video_orc_unpack_RGB16 (guint32 * ORC_RESTRICT d1, const guint16 * ORC_RESTRICT s1, int n);
+void video_orc_unpack_RGB16_trunc (guint32 * ORC_RESTRICT d1, const guint16 * ORC_RESTRICT s1, int n);
+void video_orc_pack_RGB16_le (guint16 * ORC_RESTRICT d1, const guint32 * ORC_RESTRICT s1, int n);
+void video_orc_pack_RGB16_be (guint16 * ORC_RESTRICT d1, const guint32 * ORC_RESTRICT s1, int n);
+void video_orc_unpack_BGR16 (guint32 * ORC_RESTRICT d1, const guint16 * ORC_RESTRICT s1, int n);
+void video_orc_unpack_BGR16_trunc (guint32 * ORC_RESTRICT d1, const guint16 * ORC_RESTRICT s1, int n);
+void video_orc_pack_BGR16_le (guint16 * ORC_RESTRICT d1, const guint32 * ORC_RESTRICT s1, int n);
+void video_orc_pack_BGR16_be (guint16 * ORC_RESTRICT d1, const guint32 * ORC_RESTRICT s1, int n);
 void video_orc_resample_bilinear_u32 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int p1, int p2, int n);
 void video_orc_merge_linear_u8 (orc_uint8 * ORC_RESTRICT d1, const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2, int p1, int n);
+void video_orc_memset_2d (guint8 * ORC_RESTRICT d1, int d1_stride, int p1, int n, int m);
+void video_orc_memcpy_2d (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
+void video_orc_convert_u16_to_u8 (guint8 * ORC_RESTRICT d1, const guint16 * ORC_RESTRICT s1, int n);
+void video_orc_convert_u8_to_u16 (guint16 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
+void video_orc_splat_u16 (guint8 * ORC_RESTRICT d1, int p1, int n);
+void video_orc_splat_u32 (guint8 * ORC_RESTRICT d1, int p1, int n);
+void video_orc_splat_u64 (guint8 * ORC_RESTRICT d1, orc_int64 p1, int n);
+void video_orc_splat2_u64 (guint8 * ORC_RESTRICT d1, int p1, int n);
+void video_orc_convert_I420_UYVY (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, int n);
+void video_orc_convert_I420_YUY2 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, int n);
+void video_orc_convert_I420_AYUV (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, int p1, int n);
+void video_orc_convert_YUY2_I420 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2, guint8 * ORC_RESTRICT d3, guint8 * ORC_RESTRICT d4, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, int n);
+void video_orc_convert_UYVY_YUY2 (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
+void video_orc_planar_chroma_420_422 (guint8 * ORC_RESTRICT d1, int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
+void video_orc_planar_chroma_420_444 (guint8 * ORC_RESTRICT d1, int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
+void video_orc_planar_chroma_422_444 (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
+void video_orc_planar_chroma_444_422 (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
+void video_orc_planar_chroma_444_420 (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, const guint8 * ORC_RESTRICT s2, int s2_stride, int n, int m);
+void video_orc_planar_chroma_422_420 (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, const guint8 * ORC_RESTRICT s2, int s2_stride, int n, int m);
+void video_orc_convert_YUY2_AYUV (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m);
+void video_orc_convert_UYVY_AYUV (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m);
+void video_orc_convert_YUY2_Y42B (guint8 * ORC_RESTRICT d1, int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3, int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
+void video_orc_convert_UYVY_Y42B (guint8 * ORC_RESTRICT d1, int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3, int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
+void video_orc_convert_YUY2_Y444 (guint8 * ORC_RESTRICT d1, int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3, int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
+void video_orc_convert_UYVY_Y444 (guint8 * ORC_RESTRICT d1, int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3, int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
+void video_orc_convert_UYVY_I420 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2, guint8 * ORC_RESTRICT d3, guint8 * ORC_RESTRICT d4, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, int n);
+void video_orc_convert_AYUV_I420 (guint8 * ORC_RESTRICT d1, int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3, int d3_stride, guint8 * ORC_RESTRICT d4, int d4_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, const guint8 * ORC_RESTRICT s2, int s2_stride, int n, int m);
+void video_orc_convert_AYUV_YUY2 (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
+void video_orc_convert_AYUV_UYVY (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
+void video_orc_convert_AYUV_Y42B (guint8 * ORC_RESTRICT d1, int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3, int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
+void video_orc_convert_AYUV_Y444 (guint8 * ORC_RESTRICT d1, int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3, int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
+void video_orc_convert_Y42B_YUY2 (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, const guint8 * ORC_RESTRICT s2, int s2_stride, const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m);
+void video_orc_convert_Y42B_UYVY (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, const guint8 * ORC_RESTRICT s2, int s2_stride, const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m);
+void video_orc_convert_Y42B_AYUV (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, const guint8 * ORC_RESTRICT s2, int s2_stride, const guint8 * ORC_RESTRICT s3, int s3_stride, int p1, int n, int m);
+void video_orc_convert_Y444_YUY2 (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, const guint8 * ORC_RESTRICT s2, int s2_stride, const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m);
+void video_orc_convert_Y444_UYVY (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, const guint8 * ORC_RESTRICT s2, int s2_stride, const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m);
+void video_orc_convert_Y444_AYUV (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, const guint8 * ORC_RESTRICT s2, int s2_stride, const guint8 * ORC_RESTRICT s3, int s3_stride, int p1, int n, int m);
+void video_orc_convert_AYUV_ARGB (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int p2, int p3, int p4, int p5, int n, int m);
+void video_orc_convert_AYUV_BGRA (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int p2, int p3, int p4, int p5, int n, int m);
+void video_orc_convert_AYUV_ABGR (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int p2, int p3, int p4, int p5, int n, int m);
+void video_orc_convert_AYUV_RGBA (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int p2, int p3, int p4, int p5, int n, int m);
+void video_orc_convert_I420_BGRA (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, int p1, int p2, int p3, int p4, int p5, int n);
+void video_orc_matrix8 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, orc_int64 p1, orc_int64 p2, orc_int64 p3, orc_int64 p4, int n);
+void _custom_video_orc_matrix8 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, orc_int64 p1, orc_int64 p2, orc_int64 p3, orc_int64 p4, int n);
+void video_orc_resample_h_near_u32_lq (guint32 * ORC_RESTRICT d1, const guint32 * ORC_RESTRICT s1, int p1, int p2, int n);
+void video_orc_resample_h_2tap_1u8_lq (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int p1, int p2, int n);
+void video_orc_resample_h_2tap_4u8_lq (guint32 * ORC_RESTRICT d1, const guint32 * ORC_RESTRICT s1, int p1, int p2, int n);
+void video_orc_resample_h_2tap_u8_lq (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const gint16 * ORC_RESTRICT s3, const gint16 * ORC_RESTRICT s4, int n);
+void video_orc_resample_h_2tap_u16 (guint16 * ORC_RESTRICT d1, const guint16 * ORC_RESTRICT s1, const guint16 * ORC_RESTRICT s2, const gint16 * ORC_RESTRICT s3, const gint16 * ORC_RESTRICT s4, int n);
+void video_orc_resample_v_2tap_u8_lq (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, int p1, int n);
+void video_orc_resample_v_2tap_u16 (guint16 * ORC_RESTRICT d1, const guint16 * ORC_RESTRICT s1, const guint16 * ORC_RESTRICT s2, int p1, int n);
+void video_orc_resample_v_2tap_u8 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, int p1, int n);
+void video_orc_resample_v_4tap_u8_lq (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, int p1, int p2, int p3, int p4, int n);
+void video_orc_resample_v_4tap_u8 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, int p1, int p2, int p3, int p4, int n);
+void video_orc_resample_h_multaps_u8 (gint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const gint16 * ORC_RESTRICT s2, int n);
+void video_orc_resample_h_muladdtaps_u8 (gint32 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, const gint16 * ORC_RESTRICT s2, int s2_stride, int n, int m);
+void video_orc_resample_scaletaps_u8 (guint8 * ORC_RESTRICT d1, const gint32 * ORC_RESTRICT s1, int n);
+void video_orc_resample_h_multaps_u8_lq (gint16 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const gint16 * ORC_RESTRICT s2, int n);
+void video_orc_resample_h_muladdtaps_u8_lq (gint16 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, const gint16 * ORC_RESTRICT s2, int s2_stride, int n, int m);
+void video_orc_resample_h_multaps3_u8_lq (gint16 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, const gint16 * ORC_RESTRICT s4, const gint16 * ORC_RESTRICT s5, const gint16 * ORC_RESTRICT s6, int n);
+void video_orc_resample_h_muladdtaps3_u8_lq (gint16 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, const gint16 * ORC_RESTRICT s4, const gint16 * ORC_RESTRICT s5, const gint16 * ORC_RESTRICT s6, int n);
+void video_orc_resample_h_muladdscaletaps3_u8_lq (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, const gint16 * ORC_RESTRICT s4, const gint16 * ORC_RESTRICT s5, const gint16 * ORC_RESTRICT s6, const gint16 * ORC_RESTRICT s7, int n);
+void video_orc_resample_scaletaps_u8_lq (guint8 * ORC_RESTRICT d1, const gint16 * ORC_RESTRICT s1, int n);
+void video_orc_resample_h_multaps_u16 (gint32 * ORC_RESTRICT d1, const guint16 * ORC_RESTRICT s1, const gint16 * ORC_RESTRICT s2, int n);
+void video_orc_resample_h_muladdtaps_u16 (gint32 * ORC_RESTRICT d1, int d1_stride, const guint16 * ORC_RESTRICT s1, int s1_stride, const gint16 * ORC_RESTRICT s2, int s2_stride, int n, int m);
+void video_orc_resample_scaletaps_u16 (guint16 * ORC_RESTRICT d1, const gint32 * ORC_RESTRICT s1, int n);
+void video_orc_resample_v_multaps_u8 (gint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int p1, int n);
+void video_orc_resample_v_muladdtaps_u8 (gint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int p1, int n);
+void video_orc_resample_v_multaps_u16 (gint32 * ORC_RESTRICT d1, const guint16 * ORC_RESTRICT s1, int p1, int n);
+void video_orc_resample_v_muladdtaps_u16 (gint32 * ORC_RESTRICT d1, const guint16 * ORC_RESTRICT s1, int p1, int n);
+void video_orc_resample_v_multaps_u8_lq (gint16 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int p1, int n);
+void video_orc_resample_v_multaps4_u8_lq (gint16 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, int p1, int p2, int p3, int p4, int n);
+void video_orc_resample_v_muladdtaps_u8_lq (gint16 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int p1, int n);
+void video_orc_resample_v_muladdtaps4_u8_lq (gint16 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, int p1, int p2, int p3, int p4, int n);
+void video_orc_resample_v_muladdscaletaps4_u8_lq (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, const gint16 * ORC_RESTRICT s5, int p1, int p2, int p3, int p4, int n);
+void video_orc_chroma_down_h2_u8 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
+void video_orc_chroma_down_v2_u8 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, int n);
+void video_orc_chroma_up_v2_u8 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, int n);
+void video_orc_chroma_up_v2_u16 (guint16 * ORC_RESTRICT d1, guint16 * ORC_RESTRICT d2, const guint16 * ORC_RESTRICT s1, const guint16 * ORC_RESTRICT s2, int n);
+void video_orc_chroma_down_v2_u16 (guint16 * ORC_RESTRICT d1, const guint16 * ORC_RESTRICT s1, const guint16 * ORC_RESTRICT s2, int n);
+void video_orc_chroma_down_v4_u8 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, int n);
+void video_orc_chroma_down_v4_u16 (guint16 * ORC_RESTRICT d1, const guint16 * ORC_RESTRICT s1, const guint16 * ORC_RESTRICT s2, const guint16 * ORC_RESTRICT s3, const guint16 * ORC_RESTRICT s4, int n);
+void video_orc_dither_none_4u8_mask (guint8 * ORC_RESTRICT d1, int p1, int n);
+void video_orc_dither_none_4u16_mask (guint16 * ORC_RESTRICT d1, orc_int64 p1, int n);
+void video_orc_dither_verterr_4u8_mask (guint8 * ORC_RESTRICT d1, guint16 * ORC_RESTRICT d2, orc_int64 p1, int n);
+void video_orc_dither_fs_muladd_u8 (guint16 * ORC_RESTRICT d1, int n);
+void video_orc_dither_ordered_u8 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
+void video_orc_dither_ordered_4u8_mask (guint8 * ORC_RESTRICT d1, const guint16 * ORC_RESTRICT s1, orc_int64 p1, int n);
+void video_orc_dither_ordered_4u16_mask (guint16 * ORC_RESTRICT d1, const guint16 * ORC_RESTRICT s1, orc_int64 p1, int n);
 
 #ifdef __cplusplus
 }
diff --git a/gst-libs/gst/video/video-orc.orc b/gst-libs/gst/video/video-orc.orc
index 1f67327..be4393e 100644
--- a/gst-libs/gst/video/video-orc.orc
+++ b/gst-libs/gst/video/video-orc.orc
@@ -96,6 +96,14 @@
 select0wb u, uu
 select0wb v, vv
 
+.function video_orc_pack_Y
+.dest 1 y guint8
+.source 4 ayuv guint8
+.temp 2 ay
+
+select0lw ay, ayuv
+select1wb y, ay
+
 .function video_orc_unpack_YUY2
 .dest 8 ayuv guint8
 .source 4 yuy2 guint8
@@ -297,80 +305,46 @@
 .function video_orc_pack_RGBA
 .dest 4 rgba guint8
 .source 4 argb guint8
-.temp 1 a
-.temp 1 r
-.temp 1 g
-.temp 1 b
-.temp 2 rg
-.temp 2 ba
-.temp 2 ar
-.temp 2 gb
+.temp 4 a
+.temp 4 r
 
-splitlw gb, ar, argb
-splitwb b, g, gb
-splitwb r, a, ar
-mergebw ba, b, a
-mergebw rg, r, g
-mergewl rgba, rg, ba
+loadl r, argb
+shrul a, r, 8
+shll r, r, 24
+orl rgba, r, a
 
 .function video_orc_unpack_RGBA
 .dest 4 argb guint8
 .source 4 rgba guint8
-.temp 1 a
-.temp 1 r
-.temp 1 g
-.temp 1 b
-.temp 2 rg
-.temp 2 ba
-.temp 2 ar
-.temp 2 gb
+.temp 4 a
+.temp 4 r
 
-splitlw ba, rg, rgba
-splitwb g, r, rg
-splitwb a, b, ba
-mergebw ar, a, r
-mergebw gb, g, b
-mergewl argb, ar, gb
-
+loadl r, rgba
+shll a, r, 8
+shrul r, r, 24
+orl argb, r, a
 
 .function video_orc_unpack_ABGR
 .dest 4 argb guint8
 .source 4 abgr guint8
-.temp 1 a
-.temp 1 r
-.temp 1 g
-.temp 1 b
-.temp 2 gr
-.temp 2 ab
-.temp 2 ar
-.temp 2 gb
+.temp 4 a
+.temp 4 r
 
-splitlw gr, ab, abgr
-splitwb r, g, gr
-splitwb b, a, ab
-mergebw ar, a, r
-mergebw gb, g, b
-mergewl argb, ar, gb
-
+swapl r, abgr
+shll a, r, 8
+shrul r, r, 24
+orl argb, r, a
 
 .function video_orc_pack_ABGR
 .dest 4 abgr guint8
 .source 4 argb guint8
-.temp 1 a
-.temp 1 r
-.temp 1 g
-.temp 1 b
-.temp 2 gr
-.temp 2 ab
-.temp 2 ar
-.temp 2 gb
+.temp 4 a
+.temp 4 r
 
-splitlw gb, ar, argb
-splitwb b, g, gb
-splitwb r, a, ar
-mergebw ab, a, b
-mergebw gr, g, r
-mergewl abgr, ab, gr
+swapl r, argb
+shll a, r, 8
+shrul r, r, 24
+orl abgr, r, a
 
 .function video_orc_unpack_NV12
 .dest 8 d guint8
@@ -477,6 +451,451 @@
 select0wb u, uu
 select0wb v, vv
 
+.function video_orc_pack_AY
+.dest 1 y guint8
+.dest 1 a guint8
+.source 4 ayuv guint8
+.temp 2 ay
+
+select0lw ay, ayuv
+select1wb y, ay
+select0wb a, ay
+
+.function video_orc_unpack_RGB15_le
+.dest 4 argb guint32
+.source 2 rgb15 guint16
+.temp 2 t
+.temp 2 r
+.temp 2 g
+.temp 2 b
+.temp 4 ag
+.temp 4 rb
+
+loadw t, rgb15
+andw r, t, 0x7c00
+andw g, t, 0x03e0
+andw b, t, 0x001f
+shlw b, b, 5
+mulhsw r, r, 0x0210
+mulhsw g, g, 0x4200
+mulhsw b, b, 0x4200
+mergewl ag, 0xff, g
+mergewl rb, r, b
+shll rb, rb, 8
+orl argb, ag, rb
+
+.function video_orc_unpack_RGB15_be
+.dest 4 argb guint32
+.source 2 rgb15 guint16
+.temp 2 t
+.temp 2 r
+.temp 2 g
+.temp 2 b
+.temp 4 ag
+.temp 4 rb
+
+loadw t, rgb15
+andw r, t, 0x7c00
+andw g, t, 0x03e0
+andw b, t, 0x001f
+shlw b, b, 5
+mulhsw r, r, 0x0210
+mulhsw g, g, 0x4200
+mulhsw b, b, 0x4200
+mergewl ag, 0xff, g
+mergewl rb, r, b
+shll ag, ag, 8
+orl argb, ag, rb
+
+.function video_orc_unpack_RGB15_le_trunc
+.dest 4 argb guint32
+.source 2 rgb15 guint16
+.temp 2 t
+.temp 2 r
+.temp 2 g
+.temp 2 b
+.temp 4 ag
+.temp 4 rb
+
+loadw t, rgb15
+andw r, t, 0x7c00
+andw g, t, 0x03e0
+andw b, t, 0x001f
+shruw r, r, 7
+shruw g, g, 2
+shlw b, b, 3
+mergewl ag, 0xff, g
+mergewl rb, r, b
+shll rb, rb, 8
+orl argb, ag, rb
+
+.function video_orc_unpack_RGB15_be_trunc
+.dest 4 argb guint32
+.source 2 rgb15 guint16
+.temp 2 t
+.temp 2 r
+.temp 2 g
+.temp 2 b
+.temp 4 ag
+.temp 4 rb
+
+loadw t, rgb15
+andw r, t, 0x7c00
+andw g, t, 0x03e0
+andw b, t, 0x001f
+shruw r, r, 7
+shruw g, g, 2
+shlw b, b, 3
+mergewl ag, 0xff, g
+mergewl rb, r, b
+shll ag, ag, 8
+orl argb, ag, rb
+
+.function video_orc_pack_RGB15_le
+.dest 2 rgb15 guint16
+.source 4 argb guint32
+.temp 4 t
+.temp 4 r
+.temp 4 g
+.temp 4 b
+.temp 4 t2
+
+loadl t, argb
+andl r, t, 0xf800
+andl g, t, 0xf80000
+andl b, t, 0xf8000000
+shrul r, r, 1
+shrul g, g, 14
+shrul b, b, 27
+orl t2, r, g
+orl t2, t2, b
+select0lw rgb15, t2
+
+.function video_orc_pack_RGB15_be
+.dest 2 rgb15 guint16
+.source 4 argb guint32
+.temp 4 t
+.temp 4 r
+.temp 4 g
+.temp 4 b
+.temp 4 t2
+
+loadl t, argb
+andl r, t, 0xf80000
+andl g, t, 0xf800
+andl b, t, 0xf8
+shrul r, r, 9
+shrul g, g, 6
+shrul b, b, 3
+orl t2, r, g
+orl t2, t2, b
+select1lw rgb15, t2
+
+.function video_orc_unpack_BGR15_le
+.dest 4 argb guint32
+.source 2 bgr15 guint16
+.temp 2 t
+.temp 2 r
+.temp 2 g
+.temp 2 b
+.temp 4 ag
+.temp 4 rb
+
+loadw t, bgr15
+andw b, t, 0x7c00
+andw g, t, 0x03e0
+andw r, t, 0x001f
+shlw r, r, 5
+mulhsw b, b, 0x0210
+mulhsw g, g, 0x4200
+mulhsw r, r, 0x4200
+mergewl ag, 0xff, g
+mergewl rb, r, b
+shll rb, rb, 8
+orl argb, ag, rb
+
+.function video_orc_unpack_BGR15_be
+.dest 4 argb guint32
+.source 2 bgr15 guint16
+.temp 2 t
+.temp 2 r
+.temp 2 g
+.temp 2 b
+.temp 4 ag
+.temp 4 rb
+
+loadw t, bgr15
+andw b, t, 0x7c00
+andw g, t, 0x03e0
+andw r, t, 0x001f
+shlw r, r, 5
+mulhsw b, b, 0x0210
+mulhsw g, g, 0x4200
+mulhsw r, r, 0x4200
+mergewl ag, 0xff, g
+mergewl rb, r, b
+shll ag, ag, 8
+orl argb, ag, rb
+
+.function video_orc_unpack_BGR15_le_trunc
+.dest 4 argb guint32
+.source 2 bgr15 guint16
+.temp 2 t
+.temp 2 r
+.temp 2 g
+.temp 2 b
+.temp 4 ag
+.temp 4 rb
+
+loadw t, bgr15
+andw b, t, 0x7c00
+andw g, t, 0x03e0
+andw r, t, 0x001f
+shruw b, b, 7
+shruw g, g, 2
+shlw r, r, 3
+mergewl ag, 0xff, g
+mergewl rb, r, b
+shll rb, rb, 8
+orl argb, ag, rb
+
+.function video_orc_unpack_BGR15_be_trunc
+.dest 4 argb guint32
+.source 2 bgr15 guint16
+.temp 2 t
+.temp 2 r
+.temp 2 g
+.temp 2 b
+.temp 4 ag
+.temp 4 rb
+
+loadw t, bgr15
+andw b, t, 0x7c00
+andw g, t, 0x03e0
+andw r, t, 0x001f
+shruw b, b, 7
+shruw g, g, 2
+shlw r, r, 3
+mergewl ag, 0xff, g
+mergewl rb, r, b
+shll ag, ag, 8
+orl argb, ag, rb
+
+.function video_orc_pack_BGR15_le
+.dest 2 rgb15 guint16
+.source 4 argb guint32
+.temp 4 t
+.temp 4 r
+.temp 4 g
+.temp 4 b
+.temp 4 t2
+
+loadl t, argb
+andl r, t, 0xf800
+andl g, t, 0xf80000
+andl b, t, 0xf8000000
+shrul b, b, 17
+shrul g, g, 14
+shrul r, r, 11
+orl t2, r, g
+orl t2, t2, b
+select0lw rgb15, t2
+
+.function video_orc_pack_BGR15_be
+.dest 2 rgb15 guint16
+.source 4 argb guint32
+.temp 4 t
+.temp 4 r
+.temp 4 g
+.temp 4 b
+.temp 4 t2
+
+loadl t, argb
+andl r, t, 0xf80000
+andl g, t, 0xf800
+andl b, t, 0xf8
+shll b, b, 7
+shrul g, g, 6
+shrul r, r, 19
+orl t2, r, g
+orl t2, t2, b
+select1lw rgb15, t2
+
+.function video_orc_unpack_RGB16
+.dest 4 argb guint32
+.source 2 rgb16 guint16
+.temp 2 t
+.temp 2 r
+.temp 2 g
+.temp 2 b
+.temp 4 ar
+.temp 4 gb
+.temp 8 t2
+
+loadw t, rgb16
+andw r, t, 0xf800
+andw g, t, 0x07e0
+andw b, t, 0x001f
+shruw r, r, 6
+shlw b, b, 5
+mulhsw r, r, 0x4200
+mulhsw g, g, 0x2080
+mulhsw b, b, 0x4200
+mergewl ar, 0xff, r
+mergewl gb, g, b
+mergelq t2, ar, gb
+x4 convsuswb argb, t2
+
+.function video_orc_unpack_RGB16_trunc
+.dest 4 argb guint32
+.source 2 rgb16 guint16
+.temp 2 t
+.temp 2 r
+.temp 2 g
+.temp 2 b
+.temp 4 ar
+.temp 4 gb
+.temp 8 t2
+
+loadw t, rgb16
+andw r, t, 0xf800
+andw g, t, 0x07e0
+andw b, t, 0x001f
+shruw r, r, 8
+shruw g, g, 3
+shlw b, b, 3
+mergewl ar, 0xff, r
+mergewl gb, g, b
+mergelq t2, ar, gb
+x4 convsuswb argb, t2
+
+.function video_orc_pack_RGB16_le
+.dest 2 rgb15 guint16
+.source 4 argb guint32
+.temp 4 t
+.temp 4 r
+.temp 4 g
+.temp 4 b
+.temp 4 t2
+
+loadl t, argb
+andl r, t, 0xf800
+andl g, t, 0xfc0000
+andl b, t, 0xf8000000
+shrul g, g, 13
+shrul b, b, 27
+orl t2, r, g
+orl t2, t2, b
+select0lw rgb15, t2
+
+.function video_orc_pack_RGB16_be
+.dest 2 rgb16 guint16
+.source 4 argb guint32
+.temp 4 t
+.temp 4 r
+.temp 4 g
+.temp 4 b
+.temp 4 t2
+
+loadl t, argb
+andl r, t, 0xf80000
+andl g, t, 0xfc00
+andl b, t, 0xf8
+shrul r, r, 8
+shrul g, g, 5
+shrul b, b, 3
+orl t2, r, g
+orl t2, t2, b
+select1lw rgb16, t2
+
+.function video_orc_unpack_BGR16
+.dest 4 argb guint32
+.source 2 bgr16 guint16
+.temp 2 t
+.temp 2 r
+.temp 2 g
+.temp 2 b
+.temp 4 ar
+.temp 4 gb
+.temp 8 t2
+
+loadw t, bgr16
+andw b, t, 0xf800
+andw g, t, 0x07e0
+andw r, t, 0x001f
+shruw b, b, 6
+shlw r, r, 5
+mulhsw b, b, 0x4200
+mulhsw g, g, 0x2080
+mulhsw r, r, 0x4200
+mergewl ar, 0xff, r
+mergewl gb, g, b
+mergelq t2, ar, gb
+x4 convsuswb argb, t2
+
+.function video_orc_unpack_BGR16_trunc
+.dest 4 argb guint32
+.source 2 bgr16 guint16
+.temp 2 t
+.temp 2 r
+.temp 2 g
+.temp 2 b
+.temp 4 ar
+.temp 4 gb
+.temp 8 t2
+
+loadw t, bgr16
+andw b, t, 0xf800
+andw g, t, 0x07e0
+andw r, t, 0x001f
+shruw b, b, 8
+shruw g, g, 3
+shlw r, r, 3
+mergewl ar, 0xff, r
+mergewl gb, g, b
+mergelq t2, ar, gb
+x4 convsuswb argb, t2
+
+.function video_orc_pack_BGR16_le
+.dest 2 rgb15 guint16
+.source 4 argb guint32
+.temp 4 t
+.temp 4 r
+.temp 4 g
+.temp 4 b
+.temp 4 t2
+
+loadl t, argb
+andl r, t, 0xf800
+andl g, t, 0xfc0000
+andl b, t, 0xf8000000
+shrul r, r, 11
+shrul g, g, 13
+shrul b, b, 16
+orl t2, r, g
+orl t2, t2, b
+select0lw rgb15, t2
+
+.function video_orc_pack_BGR16_be
+.dest 2 rgb15 guint16
+.source 4 argb guint32
+.temp 4 t
+.temp 4 r
+.temp 4 g
+.temp 4 b
+.temp 4 t2
+
+loadl t, argb
+andl r, t, 0xf80000
+andl g, t, 0xfc00
+andl b, t, 0xf8
+shll b, b, 8
+shrul g, g, 5
+shrul r, r, 19
+orl t2, r, g
+orl t2, t2, b
+select1lw rgb15, t2
+
 .function video_orc_resample_bilinear_u32
 .dest 4 d1 guint8
 .source 4 s1 guint8
@@ -503,3 +922,1633 @@
 addw t2, t2, 128
 convhwb t, t2
 addb d1, t, a
+
+
+.function video_orc_memset_2d
+.flags 2d
+.dest 1 d1 guint8
+.param 1 p1
+
+storeb d1, p1
+
+.function video_orc_memcpy_2d
+.flags 2d
+.dest 1 d1 guint8
+.source 1 s1 guint8
+
+copyb d1, s1
+
+.function video_orc_convert_u16_to_u8
+.source 2 s guint16
+.dest 1 d guint8
+
+convhwb d, s
+
+.function video_orc_convert_u8_to_u16
+.source 1 s guint8
+.dest 2 d guint16
+
+mergebw d, s, s
+
+.function video_orc_splat_u16
+.dest 2 d1 guint8
+.param 2 p1
+
+storew d1, p1
+
+.function video_orc_splat_u32
+.dest 4 d1 guint8
+.param 4 p1
+
+storel d1, p1
+
+.function video_orc_splat_u64
+.dest 8 d1 guint8
+.longparam 8 p1
+
+storeq d1, p1
+
+.function video_orc_splat2_u64
+.dest 8 d1 guint8
+.param 4 p1
+.temp 4 p
+
+loadpl p, p1
+x4 mergebw d1, p, p
+
+.function video_orc_convert_I420_UYVY
+.dest 4 d1 guint8
+.dest 4 d2 guint8
+.source 2 y1 guint8
+.source 2 y2 guint8
+.source 1 u guint8
+.source 1 v guint8
+.temp 2 uv
+
+mergebw uv, u, v
+x2 mergebw d1, uv, y1
+x2 mergebw d2, uv, y2
+
+
+.function video_orc_convert_I420_YUY2
+.dest 4 d1 guint8
+.dest 4 d2 guint8
+.source 2 y1 guint8
+.source 2 y2 guint8
+.source 1 u guint8
+.source 1 v guint8
+.temp 2 uv
+
+mergebw uv, u, v
+x2 mergebw d1, y1, uv
+x2 mergebw d2, y2, uv
+
+
+
+.function video_orc_convert_I420_AYUV
+.dest 4 d1 guint8
+.dest 4 d2 guint8
+.source 1 y1 guint8
+.source 1 y2 guint8
+.source 1 u guint8
+.source 1 v guint8
+.param 1 alpha
+.temp 2 uv
+.temp 2 ay
+.temp 1 tu
+.temp 1 tv
+
+loadupdb tu, u
+loadupdb tv, v
+mergebw uv, tu, tv
+mergebw ay, alpha, y1
+mergewl d1, ay, uv
+mergebw ay, alpha, y2
+mergewl d2, ay, uv
+
+
+.function video_orc_convert_YUY2_I420
+.dest 2 y1 guint8
+.dest 2 y2 guint8
+.dest 1 u guint8
+.dest 1 v guint8
+.source 4 yuv1 guint8
+.source 4 yuv2 guint8
+.temp 2 t1
+.temp 2 t2
+.temp 2 ty
+
+x2 splitwb t1, ty, yuv1
+storew y1, ty
+x2 splitwb t2, ty, yuv2
+storew y2, ty
+x2 avgub t1, t1, t2
+splitwb v, u, t1
+
+
+.function video_orc_convert_UYVY_YUY2
+.flags 2d
+.dest 4 yuy2 guint8
+.source 4 uyvy guint8
+
+x2 swapw yuy2, uyvy
+
+
+.function video_orc_planar_chroma_420_422
+.flags 2d
+.dest 1 d1 guint8
+.dest 1 d2 guint8
+.source 1 s guint8
+
+copyb d1, s
+copyb d2, s
+
+
+.function video_orc_planar_chroma_420_444
+.flags 2d
+.dest 2 d1 guint8
+.dest 2 d2 guint8
+.source 1 s guint8
+.temp 2 t
+
+splatbw t, s
+storew d1, t
+storew d2, t
+
+
+.function video_orc_planar_chroma_422_444
+.flags 2d
+.dest 2 d1 guint8
+.source 1 s guint8
+.temp 2 t
+
+splatbw t, s
+storew d1, t
+
+
+.function video_orc_planar_chroma_444_422
+.flags 2d
+.dest 1 d guint8
+.source 2 s guint8
+.temp 1 t1
+.temp 1 t2
+
+splitwb t1, t2, s
+avgub d, t1, t2
+
+
+.function video_orc_planar_chroma_444_420
+.flags 2d
+.dest 1 d guint8
+.source 2 s1 guint8
+.source 2 s2 guint8
+.temp 2 t
+.temp 1 t1
+.temp 1 t2
+
+x2 avgub t, s1, s2
+splitwb t1, t2, t
+avgub d, t1, t2
+
+
+.function video_orc_planar_chroma_422_420
+.flags 2d
+.dest 1 d guint8
+.source 1 s1 guint8
+.source 1 s2 guint8
+
+avgub d, s1, s2
+
+
+.function video_orc_convert_YUY2_AYUV
+.flags 2d
+.dest 8 ayuv guint8
+.source 4 yuy2 guint8
+.param 1 alpha
+.temp 2 yy
+.temp 2 uv
+.temp 4 ayay
+.temp 4 uvuv
+
+x2 splitwb uv, yy, yuy2
+x2 mergebw ayay, alpha, yy
+mergewl uvuv, uv, uv
+x2 mergewl ayuv, ayay, uvuv
+
+
+.function video_orc_convert_UYVY_AYUV
+.flags 2d
+.dest 8 ayuv guint8
+.source 4 uyvy guint8
+.param 1 alpha
+.temp 2 yy
+.temp 2 uv
+.temp 4 ayay
+.temp 4 uvuv
+
+x2 splitwb yy, uv, uyvy
+x2 mergebw ayay, alpha, yy
+mergewl uvuv, uv, uv
+x2 mergewl ayuv, ayay, uvuv
+
+
+.function video_orc_convert_YUY2_Y42B
+.flags 2d
+.dest 2 y guint8
+.dest 1 u guint8
+.dest 1 v guint8
+.source 4 yuy2 guint8
+.temp 2 uv
+
+x2 splitwb uv, y, yuy2
+splitwb v, u, uv
+
+
+.function video_orc_convert_UYVY_Y42B
+.flags 2d
+.dest 2 y guint8
+.dest 1 u guint8
+.dest 1 v guint8
+.source 4 uyvy guint8
+.temp 2 uv
+
+x2 splitwb y, uv, uyvy
+splitwb v, u, uv
+
+
+.function video_orc_convert_YUY2_Y444
+.flags 2d
+.dest 2 y guint8
+.dest 2 uu guint8
+.dest 2 vv guint8
+.source 4 yuy2 guint8
+.temp 2 uv
+.temp 1 u
+.temp 1 v
+
+x2 splitwb uv, y, yuy2
+splitwb v, u, uv
+splatbw uu, u
+splatbw vv, v
+
+
+.function video_orc_convert_UYVY_Y444
+.flags 2d
+.dest 2 y guint8
+.dest 2 uu guint8
+.dest 2 vv guint8
+.source 4 uyvy guint8
+.temp 2 uv
+.temp 1 u
+.temp 1 v
+
+x2 splitwb y, uv, uyvy
+splitwb v, u, uv
+splatbw uu, u
+splatbw vv, v
+
+
+.function video_orc_convert_UYVY_I420
+.dest 2 y1 guint8
+.dest 2 y2 guint8
+.dest 1 u guint8
+.dest 1 v guint8
+.source 4 yuv1 guint8
+.source 4 yuv2 guint8
+.temp 2 t1
+.temp 2 t2
+.temp 2 ty
+
+x2 splitwb ty, t1, yuv1
+storew y1, ty
+x2 splitwb ty, t2, yuv2
+storew y2, ty
+x2 avgub t1, t1, t2
+splitwb v, u, t1
+
+
+
+.function video_orc_convert_AYUV_I420
+.flags 2d
+.dest 2 y1 guint8
+.dest 2 y2 guint8
+.dest 1 u guint8
+.dest 1 v guint8
+.source 8 ayuv1 guint8
+.source 8 ayuv2 guint8
+.temp 4 ay
+.temp 4 uv1
+.temp 4 uv2
+.temp 4 uv
+.temp 2 uu
+.temp 2 vv
+.temp 1 t1
+.temp 1 t2
+
+x2 splitlw uv1, ay, ayuv1
+x2 select1wb y1, ay
+x2 splitlw uv2, ay, ayuv2
+x2 select1wb y2, ay
+x4 avgub uv, uv1, uv2
+x2 splitwb vv, uu, uv
+splitwb t1, t2, uu
+avgub u, t1, t2
+splitwb t1, t2, vv
+avgub v, t1, t2
+
+
+
+.function video_orc_convert_AYUV_YUY2
+.flags 2d
+.dest 4 yuy2 guint8
+.source 8 ayuv guint8
+.temp 2 yy
+.temp 2 uv1
+.temp 2 uv2
+.temp 4 ayay
+.temp 4 uvuv
+
+x2 splitlw uvuv, ayay, ayuv
+splitlw uv1, uv2, uvuv
+x2 avgub uv1, uv1, uv2
+x2 select1wb yy, ayay
+x2 mergebw yuy2, yy, uv1
+
+
+.function video_orc_convert_AYUV_UYVY
+.flags 2d
+.dest 4 yuy2 guint8
+.source 8 ayuv guint8
+.temp 2 yy
+.temp 2 uv1
+.temp 2 uv2
+.temp 4 ayay
+.temp 4 uvuv
+
+x2 splitlw uvuv, ayay, ayuv
+splitlw uv1, uv2, uvuv
+x2 avgub uv1, uv1, uv2
+x2 select1wb yy, ayay
+x2 mergebw yuy2, uv1, yy
+
+
+
+.function video_orc_convert_AYUV_Y42B
+.flags 2d
+.dest 2 y guint8
+.dest 1 u guint8
+.dest 1 v guint8
+.source 8 ayuv guint8
+.temp 4 ayay
+.temp 4 uvuv
+.temp 2 uv1
+.temp 2 uv2
+
+x2 splitlw uvuv, ayay, ayuv
+splitlw uv1, uv2, uvuv
+x2 avgub uv1, uv1, uv2
+splitwb v, u, uv1
+x2 select1wb y, ayay
+
+
+.function video_orc_convert_AYUV_Y444
+.flags 2d
+.dest 1 y guint8
+.dest 1 u guint8
+.dest 1 v guint8
+.source 4 ayuv guint8
+.temp 2 ay
+.temp 2 uv
+
+splitlw uv, ay, ayuv
+splitwb v, u, uv
+select1wb y, ay
+
+
+.function video_orc_convert_Y42B_YUY2
+.flags 2d
+.dest 4 yuy2 guint8
+.source 2 y guint8
+.source 1 u guint8
+.source 1 v guint8
+.temp 2 uv
+
+mergebw uv, u, v
+x2 mergebw yuy2, y, uv
+
+
+.function video_orc_convert_Y42B_UYVY
+.flags 2d
+.dest 4 uyvy guint8
+.source 2 y guint8
+.source 1 u guint8
+.source 1 v guint8
+.temp 2 uv
+
+mergebw uv, u, v
+x2 mergebw uyvy, uv, y
+
+
+.function video_orc_convert_Y42B_AYUV
+.flags 2d
+.dest 8 ayuv guint8
+.source 2 yy guint8
+.source 1 u guint8
+.source 1 v guint8
+.param 1 alpha
+.temp 2 uv
+.temp 2 ay
+.temp 4 uvuv
+.temp 4 ayay
+
+mergebw uv, u, v
+x2 mergebw ayay, alpha, yy
+mergewl uvuv, uv, uv
+x2 mergewl ayuv, ayay, uvuv
+
+
+.function video_orc_convert_Y444_YUY2
+.flags 2d
+.dest 4 yuy2 guint8
+.source 2 y guint8
+.source 2 u guint8
+.source 2 v guint8
+.temp 2 uv
+.temp 4 uvuv
+.temp 2 uv1
+.temp 2 uv2
+
+x2 mergebw uvuv, u, v
+splitlw uv1, uv2, uvuv
+x2 avgub uv, uv1, uv2
+x2 mergebw yuy2, y, uv
+
+
+.function video_orc_convert_Y444_UYVY
+.flags 2d
+.dest 4 uyvy guint8
+.source 2 y guint8
+.source 2 u guint8
+.source 2 v guint8
+.temp 2 uv
+.temp 4 uvuv
+.temp 2 uv1
+.temp 2 uv2
+
+x2 mergebw uvuv, u, v
+splitlw uv1, uv2, uvuv
+x2 avgub uv, uv1, uv2
+x2 mergebw uyvy, uv, y
+
+
+.function video_orc_convert_Y444_AYUV
+.flags 2d
+.dest 4 ayuv guint8
+.source 1 yy guint8
+.source 1 u guint8
+.source 1 v guint8
+.param 1 alpha
+.temp 2 uv
+.temp 2 ay
+
+mergebw uv, u, v
+mergebw ay, alpha, yy
+mergewl ayuv, ay, uv
+
+
+
+.function video_orc_convert_AYUV_ARGB
+.flags 2d
+.dest 4 argb guint8
+.source 4 ayuv guint8
+.param 2 p1
+.param 2 p2
+.param 2 p3
+.param 2 p4
+.param 2 p5
+.temp 1 a
+.temp 1 y
+.temp 1 u
+.temp 1 v
+.temp 2 wy
+.temp 2 wu
+.temp 2 wv
+.temp 2 wr
+.temp 2 wg
+.temp 2 wb
+.temp 1 r
+.temp 1 g
+.temp 1 b
+.temp 4 x
+.const 1 c128 128
+
+x4 subb x, ayuv, c128 
+splitlw wv, wy, x
+splitwb y, a, wy
+splitwb v, u, wv
+
+splatbw wy, y
+splatbw wu, u
+splatbw wv, v
+
+mulhsw wy, wy, p1
+
+mulhsw wr, wv, p2
+addw wr, wy, wr
+convssswb r, wr
+mergebw wr, a, r
+
+mulhsw wb, wu, p3
+addw wb, wy, wb
+convssswb b, wb
+
+mulhsw wg, wu, p4
+addw wg, wy, wg
+mulhsw wy, wv, p5
+addw wg, wg, wy
+
+convssswb g, wg
+
+mergebw wb, g, b
+mergewl x, wr, wb
+x4 addb argb, x, c128
+
+.function video_orc_convert_AYUV_BGRA
+.flags 2d
+.dest 4 bgra guint8
+.source 4 ayuv guint8
+.param 2 p1
+.param 2 p2
+.param 2 p3
+.param 2 p4
+.param 2 p5
+.temp 1 a
+.temp 1 y
+.temp 1 u
+.temp 1 v
+.temp 2 wy
+.temp 2 wu
+.temp 2 wv
+.temp 2 wr
+.temp 2 wg
+.temp 2 wb
+.temp 1 r
+.temp 1 g
+.temp 1 b
+.temp 4 x
+.const 1 c128 128
+
+x4 subb x, ayuv, c128 
+splitlw wv, wy, x
+splitwb y, a, wy
+splitwb v, u, wv
+
+splatbw wy, y
+splatbw wu, u
+splatbw wv, v
+
+mulhsw wy, wy, p1
+
+mulhsw wr, wv, p2
+addw wr, wy, wr
+convssswb r, wr
+mergebw wr, r, a
+
+mulhsw wb, wu, p3
+addw wb, wy, wb
+convssswb b, wb
+
+mulhsw wg, wu, p4
+addw wg, wy, wg
+mulhsw wy, wv, p5
+addw wg, wg, wy
+
+convssswb g, wg
+
+mergebw wb, b, g
+mergewl x, wb, wr
+x4 addb bgra, x, c128
+
+
+.function video_orc_convert_AYUV_ABGR
+.flags 2d
+.dest 4 argb guint8
+.source 4 ayuv guint8
+.param 2 p1
+.param 2 p2
+.param 2 p3
+.param 2 p4
+.param 2 p5
+.temp 1 a
+.temp 1 y
+.temp 1 u
+.temp 1 v
+.temp 2 wy
+.temp 2 wu
+.temp 2 wv
+.temp 2 wr
+.temp 2 wg
+.temp 2 wb
+.temp 1 r
+.temp 1 g
+.temp 1 b
+.temp 4 x
+.const 1 c128 128
+
+x4 subb x, ayuv, c128 
+splitlw wv, wy, x
+splitwb y, a, wy
+splitwb v, u, wv
+
+splatbw wy, y
+splatbw wu, u
+splatbw wv, v
+
+mulhsw wy, wy, p1
+
+mulhsw wr, wv, p2
+addw wr, wy, wr
+convssswb r, wr
+
+mulhsw wb, wu, p3
+addw wb, wy, wb
+convssswb b, wb
+mergebw wb, a, b
+
+mulhsw wg, wu, p4
+addw wg, wy, wg
+mulhsw wy, wv, p5
+addw wg, wg, wy
+
+convssswb g, wg
+
+mergebw wr, g, r
+mergewl x, wb, wr
+x4 addb argb, x, c128
+
+.function video_orc_convert_AYUV_RGBA
+.flags 2d
+.dest 4 argb guint8
+.source 4 ayuv guint8
+.param 2 p1
+.param 2 p2
+.param 2 p3
+.param 2 p4
+.param 2 p5
+.temp 1 a
+.temp 1 y
+.temp 1 u
+.temp 1 v
+.temp 2 wy
+.temp 2 wu
+.temp 2 wv
+.temp 2 wr
+.temp 2 wg
+.temp 2 wb
+.temp 1 r
+.temp 1 g
+.temp 1 b
+.temp 4 x
+.const 1 c128 128
+
+x4 subb x, ayuv, c128 
+splitlw wv, wy, x
+splitwb y, a, wy
+splitwb v, u, wv
+
+splatbw wy, y
+splatbw wu, u
+splatbw wv, v
+
+mulhsw wy, wy, p1
+
+mulhsw wr, wv, p2
+addw wr, wy, wr
+convssswb r, wr
+
+mulhsw wb, wu, p3
+addw wb, wy, wb
+convssswb b, wb
+mergebw wb, b, a
+
+mulhsw wg, wu, p4
+addw wg, wy, wg
+mulhsw wy, wv, p5
+addw wg, wg, wy
+
+convssswb g, wg
+
+mergebw wr, r, g
+mergewl x, wr, wb
+x4 addb argb, x, c128
+
+.function video_orc_convert_I420_BGRA
+.dest 4 argb guint8
+.source 1 y guint8
+.source 1 u guint8
+.source 1 v guint8
+.param 2 p1
+.param 2 p2
+.param 2 p3
+.param 2 p4
+.param 2 p5
+.temp 2 wy
+.temp 2 wu
+.temp 2 wv
+.temp 2 wr
+.temp 2 wg
+.temp 2 wb
+.temp 1 r
+.temp 1 g
+.temp 1 b
+.temp 4 x
+.const 1 c128 128
+
+subb r, y, c128
+splatbw wy, r
+loadupdb r, u
+subb r, r, c128
+splatbw wu, r
+loadupdb r, v
+subb r, r, c128
+splatbw wv, r
+
+mulhsw wy, wy, p1
+
+mulhsw wr, wv, p2
+addw wr, wy, wr
+convssswb r, wr
+mergebw wr, r, 127
+
+mulhsw wb, wu, p3
+addw wb, wy, wb
+convssswb b, wb
+
+mulhsw wg, wu, p4
+addw wg, wy, wg
+mulhsw wy, wv, p5
+addw wg, wg, wy
+
+convssswb g, wg
+
+mergebw wb, b, g
+mergewl x, wb, wr
+x4 addb argb, x, c128
+
+.function video_orc_matrix8
+.backup _custom_video_orc_matrix8
+.source 4 argb guint8
+.dest 4 ayuv guint8
+.longparam 8 p1
+.longparam 8 p2
+.longparam 8 p3
+.longparam 8 p4
+.const 1 c128 128
+.temp 2 w1
+.temp 2 w2
+.temp 1 b1
+.temp 1 b2
+.temp 4 l1
+.temp 4 ayuv2
+.temp 8 aq
+.temp 8 q1
+.temp 8 pr1
+.temp 8 pr2
+.temp 8 pr3
+
+loadpq pr1, p1
+loadpq pr2, p2
+loadpq pr3, p3
+
+x4 subb l1, argb, c128
+
+select0lw w1, l1
+select1lw w2, l1
+select0wb b1, w1
+select1wb b2, w1
+
+convubw w1, b1
+convuwl l1, w1
+x4 mergebw aq, l1, l1
+
+splatbl l1, b2
+mergelq q1, l1, l1
+x4 mulhsw q1, q1, pr1
+x4 addw aq, aq, q1
+
+select0wb b1, w2
+splatbl l1,b1
+mergelq q1, l1, l1
+x4 mulhsw q1, q1, pr2
+x4 addw aq, aq, q1
+
+select1wb b2, w2
+splatbl l1, b2
+mergelq q1, l1, l1
+x4 mulhsw q1, q1, pr3
+x4 addw aq, aq, q1
+
+x4 convssswb ayuv2, aq
+x4 addb ayuv, ayuv2, c128
+
+#.function video_orc_resample_h_near_u32
+#.source 4 src guint32
+#.source 4 idx
+#.dest 4 dest guint32
+#.temp 4 t
+#
+#loadidxl t, src, idx
+#storel dest, t
+
+.function video_orc_resample_h_near_u32_lq
+.dest 4 d1 guint32
+.source 4 s1 guint32
+.param 4 p1
+.param 4 p2
+
+ldresnearl d1, s1, p1, p2
+
+.function video_orc_resample_h_2tap_1u8_lq
+.dest 1 d1 guint8
+.source 1 s1 guint8
+.param 4 p1
+.param 4 p2
+
+ldreslinb d1, s1, p1, p2
+
+.function video_orc_resample_h_2tap_4u8_lq
+.dest 4 d1 guint32
+.source 4 s1 guint32
+.param 4 p1
+.param 4 p2
+
+ldreslinl d1, s1, p1, p2
+
+.function video_orc_resample_h_2tap_u8_lq
+.source 1 s1 guint8
+.source 1 s2 guint8
+.source 2 t1 gint16
+.source 2 t2 gint16
+.dest 1 d guint8
+.temp 2 w1
+.temp 2 w2
+
+convubw w1, s1
+mullw w1, w1, t1
+convubw w2, s2
+mullw w2, w2, t2
+addw w1, w1, w2
+addw w1, w1, 32
+shrsw w1, w1, 6
+convsuswb d, w1
+
+.function video_orc_resample_h_2tap_u16
+.source 2 s1 guint16
+.source 2 s2 guint16
+.source 2 t1 gint16
+.source 2 t2 gint16
+.dest 2 d guint16
+.temp 4 w1
+.temp 4 w2
+.temp 4 tl1
+.temp 4 tl2
+
+convuwl w1, s1
+convswl tl1, t1
+mulll w1, w1, tl1
+convuwl w2, s2
+convswl tl2, t2
+mulll w2, w2, tl2
+addl w1, w1, w2
+addl w1, w1, 4096
+shrsl w1, w1, 12
+convsuslw d, w1
+
+.function video_orc_resample_v_2tap_u8_lq
+.source 1 src1 guint8
+.source 1 src2 guint8
+.dest 1 dest guint8
+.param 2 p1 gint16
+.temp 1 t
+.temp 2 w1
+.temp 2 w2
+
+convubw w1, src1
+convubw w2, src2
+subw w2, w2, w1
+mullw w2, w2, p1
+addw w2, w2, 128
+convhwb t, w2
+addb dest, t, src1
+
+.function video_orc_resample_v_2tap_u16
+.source 2 src1 guint16
+.source 2 src2 guint16
+.dest 2 dest guint16
+.param 2 p1 gint16
+.temp 4 l1
+.temp 4 l2
+.temp 4 l3
+
+convuwl l1, src1
+convuwl l2, src2
+subl l2, l2, l1
+convuwl l3, p1
+mulll l2, l2, l3
+addl l2, l2, 4096
+shrsl l2, l2, 12
+addl l1, l1, l2
+convsuslw dest, l1
+
+.function video_orc_resample_v_2tap_u8
+.source 1 s1 guint8
+.source 1 s2 guint8
+.dest 1 d1 guint8
+.param 2 p1 gint16
+.temp 1 t
+.temp 2 w1
+.temp 2 w2
+.temp 4 t1
+.temp 4 t2
+
+convubw w1, s1
+convubw w2, s2
+subw w2, w2, w1
+mulswl t2, w2, p1
+addl t2, t2, 4095
+shrsl t2, t2, 12
+convlw w2, t2
+addw w2, w2, w1
+convsuswb d1, w2
+
+.function video_orc_resample_v_4tap_u8_lq
+.source 1 s1 guint8
+.source 1 s2 guint8
+.source 1 s3 guint8
+.source 1 s4 guint8
+.dest 1 d1 guint8
+.param 2 p1 gint16
+.param 2 p2 gint16
+.param 2 p3 gint16
+.param 2 p4 gint16
+.temp 2 w1
+.temp 2 w2
+
+convubw w1, s1
+mullw w1, w1, p1
+convubw w2, s2
+mullw w2, w2, p2
+addw w1, w1, w2
+convubw w2, s3
+mullw w2, w2, p3
+addw w1, w1, w2
+convubw w2, s4
+mullw w2, w2, p4
+addw w1, w1, w2
+addw w1, w1, 32
+shrsw w1, w1, 6
+convsuswb d1, w1
+
+.function video_orc_resample_v_4tap_u8
+.source 1 s1 guint8
+.source 1 s2 guint8
+.source 1 s3 guint8
+.source 1 s4 guint8
+.dest 1 d1 guint8
+.param 2 p1 gint16
+.param 2 p2 gint16
+.param 2 p3 gint16
+.param 2 p4 gint16
+.temp 2 w1
+.temp 2 w2
+.temp 4 t1
+.temp 4 t2
+
+convubw w1, s1
+mulswl t1, w1, p1
+convubw w2, s2
+mulswl t2, w2, p2
+addl t1, t1, t2
+convubw w2, s3
+mulswl t2, w2, p3
+addl t1, t1, t2
+convubw w2, s4
+mulswl t2, w2, p4
+addl t1, t1, t2
+addl t1, t1, 4095
+shrsl t1, t1, 12
+convsuslw w1, t1
+convsuswb d1, w1
+
+# crashes ORC for now but is potentially faster
+#.function video_orc_resample_h_4tap_u8
+#.source 1 s1 guint8
+#.source 1 s2 guint8
+#.source 1 s3 guint8
+#.source 1 s4 guint8
+#.source 2 t1 gint16
+#.source 2 t2 gint16
+#.source 2 t3 gint16
+#.source 2 t4 gint16
+#.dest 1 d1 guint8
+#.temp 2 w1
+#.temp 2 w2
+#.temp 4 l1
+#.temp 4 l2
+#
+#convubw w1, s1
+#mulswl l1, w1, t1
+#convubw w2, s2
+#mulswl l2, w2, t2
+#addl l1, l1, l2
+#convubw w2, s3
+#mulswl l2, w2, t3
+#addl l1, l1, l2
+#convubw w2, s4
+#mulswl l2, w2, t4
+#addl l1, l1, l2
+#addl l1, l1, 4095
+#shrsl l1, l1, 12
+#convsuslw w1, l1
+#convsuswb d1, w1
+
+.function video_orc_resample_h_multaps_u8
+.source 1 s guint8
+.source 2 t gint16
+.dest 4 d gint32
+.temp 2 w1
+
+convubw w1, s
+mulswl d, w1, t
+
+.function video_orc_resample_h_muladdtaps_u8
+.flags 2d
+.source 1 s guint8
+.source 2 t gint16
+.dest 4 d gint32
+.temp 2 w1
+.temp 4 t1
+
+convubw w1, s
+mulswl t1, w1, t
+addl d, d, t1
+
+.function video_orc_resample_scaletaps_u8
+.source 4 s gint32
+.dest 1 d guint8
+.temp 2 w1
+.temp 4 t1
+
+addl t1, s, 4095
+shrsl t1, t1, 12
+convsuslw w1, t1
+convsuswb d, w1
+
+.function video_orc_resample_h_multaps_u8_lq
+.source 1 s guint8
+.source 2 t gint16
+.dest 2 d gint16
+.temp 2 w1
+
+convubw w1, s
+mullw d, w1, t
+
+.function video_orc_resample_h_muladdtaps_u8_lq
+.flags 2d
+.source 1 s guint8
+.source 2 t gint16
+.dest 2 d gint16
+.temp 2 w1
+
+convubw w1, s
+mullw w1, w1, t
+addw d, d, w1
+
+.function video_orc_resample_h_multaps3_u8_lq
+.source 1 s1 guint8
+.source 1 s2 guint8
+.source 1 s3 guint8
+.source 2 t1 gint16
+.source 2 t2 gint16
+.source 2 t3 gint16
+.dest 2 d gint16
+.temp 2 w1
+.temp 2 w2
+
+convubw w1, s1
+mullw w1, w1, t1
+convubw w2, s2
+mullw w2, w2, t2
+addw w1, w1, w2
+convubw w2, s3
+mullw w2, w2, t3
+addw d, w1, w2
+
+.function video_orc_resample_h_muladdtaps3_u8_lq
+.source 1 s1 guint8
+.source 1 s2 guint8
+.source 1 s3 guint8
+.source 2 t1 gint16
+.source 2 t2 gint16
+.source 2 t3 gint16
+.dest 2 d gint16
+.temp 2 w1
+.temp 2 w2
+
+convubw w1, s1
+mullw w1, w1, t1
+convubw w2, s2
+mullw w2, w2, t2
+addw w1, w1, w2
+convubw w2, s3
+mullw w2, w2, t3
+addw w1, w1, w2
+addw d, d, w1
+
+.function video_orc_resample_h_muladdscaletaps3_u8_lq
+.source 1 s1 guint8
+.source 1 s2 guint8
+.source 1 s3 guint8
+.source 2 t1 gint16
+.source 2 t2 gint16
+.source 2 t3 gint16
+.source 2 temp gint16
+.dest 1 d guint8
+.temp 2 w1
+.temp 2 w2
+
+convubw w1, s1
+mullw w1, w1, t1
+convubw w2, s2
+mullw w2, w2, t2
+addw w1, w1, w2
+convubw w2, s3
+mullw w2, w2, t3
+addw w1, w1, w2
+addw w1, w1, temp
+addw w1, w1, 32
+shrsw w1, w1, 6
+convsuswb d, w1
+
+.function video_orc_resample_scaletaps_u8_lq
+.source 2 s gint16
+.dest 1 d guint8
+.temp 2 w1
+
+addw w1, s, 32
+shrsw w1, w1, 6
+convsuswb d, w1
+
+.function video_orc_resample_h_multaps_u16
+.source 2 s guint16
+.source 2 t gint16
+.dest 4 d gint32
+.temp 4 l1
+.temp 4 l2
+
+convuwl l1, s
+convswl l2, t
+mulll d, l1, l2
+
+.function video_orc_resample_h_muladdtaps_u16
+.flags 2d
+.source 2 s guint16
+.source 2 t gint16
+.dest 4 d gint32
+.temp 4 l1
+.temp 4 l2
+
+convuwl l1, s
+convswl l2, t
+mulll l1, l1, l2
+addl d, d, l1
+
+.function video_orc_resample_scaletaps_u16
+.source 4 s gint32
+.dest 2 d guint16
+.temp 4 t1
+
+addl t1, s, 4095
+shrsl t1, t1, 12
+convsuslw d, t1
+
+.function video_orc_resample_v_multaps_u8
+.source 1 s guint8
+.param 2 t gint16
+.dest 4 d gint32
+.temp 2 w1
+
+convubw w1, s
+mulswl d, w1, t
+
+.function video_orc_resample_v_muladdtaps_u8
+.source 1 s guint8
+.param 2 t gint16
+.dest 4 d gint32
+.temp 2 w1
+.temp 4 t1
+
+convubw w1, s
+mulswl t1, w1, t
+addl d, d, t1
+
+.function video_orc_resample_v_multaps_u16
+.source 2 s guint16
+.param 2 t gint16
+.dest 4 d gint32
+.temp 4 l1
+
+convuwl l1, s
+mulll d, l1, t
+
+.function video_orc_resample_v_muladdtaps_u16
+.source 2 s guint16
+.param 2 t gint16
+.dest 4 d gint32
+.temp 4 t1
+.temp 4 t2
+
+convuwl t1, s
+convswl t2, t
+mulll t1, t1, t2
+addl d, d, t1
+
+.function video_orc_resample_v_multaps_u8_lq
+.source 1 s guint8
+.param 2 t gint16
+.dest 2 d gint16
+.temp 2 w1
+
+convubw w1, s
+mullw d, w1, t
+
+.function video_orc_resample_v_multaps4_u8_lq
+.source 1 s1 guint8
+.source 1 s2 guint8
+.source 1 s3 guint8
+.source 1 s4 guint8
+.param 2 t1 gint16
+.param 2 t2 gint16
+.param 2 t3 gint16
+.param 2 t4 gint16
+.dest 2 d gint16
+.temp 2 w1
+.temp 2 w2
+
+convubw w1, s1
+mullw w1, w1, t1
+convubw w2, s2
+mullw w2, w2, t2
+addw w1, w1, w2
+convubw w2, s3
+mullw w2, w2, t3
+addw w1, w1, w2
+convubw w2, s4
+mullw w2, w2, t4
+addw d, w1, w2
+
+.function video_orc_resample_v_muladdtaps_u8_lq
+.source 1 s guint8
+.param 2 t gint16
+.dest 2 d gint16
+.temp 2 w1
+
+convubw w1, s
+mullw w1, w1, t
+addw d, d, w1
+
+.function video_orc_resample_v_muladdtaps4_u8_lq
+.source 1 s1 guint8
+.source 1 s2 guint8
+.source 1 s3 guint8
+.source 1 s4 guint8
+.param 2 t1 gint16
+.param 2 t2 gint16
+.param 2 t3 gint16
+.param 2 t4 gint16
+.dest 2 d gint16
+.temp 2 w1
+.temp 2 w2
+
+convubw w1, s1
+mullw w1, w1, t1
+convubw w2, s2
+mullw w2, w2, t2
+addw w1, w1, w2
+convubw w2, s3
+mullw w2, w2, t3
+addw w1, w1, w2
+convubw w2, s4
+mullw w2, w2, t4
+addw w1, w1, w2
+addw d, d, w1
+
+.function video_orc_resample_v_muladdscaletaps4_u8_lq
+.source 1 s1 guint8
+.source 1 s2 guint8
+.source 1 s3 guint8
+.source 1 s4 guint8
+.source 2 temp gint16
+.param 2 t1 gint16
+.param 2 t2 gint16
+.param 2 t3 gint16
+.param 2 t4 gint16
+.dest 1 d guint8
+.temp 2 w1
+.temp 2 w2
+
+convubw w1, s1
+mullw w1, w1, t1
+convubw w2, s2
+mullw w2, w2, t2
+addw w1, w1, w2
+convubw w2, s3
+mullw w2, w2, t3
+addw w1, w1, w2
+convubw w2, s4
+mullw w2, w2, t4
+addw w1, w1, w2
+addw w1, w1, temp
+addw w1, w1, 32
+shrsw w1, w1, 6
+convsuswb d, w1
+
+.function video_orc_chroma_down_h2_u8
+.source 8 s guint8
+.dest 8 d guint8
+.temp 4 ayuv1
+.temp 4 ayuv2
+.temp 2 ay1
+.temp 2 uv1
+.temp 2 uv2
+
+splitql ayuv2, ayuv1, s
+splitlw uv1, ay1, ayuv1
+select1lw uv2, ayuv2
+x2 avgub uv1, uv1, uv2
+mergewl ayuv1, ay1, uv1
+mergelq d, ayuv1, ayuv2
+
+#.function video_orc_chroma_up_h2_cs_u8
+#.source 8 s guint8
+#.source 4 s1 guint8
+#.dest 8 d guint8
+#.temp 4 ayuv1
+#.temp 4 ayuv2
+#.temp 4 ayuv3
+#.temp 2 ay2
+#.temp 2 uv2
+#.temp 2 uv3
+#
+#splitql ayuv2, ayuv1, s
+#ldresnearl ayuv3, s1, 0x20000, 0x20000
+#splitlw uv2, ay2, ayuv2
+#select1lw uv3, ayuv3
+#x2 avgub uv2, uv2, uv3
+#mergewl ayuv2, ay2, uv2
+#mergelq d, ayuv1, ayuv2
+
+.function video_orc_chroma_down_v2_u8
+.source 4 s1 guint8
+.source 4 s2 guint8
+.dest 4 d guint8
+.temp 2 ay1
+.temp 2 uv1
+.temp 2 uv2
+
+splitlw uv1, ay1, s1
+select1lw uv2, s2
+x2 avgub uv1, uv1, uv2
+mergewl d, ay1, uv1
+
+.function video_orc_chroma_up_v2_u8
+.source 4 s1 guint8
+.source 4 s2 guint8
+.dest 4 d1 guint8
+.dest 4 d2 guint8
+.temp 2 ay1
+.temp 2 ay2
+.temp 2 uv1
+.temp 2 uv2
+.temp 4 uuvv1
+.temp 4 uuvv2
+.temp 4 uuvv3
+
+splitlw uv1, ay1, s1
+splitlw uv2, ay2, s2
+x2 convubw uuvv1, uv1
+x2 convubw uuvv2, uv2
+
+x2 mullw uuvv3, uuvv1, 3
+x2 addw uuvv3, uuvv3, uuvv2
+x2 addw uuvv3, uuvv3, 2
+x2 shruw uuvv3, uuvv3, 2
+x2 convsuswb uv1, uuvv3
+mergewl d1, ay1, uv1
+
+x2 mullw uuvv3, uuvv2, 3
+x2 addw uuvv3, uuvv3, uuvv1
+x2 addw uuvv3, uuvv3, 2
+x2 shruw uuvv3, uuvv3, 2
+x2 convsuswb uv2, uuvv3
+mergewl d2, ay2, uv2
+
+.function video_orc_chroma_up_v2_u16
+.source 8 s1 guint16
+.source 8 s2 guint16
+.dest 8 d1 guint16
+.dest 8 d2 guint16
+.temp 4 ay1
+.temp 4 ay2
+.temp 4 uv1
+.temp 4 uv2
+.temp 8 uuvv1
+.temp 8 uuvv2
+.temp 8 uuvv3
+
+splitql uv1, ay1, s1
+splitql uv2, ay2, s2
+x2 convuwl uuvv1, uv1
+x2 convuwl uuvv2, uv2
+
+x2 mulll uuvv3, uuvv1, 3
+x2 addl uuvv3, uuvv3, uuvv2
+x2 addl uuvv3, uuvv3, 2
+x2 shrul uuvv3, uuvv3, 2
+x2 convsuslw uv1, uuvv3
+mergelq d1, ay1, uv1
+
+x2 mulll uuvv3, uuvv2, 3
+x2 addl uuvv3, uuvv3, uuvv1
+x2 addl uuvv3, uuvv3, 2
+x2 shrul uuvv3, uuvv3, 2
+x2 convsuslw uv2, uuvv3
+mergelq d2, ay2, uv2
+
+.function video_orc_chroma_down_v2_u16
+.source 8 s1 guint16
+.source 8 s2 guint16
+.dest 8 d guint16
+.temp 4 ay1
+.temp 4 uv1
+.temp 4 uv2
+
+splitql uv1, ay1, s1
+select1ql uv2, s2
+x2 avguw uv1, uv1, uv2
+mergelq d, ay1, uv1
+
+
+.function video_orc_chroma_down_v4_u8
+.source 4 s1 guint8
+.source 4 s2 guint8
+.source 4 s3 guint8
+.source 4 s4 guint8
+.dest 4 d guint8
+.temp 2 ay1
+.temp 2 uv1
+.temp 4 uuvv1
+.temp 4 uuvv2
+.temp 4 uuvv3
+
+splitlw uv1, ay1, s1
+x2 convubw uuvv1, uv1
+select1lw uv1, s4
+x2 convubw uuvv2, uv1
+x2 addw uuvv3, uuvv1, uuvv2
+select1lw uv1, s2
+x2 convubw uuvv1, uv1
+select1lw uv1, s3
+x2 convubw uuvv2, uv1
+x2 addw uuvv1, uuvv1, uuvv2
+x2 shlw uuvv2, uuvv1, 1
+x2 addw uuvv1, uuvv1, uuvv2
+x2 addw uuvv3, uuvv3, uuvv1
+x2 addw uuvv3, uuvv3, 4
+x2 shruw uuvv3, uuvv3, 3
+x2 convsuswb uv1, uuvv3
+mergewl d, ay1, uv1
+
+.function video_orc_chroma_down_v4_u16
+.source 8 s1 guint16
+.source 8 s2 guint16
+.source 8 s3 guint16
+.source 8 s4 guint16
+.dest 8 d guint16
+.temp 4 ay1
+.temp 4 uv1
+.temp 8 uuvv1
+.temp 8 uuvv2
+.temp 8 uuvv3
+
+splitql uv1, ay1, s1
+x2 convuwl uuvv1, uv1
+select1ql uv1, s4
+x2 convuwl uuvv2, uv1
+x2 addl uuvv3, uuvv1, uuvv2
+select1ql uv1, s2
+x2 convuwl uuvv1, uv1
+select1ql uv1, s3
+x2 convuwl uuvv2, uv1
+x2 addl uuvv1, uuvv1, uuvv2
+x2 shll uuvv2, uuvv1, 1
+x2 addl uuvv1, uuvv1, uuvv2
+x2 addl uuvv3, uuvv3, uuvv1
+x2 addl uuvv3, uuvv3, 4
+x2 shrul uuvv3, uuvv3, 3
+x2 convsuslw uv1, uuvv3
+mergelq d, ay1, uv1
+
+.function video_orc_dither_none_4u8_mask
+.dest 4 p guint8
+.param 4 masks
+.temp 4 m
+
+loadpl m, masks
+x4 andnb p, m, p
+
+.function video_orc_dither_none_4u16_mask
+.dest 8 p guint16
+.longparam 8 masks
+.temp 8 m
+
+loadpq m, masks
+x4 andnw p, m, p
+
+.function video_orc_dither_verterr_4u8_mask
+.dest 4 p guint8
+.dest 8 e guint16
+.longparam 8 masks
+.temp 8 m
+.temp 8 t1
+
+loadpq m, masks
+x4 convubw t1, p
+x4 addw t1, e, t1
+x4 andw e, m, t1
+x4 andnw t1, m, t1
+x4 convsuswb p, t1
+
+.function video_orc_dither_fs_muladd_u8
+.dest 2 e guint16
+.temp 2 t1
+.temp 2 t2
+
+loadoffw t2, e, 4
+mullw t2, t2, 5
+addw t1, t2, e
+loadoffw t2, e, 8
+mullw t2, t2, 3
+addw e, t1, t2
+
+# due to error propagation we should disable
+# loop_shift for this function and only work on
+# 4 pixels at a time.
+#.function video_orc_dither_fs_add_4u8_mask
+#.flags no-unroll
+#.dest 4 d guint8
+#.dest 8 e1 guint16
+#.dest 8 e2 guint16
+#.longparam 8 masks
+#.temp 8 p
+#.temp 8 t1
+#.temp 8 t2
+#
+#x4 mullw t1, e1, 7
+#x4 addw t1, t1, e2
+#x4 shruw t1, t1, 4
+#x4 convubw p, d
+#x4 addw t1, t1, p
+#x4 andnw p, masks, t1
+#x4 convsuswb d, p
+#x4 andw e2, t1, masks
+
+.function video_orc_dither_ordered_u8
+.source 1 e guint8
+.dest 1 d guint8
+
+addusb d, d, e
+
+.function video_orc_dither_ordered_4u8_mask
+.source 8 e1 guint16
+.dest 4 d guint8
+.longparam 8 masks
+.temp 8 p
+.temp 8 m
+
+loadpq m, masks
+x4 convubw p, d
+x4 addw p, p, e1
+x4 andnw p, m, p
+x4 convsuswb d, p
+
+.function video_orc_dither_ordered_4u16_mask
+.source 8 e1 guint16
+.dest 8 d guint16
+.longparam 8 masks
+.temp 8 p
+.temp 8 m
+
+loadpq m, masks
+x4 addw p, d, e1
+x4 andnw d, m, p
diff --git a/gst-libs/gst/video/video-overlay-composition.c b/gst-libs/gst/video/video-overlay-composition.c
index 2f8815c..c8fa935 100644
--- a/gst-libs/gst/video/video-overlay-composition.c
+++ b/gst-libs/gst/video/video-overlay-composition.c
@@ -1485,12 +1485,13 @@
 /**
  * gst_video_overlay_rectangle_set_global_alpha:
  * @rectangle: a #GstVideoOverlayRectangle
+ * @global_alpha: Global alpha value (0 to 1.0)
  *
  * Sets the global alpha value associated with a #GstVideoOverlayRectangle. Per-
  * pixel alpha values are multiplied with this value. Valid
  * values: 0 <= global_alpha <= 1; 1 to deactivate.
  *
- # @rectangle must be writable, meaning its refcount must be 1. You can
+ * @rectangle must be writable, meaning its refcount must be 1. You can
  * make the rectangles inside a #GstVideoOverlayComposition writable using
  * gst_video_overlay_composition_make_writable() or
  * gst_video_overlay_composition_copy().
diff --git a/gst-libs/gst/video/video-resampler.c b/gst-libs/gst/video/video-resampler.c
new file mode 100644
index 0000000..3024e54
--- /dev/null
+++ b/gst-libs/gst/video/video-resampler.c
@@ -0,0 +1,422 @@
+/* GStreamer
+ * Copyright (C) <2014> Wim Taymans <wim.taymans@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifdef HAVE_CONFIG_H
+#  include "config.h"
+#endif
+
+#include <string.h>
+#include <stdio.h>
+#include <math.h>
+
+#include "video-resampler.h"
+
+/**
+ * SECTION:gstvideoresampler
+ * @short_description: Utility structure for resampler information
+ *
+ * #GstVideoResampler is a structure which holds the information
+ * required to perform various kinds of resampling filtering.
+ *
+ */
+
+#define DEFAULT_OPT_CUBIC_B (1.0 / 3.0)
+#define DEFAULT_OPT_CUBIC_C (1.0 / 3.0)
+
+#define DEFAULT_OPT_ENVELOPE 2.0
+#define DEFAULT_OPT_SHARPNESS 1.0
+#define DEFAULT_OPT_SHARPEN 0.0
+
+#define DEFAULT_OPT_MAX_TAPS 128
+
+typedef struct _ResamplerParams ResamplerParams;
+
+struct _ResamplerParams
+{
+  GstVideoResamplerMethod method;
+  GstVideoResamplerFlags flags;
+
+  gdouble shift;
+
+    gdouble (*get_tap) (ResamplerParams * params, gint l, gint xi, gdouble x);
+
+  /* for cubic */
+  gdouble b, c;
+  /* used by lanczos */
+  gdouble ex, fx, dx;
+  /* extra params */
+  gdouble envelope;
+  gdouble sharpness;
+  gdouble sharpen;
+
+  GstVideoResampler *resampler;
+};
+
+static gdouble
+get_opt_double (GstStructure * options, const gchar * name, gdouble def)
+{
+  gdouble res;
+  if (!options || !gst_structure_get_double (options, name, &res))
+    res = def;
+  return res;
+}
+
+static gint
+get_opt_int (GstStructure * options, const gchar * name, gint def)
+{
+  gint res;
+  if (!options || !gst_structure_get_int (options, name, &res))
+    res = def;
+  return res;
+}
+
+#define GET_OPT_CUBIC_B(options) get_opt_double(options, \
+    GST_VIDEO_RESAMPLER_OPT_CUBIC_B, DEFAULT_OPT_CUBIC_B)
+#define GET_OPT_CUBIC_C(options) get_opt_double(options, \
+    GST_VIDEO_RESAMPLER_OPT_CUBIC_C, DEFAULT_OPT_CUBIC_C)
+#define GET_OPT_ENVELOPE(options) get_opt_double(options, \
+    GST_VIDEO_RESAMPLER_OPT_ENVELOPE, DEFAULT_OPT_ENVELOPE)
+#define GET_OPT_SHARPNESS(options) get_opt_double(options, \
+    GST_VIDEO_RESAMPLER_OPT_SHARPNESS, DEFAULT_OPT_SHARPNESS)
+#define GET_OPT_SHARPEN(options) get_opt_double(options, \
+    GST_VIDEO_RESAMPLER_OPT_SHARPEN, DEFAULT_OPT_SHARPEN)
+#define GET_OPT_MAX_TAPS(options) get_opt_int(options, \
+    GST_VIDEO_RESAMPLER_OPT_MAX_TAPS, DEFAULT_OPT_MAX_TAPS)
+
+static double
+sinc (double x)
+{
+  if (x == 0)
+    return 1;
+
+  return sin (G_PI * x) / (G_PI * x);
+}
+
+static double
+envelope (double x)
+{
+  if (x <= -1 || x >= 1)
+    return 0;
+  return sinc (x);
+}
+
+static gdouble
+get_nearest_tap (ResamplerParams * params, gint l, gint xi, gdouble x)
+{
+  return 1.0;
+}
+
+static gdouble
+get_linear_tap (ResamplerParams * params, gint l, gint xi, gdouble x)
+{
+  gdouble res, a;
+  gint xl = xi + l;
+
+  a = fabs (x - xl) * params->fx;
+
+  if (a < 1.0)
+    res = 1.0 - a;
+  else
+    res = 0.0;
+
+  return res;
+}
+
+static gdouble
+get_cubic_tap (ResamplerParams * params, gint l, gint xi, gdouble x)
+{
+  gdouble a, a2, a3, b, c;
+  gint xl = xi + l;
+
+  a = fabs (x - xl) * params->fx;
+  a2 = a * a;
+  a3 = a2 * a;
+
+  b = params->b;
+  c = params->c;
+
+  if (a <= 1.0)
+    return ((12.0 - 9.0 * b - 6.0 * c) * a3 +
+        (-18.0 + 12.0 * b + 6.0 * c) * a2 + (6.0 - 2.0 * b)) / 6.0;
+  else if (a <= 2.0)
+    return ((-b - 6.0 * c) * a3 +
+        (6.0 * b + 30.0 * c) * a2 +
+        (-12.0 * b - 48.0 * c) * a + (8.0 * b + 24.0 * c)) / 6.0;
+  else
+    return 0.0;
+}
+
+static gdouble
+get_sinc_tap (ResamplerParams * params, gint l, gint xi, gdouble x)
+{
+  gint xl = xi + l;
+  return sinc ((x - xl) * params->fx);
+}
+
+static gdouble
+get_lanczos_tap (ResamplerParams * params, gint l, gint xi, gdouble x)
+{
+  gint xl = xi + l;
+  gdouble env = envelope ((x - xl) * params->ex);
+  return (sinc ((x - xl) * params->fx) - params->sharpen) * env;
+}
+
+static void
+resampler_calculate_taps (ResamplerParams * params)
+{
+  GstVideoResampler *resampler = params->resampler;
+  gint j;
+  guint32 *offset, *n_taps, *phase;
+  gint tap_offs;
+  gint max_taps;
+  gint in_size, out_size;
+  gdouble shift;
+  gdouble corr;
+
+  in_size = resampler->in_size;
+  out_size = resampler->out_size;
+
+  max_taps = resampler->max_taps;
+  tap_offs = (max_taps - 1) / 2;
+  corr = (max_taps == 1 ? 0.0 : 0.5);
+
+  shift = params->shift;
+
+  resampler->taps = g_malloc (sizeof (gdouble) * max_taps * out_size);
+  n_taps = resampler->n_taps = g_malloc (sizeof (guint32) * out_size);
+  offset = resampler->offset = g_malloc (sizeof (guint32) * out_size);
+  phase = resampler->phase = g_malloc (sizeof (guint32) * out_size);
+
+  for (j = 0; j < out_size; j++) {
+    gdouble ox, x;
+    gint xi;
+    gint l;
+    gdouble weight;
+    gdouble *taps;
+
+    /* center of the output pixel */
+    ox = (0.5 + (gdouble) j - shift) / out_size;
+    /* x is the source pixel to use, can be fractional */
+    x = ox * (gdouble) in_size - corr;
+    x = CLAMP (x, 0, in_size - 1);
+    /* this is the first source pixel to use */
+    xi = floor (x - tap_offs);
+
+    offset[j] = xi;
+    phase[j] = j;
+    n_taps[j] = max_taps;
+    weight = 0;
+    taps = resampler->taps + j * max_taps;
+
+    for (l = 0; l < max_taps; l++) {
+      taps[l] = params->get_tap (params, l, xi, x);
+      weight += taps[l];
+    }
+
+    for (l = 0; l < max_taps; l++)
+      taps[l] /= weight;
+
+    if (xi < 0) {
+      gint sh = -xi;
+
+      for (l = 0; l < sh; l++) {
+        taps[sh] += taps[l];
+      }
+      for (l = 0; l < max_taps - sh; l++) {
+        taps[l] = taps[sh + l];
+      }
+      for (; l < max_taps; l++) {
+        taps[l] = 0;
+      }
+      offset[j] += sh;
+    }
+    if (xi > in_size - max_taps) {
+      gint sh = xi - (in_size - max_taps);
+
+      for (l = 0; l < sh; l++) {
+        taps[max_taps - sh - 1] += taps[max_taps - sh + l];
+      }
+      for (l = 0; l < max_taps - sh; l++) {
+        taps[max_taps - 1 - l] = taps[max_taps - 1 - sh - l];
+      }
+      for (l = 0; l < sh; l++) {
+        taps[l] = 0;
+      }
+      offset[j] -= sh;
+    }
+  }
+}
+
+static void
+resampler_dump (GstVideoResampler * resampler)
+{
+#if 0
+  gint i, max_taps, out_size;
+
+  out_size = resampler->out_size;
+  max_taps = resampler->max_taps;
+
+  for (i = 0; i < out_size; i++) {
+    gint j, o, phase, n_taps;
+    gdouble sum;
+
+    o = resampler->offset[i];
+    n_taps = resampler->n_taps[i];
+    phase = resampler->phase[i];
+
+    printf ("%u: \t%d  ", i, o);
+    sum = 0;
+    for (j = 0; j < n_taps; j++) {
+      gdouble tap;
+      tap = resampler->taps[phase * max_taps + j];
+      printf ("\t%f ", tap);
+      sum += tap;
+    }
+    printf ("\t: sum %f\n", sum);
+  }
+#endif
+}
+
+
+/**
+ * gst_video_resampler_new:
+ * @resampler: a #GstVideoResampler
+ * @method: a #GstVideoResamplerMethod
+ * @flags: #GstVideoResamplerFlags
+ * @n_phases: number of phases to use
+ * @n_taps: number of taps to use
+ * @in_size: number of source elements
+ * @out_size: number of destination elements
+ * @options: extra options
+ *
+ * Make a new resampler. @in_size source elements will
+ * be resampled to @out_size destination elements.
+ *
+ * @n_taps specifies the amount of elements to use from the source for one output
+ * element. If n_taps is 0, this function chooses a good value automatically based
+ * on the @method and @in_size/@out_size.
+ *
+ * Returns: %TRUE on success
+ *
+ * Since: 1.6
+ */
+gboolean
+gst_video_resampler_init (GstVideoResampler * resampler,
+    GstVideoResamplerMethod method, GstVideoResamplerFlags flags,
+    guint n_phases, guint n_taps, gdouble shift, guint in_size, guint out_size,
+    GstStructure * options)
+{
+  ResamplerParams params;
+  gint max_taps;
+  gdouble scale_factor;
+
+  g_return_val_if_fail (in_size != 0, FALSE);
+  g_return_val_if_fail (out_size != 0, FALSE);
+  g_return_val_if_fail (n_phases == out_size, FALSE);
+
+  resampler->in_size = in_size;
+  resampler->out_size = out_size;
+  resampler->n_phases = n_phases;
+
+  params.method = method;
+  params.flags = flags;
+  params.shift = shift;
+  params.resampler = resampler;
+
+  GST_DEBUG ("%d %u  %u->%u", method, n_taps, in_size, out_size);
+
+  params.sharpness = GET_OPT_SHARPNESS (options);
+  params.sharpen = GET_OPT_SHARPEN (options);
+
+  scale_factor = in_size / (gdouble) out_size;
+  if (scale_factor > 1.0) {
+    params.fx = (1.0 / scale_factor) * params.sharpness;
+  } else {
+    params.fx = (1.0) * params.sharpness;
+  }
+
+  max_taps = GET_OPT_MAX_TAPS (options);
+  n_taps = MIN (n_taps, max_taps);
+
+  switch (method) {
+    case GST_VIDEO_RESAMPLER_METHOD_NEAREST:
+      params.envelope = GET_OPT_ENVELOPE (options);
+      params.get_tap = get_nearest_tap;
+      if (n_taps == 0)
+        n_taps = 1;
+      break;
+    case GST_VIDEO_RESAMPLER_METHOD_LINEAR:
+      params.get_tap = get_linear_tap;
+      params.envelope = 1.0;
+      break;
+    case GST_VIDEO_RESAMPLER_METHOD_CUBIC:
+      params.b = GET_OPT_CUBIC_B (options);
+      params.c = GET_OPT_CUBIC_C (options);
+      params.envelope = 2.0;
+      params.get_tap = get_cubic_tap;
+      break;
+    case GST_VIDEO_RESAMPLER_METHOD_SINC:
+      params.envelope = GET_OPT_ENVELOPE (options);
+      params.get_tap = get_sinc_tap;
+      break;
+    case GST_VIDEO_RESAMPLER_METHOD_LANCZOS:
+      params.envelope = GET_OPT_ENVELOPE (options);
+      params.get_tap = get_lanczos_tap;
+      break;
+    default:
+      break;
+  }
+
+  if (n_taps == 0) {
+    params.dx = ceil (2.0 * params.envelope / params.fx);
+    n_taps = CLAMP (params.dx, 0, max_taps);
+  }
+  params.fx = 2.0 * params.envelope / n_taps;
+  params.ex = 2.0 / n_taps;
+
+  if (n_taps > in_size)
+    n_taps = in_size;
+
+  resampler->max_taps = n_taps;
+
+  resampler_calculate_taps (&params);
+
+  resampler_dump (resampler);
+
+  return TRUE;
+}
+
+/**
+ * gst_video_resampler_clear:
+ * @resampler: a #GstVideoResampler
+ *
+ * Clear a previously initialized #GstVideoResampler @resampler.
+ *
+ * Since: 1.6
+ */
+void
+gst_video_resampler_clear (GstVideoResampler * resampler)
+{
+  g_return_if_fail (resampler != NULL);
+
+  g_free (resampler->phase);
+  g_free (resampler->offset);
+  g_free (resampler->n_taps);
+  g_free (resampler->taps);
+}
diff --git a/gst-libs/gst/video/video-resampler.h b/gst-libs/gst/video/video-resampler.h
new file mode 100644
index 0000000..d0c18cc
--- /dev/null
+++ b/gst-libs/gst/video/video-resampler.h
@@ -0,0 +1,171 @@
+/* GStreamer
+ * Copyright (C) <2014> Wim Taymans <wim.taymans@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef __GST_VIDEO_RESAMPLER_H__
+#define __GST_VIDEO_RESAMPLER_H__
+
+#include <gst/gst.h>
+
+G_BEGIN_DECLS
+
+typedef struct _GstVideoResampler GstVideoResampler;
+
+/**
+ * GstVideoResamplerMethod:
+ * @GST_VIDEO_RESAMPLER_METHOD_NEAREST: Duplicates the samples when
+ *    upsampling and drops when downsampling
+ * @GST_VIDEO_RESAMPLER_METHOD_LINEAR: Uses linear interpolation to reconstruct
+ *    missing samples and averaging to downsample
+ * @GST_VIDEO_RESAMPLER_METHOD_CUBIC: Uses cubic interpolation
+ * @GST_VIDEO_RESAMPLER_METHOD_SINC: Uses sinc interpolation
+ * @GST_VIDEO_RESAMPLER_METHOD_LANCZOS: Uses lanczos interpolation
+ *
+ * Different subsampling and upsampling methods
+ *
+ * Since: 1.6
+ */
+typedef enum {
+  GST_VIDEO_RESAMPLER_METHOD_NEAREST,
+  GST_VIDEO_RESAMPLER_METHOD_LINEAR,
+  GST_VIDEO_RESAMPLER_METHOD_CUBIC,
+  GST_VIDEO_RESAMPLER_METHOD_SINC,
+  GST_VIDEO_RESAMPLER_METHOD_LANCZOS,
+} GstVideoResamplerMethod;
+
+/**
+ * GST_VIDEO_RESAMPLER_OPT_CUBIC_B:
+ *
+ * G_TYPE_DOUBLE, B parameter of the cubic filter. The B
+ * parameter controls the bluriness. Values between 0.0 and
+ * 2.0 are accepted. 1/3 is the default.
+ *
+ * Below are some values of popular filters:
+ *                    B       C
+ * Hermite           0.0     0.0
+ * Spline            1.0     0.0
+ * Catmull-Rom       0.0     1/2
+ * Mitchell          1/3     1/3
+ * Robidoux          0.3782  0.3109
+ * Robidoux
+ *  Sharp            0.2620  0.3690
+ * Robidoux
+ *  Soft             0.6796  0.1602
+ */
+#define GST_VIDEO_RESAMPLER_OPT_CUBIC_B      "GstVideoResampler.cubic-b"
+/**
+ * GST_VIDEO_RESAMPLER_OPT_CUBIC_C:
+ *
+ * G_TYPE_DOUBLE, C parameter of the cubic filter. The C
+ * parameter controls the Keys alpha value. Values between 0.0 and
+ * 2.0 are accepted. 1/3 is the default.
+ *
+ * See #GST_VIDEO_RESAMPLER_OPT_CUBIC_B for some more common values
+ */
+#define GST_VIDEO_RESAMPLER_OPT_CUBIC_C      "GstVideoResampler.cubic-c"
+
+/**
+ * GST_VIDEO_RESAMPLER_OPT_ENVELOPE:
+ *
+ * G_TYPE_DOUBLE, specifies the size of filter envelope for
+ * @GST_VIDEO_RESAMPLER_METHOD_LANCZOS. values are clamped between
+ * 1.0 and 5.0. 2.0 is the default.
+ */
+#define GST_VIDEO_RESAMPLER_OPT_ENVELOPE      "GstVideoResampler.envelope"
+
+/**
+ * GST_VIDEO_RESAMPLER_OPT_SHARPNESS:
+ *
+ * G_TYPE_DOUBLE, specifies sharpness of the filter for
+ * @GST_VIDEO_RESAMPLER_METHOD_LANCZOS. values are clamped between
+ * 0.5 and 1.5. 1.0 is the default.
+ */
+#define GST_VIDEO_RESAMPLER_OPT_SHARPNESS     "GstVideoResampler.sharpness"
+
+/**
+ * GST_VIDEO_RESAMPLER_OPT_SHARPEN:
+ *
+ * G_TYPE_DOUBLE, specifies sharpening of the filter for
+ * @GST_VIDEO_RESAMPLER_METHOD_LANCZOS. values are clamped between
+ * 0.0 and 1.0. 0.0 is the default.
+ */
+#define GST_VIDEO_RESAMPLER_OPT_SHARPEN      "GstVideoResampler.sharpen"
+/**
+ * GST_VIDEO_RESAMPLER_OPT_MAX_TAPS:
+ *
+ * G_TYPE_INT, limits the maximum number of taps to use.
+ * 16 is the default.
+ */
+#define GST_VIDEO_RESAMPLER_OPT_MAX_TAPS     "GstVideoResampler.max-taps"
+
+/**
+ * GstVideoResamplerFlags:
+ * @GST_VIDEO_RESAMPLER_FLAG_NONE: no flags
+ *
+ * Different resampler flags.
+ *
+ * Since: 1.6
+ */
+typedef enum {
+  GST_VIDEO_RESAMPLER_FLAG_NONE                 = (0),
+} GstVideoResamplerFlags;
+
+/**
+ * GstVideoResampler:
+ * @in_size: the input size
+ * @out_size: the output size
+ * @max_taps: the maximum number of taps
+ * @n_phases: the number of phases
+ * @offset: array with the source offset for each output element
+ * @phase: array with the phase to use for each output element
+ * @n_taps: array with new number of taps for each phase
+ * @taps: the taps for all phases
+ *
+ * A structure holding resampler information.
+ *
+ * Since: 1.6
+ */
+struct _GstVideoResampler
+{
+  gint in_size;
+  gint out_size;
+  guint max_taps;
+  guint n_phases;
+  guint32 *offset;
+  guint32 *phase;
+  guint32 *n_taps;
+  gdouble *taps;
+
+  /*< private >*/
+  gpointer _gst_reserved[GST_PADDING];
+};
+
+
+gboolean    gst_video_resampler_init      (GstVideoResampler *resampler,
+                                           GstVideoResamplerMethod method,
+                                           GstVideoResamplerFlags flags,
+                                           guint n_phases, guint n_taps,
+                                           gdouble shift,
+                                           guint in_size, guint out_size,
+                                           GstStructure *options);
+
+void        gst_video_resampler_clear     (GstVideoResampler *resampler);
+
+G_END_DECLS
+
+#endif /* __GST_VIDEO_RESAMPLER_H__ */
diff --git a/gst-libs/gst/video/video-scaler.c b/gst-libs/gst/video/video-scaler.c
new file mode 100644
index 0000000..b637775
--- /dev/null
+++ b/gst-libs/gst/video/video-scaler.c
@@ -0,0 +1,1519 @@
+/* GStreamer
+ * Copyright (C) <2014> Wim Taymans <wim.taymans@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifdef HAVE_CONFIG_H
+#  include "config.h"
+#endif
+
+#include <string.h>
+#include <stdio.h>
+#include <math.h>
+
+/**
+ * SECTION:gstvideoscaler
+ * @short_description: Utility object for rescaling video frames
+ *
+ * #GstVideoScaler is a utility object for rescaling and resampling
+ * video frames using various interpolation / sampling methods.
+ *
+ */
+
+#ifndef DISABLE_ORC
+#include <orc/orcfunctions.h>
+#else
+#define orc_memcpy memcpy
+#endif
+
+#include "video-orc.h"
+#include "video-scaler.h"
+
+#define SCALE_U8          12
+#define SCALE_U8_ROUND    (1 << (SCALE_U8 -1))
+#define SCALE_U8_LQ       6
+#define SCALE_U8_LQ_ROUND (1 << (SCALE_U8_LQ -1))
+#define SCALE_U16         12
+#define SCALE_U16_ROUND   (1 << (SCALE_U16 -1))
+
+#define LQ
+
+typedef void (*GstVideoScalerHFunc) (GstVideoScaler * scale,
+    gpointer src, gpointer dest, guint dest_offset, guint width, guint n_elems);
+typedef void (*GstVideoScalerVFunc) (GstVideoScaler * scale,
+    gpointer srcs[], gpointer dest, guint dest_offset, guint width,
+    guint n_elems);
+
+struct _GstVideoScaler
+{
+  GstVideoResamplerMethod method;
+  GstVideoScalerFlags flags;
+
+  GstVideoResampler resampler;
+
+  gboolean merged;
+  gint in_y_offset;
+  gint out_y_offset;
+
+  /* cached integer coefficients */
+  gint16 *taps_s16;
+  gint16 *taps_s16_4;
+  guint32 *offset_n;
+  /* for ORC */
+  gint inc;
+
+  gint tmpwidth;
+  gpointer tmpline1;
+  gpointer tmpline2;
+};
+
+static void
+resampler_zip (GstVideoResampler * resampler, const GstVideoResampler * r1,
+    const GstVideoResampler * r2)
+{
+  guint i, out_size, max_taps, n_phases;
+  gdouble *taps;
+  guint32 *offset, *phase;
+
+  g_return_if_fail (r1->max_taps == r2->max_taps);
+
+  out_size = r1->out_size + r2->out_size;
+  max_taps = r1->max_taps;
+  n_phases = out_size;
+  offset = g_malloc (sizeof (guint32) * out_size);
+  phase = g_malloc (sizeof (guint32) * n_phases);
+  taps = g_malloc (sizeof (gdouble) * max_taps * n_phases);
+
+  resampler->in_size = r1->in_size + r2->in_size;
+  resampler->out_size = out_size;
+  resampler->max_taps = max_taps;
+  resampler->n_phases = n_phases;
+  resampler->offset = offset;
+  resampler->phase = phase;
+  resampler->n_taps = g_malloc (sizeof (guint32) * out_size);
+  resampler->taps = taps;
+
+  for (i = 0; i < out_size; i++) {
+    guint idx = i / 2;
+    const GstVideoResampler *r;
+
+    r = (i & 1) ? r2 : r1;
+
+    offset[i] = r->offset[idx] * 2 + (i & 1);
+    phase[i] = i;
+
+    memcpy (taps + i * max_taps, r->taps + r->phase[idx] * max_taps,
+        max_taps * sizeof (gdouble));
+  }
+}
+
+static void
+realloc_tmplines (GstVideoScaler * scale, gint n_elems, gint width)
+{
+  scale->tmpline1 =
+      g_realloc (scale->tmpline1,
+      sizeof (gint32) * width * n_elems * scale->resampler.max_taps);
+  scale->tmpline2 =
+      g_realloc (scale->tmpline2, sizeof (gint32) * width * n_elems);
+  scale->tmpwidth = width;
+}
+
+static void
+scaler_dump (GstVideoScaler * scale)
+{
+#if 0
+  gint i, j, in_size, out_size, max_taps;
+  guint32 *offset, *phase;
+  gdouble *taps;
+  GstVideoResampler *r = &scale->resampler;
+
+  in_size = r->in_size;
+  out_size = r->out_size;
+  offset = r->offset;
+  phase = r->phase;
+  max_taps = r->max_taps;
+  taps = r->taps;
+
+  g_print ("in %d, out %d, max_taps %d, n_phases %d\n", in_size, out_size,
+      max_taps, r->n_phases);
+
+  for (i = 0; i < out_size; i++) {
+    g_print ("%d: \t%d \t%d:", i, offset[i], phase[i]);
+
+    for (j = 0; j < max_taps; j++) {
+      g_print ("\t%f", taps[i * max_taps + j]);
+    }
+    g_print ("\n");
+  }
+#endif
+}
+
+/**
+ * gst_video_scaler_new:
+ * @method: a #GstVideoResamplerMethod
+ * @flags: #GstVideoScalerFlags
+ * @n_taps: number of taps to use
+ * @in_size: number of source elements
+ * @out_size: number of destination elements
+ * @options: (allow-none): extra options
+ *
+ * Make a new @method video scaler. @in_size source lines/pixels will
+ * be scaled to @out_size destination lines/pixels.
+ *
+ * @n_taps specifies the amount of pixels to use from the source for one output
+ * pixel. If n_taps is 0, this function chooses a good value automatically based
+ * on the @method and @in_size/@out_size.
+ *
+ * Returns: a #GstVideoResample
+ */
+GstVideoScaler *
+gst_video_scaler_new (GstVideoResamplerMethod method, GstVideoScalerFlags flags,
+    guint n_taps, guint in_size, guint out_size, GstStructure * options)
+{
+  GstVideoScaler *scale;
+
+  g_return_val_if_fail (in_size != 0, NULL);
+  g_return_val_if_fail (out_size != 0, NULL);
+
+  scale = g_slice_new0 (GstVideoScaler);
+
+  GST_DEBUG ("%d %u  %u->%u", method, n_taps, in_size, out_size);
+
+  scale->method = method;
+  scale->flags = flags;
+
+  if (flags & GST_VIDEO_SCALER_FLAG_INTERLACED) {
+    GstVideoResampler tresamp, bresamp;
+
+    gst_video_resampler_init (&tresamp, method, 0, (out_size + 1) / 2, n_taps,
+        -0.5, (in_size + 1) / 2, (out_size + 1) / 2, options);
+
+    n_taps = tresamp.max_taps;
+
+    gst_video_resampler_init (&bresamp, method, 0, out_size - tresamp.out_size,
+        n_taps, 0.5, in_size - tresamp.in_size,
+        out_size - tresamp.out_size, options);
+
+    resampler_zip (&scale->resampler, &tresamp, &bresamp);
+    gst_video_resampler_clear (&tresamp);
+    gst_video_resampler_clear (&bresamp);
+  } else {
+    gst_video_resampler_init (&scale->resampler, method,
+        GST_VIDEO_RESAMPLER_FLAG_NONE, out_size, n_taps, 0.0, in_size, out_size,
+        options);
+  }
+
+  if (out_size == 1)
+    scale->inc = 0;
+  else
+    scale->inc = ((in_size - 1) << 16) / (out_size - 1) - 1;
+
+  scaler_dump (scale);
+  GST_DEBUG ("max_taps %d", scale->resampler.max_taps);
+
+  return scale;
+}
+
+/**
+ * gst_video_scaler_free:
+ * @scale: a #GstVideoScaler
+ *
+ * Free a previously allocated #GstVideoScaler @scale.
+ */
+void
+gst_video_scaler_free (GstVideoScaler * scale)
+{
+  g_return_if_fail (scale != NULL);
+
+  gst_video_resampler_clear (&scale->resampler);
+  g_free (scale->taps_s16);
+  g_free (scale->taps_s16_4);
+  g_free (scale->offset_n);
+  g_free (scale->tmpline1);
+  g_free (scale->tmpline2);
+  g_slice_free (GstVideoScaler, scale);
+}
+
+/**
+ * gst_video_scaler_get_coeff:
+ * @scale: a #GstVideoScaler
+ * @out_offset: an output offset
+ * @in_offset: result input offset
+ * @n_taps: result n_taps
+ *
+ * For a given pixel at @out_offset, get the first required input pixel at
+ * @in_offset and the @n_taps filter coefficients.
+ *
+ * Note that for interlaced content, @in_offset needs to be incremented with
+ * 2 to get the next input line.
+ *
+ * Returns: an array of @n_tap gdouble values with filter coefficients.
+ */
+const gdouble *
+gst_video_scaler_get_coeff (GstVideoScaler * scale,
+    guint out_offset, guint * in_offset, guint * n_taps)
+{
+  guint offset, phase;
+
+  g_return_val_if_fail (scale != NULL, NULL);
+  g_return_val_if_fail (out_offset < scale->resampler.out_size, NULL);
+
+  offset = scale->resampler.offset[out_offset];
+  phase = scale->resampler.phase[out_offset];
+
+  if (in_offset)
+    *in_offset = offset;
+  if (n_taps) {
+    *n_taps = scale->resampler.max_taps;
+    if (scale->flags & GST_VIDEO_SCALER_FLAG_INTERLACED)
+      *n_taps *= 2;
+  }
+  return scale->resampler.taps + phase * scale->resampler.max_taps;
+}
+
+static gboolean
+resampler_convert_coeff (const gdouble * src,
+    gpointer dest, guint n, guint bits, guint precision)
+{
+  gdouble multiplier;
+  gint i, j;
+  gdouble offset, l_offset, h_offset;
+  gboolean exact = FALSE;
+
+  multiplier = (1 << precision);
+
+  /* Round to integer, but with an adjustable bias that we use to
+   * eliminate the DC error. */
+  l_offset = 0.0;
+  h_offset = 1.0;
+  offset = 0.5;
+
+  for (i = 0; i < 64; i++) {
+    gint sum = 0;
+
+    for (j = 0; j < n; j++) {
+      gint16 tap = floor (offset + src[j] * multiplier);
+
+      ((gint16 *) dest)[j] = tap;
+
+      sum += tap;
+    }
+    if (sum == (1 << precision)) {
+      exact = TRUE;
+      break;
+    }
+
+    if (l_offset == h_offset)
+      break;
+
+    if (sum < (1 << precision)) {
+      if (offset > l_offset)
+        l_offset = offset;
+      offset += (h_offset - l_offset) / 2;
+    } else {
+      if (offset < h_offset)
+        h_offset = offset;
+      offset -= (h_offset - l_offset) / 2;
+    }
+  }
+
+  if (!exact)
+    GST_WARNING ("can't find exact taps");
+
+  return exact;
+}
+
+static void
+make_s16_taps (GstVideoScaler * scale, gint n_elems, gint precision)
+{
+  gint i, j, max_taps, n_phases, out_size, src_inc;
+  gint16 *taps_s16, *taps_s16_4;
+  gdouble *taps;
+  guint32 *phase, *offset, *offset_n;
+
+  n_phases = scale->resampler.n_phases;
+  max_taps = scale->resampler.max_taps;
+
+  taps = scale->resampler.taps;
+  taps_s16 = scale->taps_s16 = g_malloc (sizeof (gint16) * n_phases * max_taps);
+
+  for (i = 0; i < n_phases; i++) {
+    resampler_convert_coeff (taps, taps_s16, max_taps, 16, precision);
+
+    taps += max_taps;
+    taps_s16 += max_taps;
+  }
+
+  out_size = scale->resampler.out_size;
+
+  taps_s16 = scale->taps_s16;
+  phase = scale->resampler.phase;
+  offset = scale->resampler.offset;
+
+  taps_s16_4 = scale->taps_s16_4 =
+      g_malloc (sizeof (gint16) * out_size * max_taps * 4);
+  offset_n = scale->offset_n =
+      g_malloc (sizeof (guint32) * out_size * max_taps);
+
+  if (scale->flags & GST_VIDEO_SCALER_FLAG_INTERLACED)
+    src_inc = 2;
+  else
+    src_inc = 1;
+
+  for (j = 0; j < max_taps; j++) {
+    for (i = 0; i < out_size; i++) {
+      gint16 tap;
+
+      if (scale->merged) {
+        if ((i & 1) == scale->out_y_offset)
+          offset_n[j * out_size + i] = offset[i] + (2 * j);
+        else
+          offset_n[j * out_size + i] = offset[i] + (4 * j);
+      } else {
+        offset_n[j * out_size + i] = offset[i] + j * src_inc;
+      }
+      tap = taps_s16[phase[i] * max_taps + j];
+      taps_s16_4[(j * out_size + i) * n_elems + 0] = tap;
+      if (n_elems > 1)
+        taps_s16_4[(j * out_size + i) * n_elems + 1] = tap;
+      if (n_elems > 2)
+        taps_s16_4[(j * out_size + i) * n_elems + 2] = tap;
+      if (n_elems > 3)
+        taps_s16_4[(j * out_size + i) * n_elems + 3] = tap;
+    }
+  }
+}
+
+#undef ACC_SCALE
+
+static void
+video_scale_h_near_u8 (GstVideoScaler * scale,
+    gpointer src, gpointer dest, guint dest_offset, guint width, guint n_elems)
+{
+  guint8 *s, *d;
+  gint i;
+
+  d = (guint8 *) dest + dest_offset;
+  s = (guint8 *) src;
+
+  {
+#ifndef ACC_SCALE
+    guint32 *offset = scale->resampler.offset + dest_offset;
+
+    for (i = 0; i < width; i++)
+      d[i] = s[offset[i]];
+#else
+    gint acc = 0;
+
+    for (i = 0; i < width; i++) {
+      gint j = (acc + 0x8000) >> 16;
+      d[i] = s[j];
+      acc += scale->inc;
+    }
+#endif
+  }
+}
+
+static void
+video_scale_h_near_3u8 (GstVideoScaler * scale,
+    gpointer src, gpointer dest, guint dest_offset, guint width, guint n_elems)
+{
+  guint8 *s, *d;
+  gint i;
+
+  d = (guint8 *) dest + dest_offset;
+  s = (guint8 *) src;
+
+  {
+#ifndef ACC_SCALE
+    guint32 *offset = scale->resampler.offset + dest_offset;
+
+    for (i = 0; i < width; i++) {
+      gint j = offset[i] * 3;
+
+      d[i * 3 + 0] = s[j + 0];
+      d[i * 3 + 1] = s[j + 1];
+      d[i * 3 + 2] = s[j + 2];
+    }
+#else
+    gint acc = 0;
+
+    for (i = 0; i < width; i++) {
+      gint j = ((acc + 0x8000) >> 16) * 3;
+
+      d[i * 3 + 0] = s[j + 0];
+      d[i * 3 + 1] = s[j + 1];
+      d[i * 3 + 2] = s[j + 2];
+      acc += scale->inc;
+    }
+#endif
+  }
+}
+
+static void
+video_scale_h_near_u16 (GstVideoScaler * scale,
+    gpointer src, gpointer dest, guint dest_offset, guint width, guint n_elems)
+{
+  guint16 *s, *d;
+  gint i;
+
+  d = (guint16 *) dest + dest_offset;
+  s = (guint16 *) src;
+
+  {
+#ifndef ACC_SCALE
+    guint32 *offset = scale->resampler.offset + dest_offset;
+
+    for (i = 0; i < width; i++)
+      d[i] = s[offset[i]];
+#else
+    gint acc = 0;
+
+    for (i = 0; i < width; i++) {
+      gint j = (acc + 0x8000) >> 16;
+      d[i] = s[j];
+      acc += scale->inc;
+    }
+#endif
+  }
+}
+
+static void
+video_scale_h_near_u32 (GstVideoScaler * scale,
+    gpointer src, gpointer dest, guint dest_offset, guint width, guint n_elems)
+{
+  guint32 *s, *d;
+
+  d = (guint32 *) dest + dest_offset;
+  s = (guint32 *) src;
+
+#if 0
+  /* ORC is slower on this */
+  video_orc_resample_h_near_u32_lq (d, s, 0, scale->inc, width);
+#elif 0
+  video_orc_resample_h_near_u32 (d, s, offset, width);
+#else
+  {
+    gint i;
+#ifndef ACC_SCALE
+    guint32 *offset = scale->resampler.offset + dest_offset;
+
+    for (i = 0; i < width; i++)
+      d[i] = s[offset[i]];
+#else
+    gint acc = 0;
+
+    for (i = 0; i < width; i++) {
+      gint j = (acc + 0x8000) >> 16;
+      d[i] = s[j];
+      acc += scale->inc;
+    }
+#endif
+  }
+#endif
+}
+
+static void
+video_scale_h_near_u64 (GstVideoScaler * scale,
+    gpointer src, gpointer dest, guint dest_offset, guint width, guint n_elems)
+{
+  guint64 *s, *d;
+  gint i;
+  guint32 *offset;
+
+  d = (guint64 *) dest + dest_offset;
+  s = (guint64 *) src;
+
+  offset = scale->resampler.offset + dest_offset;
+  for (i = 0; i < width; i++)
+    d[i] = s[offset[i]];
+}
+
+static void
+video_scale_h_2tap_1u8 (GstVideoScaler * scale,
+    gpointer src, gpointer dest, guint dest_offset, guint width, guint n_elems)
+{
+  guint8 *s, *d;
+
+  d = (guint8 *) dest + dest_offset;
+  s = (guint8 *) src;
+
+  video_orc_resample_h_2tap_1u8_lq (d, s, 0, scale->inc, width);
+}
+
+static void
+video_scale_h_2tap_4u8 (GstVideoScaler * scale,
+    gpointer src, gpointer dest, guint dest_offset, guint width, guint n_elems)
+{
+  guint32 *s, *d;
+
+  d = (guint32 *) dest + dest_offset;
+  s = (guint32 *) src;
+
+  video_orc_resample_h_2tap_4u8_lq (d, s, 0, scale->inc, width);
+}
+
+static void
+video_scale_h_ntap_u8 (GstVideoScaler * scale,
+    gpointer src, gpointer dest, guint dest_offset, guint width, guint n_elems)
+{
+  gint16 *taps;
+  gint i, max_taps, count;
+  gpointer d;
+  guint32 *offset_n;
+  guint8 *pixels;
+  gint16 *temp;
+
+  if (scale->taps_s16 == NULL)
+#ifdef LQ
+    make_s16_taps (scale, n_elems, SCALE_U8_LQ);
+#else
+    make_s16_taps (scale, n_elems, SCALE_U8);
+#endif
+
+  max_taps = scale->resampler.max_taps;
+  offset_n = scale->offset_n;
+
+  pixels = (guint8 *) scale->tmpline1;
+
+  /* prepare the arrays */
+  count = width * max_taps;
+  switch (n_elems) {
+    case 1:
+    {
+      guint8 *s = (guint8 *) src;
+
+      for (i = 0; i < count; i++)
+        pixels[i] = s[offset_n[i]];
+
+      d = (guint8 *) dest + dest_offset;
+      break;
+    }
+    case 2:
+    {
+      guint16 *p16 = (guint16 *) pixels;
+      guint16 *s = (guint16 *) src;
+
+      for (i = 0; i < count; i++)
+        p16[i] = s[offset_n[i]];
+
+      d = (guint16 *) dest + dest_offset;
+      break;
+    }
+    case 3:
+    {
+      guint8 *s = (guint8 *) src;
+
+      for (i = 0; i < count; i++) {
+        gint j = offset_n[i] * 3;
+        pixels[i * 3 + 0] = s[j + 0];
+        pixels[i * 3 + 1] = s[j + 1];
+        pixels[i * 3 + 2] = s[j + 2];
+      }
+      d = (guint8 *) dest + dest_offset * 3;
+      break;
+    }
+    case 4:
+    {
+      guint32 *p32 = (guint32 *) pixels;
+      guint32 *s = (guint32 *) src;
+#if 0
+      video_orc_resample_h_near_u32 (p32, s, offset_n, count);
+#else
+      for (i = 0; i < count; i++)
+        p32[i] = s[offset_n[i]];
+#endif
+      d = (guint32 *) dest + dest_offset;
+      break;
+    }
+    default:
+      return;
+  }
+  temp = (gint16 *) scale->tmpline2;
+  taps = scale->taps_s16_4;
+  count = width * n_elems;
+
+#ifdef LQ
+  if (max_taps == 2) {
+    video_orc_resample_h_2tap_u8_lq (d, pixels, pixels + count, taps,
+        taps + count, count);
+  } else {
+    /* first pixels with first tap to temp */
+    if (max_taps >= 3) {
+      video_orc_resample_h_multaps3_u8_lq (temp, pixels, pixels + count,
+          pixels + count * 2, taps, taps + count, taps + count * 2, count);
+      max_taps -= 3;
+      pixels += count * 3;
+      taps += count * 3;
+    } else {
+      gint first = max_taps % 3;
+
+      video_orc_resample_h_multaps_u8_lq (temp, pixels, taps, count);
+      video_orc_resample_h_muladdtaps_u8_lq (temp, 0, pixels + count, count,
+          taps + count, count * 2, count, first - 1);
+      max_taps -= first;
+      pixels += count * first;
+      taps += count * first;
+    }
+    while (max_taps > 3) {
+      if (max_taps >= 6) {
+        video_orc_resample_h_muladdtaps3_u8_lq (temp, pixels, pixels + count,
+            pixels + count * 2, taps, taps + count, taps + count * 2, count);
+        max_taps -= 3;
+        pixels += count * 3;
+        taps += count * 3;
+      } else {
+        video_orc_resample_h_muladdtaps_u8_lq (temp, 0, pixels, count,
+            taps, count * 2, count, max_taps - 3);
+        pixels += count * (max_taps - 3);
+        taps += count * (max_taps - 3);
+        max_taps = 3;
+      }
+    }
+    if (max_taps == 3) {
+      video_orc_resample_h_muladdscaletaps3_u8_lq (d, pixels, pixels + count,
+          pixels + count * 2, taps, taps + count, taps + count * 2, temp,
+          count);
+    } else {
+      if (max_taps) {
+        /* add other pixels with other taps to t4 */
+        video_orc_resample_h_muladdtaps_u8_lq (temp, 0, pixels, count,
+            taps, count * 2, count, max_taps);
+      }
+      /* scale and write final result */
+      video_orc_resample_scaletaps_u8_lq (d, temp, count);
+    }
+  }
+#else
+  /* first pixels with first tap to t4 */
+  video_orc_resample_h_multaps_u8 (temp, pixels, taps, count);
+  /* add other pixels with other taps to t4 */
+  video_orc_resample_h_muladdtaps_u8 (temp, 0, pixels + count, count,
+      taps + count, count * 2, count, max_taps - 1);
+  /* scale and write final result */
+  video_orc_resample_scaletaps_u8 (d, temp, count);
+#endif
+}
+
+static void
+video_scale_h_ntap_u16 (GstVideoScaler * scale,
+    gpointer src, gpointer dest, guint dest_offset, guint width, guint n_elems)
+{
+  gint16 *taps;
+  gint i, max_taps, count;
+  gpointer d;
+  guint32 *offset_n;
+  guint16 *pixels;
+  gint32 *temp;
+
+  if (scale->taps_s16 == NULL)
+    make_s16_taps (scale, n_elems, SCALE_U16);
+
+  max_taps = scale->resampler.max_taps;
+  offset_n = scale->offset_n;
+
+  pixels = (guint16 *) scale->tmpline1;
+  /* prepare the arrays FIXME, we can add this into ORC */
+  count = width * max_taps;
+  switch (n_elems) {
+    case 1:
+    {
+      guint16 *s = (guint16 *) src;
+
+      for (i = 0; i < count; i++)
+        pixels[i] = s[offset_n[i]];
+
+      d = (guint16 *) dest + dest_offset;
+      break;
+    }
+    case 4:
+    {
+      guint64 *p64 = (guint64 *) pixels;
+      guint64 *s = (guint64 *) src;
+#if 0
+      video_orc_resample_h_near_u32 (p32, s, offset_n, count);
+#else
+      for (i = 0; i < count; i++)
+        p64[i] = s[offset_n[i]];
+#endif
+      d = (guint64 *) dest + dest_offset;
+      break;
+    }
+    default:
+      return;
+  }
+
+  temp = (gint32 *) scale->tmpline2;
+  taps = scale->taps_s16_4;
+  count = width * n_elems;
+
+  if (max_taps == 2) {
+    video_orc_resample_h_2tap_u16 (d, pixels, pixels + count, taps,
+        taps + count, count);
+  } else {
+    /* first pixels with first tap to t4 */
+    video_orc_resample_h_multaps_u16 (temp, pixels, taps, count);
+    /* add other pixels with other taps to t4 */
+    video_orc_resample_h_muladdtaps_u16 (temp, 0, pixels + count, count * 2,
+        taps + count, count * 2, count, max_taps - 1);
+    /* scale and write final result */
+    video_orc_resample_scaletaps_u16 (d, temp, count);
+  }
+}
+
+static void
+video_scale_v_near_u8 (GstVideoScaler * scale,
+    gpointer srcs[], gpointer dest, guint dest_offset, guint width,
+    guint n_elems)
+{
+  if (dest != srcs[0])
+    memcpy (dest, srcs[0], n_elems * width);
+}
+
+static void
+video_scale_v_near_u16 (GstVideoScaler * scale,
+    gpointer srcs[], gpointer dest, guint dest_offset, guint width,
+    guint n_elems)
+{
+  if (dest != srcs[0])
+    memcpy (dest, srcs[0], n_elems * 2 * width);
+}
+
+static void
+video_scale_v_2tap_u8 (GstVideoScaler * scale,
+    gpointer srcs[], gpointer dest, guint dest_offset, guint width,
+    guint n_elems)
+{
+  gint max_taps, src_inc;
+  guint8 *s1, *s2, *d;
+  gint16 p1;
+
+  if (scale->taps_s16 == NULL)
+#ifdef LQ
+    make_s16_taps (scale, n_elems, SCALE_U8_LQ + 2);
+#else
+    make_s16_taps (scale, n_elems, SCALE_U8);
+#endif
+
+  max_taps = scale->resampler.max_taps;
+
+  if (scale->flags & GST_VIDEO_SCALER_FLAG_INTERLACED)
+    src_inc = 2;
+  else
+    src_inc = 1;
+
+  d = (guint8 *) dest;
+  s1 = (guint8 *) srcs[0 * src_inc];
+  s2 = (guint8 *) srcs[1 * src_inc];
+  p1 = scale->taps_s16[dest_offset * max_taps + 1];
+
+#ifdef LQ
+  video_orc_resample_v_2tap_u8_lq (d, s1, s2, p1, width * n_elems);
+#else
+  video_orc_resample_v_2tap_u8 (d, s1, s2, p1, width * n_elems);
+#endif
+}
+
+static void
+video_scale_v_2tap_u16 (GstVideoScaler * scale,
+    gpointer srcs[], gpointer dest, guint dest_offset, guint width,
+    guint n_elems)
+{
+  gint max_taps, src_inc;
+  guint16 *s1, *s2, *d;
+  gint16 p1;
+
+  if (scale->taps_s16 == NULL)
+    make_s16_taps (scale, n_elems, SCALE_U16);
+
+  max_taps = scale->resampler.max_taps;
+
+  if (scale->flags & GST_VIDEO_SCALER_FLAG_INTERLACED)
+    src_inc = 2;
+  else
+    src_inc = 1;
+
+  d = (guint16 *) dest;
+  s1 = (guint16 *) srcs[0 * src_inc];
+  s2 = (guint16 *) srcs[1 * src_inc];
+  p1 = scale->taps_s16[dest_offset * max_taps + 1];
+
+  video_orc_resample_v_2tap_u16 (d, s1, s2, p1, width * n_elems);
+}
+
+#if 0
+static void
+video_scale_h_4tap_8888 (GstVideoScaler * scale,
+    gpointer src, gpointer dest, guint dest_offset, guint width)
+{
+  gint16 *taps;
+  gint i, max_taps, count;
+  guint8 *d;
+  guint32 *offset_n;
+  guint32 *pixels;
+
+  if (scale->taps_s16 == NULL)
+    make_s16_taps (scale, n_elems, S16_SCALE);
+
+  max_taps = scale->resampler.max_taps;
+  offset_n = scale->offset_n;
+
+  d = (guint8 *) dest + 4 * dest_offset;
+
+  /* prepare the arrays FIXME, we can add this into ORC */
+  count = width * max_taps;
+  pixels = (guint32 *) scale->tmpline1;
+  for (i = 0; i < count; i++)
+    pixels[i] = ((guint32 *) src)[offset_n[i]];
+
+  taps = scale->taps_s16_4;
+  count = width * 4;
+
+  video_orc_resample_h_4tap_8 (d, pixels, pixels + width, pixels + 2 * width,
+      pixels + 3 * width, taps, taps + count, taps + 2 * count,
+      taps + 3 * count, count);
+}
+#endif
+
+static void
+video_scale_v_4tap_u8 (GstVideoScaler * scale,
+    gpointer srcs[], gpointer dest, guint dest_offset, guint width,
+    guint n_elems)
+{
+  gint max_taps;
+  guint8 *s1, *s2, *s3, *s4, *d;
+  gint p1, p2, p3, p4, src_inc;
+  gint16 *taps;
+
+  if (scale->taps_s16 == NULL)
+#ifdef LQ
+    make_s16_taps (scale, n_elems, SCALE_U8_LQ);
+#else
+    make_s16_taps (scale, n_elems, SCALE_U8);
+#endif
+
+  max_taps = scale->resampler.max_taps;
+  taps = scale->taps_s16 + dest_offset * max_taps;
+
+  if (scale->flags & GST_VIDEO_SCALER_FLAG_INTERLACED)
+    src_inc = 2;
+  else
+    src_inc = 1;
+
+  d = (guint8 *) dest;
+  s1 = (guint8 *) srcs[0 * src_inc];
+  s2 = (guint8 *) srcs[1 * src_inc];
+  s3 = (guint8 *) srcs[2 * src_inc];
+  s4 = (guint8 *) srcs[3 * src_inc];
+  p1 = taps[0];
+  p2 = taps[1];
+  p3 = taps[2];
+  p4 = taps[3];
+
+#ifdef LQ
+  video_orc_resample_v_4tap_u8_lq (d, s1, s2, s3, s4, p1, p2, p3, p4,
+      width * n_elems);
+#else
+  video_orc_resample_v_4tap_u8 (d, s1, s2, s3, s4, p1, p2, p3, p4,
+      width * n_elems);
+#endif
+}
+
+static void
+video_scale_v_ntap_u8 (GstVideoScaler * scale,
+    gpointer srcs[], gpointer dest, guint dest_offset, guint width,
+    guint n_elems)
+{
+  gint16 *taps;
+  gint i, max_taps, count, src_inc;
+  gpointer d;
+  gint16 *temp;
+
+  if (scale->taps_s16 == NULL)
+#ifdef LQ
+    make_s16_taps (scale, n_elems, SCALE_U8_LQ);
+#else
+    make_s16_taps (scale, n_elems, SCALE_U8);
+#endif
+
+  max_taps = scale->resampler.max_taps;
+  taps = scale->taps_s16 + (scale->resampler.phase[dest_offset] * max_taps);
+
+  d = (guint32 *) dest;
+
+  if (scale->flags & GST_VIDEO_SCALER_FLAG_INTERLACED)
+    src_inc = 2;
+  else
+    src_inc = 1;
+
+  temp = (gint16 *) scale->tmpline2;
+  count = width * n_elems;
+
+#ifdef LQ
+  if (max_taps >= 4) {
+    video_orc_resample_v_multaps4_u8_lq (temp, srcs[0], srcs[1 * src_inc],
+        srcs[2 * src_inc], srcs[3 * src_inc], taps[0], taps[1], taps[2],
+        taps[3], count);
+    max_taps -= 4;
+    srcs += 4 * src_inc;
+    taps += 4;
+  } else {
+    gint first = (max_taps % 4);
+
+    video_orc_resample_v_multaps_u8_lq (temp, srcs[0], taps[0], count);
+    for (i = 1; i < first; i++) {
+      video_orc_resample_v_muladdtaps_u8_lq (temp, srcs[i * src_inc], taps[i],
+          count);
+    }
+    max_taps -= first;
+    srcs += first * src_inc;
+    taps += first;
+  }
+  while (max_taps > 4) {
+    if (max_taps >= 8) {
+      video_orc_resample_v_muladdtaps4_u8_lq (temp, srcs[0], srcs[1 * src_inc],
+          srcs[2 * src_inc], srcs[3 * src_inc], taps[0], taps[1], taps[2],
+          taps[3], count);
+      max_taps -= 4;
+      srcs += 4 * src_inc;
+      taps += 4;
+    } else {
+      for (i = 0; i < max_taps - 4; i++)
+        video_orc_resample_v_muladdtaps_u8_lq (temp, srcs[i * src_inc], taps[i],
+            count);
+      srcs += (max_taps - 4) * src_inc;
+      taps += (max_taps - 4);
+      max_taps = 4;
+    }
+  }
+  if (max_taps == 4) {
+    video_orc_resample_v_muladdscaletaps4_u8_lq (d, srcs[0], srcs[1 * src_inc],
+        srcs[2 * src_inc], srcs[3 * src_inc], temp, taps[0], taps[1], taps[2],
+        taps[3], count);
+  } else {
+    for (i = 0; i < max_taps; i++)
+      video_orc_resample_v_muladdtaps_u8_lq (temp, srcs[i * src_inc], taps[i],
+          count);
+    video_orc_resample_scaletaps_u8_lq (d, temp, count);
+  }
+
+#else
+  video_orc_resample_v_multaps_u8 (temp, srcs[0], taps[0], count);
+  for (i = 1; i < max_taps; i++) {
+    video_orc_resample_v_muladdtaps_u8 (temp, srcs[i * src_inc], taps[i],
+        count);
+  }
+  video_orc_resample_scaletaps_u8 (d, temp, count);
+#endif
+}
+
+static void
+video_scale_v_ntap_u16 (GstVideoScaler * scale,
+    gpointer srcs[], gpointer dest, guint dest_offset, guint width,
+    guint n_elems)
+{
+  gint16 *taps;
+  gint i, max_taps, count, src_inc;
+  gpointer d;
+  gint32 *temp;
+
+  if (scale->taps_s16 == NULL)
+    make_s16_taps (scale, n_elems, SCALE_U16);
+
+  max_taps = scale->resampler.max_taps;
+  taps = scale->taps_s16 + (scale->resampler.phase[dest_offset] * max_taps);
+
+  d = (guint16 *) dest;
+
+  if (scale->flags & GST_VIDEO_SCALER_FLAG_INTERLACED)
+    src_inc = 2;
+  else
+    src_inc = 1;
+
+  temp = (gint32 *) scale->tmpline2;
+  count = width * n_elems;
+
+  video_orc_resample_v_multaps_u16 (temp, srcs[0], taps[0], count);
+  for (i = 1; i < max_taps; i++) {
+    video_orc_resample_v_muladdtaps_u16 (temp, srcs[i * src_inc], taps[i],
+        count);
+  }
+  video_orc_resample_scaletaps_u16 (d, temp, count);
+}
+
+static gint
+get_y_offset (GstVideoFormat format)
+{
+  switch (format) {
+    case GST_VIDEO_FORMAT_YUY2:
+    case GST_VIDEO_FORMAT_YVYU:
+      return 0;
+    default:
+    case GST_VIDEO_FORMAT_UYVY:
+      return 1;
+  }
+}
+
+/**
+ * gst_video_scaler_combine_packed_YUV:
+ * @y_scale: a scaler for the Y component
+ * @uv_scale: a scaler for the U and V components
+ * @format: the video format
+ *
+ * Combine a scaler for Y and UV into one scaler for the packed @format.
+ *
+ * Returns: a new horizontal videoscaler for @format.
+ *
+ * Since: 1.6
+ */
+GstVideoScaler *
+gst_video_scaler_combine_packed_YUV (GstVideoScaler * y_scale,
+    GstVideoScaler * uv_scale, GstVideoFormat in_format,
+    GstVideoFormat out_format)
+{
+  GstVideoScaler *scale;
+  GstVideoResampler *resampler;
+  guint i, out_size, max_taps, n_phases;
+  gdouble *taps;
+  guint32 *offset, *phase;
+
+  g_return_val_if_fail (y_scale != NULL, NULL);
+  g_return_val_if_fail (uv_scale != NULL, NULL);
+
+  scale = g_slice_new0 (GstVideoScaler);
+
+  scale->method = y_scale->method;
+  scale->flags = y_scale->flags;
+  scale->merged = TRUE;
+
+  resampler = &scale->resampler;
+
+  out_size = y_scale->resampler.out_size * 2;
+  max_taps = MAX (y_scale->resampler.max_taps, uv_scale->resampler.max_taps);
+  n_phases = out_size;
+  offset = g_malloc (sizeof (guint32) * out_size);
+  phase = g_malloc (sizeof (guint32) * n_phases);
+  taps = g_malloc (sizeof (gdouble) * max_taps * n_phases);
+
+  resampler->in_size = y_scale->resampler.in_size * 2;
+  resampler->out_size = out_size;
+  resampler->max_taps = max_taps;
+  resampler->n_phases = n_phases;
+  resampler->offset = offset;
+  resampler->phase = phase;
+  resampler->n_taps = g_malloc (sizeof (guint32) * out_size);
+  resampler->taps = taps;
+
+  scale->in_y_offset = get_y_offset (in_format);
+  scale->out_y_offset = get_y_offset (out_format);
+
+  for (i = 0; i < out_size; i++) {
+    if ((i & 1) == scale->out_y_offset) {
+      offset[i] = y_scale->resampler.offset[i / 2] * 2 + scale->in_y_offset;
+      memcpy (taps + i * max_taps, y_scale->resampler.taps +
+          y_scale->resampler.phase[i / 2] * max_taps,
+          max_taps * sizeof (gdouble));
+    } else {
+      offset[i] = uv_scale->resampler.offset[i / 4] * 4 + (i & 3);
+      memcpy (taps + i * max_taps, uv_scale->resampler.taps +
+          uv_scale->resampler.phase[i / 4] * max_taps,
+          max_taps * sizeof (gdouble));
+    }
+    phase[i] = i;
+  }
+
+  scaler_dump (scale);
+
+  return scale;
+}
+
+static gboolean
+get_functions (GstVideoScaler * hscale, GstVideoScaler * vscale,
+    GstVideoFormat format,
+    GstVideoScalerHFunc * hfunc, GstVideoScalerVFunc * vfunc,
+    gint * n_elems, gint * width_mult)
+{
+  gint bits;
+
+  *width_mult = 1;
+
+  switch (format) {
+    case GST_VIDEO_FORMAT_GRAY8:
+      bits = 8;
+      *n_elems = 1;
+      break;
+    case GST_VIDEO_FORMAT_YUY2:
+    case GST_VIDEO_FORMAT_YVYU:
+    case GST_VIDEO_FORMAT_UYVY:
+      bits = 8;
+      *n_elems = 1;
+      *width_mult = 2;
+      break;
+    case GST_VIDEO_FORMAT_RGB:
+    case GST_VIDEO_FORMAT_BGR:
+    case GST_VIDEO_FORMAT_v308:
+      bits = 8;
+      *n_elems = 3;
+      break;
+    case GST_VIDEO_FORMAT_AYUV:
+    case GST_VIDEO_FORMAT_RGBx:
+    case GST_VIDEO_FORMAT_BGRx:
+    case GST_VIDEO_FORMAT_xRGB:
+    case GST_VIDEO_FORMAT_xBGR:
+    case GST_VIDEO_FORMAT_RGBA:
+    case GST_VIDEO_FORMAT_BGRA:
+    case GST_VIDEO_FORMAT_ARGB:
+    case GST_VIDEO_FORMAT_ABGR:
+      bits = 8;
+      *n_elems = 4;
+      break;
+    case GST_VIDEO_FORMAT_ARGB64:
+    case GST_VIDEO_FORMAT_AYUV64:
+      bits = 16;
+      *n_elems = 4;
+      break;
+    case GST_VIDEO_FORMAT_GRAY16_LE:
+    case GST_VIDEO_FORMAT_GRAY16_BE:
+      bits = 16;
+      *n_elems = 1;
+      break;
+    case GST_VIDEO_FORMAT_NV12:
+    case GST_VIDEO_FORMAT_NV16:
+    case GST_VIDEO_FORMAT_NV21:
+    case GST_VIDEO_FORMAT_NV24:
+      bits = 8;
+      *n_elems = 2;
+      break;
+    default:
+      return FALSE;
+  }
+  if (bits == 8) {
+    switch (hscale ? hscale->resampler.max_taps : 0) {
+      case 0:
+        break;
+      case 1:
+        if (*n_elems == 1)
+          *hfunc = video_scale_h_near_u8;
+        else if (*n_elems == 2)
+          *hfunc = video_scale_h_near_u16;
+        else if (*n_elems == 3)
+          *hfunc = video_scale_h_near_3u8;
+        else if (*n_elems == 4)
+          *hfunc = video_scale_h_near_u32;
+        break;
+      case 2:
+        if (*n_elems == 1 && *width_mult == 1)
+          *hfunc = video_scale_h_2tap_1u8;
+        else if (*n_elems == 4)
+          *hfunc = video_scale_h_2tap_4u8;
+        else
+          *hfunc = video_scale_h_ntap_u8;
+        break;
+      default:
+        *hfunc = video_scale_h_ntap_u8;
+        break;
+    }
+    switch (vscale ? vscale->resampler.max_taps : 0) {
+      case 0:
+        break;
+      case 1:
+        *vfunc = video_scale_v_near_u8;
+        break;
+      case 2:
+        *vfunc = video_scale_v_2tap_u8;
+        break;
+      case 4:
+        *vfunc = video_scale_v_4tap_u8;
+        break;
+      default:
+        *vfunc = video_scale_v_ntap_u8;
+        break;
+    }
+  } else if (bits == 16) {
+    switch (hscale ? hscale->resampler.max_taps : 0) {
+      case 0:
+        break;
+      case 1:
+        if (*n_elems == 1)
+          *hfunc = video_scale_h_near_u16;
+        else
+          *hfunc = video_scale_h_near_u64;
+        break;
+      default:
+        *hfunc = video_scale_h_ntap_u16;
+        break;
+    }
+    switch (vscale ? vscale->resampler.max_taps : 0) {
+      case 0:
+        break;
+      case 1:
+        *vfunc = video_scale_v_near_u16;
+        break;
+      case 2:
+        *vfunc = video_scale_v_2tap_u16;
+        break;
+      default:
+        *vfunc = video_scale_v_ntap_u16;
+        break;
+    }
+  }
+  return TRUE;
+}
+
+/**
+ * gst_video_scaler_horizontal:
+ * @scale: a #GstVideoScaler
+ * @format: a #GstVideoFormat for @src and @dest
+ * @src: source pixels
+ * @dest: destination pixels
+ * @dest_offset: the horizontal destination offset
+ * @width: the number of pixels to scale
+ *
+ * Horizontally scale the pixels in @src to @dest, starting from @dest_offset
+ * for @width samples.
+ */
+void
+gst_video_scaler_horizontal (GstVideoScaler * scale, GstVideoFormat format,
+    gpointer src, gpointer dest, guint dest_offset, guint width)
+{
+  gint n_elems, mult;
+  GstVideoScalerHFunc func;
+
+  g_return_if_fail (scale != NULL);
+  g_return_if_fail (src != NULL);
+  g_return_if_fail (dest != NULL);
+  g_return_if_fail (dest_offset + width <= scale->resampler.out_size);
+
+  if (!get_functions (scale, NULL, format, &func, NULL, &n_elems, &mult))
+    goto no_func;
+
+  width *= mult;
+
+  if (scale->tmpwidth < width)
+    realloc_tmplines (scale, n_elems, width);
+
+  func (scale, src, dest, dest_offset, width, n_elems);
+  return;
+
+no_func:
+  {
+    GST_WARNING ("no scaler function for format");
+  }
+}
+
+/**
+ * gst_video_scaler_vertical:
+ * @scale: a #GstVideoScaler
+ * @format: a #GstVideoFormat for @srcs and @dest
+ * @src_lines: source pixels lines
+ * @dest: destination pixels
+ * @dest_offset: the vertical destination offset
+ * @width: the number of pixels to scale
+ *
+ * Vertically combine @width pixels in the lines in @src_lines to @dest.
+ * @dest is the location of the target line at @dest_offset and
+ * @srcs are the input lines for @dest_offset, as obtained with
+ * gst_video_scaler_get_info().
+ */
+void
+gst_video_scaler_vertical (GstVideoScaler * scale, GstVideoFormat format,
+    gpointer src_lines[], gpointer dest, guint dest_offset, guint width)
+{
+  gint n_elems, mult;
+  GstVideoScalerVFunc func;
+
+  g_return_if_fail (scale != NULL);
+  g_return_if_fail (src_lines != NULL);
+  g_return_if_fail (dest != NULL);
+  g_return_if_fail (dest_offset < scale->resampler.out_size);
+
+  if (!get_functions (NULL, scale, format, NULL, &func, &n_elems, &mult))
+    goto no_func;
+
+  width *= mult;
+
+  if (scale->tmpwidth < width)
+    realloc_tmplines (scale, n_elems, width);
+
+  func (scale, src_lines, dest, dest_offset, width, n_elems);
+  return;
+
+no_func:
+  {
+    GST_WARNING ("no scaler function for format");
+  }
+}
+
+
+/**
+ * gst_video_scaler_2d:
+ * @hscale: a horzontal #GstVideoScaler
+ * @vscale: a vertical #GstVideoScaler
+ * @format: a #GstVideoFormat for @srcs and @dest
+ * @src: source pixels
+ * @src_stride: source pixels stride
+ * @dest: destination pixels
+ * @dest_stride: destination pixels stride
+ * @x: the horizontal destination offset
+ * @y: the vertical destination offset
+ * @width: the number of output pixels to scale
+ * @height: the number of output lines to scale
+ *
+ * Scale a rectangle of pixels in @src with @src_stride to @dest with
+ * @dest_stride using the horizontal scaler @hscaler and the vertical
+ * scaler @vscale.
+ *
+ * One or both of @hscale and @vscale can be NULL to only perform scaling in
+ * one dimension or do a copy without scaling.
+ *
+ * @x and @y are the coordinates in the destination image to process.
+ */
+void
+gst_video_scaler_2d (GstVideoScaler * hscale, GstVideoScaler * vscale,
+    GstVideoFormat format, gpointer src, gint src_stride,
+    gpointer dest, gint dest_stride, guint x, guint y,
+    guint width, guint height)
+{
+  gint n_elems, mult;
+  GstVideoScalerHFunc hfunc;
+  GstVideoScalerVFunc vfunc;
+  gint i;
+
+  g_return_if_fail (src != NULL);
+  g_return_if_fail (dest != NULL);
+
+  if (!get_functions (hscale, vscale, format, &hfunc, &vfunc, &n_elems, &mult))
+    goto no_func;
+
+  width *= mult;
+
+#define LINE(s,ss,i)  ((guint8 *)(s) + ((i) * (ss)))
+#define TMP_LINE(s,i,v) ((guint8 *)(s->tmpline1) + (((i) % (v)) * (sizeof (gint32) * width * n_elems)))
+
+  if (vscale == NULL) {
+    if (hscale == NULL) {
+      guint xo, xw;
+      guint8 *s, *d;
+
+      xo = x * n_elems;
+      xw = width * n_elems;
+
+      s = LINE (src, src_stride, y) + xo;
+      d = LINE (dest, dest_stride, y) + xo;
+
+      /* no scaling, do memcpy */
+      for (i = y; i < height; i++) {
+        memcpy (d, s, xw);
+        d += dest_stride;
+        s += src_stride;
+      }
+    } else {
+      if (hscale->tmpwidth < width)
+        realloc_tmplines (hscale, n_elems, width);
+
+      /* only horizontal scaling */
+      for (i = y; i < height; i++) {
+        hfunc (hscale, LINE (src, src_stride, i), LINE (dest, dest_stride, i),
+            x, width, n_elems);
+      }
+    }
+  } else {
+    guint v_taps;
+    gpointer *lines;
+
+    if (vscale->tmpwidth < width)
+      realloc_tmplines (vscale, n_elems, width);
+
+    v_taps = vscale->resampler.max_taps;
+    lines = g_alloca (v_taps * sizeof (gpointer));
+
+    if (hscale == NULL) {
+      /* only vertical scaling */
+      for (i = y; i < height; i++) {
+        guint in, j;
+
+        in = vscale->resampler.offset[i];
+        for (j = 0; j < v_taps; j++)
+          lines[j] = LINE (src, src_stride, in + j);
+
+        vfunc (vscale, lines, LINE (dest, dest_stride, i), i, width, n_elems);
+      }
+    } else {
+      gint tmp_in = y;
+      gint s1, s2;
+
+      if (hscale->tmpwidth < width)
+        realloc_tmplines (hscale, n_elems, width);
+
+      s1 = width * vscale->resampler.offset[height - 1];
+      s2 = width * height;
+
+      if (s1 <= s2) {
+        for (i = y; i < height; i++) {
+          guint in, j;
+
+          in = vscale->resampler.offset[i];
+          while (tmp_in < in)
+            tmp_in++;
+          while (tmp_in < in + v_taps) {
+            hfunc (hscale, LINE (src, src_stride, tmp_in), TMP_LINE (vscale,
+                    tmp_in, v_taps), x, width, n_elems);
+            tmp_in++;
+          }
+          for (j = 0; j < v_taps; j++)
+            lines[j] = TMP_LINE (vscale, in + j, v_taps);
+
+          vfunc (vscale, lines, LINE (dest, dest_stride, i), i, width, n_elems);
+        }
+      } else {
+        guint vx, vw;
+        guint h_taps;
+
+        h_taps = hscale->resampler.max_taps;
+
+        vx = (hscale->inc * x) >> 16;
+        vx = MIN (vx, hscale->resampler.offset[x]);
+        vw = (hscale->inc * (x + width)) >> 16;
+        vw = MAX (vw, hscale->resampler.offset[x + width - 1] + h_taps);
+        vw += 1;
+
+        if (vscale->tmpwidth < vw)
+          realloc_tmplines (vscale, n_elems, vw);
+
+        for (i = y; i < height; i++) {
+          guint in, j;
+
+          in = vscale->resampler.offset[i];
+          for (j = 0; j < v_taps; j++)
+            lines[j] = LINE (src, src_stride, in + j) + vx * n_elems;
+
+          vfunc (vscale, lines, TMP_LINE (vscale, 0, v_taps) + vx * n_elems, i,
+              vw - vx, n_elems);
+
+          hfunc (hscale, TMP_LINE (vscale, 0, v_taps), LINE (dest, dest_stride,
+                  i), x, width, n_elems);
+        }
+      }
+    }
+  }
+  return;
+
+no_func:
+  {
+    GST_WARNING ("no scaler function for format");
+  }
+}
diff --git a/gst-libs/gst/video/video-scaler.h b/gst-libs/gst/video/video-scaler.h
new file mode 100644
index 0000000..891a49d
--- /dev/null
+++ b/gst-libs/gst/video/video-scaler.h
@@ -0,0 +1,89 @@
+/* GStreamer
+ * Copyright (C) <2014> Wim Taymans <wim.taymans@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef __GST_VIDEO_SCALER_H__
+#define __GST_VIDEO_SCALER_H__
+
+#include <gst/gst.h>
+
+#include <gst/video/video-format.h>
+#include <gst/video/video-color.h>
+#include <gst/video/video-resampler.h>
+
+G_BEGIN_DECLS
+
+/**
+ * GST_VIDEO_SCALER_OPT_DITHER_METHOD:
+ *
+ * #GST_TYPE_VIDEO_DITHER_METHOD, The dither method to use for propagating
+ * quatization errors.
+ */
+#define GST_VIDEO_SCALER_OPT_DITHER_METHOD   "GstVideoScaler.dither-method"
+
+/**
+ * GstVideoScalerFlags:
+ * @GST_VIDEO_SCALER_FLAG_NONE: no flags
+ * @GST_VIDEO_SCALER_FLAG_INTERLACED: Set up a scaler for interlaced content
+ *
+ * Different scale flags.
+ */
+typedef enum {
+  GST_VIDEO_SCALER_FLAG_NONE                 = (0),
+  GST_VIDEO_SCALER_FLAG_INTERLACED           = (1 << 0),
+} GstVideoScalerFlags;
+
+typedef struct _GstVideoScaler GstVideoScaler;
+
+GstVideoScaler *      gst_video_scaler_new            (GstVideoResamplerMethod method,
+                                                       GstVideoScalerFlags flags,
+                                                       guint n_taps,
+                                                       guint in_size, guint out_size,
+                                                       GstStructure * options);
+void                  gst_video_scaler_free           (GstVideoScaler *scale);
+
+const gdouble *       gst_video_scaler_get_coeff      (GstVideoScaler *scale,
+                                                       guint out_offset,
+                                                       guint *in_offset,
+                                                       guint *n_taps);
+
+void                  gst_video_scaler_horizontal     (GstVideoScaler *scale,
+                                                       GstVideoFormat format,
+                                                       gpointer src, gpointer dest,
+                                                       guint dest_offset, guint width);
+void                  gst_video_scaler_vertical       (GstVideoScaler *scale,
+                                                       GstVideoFormat format,
+                                                       gpointer src_lines[], gpointer dest,
+                                                       guint dest_offset, guint width);
+
+GstVideoScaler *      gst_video_scaler_combine_packed_YUV (GstVideoScaler * y_scale,
+                                                           GstVideoScaler *uv_scale,
+                                                           GstVideoFormat in_format,
+                                                           GstVideoFormat out_format);
+
+void                  gst_video_scaler_2d             (GstVideoScaler *hscale,
+                                                       GstVideoScaler *vscale,
+                                                       GstVideoFormat format,
+                                                       gpointer src, gint src_stride,
+                                                       gpointer dest, gint dest_stride,
+                                                       guint x, guint y,
+                                                       guint width, guint height);
+
+G_END_DECLS
+
+#endif /* __GST_VIDEO_SCALER_H__ */
diff --git a/gst-libs/gst/video/video-tile.c b/gst-libs/gst/video/video-tile.c
index 10954a5..dd40ee6 100644
--- a/gst-libs/gst/video/video-tile.c
+++ b/gst-libs/gst/video/video-tile.c
@@ -30,10 +30,12 @@
  * Get the tile index of the tile at coordinates @x and @y in the tiled
  * image of @x_tiles by @y_tiles.
  *
- * Use this method when @mode is of type #GST_VIDEO_TILE_MODE_INDEXED.
+ * Use this method when @mode is of type %GST_VIDEO_TILE_MODE_INDEXED.
  *
  * Returns: the index of the tile at @x and @y in the tiled image of
  *   @x_tiles by @y_tiles.
+ *
+ * Since: 1.4
  */
 guint
 gst_video_tile_get_index (GstVideoTileMode mode, gint x, gint y,
diff --git a/gst-libs/gst/video/video.c b/gst-libs/gst/video/video.c
index 2812a11..745dac3 100644
--- a/gst-libs/gst/video/video.c
+++ b/gst-libs/gst/video/video.c
@@ -99,6 +99,95 @@
 }
 
 /**
+ * gst_video_guess_framerate:
+ * @duration: Nominal duration of one frame
+ * @dest_n: (out) (allow-none): Numerator of the calculated framerate
+ * @dest_d: (out) (allow-none): Denominator of the calculated framerate
+ *
+ * Given the nominal duration of one video frame,
+ * this function will check some standard framerates for
+ * a close match (within 0.1%) and return one if possible,
+ *
+ * It will calculate an arbitrary framerate if no close
+ * match was found, and return %FALSE.
+ *
+ * It returns %FALSE if a duration of 0 is passed.
+ *
+ * Returns: %TRUE if a close "standard" framerate was
+ * recognised, and %FALSE otherwise.
+ *
+ * Since: 1.6
+ */
+gboolean
+gst_video_guess_framerate (GstClockTime duration, gint * dest_n, gint * dest_d)
+{
+  const int common_den[] = { 1, 2, 3, 4, 1001 };
+  int best_n, best_d, gcd;
+  guint64 best_error = G_MAXUINT64;
+  guint64 a;
+  int i;
+
+  if (G_UNLIKELY (duration == 0))
+    return FALSE;
+
+  /* Use a limited precision conversion by default for more sensible results,
+   * unless the frame duration is absurdly small (high speed cameras?) */
+  if (duration > 100000) {
+    best_n = 10000;
+    best_d = duration / 100000;
+  } else {
+    best_n = GST_SECOND;
+    best_d = duration;
+  }
+
+  for (i = 0; i < G_N_ELEMENTS (common_den); i++) {
+    gint d = common_den[i];
+    gint n = gst_util_uint64_scale_round (d, GST_SECOND, duration);
+
+    /* For NTSC framerates, round to the nearest 1000 fps */
+    if (d == 1001) {
+      n += 500;
+      n -= (n % 1000);
+    }
+
+    if (n > 0) {
+      /* See what duration the given framerate should be */
+      a = gst_util_uint64_scale_int (GST_SECOND, d, n);
+      /* Compute absolute error */
+      a = (a < duration) ? (duration - a) : (a - duration);
+      if (a < 2) {
+        /* Really precise - take this option */
+        if (dest_n)
+          *dest_n = n;
+        if (dest_d)
+          *dest_d = d;
+        return TRUE;
+      }
+      /* If within 0.1%, remember this denominator */
+      if (a * 1000 < duration && a < best_error) {
+        best_error = a;
+        best_n = n;
+        best_d = d;
+      }
+    }
+  }
+
+  /* set results */
+  gcd = gst_util_greatest_common_divisor (best_n, best_d);
+  if (gcd) {
+    best_n /= gcd;
+    best_d /= gcd;
+  }
+  if (dest_n)
+    *dest_n = best_n;
+  if (dest_d)
+    *dest_d = best_d;
+
+  return (best_error != G_MAXUINT64);
+}
+
+
+/**
  * gst_video_alignment_reset:
  * @align: a #GstVideoAlignment
  *
diff --git a/gst-libs/gst/video/video.h b/gst-libs/gst/video/video.h
index 4f8f8c7..b6235b1 100644
--- a/gst-libs/gst/video/video.h
+++ b/gst-libs/gst/video/video.h
@@ -26,9 +26,12 @@
 
 #include <gst/video/video-format.h>
 #include <gst/video/video-color.h>
+#include <gst/video/video-dither.h>
 #include <gst/video/video-info.h>
 #include <gst/video/video-frame.h>
 #include <gst/video/video-enumtypes.h>
+#include <gst/video/video-converter.h>
+#include <gst/video/video-scaler.h>
 
 G_BEGIN_DECLS
 
@@ -100,6 +103,9 @@
                                                   guint   display_par_n,
                                                   guint   display_par_d);
 
+gboolean       gst_video_guess_framerate (GstClockTime duration,
+                                          gint * dest_n, gint * dest_d);
+
 /* convert/encode video sample from one format to another */
 
 typedef void (*GstVideoConvertSampleCallback) (GstSample * sample, GError *error, gpointer user_data);
diff --git a/gst-plugins-base.doap b/gst-plugins-base.doap
index 1b6560c..5e04ca6 100644
--- a/gst-plugins-base.doap
+++ b/gst-plugins-base.doap
@@ -36,6 +36,36 @@
 
  <release>
   <Version>
+   <revision>1.4.0</revision>
+   <branch>1.4</branch>
+   <name></name>
+   <created>2014-07-19</created>
+   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-1.4.0.tar.xz" />
+  </Version>
+ </release>
+
+ <release>
+  <Version>
+   <revision>1.3.91</revision>
+   <branch>1.3</branch>
+   <name></name>
+   <created>2014-07-11</created>
+   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-1.3.91.tar.xz" />
+  </Version>
+ </release>
+
+ <release>
+  <Version>
+   <revision>1.3.90</revision>
+   <branch>1.3</branch>
+   <name></name>
+   <created>2014-06-28</created>
+   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-1.3.90.tar.xz" />
+  </Version>
+ </release>
+
+ <release>
+  <Version>
    <revision>1.3.3</revision>
    <branch>1.3</branch>
    <name></name>
diff --git a/gst-plugins-base.spec b/gst-plugins-base.spec
index e4f8eb8..c547584 100644
--- a/gst-plugins-base.spec
+++ b/gst-plugins-base.spec
@@ -4,8 +4,8 @@
 %define gst_minver  0.11.0
 
 Name: 		%{gstreamer}-plugins-base
-Version: 	1.3.3
-Release: 	1.gst
+Version: 	1.5.0.1
+Release: 	0.20150316.185339.gst
 Summary: 	GStreamer streaming media framework plug-ins
 
 Group: 		Applications/Multimedia
@@ -81,8 +81,10 @@
 # helper programs
 %{_bindir}/gst-discoverer-%{majorminor}
 %{_bindir}/gst-play-%{majorminor}
+%{_bindir}/gst-device-monitor-%{majorminor}
 %{_mandir}/man1/gst-discoverer-%{majorminor}*
 %{_mandir}/man1/gst-play-%{majorminor}*
+%{_mandir}/man1/gst-device-monitor-%{majorminor}*
 
 # libraries
 %{_libdir}/libgstaudio-%{majorminor}.so.*
diff --git a/gst-plugins-base.spec.in b/gst-plugins-base.spec.in
index 45990c9..c9613f0 100644
--- a/gst-plugins-base.spec.in
+++ b/gst-plugins-base.spec.in
@@ -81,8 +81,10 @@
 # helper programs
 %{_bindir}/gst-discoverer-%{majorminor}
 %{_bindir}/gst-play-%{majorminor}
+%{_bindir}/gst-device-monitor-%{majorminor}
 %{_mandir}/man1/gst-discoverer-%{majorminor}*
 %{_mandir}/man1/gst-play-%{majorminor}*
+%{_mandir}/man1/gst-device-monitor-%{majorminor}*
 
 # libraries
 %{_libdir}/libgstaudio-%{majorminor}.so.*
diff --git a/gst/Makefile.in b/gst/Makefile.in
index d3a8b68..04a64af 100644
--- a/gst/Makefile.in
+++ b/gst/Makefile.in
@@ -106,7 +106,6 @@
 	$(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-x11.m4 \
 	$(top_srcdir)/common/m4/gst.m4 \
 	$(top_srcdir)/common/m4/gtk-doc.m4 \
 	$(top_srcdir)/common/m4/introspection.m4 \
@@ -266,6 +265,8 @@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_2_0_CFLAGS = @GIO_UNIX_2_0_CFLAGS@
+GIO_UNIX_2_0_LIBS = @GIO_UNIX_2_0_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
@@ -295,6 +296,8 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
+GST_NET_CFLAGS = @GST_NET_CFLAGS@
+GST_NET_LIBS = @GST_NET_LIBS@
 GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
 GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
@@ -322,7 +325,6 @@
 GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
 GTK_X11_LIBS = @GTK_X11_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
-HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -426,13 +428,12 @@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-XMKMF = @XMKMF@
+XSHM_CFLAGS = @XSHM_CFLAGS@
 XSHM_LIBS = @XSHM_LIBS@
+XVIDEO_CFLAGS = @XVIDEO_CFLAGS@
 XVIDEO_LIBS = @XVIDEO_LIBS@
 X_CFLAGS = @X_CFLAGS@
-X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
-X_PRE_LIBS = @X_PRE_LIBS@
 ZLIB_CFLAGS = @ZLIB_CFLAGS@
 ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
diff --git a/gst/adder/Makefile.in b/gst/adder/Makefile.in
index fb204e6..1e72046 100644
--- a/gst/adder/Makefile.in
+++ b/gst/adder/Makefile.in
@@ -125,7 +125,6 @@
 	$(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-x11.m4 \
 	$(top_srcdir)/common/m4/gst.m4 \
 	$(top_srcdir)/common/m4/gtk-doc.m4 \
 	$(top_srcdir)/common/m4/introspection.m4 \
@@ -313,6 +312,8 @@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_2_0_CFLAGS = @GIO_UNIX_2_0_CFLAGS@
+GIO_UNIX_2_0_LIBS = @GIO_UNIX_2_0_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
@@ -342,6 +343,8 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
+GST_NET_CFLAGS = @GST_NET_CFLAGS@
+GST_NET_LIBS = @GST_NET_LIBS@
 GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
 GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
@@ -369,7 +372,6 @@
 GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
 GTK_X11_LIBS = @GTK_X11_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
-HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -473,13 +475,12 @@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-XMKMF = @XMKMF@
+XSHM_CFLAGS = @XSHM_CFLAGS@
 XSHM_LIBS = @XSHM_LIBS@
+XVIDEO_CFLAGS = @XVIDEO_CFLAGS@
 XVIDEO_LIBS = @XVIDEO_LIBS@
 X_CFLAGS = @X_CFLAGS@
-X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
-X_PRE_LIBS = @X_PRE_LIBS@
 ZLIB_CFLAGS = @ZLIB_CFLAGS@
 ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
diff --git a/gst/adder/gstadder.c b/gst/adder/gstadder.c
index 6e9298e..094b25e 100644
--- a/gst/adder/gstadder.c
+++ b/gst/adder/gstadder.c
@@ -485,91 +485,6 @@
 }
 
 static gboolean
-gst_adder_query_latency (GstAdder * adder, GstQuery * query)
-{
-  GstClockTime min, max;
-  gboolean live;
-  gboolean res;
-  GstIterator *it;
-  gboolean done;
-  GValue item = { 0, };
-
-  res = TRUE;
-  done = FALSE;
-
-  live = FALSE;
-  min = 0;
-  max = GST_CLOCK_TIME_NONE;
-
-  /* Take maximum of all latency values */
-  it = gst_element_iterate_sink_pads (GST_ELEMENT_CAST (adder));
-  while (!done) {
-    GstIteratorResult ires;
-
-    ires = gst_iterator_next (it, &item);
-    switch (ires) {
-      case GST_ITERATOR_DONE:
-        done = TRUE;
-        break;
-      case GST_ITERATOR_OK:
-      {
-        GstPad *pad = g_value_get_object (&item);
-        GstQuery *peerquery;
-        GstClockTime min_cur, max_cur;
-        gboolean live_cur;
-
-        peerquery = gst_query_new_latency ();
-
-        /* Ask peer for latency */
-        res &= gst_pad_peer_query (pad, peerquery);
-
-        /* take max from all valid return values */
-        if (res) {
-          gst_query_parse_latency (peerquery, &live_cur, &min_cur, &max_cur);
-
-          if (min_cur > min)
-            min = min_cur;
-
-          if (max_cur != GST_CLOCK_TIME_NONE &&
-              ((max != GST_CLOCK_TIME_NONE && max_cur > max) ||
-                  (max == GST_CLOCK_TIME_NONE)))
-            max = max_cur;
-
-          live = live || live_cur;
-        }
-
-        gst_query_unref (peerquery);
-        g_value_reset (&item);
-        break;
-      }
-      case GST_ITERATOR_RESYNC:
-        live = FALSE;
-        min = 0;
-        max = GST_CLOCK_TIME_NONE;
-        res = TRUE;
-        gst_iterator_resync (it);
-        break;
-      default:
-        res = FALSE;
-        done = TRUE;
-        break;
-    }
-  }
-  g_value_unset (&item);
-  gst_iterator_free (it);
-
-  if (res) {
-    /* store the results */
-    GST_DEBUG_OBJECT (adder, "Calculated total latency: live %s, min %"
-        GST_TIME_FORMAT ", max %" GST_TIME_FORMAT,
-        (live ? "yes" : "no"), GST_TIME_ARGS (min), GST_TIME_ARGS (max));
-    gst_query_set_latency (query, live, min, max);
-  }
-
-  return res;
-}
-
-static gboolean
 gst_adder_src_query (GstPad * pad, GstObject * parent, GstQuery * query)
 {
   GstAdder *adder = GST_ADDER (parent);
@@ -600,9 +515,6 @@
     case GST_QUERY_DURATION:
       res = gst_adder_query_duration (adder, query);
       break;
-    case GST_QUERY_LATENCY:
-      res = gst_adder_query_latency (adder, query);
-      break;
     default:
       /* FIXME, needs a custom query handler because we have multiple
        * sinkpads */
@@ -1182,7 +1094,7 @@
   if (G_UNLIKELY (adder->info.finfo->format == GST_AUDIO_FORMAT_UNKNOWN))
     goto not_negotiated;
 
-  if (adder->flush_stop_pending == TRUE) {
+  if (adder->flush_stop_pending) {
     GST_INFO_OBJECT (adder->srcpad, "send pending flush stop event");
     if (!gst_pad_push_event (adder->srcpad, gst_event_new_flush_stop (TRUE))) {
       GST_WARNING_OBJECT (adder->srcpad, "Sending flush stop event failed");
@@ -1282,7 +1194,7 @@
     inbuf = gst_collect_pads_take_buffer (pads, collect_data, outsize);
 
     if (!GST_COLLECT_PADS_STATE_IS_SET (collect_data,
-                    GST_COLLECT_PADS_STATE_EOS))
+            GST_COLLECT_PADS_STATE_EOS))
       is_eos = FALSE;
 
     /* NULL means EOS or an empty buffer so we still need to flush in
diff --git a/gst/adder/gstadderorc-dist.c b/gst/adder/gstadderorc-dist.c
index 7d6e502..a35abd6 100644
--- a/gst/adder/gstadderorc-dist.c
+++ b/gst/adder/gstadderorc-dist.c
@@ -1121,16 +1121,11 @@
   orc_int8 var35;
 #endif
   orc_int8 var36;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_int8 var37;
-#else
   orc_int8 var37;
-#endif
   orc_int8 var38;
-  orc_int8 var39;
+  orc_union16 var39;
   orc_union16 var40;
-  orc_union16 var41;
-  orc_int8 var42;
+  orc_int8 var41;
 
   ptr0 = (orc_int8 *) d1;
 
@@ -1138,24 +1133,22 @@
   var35 = (int) 0x00000080;     /* 128 or 6.32404e-322f */
   /* 3: loadpb */
   var36 = p1;
-  /* 7: loadpb */
-  var37 = (int) 0x00000080;     /* 128 or 6.32404e-322f */
 
   for (i = 0; i < n; i++) {
     /* 0: loadb */
     var34 = ptr0[i];
     /* 2: xorb */
-    var39 = var34 ^ var35;
+    var38 = var34 ^ var35;
     /* 4: mulsbw */
-    var40.i = var39 * var36;
+    var39.i = var38 * var36;
     /* 5: shrsw */
-    var41.i = var40.i >> 3;
+    var40.i = var39.i >> 3;
     /* 6: convssswb */
-    var42 = ORC_CLAMP_SB (var41.i);
-    /* 8: xorb */
-    var38 = var42 ^ var37;
-    /* 9: storeb */
-    ptr0[i] = var38;
+    var41 = ORC_CLAMP_SB (var40.i);
+    /* 7: xorb */
+    var37 = var41 ^ var35;
+    /* 8: storeb */
+    ptr0[i] = var37;
   }
 
 }
@@ -1174,16 +1167,11 @@
   orc_int8 var35;
 #endif
   orc_int8 var36;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_int8 var37;
-#else
   orc_int8 var37;
-#endif
   orc_int8 var38;
-  orc_int8 var39;
+  orc_union16 var39;
   orc_union16 var40;
-  orc_union16 var41;
-  orc_int8 var42;
+  orc_int8 var41;
 
   ptr0 = (orc_int8 *) ex->arrays[0];
 
@@ -1191,24 +1179,22 @@
   var35 = (int) 0x00000080;     /* 128 or 6.32404e-322f */
   /* 3: loadpb */
   var36 = ex->params[24];
-  /* 7: loadpb */
-  var37 = (int) 0x00000080;     /* 128 or 6.32404e-322f */
 
   for (i = 0; i < n; i++) {
     /* 0: loadb */
     var34 = ptr0[i];
     /* 2: xorb */
-    var39 = var34 ^ var35;
+    var38 = var34 ^ var35;
     /* 4: mulsbw */
-    var40.i = var39 * var36;
+    var39.i = var38 * var36;
     /* 5: shrsw */
-    var41.i = var40.i >> 3;
+    var40.i = var39.i >> 3;
     /* 6: convssswb */
-    var42 = ORC_CLAMP_SB (var41.i);
-    /* 8: xorb */
-    var38 = var42 ^ var37;
-    /* 9: storeb */
-    ptr0[i] = var38;
+    var41 = ORC_CLAMP_SB (var40.i);
+    /* 7: xorb */
+    var37 = var41 ^ var35;
+    /* 8: storeb */
+    ptr0[i] = var37;
   }
 
 }
@@ -1230,7 +1216,7 @@
       static const orc_uint8 bc[] = {
         1, 9, 19, 97, 100, 100, 101, 114, 95, 111, 114, 99, 95, 118, 111, 108,
         117, 109, 101, 95, 117, 56, 11, 1, 1, 14, 1, 128, 0, 0, 0, 14,
-        4, 3, 0, 0, 0, 16, 1, 20, 2, 20, 1, 68, 33, 0, 16, 174,
+        2, 3, 0, 0, 0, 16, 1, 20, 2, 20, 1, 68, 33, 0, 16, 174,
         32, 33, 24, 94, 32, 32, 17, 159, 33, 32, 68, 0, 33, 16, 2, 0,
 
       };
@@ -1242,7 +1228,7 @@
       orc_program_set_backup_function (p, _backup_adder_orc_volume_u8);
       orc_program_add_destination (p, 1, "d1");
       orc_program_add_constant (p, 1, 0x00000080, "c1");
-      orc_program_add_constant (p, 4, 0x00000003, "c2");
+      orc_program_add_constant (p, 2, 0x00000003, "c2");
       orc_program_add_parameter (p, 1, "p1");
       orc_program_add_temporary (p, 2, "t1");
       orc_program_add_temporary (p, 1, "t2");
@@ -1361,7 +1347,7 @@
 #if 1
       static const orc_uint8 bc[] = {
         1, 9, 19, 97, 100, 100, 101, 114, 95, 111, 114, 99, 95, 118, 111, 108,
-        117, 109, 101, 95, 115, 56, 11, 1, 1, 14, 4, 3, 0, 0, 0, 16,
+        117, 109, 101, 95, 115, 56, 11, 1, 1, 14, 2, 3, 0, 0, 0, 16,
         1, 20, 2, 174, 32, 0, 24, 94, 32, 32, 16, 159, 0, 32, 2, 0,
 
       };
@@ -1372,7 +1358,7 @@
       orc_program_set_name (p, "adder_orc_volume_s8");
       orc_program_set_backup_function (p, _backup_adder_orc_volume_s8);
       orc_program_add_destination (p, 1, "d1");
-      orc_program_add_constant (p, 4, 0x00000003, "c1");
+      orc_program_add_constant (p, 2, 0x00000003, "c1");
       orc_program_add_parameter (p, 1, "p1");
       orc_program_add_temporary (p, 2, "t1");
 
@@ -1418,16 +1404,11 @@
   orc_union16 var35;
 #endif
   orc_union16 var36;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_union16 var37;
-#else
   orc_union16 var37;
-#endif
   orc_union16 var38;
-  orc_union16 var39;
+  orc_union32 var39;
   orc_union32 var40;
-  orc_union32 var41;
-  orc_union16 var42;
+  orc_union16 var41;
 
   ptr0 = (orc_union16 *) d1;
 
@@ -1435,24 +1416,22 @@
   var35.i = (int) 0x00008000;   /* 32768 or 1.61895e-319f */
   /* 3: loadpw */
   var36.i = p1;
-  /* 7: loadpw */
-  var37.i = (int) 0x00008000;   /* 32768 or 1.61895e-319f */
 
   for (i = 0; i < n; i++) {
     /* 0: loadw */
     var34 = ptr0[i];
     /* 2: xorw */
-    var39.i = var34.i ^ var35.i;
+    var38.i = var34.i ^ var35.i;
     /* 4: mulswl */
-    var40.i = var39.i * var36.i;
+    var39.i = var38.i * var36.i;
     /* 5: shrsl */
-    var41.i = var40.i >> 11;
+    var40.i = var39.i >> 11;
     /* 6: convssslw */
-    var42.i = ORC_CLAMP_SW (var41.i);
-    /* 8: xorw */
-    var38.i = var42.i ^ var37.i;
-    /* 9: storew */
-    ptr0[i] = var38;
+    var41.i = ORC_CLAMP_SW (var40.i);
+    /* 7: xorw */
+    var37.i = var41.i ^ var35.i;
+    /* 8: storew */
+    ptr0[i] = var37;
   }
 
 }
@@ -1471,16 +1450,11 @@
   orc_union16 var35;
 #endif
   orc_union16 var36;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_union16 var37;
-#else
   orc_union16 var37;
-#endif
   orc_union16 var38;
-  orc_union16 var39;
+  orc_union32 var39;
   orc_union32 var40;
-  orc_union32 var41;
-  orc_union16 var42;
+  orc_union16 var41;
 
   ptr0 = (orc_union16 *) ex->arrays[0];
 
@@ -1488,24 +1462,22 @@
   var35.i = (int) 0x00008000;   /* 32768 or 1.61895e-319f */
   /* 3: loadpw */
   var36.i = ex->params[24];
-  /* 7: loadpw */
-  var37.i = (int) 0x00008000;   /* 32768 or 1.61895e-319f */
 
   for (i = 0; i < n; i++) {
     /* 0: loadw */
     var34 = ptr0[i];
     /* 2: xorw */
-    var39.i = var34.i ^ var35.i;
+    var38.i = var34.i ^ var35.i;
     /* 4: mulswl */
-    var40.i = var39.i * var36.i;
+    var39.i = var38.i * var36.i;
     /* 5: shrsl */
-    var41.i = var40.i >> 11;
+    var40.i = var39.i >> 11;
     /* 6: convssslw */
-    var42.i = ORC_CLAMP_SW (var41.i);
-    /* 8: xorw */
-    var38.i = var42.i ^ var37.i;
-    /* 9: storew */
-    ptr0[i] = var38;
+    var41.i = ORC_CLAMP_SW (var40.i);
+    /* 7: xorw */
+    var37.i = var41.i ^ var35.i;
+    /* 8: storew */
+    ptr0[i] = var37;
   }
 
 }
@@ -1715,16 +1687,11 @@
   orc_union32 var35;
 #endif
   orc_union32 var36;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_union32 var37;
-#else
   orc_union32 var37;
-#endif
   orc_union32 var38;
-  orc_union32 var39;
+  orc_union64 var39;
   orc_union64 var40;
-  orc_union64 var41;
-  orc_union32 var42;
+  orc_union32 var41;
 
   ptr0 = (orc_union32 *) d1;
 
@@ -1732,24 +1699,22 @@
   var35.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
   /* 3: loadpl */
   var36.i = p1;
-  /* 7: loadpl */
-  var37.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
 
   for (i = 0; i < n; i++) {
     /* 0: loadl */
     var34 = ptr0[i];
     /* 2: xorl */
-    var39.i = var34.i ^ var35.i;
+    var38.i = var34.i ^ var35.i;
     /* 4: mulslq */
-    var40.i = ((orc_int64) var39.i) * ((orc_int64) var36.i);
+    var39.i = ((orc_int64) var38.i) * ((orc_int64) var36.i);
     /* 5: shrsq */
-    var41.i = var40.i >> 27;
+    var40.i = var39.i >> 27;
     /* 6: convsssql */
-    var42.i = ORC_CLAMP_SL (var41.i);
-    /* 8: xorl */
-    var38.i = var42.i ^ var37.i;
-    /* 9: storel */
-    ptr0[i] = var38;
+    var41.i = ORC_CLAMP_SL (var40.i);
+    /* 7: xorl */
+    var37.i = var41.i ^ var35.i;
+    /* 8: storel */
+    ptr0[i] = var37;
   }
 
 }
@@ -1768,16 +1733,11 @@
   orc_union32 var35;
 #endif
   orc_union32 var36;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_union32 var37;
-#else
   orc_union32 var37;
-#endif
   orc_union32 var38;
-  orc_union32 var39;
+  orc_union64 var39;
   orc_union64 var40;
-  orc_union64 var41;
-  orc_union32 var42;
+  orc_union32 var41;
 
   ptr0 = (orc_union32 *) ex->arrays[0];
 
@@ -1785,24 +1745,22 @@
   var35.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
   /* 3: loadpl */
   var36.i = ex->params[24];
-  /* 7: loadpl */
-  var37.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
 
   for (i = 0; i < n; i++) {
     /* 0: loadl */
     var34 = ptr0[i];
     /* 2: xorl */
-    var39.i = var34.i ^ var35.i;
+    var38.i = var34.i ^ var35.i;
     /* 4: mulslq */
-    var40.i = ((orc_int64) var39.i) * ((orc_int64) var36.i);
+    var39.i = ((orc_int64) var38.i) * ((orc_int64) var36.i);
     /* 5: shrsq */
-    var41.i = var40.i >> 27;
+    var40.i = var39.i >> 27;
     /* 6: convsssql */
-    var42.i = ORC_CLAMP_SL (var41.i);
-    /* 8: xorl */
-    var38.i = var42.i ^ var37.i;
-    /* 9: storel */
-    ptr0[i] = var38;
+    var41.i = ORC_CLAMP_SL (var40.i);
+    /* 7: xorl */
+    var37.i = var41.i ^ var35.i;
+    /* 8: storel */
+    ptr0[i] = var37;
   }
 
 }
@@ -1824,9 +1782,9 @@
       static const orc_uint8 bc[] = {
         1, 9, 20, 97, 100, 100, 101, 114, 95, 111, 114, 99, 95, 118, 111, 108,
         117, 109, 101, 95, 117, 51, 50, 11, 4, 4, 14, 4, 0, 0, 0, 128,
-        14, 4, 27, 0, 0, 0, 16, 4, 20, 8, 20, 4, 132, 33, 0, 16,
-        178, 32, 33, 24, 147, 32, 32, 17, 170, 33, 32, 132, 0, 33, 16, 2,
-        0,
+        15, 8, 27, 0, 0, 0, 0, 0, 0, 0, 16, 4, 20, 8, 20, 4,
+        132, 33, 0, 16, 178, 32, 33, 24, 147, 32, 32, 17, 170, 33, 32, 132,
+        0, 33, 16, 2, 0,
       };
       p = orc_program_new_from_static_bytecode (bc);
       orc_program_set_backup_function (p, _backup_adder_orc_volume_u32);
@@ -1836,7 +1794,7 @@
       orc_program_set_backup_function (p, _backup_adder_orc_volume_u32);
       orc_program_add_destination (p, 4, "d1");
       orc_program_add_constant (p, 4, 0x80000000, "c1");
-      orc_program_add_constant (p, 4, 0x0000001b, "c2");
+      orc_program_add_constant_int64 (p, 8, 0x000000000000001bULL, "c2");
       orc_program_add_parameter (p, 4, "p1");
       orc_program_add_temporary (p, 8, "t1");
       orc_program_add_temporary (p, 4, "t2");
@@ -1955,9 +1913,9 @@
 #if 1
       static const orc_uint8 bc[] = {
         1, 9, 20, 97, 100, 100, 101, 114, 95, 111, 114, 99, 95, 118, 111, 108,
-        117, 109, 101, 95, 115, 51, 50, 11, 4, 4, 14, 4, 27, 0, 0, 0,
-        16, 4, 20, 8, 178, 32, 0, 24, 147, 32, 32, 16, 170, 0, 32, 2,
-        0,
+        117, 109, 101, 95, 115, 51, 50, 11, 4, 4, 15, 8, 27, 0, 0, 0,
+        0, 0, 0, 0, 16, 4, 20, 8, 178, 32, 0, 24, 147, 32, 32, 16,
+        170, 0, 32, 2, 0,
       };
       p = orc_program_new_from_static_bytecode (bc);
       orc_program_set_backup_function (p, _backup_adder_orc_volume_s32);
@@ -1966,7 +1924,7 @@
       orc_program_set_name (p, "adder_orc_volume_s32");
       orc_program_set_backup_function (p, _backup_adder_orc_volume_s32);
       orc_program_add_destination (p, 4, "d1");
-      orc_program_add_constant (p, 4, 0x0000001b, "c1");
+      orc_program_add_constant_int64 (p, 8, 0x000000000000001bULL, "c1");
       orc_program_add_parameter (p, 4, "p1");
       orc_program_add_temporary (p, 8, "t1");
 
@@ -2243,8 +2201,8 @@
   {
     orc_union64 tmp;
     tmp.f = p1;
-    ex->params[ORC_VAR_P1] = tmp.x2[0];
-    ex->params[ORC_VAR_T1] = tmp.x2[1];
+    ex->params[ORC_VAR_P1] = ((orc_uint64) tmp.i) & 0xffffffff;
+    ex->params[ORC_VAR_T1] = ((orc_uint64) tmp.i) >> 32;
   }
 
   func = c->exec;
@@ -2269,18 +2227,13 @@
   orc_int8 var35;
 #endif
   orc_int8 var36;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_int8 var37;
-#else
   orc_int8 var37;
-#endif
   orc_int8 var38;
   orc_int8 var39;
-  orc_int8 var40;
+  orc_union16 var40;
   orc_union16 var41;
-  orc_union16 var42;
+  orc_int8 var42;
   orc_int8 var43;
-  orc_int8 var44;
 
   ptr0 = (orc_int8 *) d1;
   ptr4 = (orc_int8 *) s1;
@@ -2289,28 +2242,26 @@
   var35 = (int) 0x00000080;     /* 128 or 6.32404e-322f */
   /* 3: loadpb */
   var36 = p1;
-  /* 7: loadpb */
-  var37 = (int) 0x00000080;     /* 128 or 6.32404e-322f */
 
   for (i = 0; i < n; i++) {
     /* 0: loadb */
     var34 = ptr4[i];
     /* 2: xorb */
-    var40 = var34 ^ var35;
+    var39 = var34 ^ var35;
     /* 4: mulsbw */
-    var41.i = var40 * var36;
+    var40.i = var39 * var36;
     /* 5: shrsw */
-    var42.i = var41.i >> 3;
+    var41.i = var40.i >> 3;
     /* 6: convssswb */
-    var43 = ORC_CLAMP_SB (var42.i);
-    /* 8: xorb */
-    var44 = var43 ^ var37;
-    /* 9: loadb */
-    var38 = ptr0[i];
-    /* 10: addusb */
-    var39 = ORC_CLAMP_UB ((orc_uint8) var38 + (orc_uint8) var44);
-    /* 11: storeb */
-    ptr0[i] = var39;
+    var42 = ORC_CLAMP_SB (var41.i);
+    /* 7: xorb */
+    var43 = var42 ^ var35;
+    /* 8: loadb */
+    var37 = ptr0[i];
+    /* 9: addusb */
+    var38 = ORC_CLAMP_UB ((orc_uint8) var37 + (orc_uint8) var43);
+    /* 10: storeb */
+    ptr0[i] = var38;
   }
 
 }
@@ -2330,18 +2281,13 @@
   orc_int8 var35;
 #endif
   orc_int8 var36;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_int8 var37;
-#else
   orc_int8 var37;
-#endif
   orc_int8 var38;
   orc_int8 var39;
-  orc_int8 var40;
+  orc_union16 var40;
   orc_union16 var41;
-  orc_union16 var42;
+  orc_int8 var42;
   orc_int8 var43;
-  orc_int8 var44;
 
   ptr0 = (orc_int8 *) ex->arrays[0];
   ptr4 = (orc_int8 *) ex->arrays[4];
@@ -2350,28 +2296,26 @@
   var35 = (int) 0x00000080;     /* 128 or 6.32404e-322f */
   /* 3: loadpb */
   var36 = ex->params[24];
-  /* 7: loadpb */
-  var37 = (int) 0x00000080;     /* 128 or 6.32404e-322f */
 
   for (i = 0; i < n; i++) {
     /* 0: loadb */
     var34 = ptr4[i];
     /* 2: xorb */
-    var40 = var34 ^ var35;
+    var39 = var34 ^ var35;
     /* 4: mulsbw */
-    var41.i = var40 * var36;
+    var40.i = var39 * var36;
     /* 5: shrsw */
-    var42.i = var41.i >> 3;
+    var41.i = var40.i >> 3;
     /* 6: convssswb */
-    var43 = ORC_CLAMP_SB (var42.i);
-    /* 8: xorb */
-    var44 = var43 ^ var37;
-    /* 9: loadb */
-    var38 = ptr0[i];
-    /* 10: addusb */
-    var39 = ORC_CLAMP_UB ((orc_uint8) var38 + (orc_uint8) var44);
-    /* 11: storeb */
-    ptr0[i] = var39;
+    var42 = ORC_CLAMP_SB (var41.i);
+    /* 7: xorb */
+    var43 = var42 ^ var35;
+    /* 8: loadb */
+    var37 = ptr0[i];
+    /* 9: addusb */
+    var38 = ORC_CLAMP_UB ((orc_uint8) var37 + (orc_uint8) var43);
+    /* 10: storeb */
+    ptr0[i] = var38;
   }
 
 }
@@ -2394,7 +2338,7 @@
       static const orc_uint8 bc[] = {
         1, 9, 23, 97, 100, 100, 101, 114, 95, 111, 114, 99, 95, 97, 100, 100,
         95, 118, 111, 108, 117, 109, 101, 95, 117, 56, 11, 1, 1, 12, 1, 1,
-        14, 1, 128, 0, 0, 0, 14, 4, 3, 0, 0, 0, 16, 1, 20, 2,
+        14, 1, 128, 0, 0, 0, 14, 2, 3, 0, 0, 0, 16, 1, 20, 2,
         20, 1, 68, 33, 4, 16, 174, 32, 33, 24, 94, 32, 32, 17, 159, 33,
         32, 68, 33, 33, 16, 35, 0, 0, 33, 2, 0,
       };
@@ -2407,7 +2351,7 @@
       orc_program_add_destination (p, 1, "d1");
       orc_program_add_source (p, 1, "s1");
       orc_program_add_constant (p, 1, 0x00000080, "c1");
-      orc_program_add_constant (p, 4, 0x00000003, "c2");
+      orc_program_add_constant (p, 2, 0x00000003, "c2");
       orc_program_add_parameter (p, 1, "p1");
       orc_program_add_temporary (p, 2, "t1");
       orc_program_add_temporary (p, 1, "t2");
@@ -2548,7 +2492,7 @@
       static const orc_uint8 bc[] = {
         1, 9, 23, 97, 100, 100, 101, 114, 95, 111, 114, 99, 95, 97, 100, 100,
         95, 118, 111, 108, 117, 109, 101, 95, 115, 56, 11, 1, 1, 12, 1, 1,
-        14, 4, 3, 0, 0, 0, 16, 1, 20, 2, 20, 1, 174, 32, 4, 24,
+        14, 2, 3, 0, 0, 0, 16, 1, 20, 2, 20, 1, 174, 32, 4, 24,
         94, 32, 32, 16, 159, 33, 32, 34, 0, 0, 33, 2, 0,
       };
       p = orc_program_new_from_static_bytecode (bc);
@@ -2559,7 +2503,7 @@
       orc_program_set_backup_function (p, _backup_adder_orc_add_volume_s8);
       orc_program_add_destination (p, 1, "d1");
       orc_program_add_source (p, 1, "s1");
-      orc_program_add_constant (p, 4, 0x00000003, "c1");
+      orc_program_add_constant (p, 2, 0x00000003, "c1");
       orc_program_add_parameter (p, 1, "p1");
       orc_program_add_temporary (p, 2, "t1");
       orc_program_add_temporary (p, 1, "t2");
@@ -2611,18 +2555,13 @@
   orc_union16 var35;
 #endif
   orc_union16 var36;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_union16 var37;
-#else
   orc_union16 var37;
-#endif
   orc_union16 var38;
   orc_union16 var39;
-  orc_union16 var40;
+  orc_union32 var40;
   orc_union32 var41;
-  orc_union32 var42;
+  orc_union16 var42;
   orc_union16 var43;
-  orc_union16 var44;
 
   ptr0 = (orc_union16 *) d1;
   ptr4 = (orc_union16 *) s1;
@@ -2631,28 +2570,26 @@
   var35.i = (int) 0x00008000;   /* 32768 or 1.61895e-319f */
   /* 3: loadpw */
   var36.i = p1;
-  /* 7: loadpw */
-  var37.i = (int) 0x00008000;   /* 32768 or 1.61895e-319f */
 
   for (i = 0; i < n; i++) {
     /* 0: loadw */
     var34 = ptr4[i];
     /* 2: xorw */
-    var40.i = var34.i ^ var35.i;
+    var39.i = var34.i ^ var35.i;
     /* 4: mulswl */
-    var41.i = var40.i * var36.i;
+    var40.i = var39.i * var36.i;
     /* 5: shrsl */
-    var42.i = var41.i >> 11;
+    var41.i = var40.i >> 11;
     /* 6: convssslw */
-    var43.i = ORC_CLAMP_SW (var42.i);
-    /* 8: xorw */
-    var44.i = var43.i ^ var37.i;
-    /* 9: loadw */
-    var38 = ptr0[i];
-    /* 10: addusw */
-    var39.i = ORC_CLAMP_UW ((orc_uint16) var38.i + (orc_uint16) var44.i);
-    /* 11: storew */
-    ptr0[i] = var39;
+    var42.i = ORC_CLAMP_SW (var41.i);
+    /* 7: xorw */
+    var43.i = var42.i ^ var35.i;
+    /* 8: loadw */
+    var37 = ptr0[i];
+    /* 9: addusw */
+    var38.i = ORC_CLAMP_UW ((orc_uint16) var37.i + (orc_uint16) var43.i);
+    /* 10: storew */
+    ptr0[i] = var38;
   }
 
 }
@@ -2672,18 +2609,13 @@
   orc_union16 var35;
 #endif
   orc_union16 var36;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_union16 var37;
-#else
   orc_union16 var37;
-#endif
   orc_union16 var38;
   orc_union16 var39;
-  orc_union16 var40;
+  orc_union32 var40;
   orc_union32 var41;
-  orc_union32 var42;
+  orc_union16 var42;
   orc_union16 var43;
-  orc_union16 var44;
 
   ptr0 = (orc_union16 *) ex->arrays[0];
   ptr4 = (orc_union16 *) ex->arrays[4];
@@ -2692,28 +2624,26 @@
   var35.i = (int) 0x00008000;   /* 32768 or 1.61895e-319f */
   /* 3: loadpw */
   var36.i = ex->params[24];
-  /* 7: loadpw */
-  var37.i = (int) 0x00008000;   /* 32768 or 1.61895e-319f */
 
   for (i = 0; i < n; i++) {
     /* 0: loadw */
     var34 = ptr4[i];
     /* 2: xorw */
-    var40.i = var34.i ^ var35.i;
+    var39.i = var34.i ^ var35.i;
     /* 4: mulswl */
-    var41.i = var40.i * var36.i;
+    var40.i = var39.i * var36.i;
     /* 5: shrsl */
-    var42.i = var41.i >> 11;
+    var41.i = var40.i >> 11;
     /* 6: convssslw */
-    var43.i = ORC_CLAMP_SW (var42.i);
-    /* 8: xorw */
-    var44.i = var43.i ^ var37.i;
-    /* 9: loadw */
-    var38 = ptr0[i];
-    /* 10: addusw */
-    var39.i = ORC_CLAMP_UW ((orc_uint16) var38.i + (orc_uint16) var44.i);
-    /* 11: storew */
-    ptr0[i] = var39;
+    var42.i = ORC_CLAMP_SW (var41.i);
+    /* 7: xorw */
+    var43.i = var42.i ^ var35.i;
+    /* 8: loadw */
+    var37 = ptr0[i];
+    /* 9: addusw */
+    var38.i = ORC_CLAMP_UW ((orc_uint16) var37.i + (orc_uint16) var43.i);
+    /* 10: storew */
+    ptr0[i] = var38;
   }
 
 }
@@ -2953,18 +2883,13 @@
   orc_union32 var35;
 #endif
   orc_union32 var36;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_union32 var37;
-#else
   orc_union32 var37;
-#endif
   orc_union32 var38;
   orc_union32 var39;
-  orc_union32 var40;
+  orc_union64 var40;
   orc_union64 var41;
-  orc_union64 var42;
+  orc_union32 var42;
   orc_union32 var43;
-  orc_union32 var44;
 
   ptr0 = (orc_union32 *) d1;
   ptr4 = (orc_union32 *) s1;
@@ -2973,30 +2898,28 @@
   var35.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
   /* 3: loadpl */
   var36.i = p1;
-  /* 7: loadpl */
-  var37.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
 
   for (i = 0; i < n; i++) {
     /* 0: loadl */
     var34 = ptr4[i];
     /* 2: xorl */
-    var40.i = var34.i ^ var35.i;
+    var39.i = var34.i ^ var35.i;
     /* 4: mulslq */
-    var41.i = ((orc_int64) var40.i) * ((orc_int64) var36.i);
+    var40.i = ((orc_int64) var39.i) * ((orc_int64) var36.i);
     /* 5: shrsq */
-    var42.i = var41.i >> 27;
+    var41.i = var40.i >> 27;
     /* 6: convsssql */
-    var43.i = ORC_CLAMP_SL (var42.i);
-    /* 8: xorl */
-    var44.i = var43.i ^ var37.i;
-    /* 9: loadl */
-    var38 = ptr0[i];
-    /* 10: addusl */
-    var39.i =
-        ORC_CLAMP_UL ((orc_int64) (orc_uint32) var38.i +
-        (orc_int64) (orc_uint32) var44.i);
-    /* 11: storel */
-    ptr0[i] = var39;
+    var42.i = ORC_CLAMP_SL (var41.i);
+    /* 7: xorl */
+    var43.i = var42.i ^ var35.i;
+    /* 8: loadl */
+    var37 = ptr0[i];
+    /* 9: addusl */
+    var38.i =
+        ORC_CLAMP_UL ((orc_int64) (orc_uint32) var37.i +
+        (orc_int64) (orc_uint32) var43.i);
+    /* 10: storel */
+    ptr0[i] = var38;
   }
 
 }
@@ -3016,18 +2939,13 @@
   orc_union32 var35;
 #endif
   orc_union32 var36;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_union32 var37;
-#else
   orc_union32 var37;
-#endif
   orc_union32 var38;
   orc_union32 var39;
-  orc_union32 var40;
+  orc_union64 var40;
   orc_union64 var41;
-  orc_union64 var42;
+  orc_union32 var42;
   orc_union32 var43;
-  orc_union32 var44;
 
   ptr0 = (orc_union32 *) ex->arrays[0];
   ptr4 = (orc_union32 *) ex->arrays[4];
@@ -3036,30 +2954,28 @@
   var35.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
   /* 3: loadpl */
   var36.i = ex->params[24];
-  /* 7: loadpl */
-  var37.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
 
   for (i = 0; i < n; i++) {
     /* 0: loadl */
     var34 = ptr4[i];
     /* 2: xorl */
-    var40.i = var34.i ^ var35.i;
+    var39.i = var34.i ^ var35.i;
     /* 4: mulslq */
-    var41.i = ((orc_int64) var40.i) * ((orc_int64) var36.i);
+    var40.i = ((orc_int64) var39.i) * ((orc_int64) var36.i);
     /* 5: shrsq */
-    var42.i = var41.i >> 27;
+    var41.i = var40.i >> 27;
     /* 6: convsssql */
-    var43.i = ORC_CLAMP_SL (var42.i);
-    /* 8: xorl */
-    var44.i = var43.i ^ var37.i;
-    /* 9: loadl */
-    var38 = ptr0[i];
-    /* 10: addusl */
-    var39.i =
-        ORC_CLAMP_UL ((orc_int64) (orc_uint32) var38.i +
-        (orc_int64) (orc_uint32) var44.i);
-    /* 11: storel */
-    ptr0[i] = var39;
+    var42.i = ORC_CLAMP_SL (var41.i);
+    /* 7: xorl */
+    var43.i = var42.i ^ var35.i;
+    /* 8: loadl */
+    var37 = ptr0[i];
+    /* 9: addusl */
+    var38.i =
+        ORC_CLAMP_UL ((orc_int64) (orc_uint32) var37.i +
+        (orc_int64) (orc_uint32) var43.i);
+    /* 10: storel */
+    ptr0[i] = var38;
   }
 
 }
@@ -3082,9 +2998,10 @@
       static const orc_uint8 bc[] = {
         1, 9, 24, 97, 100, 100, 101, 114, 95, 111, 114, 99, 95, 97, 100, 100,
         95, 118, 111, 108, 117, 109, 101, 95, 117, 51, 50, 11, 4, 4, 12, 4,
-        4, 14, 4, 0, 0, 0, 128, 14, 4, 27, 0, 0, 0, 16, 4, 20,
-        8, 20, 4, 132, 33, 4, 16, 178, 32, 33, 24, 147, 32, 32, 17, 170,
-        33, 32, 132, 33, 33, 16, 105, 0, 0, 33, 2, 0,
+        4, 14, 4, 0, 0, 0, 128, 15, 8, 27, 0, 0, 0, 0, 0, 0,
+        0, 16, 4, 20, 8, 20, 4, 132, 33, 4, 16, 178, 32, 33, 24, 147,
+        32, 32, 17, 170, 33, 32, 132, 33, 33, 16, 105, 0, 0, 33, 2, 0,
+
       };
       p = orc_program_new_from_static_bytecode (bc);
       orc_program_set_backup_function (p, _backup_adder_orc_add_volume_u32);
@@ -3095,7 +3012,7 @@
       orc_program_add_destination (p, 4, "d1");
       orc_program_add_source (p, 4, "s1");
       orc_program_add_constant (p, 4, 0x80000000, "c1");
-      orc_program_add_constant (p, 4, 0x0000001b, "c2");
+      orc_program_add_constant_int64 (p, 8, 0x000000000000001bULL, "c2");
       orc_program_add_parameter (p, 4, "p1");
       orc_program_add_temporary (p, 8, "t1");
       orc_program_add_temporary (p, 4, "t2");
@@ -3236,8 +3153,9 @@
       static const orc_uint8 bc[] = {
         1, 9, 24, 97, 100, 100, 101, 114, 95, 111, 114, 99, 95, 97, 100, 100,
         95, 118, 111, 108, 117, 109, 101, 95, 115, 51, 50, 11, 4, 4, 12, 4,
-        4, 14, 4, 27, 0, 0, 0, 16, 4, 20, 8, 20, 4, 178, 32, 4,
-        24, 147, 32, 32, 16, 170, 33, 32, 104, 0, 0, 33, 2, 0,
+        4, 15, 8, 27, 0, 0, 0, 0, 0, 0, 0, 16, 4, 20, 8, 20,
+        4, 178, 32, 4, 24, 147, 32, 32, 16, 170, 33, 32, 104, 0, 0, 33,
+        2, 0,
       };
       p = orc_program_new_from_static_bytecode (bc);
       orc_program_set_backup_function (p, _backup_adder_orc_add_volume_s32);
@@ -3247,7 +3165,7 @@
       orc_program_set_backup_function (p, _backup_adder_orc_add_volume_s32);
       orc_program_add_destination (p, 4, "d1");
       orc_program_add_source (p, 4, "s1");
-      orc_program_add_constant (p, 4, 0x0000001b, "c1");
+      orc_program_add_constant_int64 (p, 8, 0x000000000000001bULL, "c1");
       orc_program_add_parameter (p, 4, "p1");
       orc_program_add_temporary (p, 8, "t1");
       orc_program_add_temporary (p, 4, "t2");
@@ -3606,8 +3524,8 @@
   {
     orc_union64 tmp;
     tmp.f = p1;
-    ex->params[ORC_VAR_P1] = tmp.x2[0];
-    ex->params[ORC_VAR_T1] = tmp.x2[1];
+    ex->params[ORC_VAR_P1] = ((orc_uint64) tmp.i) & 0xffffffff;
+    ex->params[ORC_VAR_T1] = ((orc_uint64) tmp.i) >> 32;
   }
 
   func = c->exec;
diff --git a/gst/app/Makefile.in b/gst/app/Makefile.in
index cbb2062..15856c6 100644
--- a/gst/app/Makefile.in
+++ b/gst/app/Makefile.in
@@ -102,7 +102,6 @@
 	$(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-x11.m4 \
 	$(top_srcdir)/common/m4/gst.m4 \
 	$(top_srcdir)/common/m4/gtk-doc.m4 \
 	$(top_srcdir)/common/m4/introspection.m4 \
@@ -285,6 +284,8 @@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_2_0_CFLAGS = @GIO_UNIX_2_0_CFLAGS@
+GIO_UNIX_2_0_LIBS = @GIO_UNIX_2_0_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
@@ -314,6 +315,8 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
+GST_NET_CFLAGS = @GST_NET_CFLAGS@
+GST_NET_LIBS = @GST_NET_LIBS@
 GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
 GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
@@ -341,7 +344,6 @@
 GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
 GTK_X11_LIBS = @GTK_X11_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
-HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -445,13 +447,12 @@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-XMKMF = @XMKMF@
+XSHM_CFLAGS = @XSHM_CFLAGS@
 XSHM_LIBS = @XSHM_LIBS@
+XVIDEO_CFLAGS = @XVIDEO_CFLAGS@
 XVIDEO_LIBS = @XVIDEO_LIBS@
 X_CFLAGS = @X_CFLAGS@
-X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
-X_PRE_LIBS = @X_PRE_LIBS@
 ZLIB_CFLAGS = @ZLIB_CFLAGS@
 ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
diff --git a/gst/audioconvert/Makefile.in b/gst/audioconvert/Makefile.in
index 1f23811..108d0a2 100644
--- a/gst/audioconvert/Makefile.in
+++ b/gst/audioconvert/Makefile.in
@@ -125,7 +125,6 @@
 	$(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-x11.m4 \
 	$(top_srcdir)/common/m4/gst.m4 \
 	$(top_srcdir)/common/m4/gtk-doc.m4 \
 	$(top_srcdir)/common/m4/introspection.m4 \
@@ -319,6 +318,8 @@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_2_0_CFLAGS = @GIO_UNIX_2_0_CFLAGS@
+GIO_UNIX_2_0_LIBS = @GIO_UNIX_2_0_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
@@ -348,6 +349,8 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
+GST_NET_CFLAGS = @GST_NET_CFLAGS@
+GST_NET_LIBS = @GST_NET_LIBS@
 GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
 GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
@@ -375,7 +378,6 @@
 GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
 GTK_X11_LIBS = @GTK_X11_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
-HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -479,13 +481,12 @@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-XMKMF = @XMKMF@
+XSHM_CFLAGS = @XSHM_CFLAGS@
 XSHM_LIBS = @XSHM_LIBS@
+XVIDEO_CFLAGS = @XVIDEO_CFLAGS@
 XVIDEO_LIBS = @XVIDEO_LIBS@
 X_CFLAGS = @X_CFLAGS@
-X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
-X_PRE_LIBS = @X_PRE_LIBS@
 ZLIB_CFLAGS = @ZLIB_CFLAGS@
 ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
diff --git a/gst/audioconvert/audioconvert.c b/gst/audioconvert/audioconvert.c
index a5a06b9..f1a30fd 100644
--- a/gst/audioconvert/audioconvert.c
+++ b/gst/audioconvert/audioconvert.c
@@ -469,7 +469,7 @@
 #define audio_convert_pack_double_hq_le MAKE_UNPACK_FUNC_NAME (double_hq_le)
 #define audio_convert_pack_double_hq_be MAKE_UNPACK_FUNC_NAME (double_hq_be)
 
-static AudioConvertUnpack unpack_funcs[] = {
+static const AudioConvertUnpack unpack_funcs[] = {
   (AudioConvertUnpack) MAKE_UNPACK_FUNC_NAME (u8),
   (AudioConvertUnpack) MAKE_UNPACK_FUNC_NAME (s8),
   (AudioConvertUnpack) MAKE_UNPACK_FUNC_NAME (u8),
@@ -512,7 +512,7 @@
   (AudioConvertUnpack) MAKE_UNPACK_FUNC_NAME (s32_be_float),
 };
 
-static AudioConvertPack pack_funcs[] = {
+static const AudioConvertPack pack_funcs[] = {
   (AudioConvertPack) MAKE_PACK_FUNC_NAME (u8),
   (AudioConvertPack) MAKE_PACK_FUNC_NAME (s8),
   (AudioConvertPack) MAKE_PACK_FUNC_NAME (u8),
diff --git a/gst/audioconvert/gstaudioconvertorc-dist.c b/gst/audioconvert/gstaudioconvertorc-dist.c
index ee3a539..a694cfb 100644
--- a/gst/audioconvert/gstaudioconvertorc-dist.c
+++ b/gst/audioconvert/gstaudioconvertorc-dist.c
@@ -283,7 +283,7 @@
     /* 2: convuwl */
     var38.i = (orc_uint16) var37.i;
     /* 3: shll */
-    var39.i = var38.i << p1;
+    var39.i = ((orc_uint32) var38.i) << p1;
     /* 5: xorl */
     var36.i = var39.i ^ var35.i;
     /* 6: storel */
@@ -325,7 +325,7 @@
     /* 2: convuwl */
     var38.i = (orc_uint16) var37.i;
     /* 3: shll */
-    var39.i = var38.i << ex->params[24];
+    var39.i = ((orc_uint32) var38.i) << ex->params[24];
     /* 5: xorl */
     var36.i = var39.i ^ var35.i;
     /* 6: storel */
@@ -426,7 +426,7 @@
     /* 2: convuwl */
     var37.i = (orc_uint16) var36.i;
     /* 3: shll */
-    var35.i = var37.i << p1;
+    var35.i = ((orc_uint32) var37.i) << p1;
     /* 4: storel */
     ptr0[i] = var35;
   }
@@ -458,7 +458,7 @@
     /* 2: convuwl */
     var37.i = (orc_uint16) var36.i;
     /* 3: shll */
-    var35.i = var37.i << ex->params[24];
+    var35.i = ((orc_uint32) var37.i) << ex->params[24];
     /* 4: storel */
     ptr0[i] = var35;
   }
@@ -558,7 +558,7 @@
     /* 1: convuwl */
     var36.i = (orc_uint16) var33.i;
     /* 2: shll */
-    var37.i = var36.i << p1;
+    var37.i = ((orc_uint32) var36.i) << p1;
     /* 4: xorl */
     var35.i = var37.i ^ var34.i;
     /* 5: storel */
@@ -597,7 +597,7 @@
     /* 1: convuwl */
     var36.i = (orc_uint16) var33.i;
     /* 2: shll */
-    var37.i = var36.i << ex->params[24];
+    var37.i = ((orc_uint32) var36.i) << ex->params[24];
     /* 4: xorl */
     var35.i = var37.i ^ var34.i;
     /* 5: storel */
@@ -691,7 +691,7 @@
     /* 1: convuwl */
     var35.i = (orc_uint16) var33.i;
     /* 2: shll */
-    var34.i = var35.i << p1;
+    var34.i = ((orc_uint32) var35.i) << p1;
     /* 3: storel */
     ptr0[i] = var34;
   }
@@ -720,7 +720,7 @@
     /* 1: convuwl */
     var35.i = (orc_uint16) var33.i;
     /* 2: shll */
-    var34.i = var35.i << ex->params[24];
+    var34.i = ((orc_uint32) var35.i) << ex->params[24];
     /* 3: storel */
     ptr0[i] = var34;
   }
@@ -820,7 +820,7 @@
     /* 2: convuwl */
     var38.i = (orc_uint16) var37.i;
     /* 3: shll */
-    var39.i = var38.i << p1;
+    var39.i = ((orc_uint32) var38.i) << p1;
     /* 5: xorl */
     var36.i = var39.i ^ var35.i;
     /* 6: storel */
@@ -862,7 +862,7 @@
     /* 2: convuwl */
     var38.i = (orc_uint16) var37.i;
     /* 3: shll */
-    var39.i = var38.i << ex->params[24];
+    var39.i = ((orc_uint32) var38.i) << ex->params[24];
     /* 5: xorl */
     var36.i = var39.i ^ var35.i;
     /* 6: storel */
@@ -965,7 +965,7 @@
     /* 2: convuwl */
     var37.i = (orc_uint16) var36.i;
     /* 3: shll */
-    var35.i = var37.i << p1;
+    var35.i = ((orc_uint32) var37.i) << p1;
     /* 4: storel */
     ptr0[i] = var35;
   }
@@ -997,7 +997,7 @@
     /* 2: convuwl */
     var37.i = (orc_uint16) var36.i;
     /* 3: shll */
-    var35.i = var37.i << ex->params[24];
+    var35.i = ((orc_uint32) var37.i) << ex->params[24];
     /* 4: storel */
     ptr0[i] = var35;
   }
@@ -1096,7 +1096,7 @@
     /* 0: loadl */
     var33 = ptr4[i];
     /* 1: shll */
-    var36.i = var33.i << p1;
+    var36.i = ((orc_uint32) var33.i) << p1;
     /* 3: xorl */
     var35.i = var36.i ^ var34.i;
     /* 4: storel */
@@ -1132,7 +1132,7 @@
     /* 0: loadl */
     var33 = ptr4[i];
     /* 1: shll */
-    var36.i = var33.i << ex->params[24];
+    var36.i = ((orc_uint32) var33.i) << ex->params[24];
     /* 3: xorl */
     var35.i = var36.i ^ var34.i;
     /* 4: storel */
@@ -1221,7 +1221,7 @@
     /* 0: loadl */
     var32 = ptr4[i];
     /* 1: shll */
-    var33.i = var32.i << p1;
+    var33.i = ((orc_uint32) var32.i) << p1;
     /* 2: storel */
     ptr0[i] = var33;
   }
@@ -1247,7 +1247,7 @@
     /* 0: loadl */
     var32 = ptr4[i];
     /* 1: shll */
-    var33.i = var32.i << ex->params[24];
+    var33.i = ((orc_uint32) var32.i) << ex->params[24];
     /* 2: storel */
     ptr0[i] = var33;
   }
@@ -1340,7 +1340,7 @@
     /* 1: swapl */
     var36.i = ORC_SWAP_L (var33.i);
     /* 2: shll */
-    var37.i = var36.i << p1;
+    var37.i = ((orc_uint32) var36.i) << p1;
     /* 4: xorl */
     var35.i = var37.i ^ var34.i;
     /* 5: storel */
@@ -1379,7 +1379,7 @@
     /* 1: swapl */
     var36.i = ORC_SWAP_L (var33.i);
     /* 2: shll */
-    var37.i = var36.i << ex->params[24];
+    var37.i = ((orc_uint32) var36.i) << ex->params[24];
     /* 4: xorl */
     var35.i = var37.i ^ var34.i;
     /* 5: storel */
@@ -1476,7 +1476,7 @@
     /* 1: swapl */
     var35.i = ORC_SWAP_L (var33.i);
     /* 2: shll */
-    var34.i = var35.i << p1;
+    var34.i = ((orc_uint32) var35.i) << p1;
     /* 3: storel */
     ptr0[i] = var34;
   }
@@ -1505,7 +1505,7 @@
     /* 1: swapl */
     var35.i = ORC_SWAP_L (var33.i);
     /* 2: shll */
-    var34.i = var35.i << ex->params[24];
+    var34.i = ((orc_uint32) var35.i) << ex->params[24];
     /* 3: storel */
     ptr0[i] = var34;
   }
@@ -2897,7 +2897,7 @@
     /* 2: convuwl */
     var38.i = (orc_uint16) var37.i;
     /* 3: shll */
-    var39.i = var38.i << p1;
+    var39.i = ((orc_uint32) var38.i) << p1;
     /* 5: xorl */
     var40.i = var39.i ^ var35.i;
     /* 6: convld */
@@ -2942,7 +2942,7 @@
     /* 2: convuwl */
     var38.i = (orc_uint16) var37.i;
     /* 3: shll */
-    var39.i = var38.i << ex->params[24];
+    var39.i = ((orc_uint32) var38.i) << ex->params[24];
     /* 5: xorl */
     var40.i = var39.i ^ var35.i;
     /* 6: convld */
@@ -3050,7 +3050,7 @@
     /* 2: convuwl */
     var37.i = (orc_uint16) var36.i;
     /* 3: shll */
-    var38.i = var37.i << p1;
+    var38.i = ((orc_uint32) var37.i) << p1;
     /* 4: convld */
     var35.f = var38.i;
     /* 5: storeq */
@@ -3085,7 +3085,7 @@
     /* 2: convuwl */
     var37.i = (orc_uint16) var36.i;
     /* 3: shll */
-    var38.i = var37.i << ex->params[24];
+    var38.i = ((orc_uint32) var37.i) << ex->params[24];
     /* 4: convld */
     var35.f = var38.i;
     /* 5: storeq */
@@ -3193,7 +3193,7 @@
     /* 1: convuwl */
     var36.i = (orc_uint16) var33.i;
     /* 2: shll */
-    var37.i = var36.i << p1;
+    var37.i = ((orc_uint32) var36.i) << p1;
     /* 4: xorl */
     var38.i = var37.i ^ var34.i;
     /* 5: convld */
@@ -3235,7 +3235,7 @@
     /* 1: convuwl */
     var36.i = (orc_uint16) var33.i;
     /* 2: shll */
-    var37.i = var36.i << ex->params[24];
+    var37.i = ((orc_uint32) var36.i) << ex->params[24];
     /* 4: xorl */
     var38.i = var37.i ^ var34.i;
     /* 5: convld */
@@ -3337,7 +3337,7 @@
     /* 1: convuwl */
     var35.i = (orc_uint16) var33.i;
     /* 2: shll */
-    var36.i = var35.i << p1;
+    var36.i = ((orc_uint32) var35.i) << p1;
     /* 3: convld */
     var34.f = var36.i;
     /* 4: storeq */
@@ -3369,7 +3369,7 @@
     /* 1: convuwl */
     var35.i = (orc_uint16) var33.i;
     /* 2: shll */
-    var36.i = var35.i << ex->params[24];
+    var36.i = ((orc_uint32) var35.i) << ex->params[24];
     /* 3: convld */
     var34.f = var36.i;
     /* 4: storeq */
@@ -3476,7 +3476,7 @@
     /* 2: convuwl */
     var38.i = (orc_uint16) var37.i;
     /* 3: shll */
-    var39.i = var38.i << p1;
+    var39.i = ((orc_uint32) var38.i) << p1;
     /* 5: xorl */
     var40.i = var39.i ^ var35.i;
     /* 6: convld */
@@ -3521,7 +3521,7 @@
     /* 2: convuwl */
     var38.i = (orc_uint16) var37.i;
     /* 3: shll */
-    var39.i = var38.i << ex->params[24];
+    var39.i = ((orc_uint32) var38.i) << ex->params[24];
     /* 5: xorl */
     var40.i = var39.i ^ var35.i;
     /* 6: convld */
@@ -3630,7 +3630,7 @@
     /* 2: convuwl */
     var37.i = (orc_uint16) var36.i;
     /* 3: shll */
-    var38.i = var37.i << p1;
+    var38.i = ((orc_uint32) var37.i) << p1;
     /* 4: convld */
     var35.f = var38.i;
     /* 5: storeq */
@@ -3665,7 +3665,7 @@
     /* 2: convuwl */
     var37.i = (orc_uint16) var36.i;
     /* 3: shll */
-    var38.i = var37.i << ex->params[24];
+    var38.i = ((orc_uint32) var37.i) << ex->params[24];
     /* 4: convld */
     var35.f = var38.i;
     /* 5: storeq */
@@ -3770,7 +3770,7 @@
     /* 0: loadl */
     var33 = ptr4[i];
     /* 1: shll */
-    var36.i = var33.i << p1;
+    var36.i = ((orc_uint32) var33.i) << p1;
     /* 3: xorl */
     var37.i = var36.i ^ var34.i;
     /* 4: convld */
@@ -3809,7 +3809,7 @@
     /* 0: loadl */
     var33 = ptr4[i];
     /* 1: shll */
-    var36.i = var33.i << ex->params[24];
+    var36.i = ((orc_uint32) var33.i) << ex->params[24];
     /* 3: xorl */
     var37.i = var36.i ^ var34.i;
     /* 4: convld */
@@ -3906,7 +3906,7 @@
     /* 0: loadl */
     var33 = ptr4[i];
     /* 1: shll */
-    var35.i = var33.i << p1;
+    var35.i = ((orc_uint32) var33.i) << p1;
     /* 2: convld */
     var34.f = var35.i;
     /* 3: storeq */
@@ -3935,7 +3935,7 @@
     /* 0: loadl */
     var33 = ptr4[i];
     /* 1: shll */
-    var35.i = var33.i << ex->params[24];
+    var35.i = ((orc_uint32) var33.i) << ex->params[24];
     /* 2: convld */
     var34.f = var35.i;
     /* 3: storeq */
@@ -4037,7 +4037,7 @@
     /* 1: swapl */
     var36.i = ORC_SWAP_L (var33.i);
     /* 2: shll */
-    var37.i = var36.i << p1;
+    var37.i = ((orc_uint32) var36.i) << p1;
     /* 4: xorl */
     var38.i = var37.i ^ var34.i;
     /* 5: convld */
@@ -4079,7 +4079,7 @@
     /* 1: swapl */
     var36.i = ORC_SWAP_L (var33.i);
     /* 2: shll */
-    var37.i = var36.i << ex->params[24];
+    var37.i = ((orc_uint32) var36.i) << ex->params[24];
     /* 4: xorl */
     var38.i = var37.i ^ var34.i;
     /* 5: convld */
@@ -4181,7 +4181,7 @@
     /* 1: swapl */
     var35.i = ORC_SWAP_L (var33.i);
     /* 2: shll */
-    var36.i = var35.i << p1;
+    var36.i = ((orc_uint32) var35.i) << p1;
     /* 3: convld */
     var34.f = var36.i;
     /* 4: storeq */
@@ -4213,7 +4213,7 @@
     /* 1: swapl */
     var35.i = ORC_SWAP_L (var33.i);
     /* 2: shll */
-    var36.i = var35.i << ex->params[24];
+    var36.i = ((orc_uint32) var35.i) << ex->params[24];
     /* 3: convld */
     var34.f = var36.i;
     /* 4: storeq */
diff --git a/gst/audioconvert/gstaudioquantize.c b/gst/audioconvert/gstaudioquantize.c
index 51973eb..93f1287 100644
--- a/gst/audioconvert/gstaudioquantize.c
+++ b/gst/audioconvert/gstaudioquantize.c
@@ -362,7 +362,7 @@
 MAKE_QUANTIZE_FUNC_F (float_tpdf_hf_high, INIT_DITHER_TPDF_HF_F, INIT_NS_HIGH,
     ADD_NS_HIGH, ADD_DITHER_TPDF_HF_F, UPDATE_ERROR_HIGH);
 
-static AudioConvertQuantize quantize_funcs[] = {
+static const AudioConvertQuantize quantize_funcs[] = {
   (AudioConvertQuantize) MAKE_QUANTIZE_FUNC_NAME (signed_none_none),
   (AudioConvertQuantize) MAKE_QUANTIZE_FUNC_NAME (signed_rpdf_none),
   (AudioConvertQuantize) MAKE_QUANTIZE_FUNC_NAME (signed_tpdf_none),
diff --git a/gst/audiorate/Makefile.in b/gst/audiorate/Makefile.in
index 2c24c61..3772aaf 100644
--- a/gst/audiorate/Makefile.in
+++ b/gst/audiorate/Makefile.in
@@ -103,7 +103,6 @@
 	$(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-x11.m4 \
 	$(top_srcdir)/common/m4/gst.m4 \
 	$(top_srcdir)/common/m4/gtk-doc.m4 \
 	$(top_srcdir)/common/m4/introspection.m4 \
@@ -287,6 +286,8 @@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_2_0_CFLAGS = @GIO_UNIX_2_0_CFLAGS@
+GIO_UNIX_2_0_LIBS = @GIO_UNIX_2_0_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
@@ -316,6 +317,8 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
+GST_NET_CFLAGS = @GST_NET_CFLAGS@
+GST_NET_LIBS = @GST_NET_LIBS@
 GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
 GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
@@ -343,7 +346,6 @@
 GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
 GTK_X11_LIBS = @GTK_X11_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
-HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -447,13 +449,12 @@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-XMKMF = @XMKMF@
+XSHM_CFLAGS = @XSHM_CFLAGS@
 XSHM_LIBS = @XSHM_LIBS@
+XVIDEO_CFLAGS = @XVIDEO_CFLAGS@
 XVIDEO_LIBS = @XVIDEO_LIBS@
 X_CFLAGS = @X_CFLAGS@
-X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
-X_PRE_LIBS = @X_PRE_LIBS@
 ZLIB_CFLAGS = @ZLIB_CFLAGS@
 ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
diff --git a/gst/audiorate/gstaudiorate.c b/gst/audiorate/gstaudiorate.c
index a0818c9..783ff35 100644
--- a/gst/audiorate/gstaudiorate.c
+++ b/gst/audiorate/gstaudiorate.c
@@ -337,10 +337,19 @@
       res = gst_pad_push_event (audiorate->srcpad, event);
       break;
     case GST_EVENT_GAP:
-      /* no gaps after audiorate, ignore the event */
+    {
+      /* Fill until end of gap */
+      GstClockTime timestamp, duration;
+      gst_event_parse_gap (event, &timestamp, &duration);
       gst_event_unref (event);
+      if (GST_CLOCK_TIME_IS_VALID (timestamp)) {
+        if (GST_CLOCK_TIME_IS_VALID (duration))
+          timestamp += duration;
+        gst_audio_rate_fill_to_time (audiorate, timestamp);
+      }
       res = TRUE;
       break;
+    }
     default:
       res = gst_pad_event_default (pad, parent, event);
       break;
@@ -445,7 +454,7 @@
      * buffer in that segment, which is the offset expressed in DEFAULT units.
      */
     /* convert first timestamp of segment to sample position */
-    pos = gst_util_uint64_scale_int (audiorate->src_segment.start,
+    pos = gst_util_uint64_scale_int_round (audiorate->src_segment.start,
         GST_AUDIO_INFO_RATE (&audiorate->info), GST_SECOND);
 
     GST_DEBUG_OBJECT (audiorate, "resync to offset %" G_GINT64_FORMAT, pos);
@@ -454,12 +463,13 @@
     audiorate->discont = TRUE;
 
     audiorate->next_offset = pos;
-    audiorate->next_ts = gst_util_uint64_scale_int (audiorate->next_offset,
-        GST_SECOND, GST_AUDIO_INFO_RATE (&audiorate->info));
+    audiorate->next_ts =
+        gst_util_uint64_scale_int_round (audiorate->next_offset, GST_SECOND,
+        GST_AUDIO_INFO_RATE (&audiorate->info));
 
     if (audiorate->skip_to_first && GST_BUFFER_TIMESTAMP_IS_VALID (buf)) {
       GST_DEBUG_OBJECT (audiorate, "but skipping to first buffer instead");
-      pos = gst_util_uint64_scale_int (GST_BUFFER_TIMESTAMP (buf),
+      pos = gst_util_uint64_scale_int_round (GST_BUFFER_TIMESTAMP (buf),
           GST_AUDIO_INFO_RATE (&audiorate->info), GST_SECOND);
       GST_DEBUG_OBJECT (audiorate, "so resync to offset %" G_GINT64_FORMAT,
           pos);
@@ -539,10 +549,11 @@
        * offset to get duration. Necessary complexity to get 'perfect' 
        * streams */
       GST_BUFFER_TIMESTAMP (fill) = audiorate->next_ts;
-      audiorate->next_ts = gst_util_uint64_scale_int (audiorate->next_offset,
-          GST_SECOND, rate);
-      GST_BUFFER_DURATION (fill) = audiorate->next_ts -
-          GST_BUFFER_TIMESTAMP (fill);
+      audiorate->next_ts =
+          gst_util_uint64_scale_int_round (audiorate->next_offset, GST_SECOND,
+          rate);
+      GST_BUFFER_DURATION (fill) =
+          audiorate->next_ts - GST_BUFFER_TIMESTAMP (fill);
 
       /* we created this buffer to fill a gap */
       GST_BUFFER_FLAG_SET (fill, GST_BUFFER_FLAG_GAP);
@@ -621,7 +632,7 @@
   GST_BUFFER_OFFSET_END (buf) = in_offset_end;
 
   GST_BUFFER_TIMESTAMP (buf) = audiorate->next_ts;
-  audiorate->next_ts = gst_util_uint64_scale_int (in_offset_end,
+  audiorate->next_ts = gst_util_uint64_scale_int_round (in_offset_end,
       GST_SECOND, rate);
   GST_BUFFER_DURATION (buf) = audiorate->next_ts - GST_BUFFER_TIMESTAMP (buf);
 
diff --git a/gst/audioresample/Makefile.in b/gst/audioresample/Makefile.in
index d427a81..9951639 100644
--- a/gst/audioresample/Makefile.in
+++ b/gst/audioresample/Makefile.in
@@ -103,7 +103,6 @@
 	$(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-x11.m4 \
 	$(top_srcdir)/common/m4/gst.m4 \
 	$(top_srcdir)/common/m4/gtk-doc.m4 \
 	$(top_srcdir)/common/m4/introspection.m4 \
@@ -293,6 +292,8 @@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_2_0_CFLAGS = @GIO_UNIX_2_0_CFLAGS@
+GIO_UNIX_2_0_LIBS = @GIO_UNIX_2_0_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
@@ -322,6 +323,8 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
+GST_NET_CFLAGS = @GST_NET_CFLAGS@
+GST_NET_LIBS = @GST_NET_LIBS@
 GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
 GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
@@ -349,7 +352,6 @@
 GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
 GTK_X11_LIBS = @GTK_X11_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
-HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -453,13 +455,12 @@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-XMKMF = @XMKMF@
+XSHM_CFLAGS = @XSHM_CFLAGS@
 XSHM_LIBS = @XSHM_LIBS@
+XVIDEO_CFLAGS = @XVIDEO_CFLAGS@
 XVIDEO_LIBS = @XVIDEO_LIBS@
 X_CFLAGS = @X_CFLAGS@
-X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
-X_PRE_LIBS = @X_PRE_LIBS@
 ZLIB_CFLAGS = @ZLIB_CFLAGS@
 ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
diff --git a/gst/audioresample/gstaudioresample.c b/gst/audioresample/gstaudioresample.c
index 94981bc..b4db739 100644
--- a/gst/audioresample/gstaudioresample.c
+++ b/gst/audioresample/gstaudioresample.c
@@ -1388,7 +1388,7 @@
   static GType speex_resampler_sinc_filter_mode_type = 0;
 
   if (!speex_resampler_sinc_filter_mode_type) {
-    static GEnumValue sinc_filter_modes[] = {
+    static const GEnumValue sinc_filter_modes[] = {
       {SPEEX_RESAMPLER_SINC_FILTER_INTERPOLATED, "Use interpolated sinc table",
           "interpolated"},
       {SPEEX_RESAMPLER_SINC_FILTER_FULL, "Use full sinc table", "full"},
diff --git a/gst/audioresample/gstaudioresample.h b/gst/audioresample/gstaudioresample.h
index 0d25072..726236a 100644
--- a/gst/audioresample/gstaudioresample.h
+++ b/gst/audioresample/gstaudioresample.h
@@ -64,9 +64,6 @@
   guint64 num_gap_samples;
   guint64 num_nongap_samples;
 
-  GstAudioInfo in;
-  GstAudioInfo out;
-
   /* properties */
   gint quality;
 
diff --git a/gst/audioresample/resample.c b/gst/audioresample/resample.c
index d4df979..c9b1825 100644
--- a/gst/audioresample/resample.c
+++ b/gst/audioresample/resample.c
@@ -224,7 +224,7 @@
   int use_neon:1;
 };
 
-static double kaiser12_table[68] = {
+static const double kaiser12_table[68] = {
   0.99859849, 1.00000000, 0.99859849, 0.99440475, 0.98745105, 0.97779076,
   0.96549770, 0.95066529, 0.93340547, 0.91384741, 0.89213598, 0.86843014,
   0.84290116, 0.81573067, 0.78710866, 0.75723148, 0.72629970, 0.69451601,
@@ -240,7 +240,7 @@
 };
 
 /*
-static double kaiser12_table[36] = {
+static const double kaiser12_table[36] = {
    0.99440475, 1.00000000, 0.99440475, 0.97779076, 0.95066529, 0.91384741,
    0.86843014, 0.81573067, 0.75723148, 0.69451601, 0.62920216, 0.56287762,
    0.49704014, 0.43304576, 0.37206735, 0.31506490, 0.26276832, 0.21567274,
@@ -248,7 +248,7 @@
    0.03111947, 0.02127838, 0.01402878, 0.00886058, 0.00531256, 0.00298291,
    0.00153438, 0.00069463, 0.00025272, 0.0000527734, 0.00000500, 0.00000000};
 */
-static double kaiser10_table[36] = {
+static const double kaiser10_table[36] = {
   0.99537781, 1.00000000, 0.99537781, 0.98162644, 0.95908712, 0.92831446,
   0.89005583, 0.84522401, 0.79486424, 0.74011713, 0.68217934, 0.62226347,
   0.56155915, 0.50119680, 0.44221549, 0.38553619, 0.33194107, 0.28205962,
@@ -257,7 +257,7 @@
   0.00488951, 0.00257636, 0.00115101, 0.00035515, 0.00000000, 0.00000000
 };
 
-static double kaiser8_table[36] = {
+static const double kaiser8_table[36] = {
   0.99635258, 1.00000000, 0.99635258, 0.98548012, 0.96759014, 0.94302200,
   0.91223751, 0.87580811, 0.83439927, 0.78875245, 0.73966538, 0.68797126,
   0.63451750, 0.58014482, 0.52566725, 0.47185369, 0.41941150, 0.36897272,
@@ -266,7 +266,7 @@
   0.01563093, 0.00959968, 0.00527363, 0.00233883, 0.00050000, 0.00000000
 };
 
-static double kaiser6_table[36] = {
+static const double kaiser6_table[36] = {
   0.99733006, 1.00000000, 0.99733006, 0.98935595, 0.97618418, 0.95799003,
   0.93501423, 0.90755855, 0.87598009, 0.84068475, 0.80211977, 0.76076565,
   0.71712752, 0.67172623, 0.62508937, 0.57774224, 0.53019925, 0.48295561,
@@ -277,7 +277,7 @@
 
 struct FuncDef
 {
-  double *table;
+  const double *table;
   int oversample;
 };
 
@@ -1183,7 +1183,7 @@
   if (st->magic_samples[channel_index])
     olen -= speex_resampler_magic (st, channel_index, &out, olen);
   if (!st->magic_samples[channel_index]) {
-    while (ilen && olen) {
+    while (ilen) {
       spx_uint32_t ichunk = (ilen > xlen) ? xlen : ilen;
       spx_uint32_t ochunk = olen;
 
@@ -1200,6 +1200,8 @@
       out += ochunk * st->out_stride;
       if (in)
         in += ichunk * istride;
+      if (olen == 0 && ichunk == 0)
+        break;
     }
   }
   *in_len -= ilen;
@@ -1238,7 +1240,7 @@
 
   st->out_stride = 1;
 
-  while (ilen && olen) {
+  while (ilen) {
     spx_word16_t *y = ystack;
     spx_uint32_t ichunk = (ilen > xlen) ? xlen : ilen;
     spx_uint32_t ochunk = (olen > ylen) ? ylen : olen;
@@ -1280,6 +1282,8 @@
     out += (ochunk + omagic) * ostride_save;
     if (in)
       in += ichunk * istride_save;
+    if (olen == 0 && ichunk == 0)
+      break;
   }
   st->out_stride = ostride_save;
   *in_len -= ilen;
diff --git a/gst/audiotestsrc/Makefile.in b/gst/audiotestsrc/Makefile.in
index 5ad5d9b..13c9481 100644
--- a/gst/audiotestsrc/Makefile.in
+++ b/gst/audiotestsrc/Makefile.in
@@ -103,7 +103,6 @@
 	$(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-x11.m4 \
 	$(top_srcdir)/common/m4/gst.m4 \
 	$(top_srcdir)/common/m4/gtk-doc.m4 \
 	$(top_srcdir)/common/m4/introspection.m4 \
@@ -289,6 +288,8 @@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_2_0_CFLAGS = @GIO_UNIX_2_0_CFLAGS@
+GIO_UNIX_2_0_LIBS = @GIO_UNIX_2_0_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
@@ -318,6 +319,8 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
+GST_NET_CFLAGS = @GST_NET_CFLAGS@
+GST_NET_LIBS = @GST_NET_LIBS@
 GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
 GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
@@ -345,7 +348,6 @@
 GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
 GTK_X11_LIBS = @GTK_X11_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
-HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -449,13 +451,12 @@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-XMKMF = @XMKMF@
+XSHM_CFLAGS = @XSHM_CFLAGS@
 XSHM_LIBS = @XSHM_LIBS@
+XVIDEO_CFLAGS = @XVIDEO_CFLAGS@
 XVIDEO_LIBS = @XVIDEO_LIBS@
 X_CFLAGS = @X_CFLAGS@
-X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
-X_PRE_LIBS = @X_PRE_LIBS@
 ZLIB_CFLAGS = @ZLIB_CFLAGS@
 ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
diff --git a/gst/audiotestsrc/gstaudiotestsrc.c b/gst/audiotestsrc/gstaudiotestsrc.c
index 9ed89da..04d9de6 100644
--- a/gst/audiotestsrc/gstaudiotestsrc.c
+++ b/gst/audiotestsrc/gstaudiotestsrc.c
@@ -341,6 +341,23 @@
       res = TRUE;
       break;
     }
+    case GST_QUERY_LATENCY:
+    {
+      if (src->info.rate > 0) {
+        GstClockTime latency;
+
+        latency =
+            gst_util_uint64_scale (src->generate_samples_per_buffer, GST_SECOND,
+            src->info.rate);
+        gst_query_set_latency (query,
+            gst_base_src_is_live (GST_BASE_SRC_CAST (src)), latency,
+            GST_CLOCK_TIME_NONE);
+        GST_DEBUG_OBJECT (src, "Reporting latency of %" GST_TIME_FORMAT,
+            GST_TIME_ARGS (latency));
+        res = TRUE;
+      }
+      break;
+    }
     default:
       res = GST_BASE_SRC_CLASS (parent_class)->query (basesrc, query);
       break;
diff --git a/gst/encoding/Makefile.in b/gst/encoding/Makefile.in
index 3b73f21..bde0677 100644
--- a/gst/encoding/Makefile.in
+++ b/gst/encoding/Makefile.in
@@ -112,7 +112,6 @@
 	$(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-x11.m4 \
 	$(top_srcdir)/common/m4/gst.m4 \
 	$(top_srcdir)/common/m4/gtk-doc.m4 \
 	$(top_srcdir)/common/m4/introspection.m4 \
@@ -299,6 +298,8 @@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_2_0_CFLAGS = @GIO_UNIX_2_0_CFLAGS@
+GIO_UNIX_2_0_LIBS = @GIO_UNIX_2_0_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
@@ -328,6 +329,8 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
+GST_NET_CFLAGS = @GST_NET_CFLAGS@
+GST_NET_LIBS = @GST_NET_LIBS@
 GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
 GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
@@ -355,7 +358,6 @@
 GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
 GTK_X11_LIBS = @GTK_X11_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
-HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -459,13 +461,12 @@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-XMKMF = @XMKMF@
+XSHM_CFLAGS = @XSHM_CFLAGS@
 XSHM_LIBS = @XSHM_LIBS@
+XVIDEO_CFLAGS = @XVIDEO_CFLAGS@
 XVIDEO_LIBS = @XVIDEO_LIBS@
 X_CFLAGS = @X_CFLAGS@
-X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
-X_PRE_LIBS = @X_PRE_LIBS@
 ZLIB_CFLAGS = @ZLIB_CFLAGS@
 ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
diff --git a/gst/encoding/gstencodebin.c b/gst/encoding/gstencodebin.c
index 6728e58..4a2da5a 100644
--- a/gst/encoding/gstencodebin.c
+++ b/gst/encoding/gstencodebin.c
@@ -215,10 +215,12 @@
   GList *converters;            /* List of conversion GstElement */
   GstElement *capsfilter;       /* profile->restriction (if non-NULL/ANY) */
   GstElement *encoder;          /* Encoder (can be NULL) */
+  GstElement *fakesink;         /* Fakesink (can be NULL) */
   GstElement *combiner;
   GstElement *parser;
   GstElement *smartencoder;
   GstElement *outfilter;        /* Output capsfilter (streamprofile.format) */
+  gulong outputfilter_caps_sid;
   GstElement *formatter;
   GstElement *outqueue;         /* Queue just before the muxer */
   gulong restriction_sid;
@@ -316,6 +318,7 @@
 static StreamGroup *_create_stream_group (GstEncodeBin * ebin,
     GstEncodingProfile * sprof, const gchar * sinkpadname, GstCaps * sinkcaps);
 static void stream_group_remove (GstEncodeBin * ebin, StreamGroup * sgroup);
+static void stream_group_free (GstEncodeBin * ebin, StreamGroup * sgroup);
 static GstPad *gst_encode_bin_request_pad_signal (GstEncodeBin * encodebin,
     GstCaps * caps);
 static GstPad *gst_encode_bin_request_profile_pad_signal (GstEncodeBin *
@@ -1076,7 +1079,73 @@
   g_object_set (group->capsfilter, "caps", restriction, NULL);
 }
 
-/* FIXME : Add handling of streams that don't need encoding  */
+static void
+_outfilter_caps_set_cb (GstPad * outfilter_sinkpad,
+    GParamSpec * arg G_GNUC_UNUSED, StreamGroup * group)
+{
+  GstCaps *caps;
+
+  g_object_get (outfilter_sinkpad, "caps", &caps, NULL);
+  GST_INFO_OBJECT (group->ebin, "Forcing caps to %" GST_PTR_FORMAT, caps);
+  g_object_set (group->outfilter, "caps", caps, NULL);
+  g_signal_handler_disconnect (outfilter_sinkpad, group->outputfilter_caps_sid);
+  group->outputfilter_caps_sid = 0;
+}
+
+static void
+_set_group_caps_format (StreamGroup * sgroup, GstEncodingProfile * prof,
+    GstCaps * format)
+{
+  g_object_set (sgroup->outfilter, "caps", format, NULL);
+
+  if (!gst_encoding_profile_get_allow_dynamic_output (prof)) {
+    if (!sgroup->outputfilter_caps_sid) {
+      sgroup->outputfilter_caps_sid =
+          g_signal_connect (sgroup->outfilter->sinkpads->data,
+          "notify::caps", G_CALLBACK (_outfilter_caps_set_cb), sgroup);
+    }
+  }
+}
+
+static void
+_post_missing_plugin_message (GstEncodeBin * ebin, GstEncodingProfile * prof)
+{
+  GstCaps *format;
+  format = gst_encoding_profile_get_format (prof);
+
+  GST_ERROR_OBJECT (ebin, "Couldn't create encoder for format %" GST_PTR_FORMAT,
+      format);
+  /* missing plugin support */
+  gst_element_post_message (GST_ELEMENT_CAST (ebin),
+      gst_missing_encoder_message_new (GST_ELEMENT_CAST (ebin), format));
+  GST_ELEMENT_ERROR (ebin, CORE, MISSING_PLUGIN, (NULL),
+      ("Couldn't create encoder for format %" GST_PTR_FORMAT, format));
+
+  gst_caps_unref (format);
+}
+
+static GstPadProbeReturn
+_missing_plugin_probe (GstPad * pad, GstPadProbeInfo * info, gpointer udata)
+{
+  StreamGroup *sgroup = udata;
+  GstEncodeBin *ebin = sgroup->ebin;
+
+  _post_missing_plugin_message (ebin, sgroup->profile);
+
+  return GST_PAD_PROBE_OK;
+}
+
+static void
+_set_up_fake_encoder_pad_probe (GstEncodeBin * ebin, StreamGroup * sgroup)
+{
+  GstPad *pad = gst_element_get_static_pad (sgroup->fakesink, "sink");
+
+  gst_pad_add_probe (pad, GST_PAD_PROBE_TYPE_BUFFER, _missing_plugin_probe,
+      sgroup, NULL);
+
+  gst_object_unref (pad);
+}
+
 /* FIXME : Add handling of streams that don't require conversion elements */
 /*
  * Create the elements, StreamGroup, add the sink pad, link it to the muxer
@@ -1091,6 +1160,7 @@
   GstPad *sinkpad, *srcpad, *muxerpad = NULL;
   /* Element we will link to the encoder */
   GstElement *last = NULL;
+  GstElement *encoder = NULL;
   GList *tmp, *tosync = NULL;
   GstCaps *format, *restriction;
   const gchar *missing_element_name;
@@ -1116,14 +1186,6 @@
    * * One for already encoded data
    */
 
-  /* Exception to the rule above:
-   * We check if we have an available encoder so we can abort early */
-  /* FIXME : What if we only want to do passthrough ??? */
-  GST_LOG ("Checking for encoder availability");
-  sgroup->encoder = _get_encoder (ebin, sprof);
-  if (G_UNLIKELY (sgroup->encoder == NULL))
-    goto no_encoder;
-
   /* Muxer.
    * If we are handling a container profile, figure out if the muxer has a
    * sinkpad compatible with the selected profile */
@@ -1178,7 +1240,7 @@
    * This will receive the format caps from the streamprofile */
   GST_DEBUG ("Adding output capsfilter for %" GST_PTR_FORMAT, format);
   sgroup->outfilter = gst_element_factory_make ("capsfilter", NULL);
-  g_object_set (sgroup->outfilter, "caps", format, NULL);
+  _set_group_caps_format (sgroup, sprof, format);
 
   gst_bin_add (GST_BIN (ebin), sgroup->outfilter);
   tosync = g_list_append (tosync, sgroup->outfilter);
@@ -1287,19 +1349,29 @@
 
   /* 1. Create the encoder */
   GST_LOG ("Adding encoder");
-  last = sgroup->encoder;
-  gst_bin_add ((GstBin *) ebin, sgroup->encoder);
-  tosync = g_list_append (tosync, sgroup->encoder);
+  sgroup->encoder = _get_encoder (ebin, sprof);
+  if (sgroup->encoder != NULL) {
+    gst_bin_add ((GstBin *) ebin, sgroup->encoder);
+    tosync = g_list_append (tosync, sgroup->encoder);
 
-  sinkpad =
-      local_element_request_pad (sgroup->combiner, NULL, "encodingsink", NULL);
-  if (G_UNLIKELY (sinkpad == NULL))
-    goto no_combiner_sinkpad;
-  srcpad = gst_element_get_static_pad (sgroup->encoder, "src");
-  if (G_UNLIKELY (fast_pad_link (srcpad, sinkpad) != GST_PAD_LINK_OK))
-    goto encoder_link_failure;
-  g_object_unref (sinkpad);
-  g_object_unref (srcpad);
+    sinkpad =
+        local_element_request_pad (sgroup->combiner, NULL, "encodingsink",
+        NULL);
+    if (G_UNLIKELY (sinkpad == NULL))
+      goto no_combiner_sinkpad;
+    srcpad = gst_element_get_static_pad (sgroup->encoder, "src");
+    if (G_UNLIKELY (fast_pad_link (srcpad, sinkpad) != GST_PAD_LINK_OK))
+      goto encoder_link_failure;
+    g_object_unref (sinkpad);
+    g_object_unref (srcpad);
+  } else if (gst_encoding_profile_get_preset (sgroup->profile)
+      || gst_encoding_profile_get_preset_name (sgroup->profile)) {
+    _post_missing_plugin_message (ebin, sprof);
+    goto cleanup;
+  } else {
+    /* passthrough can still work, if we discover that *
+     * encoding is required we post a missing plugin message */
+  }
 
 
   /* 3. Create the conversion/restriction elements */
@@ -1312,7 +1384,21 @@
     g_object_set (sgroup->capsfilter, "caps", restriction, NULL);
   gst_bin_add ((GstBin *) ebin, sgroup->capsfilter);
   tosync = g_list_append (tosync, sgroup->capsfilter);
-  fast_element_link (sgroup->capsfilter, sgroup->encoder);
+  if (sgroup->encoder == NULL) {
+    /* no encoder available but it might be possible to just do passthrough, so
+     * let's just set up a fake pad to detect that encoding was attempted and
+     * if so it posts the missing plugin message */
+    sgroup->fakesink = gst_element_factory_make ("fakesink", NULL);
+    g_object_set (sgroup->fakesink, "async", FALSE, NULL);
+    gst_bin_add (GST_BIN_CAST (ebin), sgroup->fakesink);
+    tosync = g_list_append (tosync, sgroup->fakesink);
+    encoder = sgroup->fakesink;
+
+    _set_up_fake_encoder_pad_probe (ebin, sgroup);
+  } else {
+    encoder = sgroup->encoder;
+  }
+  fast_element_link (sgroup->capsfilter, encoder);
   sgroup->restriction_sid = g_signal_connect (sprof, "notify::restriction-caps",
       G_CALLBACK (_profile_restriction_caps_cb), sgroup);
 
@@ -1464,16 +1550,6 @@
   GST_ERROR_OBJECT (ebin, "Error linking splitter to encoding stream");
   goto cleanup;
 
-no_encoder:
-  GST_ERROR_OBJECT (ebin, "Couldn't create encoder for format %" GST_PTR_FORMAT,
-      format);
-  /* missing plugin support */
-  gst_element_post_message (GST_ELEMENT_CAST (ebin),
-      gst_missing_encoder_message_new (GST_ELEMENT_CAST (ebin), format));
-  GST_ELEMENT_ERROR (ebin, CORE, MISSING_PLUGIN, (NULL),
-      ("Couldn't create encoder for format %" GST_PTR_FORMAT, format));
-  goto cleanup;
-
 no_muxer_pad:
   GST_ERROR_OBJECT (ebin,
       "Couldn't find a compatible muxer pad to link encoder to");
@@ -1539,7 +1615,8 @@
     gst_caps_unref (format);
   if (restriction)
     gst_caps_unref (restriction);
-  g_slice_free (StreamGroup, sgroup);
+  stream_group_free (ebin, sgroup);
+  g_list_free (tosync);
   return NULL;
 }
 
@@ -1874,7 +1951,7 @@
   gst_element_release_request_pad (elt, pad);
 }
 
-static void inline
+static void
 stream_group_free (GstEncodeBin * ebin, StreamGroup * sgroup)
 {
   GList *tmp;
@@ -1883,7 +1960,8 @@
 
   GST_DEBUG_OBJECT (ebin, "Freeing StreamGroup %p", sgroup);
 
-  g_signal_handler_disconnect (sgroup->profile, sgroup->restriction_sid);
+  if (sgroup->restriction_sid != 0)
+    g_signal_handler_disconnect (sgroup->profile, sgroup->restriction_sid);
 
   if (ebin->muxer) {
     /* outqueue - Muxer */
@@ -1926,22 +2004,38 @@
   }
 
   /* Sink Ghostpad */
-  if (sgroup->ghostpad)
-    gst_element_remove_pad (GST_ELEMENT_CAST (ebin), sgroup->ghostpad);
+  if (sgroup->ghostpad) {
+    if (GST_PAD_PARENT (sgroup->ghostpad) != NULL)
+      gst_element_remove_pad (GST_ELEMENT_CAST (ebin), sgroup->ghostpad);
+    else
+      gst_object_unref (sgroup->ghostpad);
+  }
 
   if (sgroup->inqueue)
     gst_element_set_state (sgroup->inqueue, GST_STATE_NULL);
 
   if (sgroup->encoder)
     gst_element_set_state (sgroup->encoder, GST_STATE_NULL);
-  if (sgroup->outfilter)
+  if (sgroup->fakesink)
+    gst_element_set_state (sgroup->fakesink, GST_STATE_NULL);
+  if (sgroup->outfilter) {
     gst_element_set_state (sgroup->outfilter, GST_STATE_NULL);
+
+    if (sgroup->outputfilter_caps_sid) {
+      g_signal_handler_disconnect (sgroup->outfilter->sinkpads->data,
+          sgroup->outputfilter_caps_sid);
+      sgroup->outputfilter_caps_sid = 0;
+    }
+  }
   if (sgroup->smartencoder)
     gst_element_set_state (sgroup->smartencoder, GST_STATE_NULL);
 
   if (sgroup->capsfilter) {
     gst_element_set_state (sgroup->capsfilter, GST_STATE_NULL);
-    gst_element_unlink (sgroup->capsfilter, sgroup->encoder);
+    if (sgroup->encoder)
+      gst_element_unlink (sgroup->capsfilter, sgroup->encoder);
+    else
+      gst_element_unlink (sgroup->capsfilter, sgroup->fakesink);
     gst_bin_remove ((GstBin *) ebin, sgroup->capsfilter);
   }
 
@@ -1990,6 +2084,9 @@
   if (sgroup->encoder)
     gst_bin_remove ((GstBin *) ebin, sgroup->encoder);
 
+  if (sgroup->fakesink)
+    gst_bin_remove ((GstBin *) ebin, sgroup->fakesink);
+
   if (sgroup->smartencoder)
     gst_bin_remove ((GstBin *) ebin, sgroup->smartencoder);
 
@@ -2050,7 +2147,7 @@
 
   /* Create elements */
   res = create_elements_and_pads (ebin);
-  if (res == FALSE)
+  if (!res)
     gst_encode_bin_tear_down_profile (ebin);
 
   return res;
@@ -2087,6 +2184,18 @@
 static void
 gst_encode_bin_deactivate (GstEncodeBin * ebin)
 {
+  GList *tmp;
+
+  for (tmp = ebin->streams; tmp; tmp = tmp->next) {
+    StreamGroup *sgroup = tmp->data;
+    GstCaps *format = gst_encoding_profile_get_format (sgroup->profile);
+
+    _set_group_caps_format (sgroup, sgroup->profile, format);
+
+    if (format)
+      gst_caps_unref (format);
+  }
+
   ebin->active = FALSE;
 }
 
diff --git a/gst/encoding/gststreamsplitter.c b/gst/encoding/gststreamsplitter.c
index 3861833..6bf3894 100644
--- a/gst/encoding/gststreamsplitter.c
+++ b/gst/encoding/gststreamsplitter.c
@@ -155,13 +155,13 @@
   GList *tmp;
 
   for (tmp = events; tmp; tmp = tmp->next) {
-    if (GST_EVENT_TYPE (tmp->data) == GST_EVENT_EOS ||
-        GST_EVENT_TYPE (tmp->data) == GST_EVENT_SEGMENT ||
-        !GST_EVENT_IS_STICKY (tmp->data) || pad == NULL) {
-      gst_event_unref (tmp->data);
-    } else {
+    if (GST_EVENT_TYPE (tmp->data) != GST_EVENT_EOS &&
+        GST_EVENT_TYPE (tmp->data) != GST_EVENT_SEGMENT &&
+        GST_EVENT_IS_STICKY (tmp->data) &&
+        pad != NULL) {
       gst_pad_store_sticky_event (pad, GST_EVENT_CAST (tmp->data));
     }
+    gst_event_unref (tmp->data);
   }
   g_list_free (events);
 
diff --git a/gst/gio/Makefile.in b/gst/gio/Makefile.in
index d983a17..26eacf0 100644
--- a/gst/gio/Makefile.in
+++ b/gst/gio/Makefile.in
@@ -105,7 +105,6 @@
 	$(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-x11.m4 \
 	$(top_srcdir)/common/m4/gst.m4 \
 	$(top_srcdir)/common/m4/gtk-doc.m4 \
 	$(top_srcdir)/common/m4/introspection.m4 \
@@ -293,6 +292,8 @@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_2_0_CFLAGS = @GIO_UNIX_2_0_CFLAGS@
+GIO_UNIX_2_0_LIBS = @GIO_UNIX_2_0_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
@@ -322,6 +323,8 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
+GST_NET_CFLAGS = @GST_NET_CFLAGS@
+GST_NET_LIBS = @GST_NET_LIBS@
 GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
 GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
@@ -349,7 +352,6 @@
 GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
 GTK_X11_LIBS = @GTK_X11_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
-HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -453,13 +455,12 @@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-XMKMF = @XMKMF@
+XSHM_CFLAGS = @XSHM_CFLAGS@
 XSHM_LIBS = @XSHM_LIBS@
+XVIDEO_CFLAGS = @XVIDEO_CFLAGS@
 XVIDEO_LIBS = @XVIDEO_LIBS@
 X_CFLAGS = @X_CFLAGS@
-X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
-X_PRE_LIBS = @X_PRE_LIBS@
 ZLIB_CFLAGS = @ZLIB_CFLAGS@
 ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
diff --git a/gst/gio/gstgiostreamsink.c b/gst/gio/gstgiostreamsink.c
index 5e5f620..96ff9fc 100644
--- a/gst/gio/gstgiostreamsink.c
+++ b/gst/gio/gstgiostreamsink.c
@@ -33,8 +33,8 @@
  * The following example writes the received data to a #GMemoryOutputStream.
  * |[
 
-#include &lt;gst/gst.h&gt;
-#include &lt;gio/gio.h&gt;
+#include <gst/gst.h>
+#include <gio/gio.h>
 
 ...
 
diff --git a/gst/gio/gstgiostreamsrc.c b/gst/gio/gstgiostreamsrc.c
index 957bd06..0d91e0a 100644
--- a/gst/gio/gstgiostreamsrc.c
+++ b/gst/gio/gstgiostreamsrc.c
@@ -34,8 +34,8 @@
  * The following example reads data from a #GMemoryInputStream.
  * |[
 
-#include &lt;gst/gst.h&gt;
-#include &lt;gio/gio.h&gt;
+#include <gst/gst.h>
+#include <gio/gio.h>
 
 ...
 
diff --git a/gst/playback/Makefile.in b/gst/playback/Makefile.in
index 081a475..504b07c 100644
--- a/gst/playback/Makefile.in
+++ b/gst/playback/Makefile.in
@@ -103,7 +103,6 @@
 	$(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-x11.m4 \
 	$(top_srcdir)/common/m4/gst.m4 \
 	$(top_srcdir)/common/m4/gtk-doc.m4 \
 	$(top_srcdir)/common/m4/introspection.m4 \
@@ -302,6 +301,8 @@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_2_0_CFLAGS = @GIO_UNIX_2_0_CFLAGS@
+GIO_UNIX_2_0_LIBS = @GIO_UNIX_2_0_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
@@ -331,6 +332,8 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
+GST_NET_CFLAGS = @GST_NET_CFLAGS@
+GST_NET_LIBS = @GST_NET_LIBS@
 GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
 GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
@@ -358,7 +361,6 @@
 GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
 GTK_X11_LIBS = @GTK_X11_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
-HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -462,13 +464,12 @@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-XMKMF = @XMKMF@
+XSHM_CFLAGS = @XSHM_CFLAGS@
 XSHM_LIBS = @XSHM_LIBS@
+XVIDEO_CFLAGS = @XVIDEO_CFLAGS@
 XVIDEO_LIBS = @XVIDEO_LIBS@
 X_CFLAGS = @X_CFLAGS@
-X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
-X_PRE_LIBS = @X_PRE_LIBS@
 ZLIB_CFLAGS = @ZLIB_CFLAGS@
 ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
diff --git a/gst/playback/gstdecodebin2.c b/gst/playback/gstdecodebin2.c
index 01984fe..94ebda9 100644
--- a/gst/playback/gstdecodebin2.c
+++ b/gst/playback/gstdecodebin2.c
@@ -183,6 +183,7 @@
   gboolean expose_allstreams;   /* Whether to expose unknow type streams or not */
 
   GList *filtered;              /* elements for which error messages are filtered */
+  GList *filtered_errors;       /* filtered error messages */
 
   GList *buffering_status;      /* element currently buffering messages */
 };
@@ -239,7 +240,6 @@
  * as low as possible (try to aim for 5 buffers) */
 #define AUTO_PLAY_SIZE_BYTES        2 * 1024 * 1024
 #define AUTO_PLAY_SIZE_BUFFERS      5
-#define AUTO_PLAY_ADAPTIVE_SIZE_BUFFERS 2
 #define AUTO_PLAY_SIZE_TIME         0
 
 #define DEFAULT_SUBTITLE_ENCODING NULL
@@ -285,8 +285,7 @@
     GstCaps * caps, GstDecodeBin * decode_bin);
 
 static void decodebin_set_queue_size (GstDecodeBin * dbin,
-    GstElement * multiqueue, gboolean preroll, gboolean seekable,
-    gboolean adaptive_streaming);
+    GstElement * multiqueue, gboolean preroll, gboolean seekable);
 
 static gboolean gst_decode_bin_autoplug_continue (GstElement * element,
     GstPad * pad, GstCaps * caps);
@@ -315,6 +314,8 @@
 
 static gboolean check_upstream_seekable (GstDecodeBin * dbin, GstPad * pad);
 
+static GstCaps *get_pad_caps (GstPad * pad);
+
 #define EXPOSE_LOCK(dbin) G_STMT_START {				\
     GST_LOG_OBJECT (dbin,						\
 		    "expose locking from thread %p",			\
@@ -445,6 +446,7 @@
                                    e.g. no suitable decoder could be found
                                    e.g. stream got EOS without buffers
                                  */
+  gchar *deadend_details;
   GstCaps *endcaps;             /* Caps that were used when linking to the endpad
                                    or that resulted in the deadend
                                  */
@@ -462,7 +464,8 @@
     GstDecodeChain * chain);
 static gboolean gst_decode_chain_is_complete (GstDecodeChain * chain);
 static gboolean gst_decode_chain_expose (GstDecodeChain * chain,
-    GList ** endpads, gboolean * missing_plugin);
+    GList ** endpads, gboolean * missing_plugin,
+    GString * missing_plugin_details, gboolean * last_group);
 static gboolean gst_decode_chain_is_drained (GstDecodeChain * chain);
 static gboolean gst_decode_chain_reset_buffering (GstDecodeChain * chain);
 static gboolean gst_decode_group_is_complete (GstDecodeGroup * group);
@@ -1419,8 +1422,8 @@
 
 static gboolean connect_pad (GstDecodeBin * dbin, GstElement * src,
     GstDecodePad * dpad, GstPad * pad, GstCaps * caps, GValueArray * factories,
-    GstDecodeChain * chain);
-static gboolean connect_element (GstDecodeBin * dbin, GstDecodeElement * delem,
+    GstDecodeChain * chain, gchar ** deadend_details);
+static GList *connect_element (GstDecodeBin * dbin, GstDecodeElement * delem,
     GstDecodeChain * chain);
 static void expose_pad (GstDecodeBin * dbin, GstElement * src,
     GstDecodePad * dpad, GstPad * pad, GstCaps * caps, GstDecodeChain * chain);
@@ -1488,6 +1491,7 @@
   const gchar *classification;
   gboolean is_parser_converter = FALSE;
   gboolean res;
+  gchar *deadend_details = NULL;
 
   GST_DEBUG_OBJECT (dbin, "Pad %s:%s caps:%" GST_PTR_FORMAT,
       GST_DEBUG_PAD_NAME (pad), caps);
@@ -1534,6 +1538,12 @@
       group->no_more_pads = TRUE;
   }
 
+  /* From here on we own a reference to the caps as
+   * we might create new caps below and would need
+   * to unref them later */
+  if (caps)
+    gst_caps_ref (caps);
+
   if ((caps == NULL) || gst_caps_is_empty (caps))
     goto unknown_type;
 
@@ -1550,7 +1560,7 @@
   /* 1. Emit 'autoplug-continue' the result will tell us if this pads needs
    * further autoplugging. Only do this for fixed caps, for unfixed caps
    * we will later come here again from the notify::caps handler. The
-   * problem with unfixed caps is that we can reliably tell if the output
+   * problem with unfixed caps is that, we can't reliably tell if the output
    * is e.g. accepted by a sink because only parts of the possible final
    * caps might be accepted by the sink. */
   if (gst_caps_is_fixed (caps))
@@ -1575,8 +1585,17 @@
 
   /* 1.c when the caps are not fixed yet, we can't be sure what element to
    * connect. We delay autoplugging until the caps are fixed */
-  if (!is_parser_converter && !gst_caps_is_fixed (caps))
+  if (!is_parser_converter && !gst_caps_is_fixed (caps)) {
     goto non_fixed;
+  } else if (!is_parser_converter) {
+    gst_caps_unref (caps);
+    caps = gst_pad_get_current_caps (pad);
+    if (!caps) {
+      GST_DEBUG_OBJECT (dbin, "No final caps set yet, delaying autoplugging");
+      gst_object_unref (dpad);
+      goto setup_caps_delay;
+    }
+  }
 
   /* 1.d else get the factories and if there's no compatible factory goto
    * unknown_type */
@@ -1696,7 +1715,9 @@
       GST_DEBUG ("Trying factory %s",
           gst_plugin_feature_get_name (GST_PLUGIN_FEATURE (factory)));
 
-      if (gst_element_get_factory (src) == factory) {
+      if (gst_element_get_factory (src) == factory ||
+          gst_element_factory_list_is_type (factory,
+              GST_ELEMENT_FACTORY_TYPE_PARSER)) {
         GST_DEBUG ("Skipping factory");
         continue;
       }
@@ -1731,15 +1752,22 @@
     decode_pad_set_target (dpad, p);
     pad = p;
 
-    if (!gst_caps_is_fixed (caps)) {
+    gst_caps_unref (caps);
+
+    caps = gst_pad_get_current_caps (pad);
+    if (!caps) {
+      GST_DEBUG_OBJECT (dbin, "No final caps set yet, delaying autoplugging");
+      gst_object_unref (dpad);
       g_value_array_free (factories);
-      goto non_fixed;
+      goto setup_caps_delay;
     }
   }
 
   /* 1.h else continue autoplugging something from the list. */
   GST_LOG_OBJECT (pad, "Let's continue discovery on this pad");
-  res = connect_pad (dbin, src, dpad, pad, caps, factories, chain);
+  res =
+      connect_pad (dbin, src, dpad, pad, caps, factories, chain,
+      &deadend_details);
 
   /* Need to unref the capsfilter srcpad here if
    * we inserted a capsfilter */
@@ -1752,6 +1780,8 @@
   if (!res)
     goto unknown_type;
 
+  gst_caps_unref (caps);
+
   return;
 
 expose_pad:
@@ -1759,6 +1789,7 @@
     GST_LOG_OBJECT (dbin, "Pad is final. autoplug-continue:%d", apcontinue);
     expose_pad (dbin, src, dpad, pad, caps, chain);
     gst_object_unref (dpad);
+    gst_caps_unref (caps);
     return;
   }
 
@@ -1766,13 +1797,15 @@
   {
     GST_LOG_OBJECT (pad, "Known type, but discarded because not final caps");
     chain->deadend = TRUE;
-    chain->endcaps = gst_caps_ref (caps);
+    chain->endcaps = caps;
     gst_object_replace ((GstObject **) & chain->current_pad, NULL);
 
     /* Try to expose anything */
     EXPOSE_LOCK (dbin);
-    if (gst_decode_chain_is_complete (dbin->decode_chain)) {
-      gst_decode_bin_expose (dbin);
+    if (dbin->decode_chain) {
+      if (gst_decode_chain_is_complete (dbin->decode_chain)) {
+        gst_decode_bin_expose (dbin);
+      }
     }
     EXPOSE_UNLOCK (dbin);
     do_async_done (dbin);
@@ -1784,8 +1817,9 @@
   {
     GST_LOG_OBJECT (pad, "Unknown type, posting message and firing signal");
 
+    chain->deadend_details = deadend_details;
     chain->deadend = TRUE;
-    chain->endcaps = gst_caps_ref (caps);
+    chain->endcaps = caps;
     gst_object_replace ((GstObject **) & chain->current_pad, NULL);
 
     gst_element_post_message (GST_ELEMENT_CAST (dbin),
@@ -1796,26 +1830,17 @@
 
     /* Try to expose anything */
     EXPOSE_LOCK (dbin);
-    if (gst_decode_chain_is_complete (dbin->decode_chain)) {
-      gst_decode_bin_expose (dbin);
+    if (dbin->decode_chain) {
+      if (gst_decode_chain_is_complete (dbin->decode_chain)) {
+        gst_decode_bin_expose (dbin);
+      }
     }
     EXPOSE_UNLOCK (dbin);
 
     if (src == dbin->typefind) {
-      gchar *desc;
-
-      if (caps && !gst_caps_is_empty (caps)) {
-        desc = gst_pb_utils_get_decoder_description (caps);
-        GST_ELEMENT_ERROR (dbin, STREAM, CODEC_NOT_FOUND,
-            (_("A %s plugin is required to play this stream, "
-                    "but not installed."), desc),
-            ("No decoder to handle media type '%s'",
-                gst_structure_get_name (gst_caps_get_structure (caps, 0))));
-        g_free (desc);
-      } else {
+      if (!caps || gst_caps_is_empty (caps)) {
         GST_ELEMENT_ERROR (dbin, STREAM, TYPE_NOT_FOUND,
-            (_("Could not determine type of stream")),
-            ("Stream caps %" GST_PTR_FORMAT, caps));
+            (_("Could not determine type of stream")), (NULL));
       }
       do_async_done (dbin);
     }
@@ -1855,6 +1880,8 @@
      * we have to unref the pad */
     if (is_parser_converter)
       gst_object_unref (pad);
+    if (caps)
+      gst_caps_unref (caps);
 
     return;
   }
@@ -1869,13 +1896,123 @@
 }
 
 static void
-remove_error_filter (GstDecodeBin * dbin, GstElement * element)
+remove_error_filter (GstDecodeBin * dbin, GstElement * element,
+    GstMessage ** error)
 {
+  GList *l;
+
   GST_OBJECT_LOCK (dbin);
   dbin->filtered = g_list_remove (dbin->filtered, element);
+
+  if (error)
+    *error = NULL;
+
+  l = dbin->filtered_errors;
+  while (l) {
+    GstMessage *msg = l->data;
+
+    if (GST_MESSAGE_SRC (msg) == GST_OBJECT_CAST (element)) {
+      /* Get the last error of this element, i.e. the earliest */
+      if (error)
+        gst_message_replace (error, msg);
+      gst_message_unref (msg);
+      l = dbin->filtered_errors = g_list_delete_link (dbin->filtered_errors, l);
+    } else {
+      l = l->next;
+    }
+  }
   GST_OBJECT_UNLOCK (dbin);
 }
 
+typedef struct
+{
+  gboolean ret;
+  GstPad *peer;
+} SendStickyEventsData;
+
+static gboolean
+send_sticky_event (GstPad * pad, GstEvent ** event, gpointer user_data)
+{
+  SendStickyEventsData *data = user_data;
+  gboolean ret;
+
+  ret = gst_pad_send_event (data->peer, gst_event_ref (*event));
+  if (!ret)
+    data->ret = FALSE;
+
+  return data->ret;
+}
+
+static gboolean
+send_sticky_events (GstDecodeBin * dbin, GstPad * pad)
+{
+  SendStickyEventsData data;
+
+  data.ret = TRUE;
+  data.peer = gst_pad_get_peer (pad);
+
+  gst_pad_sticky_events_foreach (pad, send_sticky_event, &data);
+
+  gst_object_unref (data.peer);
+
+  return data.ret;
+}
+
+static gchar *
+error_message_to_string (GstMessage * msg)
+{
+  GError *err;
+  gchar *debug, *message, *full_message;
+
+  gst_message_parse_error (msg, &err, &debug);
+
+  message = gst_error_get_message (err->domain, err->code);
+
+  if (debug)
+    full_message = g_strdup_printf ("%s\n%s\n%s", message, err->message, debug);
+  else
+    full_message = g_strdup_printf ("%s\n%s", message, err->message);
+
+  g_free (message);
+  g_free (debug);
+  g_clear_error (&err);
+
+  return full_message;
+}
+
+/* We consider elements as "simple demuxer" when they are a demuxer
+ * with one and only one ALWAYS source pad.
+ */
+static gboolean
+is_simple_demuxer_factory (GstElementFactory * factory)
+{
+  if (strstr (gst_element_factory_get_metadata (factory,
+              GST_ELEMENT_METADATA_KLASS), "Demuxer")) {
+    const GList *tmp;
+    gint num_alway_srcpads = 0;
+
+    for (tmp = gst_element_factory_get_static_pad_templates (factory);
+        tmp; tmp = tmp->next) {
+      GstStaticPadTemplate *template = tmp->data;
+
+      if (template->direction == GST_PAD_SRC) {
+        if (template->presence == GST_PAD_ALWAYS) {
+          if (num_alway_srcpads >= 0)
+            num_alway_srcpads++;
+        } else {
+          num_alway_srcpads = -1;
+        }
+      }
+
+    }
+
+    if (num_alway_srcpads == 1)
+      return TRUE;
+  }
+
+  return FALSE;
+}
+
 /* connect_pad:
  *
  * Try to connect the given pad to an element created from one of the factories,
@@ -1889,11 +2026,12 @@
 static gboolean
 connect_pad (GstDecodeBin * dbin, GstElement * src, GstDecodePad * dpad,
     GstPad * pad, GstCaps * caps, GValueArray * factories,
-    GstDecodeChain * chain)
+    GstDecodeChain * chain, gchar ** deadend_details)
 {
   gboolean res = FALSE;
   GstPad *mqpad = NULL;
   gboolean is_demuxer = chain->parent && !chain->elements;      /* First pad after the demuxer */
+  GString *error_details = NULL;
 
   g_return_val_if_fail (factories != NULL, FALSE);
   g_return_val_if_fail (factories->n_values > 0, FALSE);
@@ -1916,6 +2054,8 @@
     decode_pad_set_target (dpad, pad);
   }
 
+  error_details = g_string_new ("");
+
   /* 2. Try to create an element and link to it */
   while (factories->n_values > 0) {
     GstAutoplugSelectResult ret;
@@ -1925,6 +2065,8 @@
     GstPad *sinkpad;
     GParamSpec *pspec;
     gboolean subtitle;
+    GList *to_connect = NULL;
+    gboolean is_parser_converter = FALSE, is_simple_demuxer = FALSE;
 
     /* Set dpad target to pad again, it might've been unset
      * below but we came back here because something failed
@@ -1990,8 +2132,11 @@
      * parser is the only one that does not change the data. A
      * valid example for this would be multiple id3demux in a row.
      */
-    if (strstr (gst_element_factory_get_metadata (factory,
-                GST_ELEMENT_METADATA_KLASS), "Parser")) {
+    is_parser_converter = strstr (gst_element_factory_get_metadata (factory,
+            GST_ELEMENT_METADATA_KLASS), "Parser") != NULL;
+    is_simple_demuxer = is_simple_demuxer_factory (factory);
+
+    if (is_parser_converter) {
       gboolean skip = FALSE;
       GList *l;
 
@@ -2021,6 +2166,7 @@
             gst_plugin_feature_get_name (GST_PLUGIN_FEATURE_CAST (factory)));
         continue;
       }
+
     }
 
     /* emit autoplug-select to see what we should do with it. */
@@ -2053,6 +2199,9 @@
     if ((element = gst_element_factory_create (factory, NULL)) == NULL) {
       GST_WARNING_OBJECT (dbin, "Could not create an element from %s",
           gst_plugin_feature_get_name (GST_PLUGIN_FEATURE (factory)));
+      g_string_append_printf (error_details,
+          "Could not create an element from %s\n",
+          gst_plugin_feature_get_name (GST_PLUGIN_FEATURE (factory)));
       continue;
     }
 
@@ -2067,7 +2216,9 @@
     if (!(gst_bin_add (GST_BIN_CAST (dbin), element))) {
       GST_WARNING_OBJECT (dbin, "Couldn't add %s to the bin",
           GST_ELEMENT_NAME (element));
-      remove_error_filter (dbin, element);
+      remove_error_filter (dbin, element, NULL);
+      g_string_append_printf (error_details, "Couldn't add %s to the bin\n",
+          GST_ELEMENT_NAME (element));
       gst_object_unref (element);
       continue;
     }
@@ -2076,16 +2227,21 @@
     if (!(sinkpad = find_sink_pad (element))) {
       GST_WARNING_OBJECT (dbin, "Element %s doesn't have a sink pad",
           GST_ELEMENT_NAME (element));
-      remove_error_filter (dbin, element);
+      remove_error_filter (dbin, element, NULL);
+      g_string_append_printf (error_details,
+          "Element %s doesn't have a sink pad", GST_ELEMENT_NAME (element));
       gst_bin_remove (GST_BIN (dbin), element);
       continue;
     }
 
     /* ... and try to link */
-    if ((gst_pad_link (pad, sinkpad)) != GST_PAD_LINK_OK) {
+    if ((gst_pad_link_full (pad, sinkpad,
+                GST_PAD_LINK_CHECK_NOTHING)) != GST_PAD_LINK_OK) {
       GST_WARNING_OBJECT (dbin, "Link failed on pad %s:%s",
           GST_DEBUG_PAD_NAME (sinkpad));
-      remove_error_filter (dbin, element);
+      remove_error_filter (dbin, element, NULL);
+      g_string_append_printf (error_details, "Link failed on pad %s:%s",
+          GST_DEBUG_PAD_NAME (sinkpad));
       gst_object_unref (sinkpad);
       gst_bin_remove (GST_BIN (dbin), element);
       continue;
@@ -2094,22 +2250,49 @@
     /* ... activate it ... */
     if ((gst_element_set_state (element,
                 GST_STATE_READY)) == GST_STATE_CHANGE_FAILURE) {
+      GstMessage *error_msg;
+
       GST_WARNING_OBJECT (dbin, "Couldn't set %s to READY",
           GST_ELEMENT_NAME (element));
-      remove_error_filter (dbin, element);
+      remove_error_filter (dbin, element, &error_msg);
+
+      if (error_msg) {
+        gchar *error_string = error_message_to_string (error_msg);
+        g_string_append_printf (error_details, "Couldn't set %s to READY:\n%s",
+            GST_ELEMENT_NAME (element), error_string);
+        gst_message_unref (error_msg);
+        g_free (error_string);
+      } else {
+        g_string_append_printf (error_details, "Couldn't set %s to READY",
+            GST_ELEMENT_NAME (element));
+      }
       gst_object_unref (sinkpad);
       gst_bin_remove (GST_BIN (dbin), element);
       continue;
     }
 
-    /* Stop filtering errors. */
-    remove_error_filter (dbin, element);
-
     /* check if we still accept the caps on the pad after setting
      * the element to READY */
     if (!gst_pad_query_accept_caps (sinkpad, caps)) {
+      GstMessage *error_msg;
+
       GST_WARNING_OBJECT (dbin, "Element %s does not accept caps",
           GST_ELEMENT_NAME (element));
+
+      remove_error_filter (dbin, element, &error_msg);
+
+      if (error_msg) {
+        gchar *error_string = error_message_to_string (error_msg);
+        g_string_append_printf (error_details,
+            "Element %s does not accept caps:\n%s", GST_ELEMENT_NAME (element),
+            error_string);
+        gst_message_unref (error_msg);
+        g_free (error_string);
+      } else {
+        g_string_append_printf (error_details,
+            "Element %s does not accept caps", GST_ELEMENT_NAME (element));
+      }
+
       gst_element_set_state (element, GST_STATE_NULL);
       gst_object_unref (sinkpad);
       gst_bin_remove (GST_BIN (dbin), element);
@@ -2128,7 +2311,7 @@
     chain->adaptive_demuxer = is_adaptive_demuxer_element (element);
 
     /* For adaptive streaming demuxer we insert a multiqueue after
-     * this demuxer. This multiqueue will get one fragment per buffer.
+     * this demuxer.
      * Now for the case where we have a container stream inside these
      * buffers, another demuxer will be plugged and after this second
      * demuxer there will be a second multiqueue. This second multiqueue
@@ -2149,7 +2332,7 @@
     CHAIN_MUTEX_UNLOCK (chain);
 
     /* Set connection-speed property if needed */
-    if (chain->demuxer == TRUE) {
+    if (chain->demuxer) {
       GParamSpec *pspec;
 
       if ((pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (element),
@@ -2181,7 +2364,7 @@
           wrong_type = TRUE;
         }
 
-        if (wrong_type == FALSE) {
+        if (!wrong_type) {
           GST_DEBUG_OBJECT (dbin, "setting connection-speed=%" G_GUINT64_FORMAT
               " to demuxer element", speed);
 
@@ -2190,9 +2373,6 @@
       }
     }
 
-    /* link this element further */
-    connect_element (dbin, delem, chain);
-
     /* try to configure the subtitle encoding property when we can */
     pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (element),
         "subtitle-encoding");
@@ -2208,15 +2388,62 @@
       subtitle = FALSE;
     }
 
+    /* link this element further */
+    to_connect = connect_element (dbin, delem, chain);
+
+    if ((is_simple_demuxer || is_parser_converter) && to_connect) {
+      GList *l;
+      for (l = to_connect; l; l = g_list_next (l)) {
+        GstPad *opad = GST_PAD_CAST (l->data);
+        GstCaps *ocaps;
+
+        ocaps = get_pad_caps (opad);
+        analyze_new_pad (dbin, delem->element, opad, ocaps, chain);
+        if (ocaps)
+          gst_caps_unref (ocaps);
+
+        gst_object_unref (opad);
+      }
+      g_list_free (to_connect);
+      to_connect = NULL;
+    }
+
     /* Bring the element to the state of the parent */
+
+    /* First lock element's sinkpad stream lock so no data reaches
+     * the possible new element added when caps are sent by element
+     * while we're still sending sticky events */
+    GST_PAD_STREAM_LOCK (sinkpad);
+
     if ((gst_element_set_state (element,
-                GST_STATE_PAUSED)) == GST_STATE_CHANGE_FAILURE) {
+                GST_STATE_PAUSED)) == GST_STATE_CHANGE_FAILURE ||
+        !send_sticky_events (dbin, pad)) {
       GstDecodeElement *dtmp = NULL;
       GstElement *tmp = NULL;
+      GstMessage *error_msg;
+
+      GST_PAD_STREAM_UNLOCK (sinkpad);
 
       GST_WARNING_OBJECT (dbin, "Couldn't set %s to PAUSED",
           GST_ELEMENT_NAME (element));
 
+      g_list_foreach (to_connect, (GFunc) gst_object_unref, NULL);
+      g_list_free (to_connect);
+      to_connect = NULL;
+
+      remove_error_filter (dbin, element, &error_msg);
+
+      if (error_msg) {
+        gchar *error_string = error_message_to_string (error_msg);
+        g_string_append_printf (error_details, "Couldn't set %s to PAUSED:\n%s",
+            GST_ELEMENT_NAME (element), error_string);
+        gst_message_unref (error_msg);
+        g_free (error_string);
+      } else {
+        g_string_append_printf (error_details, "Couldn't set %s to PAUSED",
+            GST_ELEMENT_NAME (element));
+      }
+
       /* Remove all elements in this chain that were just added. No
        * other thread could've added elements in the meantime */
       CHAIN_MUTEX_LOCK (chain);
@@ -2270,8 +2497,15 @@
       CHAIN_MUTEX_UNLOCK (chain);
 
       continue;
+    } else {
+      /* Everything went well, the spice must flow now */
+      GST_PAD_STREAM_UNLOCK (sinkpad);
     }
 
+    /* Remove error filter now, from now on we can't gracefully
+     * handle errors of the element anymore */
+    remove_error_filter (dbin, element, NULL);
+
     /* Now let the bin handle the state */
     gst_element_set_locked_state (element, FALSE);
 
@@ -2283,6 +2517,23 @@
       SUBTITLE_UNLOCK (dbin);
     }
 
+    if (to_connect) {
+      GList *l;
+      for (l = to_connect; l; l = g_list_next (l)) {
+        GstPad *opad = GST_PAD_CAST (l->data);
+        GstCaps *ocaps;
+
+        ocaps = get_pad_caps (opad);
+        analyze_new_pad (dbin, delem->element, opad, ocaps, chain);
+        if (ocaps)
+          gst_caps_unref (ocaps);
+
+        gst_object_unref (opad);
+      }
+      g_list_free (to_connect);
+      to_connect = NULL;
+    }
+
     res = TRUE;
     break;
   }
@@ -2291,6 +2542,11 @@
   if (mqpad)
     gst_object_unref (mqpad);
 
+  if (error_details)
+    *deadend_details = g_string_free (error_details, (error_details->len == 0));
+  else
+    *deadend_details = NULL;
+
   return res;
 }
 
@@ -2312,13 +2568,14 @@
   return caps;
 }
 
-static gboolean
+/* Returns a list of pads that can be connected to already and
+ * connects to pad-added and related signals */
+static GList *
 connect_element (GstDecodeBin * dbin, GstDecodeElement * delem,
     GstDecodeChain * chain)
 {
   GstElement *element = delem->element;
   GList *pads;
-  gboolean res = TRUE;
   gboolean dynamic = FALSE;
   GList *to_connect = NULL;
 
@@ -2396,21 +2653,9 @@
         G_CALLBACK (no_more_pads_cb), chain);
   }
 
-  /* 3. for every available pad, connect it */
-  for (pads = to_connect; pads; pads = g_list_next (pads)) {
-    GstPad *pad = GST_PAD_CAST (pads->data);
-    GstCaps *caps;
+  /* 3. return all pads that can be connected to already */
 
-    caps = get_pad_caps (pad);
-    analyze_new_pad (dbin, element, pad, caps, chain);
-    if (caps)
-      gst_caps_unref (caps);
-
-    gst_object_unref (pad);
-  }
-  g_list_free (to_connect);
-
-  return res;
+  return to_connect;
 }
 
 /* expose_pad:
@@ -2447,8 +2692,10 @@
   chain->endcaps = gst_caps_ref (caps);
 
   EXPOSE_LOCK (dbin);
-  if (gst_decode_chain_is_complete (dbin->decode_chain)) {
-    gst_decode_bin_expose (dbin);
+  if (dbin->decode_chain) {
+    if (gst_decode_chain_is_complete (dbin->decode_chain)) {
+      gst_decode_bin_expose (dbin);
+    }
   }
   EXPOSE_UNLOCK (dbin);
 
@@ -2558,11 +2805,14 @@
       GST_DEBUG_OBJECT (dbin, "Received EOS on a non final pad, this stream "
           "ended too early");
       chain->deadend = TRUE;
+      chain->drained = TRUE;
       gst_object_replace ((GstObject **) & chain->current_pad, NULL);
       /* we don't set the endcaps because NULL endcaps means early EOS */
+
       EXPOSE_LOCK (dbin);
-      if (gst_decode_chain_is_complete (dbin->decode_chain))
-        gst_decode_bin_expose (dbin);
+      if (dbin->decode_chain)
+        if (gst_decode_chain_is_complete (dbin->decode_chain))
+          gst_decode_bin_expose (dbin);
       EXPOSE_UNLOCK (dbin);
       break;
     default:
@@ -2587,11 +2837,15 @@
     gst_caps_unref (caps);
 
   EXPOSE_LOCK (dbin);
-  if (gst_decode_chain_is_complete (dbin->decode_chain)) {
-    GST_LOG_OBJECT (dbin,
-        "That was the last dynamic object, now attempting to expose the group");
-    if (!gst_decode_bin_expose (dbin))
-      GST_WARNING_OBJECT (dbin, "Couldn't expose group");
+  if (dbin->decode_chain) {
+    if (gst_decode_chain_is_complete (dbin->decode_chain)) {
+      GST_LOG_OBJECT (dbin,
+          "That was the last dynamic object, now attempting to expose the group");
+      if (!gst_decode_bin_expose (dbin))
+        GST_WARNING_OBJECT (dbin, "Couldn't expose group");
+    }
+  } else {
+    GST_DEBUG_OBJECT (dbin, "No decode chain, new pad ignored");
   }
   EXPOSE_UNLOCK (dbin);
 }
@@ -2660,11 +2914,19 @@
   GST_DEBUG_OBJECT (element, "Setting group %p to complete", group);
 
   group->no_more_pads = TRUE;
+  /* this group has prerolled enough to not need more pads,
+   * we can probably set its buffering state to playing now */
+  GST_DEBUG_OBJECT (group->dbin, "Setting group %p multiqueue to "
+      "'playing' buffering mode", group);
+  decodebin_set_queue_size (group->dbin, group->multiqueue, FALSE,
+      (group->parent ? group->parent->seekable : TRUE));
   CHAIN_MUTEX_UNLOCK (chain);
 
   EXPOSE_LOCK (chain->dbin);
-  if (gst_decode_chain_is_complete (chain->dbin->decode_chain)) {
-    gst_decode_bin_expose (chain->dbin);
+  if (chain->dbin->decode_chain) {
+    if (gst_decode_chain_is_complete (chain->dbin->decode_chain)) {
+      gst_decode_bin_expose (chain->dbin);
+    }
   }
   EXPOSE_UNLOCK (chain->dbin);
 }
@@ -2800,9 +3062,11 @@
     return;
 
   GST_DEBUG_OBJECT (dbin, "Reseting multiqueues buffering");
-  CHAIN_MUTEX_LOCK (dbin->decode_chain);
-  gst_decode_chain_reset_buffering (dbin->decode_chain);
-  CHAIN_MUTEX_UNLOCK (dbin->decode_chain);
+  if (dbin->decode_chain) {
+    CHAIN_MUTEX_LOCK (dbin->decode_chain);
+    gst_decode_chain_reset_buffering (dbin->decode_chain);
+    CHAIN_MUTEX_UNLOCK (dbin->decode_chain);
+  }
 }
 
 /****
@@ -2885,7 +3149,7 @@
 static void
 gst_decode_chain_free_internal (GstDecodeChain * chain, gboolean hide)
 {
-  GList *l;
+  GList *l, *set_to_null = NULL;
 
   CHAIN_MUTEX_LOCK (chain);
 
@@ -2945,14 +3209,15 @@
           GST_OBJECT_CAST (chain->dbin))
         gst_bin_remove (GST_BIN_CAST (chain->dbin), delem->capsfilter);
       if (!hide) {
-        gst_element_set_state (delem->capsfilter, GST_STATE_NULL);
+        set_to_null =
+            g_list_append (set_to_null, gst_object_ref (delem->capsfilter));
       }
     }
 
     if (GST_OBJECT_PARENT (element) == GST_OBJECT_CAST (chain->dbin))
       gst_bin_remove (GST_BIN_CAST (chain->dbin), element);
     if (!hide) {
-      gst_element_set_state (element, GST_STATE_NULL);
+      set_to_null = g_list_append (set_to_null, gst_object_ref (element));
     }
 
     SUBTITLE_LOCK (chain->dbin);
@@ -3005,10 +3270,20 @@
     gst_caps_unref (chain->endcaps);
     chain->endcaps = NULL;
   }
+  g_free (chain->deadend_details);
+  chain->deadend_details = NULL;
 
   GST_DEBUG_OBJECT (chain->dbin, "%s chain %p", (hide ? "Hidden" : "Freed"),
       chain);
   CHAIN_MUTEX_UNLOCK (chain);
+
+  while (set_to_null) {
+    GstElement *element = set_to_null->data;
+    set_to_null = g_list_delete_link (set_to_null, set_to_null);
+    gst_element_set_state (element, GST_STATE_NULL);
+    gst_object_unref (element);
+  }
+
   if (!hide) {
     g_mutex_clear (&chain->lock);
     g_slice_free (GstDecodeChain, chain);
@@ -3073,6 +3348,12 @@
       queue);
 
   group->overrun = TRUE;
+  /* this group has prerolled enough to not need more pads,
+   * we can probably set its buffering state to playing now */
+  GST_DEBUG_OBJECT (group->dbin, "Setting group %p multiqueue to "
+      "'playing' buffering mode", group);
+  decodebin_set_queue_size (group->dbin, group->multiqueue, FALSE,
+      (group->parent ? group->parent->seekable : TRUE));
 
   /* FIXME: We should make sure that everything gets exposed now
    * even if child chains are not complete because the will never
@@ -3081,11 +3362,13 @@
    */
 
   EXPOSE_LOCK (dbin);
-  if (gst_decode_chain_is_complete (dbin->decode_chain)) {
-    if (!gst_decode_bin_expose (dbin))
-      GST_WARNING_OBJECT (dbin, "Couldn't expose group");
+  if (dbin->decode_chain) {
+    if (gst_decode_chain_is_complete (dbin->decode_chain)) {
+      if (!gst_decode_bin_expose (dbin))
+        GST_WARNING_OBJECT (dbin, "Couldn't expose group");
+    }
   }
-  EXPOSE_UNLOCK (group->dbin);
+  EXPOSE_UNLOCK (dbin);
 }
 
 static void
@@ -3174,11 +3457,62 @@
   gst_decode_group_free_internal (group, TRUE);
 }
 
+/* gst_decode_chain_free_hidden_groups:
+ *
+ * Frees any decode groups that were hidden previously.
+ * This allows keeping memory use from ballooning when
+ * switching chains repeatedly.
+ *
+ * A new throwaway thread will be created to free the
+ * groups, so any delay does not block the setup of a
+ * new group.
+ *
+ * Not MT-safe, call with parent's chain lock!
+ */
+static void
+gst_decode_chain_free_hidden_groups (GList * old_groups)
+{
+  GList *l;
+
+  for (l = old_groups; l; l = l->next) {
+    GstDecodeGroup *group = l->data;
+
+    gst_decode_group_free (group);
+  }
+  g_list_free (old_groups);
+}
+
+static void
+gst_decode_chain_start_free_hidden_groups_thread (GstDecodeChain * chain)
+{
+  GThread *thread;
+  GError *error = NULL;
+  GList *old_groups;
+
+  old_groups = chain->old_groups;
+  if (!old_groups)
+    return;
+
+  chain->old_groups = NULL;
+  thread = g_thread_try_new ("free-hidden-groups",
+      (GThreadFunc) gst_decode_chain_free_hidden_groups, old_groups, &error);
+  if (!thread || error) {
+    GST_ERROR ("Failed to start free-hidden-groups thread: %s",
+        error ? error->message : "unknown reason");
+    g_clear_error (&error);
+    chain->old_groups = old_groups;
+    return;
+  }
+  GST_DEBUG_OBJECT (chain->dbin, "Started free-hidden-groups thread");
+  /* We do not need to wait for it or get any results from it */
+  g_thread_unref (thread);
+}
+
 /* configure queue sizes, this depends on the buffering method and if we are
  * playing or prerolling. */
 static void
 decodebin_set_queue_size (GstDecodeBin * dbin, GstElement * multiqueue,
-    gboolean preroll, gboolean seekable, gboolean adaptive_streaming)
+    gboolean preroll, gboolean seekable)
 {
   guint max_bytes, max_buffers;
   guint64 max_time;
@@ -3203,14 +3537,6 @@
         max_time = seekable ? AUTO_PREROLL_SEEKABLE_SIZE_TIME :
             AUTO_PREROLL_NOT_SEEKABLE_SIZE_TIME;
     }
-  } else if (adaptive_streaming && dbin->use_buffering) {
-    /* If we're doing adaptive streaming and this is *not*
-     * the multiqueue doing the buffering messages, we only
-     * want a buffers limit here
-     */
-    max_buffers = AUTO_PLAY_ADAPTIVE_SIZE_BUFFERS;
-    max_time = 0;
-    max_bytes = 0;
   } else {
     /* update runtime limits. At runtime, we try to keep the amount of buffers
      * in the queues as low as possible (but at least 5 buffers). */
@@ -3218,9 +3544,6 @@
       max_bytes = 0;
     else if ((max_bytes = dbin->max_size_bytes) == 0)
       max_bytes = AUTO_PLAY_SIZE_BYTES;
-    /* if we're after an adaptive streaming demuxer keep
-     * a lower number of buffers as they are usually very
-     * large */
     if ((max_buffers = dbin->max_size_buffers) == 0)
       max_buffers = AUTO_PLAY_SIZE_BUFFERS;
     /* this is a multiqueue with disabled buffering, don't limit max_time */
@@ -3231,7 +3554,7 @@
   }
 
   GST_DEBUG_OBJECT (multiqueue, "setting limits %u bytes, %u buffers, "
-      "%" G_GUINT64_FORMAT, max_bytes, max_buffers, max_time);
+      "%" G_GUINT64_FORMAT " time", max_bytes, max_buffers, max_time);
   g_object_set (multiqueue,
       "max-size-bytes", max_bytes, "max-size-time", max_time,
       "max-size-buffers", max_buffers, NULL);
@@ -3272,8 +3595,7 @@
       gst_object_unref (pad);
     }
   }
-  decodebin_set_queue_size (dbin, mq, TRUE, seekable,
-      (parent ? parent->adaptive_demuxer : FALSE));
+  decodebin_set_queue_size (dbin, mq, TRUE, seekable);
 
   group->overrunsig = g_signal_connect (mq, "overrun",
       G_CALLBACK (multi_queue_overrun_cb), group);
@@ -3324,7 +3646,8 @@
     return NULL;
   }
 
-  if ((gst_pad_link (pad, sinkpad) != GST_PAD_LINK_OK)) {
+  if ((gst_pad_link_full (pad, sinkpad,
+              GST_PAD_LINK_CHECK_NOTHING) != GST_PAD_LINK_OK)) {
     GST_ERROR_OBJECT (dbin, "Couldn't link demuxer and multiqueue");
     goto error;
   }
@@ -3491,8 +3814,8 @@
   gboolean handled = FALSE;
   GstDecodeBin *dbin = chain->dbin;
 
-  GST_DEBUG ("Checking chain %p (target pad %s:%s)",
-      chain, GST_DEBUG_PAD_NAME (drainpad));
+  GST_DEBUG ("Checking chain %p %s:%s (target pad %s:%s)",
+      chain, GST_DEBUG_PAD_NAME (chain->pad), GST_DEBUG_PAD_NAME (drainpad));
 
   CHAIN_MUTEX_LOCK (chain);
 
@@ -3503,7 +3826,7 @@
 
   if (chain->endpad) {
     /* Check if we're reached the target endchain */
-    if (chain == drainpad->chain) {
+    if (drainpad != NULL && chain == drainpad->chain) {
       GST_DEBUG ("Found the target chain");
       drainpad->drained = TRUE;
       handled = TRUE;
@@ -3524,10 +3847,11 @@
         last_group, &subdrained, switched);
 
     /* The group is drained, see if we can switch to another */
-    if (handled && subdrained && !*switched) {
+    if ((handled || drainpad == NULL) && subdrained && !*switched) {
       if (chain->next_groups) {
         /* Switch to next group */
         GST_DEBUG_OBJECT (dbin, "Hiding current group %p", chain->active_group);
+        gst_decode_chain_start_free_hidden_groups_thread (chain);
         gst_decode_group_hide (chain->active_group);
         chain->old_groups =
             g_list_prepend (chain->old_groups, chain->active_group);
@@ -3576,16 +3900,18 @@
   GstDecodeBin *dbin = chain->dbin;
 
   GST_LOG_OBJECT (dbin, "pad %p", pad);
-  drain_and_switch_chains (dbin->decode_chain, pad, &last_group, &drained,
-      &switched);
+  EXPOSE_LOCK (dbin);
+  if (dbin->decode_chain) {
+    drain_and_switch_chains (dbin->decode_chain, pad, &last_group, &drained,
+        &switched);
 
-  if (switched) {
-    /* If we resulted in a group switch, expose what's needed */
-    EXPOSE_LOCK (dbin);
-    if (gst_decode_chain_is_complete (dbin->decode_chain))
-      gst_decode_bin_expose (dbin);
-    EXPOSE_UNLOCK (dbin);
+    if (switched) {
+      /* If we resulted in a group switch, expose what's needed */
+      if (gst_decode_chain_is_complete (dbin->decode_chain))
+        gst_decode_bin_expose (dbin);
+    }
   }
+  EXPOSE_UNLOCK (dbin);
 
   return last_group;
 }
@@ -3688,8 +4014,7 @@
         "high-percent", group->dbin->high_percent, NULL);
   }
   decodebin_set_queue_size (group->dbin, group->multiqueue, FALSE,
-      (group->parent ? group->parent->seekable : TRUE),
-      (group->parent ? group->parent->adaptive_demuxer : FALSE));
+      (group->parent ? group->parent->seekable : TRUE));
 
   GST_DEBUG_OBJECT (group->dbin, "Setting %s buffering to %d",
       GST_ELEMENT_NAME (group->multiqueue), !ret);
@@ -3947,15 +4272,25 @@
 static gboolean
 gst_decode_bin_expose (GstDecodeBin * dbin)
 {
-  GList *tmp, *endpads = NULL;
-  gboolean missing_plugin = FALSE;
-  gboolean already_exposed = TRUE;
+  GList *tmp, *endpads;
+  gboolean missing_plugin;
+  GString *missing_plugin_details;
+  gboolean already_exposed;
+  gboolean last_group;
+
+retry:
+  endpads = NULL;
+  missing_plugin = FALSE;
+  already_exposed = TRUE;
+  last_group = TRUE;
+
+  missing_plugin_details = g_string_new ("");
 
   GST_DEBUG_OBJECT (dbin, "Exposing currently active chains/groups");
 
   /* Don't expose if we're currently shutting down */
   DYN_LOCK (dbin);
-  if (G_UNLIKELY (dbin->shutdown == TRUE)) {
+  if (G_UNLIKELY (dbin->shutdown)) {
     GST_WARNING_OBJECT (dbin, "Currently, shutting down, aborting exposing");
     DYN_UNLOCK (dbin);
     return FALSE;
@@ -3963,30 +4298,56 @@
   DYN_UNLOCK (dbin);
 
   /* Get the pads that we're going to expose and mark things as exposed */
-  if (!gst_decode_chain_expose (dbin->decode_chain, &endpads, &missing_plugin)) {
+  if (!gst_decode_chain_expose (dbin->decode_chain, &endpads, &missing_plugin,
+          missing_plugin_details, &last_group)) {
     g_list_foreach (endpads, (GFunc) gst_object_unref, NULL);
     g_list_free (endpads);
+    g_string_free (missing_plugin_details, TRUE);
     GST_ERROR_OBJECT (dbin, "Broken chain/group tree");
     g_return_val_if_reached (FALSE);
     return FALSE;
   }
   if (endpads == NULL) {
     if (missing_plugin) {
-      GST_WARNING_OBJECT (dbin, "No suitable plugins found");
-      GST_ELEMENT_ERROR (dbin, CORE, MISSING_PLUGIN, (NULL),
-          ("no suitable plugins found"));
+      if (missing_plugin_details->len > 0) {
+        gchar *details = g_string_free (missing_plugin_details, FALSE);
+        GST_ELEMENT_ERROR (dbin, CORE, MISSING_PLUGIN, (NULL),
+            ("no suitable plugins found:\n%s", details));
+        g_free (details);
+      } else {
+        g_string_free (missing_plugin_details, TRUE);
+        GST_ELEMENT_ERROR (dbin, CORE, MISSING_PLUGIN, (NULL),
+            ("no suitable plugins found"));
+      }
     } else {
       /* in this case, the stream ended without buffers,
        * just post a warning */
-      GST_WARNING_OBJECT (dbin, "All streams finished without buffers");
-      GST_ELEMENT_ERROR (dbin, STREAM, FAILED, (NULL),
-          ("all streams without buffers"));
+      g_string_free (missing_plugin_details, TRUE);
+
+      GST_WARNING_OBJECT (dbin, "All streams finished without buffers. "
+          "Last group: %d", last_group);
+      if (last_group) {
+        GST_ELEMENT_ERROR (dbin, STREAM, FAILED, (NULL),
+            ("all streams without buffers"));
+      } else {
+        gboolean switched = FALSE;
+        gboolean drained = FALSE;
+
+        drain_and_switch_chains (dbin->decode_chain, NULL, &last_group,
+            &drained, &switched);
+        GST_ELEMENT_WARNING (dbin, STREAM, FAILED, (NULL),
+            ("all streams without buffers"));
+        if (switched)
+          goto retry;
+      }
     }
 
     do_async_done (dbin);
     return FALSE;
   }
 
+  g_string_free (missing_plugin_details, TRUE);
+
   /* Check if this was called when everything was exposed already */
   for (tmp = endpads; tmp && already_exposed; tmp = tmp->next) {
     GstDecodePad *dpad = tmp->data;
@@ -4087,15 +4448,28 @@
  */
 static gboolean
 gst_decode_chain_expose (GstDecodeChain * chain, GList ** endpads,
-    gboolean * missing_plugin)
+    gboolean * missing_plugin, GString * missing_plugin_details,
+    gboolean * last_group)
 {
   GstDecodeGroup *group;
   GList *l;
   GstDecodeBin *dbin;
 
   if (chain->deadend) {
-    if (chain->endcaps)
+    if (chain->endcaps) {
+      if (chain->deadend_details) {
+        g_string_append (missing_plugin_details, chain->deadend_details);
+        g_string_append_c (missing_plugin_details, '\n');
+      } else {
+        gchar *desc = gst_pb_utils_get_codec_description (chain->endcaps);
+        gchar *caps_str = gst_caps_to_string (chain->endcaps);
+        g_string_append_printf (missing_plugin_details,
+            "Missing decoder: %s (%s)\n", desc, caps_str);
+        g_free (caps_str);
+        g_free (desc);
+      }
       *missing_plugin = TRUE;
+    }
     return TRUE;
   }
 
@@ -4106,6 +4480,9 @@
     return TRUE;
   }
 
+  if (chain->next_groups)
+    *last_group = FALSE;
+
   group = chain->active_group;
   if (!group)
     return FALSE;
@@ -4125,7 +4502,8 @@
   for (l = group->children; l; l = l->next) {
     GstDecodeChain *childchain = l->data;
 
-    if (!gst_decode_chain_expose (childchain, endpads, missing_plugin))
+    if (!gst_decode_chain_expose (childchain, endpads, missing_plugin,
+            missing_plugin_details, last_group))
       return FALSE;
   }
 
@@ -4214,9 +4592,11 @@
   dpad->blocked = TRUE;
 
   EXPOSE_LOCK (dbin);
-  if (gst_decode_chain_is_complete (dbin->decode_chain)) {
-    if (!gst_decode_bin_expose (dbin))
-      GST_WARNING_OBJECT (dbin, "Couldn't expose group");
+  if (dbin->decode_chain) {
+    if (gst_decode_chain_is_complete (dbin->decode_chain)) {
+      if (!gst_decode_bin_expose (dbin))
+        GST_WARNING_OBJECT (dbin, "Couldn't expose group");
+    }
   }
   EXPOSE_UNLOCK (dbin);
 
@@ -4505,6 +4885,7 @@
 {
   GstStateChangeReturn ret = GST_STATE_CHANGE_SUCCESS;
   GstDecodeBin *dbin = GST_DECODE_BIN (element);
+  GstDecodeChain *chain_to_free = NULL;
 
   switch (transition) {
     case GST_STATE_CHANGE_NULL_TO_READY:
@@ -4563,10 +4944,13 @@
       do_async_done (dbin);
       EXPOSE_LOCK (dbin);
       if (dbin->decode_chain) {
-        gst_decode_chain_free (dbin->decode_chain);
+        chain_to_free = dbin->decode_chain;
+        gst_decode_chain_free_internal (dbin->decode_chain, TRUE);
         dbin->decode_chain = NULL;
       }
       EXPOSE_UNLOCK (dbin);
+      if (chain_to_free)
+        gst_decode_chain_free (chain_to_free);
       g_list_free_full (dbin->buffering_status,
           (GDestroyNotify) gst_message_unref);
       dbin->buffering_status = NULL;
@@ -4603,6 +4987,9 @@
   if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_ERROR) {
     GST_OBJECT_LOCK (dbin);
     drop = (g_list_find (dbin->filtered, GST_MESSAGE_SRC (msg)) != NULL);
+    if (drop)
+      dbin->filtered_errors =
+          g_list_prepend (dbin->filtered_errors, gst_message_ref (msg));
     GST_OBJECT_UNLOCK (dbin);
   } else if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_BUFFERING) {
     gint perc, msg_perc;
@@ -4625,6 +5012,7 @@
      *    on the list to this new value
      */
 
+    GST_OBJECT_LOCK (dbin);
     gst_message_parse_buffering (msg, &msg_perc);
 
     /*
@@ -4678,6 +5066,7 @@
     } else {
       gst_message_replace (&msg, smaller);
     }
+    GST_OBJECT_UNLOCK (dbin);
   }
 
   if (drop)
diff --git a/gst/playback/gstplaybin2.c b/gst/playback/gstplaybin2.c
index 8fed37f..fc38b0c 100644
--- a/gst/playback/gstplaybin2.c
+++ b/gst/playback/gstplaybin2.c
@@ -154,8 +154,8 @@
  * switch (GST_MESSAGE_TYPE (msg)) {
  *   case GST_MESSAGE_BUFFERING: {
  *     gint percent = 0;
- *     gst_message_parse_buffering (msg, &amp;percent);
- *     g_print ("Buffering (%%u percent done)", percent);
+ *     gst_message_parse_buffering (msg, &percent);
+ *     g_print ("Buffering (%u percent done)", percent);
  *     break;
  *   }
  *   ...
@@ -367,6 +367,9 @@
   GMutex suburi_flushes_to_drop_lock;
   GSList *suburi_flushes_to_drop;
 
+  /* buffering message stored for after switching */
+  GstMessage *pending_buffering_msg;
+
   /* combiners for different streams */
   GstSourceCombine combiner[PLAYBIN_STREAM_LAST];
 };
@@ -431,6 +434,7 @@
   GMutex dyn_lock;
   /* if we are shutting down or not */
   gint shutdown;
+  gboolean async_pending;       /* async-start has been emitted */
 
   GMutex elements_lock;
   guint32 elements_cookie;
@@ -625,7 +629,8 @@
 static GstPad *gst_play_bin_get_audio_pad (GstPlayBin * playbin, gint stream);
 static GstPad *gst_play_bin_get_text_pad (GstPlayBin * playbin, gint stream);
 
-static gboolean setup_next_source (GstPlayBin * playbin, GstState target);
+static GstStateChangeReturn setup_next_source (GstPlayBin * playbin,
+    GstState target);
 
 static void no_more_pads_cb (GstElement * decodebin, GstSourceGroup * group);
 static void pad_removed_cb (GstElement * decodebin, GstPad * pad,
@@ -1270,6 +1275,35 @@
 }
 
 static void
+do_async_start (GstPlayBin * playbin)
+{
+  GstMessage *message;
+
+  playbin->async_pending = TRUE;
+
+  message = gst_message_new_async_start (GST_OBJECT_CAST (playbin));
+  GST_BIN_CLASS (parent_class)->handle_message (GST_BIN_CAST (playbin),
+      message);
+}
+
+static void
+do_async_done (GstPlayBin * playbin)
+{
+  GstMessage *message;
+
+  if (playbin->async_pending) {
+    GST_DEBUG_OBJECT (playbin, "posting ASYNC_DONE");
+    message =
+        gst_message_new_async_done (GST_OBJECT_CAST (playbin),
+        GST_CLOCK_TIME_NONE);
+    GST_BIN_CLASS (parent_class)->handle_message (GST_BIN_CAST (playbin),
+        message);
+
+    playbin->async_pending = FALSE;
+  }
+}
+
+static void
 init_group (GstPlayBin * playbin, GstSourceGroup * group)
 {
   /* store the array for the different channels */
@@ -1336,6 +1370,10 @@
   if (group->suburi_flushes_to_drop_lock.p)
     g_mutex_clear (&group->suburi_flushes_to_drop_lock);
   group->suburi_flushes_to_drop_lock.p = NULL;
+
+  if (group->pending_buffering_msg)
+    gst_message_unref (group->pending_buffering_msg);
+  group->pending_buffering_msg = NULL;
 }
 
 static void
@@ -1883,6 +1921,9 @@
         g_object_set (combiner, "active-pad", sinkpad, NULL);
       }
 
+      if (old_sinkpad)
+        gst_object_unref (old_sinkpad);
+
       gst_object_unref (combiner);
     }
     gst_object_unref (sinkpad);
@@ -1949,6 +1990,10 @@
         /* activate the selected pad */
         g_object_set (combiner, "active-pad", sinkpad, NULL);
       }
+
+      if (old_sinkpad)
+        gst_object_unref (old_sinkpad);
+
       gst_object_unref (combiner);
     }
     gst_object_unref (sinkpad);
@@ -2018,6 +2063,22 @@
     gst_iterator_free (it);
 }
 
+static void
+source_combine_remove_pads (GstPlayBin * playbin, GstSourceCombine * combine)
+{
+  if (combine->sinkpad) {
+    GST_LOG_OBJECT (playbin, "unlinking from sink");
+    gst_pad_unlink (combine->srcpad, combine->sinkpad);
+
+    /* release back */
+    GST_LOG_OBJECT (playbin, "release sink pad");
+    gst_play_sink_release_pad (playbin->playsink, combine->sinkpad);
+    gst_object_unref (combine->sinkpad);
+    combine->sinkpad = NULL;
+  }
+  gst_object_unref (combine->srcpad);
+  combine->srcpad = NULL;
+}
 
 static GstPadProbeReturn
 block_serialized_data_cb (GstPad * pad, GstPadProbeInfo * info,
@@ -2263,6 +2324,14 @@
       break;
     case PROP_FLAGS:
       gst_play_bin_set_flags (playbin, g_value_get_flags (value));
+      if (playbin->curr_group) {
+        GST_SOURCE_GROUP_LOCK (playbin->curr_group);
+        if (playbin->curr_group->uridecodebin) {
+          g_object_set (playbin->curr_group->uridecodebin, "download",
+              (g_value_get_flags (value) & GST_PLAY_FLAG_DOWNLOAD) != 0, NULL);
+        }
+        GST_SOURCE_GROUP_UNLOCK (playbin->curr_group);
+      }
       break;
     case PROP_CURRENT_VIDEO:
       gst_play_bin_set_current_video_stream (playbin, g_value_get_int (value));
@@ -2339,6 +2408,14 @@
       break;
     case PROP_RING_BUFFER_MAX_SIZE:
       playbin->ring_buffer_max_size = g_value_get_uint64 (value);
+      if (playbin->curr_group) {
+        GST_SOURCE_GROUP_LOCK (playbin->curr_group);
+        if (playbin->curr_group->uridecodebin) {
+          g_object_set (playbin->curr_group->uridecodebin,
+              "ring-buffer-max-size", playbin->ring_buffer_max_size, NULL);
+        }
+        GST_SOURCE_GROUP_UNLOCK (playbin->curr_group);
+      }
       break;
     case PROP_FORCE_ASPECT_RATIO:
       g_object_set (playbin->playsink, "force-aspect-ratio",
@@ -2538,12 +2615,12 @@
     case PROP_AUDIO_STREAM_COMBINER:
       g_value_take_object (value,
           gst_play_bin_get_current_stream_combiner (playbin,
-              &playbin->audio_stream_combiner, "audio", PLAYBIN_STREAM_VIDEO));
+              &playbin->audio_stream_combiner, "audio", PLAYBIN_STREAM_AUDIO));
       break;
     case PROP_TEXT_STREAM_COMBINER:
       g_value_take_object (value,
           gst_play_bin_get_current_stream_combiner (playbin,
-              &playbin->text_stream_combiner, "text", PLAYBIN_STREAM_VIDEO));
+              &playbin->text_stream_combiner, "text", PLAYBIN_STREAM_TEXT));
       break;
     case PROP_VOLUME:
       g_value_set_double (value, gst_play_sink_get_volume (playbin->playsink));
@@ -2741,8 +2818,43 @@
     }
   } else if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_STREAM_START) {
     GstSourceGroup *new_group = playbin->curr_group;
+    GstMessage *buffering_msg = NULL;
 
+    GST_SOURCE_GROUP_LOCK (new_group);
     new_group->stream_changed_pending = FALSE;
+    if (new_group->pending_buffering_msg) {
+      buffering_msg = new_group->pending_buffering_msg;
+      new_group->pending_buffering_msg = NULL;
+    }
+    GST_SOURCE_GROUP_UNLOCK (new_group);
+
+    GST_DEBUG_OBJECT (playbin, "Stream start from new group %p", new_group);
+
+    if (buffering_msg) {
+      GST_DEBUG_OBJECT (playbin, "Posting pending buffering message: %"
+          GST_PTR_FORMAT, buffering_msg);
+      GST_BIN_CLASS (parent_class)->handle_message (bin, buffering_msg);
+    }
+
+  } else if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_BUFFERING) {
+    GstSourceGroup *group = playbin->curr_group;
+    gboolean pending;
+
+    /* drop buffering messages from child queues while we are switching
+     * groups (because the application set a new uri in about-to-finish)
+     * if the playsink queue still has buffers to play */
+
+    GST_SOURCE_GROUP_LOCK (group);
+    pending = group->stream_changed_pending;
+
+    if (pending) {
+      GST_DEBUG_OBJECT (playbin, "Storing buffering message from pending group "
+          "%p %" GST_PTR_FORMAT, group, msg);
+      gst_message_replace (&group->pending_buffering_msg, msg);
+      gst_message_unref (msg);
+      msg = NULL;
+    }
+    GST_SOURCE_GROUP_UNLOCK (group);
   } else if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_ERROR) {
     /* If we get an error of the subtitle uridecodebin transform
      * them into warnings and disable the subtitles */
@@ -3262,8 +3374,8 @@
 link_failed:
   {
     GST_ERROR_OBJECT (playbin,
-        "failed to link pad %s:%s to combiner, reason %d",
-        GST_DEBUG_PAD_NAME (pad), res);
+        "failed to link pad %s:%s to combiner, reason %s (%d)",
+        GST_DEBUG_PAD_NAME (pad), gst_pad_link_get_name (res), res);
     GST_SOURCE_GROUP_UNLOCK (group);
     goto done;
   }
@@ -3304,8 +3416,7 @@
   if ((combine = g_object_get_data (G_OBJECT (pad), "playbin.combine"))) {
     g_assert (combine->combiner == NULL);
     g_assert (combine->srcpad == pad);
-    gst_object_unref (pad);
-    combine->srcpad = NULL;
+    source_combine_remove_pads (playbin, combine);
     goto exit;
   }
 
@@ -3356,8 +3467,7 @@
     if (!combine->channels->len && combine->combiner) {
       GST_DEBUG_OBJECT (playbin, "all combiner sinkpads removed");
       GST_DEBUG_OBJECT (playbin, "removing combiner %p", combine->combiner);
-      gst_object_unref (combine->srcpad);
-      combine->srcpad = NULL;
+      source_combine_remove_pads (playbin, combine);
       gst_element_set_state (combine->combiner, GST_STATE_NULL);
       gst_bin_remove (GST_BIN_CAST (playbin), combine->combiner);
       combine->combiner = NULL;
@@ -3421,6 +3531,7 @@
       GST_DEBUG_OBJECT (playbin, "requesting new sink pad %d", combine->type);
       combine->sinkpad =
           gst_play_sink_request_pad (playbin->playsink, combine->type);
+      gst_object_ref (combine->sinkpad);
     } else if (combine->srcpad && combine->sinkpad) {
       GST_DEBUG_OBJECT (playbin, "refreshing new sink pad %d", combine->type);
       gst_play_sink_refresh_pad (playbin->playsink, combine->sinkpad,
@@ -3428,6 +3539,7 @@
     } else if (combine->sinkpad && combine->srcpad == NULL) {
       GST_DEBUG_OBJECT (playbin, "releasing sink pad %d", combine->type);
       gst_play_sink_release_pad (playbin->playsink, combine->sinkpad);
+      gst_object_unref (combine->sinkpad);
       combine->sinkpad = NULL;
     }
     if (combine->sinkpad && combine->srcpad &&
@@ -3510,6 +3622,10 @@
 
   GST_PLAY_BIN_SHUTDOWN_UNLOCK (playbin);
 
+  if (configure) {
+    do_async_done (playbin);
+  }
+
   return;
 
 shutdown:
@@ -3529,6 +3645,7 @@
           combine->sinkpad =
               gst_play_sink_request_pad (playbin->playsink,
               GST_PLAY_SINK_TYPE_FLUSHING);
+          gst_object_ref (combine->sinkpad);
           res = gst_pad_link (combine->srcpad, combine->sinkpad);
           GST_DEBUG_OBJECT (playbin, "linked flushing, result: %d", res);
         }
@@ -4238,25 +4355,29 @@
     GstSourceGroup * group)
 {
   gboolean ret = TRUE;
-  GstElement *sink;
   GstPad *sinkpad = NULL;
+  gboolean activated_sink;
 
   GST_SOURCE_GROUP_LOCK (group);
 
-  if ((sink = group->text_sink))
-    sinkpad = gst_element_get_static_pad (sink, "sink");
-  if (sinkpad) {
-    GstCaps *sinkcaps;
+  if (group->text_sink &&
+      activate_sink (group->playbin, group->text_sink, &activated_sink)) {
+    sinkpad = gst_element_get_static_pad (group->text_sink, "sink");
+    if (sinkpad) {
+      GstCaps *sinkcaps;
 
-    sinkcaps = gst_pad_query_caps (sinkpad, NULL);
-    if (!gst_caps_is_any (sinkcaps))
-      ret = !gst_pad_query_accept_caps (sinkpad, caps);
-    gst_caps_unref (sinkcaps);
-    gst_object_unref (sinkpad);
-  } else {
-    GstCaps *subcaps = gst_subtitle_overlay_create_factory_caps ();
-    ret = !gst_caps_is_subset (caps, subcaps);
-    gst_caps_unref (subcaps);
+      sinkcaps = gst_pad_query_caps (sinkpad, NULL);
+      if (!gst_caps_is_any (sinkcaps))
+        ret = !gst_pad_query_accept_caps (sinkpad, caps);
+      gst_caps_unref (sinkcaps);
+      gst_object_unref (sinkpad);
+    } else {
+      GstCaps *subcaps = gst_subtitle_overlay_create_factory_caps ();
+      ret = !gst_caps_is_subset (caps, subcaps);
+      gst_caps_unref (subcaps);
+    }
+    if (activated_sink)
+      gst_element_set_state (group->text_sink, GST_STATE_NULL);
   }
   /* If autoplugging can stop don't do additional checks */
   if (!ret)
@@ -4269,8 +4390,10 @@
           GST_OBJECT_CAST (group->suburidecodebin)))
     goto done;
 
-  if ((sink = group->audio_sink)) {
-    sinkpad = gst_element_get_static_pad (sink, "sink");
+  if (group->audio_sink &&
+      activate_sink (group->playbin, group->audio_sink, &activated_sink)) {
+
+    sinkpad = gst_element_get_static_pad (group->audio_sink, "sink");
     if (sinkpad) {
       GstCaps *sinkcaps;
 
@@ -4280,12 +4403,15 @@
       gst_caps_unref (sinkcaps);
       gst_object_unref (sinkpad);
     }
+    if (activated_sink)
+      gst_element_set_state (group->audio_sink, GST_STATE_NULL);
   }
   if (!ret)
     goto done;
 
-  if ((sink = group->video_sink)) {
-    sinkpad = gst_element_get_static_pad (sink, "sink");
+  if (group->video_sink
+      && activate_sink (group->playbin, group->video_sink, &activated_sink)) {
+    sinkpad = gst_element_get_static_pad (group->video_sink, "sink");
     if (sinkpad) {
       GstCaps *sinkcaps;
 
@@ -4295,6 +4421,8 @@
       gst_caps_unref (sinkcaps);
       gst_object_unref (sinkpad);
     }
+    if (activated_sink)
+      gst_element_set_state (group->video_sink, GST_STATE_NULL);
   }
 
 done:
@@ -4541,7 +4669,7 @@
 
   /* now see if we already have a sink element */
   GST_SOURCE_GROUP_LOCK (group);
-  if (*sinkp) {
+  if (*sinkp && GST_STATE (*sinkp) >= GST_STATE_READY) {
     GstElement *sink = gst_object_ref (*sinkp);
 
     if (sink_accepts_caps (playbin, sink, caps)) {
@@ -4917,7 +5045,7 @@
 }
 
 /* must be called with PLAY_BIN_LOCK */
-static gboolean
+static GstStateChangeReturn
 activate_group (GstPlayBin * playbin, GstSourceGroup * group, GstState target)
 {
   GstElement *uridecodebin = NULL;
@@ -4926,9 +5054,10 @@
   gboolean audio_sink_activated = FALSE;
   gboolean video_sink_activated = FALSE;
   gboolean text_sink_activated = FALSE;
+  GstStateChangeReturn state_ret;
 
-  g_return_val_if_fail (group->valid, FALSE);
-  g_return_val_if_fail (!group->active, FALSE);
+  g_return_val_if_fail (group->valid, GST_STATE_CHANGE_FAILURE);
+  g_return_val_if_fail (!group->active, GST_STATE_CHANGE_FAILURE);
 
   GST_DEBUG_OBJECT (playbin, "activating group %p", group);
 
@@ -5135,16 +5264,18 @@
       GST_SOURCE_GROUP_UNLOCK (group);
     }
   }
-  if (gst_element_set_state (uridecodebin, target) == GST_STATE_CHANGE_FAILURE)
+  if ((state_ret =
+          gst_element_set_state (uridecodebin,
+              target)) == GST_STATE_CHANGE_FAILURE)
     goto uridecodebin_failure;
 
   GST_SOURCE_GROUP_LOCK (group);
-  /* alow state changes of the playbin affect the group elements now */
+  /* allow state changes of the playbin affect the group elements now */
   group_set_locked_state_unlocked (playbin, group, FALSE);
   group->active = TRUE;
   GST_SOURCE_GROUP_UNLOCK (group);
 
-  return TRUE;
+  return state_ret;
 
   /* ERRORS */
 no_decodebin:
@@ -5167,6 +5298,7 @@
 uridecodebin_failure:
   {
     GST_DEBUG_OBJECT (playbin, "failed state change of uridecodebin");
+    GST_SOURCE_GROUP_LOCK (group);
     goto error_cleanup;
   }
 sink_failure:
@@ -5203,13 +5335,23 @@
     group->text_sink = NULL;
 
     if (uridecodebin) {
+      REMOVE_SIGNAL (group->uridecodebin, group->pad_added_id);
+      REMOVE_SIGNAL (group->uridecodebin, group->pad_removed_id);
+      REMOVE_SIGNAL (group->uridecodebin, group->no_more_pads_id);
+      REMOVE_SIGNAL (group->uridecodebin, group->notify_source_id);
+      REMOVE_SIGNAL (group->uridecodebin, group->drained_id);
+      REMOVE_SIGNAL (group->uridecodebin, group->autoplug_factories_id);
+      REMOVE_SIGNAL (group->uridecodebin, group->autoplug_select_id);
+      REMOVE_SIGNAL (group->uridecodebin, group->autoplug_continue_id);
+      REMOVE_SIGNAL (group->uridecodebin, group->autoplug_query_id);
+
       gst_element_set_state (uridecodebin, GST_STATE_NULL);
       gst_bin_remove (GST_BIN_CAST (playbin), uridecodebin);
     }
 
     GST_SOURCE_GROUP_UNLOCK (group);
 
-    return FALSE;
+    return GST_STATE_CHANGE_FAILURE;
   }
 }
 
@@ -5220,8 +5362,8 @@
 {
   gint i;
 
-  g_return_val_if_fail (group->valid, FALSE);
   g_return_val_if_fail (group->active, FALSE);
+  g_return_val_if_fail (group->valid, FALSE);
 
   GST_DEBUG_OBJECT (playbin, "unlinking group %p", group);
 
@@ -5233,18 +5375,7 @@
     GST_DEBUG_OBJECT (playbin, "unlinking combiner %s", combine->media_list[0]);
 
     if (combine->srcpad) {
-      if (combine->sinkpad) {
-        GST_LOG_OBJECT (playbin, "unlinking from sink");
-        gst_pad_unlink (combine->srcpad, combine->sinkpad);
-
-        /* release back */
-        GST_LOG_OBJECT (playbin, "release sink pad");
-        gst_play_sink_release_pad (playbin->playsink, combine->sinkpad);
-        combine->sinkpad = NULL;
-      }
-
-      gst_object_unref (combine->srcpad);
-      combine->srcpad = NULL;
+      source_combine_remove_pads (playbin, combine);
     }
 
     if (combine->combiner) {
@@ -5326,10 +5457,11 @@
 /* setup the next group to play, this assumes the next_group is valid and
  * configured. It swaps out the current_group and activates the valid
  * next_group. */
-static gboolean
+static GstStateChangeReturn
 setup_next_source (GstPlayBin * playbin, GstState target)
 {
   GstSourceGroup *new_group, *old_group;
+  GstStateChangeReturn state_ret;
 
   GST_DEBUG_OBJECT (playbin, "setup sources");
 
@@ -5339,11 +5471,11 @@
   if (!new_group || !new_group->valid)
     goto no_next_group;
 
-  new_group->stream_changed_pending = TRUE;
-
   /* first unlink the current source, if any */
   old_group = playbin->curr_group;
   if (old_group && old_group->valid && old_group->active) {
+    new_group->stream_changed_pending = TRUE;
+
     gst_play_bin_update_cached_duration (playbin);
     /* unlink our pads with the sink */
     deactivate_group (playbin, old_group);
@@ -5355,12 +5487,14 @@
   playbin->next_group = old_group;
 
   /* activate the new group */
-  if (!activate_group (playbin, new_group, target))
+  if ((state_ret =
+          activate_group (playbin, new_group,
+              target)) == GST_STATE_CHANGE_FAILURE)
     goto activate_failed;
 
   GST_PLAY_BIN_UNLOCK (playbin);
 
-  return TRUE;
+  return state_ret;
 
   /* ERRORS */
 no_next_group:
@@ -5369,14 +5503,15 @@
     if (target == GST_STATE_READY && new_group && new_group->uri == NULL)
       GST_ELEMENT_ERROR (playbin, RESOURCE, NOT_FOUND, ("No URI set"), (NULL));
     GST_PLAY_BIN_UNLOCK (playbin);
-    return FALSE;
+    return GST_STATE_CHANGE_FAILURE;
   }
 activate_failed:
   {
     new_group->stream_changed_pending = FALSE;
     GST_DEBUG_OBJECT (playbin, "activate failed");
+    new_group->valid = FALSE;
     GST_PLAY_BIN_UNLOCK (playbin);
-    return FALSE;
+    return GST_STATE_CHANGE_FAILURE;
   }
 }
 
@@ -5442,11 +5577,7 @@
       GST_LOG_OBJECT (playbin, "clearing shutdown flag");
       memset (&playbin->duration, 0, sizeof (playbin->duration));
       g_atomic_int_set (&playbin->shutdown, 0);
-
-      if (!setup_next_source (playbin, GST_STATE_READY)) {
-        ret = GST_STATE_CHANGE_FAILURE;
-        goto failure;
-      }
+      do_async_start (playbin);
       break;
     case GST_STATE_CHANGE_PAUSED_TO_READY:
     async_down:
@@ -5486,8 +5617,16 @@
 
   switch (transition) {
     case GST_STATE_CHANGE_READY_TO_PAUSED:
+      if ((ret =
+              setup_next_source (playbin,
+                  GST_STATE_PAUSED)) == GST_STATE_CHANGE_FAILURE)
+        goto failure;
+      if (ret == GST_STATE_CHANGE_SUCCESS)
+        ret = GST_STATE_CHANGE_ASYNC;
+
       break;
     case GST_STATE_CHANGE_PLAYING_TO_PAUSED:
+      do_async_done (playbin);
       /* FIXME Release audio device when we implement that */
       break;
     case GST_STATE_CHANGE_PAUSED_TO_READY:
@@ -5586,8 +5725,8 @@
       if (curr_group && curr_group->active && curr_group->valid) {
         /* unlink our pads with the sink */
         deactivate_group (playbin, curr_group);
-        curr_group->valid = FALSE;
       }
+      curr_group->valid = FALSE;
 
       /* Swap current and next group back */
       playbin->curr_group = playbin->next_group;
diff --git a/gst/playback/gstplaysink.c b/gst/playback/gstplaysink.c
index 006b83c..62dc5fb 100644
--- a/gst/playback/gstplaysink.c
+++ b/gst/playback/gstplaysink.c
@@ -99,6 +99,7 @@
   GstPlayChain chain;
   GstPad *sinkpad;
   GstElement *queue;
+  GstElement *filter_conv;
   GstElement *filter;
   GstElement *conv;
   GstElement *volume;           /* element with the volume property */
@@ -123,6 +124,7 @@
   GstPlayChain chain;
   GstPad *sinkpad;
   GstElement *queue;
+  GstElement *filter_conv;
   GstElement *filter;
   GstElement *conv;
   GstElement *sink;
@@ -523,7 +525,7 @@
    * unless GST_PLAY_FLAG_FORCE_FILTERS is set. playsink must be in
    * %GST_STATE_NULL
    */
-  g_object_class_install_property (gobject_klass, PROP_VIDEO_SINK,
+  g_object_class_install_property (gobject_klass, PROP_VIDEO_FILTER,
       g_param_spec_object ("video-filter", "Video filter",
           "the video filter(s) to apply, if possible",
           GST_TYPE_ELEMENT, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
@@ -973,6 +975,7 @@
 
   GST_PLAY_SINK_LOCK (playsink);
   switch (type) {
+    case GST_PLAY_SINK_TYPE_AUDIO:
     case GST_PLAY_SINK_TYPE_AUDIO_RAW:
     {
       GstPlayAudioChain *chain;
@@ -981,6 +984,7 @@
       elem = playsink->audio_filter;
       break;
     }
+    case GST_PLAY_SINK_TYPE_VIDEO:
     case GST_PLAY_SINK_TYPE_VIDEO_RAW:
     {
       GstPlayVideoChain *chain;
@@ -1822,8 +1826,29 @@
       }
     } else {
       GST_DEBUG_OBJECT (playsink, "adding video filter");
+      chain->filter_conv =
+          gst_element_factory_make ("videoconvert", "filter-convert");
+      if (!chain->filter_conv) {
+        post_missing_element_message (playsink, "videoconvert");
+        GST_ELEMENT_WARNING (playsink, CORE, MISSING_PLUGIN,
+            (_("Missing element '%s' - check your GStreamer installation."),
+                "videoconvert"),
+            ("video playback and visualizations might not work"));
+      } else {
+        gst_bin_add (bin, chain->filter_conv);
+        head = prev = chain->filter_conv;
+      }
+
       gst_bin_add (bin, chain->filter);
-      head = prev = chain->filter;
+      if (prev) {
+        if (!gst_element_link_pads_full (prev, "src", chain->filter, "sink",
+                GST_PAD_LINK_CHECK_TEMPLATE_CAPS)) {
+          goto link_failed;
+        }
+      } else {
+        head = chain->filter;
+      }
+      prev = chain->filter;
     }
   }
 
@@ -1995,7 +2020,7 @@
   chain->chain.raw = raw;
 
   /* if the chain was active we don't do anything */
-  if (GST_PLAY_CHAIN (chain)->activated == TRUE)
+  if (GST_PLAY_CHAIN (chain)->activated)
     return TRUE;
 
   /* try to set the sink element to READY again */
@@ -2672,12 +2697,33 @@
         goto filter_with_nonraw;
       } else {
         GST_DEBUG_OBJECT (playsink,
-            "skipping video filter since we're not raw");
+            "skipping audio filter since we're not raw");
       }
     } else {
-      GST_DEBUG_OBJECT (playsink, "adding video filter");
+      GST_DEBUG_OBJECT (playsink, "adding audio filter");
+      chain->filter_conv =
+          gst_element_factory_make ("audioconvert", "filter-convert");
+      if (!chain->filter_conv) {
+        post_missing_element_message (playsink, "audioconvert");
+        GST_ELEMENT_WARNING (playsink, CORE, MISSING_PLUGIN,
+            (_("Missing element '%s' - check your GStreamer installation."),
+                "audioconvert"),
+            ("audio playback and visualizations might not work"));
+      } else {
+        gst_bin_add (bin, chain->filter_conv);
+        head = prev = chain->filter_conv;
+      }
+
       gst_bin_add (bin, chain->filter);
-      head = prev = chain->filter;
+      if (prev) {
+        if (!gst_element_link_pads_full (prev, "src", chain->filter, "sink",
+                GST_PAD_LINK_CHECK_TEMPLATE_CAPS)) {
+          goto link_failed;
+        }
+      } else {
+        head = chain->filter;
+      }
+      prev = chain->filter;
     }
   }
 
@@ -2905,7 +2951,7 @@
   chain->chain.raw = raw;
 
   /* if the chain was active we don't do anything */
-  if (GST_PLAY_CHAIN (chain)->activated == TRUE)
+  if (GST_PLAY_CHAIN (chain)->activated)
     return TRUE;
 
   /* try to set the sink element to READY again */
@@ -2949,6 +2995,8 @@
       GST_DEBUG_OBJECT (playsink, "the sink has a mute property");
       chain->notify_mute_id = g_signal_connect (chain->mute, "notify::mute",
           G_CALLBACK (notify_mute_cb), playsink);
+      g_object_set (chain->mute, "mute", playsink->mute, NULL);
+      playsink->mute_changed = FALSE;
     }
 
     g_object_set (chain->conv, "use-volume", FALSE, NULL);
@@ -4316,15 +4364,12 @@
                   "tee"), (NULL));
           res = NULL;
           break;
-        } else {
-          playsink->audio_tee_sink =
-              gst_element_get_static_pad (playsink->audio_tee, "sink");
-          gst_bin_add (GST_BIN_CAST (playsink), playsink->audio_tee);
-          gst_element_set_state (playsink->audio_tee, GST_STATE_PAUSED);
         }
-      } else {
-        gst_element_set_state (playsink->audio_tee, GST_STATE_PAUSED);
+        playsink->audio_tee_sink =
+            gst_element_get_static_pad (playsink->audio_tee, "sink");
+        gst_bin_add (GST_BIN_CAST (playsink), playsink->audio_tee);
       }
+      gst_element_set_state (playsink->audio_tee, GST_STATE_PAUSED);
       if (!playsink->audio_pad) {
         GST_LOG_OBJECT (playsink, "ghosting tee sinkpad");
         playsink->audio_pad =
diff --git a/gst/playback/gstplaysinkconvertbin.c b/gst/playback/gstplaysinkconvertbin.c
index 4eb998d..04fd4e9 100644
--- a/gst/playback/gstplaysinkconvertbin.c
+++ b/gst/playback/gstplaysinkconvertbin.c
@@ -32,7 +32,7 @@
 
 #define parent_class gst_play_sink_convert_bin_parent_class
 
-static gboolean gst_play_sink_convert_bin_sink_setcaps (GstPlaySinkConvertBin *
+static void gst_play_sink_convert_bin_sink_setcaps (GstPlaySinkConvertBin *
     self, GstCaps * caps);
 
 G_DEFINE_TYPE (GstPlaySinkConvertBin, gst_play_sink_convert_bin, GST_TYPE_BIN);
@@ -250,7 +250,7 @@
       GstCaps *caps;
 
       gst_event_parse_caps (event, &caps);
-      ret = gst_play_sink_convert_bin_sink_setcaps (self, caps);
+      gst_play_sink_convert_bin_sink_setcaps (self, caps);
       break;
     }
     default:
@@ -283,7 +283,7 @@
   }
 }
 
-static gboolean
+static void
 gst_play_sink_convert_bin_sink_setcaps (GstPlaySinkConvertBin * self,
     GstCaps * caps)
 {
@@ -292,7 +292,8 @@
   gboolean reconfigure = FALSE;
   gboolean raw;
 
-  GST_DEBUG_OBJECT (self, "setcaps");
+  GST_DEBUG_OBJECT (self, "Setting sink caps %" GST_PTR_FORMAT, caps);
+
   GST_PLAY_SINK_CONVERT_BIN_LOCK (self);
   s = gst_caps_get_structure (caps, 0);
   name = gst_structure_get_name (s);
@@ -338,10 +339,6 @@
   }
 
   GST_PLAY_SINK_CONVERT_BIN_UNLOCK (self);
-
-  GST_DEBUG_OBJECT (self, "Setting sink caps %" GST_PTR_FORMAT, caps);
-
-  return TRUE;
 }
 
 #define GST_PLAY_SINK_CONVERT_BIN_FILTER_CAPS(filter,caps) G_STMT_START {     \
@@ -382,7 +379,29 @@
        * it doesn't handle the filter caps but we could still convert
        * to these caps */
       if (filter) {
-        downstream_filter = gst_caps_copy (filter);
+        guint i, n;
+
+        downstream_filter = gst_caps_new_empty ();
+
+        /* Intersect raw video caps in the filter caps with the converter
+         * caps. This makes sure that we don't accept raw video that we
+         * can't handle, e.g. because of caps features */
+        n = gst_caps_get_size (filter);
+        for (i = 0; i < n; i++) {
+          GstStructure *s;
+          GstCaps *tmp, *tmp2;
+
+          s = gst_structure_copy (gst_caps_get_structure (filter, i));
+          if (gst_structure_has_name (s,
+                  self->audio ? "audio/x-raw" : "video/x-raw")) {
+            tmp = gst_caps_new_full (s, NULL);
+            tmp2 = gst_caps_intersect (tmp, self->converter_caps);
+            gst_caps_append (downstream_filter, tmp2);
+            gst_caps_unref (tmp);
+          } else {
+            gst_caps_append_structure (downstream_filter, s);
+          }
+        }
         downstream_filter =
             gst_caps_merge (downstream_filter,
             gst_caps_ref (self->converter_caps));
@@ -394,16 +413,37 @@
       gst_object_unref (peer);
       if (self->converter_caps && is_raw_caps (peer_caps, self->audio)) {
         GstCaps *converter_caps = gst_caps_ref (self->converter_caps);
-        GST_PLAY_SINK_CONVERT_BIN_FILTER_CAPS (filter, converter_caps);
-        ret = gst_caps_merge (peer_caps, converter_caps);
+        GstCapsFeatures *cf;
+        GstStructure *s;
+        guint i, n;
+
+        ret = gst_caps_make_writable (peer_caps);
+
+        /* Filter out ANY capsfeatures from the converter caps. We can't
+         * convert to ANY capsfeatures, they are only there so that we
+         * can passthrough whatever downstream can support... but we
+         * definitely don't want to return them here
+         */
+        n = gst_caps_get_size (converter_caps);
+        for (i = 0; i < n; i++) {
+          s = gst_caps_get_structure (converter_caps, i);
+          cf = gst_caps_get_features (converter_caps, i);
+
+          if (cf && gst_caps_features_is_any (cf))
+            continue;
+          ret =
+              gst_caps_merge_structure_full (ret, gst_structure_copy (s),
+              (cf ? gst_caps_features_copy (cf) : NULL));
+        }
+        gst_caps_unref (converter_caps);
       } else {
         ret = peer_caps;
-        GST_PLAY_SINK_CONVERT_BIN_FILTER_CAPS (filter, ret);
       }
     } else {
       ret = gst_caps_ref (self->converter_caps);
-      GST_PLAY_SINK_CONVERT_BIN_FILTER_CAPS (filter, ret);
     }
+    GST_PLAY_SINK_CONVERT_BIN_FILTER_CAPS (filter, ret);
+
   } else {
     ret = filter ? gst_caps_ref (filter) : gst_caps_new_any ();
   }
diff --git a/gst/playback/gststreamsynchronizer.c b/gst/playback/gststreamsynchronizer.c
index 3997d1b..d0a2d00 100644
--- a/gst/playback/gststreamsynchronizer.c
+++ b/gst/playback/gststreamsynchronizer.c
@@ -66,9 +66,11 @@
 
   gboolean wait;                /* TRUE if waiting/blocking */
   gboolean new_stream;
-  gboolean drop_discont;
   gboolean is_eos;              /* TRUE if EOS was received */
+  gboolean eos_sent;            /* when EOS was sent downstream */
+  gboolean flushing;            /* set after flush-start and before flush-stop */
   gboolean seen_data;
+  GstClockTime gap_duration;
 
   GCond stream_finish_cond;
 
@@ -203,6 +205,64 @@
   return ret;
 }
 
+/* must be called with the STREAM_SYNCHRONIZER_LOCK */
+static gboolean
+gst_stream_synchronizer_wait (GstStreamSynchronizer * self, GstPad * pad)
+{
+  gboolean ret = FALSE;
+  GstStream *stream;
+
+  while (!self->eos && !self->flushing) {
+    stream = gst_pad_get_element_private (pad);
+    if (!stream) {
+      GST_WARNING_OBJECT (pad, "unknown stream");
+      return ret;
+    }
+    if (stream->flushing) {
+      GST_DEBUG_OBJECT (pad, "Flushing");
+      break;
+    }
+    if (!stream->wait) {
+      GST_DEBUG_OBJECT (pad, "Stream not waiting anymore");
+      break;
+    }
+
+    if (self->send_gap_event) {
+      GstEvent *event;
+
+      if (!GST_CLOCK_TIME_IS_VALID (stream->segment.position)) {
+        GST_WARNING_OBJECT (pad, "Have no position and can't send GAP event");
+        self->send_gap_event = FALSE;
+        continue;
+      }
+
+      event =
+          gst_event_new_gap (stream->segment.position, stream->gap_duration);
+      GST_DEBUG_OBJECT (pad,
+          "Send GAP event, position: %" GST_TIME_FORMAT " duration: %"
+          GST_TIME_FORMAT, GST_TIME_ARGS (stream->segment.position),
+          GST_TIME_ARGS (stream->gap_duration));
+
+      /* drop lock when sending GAP event, which may block in e.g. preroll */
+      GST_STREAM_SYNCHRONIZER_UNLOCK (self);
+      ret = gst_pad_push_event (pad, event);
+      GST_STREAM_SYNCHRONIZER_LOCK (self);
+      if (!ret) {
+        return ret;
+      }
+      self->send_gap_event = FALSE;
+
+      /* force a check on the loop conditions as we unlocked a
+       * few lines above and those variables could have changed */
+      continue;
+    }
+
+    g_cond_wait (&stream->stream_finish_cond, &self->lock);
+  }
+
+  return TRUE;
+}
+
 /* sinkpad functions */
 static gboolean
 gst_stream_synchronizer_sink_event (GstPad * pad, GstObject * parent,
@@ -242,9 +302,10 @@
       if ((have_group_id && stream->group_id != group_id) || (!have_group_id
               && stream->stream_start_seqnum != seqnum)) {
         stream->is_eos = FALSE;
+        stream->eos_sent = FALSE;
+        stream->flushing = FALSE;
         stream->stream_start_seqnum = seqnum;
         stream->group_id = group_id;
-        stream->drop_discont = TRUE;
 
         if (!have_group_id) {
           /* Check if this belongs to a stream that is already there,
@@ -329,6 +390,7 @@
 
           for (l = self->streams; l; l = l->next) {
             GstStream *ostream = l->data;
+            ostream->wait = FALSE;
             g_cond_broadcast (&ostream->stream_finish_cond);
           }
         }
@@ -344,16 +406,8 @@
       gst_event_copy_segment (event, &segment);
 
       GST_STREAM_SYNCHRONIZER_LOCK (self);
-      stream = gst_pad_get_element_private (pad);
-      if (stream) {
-        if (stream->wait) {
-          GST_DEBUG_OBJECT (pad, "Stream %d is waiting", stream->stream_number);
-          g_cond_wait (&stream->stream_finish_cond, &self->lock);
-          stream = gst_pad_get_element_private (pad);
-          if (stream)
-            stream->wait = FALSE;
-        }
-      }
+
+      gst_stream_synchronizer_wait (self, pad);
 
       if (self->shutdown) {
         GST_STREAM_SYNCHRONIZER_UNLOCK (self);
@@ -361,6 +415,7 @@
         goto done;
       }
 
+      stream = gst_pad_get_element_private (pad);
       if (stream && segment.format == GST_FORMAT_TIME) {
         if (stream->new_stream) {
           stream->new_stream = FALSE;
@@ -397,8 +452,10 @@
 
       GST_STREAM_SYNCHRONIZER_LOCK (self);
       stream = gst_pad_get_element_private (pad);
+      self->eos = FALSE;
       if (stream) {
         GST_DEBUG_OBJECT (pad, "Flushing streams");
+        stream->flushing = TRUE;
         g_cond_broadcast (&stream->stream_finish_cond);
       }
       GST_STREAM_SYNCHRONIZER_UNLOCK (self);
@@ -415,10 +472,10 @@
         gst_segment_init (&stream->segment, GST_FORMAT_UNDEFINED);
 
         stream->is_eos = FALSE;
+        stream->eos_sent = FALSE;
+        stream->flushing = FALSE;
         stream->wait = FALSE;
         stream->new_stream = FALSE;
-        stream->drop_discont = FALSE;
-        stream->seen_data = FALSE;
         g_cond_broadcast (&stream->stream_finish_cond);
       }
       GST_STREAM_SYNCHRONIZER_UNLOCK (self);
@@ -454,6 +511,8 @@
       else
         timestamp = stream->segment.stop;
 
+      stream->segment.position = timestamp;
+
       for (l = self->streams; l; l = l->next) {
         GstStream *ostream = l->data;
 
@@ -464,6 +523,7 @@
 
       if (all_eos) {
         GST_DEBUG_OBJECT (self, "All streams are EOS -- forwarding");
+        self->eos = TRUE;
         for (l = self->streams; l; l = l->next) {
           GstStream *ostream = l->data;
           /* local snapshot of current pads */
@@ -471,41 +531,54 @@
           pads = g_slist_prepend (pads, ostream->srcpad);
         }
       }
-      GST_STREAM_SYNCHRONIZER_UNLOCK (self);
-      /* drop lock when sending eos, which may block in e.g. preroll */
       if (pads) {
         GstPad *pad;
         GSList *epad;
+        GstStream *ostream;
 
         ret = TRUE;
         epad = pads;
         while (epad) {
           pad = epad->data;
-          GST_DEBUG_OBJECT (pad, "Pushing EOS");
-          ret = ret && gst_pad_push_event (pad, gst_event_new_eos ());
+          ostream = gst_pad_get_element_private (pad);
+          if (ostream) {
+            g_cond_broadcast (&ostream->stream_finish_cond);
+          }
+
           gst_object_unref (pad);
           epad = g_slist_next (epad);
         }
         g_slist_free (pads);
       } else {
-        /* if EOS, but no data has passed, then send something to replace EOS
-         * for preroll purposes */
-        if (!seen_data) {
-          GstEvent *gap_event;
-
-          gap_event = gst_event_new_gap (timestamp, GST_CLOCK_TIME_NONE);
-          ret = gst_pad_push_event (srcpad, gap_event);
-        } else {
-          GstEvent *gap_event;
-
-          /* FIXME: Also send a GAP event to let audio sinks start their
-           * clock in case they did not have enough data yet */
-          gap_event = gst_event_new_gap (timestamp, GST_CLOCK_TIME_NONE);
-          ret = gst_pad_push_event (srcpad, gap_event);
+        if (seen_data) {
+          self->send_gap_event = TRUE;
+          stream->gap_duration = GST_CLOCK_TIME_NONE;
+          stream->wait = TRUE;
+          ret = gst_stream_synchronizer_wait (self, srcpad);
         }
       }
+
+      /* send eos if haven't seen data. seen_data will be true if data buffer
+       * of the track have received in anytime. sink is ready if seen_data is
+       * true, so can send GAP event. Will send EOS if sink isn't ready. The
+       * scenario for the case is one track haven't any media data and then
+       * send EOS. Or no any valid media data in one track, so decoder can't
+       * get valid CAPS for the track. sink can't ready without received CAPS.*/
+      if (!seen_data || self->eos) {
+        GST_DEBUG_OBJECT (pad, "send EOS event");
+        /* drop lock when sending eos, which may block in e.g. preroll */
+        GST_STREAM_SYNCHRONIZER_UNLOCK (self);
+        ret = gst_pad_push_event (srcpad, gst_event_new_eos ());
+        GST_STREAM_SYNCHRONIZER_LOCK (self);
+        stream = gst_pad_get_element_private (pad);
+        if (stream) {
+          stream->eos_sent = TRUE;
+        }
+      }
+
       gst_object_unref (srcpad);
       gst_event_unref (event);
+      GST_STREAM_SYNCHRONIZER_UNLOCK (self);
       goto done;
     }
     default:
@@ -550,15 +623,6 @@
 
   if (stream) {
     stream->seen_data = TRUE;
-    if (stream->drop_discont) {
-      if (GST_BUFFER_IS_DISCONT (buffer)) {
-        GST_DEBUG_OBJECT (pad, "removing DISCONT from buffer %p", buffer);
-        buffer = gst_buffer_make_writable (buffer);
-        GST_BUFFER_FLAG_UNSET (buffer, GST_BUFFER_FLAG_DISCONT);
-      }
-      stream->drop_discont = FALSE;
-    }
-
     if (stream->segment.format == GST_FORMAT_TIME
         && GST_CLOCK_TIME_IS_VALID (timestamp)) {
       GST_LOG_OBJECT (pad,
@@ -611,7 +675,8 @@
       GstStream *ostream = l->data;
       gint64 position;
 
-      if (!ostream->is_eos || ostream->segment.format != GST_FORMAT_TIME)
+      if (!ostream->is_eos || ostream->eos_sent ||
+          ostream->segment.format != GST_FORMAT_TIME)
         continue;
 
       if (ostream->segment.position != -1)
@@ -633,8 +698,9 @@
 
         ostream->segment.position = new_start;
 
-        gst_pad_push_event (ostream->srcpad,
-            gst_event_new_gap (position, new_start - position));
+        self->send_gap_event = TRUE;
+        ostream->gap_duration = new_start - position;
+        g_cond_broadcast (&ostream->stream_finish_cond);
       }
     }
     GST_STREAM_SYNCHRONIZER_UNLOCK (self);
@@ -663,6 +729,7 @@
   stream->stream_start_seqnum = G_MAXUINT32;
   stream->segment_seqnum = G_MAXUINT32;
   stream->group_id = G_MAXUINT;
+  stream->seen_data = FALSE;
 
   tmp = g_strdup_printf ("sink_%u", self->current_stream_number);
   stream->sinkpad = gst_pad_new_from_static_template (&sinktemplate, tmp);
@@ -807,6 +874,7 @@
     case GST_STATE_CHANGE_NULL_TO_READY:
       GST_DEBUG_OBJECT (self, "State change NULL->READY");
       self->shutdown = FALSE;
+      self->send_gap_event = FALSE;
       break;
     case GST_STATE_CHANGE_READY_TO_PAUSED:
       GST_DEBUG_OBJECT (self, "State change READY->PAUSED");
@@ -814,18 +882,21 @@
       self->have_group_id = TRUE;
       self->group_id = G_MAXUINT;
       self->shutdown = FALSE;
+      self->flushing = FALSE;
+      self->eos = FALSE;
       break;
     case GST_STATE_CHANGE_PAUSED_TO_READY:{
       GList *l;
 
-      GST_DEBUG_OBJECT (self, "State change READY->NULL");
+      GST_DEBUG_OBJECT (self, "State change PAUSED->READY");
 
       GST_STREAM_SYNCHRONIZER_LOCK (self);
+      self->flushing = TRUE;
+      self->shutdown = TRUE;
       for (l = self->streams; l; l = l->next) {
         GstStream *ostream = l->data;
         g_cond_broadcast (&ostream->stream_finish_cond);
       }
-      self->shutdown = TRUE;
       GST_STREAM_SYNCHRONIZER_UNLOCK (self);
     }
     default:
@@ -838,6 +909,26 @@
     return ret;
 
   switch (transition) {
+    case GST_STATE_CHANGE_PLAYING_TO_PAUSED:{
+      GList *l;
+
+      GST_DEBUG_OBJECT (self, "State change PLAYING->PAUSED");
+
+      GST_STREAM_SYNCHRONIZER_LOCK (self);
+      for (l = self->streams; l; l = l->next) {
+        GstStream *stream = l->data;
+        /* send GAP event to sink to finished pre-roll. The reason is function
+         * chain () will be blocked on pad_push (), so can't trigger the track
+         * which reach EOS to send GAP event. */
+        if (stream->is_eos && !stream->eos_sent) {
+          self->send_gap_event = TRUE;
+          stream->gap_duration = GST_CLOCK_TIME_NONE;
+          g_cond_broadcast (&stream->stream_finish_cond);
+        }
+      }
+      GST_STREAM_SYNCHRONIZER_UNLOCK (self);
+      break;
+    }
     case GST_STATE_CHANGE_PAUSED_TO_READY:{
       GList *l;
 
@@ -845,14 +936,17 @@
       self->group_start_time = 0;
 
       GST_STREAM_SYNCHRONIZER_LOCK (self);
+      self->send_gap_event = FALSE;
       for (l = self->streams; l; l = l->next) {
         GstStream *stream = l->data;
 
         gst_segment_init (&stream->segment, GST_FORMAT_UNDEFINED);
+        stream->gap_duration = GST_CLOCK_TIME_NONE;
         stream->wait = FALSE;
         stream->new_stream = FALSE;
-        stream->drop_discont = FALSE;
         stream->is_eos = FALSE;
+        stream->eos_sent = FALSE;
+        stream->flushing = FALSE;
       }
       GST_STREAM_SYNCHRONIZER_UNLOCK (self);
       break;
diff --git a/gst/playback/gststreamsynchronizer.h b/gst/playback/gststreamsynchronizer.h
index 2f5a3ec..4e40b1a 100644
--- a/gst/playback/gststreamsynchronizer.h
+++ b/gst/playback/gststreamsynchronizer.h
@@ -47,6 +47,9 @@
   /* < private > */
   GMutex lock;
   gboolean shutdown;
+  gboolean send_gap_event;
+  gboolean eos;
+  gboolean flushing;
 
   GList *streams;
   guint current_stream_number;
diff --git a/gst/playback/gstsubtitleoverlay.c b/gst/playback/gstsubtitleoverlay.c
index e5b2fea..16ac166 100644
--- a/gst/playback/gstsubtitleoverlay.c
+++ b/gst/playback/gstsubtitleoverlay.c
@@ -239,7 +239,7 @@
     caps = gst_pad_query_caps (pad, NULL);
   }
 
-  for (i = 0; i < gst_caps_get_size (caps) && ret == FALSE; i++) {
+  for (i = 0; i < gst_caps_get_size (caps) && !ret; i++) {
     name = gst_structure_get_name (gst_caps_get_structure (caps, i));
     if (g_str_equal (name, "video/x-raw")) {
       ret = TRUE;
@@ -1778,12 +1778,15 @@
 static GstCaps *
 gst_subtitle_overlay_subtitle_sink_getcaps (GstPad * pad, GstCaps * filter)
 {
-  GstCaps *ret;
+  GstCaps *ret, *subcaps;
 
-  if (filter)
-    ret = gst_caps_ref (filter);
-  else
-    ret = gst_caps_new_any ();
+  subcaps = gst_subtitle_overlay_create_factory_caps ();
+  if (filter) {
+    ret = gst_caps_intersect_full (filter, subcaps, GST_CAPS_INTERSECT_FIRST);
+    gst_caps_unref (subcaps);
+  } else {
+    ret = subcaps;
+  }
 
   return ret;
 }
@@ -1793,7 +1796,7 @@
     GstCaps * caps)
 {
   gboolean ret = TRUE;
-  GstPad *target = NULL;;
+  GstPad *target = NULL;
 
   GST_DEBUG_OBJECT (self, "Setting caps: %" GST_PTR_FORMAT, caps);
 
diff --git a/gst/playback/gsturidecodebin.c b/gst/playback/gsturidecodebin.c
index 709483e..2807a50 100644
--- a/gst/playback/gsturidecodebin.c
+++ b/gst/playback/gsturidecodebin.c
@@ -110,6 +110,7 @@
   guint src_np_sig_id;          /* new-pad signal id */
   guint src_nmp_sig_id;         /* no-more-pads signal id */
   gint pending;
+  GList *missing_plugin_errors;
 
   gboolean async_pending;       /* async-start has been emitted */
 
@@ -986,11 +987,33 @@
      * decodebins had missing plugins for all of their streams!
      */
     if (!decoder->streams || g_hash_table_size (decoder->streams) == 0) {
-      GST_ELEMENT_ERROR (decoder, CORE, MISSING_PLUGIN, (NULL),
-          ("no suitable plugins found"));
+      if (decoder->missing_plugin_errors) {
+        GString *str = g_string_new ("");
+        GList *l;
+
+        for (l = decoder->missing_plugin_errors; l; l = l->next) {
+          GstMessage *msg = l->data;
+          gchar *debug;
+
+          gst_message_parse_error (msg, NULL, &debug);
+          g_string_append (str, debug);
+          g_free (debug);
+          gst_message_unref (msg);
+        }
+        g_list_free (decoder->missing_plugin_errors);
+        decoder->missing_plugin_errors = NULL;
+
+        GST_ELEMENT_ERROR (decoder, CORE, MISSING_PLUGIN, (NULL),
+            ("no suitable plugins found:\n%s", str->str));
+        g_string_free (str, TRUE);
+      } else {
+        GST_ELEMENT_ERROR (decoder, CORE, MISSING_PLUGIN, (NULL),
+            ("no suitable plugins found"));
+      }
     } else {
       gst_element_no_more_pads (GST_ELEMENT_CAST (decoder));
     }
+    do_async_done (decoder);
   }
 
   return;
@@ -1321,17 +1344,6 @@
 
   source_class = G_OBJECT_GET_CLASS (source);
 
-  /* make HTTP sources send extra headers so we get icecast
-   * metadata in case the stream is an icecast stream */
-  if (!strncmp (decoder->uri, "http://", 7)) {
-    pspec = g_object_class_find_property (source_class, "iradio-mode");
-
-    if (pspec && G_PARAM_SPEC_VALUE_TYPE (pspec) == G_TYPE_STRING) {
-      GST_LOG_OBJECT (decoder, "configuring iradio-mode");
-      g_object_set (source, "iradio-mode", TRUE, NULL);
-    }
-  }
-
   pspec = g_object_class_find_property (source_class, "connection-speed");
   if (pspec != NULL) {
     guint64 speed = decoder->connection_speed / 1000;
@@ -1361,7 +1373,7 @@
       wrong_type = TRUE;
     }
 
-    if (wrong_type == FALSE) {
+    if (!wrong_type) {
       g_object_set (source, "connection-speed", speed, NULL);
 
       GST_DEBUG_OBJECT (decoder,
@@ -1478,6 +1490,7 @@
   GST_ELEMENT_ERROR (dec, CORE, MISSING_PLUGIN,
       (_("Missing element '%s' - check your GStreamer installation."),
           element_name), (NULL));
+  do_async_done (GST_URI_DECODE_BIN (dec));
 }
 
 /**
@@ -1870,6 +1883,7 @@
     post_missing_plugin_error (GST_ELEMENT_CAST (decoder), "decodebin");
     GST_ELEMENT_ERROR (decoder, CORE, MISSING_PLUGIN, (NULL),
         ("No decodebin element, check your installation"));
+    do_async_done (decoder);
     return NULL;
   }
 no_typefind:
@@ -1877,6 +1891,7 @@
     gst_object_unref (decodebin);
     GST_ELEMENT_ERROR (decoder, CORE, MISSING_PLUGIN, (NULL),
         ("No typefind element, decodebin is unusable, check your installation"));
+    do_async_done (decoder);
     return NULL;
   }
 }
@@ -1981,11 +1996,9 @@
 
   /* PLAYING in one go might fail (see bug #632782) */
   gst_element_set_state (dec_elem, GST_STATE_PAUSED);
-  gst_element_set_state (dec_elem, GST_STATE_PLAYING);
+  gst_element_sync_state_with_parent (dec_elem);
   if (queue)
-    gst_element_set_state (queue, GST_STATE_PLAYING);
-
-  do_async_done (decoder);
+    gst_element_sync_state_with_parent (queue);
 
   return;
 
@@ -1999,6 +2012,7 @@
   {
     GST_ELEMENT_ERROR (decoder, CORE, NEGOTIATION,
         (NULL), ("Can't link typefind to decodebin element"));
+    do_async_done (decoder);
     return;
   }
 no_buffer_element:
@@ -2034,8 +2048,6 @@
       g_signal_connect (decoder->typefind, "have-type",
       G_CALLBACK (type_found), decoder);
 
-  do_async_start (decoder);
-
   return TRUE;
 
   /* ERRORS */
@@ -2044,6 +2056,7 @@
     post_missing_plugin_error (GST_ELEMENT_CAST (decoder), "typefind");
     GST_ELEMENT_ERROR (decoder, CORE, MISSING_PLUGIN, (NULL),
         ("No typefind element, check your installation"));
+    do_async_done (decoder);
     return FALSE;
   }
 could_not_link:
@@ -2053,6 +2066,7 @@
     gst_bin_remove (GST_BIN_CAST (decoder), typefind);
     /* Don't loose the SOURCE flag */
     GST_OBJECT_FLAG_SET (decoder, GST_ELEMENT_FLAG_SOURCE);
+    do_async_done (decoder);
     return FALSE;
   }
 }
@@ -2141,7 +2155,7 @@
 
   GST_DEBUG_OBJECT (bin, "linked decoder to new pad");
 
-  gst_element_set_state (decoder, GST_STATE_PLAYING);
+  gst_element_sync_state_with_parent (decoder);
   GST_URI_DECODE_BIN_UNLOCK (bin);
 
   return;
@@ -2158,6 +2172,7 @@
     GST_ELEMENT_ERROR (bin, CORE, NEGOTIATION,
         (NULL), ("Can't link source to decoder element"));
     GST_URI_DECODE_BIN_UNLOCK (bin);
+    do_async_done (bin);
     return;
   }
 }
@@ -2230,6 +2245,7 @@
     /* source provides raw data, we added the pads and we can now signal a
      * no_more pads because we are done. */
     gst_element_no_more_pads (GST_ELEMENT_CAST (decoder));
+    do_async_done (decoder);
     return TRUE;
   }
   if (!have_out && !is_dynamic) {
@@ -2395,6 +2411,8 @@
 static void
 handle_message (GstBin * bin, GstMessage * msg)
 {
+  GstURIDecodeBin *dec = GST_URI_DECODE_BIN (bin);
+
   switch (GST_MESSAGE_TYPE (msg)) {
     case GST_MESSAGE_ELEMENT:{
       if (gst_message_has_name (msg, "redirect")) {
@@ -2402,7 +2420,7 @@
          * the user of this element as it can in most cases just pick the first item
          * of the sorted list as a good redirection candidate. It can of course
          * choose something else from the list if it has a better way. */
-        msg = handle_redirect_message (GST_URI_DECODE_BIN (bin), msg);
+        msg = handle_redirect_message (dec, msg);
       }
       break;
     }
@@ -2417,6 +2435,9 @@
       if (g_error_matches (err, GST_CORE_ERROR, GST_CORE_ERROR_MISSING_PLUGIN)
           || g_error_matches (err, GST_STREAM_ERROR,
               GST_STREAM_ERROR_CODEC_NOT_FOUND)) {
+        dec->missing_plugin_errors =
+            g_list_prepend (dec->missing_plugin_errors, gst_message_ref (msg));
+
         no_more_pads_full (GST_ELEMENT (GST_MESSAGE_SRC (msg)), FALSE,
             GST_URI_DECODE_BIN (bin));
         gst_message_unref (msg);
@@ -2535,24 +2556,27 @@
     GstClockTime min, max;
     gboolean live;
 
-    g_value_set_boolean (ret, TRUE);
-
     gst_query_parse_latency (fold->query, &live, &min, &max);
 
-    GST_DEBUG_OBJECT (item,
+    GST_DEBUG_OBJECT (pad,
         "got latency min %" GST_TIME_FORMAT ", max %" GST_TIME_FORMAT
         ", live %d", GST_TIME_ARGS (min), GST_TIME_ARGS (max), live);
 
-    /* for the combined latency we collect the MAX of all min latencies and
-     * the MIN of all max latencies */
-    if (min > fold->min)
-      fold->min = min;
-    if (fold->max == -1)
-      fold->max = max;
-    else if (max < fold->max)
-      fold->max = max;
-    if (fold->live == FALSE)
-      fold->live = live;
+    if (live) {
+      /* for the combined latency we collect the MAX of all min latencies and
+       * the MIN of all max latencies */
+      if (min > fold->min)
+        fold->min = min;
+      if (fold->max == -1)
+        fold->max = max;
+      else if (max < fold->max)
+        fold->max = max;
+
+      fold->live = TRUE;
+    }
+  } else {
+    GST_LOG_OBJECT (pad, "latency query failed");
+    g_value_set_boolean (ret, FALSE);
   }
 
   return TRUE;
@@ -2584,7 +2608,7 @@
 
     GST_DEBUG_OBJECT (item, "got seekable %d", seekable);
 
-    if (fold->seekable == TRUE)
+    if (fold->seekable)
       fold->seekable = seekable;
   }
 
@@ -2633,6 +2657,7 @@
   QueryDoneFunction fold_done = NULL;
   QueryFold fold_data;
   GValue ret = { 0 };
+  gboolean default_ret = FALSE;
 
   decoder = GST_URI_DECODE_BIN (element);
 
@@ -2654,6 +2679,7 @@
       fold_func = (GstIteratorFoldFunction) decoder_query_latency_fold;
       fold_init = decoder_query_init;
       fold_done = decoder_query_latency_done;
+      default_ret = TRUE;
       break;
     case GST_QUERY_SEEKING:
       /* iterate and collect durations */
@@ -2669,7 +2695,7 @@
   fold_data.query = query;
 
   g_value_init (&ret, G_TYPE_BOOLEAN);
-  g_value_set_boolean (&ret, FALSE);
+  g_value_set_boolean (&ret, default_ret);
 
   iter = gst_element_iterate_src_pads (element);
   GST_DEBUG_OBJECT (element, "Sending query %p (type %d) to src pads",
@@ -2688,7 +2714,7 @@
         gst_iterator_resync (iter);
         if (fold_init)
           fold_init (decoder, &fold_data);
-        g_value_set_boolean (&ret, FALSE);
+        g_value_set_boolean (&ret, default_ret);
         break;
       case GST_ITERATOR_OK:
       case GST_ITERATOR_DONE:
@@ -2718,26 +2744,53 @@
 
   switch (transition) {
     case GST_STATE_CHANGE_READY_TO_PAUSED:
-      if (!setup_source (decoder))
-        goto source_failed;
+      do_async_start (decoder);
       break;
     default:
       break;
   }
 
   ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition);
+  if (ret == GST_STATE_CHANGE_FAILURE)
+    goto setup_failed;
+  else if (ret == GST_STATE_CHANGE_NO_PREROLL)
+    do_async_done (decoder);
 
   switch (transition) {
     case GST_STATE_CHANGE_READY_TO_PAUSED:
       GST_DEBUG ("ready to paused");
+      if (!setup_source (decoder))
+        goto source_failed;
+
+      ret = GST_STATE_CHANGE_ASYNC;
+
+      /* And now sync the states of everything we added */
+      g_slist_foreach (decoder->decodebins,
+          (GFunc) gst_element_sync_state_with_parent, NULL);
+      if (decoder->typefind)
+        ret = gst_element_set_state (decoder->typefind, GST_STATE_PAUSED);
       if (ret == GST_STATE_CHANGE_FAILURE)
         goto setup_failed;
+      if (decoder->queue)
+        ret = gst_element_set_state (decoder->queue, GST_STATE_PAUSED);
+      if (ret == GST_STATE_CHANGE_FAILURE)
+        goto setup_failed;
+      if (decoder->source)
+        ret = gst_element_set_state (decoder->source, GST_STATE_PAUSED);
+      if (ret == GST_STATE_CHANGE_FAILURE)
+        goto setup_failed;
+      if (ret == GST_STATE_CHANGE_SUCCESS)
+        ret = GST_STATE_CHANGE_ASYNC;
+
       break;
     case GST_STATE_CHANGE_PAUSED_TO_READY:
       GST_DEBUG ("paused to ready");
       remove_decoders (decoder, FALSE);
       remove_source (decoder);
       do_async_done (decoder);
+      g_list_free_full (decoder->missing_plugin_errors,
+          (GDestroyNotify) gst_message_unref);
+      decoder->missing_plugin_errors = NULL;
       break;
     case GST_STATE_CHANGE_READY_TO_NULL:
       GST_DEBUG ("ready to null");
@@ -2752,11 +2805,13 @@
   /* ERRORS */
 source_failed:
   {
+    do_async_done (decoder);
     return GST_STATE_CHANGE_FAILURE;
   }
 setup_failed:
   {
     /* clean up leftover groups */
+    do_async_done (decoder);
     return GST_STATE_CHANGE_FAILURE;
   }
 }
diff --git a/gst/subparse/Makefile.in b/gst/subparse/Makefile.in
index 2edb0a9..864611c 100644
--- a/gst/subparse/Makefile.in
+++ b/gst/subparse/Makefile.in
@@ -103,7 +103,6 @@
 	$(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-x11.m4 \
 	$(top_srcdir)/common/m4/gst.m4 \
 	$(top_srcdir)/common/m4/gtk-doc.m4 \
 	$(top_srcdir)/common/m4/introspection.m4 \
@@ -292,6 +291,8 @@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_2_0_CFLAGS = @GIO_UNIX_2_0_CFLAGS@
+GIO_UNIX_2_0_LIBS = @GIO_UNIX_2_0_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
@@ -321,6 +322,8 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
+GST_NET_CFLAGS = @GST_NET_CFLAGS@
+GST_NET_LIBS = @GST_NET_LIBS@
 GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
 GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
@@ -348,7 +351,6 @@
 GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
 GTK_X11_LIBS = @GTK_X11_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
-HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -452,13 +454,12 @@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-XMKMF = @XMKMF@
+XSHM_CFLAGS = @XSHM_CFLAGS@
 XSHM_LIBS = @XSHM_LIBS@
+XVIDEO_CFLAGS = @XVIDEO_CFLAGS@
 XVIDEO_LIBS = @XVIDEO_LIBS@
 X_CFLAGS = @X_CFLAGS@
-X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
-X_PRE_LIBS = @X_PRE_LIBS@
 ZLIB_CFLAGS = @ZLIB_CFLAGS@
 ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
diff --git a/gst/subparse/gstsubparse.c b/gst/subparse/gstsubparse.c
index b565e93..11b76c3 100644
--- a/gst/subparse/gstsubparse.c
+++ b/gst/subparse/gstsubparse.c
@@ -1275,15 +1275,15 @@
   subrip_grx = (GRegex *) subrip_rx_once.retval;
   dks_grx = (GRegex *) dks_rx_once.retval;
 
-  if (g_regex_match (mdvd_grx, match_str, 0, NULL) == TRUE) {
+  if (g_regex_match (mdvd_grx, match_str, 0, NULL)) {
     GST_LOG ("MicroDVD (frame based) format detected");
     return GST_SUB_PARSE_FORMAT_MDVDSUB;
   }
-  if (g_regex_match (subrip_grx, match_str, 0, NULL) == TRUE) {
+  if (g_regex_match (subrip_grx, match_str, 0, NULL)) {
     GST_LOG ("SubRip (time based) format detected");
     return GST_SUB_PARSE_FORMAT_SUBRIP;
   }
-  if (g_regex_match (dks_grx, match_str, 0, NULL) == TRUE) {
+  if (g_regex_match (dks_grx, match_str, 0, NULL)) {
     GST_LOG ("DKS (time based) format detected");
     return GST_SUB_PARSE_FORMAT_DKS;
   }
diff --git a/gst/tcp/Makefile.am b/gst/tcp/Makefile.am
index c6f50d9..bc91a42 100644
--- a/gst/tcp/Makefile.am
+++ b/gst/tcp/Makefile.am
@@ -8,6 +8,7 @@
 endif
 
 libgsttcp_la_SOURCES = \
+	gstsocketsrc.c \
 	gsttcpplugin.c \
 	gsttcpclientsrc.c gsttcpclientsink.c \
 	$(multifdsink_SOURCES) \
@@ -15,12 +16,13 @@
 	gstmultisocketsink.c  \
 	gsttcpserversrc.c gsttcpserversink.c
 
-libgsttcp_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(GIO_CFLAGS)
+libgsttcp_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_NET_CFLAGS) $(GST_CFLAGS) $(GIO_CFLAGS)
 libgsttcp_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgsttcp_la_LIBADD = $(GST_BASE_LIBS) $(GST_LIBS) $(GIO_LIBS)
+libgsttcp_la_LIBADD = $(GST_BASE_LIBS) $(GST_NET_LIBS) $(GST_LIBS) $(GIO_LIBS)
 libgsttcp_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 
 noinst_HEADERS = \
+  gstsocketsrc.h \
   gsttcp.h \
   gsttcpclientsrc.h gsttcpclientsink.h \
   gstmultifdsink.h  \
diff --git a/gst/tcp/Makefile.in b/gst/tcp/Makefile.in
index 8bb41b5..7096c1a 100644
--- a/gst/tcp/Makefile.in
+++ b/gst/tcp/Makefile.in
@@ -103,7 +103,6 @@
 	$(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-x11.m4 \
 	$(top_srcdir)/common/m4/gst.m4 \
 	$(top_srcdir)/common/m4/gtk-doc.m4 \
 	$(top_srcdir)/common/m4/introspection.m4 \
@@ -155,14 +154,16 @@
 LTLIBRARIES = $(plugin_LTLIBRARIES)
 am__DEPENDENCIES_1 =
 libgsttcp_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
-	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
-am__libgsttcp_la_SOURCES_DIST = gsttcpplugin.c gsttcpclientsrc.c \
-	gsttcpclientsink.c gstmultifdsink.c gstmultihandlesink.c \
-	gstmultisocketsink.c gsttcpserversrc.c gsttcpserversink.c
+	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_1)
+am__libgsttcp_la_SOURCES_DIST = gstsocketsrc.c gsttcpplugin.c \
+	gsttcpclientsrc.c gsttcpclientsink.c gstmultifdsink.c \
+	gstmultihandlesink.c gstmultisocketsink.c gsttcpserversrc.c \
+	gsttcpserversink.c
 @HAVE_SYS_SOCKET_H_TRUE@am__objects_1 =  \
 @HAVE_SYS_SOCKET_H_TRUE@	libgsttcp_la-gstmultifdsink.lo
-am_libgsttcp_la_OBJECTS = libgsttcp_la-gsttcpplugin.lo \
-	libgsttcp_la-gsttcpclientsrc.lo \
+am_libgsttcp_la_OBJECTS = libgsttcp_la-gstsocketsrc.lo \
+	libgsttcp_la-gsttcpplugin.lo libgsttcp_la-gsttcpclientsrc.lo \
 	libgsttcp_la-gsttcpclientsink.lo $(am__objects_1) \
 	libgsttcp_la-gstmultihandlesink.lo \
 	libgsttcp_la-gstmultisocketsink.lo \
@@ -298,6 +299,8 @@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_2_0_CFLAGS = @GIO_UNIX_2_0_CFLAGS@
+GIO_UNIX_2_0_LIBS = @GIO_UNIX_2_0_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
@@ -327,6 +330,8 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
+GST_NET_CFLAGS = @GST_NET_CFLAGS@
+GST_NET_LIBS = @GST_NET_LIBS@
 GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
 GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
@@ -354,7 +359,6 @@
 GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
 GTK_X11_LIBS = @GTK_X11_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
-HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -458,13 +462,12 @@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-XMKMF = @XMKMF@
+XSHM_CFLAGS = @XSHM_CFLAGS@
 XSHM_LIBS = @XSHM_LIBS@
+XVIDEO_CFLAGS = @XVIDEO_CFLAGS@
 XVIDEO_LIBS = @XVIDEO_LIBS@
 X_CFLAGS = @X_CFLAGS@
-X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
-X_PRE_LIBS = @X_PRE_LIBS@
 ZLIB_CFLAGS = @ZLIB_CFLAGS@
 ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
@@ -535,6 +538,7 @@
 @HAVE_SYS_SOCKET_H_TRUE@	gstmultifdsink.c
 
 libgsttcp_la_SOURCES = \
+	gstsocketsrc.c \
 	gsttcpplugin.c \
 	gsttcpclientsrc.c gsttcpclientsink.c \
 	$(multifdsink_SOURCES) \
@@ -542,11 +546,12 @@
 	gstmultisocketsink.c  \
 	gsttcpserversrc.c gsttcpserversink.c
 
-libgsttcp_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(GIO_CFLAGS)
+libgsttcp_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_NET_CFLAGS) $(GST_CFLAGS) $(GIO_CFLAGS)
 libgsttcp_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgsttcp_la_LIBADD = $(GST_BASE_LIBS) $(GST_LIBS) $(GIO_LIBS)
+libgsttcp_la_LIBADD = $(GST_BASE_LIBS) $(GST_NET_LIBS) $(GST_LIBS) $(GIO_LIBS)
 libgsttcp_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 noinst_HEADERS = \
+  gstsocketsrc.h \
   gsttcp.h \
   gsttcpclientsrc.h gsttcpclientsink.h \
   gstmultifdsink.h  \
@@ -636,6 +641,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgsttcp_la-gstmultifdsink.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgsttcp_la-gstmultihandlesink.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgsttcp_la-gstmultisocketsink.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgsttcp_la-gstsocketsrc.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgsttcp_la-gsttcpclientsink.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgsttcp_la-gsttcpclientsrc.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgsttcp_la-gsttcpplugin.Plo@am__quote@
@@ -666,6 +672,13 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
+libgsttcp_la-gstsocketsrc.lo: gstsocketsrc.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttcp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttcp_la_CFLAGS) $(CFLAGS) -MT libgsttcp_la-gstsocketsrc.lo -MD -MP -MF $(DEPDIR)/libgsttcp_la-gstsocketsrc.Tpo -c -o libgsttcp_la-gstsocketsrc.lo `test -f 'gstsocketsrc.c' || echo '$(srcdir)/'`gstsocketsrc.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgsttcp_la-gstsocketsrc.Tpo $(DEPDIR)/libgsttcp_la-gstsocketsrc.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstsocketsrc.c' object='libgsttcp_la-gstsocketsrc.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 $(libgsttcp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttcp_la_CFLAGS) $(CFLAGS) -c -o libgsttcp_la-gstsocketsrc.lo `test -f 'gstsocketsrc.c' || echo '$(srcdir)/'`gstsocketsrc.c
+
 libgsttcp_la-gsttcpplugin.lo: gsttcpplugin.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttcp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttcp_la_CFLAGS) $(CFLAGS) -MT libgsttcp_la-gsttcpplugin.lo -MD -MP -MF $(DEPDIR)/libgsttcp_la-gsttcpplugin.Tpo -c -o libgsttcp_la-gsttcpplugin.lo `test -f 'gsttcpplugin.c' || echo '$(srcdir)/'`gsttcpplugin.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgsttcp_la-gsttcpplugin.Tpo $(DEPDIR)/libgsttcp_la-gsttcpplugin.Plo
diff --git a/gst/tcp/gstmultihandlesink.c b/gst/tcp/gstmultihandlesink.c
index b9ba36b..38bd841 100644
--- a/gst/tcp/gstmultihandlesink.c
+++ b/gst/tcp/gstmultihandlesink.c
@@ -677,6 +677,10 @@
   if (clink != NULL)
     goto duplicate;
 
+  /* We do not take ownership of @handle in this function, but we can't take a
+   * reference directly as we don't know the concrete type of the handle.
+   * GstMultiHandleSink relies on the derived class to take a reference for us
+   * in new_client: */
   mhclient = mhsinkclass->new_client (mhsink, handle, sync_method);
 
   /* we can add the handle now */
@@ -1907,7 +1911,7 @@
   /* if we get IN_CAPS buffers, but the previous buffer was not IN_CAPS,
    * it means we're getting new streamheader buffers, and we should clear
    * the old ones */
-  if (in_caps && sink->previous_buffer_in_caps == FALSE) {
+  if (in_caps && !sink->previous_buffer_in_caps) {
     GST_DEBUG_OBJECT (sink,
         "receiving new HEADER buffers, clearing old streamheader");
     g_slist_foreach (sink->streamheader, (GFunc) gst_mini_object_unref, NULL);
diff --git a/gst/tcp/gstmultisocketsink.c b/gst/tcp/gstmultisocketsink.c
index 01647b1..22a7e33 100644
--- a/gst/tcp/gstmultisocketsink.c
+++ b/gst/tcp/gstmultisocketsink.c
@@ -103,6 +103,7 @@
 #endif
 
 #include <gst/gst-i18n-plugin.h>
+#include <gst/net/gstnetcontrolmessagemeta.h>
 
 #include <string.h>
 
@@ -600,6 +601,120 @@
   return ret;
 }
 
+/**
+ * map_memory_output_vector_n:
+ * @buf: The #GstBuffer that should be mapped
+ * @offset: Offset into the buffer that should be mapped
+ * @vectors: (out,array length=num_vectors): an array of #GOutputVector structs to write into
+ * @mapinfo: (out,array length=num_vectors): an array of #GstMapInfo structs to write into
+ * @num_vectors: the number of elements in @vectors to prevent buffer overruns
+ *
+ * Maps a buffer into memory, populating a #GOutputVector to use scatter-gather
+ * I/O to send the data over a socket.  The whole buffer won't be mapped into
+ * memory if it consists of more than @num_vectors #GstMemory s.
+ *
+ * Use #unmap_n_memorys after you are
+ * finished with the mappings.
+ *
+ * Returns: The number of GstMemorys mapped
+ */
+static int
+map_n_memory_output_vector (GstBuffer * buf, size_t offset,
+    GOutputVector * vectors, GstMapInfo * mapinfo, int num_vectors)
+{
+  guint mem_idx, mem_len;
+  gsize mem_skip;
+  size_t maxsize;
+  int i;
+
+  g_return_val_if_fail (num_vectors > 0, 0);
+  memset (vectors, 0, sizeof (GOutputVector) * num_vectors);
+
+  maxsize = gst_buffer_get_size (buf) - offset;
+  if (!gst_buffer_find_memory (buf, offset, maxsize, &mem_idx, &mem_len,
+          &mem_skip))
+    g_error ("Unable to map memory at offset %" G_GSIZE_FORMAT ", buffer "
+        "length is %" G_GSIZE_FORMAT, offset, gst_buffer_get_size (buf));
+
+  for (i = 0; i < mem_len && i < num_vectors; i++) {
+    GstMapInfo map = { 0 };
+    GstMemory *mem = gst_buffer_peek_memory (buf, mem_idx + i);
+    if (!gst_memory_map (mem, &map, GST_MAP_READ))
+      g_error ("Unable to map memory %p.  This should never happen.", mem);
+
+    if (i == 0) {
+      vectors[i].buffer = map.data + mem_skip;
+      vectors[i].size = map.size - mem_skip;
+    } else {
+      vectors[i].buffer = map.data;
+      vectors[i].size = map.size;
+    }
+    mapinfo[i] = map;
+  }
+  return i;
+}
+
+/**
+ * map_n_memory_output_vector:
+ * @buf: The #GstBuffer that should be mapped
+ * @offset: Offset into the buffer that should be mapped
+ * @vectors: (out,array length=num_vectors): an array of #GOutputVector structs to write into
+ * @num_vectors: the number of elements in @vectors to prevent buffer overruns
+ *
+ * Returns: The number of GstMemorys mapped
+ */
+static void
+unmap_n_memorys (GstMapInfo * mapinfo, int num_mappings)
+{
+  int i;
+  g_return_if_fail (num_mappings > 0);
+
+  for (i = 0; i < num_mappings; i++)
+    gst_memory_unmap (mapinfo[i].memory, &mapinfo[i]);
+}
+
+static gsize
+gst_buffer_get_cmsg_list (GstBuffer * buf, GSocketControlMessage ** msgs,
+    gsize msg_space)
+{
+  gpointer iter_state = NULL;
+  GstMeta *meta;
+  gsize msg_count = 0;
+
+  while ((meta = gst_buffer_iterate_meta (buf, &iter_state)) != NULL
+      && msg_count < msg_space) {
+    if (meta->info->api == GST_NET_CONTROL_MESSAGE_META_API_TYPE)
+      msgs[msg_count++] = ((GstNetControlMessageMeta *) meta)->message;
+  }
+
+  return msg_count;
+}
+
+#define CMSG_MAX 255
+
+static gssize
+gst_multi_socket_sink_write (GstMultiSocketSink * sink,
+    GSocket * sock, GstBuffer * buffer, gsize bufoffset,
+    GCancellable * cancellable, GError ** err)
+{
+  GstMapInfo maps[8];
+  GOutputVector vec[8];
+  guint mems_mapped;
+  gssize wrote;
+  GSocketControlMessage *cmsgs[CMSG_MAX];
+  gsize msg_count;
+
+  mems_mapped = map_n_memory_output_vector (buffer, bufoffset, vec, maps, 8);
+
+  msg_count = gst_buffer_get_cmsg_list (buffer, cmsgs, CMSG_MAX);
+
+  wrote =
+      g_socket_send_message (sock, NULL, vec, mems_mapped, cmsgs, msg_count, 0,
+      cancellable, err);
+  unmap_n_memorys (maps, mems_mapped);
+  return wrote;
+}
+
 /* Handle a write on a client,
  * which indicates a read request from a client.
  *
@@ -644,8 +759,6 @@
 
   more = TRUE;
   do {
-    gint maxsize;
-
     if (!mhclient->sending) {
       /* client is not working on a buffer */
       if (mhclient->bufpos == -1) {
@@ -725,22 +838,12 @@
     if (mhclient->sending) {
       gssize wrote;
       GstBuffer *head;
-      GstMapInfo map;
 
       /* pick first buffer from list */
       head = GST_BUFFER (mhclient->sending->data);
 
-      gst_buffer_map (head, &map, GST_MAP_READ);
-      maxsize = map.size - mhclient->bufoffset;
-
-      /* FIXME: specific */
-      /* try to write the complete buffer */
-
-      wrote =
-          g_socket_send (mhclient->handle.socket,
-          (gchar *) map.data + mhclient->bufoffset, maxsize, sink->cancellable,
-          &err);
-      gst_buffer_unmap (head, &map);
+      wrote = gst_multi_socket_sink_write (sink, mhclient->handle.socket, head,
+          mhclient->bufoffset, sink->cancellable, &err);
 
       if (wrote < 0) {
         /* hmm error.. */
@@ -755,7 +858,7 @@
           goto write_error;
         }
       } else {
-        if (wrote < maxsize) {
+        if (wrote < (gst_buffer_get_size (head) - mhclient->bufoffset)) {
           /* partial write, try again now */
           GST_LOG_OBJECT (sink,
               "partial write on %p of %" G_GSSIZE_FORMAT " bytes",
diff --git a/gst/tcp/gstsocketsrc.c b/gst/tcp/gstsocketsrc.c
new file mode 100644
index 0000000..81eef0a
--- /dev/null
+++ b/gst/tcp/gstsocketsrc.c
@@ -0,0 +1,330 @@
+/* GStreamer
+ * Copyright (C) <1999> Erik Walthinsen <omega@cse.ogi.edu>
+ * Copyright (C) <2004> Thomas Vander Stichele <thomas at apestaart dot org>
+ * Copyright (C) <2011> Collabora Ltd.
+ *     Author: Sebastian Dröge <sebastian.droege@collabora.co.uk>
+ * Copyright (C) <2014> William Manley <will@williammanley.net>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+/**
+ * SECTION:element-socketsrc
+ *
+ * Receive data from a socket.
+ *
+ * As compared to other elements:
+ *
+ * socketsrc can be considered a source counterpart to the #multisocketsink
+ * sink.
+ *
+ * socketsrc can also be considered a generalization of #tcpclientsrc and
+ * #tcpserversrc: it contains all the logic required to communicate over the
+ * socket but none of the logic for creating the sockets/establishing the
+ * connection in the first place, allowing the user to accomplish this
+ * externally in whatever manner they wish making it applicable to other types
+ * of sockets besides TCP.
+ *
+ * As compared to #fdsrc socketsrc is socket specific and deals with #GSocket
+ * objects rather than sockets via integer file-descriptors.
+ *
+ * @see_also: #multisocketsink
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <gst/gst-i18n-plugin.h>
+#include <gst/net/gstnetcontrolmessagemeta.h>
+#include "gstsocketsrc.h"
+#include "gsttcp.h"
+
+GST_DEBUG_CATEGORY_STATIC (socketsrc_debug);
+#define GST_CAT_DEFAULT socketsrc_debug
+
+#define MAX_READ_SIZE                   4 * 1024
+
+
+static GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src",
+    GST_PAD_SRC,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS_ANY);
+
+
+enum
+{
+  PROP_0,
+  PROP_SOCKET,
+};
+
+enum
+{
+  CONNECTION_CLOSED_BY_PEER,
+  LAST_SIGNAL
+};
+
+static guint gst_socket_src_signals[LAST_SIGNAL] = { 0 };
+
+#define gst_socket_src_parent_class parent_class
+G_DEFINE_TYPE (GstSocketSrc, gst_socket_src, GST_TYPE_PUSH_SRC);
+
+
+static void gst_socket_src_finalize (GObject * gobject);
+
+static GstFlowReturn gst_socket_src_fill (GstPushSrc * psrc,
+    GstBuffer * outbuf);
+static gboolean gst_socket_src_unlock (GstBaseSrc * bsrc);
+static gboolean gst_socket_src_unlock_stop (GstBaseSrc * bsrc);
+
+static void gst_socket_src_set_property (GObject * object, guint prop_id,
+    const GValue * value, GParamSpec * pspec);
+static void gst_socket_src_get_property (GObject * object, guint prop_id,
+    GValue * value, GParamSpec * pspec);
+
+#define SWAP(a, b) do { GSocket* _swap_tmp = a; a = b; b = _swap_tmp; } while (0);
+
+static void
+gst_socket_src_class_init (GstSocketSrcClass * klass)
+{
+  GObjectClass *gobject_class;
+  GstElementClass *gstelement_class;
+  GstBaseSrcClass *gstbasesrc_class;
+  GstPushSrcClass *gstpush_src_class;
+
+  gobject_class = (GObjectClass *) klass;
+  gstelement_class = (GstElementClass *) klass;
+  gstbasesrc_class = (GstBaseSrcClass *) klass;
+  gstpush_src_class = (GstPushSrcClass *) klass;
+
+  gobject_class->set_property = gst_socket_src_set_property;
+  gobject_class->get_property = gst_socket_src_get_property;
+  gobject_class->finalize = gst_socket_src_finalize;
+
+  g_object_class_install_property (gobject_class, PROP_SOCKET,
+      g_param_spec_object ("socket", "Socket",
+          "The socket to receive packets from", G_TYPE_SOCKET,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  gst_socket_src_signals[CONNECTION_CLOSED_BY_PEER] =
+      g_signal_new ("connection-closed-by-peer", G_TYPE_FROM_CLASS (klass),
+      G_SIGNAL_RUN_FIRST, G_STRUCT_OFFSET (GstSocketSrcClass,
+          connection_closed_by_peer), NULL, NULL, NULL, G_TYPE_NONE, 0);
+
+  gst_element_class_add_pad_template (gstelement_class,
+      gst_static_pad_template_get (&srctemplate));
+
+  gst_element_class_set_static_metadata (gstelement_class,
+      "socket source", "Source/Network",
+      "Receive data from a socket",
+      "Thomas Vander Stichele <thomas at apestaart dot org>, "
+      "William Manley <will@williammanley.net>");
+
+  gstbasesrc_class->unlock = gst_socket_src_unlock;
+  gstbasesrc_class->unlock_stop = gst_socket_src_unlock_stop;
+
+  gstpush_src_class->fill = gst_socket_src_fill;
+
+  GST_DEBUG_CATEGORY_INIT (socketsrc_debug, "socketsrc", 0, "Socket Source");
+}
+
+static void
+gst_socket_src_init (GstSocketSrc * this)
+{
+  this->socket = NULL;
+  this->cancellable = g_cancellable_new ();
+}
+
+static void
+gst_socket_src_finalize (GObject * gobject)
+{
+  GstSocketSrc *this = GST_SOCKET_SRC (gobject);
+
+  g_clear_object (&this->cancellable);
+  g_clear_object (&this->socket);
+
+  G_OBJECT_CLASS (parent_class)->finalize (gobject);
+}
+
+static GstFlowReturn
+gst_socket_src_fill (GstPushSrc * psrc, GstBuffer * outbuf)
+{
+  GstSocketSrc *src;
+  GstFlowReturn ret = GST_FLOW_OK;
+  gssize rret;
+  GError *err = NULL;
+  GstMapInfo map;
+  GSocket *socket = NULL;
+  GSocketControlMessage **messages = NULL;
+  gint num_messages = 0;
+  gint i;
+  GInputVector ivec;
+  gint flags = 0;
+
+  src = GST_SOCKET_SRC (psrc);
+
+  GST_OBJECT_LOCK (src);
+
+  if (src->socket)
+    socket = g_object_ref (src->socket);
+
+  GST_OBJECT_UNLOCK (src);
+
+  if (socket == NULL)
+    goto no_socket;
+
+  GST_LOG_OBJECT (src, "asked for a buffer");
+
+retry:
+  gst_buffer_map (outbuf, &map, GST_MAP_READWRITE);
+  ivec.buffer = map.data;
+  ivec.size = map.size;
+  rret =
+      g_socket_receive_message (socket, NULL, &ivec, 1, &messages,
+      &num_messages, &flags, src->cancellable, &err);
+  gst_buffer_unmap (outbuf, &map);
+
+  for (i = 0; i < num_messages; i++) {
+    gst_buffer_add_net_control_message_meta (outbuf, messages[i]);
+    g_object_unref (messages[i]);
+    messages[i] = NULL;
+  }
+  g_free (messages);
+
+  if (rret == 0) {
+    GSocket *tmp = NULL;
+    GST_DEBUG_OBJECT (src, "Received EOS on socket %p fd %i", socket,
+        g_socket_get_fd (socket));
+
+    /* We've hit EOS but we'll send this signal to allow someone to change
+     * our socket before we send EOS downstream. */
+    g_signal_emit (src, gst_socket_src_signals[CONNECTION_CLOSED_BY_PEER], 0);
+
+    GST_OBJECT_LOCK (src);
+
+    if (src->socket)
+      tmp = g_object_ref (src->socket);
+
+    GST_OBJECT_UNLOCK (src);
+
+    /* Do this dance with tmp to avoid unreffing with the lock held */
+    if (tmp != NULL && tmp != socket) {
+      SWAP (socket, tmp);
+      g_clear_object (&tmp);
+
+      GST_INFO_OBJECT (src, "New socket available after EOS %p fd %i: Retrying",
+          socket, g_socket_get_fd (socket));
+
+      /* retry with our new socket: */
+      goto retry;
+    } else {
+      g_clear_object (&tmp);
+      GST_INFO_OBJECT (src, "Forwarding EOS downstream");
+      ret = GST_FLOW_EOS;
+    }
+  } else if (rret < 0) {
+    if (g_error_matches (err, G_IO_ERROR, G_IO_ERROR_CANCELLED)) {
+      ret = GST_FLOW_FLUSHING;
+      GST_DEBUG_OBJECT (src, "Cancelled reading from socket");
+    } else {
+      ret = GST_FLOW_ERROR;
+      GST_ELEMENT_ERROR (src, RESOURCE, READ, (NULL),
+          ("Failed to read from socket: %s", err->message));
+    }
+  } else {
+    ret = GST_FLOW_OK;
+    gst_buffer_resize (outbuf, 0, rret);
+
+    GST_LOG_OBJECT (src,
+        "Returning buffer from _get of size %" G_GSIZE_FORMAT ", ts %"
+        GST_TIME_FORMAT ", dur %" GST_TIME_FORMAT
+        ", offset %" G_GINT64_FORMAT ", offset_end %" G_GINT64_FORMAT,
+        gst_buffer_get_size (outbuf),
+        GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (outbuf)),
+        GST_TIME_ARGS (GST_BUFFER_DURATION (outbuf)),
+        GST_BUFFER_OFFSET (outbuf), GST_BUFFER_OFFSET_END (outbuf));
+  }
+  g_clear_error (&err);
+  g_clear_object (&socket);
+
+  return ret;
+
+no_socket:
+  {
+    GST_ELEMENT_ERROR (src, RESOURCE, NOT_FOUND, (NULL),
+        ("Cannot receive: No socket set on socketsrc"));
+    return GST_FLOW_ERROR;
+  }
+}
+
+static void
+gst_socket_src_set_property (GObject * object, guint prop_id,
+    const GValue * value, GParamSpec * pspec)
+{
+  GstSocketSrc *socketsrc = GST_SOCKET_SRC (object);
+
+  switch (prop_id) {
+    case PROP_SOCKET:{
+      GSocket *socket = G_SOCKET (g_value_dup_object (value));
+      GST_OBJECT_LOCK (socketsrc);
+      SWAP (socket, socketsrc->socket);
+      GST_OBJECT_UNLOCK (socketsrc);
+      g_clear_object (&socket);
+      break;
+    }
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
+}
+
+static void
+gst_socket_src_get_property (GObject * object, guint prop_id,
+    GValue * value, GParamSpec * pspec)
+{
+  GstSocketSrc *socketsrc = GST_SOCKET_SRC (object);
+
+  switch (prop_id) {
+    case PROP_SOCKET:
+      g_value_set_object (value, socketsrc->socket);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
+}
+
+static gboolean
+gst_socket_src_unlock (GstBaseSrc * bsrc)
+{
+  GstSocketSrc *src = GST_SOCKET_SRC (bsrc);
+
+  GST_DEBUG_OBJECT (src, "set to flushing");
+  g_cancellable_cancel (src->cancellable);
+
+  return TRUE;
+}
+
+static gboolean
+gst_socket_src_unlock_stop (GstBaseSrc * bsrc)
+{
+  GstSocketSrc *src = GST_SOCKET_SRC (bsrc);
+
+  GST_DEBUG_OBJECT (src, "unset flushing");
+  g_cancellable_reset (src->cancellable);
+
+  return TRUE;
+}
diff --git a/gst/tcp/gstsocketsrc.h b/gst/tcp/gstsocketsrc.h
new file mode 100644
index 0000000..e628b3a
--- /dev/null
+++ b/gst/tcp/gstsocketsrc.h
@@ -0,0 +1,66 @@
+/* GStreamer
+ * Copyright (C) <1999> Erik Walthinsen <omega@cse.ogi.edu>
+ * Copyright (C) <2004> Thomas Vander Stichele <thomas at apestaart dot org>
+ * Copyright (C) <2014> William Manley <will@williammanley.net>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+
+#ifndef __GST_SOCKET_SRC_H__
+#define __GST_SOCKET_SRC_H__
+
+#include <gst/gst.h>
+#include <gst/base/gstpushsrc.h>
+
+#include <gio/gio.h>
+
+G_BEGIN_DECLS
+
+#define GST_TYPE_SOCKET_SRC \
+  (gst_socket_src_get_type())
+#define GST_SOCKET_SRC(obj) \
+  (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_SOCKET_SRC,GstSocketSrc))
+#define GST_SOCKET_SRC_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_SOCKET_SRC,GstSocketSrcClass))
+#define GST_IS_SOCKET_SRC(obj) \
+  (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_SOCKET_SRC))
+#define GST_IS_SOCKET_SRC_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_SOCKET_SRC))
+
+typedef struct _GstSocketSrc GstSocketSrc;
+typedef struct _GstSocketSrcClass GstSocketSrcClass;
+
+struct _GstSocketSrc {
+  GstPushSrc element;
+
+ /*< private >*/
+  GSocket *socket;
+  GCancellable *cancellable;
+};
+
+struct _GstSocketSrcClass {
+  GstPushSrcClass parent_class;
+
+  /* signals */
+  void  (*connection_closed_by_peer) (GstElement*);
+};
+
+GType gst_socket_src_get_type (void);
+
+G_END_DECLS
+
+#endif /* __GST_SOCKET_SRC_H__ */
diff --git a/gst/tcp/gsttcpplugin.c b/gst/tcp/gsttcpplugin.c
index ac9867e..49db6d3 100644
--- a/gst/tcp/gsttcpplugin.c
+++ b/gst/tcp/gsttcpplugin.c
@@ -21,6 +21,7 @@
 #include "config.h"
 #endif
 
+#include "gstsocketsrc.h"
 #include "gsttcpclientsrc.h"
 #include "gsttcpclientsink.h"
 #include "gsttcpserversrc.h"
@@ -33,6 +34,9 @@
 static gboolean
 plugin_init (GstPlugin * plugin)
 {
+  if (!gst_element_register (plugin, "socketsrc", GST_RANK_NONE,
+          GST_TYPE_SOCKET_SRC))
+    return FALSE;
   if (!gst_element_register (plugin, "tcpclientsink", GST_RANK_NONE,
           GST_TYPE_TCP_CLIENT_SINK))
     return FALSE;
diff --git a/gst/tcp/gsttcpserversink.c b/gst/tcp/gsttcpserversink.c
index 244b576..b805ebc 100644
--- a/gst/tcp/gsttcpserversink.c
+++ b/gst/tcp/gsttcpserversink.c
@@ -163,6 +163,7 @@
     goto accept_failed;
 
   handle.socket = client_socket;
+  /* gst_multi_handle_sink_add does not take ownership of client_socket */
   gst_multi_handle_sink_add (GST_MULTI_HANDLE_SINK (sink), handle);
 
 #ifndef GST_DISABLE_GST_DEBUG
@@ -177,9 +178,11 @@
         ip, g_inet_socket_address_get_port (addr), client_socket);
 
     g_free (ip);
+    g_object_unref (addr);
   }
 #endif
 
+  g_object_unref (client_socket);
   return TRUE;
 
   /* ERRORS */
diff --git a/gst/typefind/Makefile.in b/gst/typefind/Makefile.in
index f299db8..8613c6a 100644
--- a/gst/typefind/Makefile.in
+++ b/gst/typefind/Makefile.in
@@ -102,7 +102,6 @@
 	$(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-x11.m4 \
 	$(top_srcdir)/common/m4/gst.m4 \
 	$(top_srcdir)/common/m4/gtk-doc.m4 \
 	$(top_srcdir)/common/m4/introspection.m4 \
@@ -289,6 +288,8 @@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_2_0_CFLAGS = @GIO_UNIX_2_0_CFLAGS@
+GIO_UNIX_2_0_LIBS = @GIO_UNIX_2_0_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
@@ -318,6 +319,8 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
+GST_NET_CFLAGS = @GST_NET_CFLAGS@
+GST_NET_LIBS = @GST_NET_LIBS@
 GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
 GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
@@ -345,7 +348,6 @@
 GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
 GTK_X11_LIBS = @GTK_X11_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
-HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -449,13 +451,12 @@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-XMKMF = @XMKMF@
+XSHM_CFLAGS = @XSHM_CFLAGS@
 XSHM_LIBS = @XSHM_LIBS@
+XVIDEO_CFLAGS = @XVIDEO_CFLAGS@
 XVIDEO_LIBS = @XVIDEO_LIBS@
 X_CFLAGS = @X_CFLAGS@
-X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
-X_PRE_LIBS = @X_PRE_LIBS@
 ZLIB_CFLAGS = @ZLIB_CFLAGS@
 ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
diff --git a/gst/typefind/gsttypefindfunctions.c b/gst/typefind/gsttypefindfunctions.c
index 031d3d7..c6073c3 100644
--- a/gst/typefind/gsttypefindfunctions.c
+++ b/gst/typefind/gsttypefindfunctions.c
@@ -46,10 +46,6 @@
 GST_DEBUG_CATEGORY_STATIC (type_find_debug);
 #define GST_CAT_DEFAULT type_find_debug
 
-/* so our code stays ready for 0.11 */
-#define gst_type_find_peek(tf,off,len) \
-    ((const guint8 *)gst_type_find_peek((tf),(off),(len)))
-
 /* DataScanCtx: helper for typefind functions that scan through data
  * step-by-step, to avoid doing a peek at each and every offset */
 
@@ -509,8 +505,6 @@
 
   /* skip XMLDec in any case if we've got one */
   if (got_xmldec) {
-    if (pos + 5 >= length)
-      return FALSE;
     pos += 5;
     data += 5;
   }
@@ -1255,6 +1249,7 @@
   channels = (mode == 3) ? 1 : 2;
   samplerate = mp3types_freqs[version > 0 ? version - 1 : 0][samplerate];
   if (bitrate == 0) {
+    /* possible freeform mp3 */
     if (layer == 1) {
       length *= 4;
       length += possible_free_framelen;
@@ -1264,6 +1259,11 @@
       bitrate = length * samplerate /
           ((layer == 3 && version != 3) ? 72000 : 144000);
     }
+    /* freeform mp3 should have a higher-than-usually-allowed bitrate */
+    GST_LOG ("calculated bitrate: %u, max usually: %u", bitrate,
+        mp3types_bitrates[version == 3 ? 0 : 1][layer - 1][14]);
+    if (bitrate < mp3types_bitrates[version == 3 ? 0 : 1][layer - 1][14])
+      return 0;
   } else {
     /* calculating */
     bitrate = mp3types_bitrates[version == 3 ? 0 : 1][layer - 1][bitrate];
@@ -2744,7 +2744,7 @@
           seen_sps = TRUE;
         else if (nut == 34)
           seen_pps = TRUE;
-        else if (nut >= 16 || nut <= 21) {
+        else if (nut >= 16 && nut <= 21) {
           /* BLA, IDR and CRA pictures are belongs to be IRAP picture */
           /* we are not counting the reserved IRAP pictures (22 and 23) to good */
           seen_irap = TRUE;
@@ -3114,6 +3114,12 @@
       break;
     }
 
+    if (STRNCMP (&data[4], "ftypccff", 8) == 0) {
+      tip = GST_TYPE_FIND_MAXIMUM;
+      variant = "ccff";
+      break;
+    }
+
     /* box/atom types that are in common with ISO base media file format */
     if (STRNCMP (&data[4], "moov", 4) == 0 ||
         STRNCMP (&data[4], "mdat", 4) == 0 ||
@@ -5325,6 +5331,35 @@
     gst_type_find_suggest (tf, GST_TYPE_FIND_NEARLY_CERTAIN, PVA_CAPS);
 }
 
+/*** audio/audible ***/
+
+/* derived from pyaudibletags
+ * http://code.google.com/p/pyaudibletags/source/browse/trunk/pyaudibletags.py
+ */
+static GstStaticCaps aa_caps = GST_STATIC_CAPS ("audio/x-audible");
+
+#define AA_CAPS gst_static_caps_get(&aa_caps)
+
+static void
+aa_type_find (GstTypeFind * tf, gpointer private)
+{
+  const guint8 *data;
+
+  data = gst_type_find_peek (tf, 0, 12);
+  if (data == NULL)
+    return;
+
+  if (GST_READ_UINT32_BE (data + 4) == 0x57907536) {
+    guint64 media_len;
+
+    media_len = gst_type_find_get_length (tf);
+    if (media_len > 0 && GST_READ_UINT32_BE (data) == media_len)
+      gst_type_find_suggest (tf, GST_TYPE_FIND_NEARLY_CERTAIN, AA_CAPS);
+    else
+      gst_type_find_suggest (tf, GST_TYPE_FIND_POSSIBLE, AA_CAPS);
+  }
+}
+
 /*** generic typefind for streams that have some data at a specific position***/
 typedef struct
 {
@@ -5355,12 +5390,12 @@
 {
   if (G_LIKELY (sw_data->caps != NULL))
     gst_caps_unref (sw_data->caps);
-  g_free (sw_data);
+  g_slice_free (GstTypeFindData, sw_data);
 }
 
 #define TYPE_FIND_REGISTER_START_WITH(plugin,name,rank,ext,_data,_size,_probability)\
 G_BEGIN_DECLS{                                                          \
-  GstTypeFindData *sw_data = g_new (GstTypeFindData, 1);                \
+  GstTypeFindData *sw_data = g_slice_new (GstTypeFindData);             \
   sw_data->data = (const guint8 *)_data;                                \
   sw_data->size = _size;                                                \
   sw_data->probability = _probability;                                  \
@@ -5368,8 +5403,7 @@
   if (!gst_type_find_register (plugin, name, rank, start_with_type_find,\
                      ext, sw_data->caps, sw_data,                       \
                      (GDestroyNotify) (sw_data_destroy))) {             \
-    gst_caps_unref (sw_data->caps);                                     \
-    g_free (sw_data);                                                   \
+    sw_data_destroy (sw_data);                                          \
   }                                                                     \
 }G_END_DECLS
 
@@ -5390,7 +5424,7 @@
 
 #define TYPE_FIND_REGISTER_RIFF(plugin,name,rank,ext,_data)             \
 G_BEGIN_DECLS{                                                          \
-  GstTypeFindData *sw_data = g_new (GstTypeFindData, 1);                \
+  GstTypeFindData *sw_data = g_slice_new (GstTypeFindData);             \
   sw_data->data = (gpointer)_data;                                      \
   sw_data->size = 4;                                                    \
   sw_data->probability = GST_TYPE_FIND_MAXIMUM;                         \
@@ -5398,8 +5432,7 @@
   if (!gst_type_find_register (plugin, name, rank, riff_type_find,      \
                       ext, sw_data->caps, sw_data,                      \
                       (GDestroyNotify) (sw_data_destroy))) {            \
-    gst_caps_unref (sw_data->caps);                                     \
-    g_free (sw_data);                                                   \
+    sw_data_destroy (sw_data);                                          \
   }                                                                     \
 }G_END_DECLS
 
@@ -5498,8 +5531,8 @@
       "m4a", M4A_CAPS, NULL, NULL);
   TYPE_FIND_REGISTER (plugin, "application/x-3gp", GST_RANK_PRIMARY,
       q3gp_type_find, "3gp", Q3GP_CAPS, NULL, NULL);
-  TYPE_FIND_REGISTER (plugin, "video/quicktime", GST_RANK_SECONDARY,
-      qt_type_find, "mov", QT_CAPS, NULL, NULL);
+  TYPE_FIND_REGISTER (plugin, "video/quicktime", GST_RANK_PRIMARY,
+      qt_type_find, "mov,mp4", QT_CAPS, NULL, NULL);
   TYPE_FIND_REGISTER (plugin, "image/x-quicktime", GST_RANK_SECONDARY,
       qtif_type_find, "qif,qtif,qti", QTIF_CAPS, NULL, NULL);
   TYPE_FIND_REGISTER (plugin, "image/jp2", GST_RANK_PRIMARY,
@@ -5646,6 +5679,8 @@
       wavpack_type_find, "wv,wvp", WAVPACK_CAPS, NULL, NULL);
   TYPE_FIND_REGISTER (plugin, "audio/x-wavpack-correction", GST_RANK_SECONDARY,
       wavpack_type_find, "wvc", WAVPACK_CORRECTION_CAPS, NULL, NULL);
+  TYPE_FIND_REGISTER_START_WITH (plugin, "audio/x-caf", GST_RANK_SECONDARY,
+      "caf", "caff\000\001", 6, GST_TYPE_FIND_MAXIMUM);
   TYPE_FIND_REGISTER (plugin, "application/postscript", GST_RANK_SECONDARY,
       postscript_type_find, "ps", POSTSCRIPT_CAPS, NULL, NULL);
   TYPE_FIND_REGISTER (plugin, "image/svg+xml", GST_RANK_SECONDARY,
@@ -5721,6 +5756,9 @@
   TYPE_FIND_REGISTER_START_WITH (plugin, "audio/x-xi", GST_RANK_SECONDARY,
       "xi", "Extended Instrument: ", 21, GST_TYPE_FIND_MAXIMUM);
 
+  TYPE_FIND_REGISTER (plugin, "audio/audible", GST_RANK_MARGINAL,
+      aa_type_find, "aa,aax", AA_CAPS, NULL, NULL);
+
   return TRUE;
 }
 
diff --git a/gst/videoconvert/Makefile.am b/gst/videoconvert/Makefile.am
index aed82d4..aa449dc 100644
--- a/gst/videoconvert/Makefile.am
+++ b/gst/videoconvert/Makefile.am
@@ -1,24 +1,19 @@
 plugin_LTLIBRARIES = libgstvideoconvert.la
 
-ORC_SOURCE=gstvideoconvertorc
-include $(top_srcdir)/common/orc.mak
-
-libgstvideoconvert_la_SOURCES = gstvideoconvert.c videoconvert.c gstcms.c
+libgstvideoconvert_la_SOURCES = gstvideoconvert.c
 nodist_libgstvideoconvert_la_SOURCES = $(ORC_NODIST_SOURCES)
 libgstvideoconvert_la_CFLAGS = \
 	$(GST_PLUGINS_BASE_CFLAGS) \
-	$(GST_CFLAGS) \
-	$(ORC_CFLAGS)
+	$(GST_CFLAGS)
 libgstvideoconvert_la_LIBADD = \
 	$(top_builddir)/gst-libs/gst/video/libgstvideo-$(GST_API_VERSION).la \
 	$(GST_BASE_LIBS) \
 	$(GST_LIBS) \
-	$(ORC_LIBS) \
 	$(LIBM)
 libgstvideoconvert_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
 libgstvideoconvert_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 
-noinst_HEADERS = gstvideoconvert.h videoconvert.h gstcms.h
+noinst_HEADERS = gstvideoconvert.h
 
 Android.mk: Makefile.am $(BUILT_SOURCES)
 	androgenizer \
diff --git a/gst/videoconvert/Makefile.in b/gst/videoconvert/Makefile.in
index 6b76e79..750a429 100644
--- a/gst/videoconvert/Makefile.in
+++ b/gst/videoconvert/Makefile.in
@@ -14,28 +14,6 @@
 
 @SET_MAKE@
 
-#
-# This is a makefile.am fragment to build Orc code.
-#
-# Define ORC_SOURCE and then include this file, such as:
-#
-#  ORC_SOURCE=gstadderorc
-#  include $(top_srcdir)/common/orc.mak
-#
-# This fragment will create tmp-orc.c and gstadderorc.h from
-# gstadderorc.orc.
-#
-# When 'make dist' is run at the top level, or 'make orc-update'
-# in a directory including this fragment, the generated source 
-# files will be copied to $(ORC_SOURCE)-dist.[ch].  These files
-# should be checked in to git, since they are used if Orc is
-# disabled.
-# 
-# Note that this file defines BUILT_SOURCES, so any later usage
-# of BUILT_SOURCES in the Makefile.am that includes this file
-# must use '+='.
-#
-
 
 VPATH = @srcdir@
 am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
@@ -102,9 +80,9 @@
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
-DIST_COMMON = $(top_srcdir)/common/orc.mak $(srcdir)/Makefile.in \
-	$(srcdir)/Makefile.am $(top_srcdir)/depcomp $(noinst_HEADERS)
 subdir = gst/videoconvert
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS)
 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 \
@@ -125,7 +103,6 @@
 	$(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-x11.m4 \
 	$(top_srcdir)/common/m4/gst.m4 \
 	$(top_srcdir)/common/m4/gtk-doc.m4 \
 	$(top_srcdir)/common/m4/introspection.m4 \
@@ -178,13 +155,10 @@
 am__DEPENDENCIES_1 =
 libgstvideoconvert_la_DEPENDENCIES = $(top_builddir)/gst-libs/gst/video/libgstvideo-$(GST_API_VERSION).la \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
-	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+	$(am__DEPENDENCIES_1)
 am_libgstvideoconvert_la_OBJECTS =  \
-	libgstvideoconvert_la-gstvideoconvert.lo \
-	libgstvideoconvert_la-videoconvert.lo \
-	libgstvideoconvert_la-gstcms.lo
-am__objects_1 = libgstvideoconvert_la-tmp-orc.lo
-nodist_libgstvideoconvert_la_OBJECTS = $(am__objects_1)
+	libgstvideoconvert_la-gstvideoconvert.lo
+nodist_libgstvideoconvert_la_OBJECTS =
 libgstvideoconvert_la_OBJECTS = $(am_libgstvideoconvert_la_OBJECTS) \
 	$(nodist_libgstvideoconvert_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
@@ -317,6 +291,8 @@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_2_0_CFLAGS = @GIO_UNIX_2_0_CFLAGS@
+GIO_UNIX_2_0_LIBS = @GIO_UNIX_2_0_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
@@ -346,6 +322,8 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
+GST_NET_CFLAGS = @GST_NET_CFLAGS@
+GST_NET_LIBS = @GST_NET_LIBS@
 GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
 GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
@@ -373,7 +351,6 @@
 GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
 GTK_X11_LIBS = @GTK_X11_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
-HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -477,13 +454,12 @@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-XMKMF = @XMKMF@
+XSHM_CFLAGS = @XSHM_CFLAGS@
 XSHM_LIBS = @XSHM_LIBS@
+XVIDEO_CFLAGS = @XVIDEO_CFLAGS@
 XVIDEO_LIBS = @XVIDEO_LIBS@
 X_CFLAGS = @X_CFLAGS@
-X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
-X_PRE_LIBS = @X_PRE_LIBS@
 ZLIB_CFLAGS = @ZLIB_CFLAGS@
 ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
@@ -549,39 +525,26 @@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 plugin_LTLIBRARIES = libgstvideoconvert.la
-ORC_SOURCE = gstvideoconvertorc
-EXTRA_DIST = $(ORC_SOURCE).orc
-ORC_NODIST_SOURCES = tmp-orc.c $(ORC_SOURCE).h
-BUILT_SOURCES = tmp-orc.c $(ORC_SOURCE).h
-orcc_v_gen = $(orcc_v_gen_$(V))
-orcc_v_gen_ = $(orcc_v_gen_$(AM_DEFAULT_VERBOSITY))
-orcc_v_gen_0 = @echo "  ORCC   $@";
-cp_v_gen = $(cp_v_gen_$(V))
-cp_v_gen_ = $(cp_v_gen_$(AM_DEFAULT_VERBOSITY))
-cp_v_gen_0 = @echo "  CP     $@";
-libgstvideoconvert_la_SOURCES = gstvideoconvert.c videoconvert.c gstcms.c
+libgstvideoconvert_la_SOURCES = gstvideoconvert.c
 nodist_libgstvideoconvert_la_SOURCES = $(ORC_NODIST_SOURCES)
 libgstvideoconvert_la_CFLAGS = \
 	$(GST_PLUGINS_BASE_CFLAGS) \
-	$(GST_CFLAGS) \
-	$(ORC_CFLAGS)
+	$(GST_CFLAGS)
 
 libgstvideoconvert_la_LIBADD = \
 	$(top_builddir)/gst-libs/gst/video/libgstvideo-$(GST_API_VERSION).la \
 	$(GST_BASE_LIBS) \
 	$(GST_LIBS) \
-	$(ORC_LIBS) \
 	$(LIBM)
 
 libgstvideoconvert_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
 libgstvideoconvert_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
-noinst_HEADERS = gstvideoconvert.h videoconvert.h gstcms.h
-all: $(BUILT_SOURCES)
-	$(MAKE) $(AM_MAKEFLAGS) all-am
+noinst_HEADERS = gstvideoconvert.h
+all: all-am
 
 .SUFFIXES:
 .SUFFIXES: .c .lo .o .obj
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/common/orc.mak $(am__configure_deps)
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
@@ -602,7 +565,6 @@
 	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
 	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
 	esac;
-$(top_srcdir)/common/orc.mak:
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -657,10 +619,7 @@
 distclean-compile:
 	-rm -f *.tab.c
 
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideoconvert_la-gstcms.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideoconvert_la-gstvideoconvert.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideoconvert_la-tmp-orc.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideoconvert_la-videoconvert.Plo@am__quote@
 
 .c.o:
 @am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
@@ -693,27 +652,6 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideoconvert_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoconvert_la_CFLAGS) $(CFLAGS) -c -o libgstvideoconvert_la-gstvideoconvert.lo `test -f 'gstvideoconvert.c' || echo '$(srcdir)/'`gstvideoconvert.c
 
-libgstvideoconvert_la-videoconvert.lo: videoconvert.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideoconvert_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoconvert_la_CFLAGS) $(CFLAGS) -MT libgstvideoconvert_la-videoconvert.lo -MD -MP -MF $(DEPDIR)/libgstvideoconvert_la-videoconvert.Tpo -c -o libgstvideoconvert_la-videoconvert.lo `test -f 'videoconvert.c' || echo '$(srcdir)/'`videoconvert.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideoconvert_la-videoconvert.Tpo $(DEPDIR)/libgstvideoconvert_la-videoconvert.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='videoconvert.c' object='libgstvideoconvert_la-videoconvert.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 $(libgstvideoconvert_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoconvert_la_CFLAGS) $(CFLAGS) -c -o libgstvideoconvert_la-videoconvert.lo `test -f 'videoconvert.c' || echo '$(srcdir)/'`videoconvert.c
-
-libgstvideoconvert_la-gstcms.lo: gstcms.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideoconvert_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoconvert_la_CFLAGS) $(CFLAGS) -MT libgstvideoconvert_la-gstcms.lo -MD -MP -MF $(DEPDIR)/libgstvideoconvert_la-gstcms.Tpo -c -o libgstvideoconvert_la-gstcms.lo `test -f 'gstcms.c' || echo '$(srcdir)/'`gstcms.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideoconvert_la-gstcms.Tpo $(DEPDIR)/libgstvideoconvert_la-gstcms.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstcms.c' object='libgstvideoconvert_la-gstcms.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 $(libgstvideoconvert_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoconvert_la_CFLAGS) $(CFLAGS) -c -o libgstvideoconvert_la-gstcms.lo `test -f 'gstcms.c' || echo '$(srcdir)/'`gstcms.c
-
-libgstvideoconvert_la-tmp-orc.lo: tmp-orc.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideoconvert_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoconvert_la_CFLAGS) $(CFLAGS) -MT libgstvideoconvert_la-tmp-orc.lo -MD -MP -MF $(DEPDIR)/libgstvideoconvert_la-tmp-orc.Tpo -c -o libgstvideoconvert_la-tmp-orc.lo `test -f 'tmp-orc.c' || echo '$(srcdir)/'`tmp-orc.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideoconvert_la-tmp-orc.Tpo $(DEPDIR)/libgstvideoconvert_la-tmp-orc.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tmp-orc.c' object='libgstvideoconvert_la-tmp-orc.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideoconvert_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoconvert_la_CFLAGS) $(CFLAGS) -c -o libgstvideoconvert_la-tmp-orc.lo `test -f 'tmp-orc.c' || echo '$(srcdir)/'`tmp-orc.c
-
 mostlyclean-libtool:
 	-rm -f *.lo
 
@@ -802,19 +740,14 @@
 	    || exit 1; \
 	  fi; \
 	done
-	$(MAKE) $(AM_MAKEFLAGS) \
-	  top_distdir="$(top_distdir)" distdir="$(distdir)" \
-	  dist-hook
 check-am: all-am
-check: $(BUILT_SOURCES)
-	$(MAKE) $(AM_MAKEFLAGS) check-am
+check: check-am
 all-am: Makefile $(LTLIBRARIES) $(HEADERS)
 installdirs:
 	for dir in "$(DESTDIR)$(plugindir)"; do \
 	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
 	done
-install: $(BUILT_SOURCES)
-	$(MAKE) $(AM_MAKEFLAGS) install-am
+install: install-am
 install-exec: install-exec-am
 install-data: install-data-am
 uninstall: uninstall-am
@@ -844,11 +777,10 @@
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
 	@echo "it deletes files that may require special tools to rebuild."
-	-test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
 clean: clean-am
 
-clean-am: clean-generic clean-libtool clean-local \
-	clean-pluginLTLIBRARIES mostlyclean-am
+clean-am: clean-generic clean-libtool clean-pluginLTLIBRARIES \
+	mostlyclean-am
 
 distclean: distclean-am
 	-rm -rf ./$(DEPDIR)
@@ -916,61 +848,24 @@
 
 uninstall-am: uninstall-pluginLTLIBRARIES
 
-.MAKE: all check install install-am install-strip
+.MAKE: install-am install-strip
 
 .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-local clean-pluginLTLIBRARIES \
-	cscopelist-am ctags ctags-am dist-hook distclean \
-	distclean-compile distclean-generic distclean-libtool \
-	distclean-tags distdir dvi dvi-am html html-am info info-am \
-	install install-am install-data install-data-am install-dvi \
-	install-dvi-am install-exec install-exec-am install-html \
-	install-html-am install-info install-info-am install-man \
-	install-pdf install-pdf-am install-pluginLTLIBRARIES \
-	install-ps install-ps-am install-strip installcheck \
-	installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-compile \
-	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags tags-am uninstall uninstall-am \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am distclean distclean-compile distclean-generic \
+	distclean-libtool distclean-tags distdir dvi dvi-am html \
+	html-am info info-am install install-am install-data \
+	install-data-am install-dvi install-dvi-am install-exec \
+	install-exec-am install-html install-html-am install-info \
+	install-info-am install-man install-pdf install-pdf-am \
+	install-pluginLTLIBRARIES install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
 
-orc-update: tmp-orc.c $(ORC_SOURCE).h
-	$(top_srcdir)/common/gst-indent tmp-orc.c
-	cp tmp-orc.c $(srcdir)/$(ORC_SOURCE)-dist.c
-	cp $(ORC_SOURCE).h $(srcdir)/$(ORC_SOURCE)-dist.h
-
-@HAVE_ORCC_TRUE@tmp-orc.c: $(srcdir)/$(ORC_SOURCE).orc
-@HAVE_ORCC_TRUE@	$(orcc_v_gen)$(ORCC) $(ORCC_FLAGS) --implementation --include glib.h -o tmp-orc.c $(srcdir)/$(ORC_SOURCE).orc
-
-@HAVE_ORCC_TRUE@$(ORC_SOURCE).h: $(srcdir)/$(ORC_SOURCE).orc
-@HAVE_ORCC_TRUE@	$(orcc_v_gen)$(ORCC) $(ORCC_FLAGS) --header --include glib.h -o $(ORC_SOURCE).h $(srcdir)/$(ORC_SOURCE).orc
-@HAVE_ORCC_FALSE@tmp-orc.c: $(srcdir)/$(ORC_SOURCE).orc $(srcdir)/$(ORC_SOURCE)-dist.c
-@HAVE_ORCC_FALSE@	$(cp_v_gen)cp $(srcdir)/$(ORC_SOURCE)-dist.c tmp-orc.c
-
-@HAVE_ORCC_FALSE@$(ORC_SOURCE).h: $(srcdir)/$(ORC_SOURCE).orc $(srcdir)/$(ORC_SOURCE)-dist.c
-@HAVE_ORCC_FALSE@	$(cp_v_gen)cp $(srcdir)/$(ORC_SOURCE)-dist.h $(ORC_SOURCE).h
-
-clean-local: clean-orc
-.PHONY: clean-orc
-clean-orc:
-	rm -f tmp-orc.c $(ORC_SOURCE).h
-
-dist-hook: dist-hook-orc
-.PHONY: dist-hook-orc
-
-# we try and copy updated orc -dist files below, but don't fail if it
-# doesn't work as the srcdir might not be writable
-dist-hook-orc: tmp-orc.c $(ORC_SOURCE).h
-	$(top_srcdir)/common/gst-indent tmp-orc.c
-	rm -f tmp-orc.c~
-	cmp -s tmp-orc.c $(srcdir)/$(ORC_SOURCE)-dist.c || \
-	  cp tmp-orc.c $(srcdir)/$(ORC_SOURCE)-dist.c || true
-	cmp -s $(ORC_SOURCE).h $(srcdir)/$(ORC_SOURCE)-dist.h || \
-	  cp $(ORC_SOURCE).h $(srcdir)/$(ORC_SOURCE)-dist.h || true
-	cp -p tmp-orc.c $(distdir)/$(ORC_SOURCE)-dist.c
-	cp -p $(ORC_SOURCE).h $(distdir)/$(ORC_SOURCE)-dist.h
-
 Android.mk: Makefile.am $(BUILT_SOURCES)
 	androgenizer \
 	-:PROJECT libgstvideoconvert -:SHARED libgstvideoconvert \
diff --git a/gst/videoconvert/gstcms.c b/gst/videoconvert/gstcms.c
deleted file mode 100644
index 96a9f70..0000000
--- a/gst/videoconvert/gstcms.c
+++ /dev/null
@@ -1,573 +0,0 @@
-/* GStreamer
- * Copyright (C) 2008 David Schleef <ds@entropywave.com>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <gst/gst.h>
-#include <gst/math-compat.h>
-#include "gstcms.h"
-
-#include <stdio.h>
-#include <string.h>
-#include <math.h>
-
-
-/* our simple CMS */
-
-void
-color_xyY_to_XYZ (Color * c)
-{
-  if (c->v[1] == 0) {
-    c->v[0] = 0;
-    c->v[1] = 0;
-    c->v[2] = 0;
-  } else {
-    double X, Y, Z;
-    X = c->v[0] * c->v[2] / c->v[1];
-    Y = c->v[2];
-    Z = (1.0 - c->v[0] - c->v[1]) * c->v[2] / c->v[1];
-    c->v[0] = X;
-    c->v[1] = Y;
-    c->v[2] = Z;
-  }
-}
-
-void
-color_XYZ_to_xyY (Color * c)
-{
-  double d;
-  d = c->v[0] + c->v[1] + c->v[2];
-  if (d == 0) {
-    c->v[0] = 0.3128;
-    c->v[1] = 0.3290;
-    c->v[2] = 0;
-  } else {
-    double x, y, Y;
-    x = c->v[0] / d;
-    y = c->v[1] / d;
-    Y = c->v[1];
-    c->v[0] = x;
-    c->v[1] = y;
-    c->v[2] = Y;
-  }
-}
-
-void
-color_set (Color * c, double x, double y, double z)
-{
-  c->v[0] = x;
-  c->v[1] = y;
-  c->v[2] = z;
-}
-
-void
-color_matrix_set_identity (ColorMatrix * m)
-{
-  int i, j;
-
-  for (i = 0; i < 4; i++) {
-    for (j = 0; j < 4; j++) {
-      m->m[i][j] = (i == j);
-    }
-  }
-}
-
-/* Prettyprint a 4x4 matrix @m@ */
-void
-color_matrix_dump (ColorMatrix * m)
-{
-  int i, j;
-
-  printf ("[\n");
-  for (i = 0; i < 4; i++) {
-    printf ("  ");
-    for (j = 0; j < 4; j++) {
-      printf (" %8.5g", m->m[i][j]);
-    }
-    printf ("\n");
-  }
-  printf ("]\n");
-}
-
-/* Perform 4x4 matrix multiplication:
- *  - @dst@ = @a@ * @b@
- *  - @dst@ may be a pointer to @a@ andor @b@
- */
-void
-color_matrix_multiply (ColorMatrix * dst, ColorMatrix * a, ColorMatrix * b)
-{
-  ColorMatrix tmp;
-  int i, j, k;
-
-  for (i = 0; i < 4; i++) {
-    for (j = 0; j < 4; j++) {
-      double x = 0;
-      for (k = 0; k < 4; k++) {
-        x += a->m[i][k] * b->m[k][j];
-      }
-      tmp.m[i][j] = x;
-    }
-  }
-
-  memcpy (dst, &tmp, sizeof (ColorMatrix));
-}
-
-void
-color_matrix_apply (ColorMatrix * m, Color * dest, Color * src)
-{
-  int i;
-  Color tmp;
-
-  for (i = 0; i < 3; i++) {
-    double x = 0;
-    x += m->m[i][0] * src->v[0];
-    x += m->m[i][1] * src->v[1];
-    x += m->m[i][2] * src->v[2];
-    x += m->m[i][3];
-    tmp.v[i] = x;
-  }
-  memcpy (dest, &tmp, sizeof (tmp));
-}
-
-void
-color_matrix_offset_components (ColorMatrix * m, double a1, double a2,
-    double a3)
-{
-  ColorMatrix a;
-
-  color_matrix_set_identity (&a);
-  a.m[0][3] = a1;
-  a.m[1][3] = a2;
-  a.m[2][3] = a3;
-  color_matrix_multiply (m, &a, m);
-}
-
-void
-color_matrix_scale_components (ColorMatrix * m, double a1, double a2, double a3)
-{
-  ColorMatrix a;
-
-  color_matrix_set_identity (&a);
-  a.m[0][0] = a1;
-  a.m[1][1] = a2;
-  a.m[2][2] = a3;
-  color_matrix_multiply (m, &a, m);
-}
-
-void
-color_matrix_YCbCr_to_RGB (ColorMatrix * m, double Kr, double Kb)
-{
-  double Kg = 1.0 - Kr - Kb;
-  ColorMatrix k = {
-    {
-          {1., 0., 2 * (1 - Kr), 0.},
-          {1., -2 * Kb * (1 - Kb) / Kg, -2 * Kr * (1 - Kr) / Kg, 0.},
-          {1., 2 * (1 - Kb), 0., 0.},
-          {0., 0., 0., 1.},
-        }
-  };
-
-  color_matrix_multiply (m, &k, m);
-}
-
-void
-color_matrix_RGB_to_YCbCr (ColorMatrix * m, double Kr, double Kb)
-{
-  double Kg = 1.0 - Kr - Kb;
-  ColorMatrix k;
-  double x;
-
-  k.m[0][0] = Kr;
-  k.m[0][1] = Kg;
-  k.m[0][2] = Kb;
-  k.m[0][3] = 0;
-
-  x = 1 / (2 * (1 - Kb));
-  k.m[1][0] = -x * Kr;
-  k.m[1][1] = -x * Kg;
-  k.m[1][2] = x * (1 - Kb);
-  k.m[1][3] = 0;
-
-  x = 1 / (2 * (1 - Kr));
-  k.m[2][0] = x * (1 - Kr);
-  k.m[2][1] = -x * Kg;
-  k.m[2][2] = -x * Kb;
-  k.m[2][3] = 0;
-
-  k.m[3][0] = 0;
-  k.m[3][1] = 0;
-  k.m[3][2] = 0;
-  k.m[3][3] = 1;
-
-  color_matrix_multiply (m, &k, m);
-}
-
-void
-color_matrix_build_yuv_to_rgb_601 (ColorMatrix * dst)
-{
-  /*
-   * At this point, everything is in YCbCr
-   * All components are in the range [0,255]
-   */
-  color_matrix_set_identity (dst);
-
-  /* offset required to get input video black to (0.,0.,0.) */
-  color_matrix_offset_components (dst, -16, -128, -128);
-
-  /* scale required to get input video black to (0.,0.,0.) */
-  color_matrix_scale_components (dst, (1 / 219.0), (1 / 224.0), (1 / 224.0));
-
-  /* colour matrix, YCbCr -> RGB */
-  /* Requires Y in [0,1.0], Cb&Cr in [-0.5,0.5] */
-  color_matrix_YCbCr_to_RGB (dst, 0.2990, 0.1140);      /* SD */
-
-  /*
-   * We are now in RGB space
-   */
-
-#if 0
-  /* scale to output range. */
-  color_matrix_scale_components (dst, 255.0, 255.0, 255.0);
-#endif
-}
-
-void
-color_matrix_build_bt709_to_bt601 (ColorMatrix * dst)
-{
-  color_matrix_set_identity (dst);
-
-  /* offset required to get input video black to (0.,0.,0.) */
-  color_matrix_offset_components (dst, -16, -128, -128);
-
-  /* scale required to get input video black to (0.,0.,0.) */
-  color_matrix_scale_components (dst, (1 / 219.0), (1 / 224.0), (1 / 224.0));
-
-  /* colour matrix, YCbCr -> RGB */
-  /* Requires Y in [0,1.0], Cb&Cr in [-0.5,0.5] */
-  color_matrix_YCbCr_to_RGB (dst, 0.2126, 0.0722);      /* HD */
-
-  color_matrix_RGB_to_YCbCr (dst, 0.2990, 0.1140);      /* SD */
-
-  color_matrix_scale_components (dst, 219.0, 224.0, 224.0);
-
-  color_matrix_offset_components (dst, 16, 128, 128);
-}
-
-void
-color_matrix_build_rgb_to_yuv_601 (ColorMatrix * dst)
-{
-  color_matrix_set_identity (dst);
-
-  color_matrix_RGB_to_YCbCr (dst, 0.2990, 0.1140);      /* SD */
-
-  color_matrix_scale_components (dst, 219.0, 224.0, 224.0);
-
-  color_matrix_offset_components (dst, 16, 128, 128);
-
-  {
-    Color c;
-    int i;
-    for (i = 7; i >= 0; i--) {
-      color_set (&c, (i & 2) ? 0.75 : 0.0, (i & 4) ? 0.75 : 0.0,
-          (i & 1) ? 0.75 : 0.0);
-      color_matrix_apply (dst, &c, &c);
-      g_print ("  { %g, %g, %g },\n", rint (c.v[0]), rint (c.v[1]),
-          rint (c.v[2]));
-    }
-    color_set (&c, -0.075, -0.075, -0.075);
-    color_matrix_apply (dst, &c, &c);
-    g_print ("  { %g, %g, %g },\n", rint (c.v[0]), rint (c.v[1]),
-        rint (c.v[2]));
-    color_set (&c, 0.075, 0.075, 0.075);
-    color_matrix_apply (dst, &c, &c);
-    g_print ("  { %g, %g, %g },\n", rint (c.v[0]), rint (c.v[1]),
-        rint (c.v[2]));
-  }
-}
-
-void
-color_matrix_invert (ColorMatrix * m)
-{
-  ColorMatrix tmp;
-  int i, j;
-  double det;
-
-  color_matrix_set_identity (&tmp);
-  for (j = 0; j < 3; j++) {
-    for (i = 0; i < 3; i++) {
-      tmp.m[j][i] =
-          m->m[(i + 1) % 3][(j + 1) % 3] * m->m[(i + 2) % 3][(j + 2) % 3] -
-          m->m[(i + 1) % 3][(j + 2) % 3] * m->m[(i + 2) % 3][(j + 1) % 3];
-    }
-  }
-  det =
-      tmp.m[0][0] * m->m[0][0] + tmp.m[0][1] * m->m[1][0] +
-      tmp.m[0][2] * m->m[2][0];
-  for (j = 0; j < 3; j++) {
-    for (i = 0; i < 3; i++) {
-      tmp.m[i][j] /= det;
-    }
-  }
-  memcpy (m, &tmp, sizeof (tmp));
-}
-
-void
-color_matrix_copy (ColorMatrix * dest, ColorMatrix * src)
-{
-  memcpy (dest, src, sizeof (ColorMatrix));
-}
-
-void
-color_matrix_transpose (ColorMatrix * m)
-{
-  int i, j;
-  ColorMatrix tmp;
-
-  color_matrix_set_identity (&tmp);
-  for (i = 0; i < 3; i++) {
-    for (j = 0; j < 3; j++) {
-      tmp.m[i][j] = m->m[j][i];
-    }
-  }
-  memcpy (m, &tmp, sizeof (ColorMatrix));
-}
-
-void
-color_matrix_build_XYZ (ColorMatrix * dst,
-    double rx, double ry,
-    double gx, double gy, double bx, double by, double wx, double wy)
-{
-  Color r, g, b, w, scale;
-  ColorMatrix m;
-
-  color_set (&r, rx, ry, 1.0);
-  color_xyY_to_XYZ (&r);
-  color_set (&g, gx, gy, 1.0);
-  color_xyY_to_XYZ (&g);
-  color_set (&b, bx, by, 1.0);
-  color_xyY_to_XYZ (&b);
-  color_set (&w, wx, wy, 1.0);
-  color_xyY_to_XYZ (&w);
-
-  color_matrix_set_identity (dst);
-
-  dst->m[0][0] = r.v[0];
-  dst->m[0][1] = r.v[1];
-  dst->m[0][2] = r.v[2];
-  dst->m[1][0] = g.v[0];
-  dst->m[1][1] = g.v[1];
-  dst->m[1][2] = g.v[2];
-  dst->m[2][0] = b.v[0];
-  dst->m[2][1] = b.v[1];
-  dst->m[2][2] = b.v[2];
-
-  color_matrix_dump (dst);
-  color_matrix_copy (&m, dst);
-  color_matrix_invert (&m);
-  color_matrix_dump (&m);
-
-  color_matrix_transpose (&m);
-  color_matrix_apply (&m, &scale, &w);
-  g_print ("%g %g %g\n", scale.v[0], scale.v[1], scale.v[2]);
-
-  dst->m[0][0] = r.v[0] * scale.v[0];
-  dst->m[0][1] = r.v[1] * scale.v[0];
-  dst->m[0][2] = r.v[2] * scale.v[0];
-  dst->m[1][0] = g.v[0] * scale.v[1];
-  dst->m[1][1] = g.v[1] * scale.v[1];
-  dst->m[1][2] = g.v[2] * scale.v[1];
-  dst->m[2][0] = b.v[0] * scale.v[2];
-  dst->m[2][1] = b.v[1] * scale.v[2];
-  dst->m[2][2] = b.v[2] * scale.v[2];
-
-  color_matrix_transpose (dst);
-  color_matrix_dump (dst);
-
-  color_set (&scale, 1, 1, 1);
-  color_matrix_apply (dst, &scale, &scale);
-  color_XYZ_to_xyY (&scale);
-  g_print ("white %g %g %g\n", scale.v[0], scale.v[1], scale.v[2]);
-
-}
-
-void
-color_matrix_build_rgb_to_XYZ_601 (ColorMatrix * dst)
-{
-  /* SMPTE C primaries, SMPTE 170M-2004 */
-  color_matrix_build_XYZ (dst,
-      0.630, 0.340, 0.310, 0.595, 0.155, 0.070, 0.3127, 0.3290);
-#if 0
-  /* NTSC 1953 primaries, SMPTE 170M-2004 */
-  color_matrix_build_XYZ (dst,
-      0.67, 0.33, 0.21, 0.71, 0.14, 0.08, 0.3127, 0.3290);
-#endif
-}
-
-void
-color_matrix_build_XYZ_to_rgb_709 (ColorMatrix * dst)
-{
-  /* Rec. ITU-R BT.709-5 */
-  color_matrix_build_XYZ (dst,
-      0.640, 0.330, 0.300, 0.600, 0.150, 0.060, 0.3127, 0.3290);
-}
-
-void
-color_matrix_build_XYZ_to_rgb_dell (ColorMatrix * dst)
-{
-  /* Dell monitor */
-#if 1
-  color_matrix_build_XYZ (dst,
-      0.662, 0.329, 0.205, 0.683, 0.146, 0.077, 0.3135, 0.3290);
-#endif
-#if 0
-  color_matrix_build_XYZ (dst,
-      0.630, 0.340, 0.310, 0.595, 0.155, 0.070, 0.3127, 0.3290);
-#endif
-  color_matrix_invert (dst);
-}
-
-void
-color_transfer_function_apply (Color * dest, Color * src)
-{
-  int i;
-
-  for (i = 0; i < 3; i++) {
-    if (src->v[i] < 0.0812) {
-      dest->v[i] = src->v[i] / 4.500;
-    } else {
-      dest->v[i] = pow (src->v[i] + 0.099, 1 / 0.4500);
-    }
-  }
-}
-
-void
-color_transfer_function_unapply (Color * dest, Color * src)
-{
-  int i;
-
-  for (i = 0; i < 3; i++) {
-    if (src->v[i] < 0.0812 / 4.500) {
-      dest->v[i] = src->v[i] * 4.500;
-    } else {
-      dest->v[i] = pow (src->v[i], 0.4500) - 0.099;
-    }
-  }
-}
-
-void
-color_gamut_clamp (Color * dest, Color * src)
-{
-  dest->v[0] = CLAMP (src->v[0], 0.0, 1.0);
-  dest->v[1] = CLAMP (src->v[1], 0.0, 1.0);
-  dest->v[2] = CLAMP (src->v[2], 0.0, 1.0);
-}
-
-#if 0
-static guint8 *
-get_color_transform_table (void)
-{
-  static guint8 *color_transform_table = NULL;
-
-#if 1
-  if (!color_transform_table) {
-    ColorMatrix bt601_to_rgb;
-    ColorMatrix bt601_to_yuv;
-    ColorMatrix bt601_rgb_to_XYZ;
-    ColorMatrix dell_XYZ_to_rgb;
-    guint8 *table_y;
-    guint8 *table_u;
-    guint8 *table_v;
-    int y, u, v;
-
-    color_matrix_build_yuv_to_rgb_601 (&bt601_to_rgb);
-    color_matrix_build_rgb_to_yuv_601 (&bt601_to_yuv);
-    color_matrix_build_rgb_to_XYZ_601 (&bt601_rgb_to_XYZ);
-    color_matrix_build_XYZ_to_rgb_dell (&dell_XYZ_to_rgb);
-
-    color_transform_table = g_malloc (0x1000000 * 3);
-
-    table_y = COG_OFFSET (color_transform_table, 0 * 0x1000000);
-    table_u = COG_OFFSET (color_transform_table, 1 * 0x1000000);
-    table_v = COG_OFFSET (color_transform_table, 2 * 0x1000000);
-
-    for (y = 0; y < 256; y++) {
-      for (u = 0; u < 256; u++) {
-        for (v = 0; v < 256; v++) {
-          Color c;
-
-          c.v[0] = y;
-          c.v[1] = u;
-          c.v[2] = v;
-          color_matrix_apply (&bt601_to_rgb, &c, &c);
-          color_gamut_clamp (&c, &c);
-          color_transfer_function_apply (&c, &c);
-          color_matrix_apply (&bt601_rgb_to_XYZ, &c, &c);
-          color_matrix_apply (&dell_XYZ_to_rgb, &c, &c);
-          color_transfer_function_unapply (&c, &c);
-          color_gamut_clamp (&c, &c);
-          color_matrix_apply (&bt601_to_yuv, &c, &c);
-
-          table_y[(y << 16) | (u << 8) | (v)] = rint (c.v[0]);
-          table_u[(y << 16) | (u << 8) | (v)] = rint (c.v[1]);
-          table_v[(y << 16) | (u << 8) | (v)] = rint (c.v[2]);
-        }
-      }
-    }
-  }
-#endif
-#if 0
-  if (!color_transform_table) {
-    ColorMatrix bt709_to_bt601;
-    guint8 *table_y;
-    guint8 *table_u;
-    guint8 *table_v;
-    int y, u, v;
-
-    color_matrix_build_bt709_to_bt601 (&bt709_to_bt601);
-
-    color_transform_table = g_malloc (0x1000000 * 3);
-
-    table_y = COG_OFFSET (color_transform_table, 0 * 0x1000000);
-    table_u = COG_OFFSET (color_transform_table, 1 * 0x1000000);
-    table_v = COG_OFFSET (color_transform_table, 2 * 0x1000000);
-
-    for (y = 0; y < 256; y++) {
-      for (u = 0; u < 256; u++) {
-        for (v = 0; v < 256; v++) {
-          Color c;
-
-          c.v[0] = y;
-          c.v[1] = u;
-          c.v[2] = v;
-          color_matrix_apply (&bt709_to_bt601, &c, &c);
-
-          table_y[(y << 16) | (u << 8) | (v)] = rint (c.v[0]);
-          table_u[(y << 16) | (u << 8) | (v)] = rint (c.v[1]);
-          table_v[(y << 16) | (u << 8) | (v)] = rint (c.v[2]);
-        }
-      }
-    }
-  }
-#endif
-
-  return color_transform_table;
-}
-#endif
diff --git a/gst/videoconvert/gstcms.h b/gst/videoconvert/gstcms.h
deleted file mode 100644
index f926a44..0000000
--- a/gst/videoconvert/gstcms.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/* GStreamer
- * Copyright (C) 2008 David Schleef <ds@entropywave.com>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifndef _GST_CMS_H_
-#define _GST_CMS_H_
-
-#include <gst/gst.h>
-
-G_BEGIN_DECLS
-
-typedef struct _Color Color;
-typedef struct _ColorMatrix ColorMatrix;
-
-struct _Color
-{
-  double v[3];
-};
-
-struct _ColorMatrix
-{
-  double m[4][4];
-};
-
-void color_xyY_to_XYZ (Color * c);
-void color_XYZ_to_xyY (Color * c);
-void color_set (Color * c, double x, double y, double z);
-void color_matrix_set_identity (ColorMatrix * m);
-void color_matrix_dump (ColorMatrix * m);
-void color_matrix_multiply (ColorMatrix * dst, ColorMatrix * a, ColorMatrix * b);
-void color_matrix_apply (ColorMatrix * m, Color * dest, Color * src);
-void color_matrix_offset_components (ColorMatrix * m, double a1, double a2,
-    double a3);
-void color_matrix_scale_components (ColorMatrix * m, double a1, double a2, double a3);
-void color_matrix_YCbCr_to_RGB (ColorMatrix * m, double Kr, double Kb);
-void color_matrix_RGB_to_YCbCr (ColorMatrix * m, double Kr, double Kb);
-void color_matrix_build_yuv_to_rgb_601 (ColorMatrix * dst);
-void color_matrix_build_bt709_to_bt601 (ColorMatrix * dst);
-void color_matrix_build_rgb_to_yuv_601 (ColorMatrix * dst);
-void color_matrix_invert (ColorMatrix * m);
-void color_matrix_copy (ColorMatrix * dest, ColorMatrix * src);
-void color_matrix_transpose (ColorMatrix * m);
-void color_matrix_build_XYZ (ColorMatrix * dst,
-    double rx, double ry,
-    double gx, double gy, double bx, double by, double wx, double wy);
-void color_matrix_build_rgb_to_XYZ_601 (ColorMatrix * dst);
-void color_matrix_build_XYZ_to_rgb_709 (ColorMatrix * dst);
-void color_matrix_build_XYZ_to_rgb_dell (ColorMatrix * dst);
-void color_transfer_function_apply (Color * dest, Color * src);
-void color_transfer_function_unapply (Color * dest, Color * src);
-void color_gamut_clamp (Color * dest, Color * src);
-
-G_END_DECLS
-
-#endif
-
diff --git a/gst/videoconvert/gstvideoconvert.c b/gst/videoconvert/gstvideoconvert.c
index 34e3535..e712aa3 100644
--- a/gst/videoconvert/gstvideoconvert.c
+++ b/gst/videoconvert/gstvideoconvert.c
@@ -56,10 +56,14 @@
 #define gst_video_convert_parent_class parent_class
 G_DEFINE_TYPE (GstVideoConvert, gst_video_convert, GST_TYPE_VIDEO_FILTER);
 
+#define DEFAULT_PROP_DITHER      GST_VIDEO_DITHER_BAYER
+#define DEFAULT_PROP_DITHER_QUANTIZATION 1
+
 enum
 {
   PROP_0,
-  PROP_DITHER
+  PROP_DITHER,
+  PROP_DITHER_QUANTIZATION
 };
 
 #define CSP_VIDEO_CAPS GST_VIDEO_CAPS_MAKE (GST_VIDEO_FORMATS_ALL) ";" \
@@ -90,24 +94,6 @@
 static GstFlowReturn gst_video_convert_transform_frame (GstVideoFilter * filter,
     GstVideoFrame * in_frame, GstVideoFrame * out_frame);
 
-static GType
-dither_method_get_type (void)
-{
-  static GType gtype = 0;
-
-  if (gtype == 0) {
-    static const GEnumValue values[] = {
-      {DITHER_NONE, "No dithering (default)", "none"},
-      {DITHER_VERTERR, "Vertical error propogation", "verterr"},
-      {DITHER_HALFTONE, "Half-tone", "halftone"},
-      {0, NULL, NULL}
-    };
-
-    gtype = g_enum_register_static ("GstVideoConvertDitherMethod", values);
-  }
-  return gtype;
-}
-
 /* copies the given caps */
 static GstCaps *
 gst_video_convert_caps_remove_format_info (GstCaps * caps)
@@ -419,7 +405,7 @@
   space = GST_VIDEO_CONVERT_CAST (filter);
 
   if (space->convert) {
-    videoconvert_convert_free (space->convert);
+    gst_video_converter_free (space->convert);
     space->convert = NULL;
   }
 
@@ -436,7 +422,13 @@
   if (in_info->interlace_mode != out_info->interlace_mode)
     goto format_mismatch;
 
-  space->convert = videoconvert_convert_new (in_info, out_info);
+
+  space->convert = gst_video_converter_new (in_info, out_info,
+      gst_structure_new ("GstVideoConvertConfig",
+          GST_VIDEO_CONVERTER_OPT_DITHER_METHOD, GST_TYPE_VIDEO_DITHER_METHOD,
+          space->dither,
+          GST_VIDEO_CONVERTER_OPT_DITHER_QUANTIZATION, G_TYPE_UINT,
+          space->dither_quantization, NULL));
   if (space->convert == NULL)
     goto no_convert;
 
@@ -464,7 +456,7 @@
   GstVideoConvert *space = GST_VIDEO_CONVERT (obj);
 
   if (space->convert) {
-    videoconvert_convert_free (space->convert);
+    gst_video_converter_free (space->convert);
   }
 
   G_OBJECT_CLASS (parent_class)->finalize (obj);
@@ -511,13 +503,19 @@
 
   g_object_class_install_property (gobject_class, PROP_DITHER,
       g_param_spec_enum ("dither", "Dither", "Apply dithering while converting",
-          dither_method_get_type (), DITHER_NONE,
+          gst_video_dither_method_get_type (), DEFAULT_PROP_DITHER,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+  g_object_class_install_property (gobject_class, PROP_DITHER_QUANTIZATION,
+      g_param_spec_uint ("dither-quantization", "Dither Quantize",
+          "Quantizer to use", 0, G_MAXUINT, DEFAULT_PROP_DITHER_QUANTIZATION,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 }
 
 static void
 gst_video_convert_init (GstVideoConvert * space)
 {
+  space->dither = DEFAULT_PROP_DITHER;
+  space->dither_quantization = DEFAULT_PROP_DITHER_QUANTIZATION;
 }
 
 void
@@ -532,6 +530,9 @@
     case PROP_DITHER:
       csp->dither = g_value_get_enum (value);
       break;
+    case PROP_DITHER_QUANTIZATION:
+      csp->dither_quantization = g_value_get_uint (value);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
       break;
@@ -550,6 +551,9 @@
     case PROP_DITHER:
       g_value_set_enum (value, csp->dither);
       break;
+    case PROP_DITHER_QUANTIZATION:
+      g_value_set_uint (value, csp->dither_quantization);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
       break;
@@ -569,9 +573,7 @@
       GST_VIDEO_INFO_NAME (&filter->in_info),
       GST_VIDEO_INFO_NAME (&filter->out_info));
 
-  videoconvert_convert_set_dither (space->convert, space->dither);
-
-  videoconvert_convert_convert (space->convert, out_frame, in_frame);
+  gst_video_converter_frame (space->convert, in_frame, out_frame);
 
   return GST_FLOW_OK;
 }
diff --git a/gst/videoconvert/gstvideoconvert.h b/gst/videoconvert/gstvideoconvert.h
index 00f588c..861891c 100644
--- a/gst/videoconvert/gstvideoconvert.h
+++ b/gst/videoconvert/gstvideoconvert.h
@@ -25,7 +25,6 @@
 #include <gst/gst.h>
 #include <gst/video/video.h>
 #include <gst/video/gstvideofilter.h>
-#include "videoconvert.h"
 
 G_BEGIN_DECLS
 
@@ -47,8 +46,9 @@
 struct _GstVideoConvert {
   GstVideoFilter element;
 
-  VideoConvert *convert;
-  gboolean dither;
+  GstVideoConverter *convert;
+  GstVideoDitherMethod dither;
+  guint dither_quantization;
 };
 
 struct _GstVideoConvertClass
diff --git a/gst/videoconvert/gstvideoconvertorc-dist.c b/gst/videoconvert/gstvideoconvertorc-dist.c
deleted file mode 100644
index 362f527..0000000
--- a/gst/videoconvert/gstvideoconvertorc-dist.c
+++ /dev/null
@@ -1,8958 +0,0 @@
-
-/* autogenerated from gstvideoconvertorc.orc */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-#include <glib.h>
-
-#ifndef _ORC_INTEGER_TYPEDEFS_
-#define _ORC_INTEGER_TYPEDEFS_
-#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
-#include <stdint.h>
-typedef int8_t orc_int8;
-typedef int16_t orc_int16;
-typedef int32_t orc_int32;
-typedef int64_t orc_int64;
-typedef uint8_t orc_uint8;
-typedef uint16_t orc_uint16;
-typedef uint32_t orc_uint32;
-typedef uint64_t orc_uint64;
-#define ORC_UINT64_C(x) UINT64_C(x)
-#elif defined(_MSC_VER)
-typedef signed __int8 orc_int8;
-typedef signed __int16 orc_int16;
-typedef signed __int32 orc_int32;
-typedef signed __int64 orc_int64;
-typedef unsigned __int8 orc_uint8;
-typedef unsigned __int16 orc_uint16;
-typedef unsigned __int32 orc_uint32;
-typedef unsigned __int64 orc_uint64;
-#define ORC_UINT64_C(x) (x##Ui64)
-#define inline __inline
-#else
-#include <limits.h>
-typedef signed char orc_int8;
-typedef short orc_int16;
-typedef int orc_int32;
-typedef unsigned char orc_uint8;
-typedef unsigned short orc_uint16;
-typedef unsigned int orc_uint32;
-#if INT_MAX == LONG_MAX
-typedef long long orc_int64;
-typedef unsigned long long orc_uint64;
-#define ORC_UINT64_C(x) (x##ULL)
-#else
-typedef long orc_int64;
-typedef unsigned long orc_uint64;
-#define ORC_UINT64_C(x) (x##UL)
-#endif
-#endif
-typedef union
-{
-  orc_int16 i;
-  orc_int8 x2[2];
-} orc_union16;
-typedef union
-{
-  orc_int32 i;
-  float f;
-  orc_int16 x2[2];
-  orc_int8 x4[4];
-} orc_union32;
-typedef union
-{
-  orc_int64 i;
-  double f;
-  orc_int32 x2[2];
-  float x2f[2];
-  orc_int16 x4[4];
-} orc_union64;
-#endif
-#ifndef ORC_RESTRICT
-#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
-#define ORC_RESTRICT restrict
-#elif defined(__GNUC__) && __GNUC__ >= 4
-#define ORC_RESTRICT __restrict__
-#else
-#define ORC_RESTRICT
-#endif
-#endif
-
-#ifndef ORC_INTERNAL
-#if defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590)
-#define ORC_INTERNAL __attribute__((visibility("hidden")))
-#elif defined(__SUNPRO_C) && (__SUNPRO_C >= 0x550)
-#define ORC_INTERNAL __hidden
-#elif defined (__GNUC__)
-#define ORC_INTERNAL __attribute__((visibility("hidden")))
-#else
-#define ORC_INTERNAL
-#endif
-#endif
-
-
-#ifndef DISABLE_ORC
-#include <orc/orc.h>
-#endif
-void video_convert_orc_memcpy_2d (guint8 * ORC_RESTRICT d1, int d1_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
-void video_convert_orc_convert_I420_UYVY (guint8 * ORC_RESTRICT d1,
-    guint8 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1,
-    const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3,
-    const guint8 * ORC_RESTRICT s4, int n);
-void video_convert_orc_convert_I420_YUY2 (guint8 * ORC_RESTRICT d1,
-    guint8 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1,
-    const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3,
-    const guint8 * ORC_RESTRICT s4, int n);
-void video_convert_orc_convert_I420_AYUV (guint8 * ORC_RESTRICT d1,
-    guint8 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1,
-    const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3,
-    const guint8 * ORC_RESTRICT s4, int n);
-void video_convert_orc_convert_YUY2_I420 (guint8 * ORC_RESTRICT d1,
-    guint8 * ORC_RESTRICT d2, guint8 * ORC_RESTRICT d3,
-    guint8 * ORC_RESTRICT d4, const guint8 * ORC_RESTRICT s1,
-    const guint8 * ORC_RESTRICT s2, int n);
-void video_convert_orc_convert_UYVY_YUY2 (guint8 * ORC_RESTRICT d1,
-    int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
-void video_convert_orc_planar_chroma_420_422 (guint8 * ORC_RESTRICT d1,
-    int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
-void video_convert_orc_planar_chroma_420_444 (guint8 * ORC_RESTRICT d1,
-    int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
-void video_convert_orc_planar_chroma_422_444 (guint8 * ORC_RESTRICT d1,
-    int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
-void video_convert_orc_planar_chroma_444_422 (guint8 * ORC_RESTRICT d1,
-    int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
-void video_convert_orc_planar_chroma_444_420 (guint8 * ORC_RESTRICT d1,
-    int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride,
-    const guint8 * ORC_RESTRICT s2, int s2_stride, int n, int m);
-void video_convert_orc_planar_chroma_422_420 (guint8 * ORC_RESTRICT d1,
-    int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride,
-    const guint8 * ORC_RESTRICT s2, int s2_stride, int n, int m);
-void video_convert_orc_convert_YUY2_AYUV (guint8 * ORC_RESTRICT d1,
-    int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
-void video_convert_orc_convert_UYVY_AYUV (guint8 * ORC_RESTRICT d1,
-    int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
-void video_convert_orc_convert_YUY2_Y42B (guint8 * ORC_RESTRICT d1,
-    int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride,
-    guint8 * ORC_RESTRICT d3, int d3_stride, const guint8 * ORC_RESTRICT s1,
-    int s1_stride, int n, int m);
-void video_convert_orc_convert_UYVY_Y42B (guint8 * ORC_RESTRICT d1,
-    int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride,
-    guint8 * ORC_RESTRICT d3, int d3_stride, const guint8 * ORC_RESTRICT s1,
-    int s1_stride, int n, int m);
-void video_convert_orc_convert_YUY2_Y444 (guint8 * ORC_RESTRICT d1,
-    int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride,
-    guint8 * ORC_RESTRICT d3, int d3_stride, const guint8 * ORC_RESTRICT s1,
-    int s1_stride, int n, int m);
-void video_convert_orc_convert_UYVY_Y444 (guint8 * ORC_RESTRICT d1,
-    int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride,
-    guint8 * ORC_RESTRICT d3, int d3_stride, const guint8 * ORC_RESTRICT s1,
-    int s1_stride, int n, int m);
-void video_convert_orc_convert_UYVY_I420 (guint8 * ORC_RESTRICT d1,
-    guint8 * ORC_RESTRICT d2, guint8 * ORC_RESTRICT d3,
-    guint8 * ORC_RESTRICT d4, const guint8 * ORC_RESTRICT s1,
-    const guint8 * ORC_RESTRICT s2, int n);
-void video_convert_orc_convert_AYUV_I420 (guint8 * ORC_RESTRICT d1,
-    int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride,
-    guint8 * ORC_RESTRICT d3, int d3_stride, guint8 * ORC_RESTRICT d4,
-    int d4_stride, const guint8 * ORC_RESTRICT s1, int s1_stride,
-    const guint8 * ORC_RESTRICT s2, int s2_stride, int n, int m);
-void video_convert_orc_convert_AYUV_YUY2 (guint8 * ORC_RESTRICT d1,
-    int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
-void video_convert_orc_convert_AYUV_UYVY (guint8 * ORC_RESTRICT d1,
-    int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
-void video_convert_orc_convert_AYUV_Y42B (guint8 * ORC_RESTRICT d1,
-    int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride,
-    guint8 * ORC_RESTRICT d3, int d3_stride, const guint8 * ORC_RESTRICT s1,
-    int s1_stride, int n, int m);
-void video_convert_orc_convert_AYUV_Y444 (guint8 * ORC_RESTRICT d1,
-    int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride,
-    guint8 * ORC_RESTRICT d3, int d3_stride, const guint8 * ORC_RESTRICT s1,
-    int s1_stride, int n, int m);
-void video_convert_orc_convert_Y42B_YUY2 (guint8 * ORC_RESTRICT d1,
-    int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride,
-    const guint8 * ORC_RESTRICT s2, int s2_stride,
-    const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m);
-void video_convert_orc_convert_Y42B_UYVY (guint8 * ORC_RESTRICT d1,
-    int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride,
-    const guint8 * ORC_RESTRICT s2, int s2_stride,
-    const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m);
-void video_convert_orc_convert_Y42B_AYUV (guint8 * ORC_RESTRICT d1,
-    int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride,
-    const guint8 * ORC_RESTRICT s2, int s2_stride,
-    const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m);
-void video_convert_orc_convert_Y444_YUY2 (guint8 * ORC_RESTRICT d1,
-    int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride,
-    const guint8 * ORC_RESTRICT s2, int s2_stride,
-    const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m);
-void video_convert_orc_convert_Y444_UYVY (guint8 * ORC_RESTRICT d1,
-    int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride,
-    const guint8 * ORC_RESTRICT s2, int s2_stride,
-    const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m);
-void video_convert_orc_convert_Y444_AYUV (guint8 * ORC_RESTRICT d1,
-    int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride,
-    const guint8 * ORC_RESTRICT s2, int s2_stride,
-    const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m);
-void video_convert_orc_convert_AYUV_ARGB (guint8 * ORC_RESTRICT d1,
-    int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int p1,
-    int p2, int p3, int p4, int p5, int n, int m);
-void video_convert_orc_convert_AYUV_BGRA (guint8 * ORC_RESTRICT d1,
-    int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int p1,
-    int p2, int p3, int p4, int p5, int n, int m);
-void video_convert_orc_convert_AYUV_ABGR (guint8 * ORC_RESTRICT d1,
-    int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int p1,
-    int p2, int p3, int p4, int p5, int n, int m);
-void video_convert_orc_convert_AYUV_RGBA (guint8 * ORC_RESTRICT d1,
-    int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int p1,
-    int p2, int p3, int p4, int p5, int n, int m);
-void video_convert_orc_convert_I420_BGRA (guint8 * ORC_RESTRICT d1,
-    const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
-    const guint8 * ORC_RESTRICT s3, int p1, int p2, int p3, int p4, int p5,
-    int n);
-
-
-/* begin Orc C target preamble */
-#define ORC_CLAMP(x,a,b) ((x)<(a) ? (a) : ((x)>(b) ? (b) : (x)))
-#define ORC_ABS(a) ((a)<0 ? -(a) : (a))
-#define ORC_MIN(a,b) ((a)<(b) ? (a) : (b))
-#define ORC_MAX(a,b) ((a)>(b) ? (a) : (b))
-#define ORC_SB_MAX 127
-#define ORC_SB_MIN (-1-ORC_SB_MAX)
-#define ORC_UB_MAX 255
-#define ORC_UB_MIN 0
-#define ORC_SW_MAX 32767
-#define ORC_SW_MIN (-1-ORC_SW_MAX)
-#define ORC_UW_MAX 65535
-#define ORC_UW_MIN 0
-#define ORC_SL_MAX 2147483647
-#define ORC_SL_MIN (-1-ORC_SL_MAX)
-#define ORC_UL_MAX 4294967295U
-#define ORC_UL_MIN 0
-#define ORC_CLAMP_SB(x) ORC_CLAMP(x,ORC_SB_MIN,ORC_SB_MAX)
-#define ORC_CLAMP_UB(x) ORC_CLAMP(x,ORC_UB_MIN,ORC_UB_MAX)
-#define ORC_CLAMP_SW(x) ORC_CLAMP(x,ORC_SW_MIN,ORC_SW_MAX)
-#define ORC_CLAMP_UW(x) ORC_CLAMP(x,ORC_UW_MIN,ORC_UW_MAX)
-#define ORC_CLAMP_SL(x) ORC_CLAMP(x,ORC_SL_MIN,ORC_SL_MAX)
-#define ORC_CLAMP_UL(x) ORC_CLAMP(x,ORC_UL_MIN,ORC_UL_MAX)
-#define ORC_SWAP_W(x) ((((x)&0xffU)<<8) | (((x)&0xff00U)>>8))
-#define ORC_SWAP_L(x) ((((x)&0xffU)<<24) | (((x)&0xff00U)<<8) | (((x)&0xff0000U)>>8) | (((x)&0xff000000U)>>24))
-#define ORC_SWAP_Q(x) ((((x)&ORC_UINT64_C(0xff))<<56) | (((x)&ORC_UINT64_C(0xff00))<<40) | (((x)&ORC_UINT64_C(0xff0000))<<24) | (((x)&ORC_UINT64_C(0xff000000))<<8) | (((x)&ORC_UINT64_C(0xff00000000))>>8) | (((x)&ORC_UINT64_C(0xff0000000000))>>24) | (((x)&ORC_UINT64_C(0xff000000000000))>>40) | (((x)&ORC_UINT64_C(0xff00000000000000))>>56))
-#define ORC_PTR_OFFSET(ptr,offset) ((void *)(((unsigned char *)(ptr)) + (offset)))
-#define ORC_DENORMAL(x) ((x) & ((((x)&0x7f800000) == 0) ? 0xff800000 : 0xffffffff))
-#define ORC_ISNAN(x) ((((x)&0x7f800000) == 0x7f800000) && (((x)&0x007fffff) != 0))
-#define ORC_DENORMAL_DOUBLE(x) ((x) & ((((x)&ORC_UINT64_C(0x7ff0000000000000)) == 0) ? ORC_UINT64_C(0xfff0000000000000) : ORC_UINT64_C(0xffffffffffffffff)))
-#define ORC_ISNAN_DOUBLE(x) ((((x)&ORC_UINT64_C(0x7ff0000000000000)) == ORC_UINT64_C(0x7ff0000000000000)) && (((x)&ORC_UINT64_C(0x000fffffffffffff)) != 0))
-#ifndef ORC_RESTRICT
-#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
-#define ORC_RESTRICT restrict
-#elif defined(__GNUC__) && __GNUC__ >= 4
-#define ORC_RESTRICT __restrict__
-#else
-#define ORC_RESTRICT
-#endif
-#endif
-/* end Orc C target preamble */
-
-
-
-/* video_convert_orc_memcpy_2d */
-#ifdef DISABLE_ORC
-void
-video_convert_orc_memcpy_2d (guint8 * ORC_RESTRICT d1, int d1_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
-{
-  int i;
-  int j;
-  orc_int8 *ORC_RESTRICT ptr0;
-  const orc_int8 *ORC_RESTRICT ptr4;
-  orc_int8 var32;
-  orc_int8 var33;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
-    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadb */
-      var32 = ptr4[i];
-      /* 1: copyb */
-      var33 = var32;
-      /* 2: storeb */
-      ptr0[i] = var33;
-    }
-  }
-
-}
-
-#else
-static void
-_backup_video_convert_orc_memcpy_2d (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int j;
-  int n = ex->n;
-  int m = ex->params[ORC_VAR_A1];
-  orc_int8 *ORC_RESTRICT ptr0;
-  const orc_int8 *ORC_RESTRICT ptr4;
-  orc_int8 var32;
-  orc_int8 var33;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
-    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadb */
-      var32 = ptr4[i];
-      /* 1: copyb */
-      var33 = var32;
-      /* 2: storeb */
-      ptr0[i] = var33;
-    }
-  }
-
-}
-
-void
-video_convert_orc_memcpy_2d (guint8 * ORC_RESTRICT d1, int d1_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 7, 9, 27, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
-        116, 95, 111, 114, 99, 95, 109, 101, 109, 99, 112, 121, 95, 50, 100, 11,
-        1, 1, 12, 1, 1, 42, 0, 4, 2, 0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p, _backup_video_convert_orc_memcpy_2d);
-#else
-      p = orc_program_new ();
-      orc_program_set_2d (p);
-      orc_program_set_name (p, "video_convert_orc_memcpy_2d");
-      orc_program_set_backup_function (p, _backup_video_convert_orc_memcpy_2d);
-      orc_program_add_destination (p, 1, "d1");
-      orc_program_add_source (p, 1, "s1");
-
-      orc_program_append_2 (p, "copyb", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_D1,
-          ORC_VAR_D1);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ORC_EXECUTOR_M (ex) = m;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->params[ORC_VAR_D1] = d1_stride;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-  ex->params[ORC_VAR_S1] = s1_stride;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_convert_orc_convert_I420_UYVY */
-#ifdef DISABLE_ORC
-void
-video_convert_orc_convert_I420_UYVY (guint8 * ORC_RESTRICT d1,
-    guint8 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1,
-    const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3,
-    const guint8 * ORC_RESTRICT s4, int n)
-{
-  int i;
-  orc_union32 *ORC_RESTRICT ptr0;
-  orc_union32 *ORC_RESTRICT ptr1;
-  const orc_union16 *ORC_RESTRICT ptr4;
-  const orc_union16 *ORC_RESTRICT ptr5;
-  const orc_int8 *ORC_RESTRICT ptr6;
-  const orc_int8 *ORC_RESTRICT ptr7;
-  orc_int8 var33;
-  orc_int8 var34;
-  orc_union16 var35;
-  orc_union32 var36;
-  orc_union16 var37;
-  orc_union32 var38;
-  orc_union16 var39;
-
-  ptr0 = (orc_union32 *) d1;
-  ptr1 = (orc_union32 *) d2;
-  ptr4 = (orc_union16 *) s1;
-  ptr5 = (orc_union16 *) s2;
-  ptr6 = (orc_int8 *) s3;
-  ptr7 = (orc_int8 *) s4;
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadb */
-    var33 = ptr6[i];
-    /* 1: loadb */
-    var34 = ptr7[i];
-    /* 2: mergebw */
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var33;
-      _dest.x2[1] = var34;
-      var39.i = _dest.i;
-    }
-    /* 3: loadw */
-    var35 = ptr4[i];
-    /* 4: mergebw */
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var39.x2[0];
-      _dest.x2[1] = var35.x2[0];
-      var36.x2[0] = _dest.i;
-    }
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var39.x2[1];
-      _dest.x2[1] = var35.x2[1];
-      var36.x2[1] = _dest.i;
-    }
-    /* 5: storel */
-    ptr0[i] = var36;
-    /* 6: loadw */
-    var37 = ptr5[i];
-    /* 7: mergebw */
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var39.x2[0];
-      _dest.x2[1] = var37.x2[0];
-      var38.x2[0] = _dest.i;
-    }
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var39.x2[1];
-      _dest.x2[1] = var37.x2[1];
-      var38.x2[1] = _dest.i;
-    }
-    /* 8: storel */
-    ptr1[i] = var38;
-  }
-
-}
-
-#else
-static void
-_backup_video_convert_orc_convert_I420_UYVY (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int n = ex->n;
-  orc_union32 *ORC_RESTRICT ptr0;
-  orc_union32 *ORC_RESTRICT ptr1;
-  const orc_union16 *ORC_RESTRICT ptr4;
-  const orc_union16 *ORC_RESTRICT ptr5;
-  const orc_int8 *ORC_RESTRICT ptr6;
-  const orc_int8 *ORC_RESTRICT ptr7;
-  orc_int8 var33;
-  orc_int8 var34;
-  orc_union16 var35;
-  orc_union32 var36;
-  orc_union16 var37;
-  orc_union32 var38;
-  orc_union16 var39;
-
-  ptr0 = (orc_union32 *) ex->arrays[0];
-  ptr1 = (orc_union32 *) ex->arrays[1];
-  ptr4 = (orc_union16 *) ex->arrays[4];
-  ptr5 = (orc_union16 *) ex->arrays[5];
-  ptr6 = (orc_int8 *) ex->arrays[6];
-  ptr7 = (orc_int8 *) ex->arrays[7];
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadb */
-    var33 = ptr6[i];
-    /* 1: loadb */
-    var34 = ptr7[i];
-    /* 2: mergebw */
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var33;
-      _dest.x2[1] = var34;
-      var39.i = _dest.i;
-    }
-    /* 3: loadw */
-    var35 = ptr4[i];
-    /* 4: mergebw */
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var39.x2[0];
-      _dest.x2[1] = var35.x2[0];
-      var36.x2[0] = _dest.i;
-    }
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var39.x2[1];
-      _dest.x2[1] = var35.x2[1];
-      var36.x2[1] = _dest.i;
-    }
-    /* 5: storel */
-    ptr0[i] = var36;
-    /* 6: loadw */
-    var37 = ptr5[i];
-    /* 7: mergebw */
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var39.x2[0];
-      _dest.x2[1] = var37.x2[0];
-      var38.x2[0] = _dest.i;
-    }
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var39.x2[1];
-      _dest.x2[1] = var37.x2[1];
-      var38.x2[1] = _dest.i;
-    }
-    /* 8: storel */
-    ptr1[i] = var38;
-  }
-
-}
-
-void
-video_convert_orc_convert_I420_UYVY (guint8 * ORC_RESTRICT d1,
-    guint8 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1,
-    const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3,
-    const guint8 * ORC_RESTRICT s4, int n)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116,
-        95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 73, 52, 50,
-        48, 95, 85, 89, 86, 89, 11, 4, 4, 11, 4, 4, 12, 2, 2, 12,
-        2, 2, 12, 1, 1, 12, 1, 1, 20, 2, 196, 32, 6, 7, 21, 1,
-        196, 0, 32, 4, 21, 1, 196, 1, 32, 5, 2, 0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_I420_UYVY);
-#else
-      p = orc_program_new ();
-      orc_program_set_name (p, "video_convert_orc_convert_I420_UYVY");
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_I420_UYVY);
-      orc_program_add_destination (p, 4, "d1");
-      orc_program_add_destination (p, 4, "d2");
-      orc_program_add_source (p, 2, "s1");
-      orc_program_add_source (p, 2, "s2");
-      orc_program_add_source (p, 1, "s3");
-      orc_program_add_source (p, 1, "s4");
-      orc_program_add_temporary (p, 2, "t1");
-
-      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_S3, ORC_VAR_S4,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_S1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D2, ORC_VAR_T1, ORC_VAR_S2,
-          ORC_VAR_D1);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->arrays[ORC_VAR_D2] = d2;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-  ex->arrays[ORC_VAR_S2] = (void *) s2;
-  ex->arrays[ORC_VAR_S3] = (void *) s3;
-  ex->arrays[ORC_VAR_S4] = (void *) s4;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_convert_orc_convert_I420_YUY2 */
-#ifdef DISABLE_ORC
-void
-video_convert_orc_convert_I420_YUY2 (guint8 * ORC_RESTRICT d1,
-    guint8 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1,
-    const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3,
-    const guint8 * ORC_RESTRICT s4, int n)
-{
-  int i;
-  orc_union32 *ORC_RESTRICT ptr0;
-  orc_union32 *ORC_RESTRICT ptr1;
-  const orc_union16 *ORC_RESTRICT ptr4;
-  const orc_union16 *ORC_RESTRICT ptr5;
-  const orc_int8 *ORC_RESTRICT ptr6;
-  const orc_int8 *ORC_RESTRICT ptr7;
-  orc_int8 var33;
-  orc_int8 var34;
-  orc_union16 var35;
-  orc_union32 var36;
-  orc_union16 var37;
-  orc_union32 var38;
-  orc_union16 var39;
-
-  ptr0 = (orc_union32 *) d1;
-  ptr1 = (orc_union32 *) d2;
-  ptr4 = (orc_union16 *) s1;
-  ptr5 = (orc_union16 *) s2;
-  ptr6 = (orc_int8 *) s3;
-  ptr7 = (orc_int8 *) s4;
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadb */
-    var33 = ptr6[i];
-    /* 1: loadb */
-    var34 = ptr7[i];
-    /* 2: mergebw */
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var33;
-      _dest.x2[1] = var34;
-      var39.i = _dest.i;
-    }
-    /* 3: loadw */
-    var35 = ptr4[i];
-    /* 4: mergebw */
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var35.x2[0];
-      _dest.x2[1] = var39.x2[0];
-      var36.x2[0] = _dest.i;
-    }
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var35.x2[1];
-      _dest.x2[1] = var39.x2[1];
-      var36.x2[1] = _dest.i;
-    }
-    /* 5: storel */
-    ptr0[i] = var36;
-    /* 6: loadw */
-    var37 = ptr5[i];
-    /* 7: mergebw */
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var37.x2[0];
-      _dest.x2[1] = var39.x2[0];
-      var38.x2[0] = _dest.i;
-    }
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var37.x2[1];
-      _dest.x2[1] = var39.x2[1];
-      var38.x2[1] = _dest.i;
-    }
-    /* 8: storel */
-    ptr1[i] = var38;
-  }
-
-}
-
-#else
-static void
-_backup_video_convert_orc_convert_I420_YUY2 (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int n = ex->n;
-  orc_union32 *ORC_RESTRICT ptr0;
-  orc_union32 *ORC_RESTRICT ptr1;
-  const orc_union16 *ORC_RESTRICT ptr4;
-  const orc_union16 *ORC_RESTRICT ptr5;
-  const orc_int8 *ORC_RESTRICT ptr6;
-  const orc_int8 *ORC_RESTRICT ptr7;
-  orc_int8 var33;
-  orc_int8 var34;
-  orc_union16 var35;
-  orc_union32 var36;
-  orc_union16 var37;
-  orc_union32 var38;
-  orc_union16 var39;
-
-  ptr0 = (orc_union32 *) ex->arrays[0];
-  ptr1 = (orc_union32 *) ex->arrays[1];
-  ptr4 = (orc_union16 *) ex->arrays[4];
-  ptr5 = (orc_union16 *) ex->arrays[5];
-  ptr6 = (orc_int8 *) ex->arrays[6];
-  ptr7 = (orc_int8 *) ex->arrays[7];
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadb */
-    var33 = ptr6[i];
-    /* 1: loadb */
-    var34 = ptr7[i];
-    /* 2: mergebw */
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var33;
-      _dest.x2[1] = var34;
-      var39.i = _dest.i;
-    }
-    /* 3: loadw */
-    var35 = ptr4[i];
-    /* 4: mergebw */
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var35.x2[0];
-      _dest.x2[1] = var39.x2[0];
-      var36.x2[0] = _dest.i;
-    }
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var35.x2[1];
-      _dest.x2[1] = var39.x2[1];
-      var36.x2[1] = _dest.i;
-    }
-    /* 5: storel */
-    ptr0[i] = var36;
-    /* 6: loadw */
-    var37 = ptr5[i];
-    /* 7: mergebw */
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var37.x2[0];
-      _dest.x2[1] = var39.x2[0];
-      var38.x2[0] = _dest.i;
-    }
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var37.x2[1];
-      _dest.x2[1] = var39.x2[1];
-      var38.x2[1] = _dest.i;
-    }
-    /* 8: storel */
-    ptr1[i] = var38;
-  }
-
-}
-
-void
-video_convert_orc_convert_I420_YUY2 (guint8 * ORC_RESTRICT d1,
-    guint8 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1,
-    const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3,
-    const guint8 * ORC_RESTRICT s4, int n)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116,
-        95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 73, 52, 50,
-        48, 95, 89, 85, 89, 50, 11, 4, 4, 11, 4, 4, 12, 2, 2, 12,
-        2, 2, 12, 1, 1, 12, 1, 1, 20, 2, 196, 32, 6, 7, 21, 1,
-        196, 0, 4, 32, 21, 1, 196, 1, 5, 32, 2, 0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_I420_YUY2);
-#else
-      p = orc_program_new ();
-      orc_program_set_name (p, "video_convert_orc_convert_I420_YUY2");
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_I420_YUY2);
-      orc_program_add_destination (p, 4, "d1");
-      orc_program_add_destination (p, 4, "d2");
-      orc_program_add_source (p, 2, "s1");
-      orc_program_add_source (p, 2, "s2");
-      orc_program_add_source (p, 1, "s3");
-      orc_program_add_source (p, 1, "s4");
-      orc_program_add_temporary (p, 2, "t1");
-
-      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_S3, ORC_VAR_S4,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_T1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D2, ORC_VAR_S2, ORC_VAR_T1,
-          ORC_VAR_D1);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->arrays[ORC_VAR_D2] = d2;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-  ex->arrays[ORC_VAR_S2] = (void *) s2;
-  ex->arrays[ORC_VAR_S3] = (void *) s3;
-  ex->arrays[ORC_VAR_S4] = (void *) s4;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_convert_orc_convert_I420_AYUV */
-#ifdef DISABLE_ORC
-void
-video_convert_orc_convert_I420_AYUV (guint8 * ORC_RESTRICT d1,
-    guint8 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1,
-    const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3,
-    const guint8 * ORC_RESTRICT s4, int n)
-{
-  int i;
-  orc_union32 *ORC_RESTRICT ptr0;
-  orc_union32 *ORC_RESTRICT ptr1;
-  const orc_int8 *ORC_RESTRICT ptr4;
-  const orc_int8 *ORC_RESTRICT ptr5;
-  const orc_int8 *ORC_RESTRICT ptr6;
-  const orc_int8 *ORC_RESTRICT ptr7;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_int8 var36;
-#else
-  orc_int8 var36;
-#endif
-  orc_int8 var37;
-  orc_union32 var38;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_int8 var39;
-#else
-  orc_int8 var39;
-#endif
-  orc_int8 var40;
-  orc_union32 var41;
-  orc_int8 var42;
-  orc_int8 var43;
-  orc_union16 var44;
-  orc_union16 var45;
-  orc_union16 var46;
-
-  ptr0 = (orc_union32 *) d1;
-  ptr1 = (orc_union32 *) d2;
-  ptr4 = (orc_int8 *) s1;
-  ptr5 = (orc_int8 *) s2;
-  ptr6 = (orc_int8 *) s3;
-  ptr7 = (orc_int8 *) s4;
-
-  /* 3: loadpb */
-  var36 = (int) 0x000000ff;     /* 255 or 1.25987e-321f */
-  /* 8: loadpb */
-  var39 = (int) 0x000000ff;     /* 255 or 1.25987e-321f */
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadupdb */
-    var42 = ptr6[i >> 1];
-    /* 1: loadupdb */
-    var43 = ptr7[i >> 1];
-    /* 2: mergebw */
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var42;
-      _dest.x2[1] = var43;
-      var44.i = _dest.i;
-    }
-    /* 4: loadb */
-    var37 = ptr4[i];
-    /* 5: mergebw */
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var36;
-      _dest.x2[1] = var37;
-      var45.i = _dest.i;
-    }
-    /* 6: mergewl */
-    {
-      orc_union32 _dest;
-      _dest.x2[0] = var45.i;
-      _dest.x2[1] = var44.i;
-      var38.i = _dest.i;
-    }
-    /* 7: storel */
-    ptr0[i] = var38;
-    /* 9: loadb */
-    var40 = ptr5[i];
-    /* 10: mergebw */
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var39;
-      _dest.x2[1] = var40;
-      var46.i = _dest.i;
-    }
-    /* 11: mergewl */
-    {
-      orc_union32 _dest;
-      _dest.x2[0] = var46.i;
-      _dest.x2[1] = var44.i;
-      var41.i = _dest.i;
-    }
-    /* 12: storel */
-    ptr1[i] = var41;
-  }
-
-}
-
-#else
-static void
-_backup_video_convert_orc_convert_I420_AYUV (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int n = ex->n;
-  orc_union32 *ORC_RESTRICT ptr0;
-  orc_union32 *ORC_RESTRICT ptr1;
-  const orc_int8 *ORC_RESTRICT ptr4;
-  const orc_int8 *ORC_RESTRICT ptr5;
-  const orc_int8 *ORC_RESTRICT ptr6;
-  const orc_int8 *ORC_RESTRICT ptr7;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_int8 var36;
-#else
-  orc_int8 var36;
-#endif
-  orc_int8 var37;
-  orc_union32 var38;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_int8 var39;
-#else
-  orc_int8 var39;
-#endif
-  orc_int8 var40;
-  orc_union32 var41;
-  orc_int8 var42;
-  orc_int8 var43;
-  orc_union16 var44;
-  orc_union16 var45;
-  orc_union16 var46;
-
-  ptr0 = (orc_union32 *) ex->arrays[0];
-  ptr1 = (orc_union32 *) ex->arrays[1];
-  ptr4 = (orc_int8 *) ex->arrays[4];
-  ptr5 = (orc_int8 *) ex->arrays[5];
-  ptr6 = (orc_int8 *) ex->arrays[6];
-  ptr7 = (orc_int8 *) ex->arrays[7];
-
-  /* 3: loadpb */
-  var36 = (int) 0x000000ff;     /* 255 or 1.25987e-321f */
-  /* 8: loadpb */
-  var39 = (int) 0x000000ff;     /* 255 or 1.25987e-321f */
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadupdb */
-    var42 = ptr6[i >> 1];
-    /* 1: loadupdb */
-    var43 = ptr7[i >> 1];
-    /* 2: mergebw */
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var42;
-      _dest.x2[1] = var43;
-      var44.i = _dest.i;
-    }
-    /* 4: loadb */
-    var37 = ptr4[i];
-    /* 5: mergebw */
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var36;
-      _dest.x2[1] = var37;
-      var45.i = _dest.i;
-    }
-    /* 6: mergewl */
-    {
-      orc_union32 _dest;
-      _dest.x2[0] = var45.i;
-      _dest.x2[1] = var44.i;
-      var38.i = _dest.i;
-    }
-    /* 7: storel */
-    ptr0[i] = var38;
-    /* 9: loadb */
-    var40 = ptr5[i];
-    /* 10: mergebw */
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var39;
-      _dest.x2[1] = var40;
-      var46.i = _dest.i;
-    }
-    /* 11: mergewl */
-    {
-      orc_union32 _dest;
-      _dest.x2[0] = var46.i;
-      _dest.x2[1] = var44.i;
-      var41.i = _dest.i;
-    }
-    /* 12: storel */
-    ptr1[i] = var41;
-  }
-
-}
-
-void
-video_convert_orc_convert_I420_AYUV (guint8 * ORC_RESTRICT d1,
-    guint8 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1,
-    const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3,
-    const guint8 * ORC_RESTRICT s4, int n)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116,
-        95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 73, 52, 50,
-        48, 95, 65, 89, 85, 86, 11, 4, 4, 11, 4, 4, 12, 1, 1, 12,
-        1, 1, 12, 1, 1, 12, 1, 1, 14, 1, 255, 0, 0, 0, 20, 2,
-        20, 2, 20, 1, 20, 1, 45, 34, 6, 45, 35, 7, 196, 32, 34, 35,
-        196, 33, 16, 4, 195, 0, 33, 32, 196, 33, 16, 5, 195, 1, 33, 32,
-        2, 0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_I420_AYUV);
-#else
-      p = orc_program_new ();
-      orc_program_set_name (p, "video_convert_orc_convert_I420_AYUV");
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_I420_AYUV);
-      orc_program_add_destination (p, 4, "d1");
-      orc_program_add_destination (p, 4, "d2");
-      orc_program_add_source (p, 1, "s1");
-      orc_program_add_source (p, 1, "s2");
-      orc_program_add_source (p, 1, "s3");
-      orc_program_add_source (p, 1, "s4");
-      orc_program_add_constant (p, 1, 0x000000ff, "c1");
-      orc_program_add_temporary (p, 2, "t1");
-      orc_program_add_temporary (p, 2, "t2");
-      orc_program_add_temporary (p, 1, "t3");
-      orc_program_add_temporary (p, 1, "t4");
-
-      orc_program_append_2 (p, "loadupdb", 0, ORC_VAR_T3, ORC_VAR_S3,
-          ORC_VAR_D1, ORC_VAR_D1);
-      orc_program_append_2 (p, "loadupdb", 0, ORC_VAR_T4, ORC_VAR_S4,
-          ORC_VAR_D1, ORC_VAR_D1);
-      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_T3, ORC_VAR_T4,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T2, ORC_VAR_C1, ORC_VAR_S1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_T1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T2, ORC_VAR_C1, ORC_VAR_S2,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D2, ORC_VAR_T2, ORC_VAR_T1,
-          ORC_VAR_D1);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->arrays[ORC_VAR_D2] = d2;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-  ex->arrays[ORC_VAR_S2] = (void *) s2;
-  ex->arrays[ORC_VAR_S3] = (void *) s3;
-  ex->arrays[ORC_VAR_S4] = (void *) s4;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_convert_orc_convert_YUY2_I420 */
-#ifdef DISABLE_ORC
-void
-video_convert_orc_convert_YUY2_I420 (guint8 * ORC_RESTRICT d1,
-    guint8 * ORC_RESTRICT d2, guint8 * ORC_RESTRICT d3,
-    guint8 * ORC_RESTRICT d4, const guint8 * ORC_RESTRICT s1,
-    const guint8 * ORC_RESTRICT s2, int n)
-{
-  int i;
-  orc_union16 *ORC_RESTRICT ptr0;
-  orc_union16 *ORC_RESTRICT ptr1;
-  orc_int8 *ORC_RESTRICT ptr2;
-  orc_int8 *ORC_RESTRICT ptr3;
-  const orc_union32 *ORC_RESTRICT ptr4;
-  const orc_union32 *ORC_RESTRICT ptr5;
-  orc_union32 var35;
-  orc_union32 var36;
-  orc_int8 var37;
-  orc_int8 var38;
-  orc_union16 var39;
-  orc_union16 var40;
-  orc_union16 var41;
-  orc_union16 var42;
-  orc_union16 var43;
-
-  ptr0 = (orc_union16 *) d1;
-  ptr1 = (orc_union16 *) d2;
-  ptr2 = (orc_int8 *) d3;
-  ptr3 = (orc_int8 *) d4;
-  ptr4 = (orc_union32 *) s1;
-  ptr5 = (orc_union32 *) s2;
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadl */
-    var35 = ptr4[i];
-    /* 1: splitwb */
-    {
-      orc_union16 _src;
-      _src.i = var35.x2[0];
-      var39.x2[0] = _src.x2[1];
-      var40.x2[0] = _src.x2[0];
-    }
-    {
-      orc_union16 _src;
-      _src.i = var35.x2[1];
-      var39.x2[1] = _src.x2[1];
-      var40.x2[1] = _src.x2[0];
-    }
-    /* 2: storew */
-    ptr0[i] = var40;
-    /* 3: loadl */
-    var36 = ptr5[i];
-    /* 4: splitwb */
-    {
-      orc_union16 _src;
-      _src.i = var36.x2[0];
-      var41.x2[0] = _src.x2[1];
-      var42.x2[0] = _src.x2[0];
-    }
-    {
-      orc_union16 _src;
-      _src.i = var36.x2[1];
-      var41.x2[1] = _src.x2[1];
-      var42.x2[1] = _src.x2[0];
-    }
-    /* 5: storew */
-    ptr1[i] = var42;
-    /* 6: avgub */
-    var43.x2[0] = ((orc_uint8) var39.x2[0] + (orc_uint8) var41.x2[0] + 1) >> 1;
-    var43.x2[1] = ((orc_uint8) var39.x2[1] + (orc_uint8) var41.x2[1] + 1) >> 1;
-    /* 7: splitwb */
-    {
-      orc_union16 _src;
-      _src.i = var43.i;
-      var37 = _src.x2[1];
-      var38 = _src.x2[0];
-    }
-    /* 8: storeb */
-    ptr3[i] = var37;
-    /* 9: storeb */
-    ptr2[i] = var38;
-  }
-
-}
-
-#else
-static void
-_backup_video_convert_orc_convert_YUY2_I420 (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int n = ex->n;
-  orc_union16 *ORC_RESTRICT ptr0;
-  orc_union16 *ORC_RESTRICT ptr1;
-  orc_int8 *ORC_RESTRICT ptr2;
-  orc_int8 *ORC_RESTRICT ptr3;
-  const orc_union32 *ORC_RESTRICT ptr4;
-  const orc_union32 *ORC_RESTRICT ptr5;
-  orc_union32 var35;
-  orc_union32 var36;
-  orc_int8 var37;
-  orc_int8 var38;
-  orc_union16 var39;
-  orc_union16 var40;
-  orc_union16 var41;
-  orc_union16 var42;
-  orc_union16 var43;
-
-  ptr0 = (orc_union16 *) ex->arrays[0];
-  ptr1 = (orc_union16 *) ex->arrays[1];
-  ptr2 = (orc_int8 *) ex->arrays[2];
-  ptr3 = (orc_int8 *) ex->arrays[3];
-  ptr4 = (orc_union32 *) ex->arrays[4];
-  ptr5 = (orc_union32 *) ex->arrays[5];
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadl */
-    var35 = ptr4[i];
-    /* 1: splitwb */
-    {
-      orc_union16 _src;
-      _src.i = var35.x2[0];
-      var39.x2[0] = _src.x2[1];
-      var40.x2[0] = _src.x2[0];
-    }
-    {
-      orc_union16 _src;
-      _src.i = var35.x2[1];
-      var39.x2[1] = _src.x2[1];
-      var40.x2[1] = _src.x2[0];
-    }
-    /* 2: storew */
-    ptr0[i] = var40;
-    /* 3: loadl */
-    var36 = ptr5[i];
-    /* 4: splitwb */
-    {
-      orc_union16 _src;
-      _src.i = var36.x2[0];
-      var41.x2[0] = _src.x2[1];
-      var42.x2[0] = _src.x2[0];
-    }
-    {
-      orc_union16 _src;
-      _src.i = var36.x2[1];
-      var41.x2[1] = _src.x2[1];
-      var42.x2[1] = _src.x2[0];
-    }
-    /* 5: storew */
-    ptr1[i] = var42;
-    /* 6: avgub */
-    var43.x2[0] = ((orc_uint8) var39.x2[0] + (orc_uint8) var41.x2[0] + 1) >> 1;
-    var43.x2[1] = ((orc_uint8) var39.x2[1] + (orc_uint8) var41.x2[1] + 1) >> 1;
-    /* 7: splitwb */
-    {
-      orc_union16 _src;
-      _src.i = var43.i;
-      var37 = _src.x2[1];
-      var38 = _src.x2[0];
-    }
-    /* 8: storeb */
-    ptr3[i] = var37;
-    /* 9: storeb */
-    ptr2[i] = var38;
-  }
-
-}
-
-void
-video_convert_orc_convert_YUY2_I420 (guint8 * ORC_RESTRICT d1,
-    guint8 * ORC_RESTRICT d2, guint8 * ORC_RESTRICT d3,
-    guint8 * ORC_RESTRICT d4, const guint8 * ORC_RESTRICT s1,
-    const guint8 * ORC_RESTRICT s2, int n)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116,
-        95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 89, 85, 89,
-        50, 95, 73, 52, 50, 48, 11, 2, 2, 11, 2, 2, 11, 1, 1, 11,
-        1, 1, 12, 4, 4, 12, 4, 4, 20, 2, 20, 2, 20, 2, 21, 1,
-        199, 32, 34, 4, 97, 0, 34, 21, 1, 199, 33, 34, 5, 97, 1, 34,
-        21, 1, 39, 32, 32, 33, 199, 3, 2, 32, 2, 0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_YUY2_I420);
-#else
-      p = orc_program_new ();
-      orc_program_set_name (p, "video_convert_orc_convert_YUY2_I420");
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_YUY2_I420);
-      orc_program_add_destination (p, 2, "d1");
-      orc_program_add_destination (p, 2, "d2");
-      orc_program_add_destination (p, 1, "d3");
-      orc_program_add_destination (p, 1, "d4");
-      orc_program_add_source (p, 4, "s1");
-      orc_program_add_source (p, 4, "s2");
-      orc_program_add_temporary (p, 2, "t1");
-      orc_program_add_temporary (p, 2, "t2");
-      orc_program_add_temporary (p, 2, "t3");
-
-      orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T1, ORC_VAR_T3, ORC_VAR_S1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "storew", 0, ORC_VAR_D1, ORC_VAR_T3, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T2, ORC_VAR_T3, ORC_VAR_S2,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "storew", 0, ORC_VAR_D2, ORC_VAR_T3, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "avgub", 1, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T2,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_D4, ORC_VAR_D3, ORC_VAR_T1,
-          ORC_VAR_D1);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->arrays[ORC_VAR_D2] = d2;
-  ex->arrays[ORC_VAR_D3] = d3;
-  ex->arrays[ORC_VAR_D4] = d4;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-  ex->arrays[ORC_VAR_S2] = (void *) s2;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_convert_orc_convert_UYVY_YUY2 */
-#ifdef DISABLE_ORC
-void
-video_convert_orc_convert_UYVY_YUY2 (guint8 * ORC_RESTRICT d1, int d1_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
-{
-  int i;
-  int j;
-  orc_union32 *ORC_RESTRICT ptr0;
-  const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var32;
-  orc_union32 var33;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
-    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadl */
-      var32 = ptr4[i];
-      /* 1: swapw */
-      var33.x2[0] = ORC_SWAP_W (var32.x2[0]);
-      var33.x2[1] = ORC_SWAP_W (var32.x2[1]);
-      /* 2: storel */
-      ptr0[i] = var33;
-    }
-  }
-
-}
-
-#else
-static void
-_backup_video_convert_orc_convert_UYVY_YUY2 (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int j;
-  int n = ex->n;
-  int m = ex->params[ORC_VAR_A1];
-  orc_union32 *ORC_RESTRICT ptr0;
-  const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var32;
-  orc_union32 var33;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
-    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadl */
-      var32 = ptr4[i];
-      /* 1: swapw */
-      var33.x2[0] = ORC_SWAP_W (var32.x2[0]);
-      var33.x2[1] = ORC_SWAP_W (var32.x2[1]);
-      /* 2: storel */
-      ptr0[i] = var33;
-    }
-  }
-
-}
-
-void
-video_convert_orc_convert_UYVY_YUY2 (guint8 * ORC_RESTRICT d1, int d1_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
-        116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 85, 89,
-        86, 89, 95, 89, 85, 89, 50, 11, 4, 4, 12, 4, 4, 21, 1, 183,
-        0, 4, 2, 0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_UYVY_YUY2);
-#else
-      p = orc_program_new ();
-      orc_program_set_2d (p);
-      orc_program_set_name (p, "video_convert_orc_convert_UYVY_YUY2");
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_UYVY_YUY2);
-      orc_program_add_destination (p, 4, "d1");
-      orc_program_add_source (p, 4, "s1");
-
-      orc_program_append_2 (p, "swapw", 1, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_D1,
-          ORC_VAR_D1);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ORC_EXECUTOR_M (ex) = m;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->params[ORC_VAR_D1] = d1_stride;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-  ex->params[ORC_VAR_S1] = s1_stride;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_convert_orc_planar_chroma_420_422 */
-#ifdef DISABLE_ORC
-void
-video_convert_orc_planar_chroma_420_422 (guint8 * ORC_RESTRICT d1,
-    int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
-{
-  int i;
-  int j;
-  orc_int8 *ORC_RESTRICT ptr0;
-  orc_int8 *ORC_RESTRICT ptr1;
-  const orc_int8 *ORC_RESTRICT ptr4;
-  orc_int8 var32;
-  orc_int8 var33;
-  orc_int8 var34;
-  orc_int8 var35;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
-    ptr1 = ORC_PTR_OFFSET (d2, d2_stride * j);
-    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadb */
-      var32 = ptr4[i];
-      /* 1: copyb */
-      var33 = var32;
-      /* 2: storeb */
-      ptr0[i] = var33;
-      /* 3: loadb */
-      var34 = ptr4[i];
-      /* 4: copyb */
-      var35 = var34;
-      /* 5: storeb */
-      ptr1[i] = var35;
-    }
-  }
-
-}
-
-#else
-static void
-_backup_video_convert_orc_planar_chroma_420_422 (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int j;
-  int n = ex->n;
-  int m = ex->params[ORC_VAR_A1];
-  orc_int8 *ORC_RESTRICT ptr0;
-  orc_int8 *ORC_RESTRICT ptr1;
-  const orc_int8 *ORC_RESTRICT ptr4;
-  orc_int8 var32;
-  orc_int8 var33;
-  orc_int8 var34;
-  orc_int8 var35;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
-    ptr1 = ORC_PTR_OFFSET (ex->arrays[1], ex->params[1] * j);
-    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadb */
-      var32 = ptr4[i];
-      /* 1: copyb */
-      var33 = var32;
-      /* 2: storeb */
-      ptr0[i] = var33;
-      /* 3: loadb */
-      var34 = ptr4[i];
-      /* 4: copyb */
-      var35 = var34;
-      /* 5: storeb */
-      ptr1[i] = var35;
-    }
-  }
-
-}
-
-void
-video_convert_orc_planar_chroma_420_422 (guint8 * ORC_RESTRICT d1,
-    int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 7, 9, 39, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
-        116, 95, 111, 114, 99, 95, 112, 108, 97, 110, 97, 114, 95, 99, 104, 114,
-        111, 109, 97, 95, 52, 50, 48, 95, 52, 50, 50, 11, 1, 1, 11, 1,
-        1, 12, 1, 1, 42, 0, 4, 42, 1, 4, 2, 0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_planar_chroma_420_422);
-#else
-      p = orc_program_new ();
-      orc_program_set_2d (p);
-      orc_program_set_name (p, "video_convert_orc_planar_chroma_420_422");
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_planar_chroma_420_422);
-      orc_program_add_destination (p, 1, "d1");
-      orc_program_add_destination (p, 1, "d2");
-      orc_program_add_source (p, 1, "s1");
-
-      orc_program_append_2 (p, "copyb", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "copyb", 0, ORC_VAR_D2, ORC_VAR_S1, ORC_VAR_D1,
-          ORC_VAR_D1);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ORC_EXECUTOR_M (ex) = m;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->params[ORC_VAR_D1] = d1_stride;
-  ex->arrays[ORC_VAR_D2] = d2;
-  ex->params[ORC_VAR_D2] = d2_stride;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-  ex->params[ORC_VAR_S1] = s1_stride;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_convert_orc_planar_chroma_420_444 */
-#ifdef DISABLE_ORC
-void
-video_convert_orc_planar_chroma_420_444 (guint8 * ORC_RESTRICT d1,
-    int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
-{
-  int i;
-  int j;
-  orc_union16 *ORC_RESTRICT ptr0;
-  orc_union16 *ORC_RESTRICT ptr1;
-  const orc_int8 *ORC_RESTRICT ptr4;
-  orc_int8 var33;
-  orc_union16 var34;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
-    ptr1 = ORC_PTR_OFFSET (d2, d2_stride * j);
-    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadb */
-      var33 = ptr4[i];
-      /* 1: splatbw */
-      var34.i = ((var33 & 0xff) << 8) | (var33 & 0xff);
-      /* 2: storew */
-      ptr0[i] = var34;
-      /* 3: storew */
-      ptr1[i] = var34;
-    }
-  }
-
-}
-
-#else
-static void
-_backup_video_convert_orc_planar_chroma_420_444 (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int j;
-  int n = ex->n;
-  int m = ex->params[ORC_VAR_A1];
-  orc_union16 *ORC_RESTRICT ptr0;
-  orc_union16 *ORC_RESTRICT ptr1;
-  const orc_int8 *ORC_RESTRICT ptr4;
-  orc_int8 var33;
-  orc_union16 var34;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
-    ptr1 = ORC_PTR_OFFSET (ex->arrays[1], ex->params[1] * j);
-    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadb */
-      var33 = ptr4[i];
-      /* 1: splatbw */
-      var34.i = ((var33 & 0xff) << 8) | (var33 & 0xff);
-      /* 2: storew */
-      ptr0[i] = var34;
-      /* 3: storew */
-      ptr1[i] = var34;
-    }
-  }
-
-}
-
-void
-video_convert_orc_planar_chroma_420_444 (guint8 * ORC_RESTRICT d1,
-    int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 7, 9, 39, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
-        116, 95, 111, 114, 99, 95, 112, 108, 97, 110, 97, 114, 95, 99, 104, 114,
-        111, 109, 97, 95, 52, 50, 48, 95, 52, 52, 52, 11, 2, 2, 11, 2,
-        2, 12, 1, 1, 20, 2, 151, 32, 4, 97, 0, 32, 97, 1, 32, 2,
-        0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_planar_chroma_420_444);
-#else
-      p = orc_program_new ();
-      orc_program_set_2d (p);
-      orc_program_set_name (p, "video_convert_orc_planar_chroma_420_444");
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_planar_chroma_420_444);
-      orc_program_add_destination (p, 2, "d1");
-      orc_program_add_destination (p, 2, "d2");
-      orc_program_add_source (p, 1, "s1");
-      orc_program_add_temporary (p, 2, "t1");
-
-      orc_program_append_2 (p, "splatbw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "storew", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "storew", 0, ORC_VAR_D2, ORC_VAR_T1, ORC_VAR_D1,
-          ORC_VAR_D1);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ORC_EXECUTOR_M (ex) = m;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->params[ORC_VAR_D1] = d1_stride;
-  ex->arrays[ORC_VAR_D2] = d2;
-  ex->params[ORC_VAR_D2] = d2_stride;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-  ex->params[ORC_VAR_S1] = s1_stride;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_convert_orc_planar_chroma_422_444 */
-#ifdef DISABLE_ORC
-void
-video_convert_orc_planar_chroma_422_444 (guint8 * ORC_RESTRICT d1,
-    int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
-{
-  int i;
-  int j;
-  orc_union16 *ORC_RESTRICT ptr0;
-  const orc_int8 *ORC_RESTRICT ptr4;
-  orc_int8 var33;
-  orc_union16 var34;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
-    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadb */
-      var33 = ptr4[i];
-      /* 1: splatbw */
-      var34.i = ((var33 & 0xff) << 8) | (var33 & 0xff);
-      /* 2: storew */
-      ptr0[i] = var34;
-    }
-  }
-
-}
-
-#else
-static void
-_backup_video_convert_orc_planar_chroma_422_444 (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int j;
-  int n = ex->n;
-  int m = ex->params[ORC_VAR_A1];
-  orc_union16 *ORC_RESTRICT ptr0;
-  const orc_int8 *ORC_RESTRICT ptr4;
-  orc_int8 var33;
-  orc_union16 var34;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
-    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadb */
-      var33 = ptr4[i];
-      /* 1: splatbw */
-      var34.i = ((var33 & 0xff) << 8) | (var33 & 0xff);
-      /* 2: storew */
-      ptr0[i] = var34;
-    }
-  }
-
-}
-
-void
-video_convert_orc_planar_chroma_422_444 (guint8 * ORC_RESTRICT d1,
-    int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 7, 9, 39, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
-        116, 95, 111, 114, 99, 95, 112, 108, 97, 110, 97, 114, 95, 99, 104, 114,
-        111, 109, 97, 95, 52, 50, 50, 95, 52, 52, 52, 11, 2, 2, 12, 1,
-        1, 20, 2, 151, 32, 4, 97, 0, 32, 2, 0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_planar_chroma_422_444);
-#else
-      p = orc_program_new ();
-      orc_program_set_2d (p);
-      orc_program_set_name (p, "video_convert_orc_planar_chroma_422_444");
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_planar_chroma_422_444);
-      orc_program_add_destination (p, 2, "d1");
-      orc_program_add_source (p, 1, "s1");
-      orc_program_add_temporary (p, 2, "t1");
-
-      orc_program_append_2 (p, "splatbw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "storew", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
-          ORC_VAR_D1);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ORC_EXECUTOR_M (ex) = m;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->params[ORC_VAR_D1] = d1_stride;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-  ex->params[ORC_VAR_S1] = s1_stride;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_convert_orc_planar_chroma_444_422 */
-#ifdef DISABLE_ORC
-void
-video_convert_orc_planar_chroma_444_422 (guint8 * ORC_RESTRICT d1,
-    int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
-{
-  int i;
-  int j;
-  orc_int8 *ORC_RESTRICT ptr0;
-  const orc_union16 *ORC_RESTRICT ptr4;
-  orc_union16 var34;
-  orc_int8 var35;
-  orc_int8 var36;
-  orc_int8 var37;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
-    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadw */
-      var34 = ptr4[i];
-      /* 1: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var34.i;
-        var36 = _src.x2[1];
-        var37 = _src.x2[0];
-      }
-      /* 2: avgub */
-      var35 = ((orc_uint8) var36 + (orc_uint8) var37 + 1) >> 1;
-      /* 3: storeb */
-      ptr0[i] = var35;
-    }
-  }
-
-}
-
-#else
-static void
-_backup_video_convert_orc_planar_chroma_444_422 (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int j;
-  int n = ex->n;
-  int m = ex->params[ORC_VAR_A1];
-  orc_int8 *ORC_RESTRICT ptr0;
-  const orc_union16 *ORC_RESTRICT ptr4;
-  orc_union16 var34;
-  orc_int8 var35;
-  orc_int8 var36;
-  orc_int8 var37;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
-    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadw */
-      var34 = ptr4[i];
-      /* 1: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var34.i;
-        var36 = _src.x2[1];
-        var37 = _src.x2[0];
-      }
-      /* 2: avgub */
-      var35 = ((orc_uint8) var36 + (orc_uint8) var37 + 1) >> 1;
-      /* 3: storeb */
-      ptr0[i] = var35;
-    }
-  }
-
-}
-
-void
-video_convert_orc_planar_chroma_444_422 (guint8 * ORC_RESTRICT d1,
-    int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 7, 9, 39, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
-        116, 95, 111, 114, 99, 95, 112, 108, 97, 110, 97, 114, 95, 99, 104, 114,
-        111, 109, 97, 95, 52, 52, 52, 95, 52, 50, 50, 11, 1, 1, 12, 2,
-        2, 20, 1, 20, 1, 199, 32, 33, 4, 39, 0, 32, 33, 2, 0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_planar_chroma_444_422);
-#else
-      p = orc_program_new ();
-      orc_program_set_2d (p);
-      orc_program_set_name (p, "video_convert_orc_planar_chroma_444_422");
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_planar_chroma_444_422);
-      orc_program_add_destination (p, 1, "d1");
-      orc_program_add_source (p, 2, "s1");
-      orc_program_add_temporary (p, 1, "t1");
-      orc_program_add_temporary (p, 1, "t2");
-
-      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T1, ORC_VAR_T2, ORC_VAR_S1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "avgub", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T2,
-          ORC_VAR_D1);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ORC_EXECUTOR_M (ex) = m;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->params[ORC_VAR_D1] = d1_stride;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-  ex->params[ORC_VAR_S1] = s1_stride;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_convert_orc_planar_chroma_444_420 */
-#ifdef DISABLE_ORC
-void
-video_convert_orc_planar_chroma_444_420 (guint8 * ORC_RESTRICT d1,
-    int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride,
-    const guint8 * ORC_RESTRICT s2, int s2_stride, int n, int m)
-{
-  int i;
-  int j;
-  orc_int8 *ORC_RESTRICT ptr0;
-  const orc_union16 *ORC_RESTRICT ptr4;
-  const orc_union16 *ORC_RESTRICT ptr5;
-  orc_union16 var35;
-  orc_union16 var36;
-  orc_int8 var37;
-  orc_union16 var38;
-  orc_int8 var39;
-  orc_int8 var40;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
-    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
-    ptr5 = ORC_PTR_OFFSET (s2, s2_stride * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadw */
-      var35 = ptr4[i];
-      /* 1: loadw */
-      var36 = ptr5[i];
-      /* 2: avgub */
-      var38.x2[0] =
-          ((orc_uint8) var35.x2[0] + (orc_uint8) var36.x2[0] + 1) >> 1;
-      var38.x2[1] =
-          ((orc_uint8) var35.x2[1] + (orc_uint8) var36.x2[1] + 1) >> 1;
-      /* 3: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var38.i;
-        var39 = _src.x2[1];
-        var40 = _src.x2[0];
-      }
-      /* 4: avgub */
-      var37 = ((orc_uint8) var39 + (orc_uint8) var40 + 1) >> 1;
-      /* 5: storeb */
-      ptr0[i] = var37;
-    }
-  }
-
-}
-
-#else
-static void
-_backup_video_convert_orc_planar_chroma_444_420 (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int j;
-  int n = ex->n;
-  int m = ex->params[ORC_VAR_A1];
-  orc_int8 *ORC_RESTRICT ptr0;
-  const orc_union16 *ORC_RESTRICT ptr4;
-  const orc_union16 *ORC_RESTRICT ptr5;
-  orc_union16 var35;
-  orc_union16 var36;
-  orc_int8 var37;
-  orc_union16 var38;
-  orc_int8 var39;
-  orc_int8 var40;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
-    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
-    ptr5 = ORC_PTR_OFFSET (ex->arrays[5], ex->params[5] * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadw */
-      var35 = ptr4[i];
-      /* 1: loadw */
-      var36 = ptr5[i];
-      /* 2: avgub */
-      var38.x2[0] =
-          ((orc_uint8) var35.x2[0] + (orc_uint8) var36.x2[0] + 1) >> 1;
-      var38.x2[1] =
-          ((orc_uint8) var35.x2[1] + (orc_uint8) var36.x2[1] + 1) >> 1;
-      /* 3: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var38.i;
-        var39 = _src.x2[1];
-        var40 = _src.x2[0];
-      }
-      /* 4: avgub */
-      var37 = ((orc_uint8) var39 + (orc_uint8) var40 + 1) >> 1;
-      /* 5: storeb */
-      ptr0[i] = var37;
-    }
-  }
-
-}
-
-void
-video_convert_orc_planar_chroma_444_420 (guint8 * ORC_RESTRICT d1,
-    int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride,
-    const guint8 * ORC_RESTRICT s2, int s2_stride, int n, int m)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 7, 9, 39, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
-        116, 95, 111, 114, 99, 95, 112, 108, 97, 110, 97, 114, 95, 99, 104, 114,
-        111, 109, 97, 95, 52, 52, 52, 95, 52, 50, 48, 11, 1, 1, 12, 2,
-        2, 12, 2, 2, 20, 2, 20, 1, 20, 1, 21, 1, 39, 32, 4, 5,
-        199, 33, 34, 32, 39, 0, 33, 34, 2, 0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_planar_chroma_444_420);
-#else
-      p = orc_program_new ();
-      orc_program_set_2d (p);
-      orc_program_set_name (p, "video_convert_orc_planar_chroma_444_420");
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_planar_chroma_444_420);
-      orc_program_add_destination (p, 1, "d1");
-      orc_program_add_source (p, 2, "s1");
-      orc_program_add_source (p, 2, "s2");
-      orc_program_add_temporary (p, 2, "t1");
-      orc_program_add_temporary (p, 1, "t2");
-      orc_program_add_temporary (p, 1, "t3");
-
-      orc_program_append_2 (p, "avgub", 1, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_S2,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T2, ORC_VAR_T3, ORC_VAR_T1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "avgub", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_T3,
-          ORC_VAR_D1);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ORC_EXECUTOR_M (ex) = m;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->params[ORC_VAR_D1] = d1_stride;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-  ex->params[ORC_VAR_S1] = s1_stride;
-  ex->arrays[ORC_VAR_S2] = (void *) s2;
-  ex->params[ORC_VAR_S2] = s2_stride;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_convert_orc_planar_chroma_422_420 */
-#ifdef DISABLE_ORC
-void
-video_convert_orc_planar_chroma_422_420 (guint8 * ORC_RESTRICT d1,
-    int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride,
-    const guint8 * ORC_RESTRICT s2, int s2_stride, int n, int m)
-{
-  int i;
-  int j;
-  orc_int8 *ORC_RESTRICT ptr0;
-  const orc_int8 *ORC_RESTRICT ptr4;
-  const orc_int8 *ORC_RESTRICT ptr5;
-  orc_int8 var32;
-  orc_int8 var33;
-  orc_int8 var34;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
-    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
-    ptr5 = ORC_PTR_OFFSET (s2, s2_stride * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadb */
-      var32 = ptr4[i];
-      /* 1: loadb */
-      var33 = ptr5[i];
-      /* 2: avgub */
-      var34 = ((orc_uint8) var32 + (orc_uint8) var33 + 1) >> 1;
-      /* 3: storeb */
-      ptr0[i] = var34;
-    }
-  }
-
-}
-
-#else
-static void
-_backup_video_convert_orc_planar_chroma_422_420 (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int j;
-  int n = ex->n;
-  int m = ex->params[ORC_VAR_A1];
-  orc_int8 *ORC_RESTRICT ptr0;
-  const orc_int8 *ORC_RESTRICT ptr4;
-  const orc_int8 *ORC_RESTRICT ptr5;
-  orc_int8 var32;
-  orc_int8 var33;
-  orc_int8 var34;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
-    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
-    ptr5 = ORC_PTR_OFFSET (ex->arrays[5], ex->params[5] * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadb */
-      var32 = ptr4[i];
-      /* 1: loadb */
-      var33 = ptr5[i];
-      /* 2: avgub */
-      var34 = ((orc_uint8) var32 + (orc_uint8) var33 + 1) >> 1;
-      /* 3: storeb */
-      ptr0[i] = var34;
-    }
-  }
-
-}
-
-void
-video_convert_orc_planar_chroma_422_420 (guint8 * ORC_RESTRICT d1,
-    int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride,
-    const guint8 * ORC_RESTRICT s2, int s2_stride, int n, int m)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 7, 9, 39, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
-        116, 95, 111, 114, 99, 95, 112, 108, 97, 110, 97, 114, 95, 99, 104, 114,
-        111, 109, 97, 95, 52, 50, 50, 95, 52, 50, 48, 11, 1, 1, 12, 1,
-        1, 12, 1, 1, 39, 0, 4, 5, 2, 0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_planar_chroma_422_420);
-#else
-      p = orc_program_new ();
-      orc_program_set_2d (p);
-      orc_program_set_name (p, "video_convert_orc_planar_chroma_422_420");
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_planar_chroma_422_420);
-      orc_program_add_destination (p, 1, "d1");
-      orc_program_add_source (p, 1, "s1");
-      orc_program_add_source (p, 1, "s2");
-
-      orc_program_append_2 (p, "avgub", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_S2,
-          ORC_VAR_D1);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ORC_EXECUTOR_M (ex) = m;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->params[ORC_VAR_D1] = d1_stride;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-  ex->params[ORC_VAR_S1] = s1_stride;
-  ex->arrays[ORC_VAR_S2] = (void *) s2;
-  ex->params[ORC_VAR_S2] = s2_stride;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_convert_orc_convert_YUY2_AYUV */
-#ifdef DISABLE_ORC
-void
-video_convert_orc_convert_YUY2_AYUV (guint8 * ORC_RESTRICT d1, int d1_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
-{
-  int i;
-  int j;
-  orc_union64 *ORC_RESTRICT ptr0;
-  const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var36;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_union16 var37;
-#else
-  orc_union16 var37;
-#endif
-  orc_union64 var38;
-  orc_union16 var39;
-  orc_union16 var40;
-  orc_union32 var41;
-  orc_union32 var42;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
-    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
-
-    /* 2: loadpb */
-    var37.x2[0] = (int) 0x000000ff;     /* 255 or 1.25987e-321f */
-    var37.x2[1] = (int) 0x000000ff;     /* 255 or 1.25987e-321f */
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadl */
-      var36 = ptr4[i];
-      /* 1: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var36.x2[0];
-        var39.x2[0] = _src.x2[1];
-        var40.x2[0] = _src.x2[0];
-      }
-      {
-        orc_union16 _src;
-        _src.i = var36.x2[1];
-        var39.x2[1] = _src.x2[1];
-        var40.x2[1] = _src.x2[0];
-      }
-      /* 3: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var37.x2[0];
-        _dest.x2[1] = var40.x2[0];
-        var41.x2[0] = _dest.i;
-      }
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var37.x2[1];
-        _dest.x2[1] = var40.x2[1];
-        var41.x2[1] = _dest.i;
-      }
-      /* 4: mergewl */
-      {
-        orc_union32 _dest;
-        _dest.x2[0] = var39.i;
-        _dest.x2[1] = var39.i;
-        var42.i = _dest.i;
-      }
-      /* 5: mergewl */
-      {
-        orc_union32 _dest;
-        _dest.x2[0] = var41.x2[0];
-        _dest.x2[1] = var42.x2[0];
-        var38.x2[0] = _dest.i;
-      }
-      {
-        orc_union32 _dest;
-        _dest.x2[0] = var41.x2[1];
-        _dest.x2[1] = var42.x2[1];
-        var38.x2[1] = _dest.i;
-      }
-      /* 6: storeq */
-      ptr0[i] = var38;
-    }
-  }
-
-}
-
-#else
-static void
-_backup_video_convert_orc_convert_YUY2_AYUV (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int j;
-  int n = ex->n;
-  int m = ex->params[ORC_VAR_A1];
-  orc_union64 *ORC_RESTRICT ptr0;
-  const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var36;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_union16 var37;
-#else
-  orc_union16 var37;
-#endif
-  orc_union64 var38;
-  orc_union16 var39;
-  orc_union16 var40;
-  orc_union32 var41;
-  orc_union32 var42;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
-    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
-
-    /* 2: loadpb */
-    var37.x2[0] = (int) 0x000000ff;     /* 255 or 1.25987e-321f */
-    var37.x2[1] = (int) 0x000000ff;     /* 255 or 1.25987e-321f */
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadl */
-      var36 = ptr4[i];
-      /* 1: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var36.x2[0];
-        var39.x2[0] = _src.x2[1];
-        var40.x2[0] = _src.x2[0];
-      }
-      {
-        orc_union16 _src;
-        _src.i = var36.x2[1];
-        var39.x2[1] = _src.x2[1];
-        var40.x2[1] = _src.x2[0];
-      }
-      /* 3: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var37.x2[0];
-        _dest.x2[1] = var40.x2[0];
-        var41.x2[0] = _dest.i;
-      }
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var37.x2[1];
-        _dest.x2[1] = var40.x2[1];
-        var41.x2[1] = _dest.i;
-      }
-      /* 4: mergewl */
-      {
-        orc_union32 _dest;
-        _dest.x2[0] = var39.i;
-        _dest.x2[1] = var39.i;
-        var42.i = _dest.i;
-      }
-      /* 5: mergewl */
-      {
-        orc_union32 _dest;
-        _dest.x2[0] = var41.x2[0];
-        _dest.x2[1] = var42.x2[0];
-        var38.x2[0] = _dest.i;
-      }
-      {
-        orc_union32 _dest;
-        _dest.x2[0] = var41.x2[1];
-        _dest.x2[1] = var42.x2[1];
-        var38.x2[1] = _dest.i;
-      }
-      /* 6: storeq */
-      ptr0[i] = var38;
-    }
-  }
-
-}
-
-void
-video_convert_orc_convert_YUY2_AYUV (guint8 * ORC_RESTRICT d1, int d1_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
-        116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 89, 85,
-        89, 50, 95, 65, 89, 85, 86, 11, 8, 8, 12, 4, 4, 14, 2, 255,
-        0, 0, 0, 20, 2, 20, 2, 20, 4, 20, 4, 21, 1, 199, 33, 32,
-        4, 21, 1, 196, 34, 16, 32, 195, 35, 33, 33, 21, 1, 195, 0, 34,
-        35, 2, 0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_YUY2_AYUV);
-#else
-      p = orc_program_new ();
-      orc_program_set_2d (p);
-      orc_program_set_name (p, "video_convert_orc_convert_YUY2_AYUV");
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_YUY2_AYUV);
-      orc_program_add_destination (p, 8, "d1");
-      orc_program_add_source (p, 4, "s1");
-      orc_program_add_constant (p, 2, 0x000000ff, "c1");
-      orc_program_add_temporary (p, 2, "t1");
-      orc_program_add_temporary (p, 2, "t2");
-      orc_program_add_temporary (p, 4, "t3");
-      orc_program_add_temporary (p, 4, "t4");
-
-      orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_S1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mergebw", 1, ORC_VAR_T3, ORC_VAR_C1, ORC_VAR_T1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T4, ORC_VAR_T2, ORC_VAR_T2,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mergewl", 1, ORC_VAR_D1, ORC_VAR_T3, ORC_VAR_T4,
-          ORC_VAR_D1);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ORC_EXECUTOR_M (ex) = m;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->params[ORC_VAR_D1] = d1_stride;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-  ex->params[ORC_VAR_S1] = s1_stride;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_convert_orc_convert_UYVY_AYUV */
-#ifdef DISABLE_ORC
-void
-video_convert_orc_convert_UYVY_AYUV (guint8 * ORC_RESTRICT d1, int d1_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
-{
-  int i;
-  int j;
-  orc_union64 *ORC_RESTRICT ptr0;
-  const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var36;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_union16 var37;
-#else
-  orc_union16 var37;
-#endif
-  orc_union64 var38;
-  orc_union16 var39;
-  orc_union16 var40;
-  orc_union32 var41;
-  orc_union32 var42;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
-    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
-
-    /* 2: loadpb */
-    var37.x2[0] = (int) 0x000000ff;     /* 255 or 1.25987e-321f */
-    var37.x2[1] = (int) 0x000000ff;     /* 255 or 1.25987e-321f */
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadl */
-      var36 = ptr4[i];
-      /* 1: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var36.x2[0];
-        var39.x2[0] = _src.x2[1];
-        var40.x2[0] = _src.x2[0];
-      }
-      {
-        orc_union16 _src;
-        _src.i = var36.x2[1];
-        var39.x2[1] = _src.x2[1];
-        var40.x2[1] = _src.x2[0];
-      }
-      /* 3: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var37.x2[0];
-        _dest.x2[1] = var39.x2[0];
-        var41.x2[0] = _dest.i;
-      }
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var37.x2[1];
-        _dest.x2[1] = var39.x2[1];
-        var41.x2[1] = _dest.i;
-      }
-      /* 4: mergewl */
-      {
-        orc_union32 _dest;
-        _dest.x2[0] = var40.i;
-        _dest.x2[1] = var40.i;
-        var42.i = _dest.i;
-      }
-      /* 5: mergewl */
-      {
-        orc_union32 _dest;
-        _dest.x2[0] = var41.x2[0];
-        _dest.x2[1] = var42.x2[0];
-        var38.x2[0] = _dest.i;
-      }
-      {
-        orc_union32 _dest;
-        _dest.x2[0] = var41.x2[1];
-        _dest.x2[1] = var42.x2[1];
-        var38.x2[1] = _dest.i;
-      }
-      /* 6: storeq */
-      ptr0[i] = var38;
-    }
-  }
-
-}
-
-#else
-static void
-_backup_video_convert_orc_convert_UYVY_AYUV (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int j;
-  int n = ex->n;
-  int m = ex->params[ORC_VAR_A1];
-  orc_union64 *ORC_RESTRICT ptr0;
-  const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var36;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_union16 var37;
-#else
-  orc_union16 var37;
-#endif
-  orc_union64 var38;
-  orc_union16 var39;
-  orc_union16 var40;
-  orc_union32 var41;
-  orc_union32 var42;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
-    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
-
-    /* 2: loadpb */
-    var37.x2[0] = (int) 0x000000ff;     /* 255 or 1.25987e-321f */
-    var37.x2[1] = (int) 0x000000ff;     /* 255 or 1.25987e-321f */
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadl */
-      var36 = ptr4[i];
-      /* 1: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var36.x2[0];
-        var39.x2[0] = _src.x2[1];
-        var40.x2[0] = _src.x2[0];
-      }
-      {
-        orc_union16 _src;
-        _src.i = var36.x2[1];
-        var39.x2[1] = _src.x2[1];
-        var40.x2[1] = _src.x2[0];
-      }
-      /* 3: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var37.x2[0];
-        _dest.x2[1] = var39.x2[0];
-        var41.x2[0] = _dest.i;
-      }
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var37.x2[1];
-        _dest.x2[1] = var39.x2[1];
-        var41.x2[1] = _dest.i;
-      }
-      /* 4: mergewl */
-      {
-        orc_union32 _dest;
-        _dest.x2[0] = var40.i;
-        _dest.x2[1] = var40.i;
-        var42.i = _dest.i;
-      }
-      /* 5: mergewl */
-      {
-        orc_union32 _dest;
-        _dest.x2[0] = var41.x2[0];
-        _dest.x2[1] = var42.x2[0];
-        var38.x2[0] = _dest.i;
-      }
-      {
-        orc_union32 _dest;
-        _dest.x2[0] = var41.x2[1];
-        _dest.x2[1] = var42.x2[1];
-        var38.x2[1] = _dest.i;
-      }
-      /* 6: storeq */
-      ptr0[i] = var38;
-    }
-  }
-
-}
-
-void
-video_convert_orc_convert_UYVY_AYUV (guint8 * ORC_RESTRICT d1, int d1_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
-        116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 85, 89,
-        86, 89, 95, 65, 89, 85, 86, 11, 8, 8, 12, 4, 4, 14, 2, 255,
-        0, 0, 0, 20, 2, 20, 2, 20, 4, 20, 4, 21, 1, 199, 32, 33,
-        4, 21, 1, 196, 34, 16, 32, 195, 35, 33, 33, 21, 1, 195, 0, 34,
-        35, 2, 0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_UYVY_AYUV);
-#else
-      p = orc_program_new ();
-      orc_program_set_2d (p);
-      orc_program_set_name (p, "video_convert_orc_convert_UYVY_AYUV");
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_UYVY_AYUV);
-      orc_program_add_destination (p, 8, "d1");
-      orc_program_add_source (p, 4, "s1");
-      orc_program_add_constant (p, 2, 0x000000ff, "c1");
-      orc_program_add_temporary (p, 2, "t1");
-      orc_program_add_temporary (p, 2, "t2");
-      orc_program_add_temporary (p, 4, "t3");
-      orc_program_add_temporary (p, 4, "t4");
-
-      orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T1, ORC_VAR_T2, ORC_VAR_S1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mergebw", 1, ORC_VAR_T3, ORC_VAR_C1, ORC_VAR_T1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T4, ORC_VAR_T2, ORC_VAR_T2,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mergewl", 1, ORC_VAR_D1, ORC_VAR_T3, ORC_VAR_T4,
-          ORC_VAR_D1);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ORC_EXECUTOR_M (ex) = m;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->params[ORC_VAR_D1] = d1_stride;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-  ex->params[ORC_VAR_S1] = s1_stride;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_convert_orc_convert_YUY2_Y42B */
-#ifdef DISABLE_ORC
-void
-video_convert_orc_convert_YUY2_Y42B (guint8 * ORC_RESTRICT d1, int d1_stride,
-    guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3,
-    int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
-{
-  int i;
-  int j;
-  orc_union16 *ORC_RESTRICT ptr0;
-  orc_int8 *ORC_RESTRICT ptr1;
-  orc_int8 *ORC_RESTRICT ptr2;
-  const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var33;
-  orc_union16 var34;
-  orc_int8 var35;
-  orc_int8 var36;
-  orc_union16 var37;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
-    ptr1 = ORC_PTR_OFFSET (d2, d2_stride * j);
-    ptr2 = ORC_PTR_OFFSET (d3, d3_stride * j);
-    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadl */
-      var33 = ptr4[i];
-      /* 1: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var33.x2[0];
-        var37.x2[0] = _src.x2[1];
-        var34.x2[0] = _src.x2[0];
-      }
-      {
-        orc_union16 _src;
-        _src.i = var33.x2[1];
-        var37.x2[1] = _src.x2[1];
-        var34.x2[1] = _src.x2[0];
-      }
-      /* 2: storew */
-      ptr0[i] = var34;
-      /* 3: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var37.i;
-        var35 = _src.x2[1];
-        var36 = _src.x2[0];
-      }
-      /* 4: storeb */
-      ptr2[i] = var35;
-      /* 5: storeb */
-      ptr1[i] = var36;
-    }
-  }
-
-}
-
-#else
-static void
-_backup_video_convert_orc_convert_YUY2_Y42B (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int j;
-  int n = ex->n;
-  int m = ex->params[ORC_VAR_A1];
-  orc_union16 *ORC_RESTRICT ptr0;
-  orc_int8 *ORC_RESTRICT ptr1;
-  orc_int8 *ORC_RESTRICT ptr2;
-  const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var33;
-  orc_union16 var34;
-  orc_int8 var35;
-  orc_int8 var36;
-  orc_union16 var37;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
-    ptr1 = ORC_PTR_OFFSET (ex->arrays[1], ex->params[1] * j);
-    ptr2 = ORC_PTR_OFFSET (ex->arrays[2], ex->params[2] * j);
-    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadl */
-      var33 = ptr4[i];
-      /* 1: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var33.x2[0];
-        var37.x2[0] = _src.x2[1];
-        var34.x2[0] = _src.x2[0];
-      }
-      {
-        orc_union16 _src;
-        _src.i = var33.x2[1];
-        var37.x2[1] = _src.x2[1];
-        var34.x2[1] = _src.x2[0];
-      }
-      /* 2: storew */
-      ptr0[i] = var34;
-      /* 3: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var37.i;
-        var35 = _src.x2[1];
-        var36 = _src.x2[0];
-      }
-      /* 4: storeb */
-      ptr2[i] = var35;
-      /* 5: storeb */
-      ptr1[i] = var36;
-    }
-  }
-
-}
-
-void
-video_convert_orc_convert_YUY2_Y42B (guint8 * ORC_RESTRICT d1, int d1_stride,
-    guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3,
-    int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
-        116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 89, 85,
-        89, 50, 95, 89, 52, 50, 66, 11, 2, 2, 11, 1, 1, 11, 1, 1,
-        12, 4, 4, 20, 2, 21, 1, 199, 32, 0, 4, 199, 2, 1, 32, 2,
-        0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_YUY2_Y42B);
-#else
-      p = orc_program_new ();
-      orc_program_set_2d (p);
-      orc_program_set_name (p, "video_convert_orc_convert_YUY2_Y42B");
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_YUY2_Y42B);
-      orc_program_add_destination (p, 2, "d1");
-      orc_program_add_destination (p, 1, "d2");
-      orc_program_add_destination (p, 1, "d3");
-      orc_program_add_source (p, 4, "s1");
-      orc_program_add_temporary (p, 2, "t1");
-
-      orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_S1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_D3, ORC_VAR_D2, ORC_VAR_T1,
-          ORC_VAR_D1);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ORC_EXECUTOR_M (ex) = m;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->params[ORC_VAR_D1] = d1_stride;
-  ex->arrays[ORC_VAR_D2] = d2;
-  ex->params[ORC_VAR_D2] = d2_stride;
-  ex->arrays[ORC_VAR_D3] = d3;
-  ex->params[ORC_VAR_D3] = d3_stride;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-  ex->params[ORC_VAR_S1] = s1_stride;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_convert_orc_convert_UYVY_Y42B */
-#ifdef DISABLE_ORC
-void
-video_convert_orc_convert_UYVY_Y42B (guint8 * ORC_RESTRICT d1, int d1_stride,
-    guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3,
-    int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
-{
-  int i;
-  int j;
-  orc_union16 *ORC_RESTRICT ptr0;
-  orc_int8 *ORC_RESTRICT ptr1;
-  orc_int8 *ORC_RESTRICT ptr2;
-  const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var33;
-  orc_union16 var34;
-  orc_int8 var35;
-  orc_int8 var36;
-  orc_union16 var37;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
-    ptr1 = ORC_PTR_OFFSET (d2, d2_stride * j);
-    ptr2 = ORC_PTR_OFFSET (d3, d3_stride * j);
-    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadl */
-      var33 = ptr4[i];
-      /* 1: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var33.x2[0];
-        var34.x2[0] = _src.x2[1];
-        var37.x2[0] = _src.x2[0];
-      }
-      {
-        orc_union16 _src;
-        _src.i = var33.x2[1];
-        var34.x2[1] = _src.x2[1];
-        var37.x2[1] = _src.x2[0];
-      }
-      /* 2: storew */
-      ptr0[i] = var34;
-      /* 3: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var37.i;
-        var35 = _src.x2[1];
-        var36 = _src.x2[0];
-      }
-      /* 4: storeb */
-      ptr2[i] = var35;
-      /* 5: storeb */
-      ptr1[i] = var36;
-    }
-  }
-
-}
-
-#else
-static void
-_backup_video_convert_orc_convert_UYVY_Y42B (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int j;
-  int n = ex->n;
-  int m = ex->params[ORC_VAR_A1];
-  orc_union16 *ORC_RESTRICT ptr0;
-  orc_int8 *ORC_RESTRICT ptr1;
-  orc_int8 *ORC_RESTRICT ptr2;
-  const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var33;
-  orc_union16 var34;
-  orc_int8 var35;
-  orc_int8 var36;
-  orc_union16 var37;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
-    ptr1 = ORC_PTR_OFFSET (ex->arrays[1], ex->params[1] * j);
-    ptr2 = ORC_PTR_OFFSET (ex->arrays[2], ex->params[2] * j);
-    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadl */
-      var33 = ptr4[i];
-      /* 1: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var33.x2[0];
-        var34.x2[0] = _src.x2[1];
-        var37.x2[0] = _src.x2[0];
-      }
-      {
-        orc_union16 _src;
-        _src.i = var33.x2[1];
-        var34.x2[1] = _src.x2[1];
-        var37.x2[1] = _src.x2[0];
-      }
-      /* 2: storew */
-      ptr0[i] = var34;
-      /* 3: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var37.i;
-        var35 = _src.x2[1];
-        var36 = _src.x2[0];
-      }
-      /* 4: storeb */
-      ptr2[i] = var35;
-      /* 5: storeb */
-      ptr1[i] = var36;
-    }
-  }
-
-}
-
-void
-video_convert_orc_convert_UYVY_Y42B (guint8 * ORC_RESTRICT d1, int d1_stride,
-    guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3,
-    int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
-        116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 85, 89,
-        86, 89, 95, 89, 52, 50, 66, 11, 2, 2, 11, 1, 1, 11, 1, 1,
-        12, 4, 4, 20, 2, 21, 1, 199, 0, 32, 4, 199, 2, 1, 32, 2,
-        0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_UYVY_Y42B);
-#else
-      p = orc_program_new ();
-      orc_program_set_2d (p);
-      orc_program_set_name (p, "video_convert_orc_convert_UYVY_Y42B");
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_UYVY_Y42B);
-      orc_program_add_destination (p, 2, "d1");
-      orc_program_add_destination (p, 1, "d2");
-      orc_program_add_destination (p, 1, "d3");
-      orc_program_add_source (p, 4, "s1");
-      orc_program_add_temporary (p, 2, "t1");
-
-      orc_program_append_2 (p, "splitwb", 1, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_S1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_D3, ORC_VAR_D2, ORC_VAR_T1,
-          ORC_VAR_D1);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ORC_EXECUTOR_M (ex) = m;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->params[ORC_VAR_D1] = d1_stride;
-  ex->arrays[ORC_VAR_D2] = d2;
-  ex->params[ORC_VAR_D2] = d2_stride;
-  ex->arrays[ORC_VAR_D3] = d3;
-  ex->params[ORC_VAR_D3] = d3_stride;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-  ex->params[ORC_VAR_S1] = s1_stride;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_convert_orc_convert_YUY2_Y444 */
-#ifdef DISABLE_ORC
-void
-video_convert_orc_convert_YUY2_Y444 (guint8 * ORC_RESTRICT d1, int d1_stride,
-    guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3,
-    int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
-{
-  int i;
-  int j;
-  orc_union16 *ORC_RESTRICT ptr0;
-  orc_union16 *ORC_RESTRICT ptr1;
-  orc_union16 *ORC_RESTRICT ptr2;
-  const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var35;
-  orc_union16 var36;
-  orc_union16 var37;
-  orc_union16 var38;
-  orc_union16 var39;
-  orc_int8 var40;
-  orc_int8 var41;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
-    ptr1 = ORC_PTR_OFFSET (d2, d2_stride * j);
-    ptr2 = ORC_PTR_OFFSET (d3, d3_stride * j);
-    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadl */
-      var35 = ptr4[i];
-      /* 1: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var35.x2[0];
-        var39.x2[0] = _src.x2[1];
-        var36.x2[0] = _src.x2[0];
-      }
-      {
-        orc_union16 _src;
-        _src.i = var35.x2[1];
-        var39.x2[1] = _src.x2[1];
-        var36.x2[1] = _src.x2[0];
-      }
-      /* 2: storew */
-      ptr0[i] = var36;
-      /* 3: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var39.i;
-        var40 = _src.x2[1];
-        var41 = _src.x2[0];
-      }
-      /* 4: splatbw */
-      var37.i = ((var41 & 0xff) << 8) | (var41 & 0xff);
-      /* 5: storew */
-      ptr1[i] = var37;
-      /* 6: splatbw */
-      var38.i = ((var40 & 0xff) << 8) | (var40 & 0xff);
-      /* 7: storew */
-      ptr2[i] = var38;
-    }
-  }
-
-}
-
-#else
-static void
-_backup_video_convert_orc_convert_YUY2_Y444 (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int j;
-  int n = ex->n;
-  int m = ex->params[ORC_VAR_A1];
-  orc_union16 *ORC_RESTRICT ptr0;
-  orc_union16 *ORC_RESTRICT ptr1;
-  orc_union16 *ORC_RESTRICT ptr2;
-  const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var35;
-  orc_union16 var36;
-  orc_union16 var37;
-  orc_union16 var38;
-  orc_union16 var39;
-  orc_int8 var40;
-  orc_int8 var41;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
-    ptr1 = ORC_PTR_OFFSET (ex->arrays[1], ex->params[1] * j);
-    ptr2 = ORC_PTR_OFFSET (ex->arrays[2], ex->params[2] * j);
-    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadl */
-      var35 = ptr4[i];
-      /* 1: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var35.x2[0];
-        var39.x2[0] = _src.x2[1];
-        var36.x2[0] = _src.x2[0];
-      }
-      {
-        orc_union16 _src;
-        _src.i = var35.x2[1];
-        var39.x2[1] = _src.x2[1];
-        var36.x2[1] = _src.x2[0];
-      }
-      /* 2: storew */
-      ptr0[i] = var36;
-      /* 3: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var39.i;
-        var40 = _src.x2[1];
-        var41 = _src.x2[0];
-      }
-      /* 4: splatbw */
-      var37.i = ((var41 & 0xff) << 8) | (var41 & 0xff);
-      /* 5: storew */
-      ptr1[i] = var37;
-      /* 6: splatbw */
-      var38.i = ((var40 & 0xff) << 8) | (var40 & 0xff);
-      /* 7: storew */
-      ptr2[i] = var38;
-    }
-  }
-
-}
-
-void
-video_convert_orc_convert_YUY2_Y444 (guint8 * ORC_RESTRICT d1, int d1_stride,
-    guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3,
-    int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
-        116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 89, 85,
-        89, 50, 95, 89, 52, 52, 52, 11, 2, 2, 11, 2, 2, 11, 2, 2,
-        12, 4, 4, 20, 2, 20, 1, 20, 1, 21, 1, 199, 32, 0, 4, 199,
-        34, 33, 32, 151, 1, 33, 151, 2, 34, 2, 0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_YUY2_Y444);
-#else
-      p = orc_program_new ();
-      orc_program_set_2d (p);
-      orc_program_set_name (p, "video_convert_orc_convert_YUY2_Y444");
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_YUY2_Y444);
-      orc_program_add_destination (p, 2, "d1");
-      orc_program_add_destination (p, 2, "d2");
-      orc_program_add_destination (p, 2, "d3");
-      orc_program_add_source (p, 4, "s1");
-      orc_program_add_temporary (p, 2, "t1");
-      orc_program_add_temporary (p, 1, "t2");
-      orc_program_add_temporary (p, 1, "t3");
-
-      orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_S1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T3, ORC_VAR_T2, ORC_VAR_T1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splatbw", 0, ORC_VAR_D2, ORC_VAR_T2, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splatbw", 0, ORC_VAR_D3, ORC_VAR_T3, ORC_VAR_D1,
-          ORC_VAR_D1);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ORC_EXECUTOR_M (ex) = m;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->params[ORC_VAR_D1] = d1_stride;
-  ex->arrays[ORC_VAR_D2] = d2;
-  ex->params[ORC_VAR_D2] = d2_stride;
-  ex->arrays[ORC_VAR_D3] = d3;
-  ex->params[ORC_VAR_D3] = d3_stride;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-  ex->params[ORC_VAR_S1] = s1_stride;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_convert_orc_convert_UYVY_Y444 */
-#ifdef DISABLE_ORC
-void
-video_convert_orc_convert_UYVY_Y444 (guint8 * ORC_RESTRICT d1, int d1_stride,
-    guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3,
-    int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
-{
-  int i;
-  int j;
-  orc_union16 *ORC_RESTRICT ptr0;
-  orc_union16 *ORC_RESTRICT ptr1;
-  orc_union16 *ORC_RESTRICT ptr2;
-  const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var35;
-  orc_union16 var36;
-  orc_union16 var37;
-  orc_union16 var38;
-  orc_union16 var39;
-  orc_int8 var40;
-  orc_int8 var41;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
-    ptr1 = ORC_PTR_OFFSET (d2, d2_stride * j);
-    ptr2 = ORC_PTR_OFFSET (d3, d3_stride * j);
-    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadl */
-      var35 = ptr4[i];
-      /* 1: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var35.x2[0];
-        var36.x2[0] = _src.x2[1];
-        var39.x2[0] = _src.x2[0];
-      }
-      {
-        orc_union16 _src;
-        _src.i = var35.x2[1];
-        var36.x2[1] = _src.x2[1];
-        var39.x2[1] = _src.x2[0];
-      }
-      /* 2: storew */
-      ptr0[i] = var36;
-      /* 3: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var39.i;
-        var40 = _src.x2[1];
-        var41 = _src.x2[0];
-      }
-      /* 4: splatbw */
-      var37.i = ((var41 & 0xff) << 8) | (var41 & 0xff);
-      /* 5: storew */
-      ptr1[i] = var37;
-      /* 6: splatbw */
-      var38.i = ((var40 & 0xff) << 8) | (var40 & 0xff);
-      /* 7: storew */
-      ptr2[i] = var38;
-    }
-  }
-
-}
-
-#else
-static void
-_backup_video_convert_orc_convert_UYVY_Y444 (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int j;
-  int n = ex->n;
-  int m = ex->params[ORC_VAR_A1];
-  orc_union16 *ORC_RESTRICT ptr0;
-  orc_union16 *ORC_RESTRICT ptr1;
-  orc_union16 *ORC_RESTRICT ptr2;
-  const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var35;
-  orc_union16 var36;
-  orc_union16 var37;
-  orc_union16 var38;
-  orc_union16 var39;
-  orc_int8 var40;
-  orc_int8 var41;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
-    ptr1 = ORC_PTR_OFFSET (ex->arrays[1], ex->params[1] * j);
-    ptr2 = ORC_PTR_OFFSET (ex->arrays[2], ex->params[2] * j);
-    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadl */
-      var35 = ptr4[i];
-      /* 1: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var35.x2[0];
-        var36.x2[0] = _src.x2[1];
-        var39.x2[0] = _src.x2[0];
-      }
-      {
-        orc_union16 _src;
-        _src.i = var35.x2[1];
-        var36.x2[1] = _src.x2[1];
-        var39.x2[1] = _src.x2[0];
-      }
-      /* 2: storew */
-      ptr0[i] = var36;
-      /* 3: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var39.i;
-        var40 = _src.x2[1];
-        var41 = _src.x2[0];
-      }
-      /* 4: splatbw */
-      var37.i = ((var41 & 0xff) << 8) | (var41 & 0xff);
-      /* 5: storew */
-      ptr1[i] = var37;
-      /* 6: splatbw */
-      var38.i = ((var40 & 0xff) << 8) | (var40 & 0xff);
-      /* 7: storew */
-      ptr2[i] = var38;
-    }
-  }
-
-}
-
-void
-video_convert_orc_convert_UYVY_Y444 (guint8 * ORC_RESTRICT d1, int d1_stride,
-    guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3,
-    int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
-        116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 85, 89,
-        86, 89, 95, 89, 52, 52, 52, 11, 2, 2, 11, 2, 2, 11, 2, 2,
-        12, 4, 4, 20, 2, 20, 1, 20, 1, 21, 1, 199, 0, 32, 4, 199,
-        34, 33, 32, 151, 1, 33, 151, 2, 34, 2, 0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_UYVY_Y444);
-#else
-      p = orc_program_new ();
-      orc_program_set_2d (p);
-      orc_program_set_name (p, "video_convert_orc_convert_UYVY_Y444");
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_UYVY_Y444);
-      orc_program_add_destination (p, 2, "d1");
-      orc_program_add_destination (p, 2, "d2");
-      orc_program_add_destination (p, 2, "d3");
-      orc_program_add_source (p, 4, "s1");
-      orc_program_add_temporary (p, 2, "t1");
-      orc_program_add_temporary (p, 1, "t2");
-      orc_program_add_temporary (p, 1, "t3");
-
-      orc_program_append_2 (p, "splitwb", 1, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_S1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T3, ORC_VAR_T2, ORC_VAR_T1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splatbw", 0, ORC_VAR_D2, ORC_VAR_T2, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splatbw", 0, ORC_VAR_D3, ORC_VAR_T3, ORC_VAR_D1,
-          ORC_VAR_D1);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ORC_EXECUTOR_M (ex) = m;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->params[ORC_VAR_D1] = d1_stride;
-  ex->arrays[ORC_VAR_D2] = d2;
-  ex->params[ORC_VAR_D2] = d2_stride;
-  ex->arrays[ORC_VAR_D3] = d3;
-  ex->params[ORC_VAR_D3] = d3_stride;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-  ex->params[ORC_VAR_S1] = s1_stride;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_convert_orc_convert_UYVY_I420 */
-#ifdef DISABLE_ORC
-void
-video_convert_orc_convert_UYVY_I420 (guint8 * ORC_RESTRICT d1,
-    guint8 * ORC_RESTRICT d2, guint8 * ORC_RESTRICT d3,
-    guint8 * ORC_RESTRICT d4, const guint8 * ORC_RESTRICT s1,
-    const guint8 * ORC_RESTRICT s2, int n)
-{
-  int i;
-  orc_union16 *ORC_RESTRICT ptr0;
-  orc_union16 *ORC_RESTRICT ptr1;
-  orc_int8 *ORC_RESTRICT ptr2;
-  orc_int8 *ORC_RESTRICT ptr3;
-  const orc_union32 *ORC_RESTRICT ptr4;
-  const orc_union32 *ORC_RESTRICT ptr5;
-  orc_union32 var35;
-  orc_union32 var36;
-  orc_int8 var37;
-  orc_int8 var38;
-  orc_union16 var39;
-  orc_union16 var40;
-  orc_union16 var41;
-  orc_union16 var42;
-  orc_union16 var43;
-
-  ptr0 = (orc_union16 *) d1;
-  ptr1 = (orc_union16 *) d2;
-  ptr2 = (orc_int8 *) d3;
-  ptr3 = (orc_int8 *) d4;
-  ptr4 = (orc_union32 *) s1;
-  ptr5 = (orc_union32 *) s2;
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadl */
-    var35 = ptr4[i];
-    /* 1: splitwb */
-    {
-      orc_union16 _src;
-      _src.i = var35.x2[0];
-      var39.x2[0] = _src.x2[1];
-      var40.x2[0] = _src.x2[0];
-    }
-    {
-      orc_union16 _src;
-      _src.i = var35.x2[1];
-      var39.x2[1] = _src.x2[1];
-      var40.x2[1] = _src.x2[0];
-    }
-    /* 2: storew */
-    ptr0[i] = var39;
-    /* 3: loadl */
-    var36 = ptr5[i];
-    /* 4: splitwb */
-    {
-      orc_union16 _src;
-      _src.i = var36.x2[0];
-      var41.x2[0] = _src.x2[1];
-      var42.x2[0] = _src.x2[0];
-    }
-    {
-      orc_union16 _src;
-      _src.i = var36.x2[1];
-      var41.x2[1] = _src.x2[1];
-      var42.x2[1] = _src.x2[0];
-    }
-    /* 5: storew */
-    ptr1[i] = var41;
-    /* 6: avgub */
-    var43.x2[0] = ((orc_uint8) var40.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
-    var43.x2[1] = ((orc_uint8) var40.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
-    /* 7: splitwb */
-    {
-      orc_union16 _src;
-      _src.i = var43.i;
-      var37 = _src.x2[1];
-      var38 = _src.x2[0];
-    }
-    /* 8: storeb */
-    ptr3[i] = var37;
-    /* 9: storeb */
-    ptr2[i] = var38;
-  }
-
-}
-
-#else
-static void
-_backup_video_convert_orc_convert_UYVY_I420 (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int n = ex->n;
-  orc_union16 *ORC_RESTRICT ptr0;
-  orc_union16 *ORC_RESTRICT ptr1;
-  orc_int8 *ORC_RESTRICT ptr2;
-  orc_int8 *ORC_RESTRICT ptr3;
-  const orc_union32 *ORC_RESTRICT ptr4;
-  const orc_union32 *ORC_RESTRICT ptr5;
-  orc_union32 var35;
-  orc_union32 var36;
-  orc_int8 var37;
-  orc_int8 var38;
-  orc_union16 var39;
-  orc_union16 var40;
-  orc_union16 var41;
-  orc_union16 var42;
-  orc_union16 var43;
-
-  ptr0 = (orc_union16 *) ex->arrays[0];
-  ptr1 = (orc_union16 *) ex->arrays[1];
-  ptr2 = (orc_int8 *) ex->arrays[2];
-  ptr3 = (orc_int8 *) ex->arrays[3];
-  ptr4 = (orc_union32 *) ex->arrays[4];
-  ptr5 = (orc_union32 *) ex->arrays[5];
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadl */
-    var35 = ptr4[i];
-    /* 1: splitwb */
-    {
-      orc_union16 _src;
-      _src.i = var35.x2[0];
-      var39.x2[0] = _src.x2[1];
-      var40.x2[0] = _src.x2[0];
-    }
-    {
-      orc_union16 _src;
-      _src.i = var35.x2[1];
-      var39.x2[1] = _src.x2[1];
-      var40.x2[1] = _src.x2[0];
-    }
-    /* 2: storew */
-    ptr0[i] = var39;
-    /* 3: loadl */
-    var36 = ptr5[i];
-    /* 4: splitwb */
-    {
-      orc_union16 _src;
-      _src.i = var36.x2[0];
-      var41.x2[0] = _src.x2[1];
-      var42.x2[0] = _src.x2[0];
-    }
-    {
-      orc_union16 _src;
-      _src.i = var36.x2[1];
-      var41.x2[1] = _src.x2[1];
-      var42.x2[1] = _src.x2[0];
-    }
-    /* 5: storew */
-    ptr1[i] = var41;
-    /* 6: avgub */
-    var43.x2[0] = ((orc_uint8) var40.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
-    var43.x2[1] = ((orc_uint8) var40.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
-    /* 7: splitwb */
-    {
-      orc_union16 _src;
-      _src.i = var43.i;
-      var37 = _src.x2[1];
-      var38 = _src.x2[0];
-    }
-    /* 8: storeb */
-    ptr3[i] = var37;
-    /* 9: storeb */
-    ptr2[i] = var38;
-  }
-
-}
-
-void
-video_convert_orc_convert_UYVY_I420 (guint8 * ORC_RESTRICT d1,
-    guint8 * ORC_RESTRICT d2, guint8 * ORC_RESTRICT d3,
-    guint8 * ORC_RESTRICT d4, const guint8 * ORC_RESTRICT s1,
-    const guint8 * ORC_RESTRICT s2, int n)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116,
-        95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 85, 89, 86,
-        89, 95, 73, 52, 50, 48, 11, 2, 2, 11, 2, 2, 11, 1, 1, 11,
-        1, 1, 12, 4, 4, 12, 4, 4, 20, 2, 20, 2, 20, 2, 21, 1,
-        199, 34, 32, 4, 97, 0, 34, 21, 1, 199, 34, 33, 5, 97, 1, 34,
-        21, 1, 39, 32, 32, 33, 199, 3, 2, 32, 2, 0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_UYVY_I420);
-#else
-      p = orc_program_new ();
-      orc_program_set_name (p, "video_convert_orc_convert_UYVY_I420");
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_UYVY_I420);
-      orc_program_add_destination (p, 2, "d1");
-      orc_program_add_destination (p, 2, "d2");
-      orc_program_add_destination (p, 1, "d3");
-      orc_program_add_destination (p, 1, "d4");
-      orc_program_add_source (p, 4, "s1");
-      orc_program_add_source (p, 4, "s2");
-      orc_program_add_temporary (p, 2, "t1");
-      orc_program_add_temporary (p, 2, "t2");
-      orc_program_add_temporary (p, 2, "t3");
-
-      orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T3, ORC_VAR_T1, ORC_VAR_S1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "storew", 0, ORC_VAR_D1, ORC_VAR_T3, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T3, ORC_VAR_T2, ORC_VAR_S2,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "storew", 0, ORC_VAR_D2, ORC_VAR_T3, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "avgub", 1, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T2,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_D4, ORC_VAR_D3, ORC_VAR_T1,
-          ORC_VAR_D1);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->arrays[ORC_VAR_D2] = d2;
-  ex->arrays[ORC_VAR_D3] = d3;
-  ex->arrays[ORC_VAR_D4] = d4;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-  ex->arrays[ORC_VAR_S2] = (void *) s2;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_convert_orc_convert_AYUV_I420 */
-#ifdef DISABLE_ORC
-void
-video_convert_orc_convert_AYUV_I420 (guint8 * ORC_RESTRICT d1, int d1_stride,
-    guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3,
-    int d3_stride, guint8 * ORC_RESTRICT d4, int d4_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride,
-    const guint8 * ORC_RESTRICT s2, int s2_stride, int n, int m)
-{
-  int i;
-  int j;
-  orc_union16 *ORC_RESTRICT ptr0;
-  orc_union16 *ORC_RESTRICT ptr1;
-  orc_int8 *ORC_RESTRICT ptr2;
-  orc_int8 *ORC_RESTRICT ptr3;
-  const orc_union64 *ORC_RESTRICT ptr4;
-  const orc_union64 *ORC_RESTRICT ptr5;
-  orc_union64 var40;
-  orc_union16 var41;
-  orc_union64 var42;
-  orc_union16 var43;
-  orc_int8 var44;
-  orc_int8 var45;
-  orc_union32 var46;
-  orc_union32 var47;
-  orc_union32 var48;
-  orc_union32 var49;
-  orc_union32 var50;
-  orc_union16 var51;
-  orc_union16 var52;
-  orc_int8 var53;
-  orc_int8 var54;
-  orc_int8 var55;
-  orc_int8 var56;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
-    ptr1 = ORC_PTR_OFFSET (d2, d2_stride * j);
-    ptr2 = ORC_PTR_OFFSET (d3, d3_stride * j);
-    ptr3 = ORC_PTR_OFFSET (d4, d4_stride * j);
-    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
-    ptr5 = ORC_PTR_OFFSET (s2, s2_stride * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadq */
-      var40 = ptr4[i];
-      /* 1: splitlw */
-      {
-        orc_union32 _src;
-        _src.i = var40.x2[0];
-        var46.x2[0] = _src.x2[1];
-        var47.x2[0] = _src.x2[0];
-      }
-      {
-        orc_union32 _src;
-        _src.i = var40.x2[1];
-        var46.x2[1] = _src.x2[1];
-        var47.x2[1] = _src.x2[0];
-      }
-      /* 2: select1wb */
-      {
-        orc_union16 _src;
-        _src.i = var47.x2[0];
-        var41.x2[0] = _src.x2[1];
-      }
-      {
-        orc_union16 _src;
-        _src.i = var47.x2[1];
-        var41.x2[1] = _src.x2[1];
-      }
-      /* 3: storew */
-      ptr0[i] = var41;
-      /* 4: loadq */
-      var42 = ptr5[i];
-      /* 5: splitlw */
-      {
-        orc_union32 _src;
-        _src.i = var42.x2[0];
-        var48.x2[0] = _src.x2[1];
-        var49.x2[0] = _src.x2[0];
-      }
-      {
-        orc_union32 _src;
-        _src.i = var42.x2[1];
-        var48.x2[1] = _src.x2[1];
-        var49.x2[1] = _src.x2[0];
-      }
-      /* 6: select1wb */
-      {
-        orc_union16 _src;
-        _src.i = var49.x2[0];
-        var43.x2[0] = _src.x2[1];
-      }
-      {
-        orc_union16 _src;
-        _src.i = var49.x2[1];
-        var43.x2[1] = _src.x2[1];
-      }
-      /* 7: storew */
-      ptr1[i] = var43;
-      /* 8: avgub */
-      var50.x4[0] =
-          ((orc_uint8) var46.x4[0] + (orc_uint8) var48.x4[0] + 1) >> 1;
-      var50.x4[1] =
-          ((orc_uint8) var46.x4[1] + (orc_uint8) var48.x4[1] + 1) >> 1;
-      var50.x4[2] =
-          ((orc_uint8) var46.x4[2] + (orc_uint8) var48.x4[2] + 1) >> 1;
-      var50.x4[3] =
-          ((orc_uint8) var46.x4[3] + (orc_uint8) var48.x4[3] + 1) >> 1;
-      /* 9: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var50.x2[0];
-        var51.x2[0] = _src.x2[1];
-        var52.x2[0] = _src.x2[0];
-      }
-      {
-        orc_union16 _src;
-        _src.i = var50.x2[1];
-        var51.x2[1] = _src.x2[1];
-        var52.x2[1] = _src.x2[0];
-      }
-      /* 10: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var52.i;
-        var53 = _src.x2[1];
-        var54 = _src.x2[0];
-      }
-      /* 11: avgub */
-      var44 = ((orc_uint8) var53 + (orc_uint8) var54 + 1) >> 1;
-      /* 12: storeb */
-      ptr2[i] = var44;
-      /* 13: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var51.i;
-        var55 = _src.x2[1];
-        var56 = _src.x2[0];
-      }
-      /* 14: avgub */
-      var45 = ((orc_uint8) var55 + (orc_uint8) var56 + 1) >> 1;
-      /* 15: storeb */
-      ptr3[i] = var45;
-    }
-  }
-
-}
-
-#else
-static void
-_backup_video_convert_orc_convert_AYUV_I420 (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int j;
-  int n = ex->n;
-  int m = ex->params[ORC_VAR_A1];
-  orc_union16 *ORC_RESTRICT ptr0;
-  orc_union16 *ORC_RESTRICT ptr1;
-  orc_int8 *ORC_RESTRICT ptr2;
-  orc_int8 *ORC_RESTRICT ptr3;
-  const orc_union64 *ORC_RESTRICT ptr4;
-  const orc_union64 *ORC_RESTRICT ptr5;
-  orc_union64 var40;
-  orc_union16 var41;
-  orc_union64 var42;
-  orc_union16 var43;
-  orc_int8 var44;
-  orc_int8 var45;
-  orc_union32 var46;
-  orc_union32 var47;
-  orc_union32 var48;
-  orc_union32 var49;
-  orc_union32 var50;
-  orc_union16 var51;
-  orc_union16 var52;
-  orc_int8 var53;
-  orc_int8 var54;
-  orc_int8 var55;
-  orc_int8 var56;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
-    ptr1 = ORC_PTR_OFFSET (ex->arrays[1], ex->params[1] * j);
-    ptr2 = ORC_PTR_OFFSET (ex->arrays[2], ex->params[2] * j);
-    ptr3 = ORC_PTR_OFFSET (ex->arrays[3], ex->params[3] * j);
-    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
-    ptr5 = ORC_PTR_OFFSET (ex->arrays[5], ex->params[5] * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadq */
-      var40 = ptr4[i];
-      /* 1: splitlw */
-      {
-        orc_union32 _src;
-        _src.i = var40.x2[0];
-        var46.x2[0] = _src.x2[1];
-        var47.x2[0] = _src.x2[0];
-      }
-      {
-        orc_union32 _src;
-        _src.i = var40.x2[1];
-        var46.x2[1] = _src.x2[1];
-        var47.x2[1] = _src.x2[0];
-      }
-      /* 2: select1wb */
-      {
-        orc_union16 _src;
-        _src.i = var47.x2[0];
-        var41.x2[0] = _src.x2[1];
-      }
-      {
-        orc_union16 _src;
-        _src.i = var47.x2[1];
-        var41.x2[1] = _src.x2[1];
-      }
-      /* 3: storew */
-      ptr0[i] = var41;
-      /* 4: loadq */
-      var42 = ptr5[i];
-      /* 5: splitlw */
-      {
-        orc_union32 _src;
-        _src.i = var42.x2[0];
-        var48.x2[0] = _src.x2[1];
-        var49.x2[0] = _src.x2[0];
-      }
-      {
-        orc_union32 _src;
-        _src.i = var42.x2[1];
-        var48.x2[1] = _src.x2[1];
-        var49.x2[1] = _src.x2[0];
-      }
-      /* 6: select1wb */
-      {
-        orc_union16 _src;
-        _src.i = var49.x2[0];
-        var43.x2[0] = _src.x2[1];
-      }
-      {
-        orc_union16 _src;
-        _src.i = var49.x2[1];
-        var43.x2[1] = _src.x2[1];
-      }
-      /* 7: storew */
-      ptr1[i] = var43;
-      /* 8: avgub */
-      var50.x4[0] =
-          ((orc_uint8) var46.x4[0] + (orc_uint8) var48.x4[0] + 1) >> 1;
-      var50.x4[1] =
-          ((orc_uint8) var46.x4[1] + (orc_uint8) var48.x4[1] + 1) >> 1;
-      var50.x4[2] =
-          ((orc_uint8) var46.x4[2] + (orc_uint8) var48.x4[2] + 1) >> 1;
-      var50.x4[3] =
-          ((orc_uint8) var46.x4[3] + (orc_uint8) var48.x4[3] + 1) >> 1;
-      /* 9: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var50.x2[0];
-        var51.x2[0] = _src.x2[1];
-        var52.x2[0] = _src.x2[0];
-      }
-      {
-        orc_union16 _src;
-        _src.i = var50.x2[1];
-        var51.x2[1] = _src.x2[1];
-        var52.x2[1] = _src.x2[0];
-      }
-      /* 10: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var52.i;
-        var53 = _src.x2[1];
-        var54 = _src.x2[0];
-      }
-      /* 11: avgub */
-      var44 = ((orc_uint8) var53 + (orc_uint8) var54 + 1) >> 1;
-      /* 12: storeb */
-      ptr2[i] = var44;
-      /* 13: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var51.i;
-        var55 = _src.x2[1];
-        var56 = _src.x2[0];
-      }
-      /* 14: avgub */
-      var45 = ((orc_uint8) var55 + (orc_uint8) var56 + 1) >> 1;
-      /* 15: storeb */
-      ptr3[i] = var45;
-    }
-  }
-
-}
-
-void
-video_convert_orc_convert_AYUV_I420 (guint8 * ORC_RESTRICT d1, int d1_stride,
-    guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3,
-    int d3_stride, guint8 * ORC_RESTRICT d4, int d4_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride,
-    const guint8 * ORC_RESTRICT s2, int s2_stride, int n, int m)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
-        116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 65, 89,
-        85, 86, 95, 73, 52, 50, 48, 11, 2, 2, 11, 2, 2, 11, 1, 1,
-        11, 1, 1, 12, 8, 8, 12, 8, 8, 20, 4, 20, 4, 20, 4, 20,
-        4, 20, 2, 20, 2, 20, 1, 20, 1, 21, 1, 198, 33, 32, 4, 21,
-        1, 189, 0, 32, 21, 1, 198, 34, 32, 5, 21, 1, 189, 1, 32, 21,
-        2, 39, 35, 33, 34, 21, 1, 199, 37, 36, 35, 199, 38, 39, 36, 39,
-        2, 38, 39, 199, 38, 39, 37, 39, 3, 38, 39, 2, 0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_AYUV_I420);
-#else
-      p = orc_program_new ();
-      orc_program_set_2d (p);
-      orc_program_set_name (p, "video_convert_orc_convert_AYUV_I420");
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_AYUV_I420);
-      orc_program_add_destination (p, 2, "d1");
-      orc_program_add_destination (p, 2, "d2");
-      orc_program_add_destination (p, 1, "d3");
-      orc_program_add_destination (p, 1, "d4");
-      orc_program_add_source (p, 8, "s1");
-      orc_program_add_source (p, 8, "s2");
-      orc_program_add_temporary (p, 4, "t1");
-      orc_program_add_temporary (p, 4, "t2");
-      orc_program_add_temporary (p, 4, "t3");
-      orc_program_add_temporary (p, 4, "t4");
-      orc_program_add_temporary (p, 2, "t5");
-      orc_program_add_temporary (p, 2, "t6");
-      orc_program_add_temporary (p, 1, "t7");
-      orc_program_add_temporary (p, 1, "t8");
-
-      orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_S1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "select1wb", 1, ORC_VAR_D1, ORC_VAR_T1,
-          ORC_VAR_D1, ORC_VAR_D1);
-      orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T3, ORC_VAR_T1, ORC_VAR_S2,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "select1wb", 1, ORC_VAR_D2, ORC_VAR_T1,
-          ORC_VAR_D1, ORC_VAR_D1);
-      orc_program_append_2 (p, "avgub", 2, ORC_VAR_T4, ORC_VAR_T2, ORC_VAR_T3,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T6, ORC_VAR_T5, ORC_VAR_T4,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T7, ORC_VAR_T8, ORC_VAR_T5,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "avgub", 0, ORC_VAR_D3, ORC_VAR_T7, ORC_VAR_T8,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T7, ORC_VAR_T8, ORC_VAR_T6,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "avgub", 0, ORC_VAR_D4, ORC_VAR_T7, ORC_VAR_T8,
-          ORC_VAR_D1);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ORC_EXECUTOR_M (ex) = m;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->params[ORC_VAR_D1] = d1_stride;
-  ex->arrays[ORC_VAR_D2] = d2;
-  ex->params[ORC_VAR_D2] = d2_stride;
-  ex->arrays[ORC_VAR_D3] = d3;
-  ex->params[ORC_VAR_D3] = d3_stride;
-  ex->arrays[ORC_VAR_D4] = d4;
-  ex->params[ORC_VAR_D4] = d4_stride;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-  ex->params[ORC_VAR_S1] = s1_stride;
-  ex->arrays[ORC_VAR_S2] = (void *) s2;
-  ex->params[ORC_VAR_S2] = s2_stride;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_convert_orc_convert_AYUV_YUY2 */
-#ifdef DISABLE_ORC
-void
-video_convert_orc_convert_AYUV_YUY2 (guint8 * ORC_RESTRICT d1, int d1_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
-{
-  int i;
-  int j;
-  orc_union32 *ORC_RESTRICT ptr0;
-  const orc_union64 *ORC_RESTRICT ptr4;
-  orc_union64 var37;
-  orc_union32 var38;
-  orc_union32 var39;
-  orc_union32 var40;
-  orc_union16 var41;
-  orc_union16 var42;
-  orc_union16 var43;
-  orc_union16 var44;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
-    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadq */
-      var37 = ptr4[i];
-      /* 1: splitlw */
-      {
-        orc_union32 _src;
-        _src.i = var37.x2[0];
-        var39.x2[0] = _src.x2[1];
-        var40.x2[0] = _src.x2[0];
-      }
-      {
-        orc_union32 _src;
-        _src.i = var37.x2[1];
-        var39.x2[1] = _src.x2[1];
-        var40.x2[1] = _src.x2[0];
-      }
-      /* 2: splitlw */
-      {
-        orc_union32 _src;
-        _src.i = var39.i;
-        var41.i = _src.x2[1];
-        var42.i = _src.x2[0];
-      }
-      /* 3: avgub */
-      var43.x2[0] =
-          ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
-      var43.x2[1] =
-          ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
-      /* 4: select1wb */
-      {
-        orc_union16 _src;
-        _src.i = var40.x2[0];
-        var44.x2[0] = _src.x2[1];
-      }
-      {
-        orc_union16 _src;
-        _src.i = var40.x2[1];
-        var44.x2[1] = _src.x2[1];
-      }
-      /* 5: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var44.x2[0];
-        _dest.x2[1] = var43.x2[0];
-        var38.x2[0] = _dest.i;
-      }
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var44.x2[1];
-        _dest.x2[1] = var43.x2[1];
-        var38.x2[1] = _dest.i;
-      }
-      /* 6: storel */
-      ptr0[i] = var38;
-    }
-  }
-
-}
-
-#else
-static void
-_backup_video_convert_orc_convert_AYUV_YUY2 (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int j;
-  int n = ex->n;
-  int m = ex->params[ORC_VAR_A1];
-  orc_union32 *ORC_RESTRICT ptr0;
-  const orc_union64 *ORC_RESTRICT ptr4;
-  orc_union64 var37;
-  orc_union32 var38;
-  orc_union32 var39;
-  orc_union32 var40;
-  orc_union16 var41;
-  orc_union16 var42;
-  orc_union16 var43;
-  orc_union16 var44;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
-    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadq */
-      var37 = ptr4[i];
-      /* 1: splitlw */
-      {
-        orc_union32 _src;
-        _src.i = var37.x2[0];
-        var39.x2[0] = _src.x2[1];
-        var40.x2[0] = _src.x2[0];
-      }
-      {
-        orc_union32 _src;
-        _src.i = var37.x2[1];
-        var39.x2[1] = _src.x2[1];
-        var40.x2[1] = _src.x2[0];
-      }
-      /* 2: splitlw */
-      {
-        orc_union32 _src;
-        _src.i = var39.i;
-        var41.i = _src.x2[1];
-        var42.i = _src.x2[0];
-      }
-      /* 3: avgub */
-      var43.x2[0] =
-          ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
-      var43.x2[1] =
-          ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
-      /* 4: select1wb */
-      {
-        orc_union16 _src;
-        _src.i = var40.x2[0];
-        var44.x2[0] = _src.x2[1];
-      }
-      {
-        orc_union16 _src;
-        _src.i = var40.x2[1];
-        var44.x2[1] = _src.x2[1];
-      }
-      /* 5: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var44.x2[0];
-        _dest.x2[1] = var43.x2[0];
-        var38.x2[0] = _dest.i;
-      }
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var44.x2[1];
-        _dest.x2[1] = var43.x2[1];
-        var38.x2[1] = _dest.i;
-      }
-      /* 6: storel */
-      ptr0[i] = var38;
-    }
-  }
-
-}
-
-void
-video_convert_orc_convert_AYUV_YUY2 (guint8 * ORC_RESTRICT d1, int d1_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
-        116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 65, 89,
-        85, 86, 95, 89, 85, 89, 50, 11, 4, 4, 12, 8, 8, 20, 2, 20,
-        2, 20, 2, 20, 4, 20, 4, 21, 1, 198, 36, 35, 4, 198, 33, 34,
-        36, 21, 1, 39, 33, 33, 34, 21, 1, 189, 32, 35, 21, 1, 196, 0,
-        32, 33, 2, 0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_AYUV_YUY2);
-#else
-      p = orc_program_new ();
-      orc_program_set_2d (p);
-      orc_program_set_name (p, "video_convert_orc_convert_AYUV_YUY2");
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_AYUV_YUY2);
-      orc_program_add_destination (p, 4, "d1");
-      orc_program_add_source (p, 8, "s1");
-      orc_program_add_temporary (p, 2, "t1");
-      orc_program_add_temporary (p, 2, "t2");
-      orc_program_add_temporary (p, 2, "t3");
-      orc_program_add_temporary (p, 4, "t4");
-      orc_program_add_temporary (p, 4, "t5");
-
-      orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T5, ORC_VAR_T4, ORC_VAR_S1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T2, ORC_VAR_T3, ORC_VAR_T5,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "avgub", 1, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_T3,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "select1wb", 1, ORC_VAR_T1, ORC_VAR_T4,
-          ORC_VAR_D1, ORC_VAR_D1);
-      orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T2,
-          ORC_VAR_D1);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ORC_EXECUTOR_M (ex) = m;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->params[ORC_VAR_D1] = d1_stride;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-  ex->params[ORC_VAR_S1] = s1_stride;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_convert_orc_convert_AYUV_UYVY */
-#ifdef DISABLE_ORC
-void
-video_convert_orc_convert_AYUV_UYVY (guint8 * ORC_RESTRICT d1, int d1_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
-{
-  int i;
-  int j;
-  orc_union32 *ORC_RESTRICT ptr0;
-  const orc_union64 *ORC_RESTRICT ptr4;
-  orc_union64 var37;
-  orc_union32 var38;
-  orc_union32 var39;
-  orc_union32 var40;
-  orc_union16 var41;
-  orc_union16 var42;
-  orc_union16 var43;
-  orc_union16 var44;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
-    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadq */
-      var37 = ptr4[i];
-      /* 1: splitlw */
-      {
-        orc_union32 _src;
-        _src.i = var37.x2[0];
-        var39.x2[0] = _src.x2[1];
-        var40.x2[0] = _src.x2[0];
-      }
-      {
-        orc_union32 _src;
-        _src.i = var37.x2[1];
-        var39.x2[1] = _src.x2[1];
-        var40.x2[1] = _src.x2[0];
-      }
-      /* 2: splitlw */
-      {
-        orc_union32 _src;
-        _src.i = var39.i;
-        var41.i = _src.x2[1];
-        var42.i = _src.x2[0];
-      }
-      /* 3: avgub */
-      var43.x2[0] =
-          ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
-      var43.x2[1] =
-          ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
-      /* 4: select1wb */
-      {
-        orc_union16 _src;
-        _src.i = var40.x2[0];
-        var44.x2[0] = _src.x2[1];
-      }
-      {
-        orc_union16 _src;
-        _src.i = var40.x2[1];
-        var44.x2[1] = _src.x2[1];
-      }
-      /* 5: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var43.x2[0];
-        _dest.x2[1] = var44.x2[0];
-        var38.x2[0] = _dest.i;
-      }
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var43.x2[1];
-        _dest.x2[1] = var44.x2[1];
-        var38.x2[1] = _dest.i;
-      }
-      /* 6: storel */
-      ptr0[i] = var38;
-    }
-  }
-
-}
-
-#else
-static void
-_backup_video_convert_orc_convert_AYUV_UYVY (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int j;
-  int n = ex->n;
-  int m = ex->params[ORC_VAR_A1];
-  orc_union32 *ORC_RESTRICT ptr0;
-  const orc_union64 *ORC_RESTRICT ptr4;
-  orc_union64 var37;
-  orc_union32 var38;
-  orc_union32 var39;
-  orc_union32 var40;
-  orc_union16 var41;
-  orc_union16 var42;
-  orc_union16 var43;
-  orc_union16 var44;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
-    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadq */
-      var37 = ptr4[i];
-      /* 1: splitlw */
-      {
-        orc_union32 _src;
-        _src.i = var37.x2[0];
-        var39.x2[0] = _src.x2[1];
-        var40.x2[0] = _src.x2[0];
-      }
-      {
-        orc_union32 _src;
-        _src.i = var37.x2[1];
-        var39.x2[1] = _src.x2[1];
-        var40.x2[1] = _src.x2[0];
-      }
-      /* 2: splitlw */
-      {
-        orc_union32 _src;
-        _src.i = var39.i;
-        var41.i = _src.x2[1];
-        var42.i = _src.x2[0];
-      }
-      /* 3: avgub */
-      var43.x2[0] =
-          ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
-      var43.x2[1] =
-          ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
-      /* 4: select1wb */
-      {
-        orc_union16 _src;
-        _src.i = var40.x2[0];
-        var44.x2[0] = _src.x2[1];
-      }
-      {
-        orc_union16 _src;
-        _src.i = var40.x2[1];
-        var44.x2[1] = _src.x2[1];
-      }
-      /* 5: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var43.x2[0];
-        _dest.x2[1] = var44.x2[0];
-        var38.x2[0] = _dest.i;
-      }
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var43.x2[1];
-        _dest.x2[1] = var44.x2[1];
-        var38.x2[1] = _dest.i;
-      }
-      /* 6: storel */
-      ptr0[i] = var38;
-    }
-  }
-
-}
-
-void
-video_convert_orc_convert_AYUV_UYVY (guint8 * ORC_RESTRICT d1, int d1_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
-        116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 65, 89,
-        85, 86, 95, 85, 89, 86, 89, 11, 4, 4, 12, 8, 8, 20, 2, 20,
-        2, 20, 2, 20, 4, 20, 4, 21, 1, 198, 36, 35, 4, 198, 33, 34,
-        36, 21, 1, 39, 33, 33, 34, 21, 1, 189, 32, 35, 21, 1, 196, 0,
-        33, 32, 2, 0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_AYUV_UYVY);
-#else
-      p = orc_program_new ();
-      orc_program_set_2d (p);
-      orc_program_set_name (p, "video_convert_orc_convert_AYUV_UYVY");
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_AYUV_UYVY);
-      orc_program_add_destination (p, 4, "d1");
-      orc_program_add_source (p, 8, "s1");
-      orc_program_add_temporary (p, 2, "t1");
-      orc_program_add_temporary (p, 2, "t2");
-      orc_program_add_temporary (p, 2, "t3");
-      orc_program_add_temporary (p, 4, "t4");
-      orc_program_add_temporary (p, 4, "t5");
-
-      orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T5, ORC_VAR_T4, ORC_VAR_S1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T2, ORC_VAR_T3, ORC_VAR_T5,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "avgub", 1, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_T3,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "select1wb", 1, ORC_VAR_T1, ORC_VAR_T4,
-          ORC_VAR_D1, ORC_VAR_D1);
-      orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_T1,
-          ORC_VAR_D1);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ORC_EXECUTOR_M (ex) = m;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->params[ORC_VAR_D1] = d1_stride;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-  ex->params[ORC_VAR_S1] = s1_stride;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_convert_orc_convert_AYUV_Y42B */
-#ifdef DISABLE_ORC
-void
-video_convert_orc_convert_AYUV_Y42B (guint8 * ORC_RESTRICT d1, int d1_stride,
-    guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3,
-    int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
-{
-  int i;
-  int j;
-  orc_union16 *ORC_RESTRICT ptr0;
-  orc_int8 *ORC_RESTRICT ptr1;
-  orc_int8 *ORC_RESTRICT ptr2;
-  const orc_union64 *ORC_RESTRICT ptr4;
-  orc_union64 var36;
-  orc_int8 var37;
-  orc_int8 var38;
-  orc_union16 var39;
-  orc_union32 var40;
-  orc_union32 var41;
-  orc_union16 var42;
-  orc_union16 var43;
-  orc_union16 var44;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
-    ptr1 = ORC_PTR_OFFSET (d2, d2_stride * j);
-    ptr2 = ORC_PTR_OFFSET (d3, d3_stride * j);
-    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadq */
-      var36 = ptr4[i];
-      /* 1: splitlw */
-      {
-        orc_union32 _src;
-        _src.i = var36.x2[0];
-        var40.x2[0] = _src.x2[1];
-        var41.x2[0] = _src.x2[0];
-      }
-      {
-        orc_union32 _src;
-        _src.i = var36.x2[1];
-        var40.x2[1] = _src.x2[1];
-        var41.x2[1] = _src.x2[0];
-      }
-      /* 2: splitlw */
-      {
-        orc_union32 _src;
-        _src.i = var40.i;
-        var42.i = _src.x2[1];
-        var43.i = _src.x2[0];
-      }
-      /* 3: avgub */
-      var44.x2[0] =
-          ((orc_uint8) var42.x2[0] + (orc_uint8) var43.x2[0] + 1) >> 1;
-      var44.x2[1] =
-          ((orc_uint8) var42.x2[1] + (orc_uint8) var43.x2[1] + 1) >> 1;
-      /* 4: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var44.i;
-        var37 = _src.x2[1];
-        var38 = _src.x2[0];
-      }
-      /* 5: storeb */
-      ptr2[i] = var37;
-      /* 6: storeb */
-      ptr1[i] = var38;
-      /* 7: select1wb */
-      {
-        orc_union16 _src;
-        _src.i = var41.x2[0];
-        var39.x2[0] = _src.x2[1];
-      }
-      {
-        orc_union16 _src;
-        _src.i = var41.x2[1];
-        var39.x2[1] = _src.x2[1];
-      }
-      /* 8: storew */
-      ptr0[i] = var39;
-    }
-  }
-
-}
-
-#else
-static void
-_backup_video_convert_orc_convert_AYUV_Y42B (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int j;
-  int n = ex->n;
-  int m = ex->params[ORC_VAR_A1];
-  orc_union16 *ORC_RESTRICT ptr0;
-  orc_int8 *ORC_RESTRICT ptr1;
-  orc_int8 *ORC_RESTRICT ptr2;
-  const orc_union64 *ORC_RESTRICT ptr4;
-  orc_union64 var36;
-  orc_int8 var37;
-  orc_int8 var38;
-  orc_union16 var39;
-  orc_union32 var40;
-  orc_union32 var41;
-  orc_union16 var42;
-  orc_union16 var43;
-  orc_union16 var44;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
-    ptr1 = ORC_PTR_OFFSET (ex->arrays[1], ex->params[1] * j);
-    ptr2 = ORC_PTR_OFFSET (ex->arrays[2], ex->params[2] * j);
-    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadq */
-      var36 = ptr4[i];
-      /* 1: splitlw */
-      {
-        orc_union32 _src;
-        _src.i = var36.x2[0];
-        var40.x2[0] = _src.x2[1];
-        var41.x2[0] = _src.x2[0];
-      }
-      {
-        orc_union32 _src;
-        _src.i = var36.x2[1];
-        var40.x2[1] = _src.x2[1];
-        var41.x2[1] = _src.x2[0];
-      }
-      /* 2: splitlw */
-      {
-        orc_union32 _src;
-        _src.i = var40.i;
-        var42.i = _src.x2[1];
-        var43.i = _src.x2[0];
-      }
-      /* 3: avgub */
-      var44.x2[0] =
-          ((orc_uint8) var42.x2[0] + (orc_uint8) var43.x2[0] + 1) >> 1;
-      var44.x2[1] =
-          ((orc_uint8) var42.x2[1] + (orc_uint8) var43.x2[1] + 1) >> 1;
-      /* 4: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var44.i;
-        var37 = _src.x2[1];
-        var38 = _src.x2[0];
-      }
-      /* 5: storeb */
-      ptr2[i] = var37;
-      /* 6: storeb */
-      ptr1[i] = var38;
-      /* 7: select1wb */
-      {
-        orc_union16 _src;
-        _src.i = var41.x2[0];
-        var39.x2[0] = _src.x2[1];
-      }
-      {
-        orc_union16 _src;
-        _src.i = var41.x2[1];
-        var39.x2[1] = _src.x2[1];
-      }
-      /* 8: storew */
-      ptr0[i] = var39;
-    }
-  }
-
-}
-
-void
-video_convert_orc_convert_AYUV_Y42B (guint8 * ORC_RESTRICT d1, int d1_stride,
-    guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3,
-    int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
-        116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 65, 89,
-        85, 86, 95, 89, 52, 50, 66, 11, 2, 2, 11, 1, 1, 11, 1, 1,
-        12, 8, 8, 20, 4, 20, 4, 20, 2, 20, 2, 21, 1, 198, 33, 32,
-        4, 198, 34, 35, 33, 21, 1, 39, 34, 34, 35, 199, 2, 1, 34, 21,
-        1, 189, 0, 32, 2, 0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_AYUV_Y42B);
-#else
-      p = orc_program_new ();
-      orc_program_set_2d (p);
-      orc_program_set_name (p, "video_convert_orc_convert_AYUV_Y42B");
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_AYUV_Y42B);
-      orc_program_add_destination (p, 2, "d1");
-      orc_program_add_destination (p, 1, "d2");
-      orc_program_add_destination (p, 1, "d3");
-      orc_program_add_source (p, 8, "s1");
-      orc_program_add_temporary (p, 4, "t1");
-      orc_program_add_temporary (p, 4, "t2");
-      orc_program_add_temporary (p, 2, "t3");
-      orc_program_add_temporary (p, 2, "t4");
-
-      orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_S1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T3, ORC_VAR_T4, ORC_VAR_T2,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "avgub", 1, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_T4,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_D3, ORC_VAR_D2, ORC_VAR_T3,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "select1wb", 1, ORC_VAR_D1, ORC_VAR_T1,
-          ORC_VAR_D1, ORC_VAR_D1);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ORC_EXECUTOR_M (ex) = m;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->params[ORC_VAR_D1] = d1_stride;
-  ex->arrays[ORC_VAR_D2] = d2;
-  ex->params[ORC_VAR_D2] = d2_stride;
-  ex->arrays[ORC_VAR_D3] = d3;
-  ex->params[ORC_VAR_D3] = d3_stride;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-  ex->params[ORC_VAR_S1] = s1_stride;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_convert_orc_convert_AYUV_Y444 */
-#ifdef DISABLE_ORC
-void
-video_convert_orc_convert_AYUV_Y444 (guint8 * ORC_RESTRICT d1, int d1_stride,
-    guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3,
-    int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
-{
-  int i;
-  int j;
-  orc_int8 *ORC_RESTRICT ptr0;
-  orc_int8 *ORC_RESTRICT ptr1;
-  orc_int8 *ORC_RESTRICT ptr2;
-  const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var34;
-  orc_int8 var35;
-  orc_int8 var36;
-  orc_int8 var37;
-  orc_union16 var38;
-  orc_union16 var39;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
-    ptr1 = ORC_PTR_OFFSET (d2, d2_stride * j);
-    ptr2 = ORC_PTR_OFFSET (d3, d3_stride * j);
-    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadl */
-      var34 = ptr4[i];
-      /* 1: splitlw */
-      {
-        orc_union32 _src;
-        _src.i = var34.i;
-        var38.i = _src.x2[1];
-        var39.i = _src.x2[0];
-      }
-      /* 2: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var38.i;
-        var35 = _src.x2[1];
-        var36 = _src.x2[0];
-      }
-      /* 3: storeb */
-      ptr2[i] = var35;
-      /* 4: storeb */
-      ptr1[i] = var36;
-      /* 5: select1wb */
-      {
-        orc_union16 _src;
-        _src.i = var39.i;
-        var37 = _src.x2[1];
-      }
-      /* 6: storeb */
-      ptr0[i] = var37;
-    }
-  }
-
-}
-
-#else
-static void
-_backup_video_convert_orc_convert_AYUV_Y444 (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int j;
-  int n = ex->n;
-  int m = ex->params[ORC_VAR_A1];
-  orc_int8 *ORC_RESTRICT ptr0;
-  orc_int8 *ORC_RESTRICT ptr1;
-  orc_int8 *ORC_RESTRICT ptr2;
-  const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var34;
-  orc_int8 var35;
-  orc_int8 var36;
-  orc_int8 var37;
-  orc_union16 var38;
-  orc_union16 var39;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
-    ptr1 = ORC_PTR_OFFSET (ex->arrays[1], ex->params[1] * j);
-    ptr2 = ORC_PTR_OFFSET (ex->arrays[2], ex->params[2] * j);
-    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadl */
-      var34 = ptr4[i];
-      /* 1: splitlw */
-      {
-        orc_union32 _src;
-        _src.i = var34.i;
-        var38.i = _src.x2[1];
-        var39.i = _src.x2[0];
-      }
-      /* 2: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var38.i;
-        var35 = _src.x2[1];
-        var36 = _src.x2[0];
-      }
-      /* 3: storeb */
-      ptr2[i] = var35;
-      /* 4: storeb */
-      ptr1[i] = var36;
-      /* 5: select1wb */
-      {
-        orc_union16 _src;
-        _src.i = var39.i;
-        var37 = _src.x2[1];
-      }
-      /* 6: storeb */
-      ptr0[i] = var37;
-    }
-  }
-
-}
-
-void
-video_convert_orc_convert_AYUV_Y444 (guint8 * ORC_RESTRICT d1, int d1_stride,
-    guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3,
-    int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
-        116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 65, 89,
-        85, 86, 95, 89, 52, 52, 52, 11, 1, 1, 11, 1, 1, 11, 1, 1,
-        12, 4, 4, 20, 2, 20, 2, 198, 33, 32, 4, 199, 2, 1, 33, 189,
-        0, 32, 2, 0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_AYUV_Y444);
-#else
-      p = orc_program_new ();
-      orc_program_set_2d (p);
-      orc_program_set_name (p, "video_convert_orc_convert_AYUV_Y444");
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_AYUV_Y444);
-      orc_program_add_destination (p, 1, "d1");
-      orc_program_add_destination (p, 1, "d2");
-      orc_program_add_destination (p, 1, "d3");
-      orc_program_add_source (p, 4, "s1");
-      orc_program_add_temporary (p, 2, "t1");
-      orc_program_add_temporary (p, 2, "t2");
-
-      orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_S1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_D3, ORC_VAR_D2, ORC_VAR_T2,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "select1wb", 0, ORC_VAR_D1, ORC_VAR_T1,
-          ORC_VAR_D1, ORC_VAR_D1);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ORC_EXECUTOR_M (ex) = m;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->params[ORC_VAR_D1] = d1_stride;
-  ex->arrays[ORC_VAR_D2] = d2;
-  ex->params[ORC_VAR_D2] = d2_stride;
-  ex->arrays[ORC_VAR_D3] = d3;
-  ex->params[ORC_VAR_D3] = d3_stride;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-  ex->params[ORC_VAR_S1] = s1_stride;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_convert_orc_convert_Y42B_YUY2 */
-#ifdef DISABLE_ORC
-void
-video_convert_orc_convert_Y42B_YUY2 (guint8 * ORC_RESTRICT d1, int d1_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride,
-    const guint8 * ORC_RESTRICT s2, int s2_stride,
-    const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m)
-{
-  int i;
-  int j;
-  orc_union32 *ORC_RESTRICT ptr0;
-  const orc_union16 *ORC_RESTRICT ptr4;
-  const orc_int8 *ORC_RESTRICT ptr5;
-  const orc_int8 *ORC_RESTRICT ptr6;
-  orc_int8 var33;
-  orc_int8 var34;
-  orc_union16 var35;
-  orc_union32 var36;
-  orc_union16 var37;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
-    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
-    ptr5 = ORC_PTR_OFFSET (s2, s2_stride * j);
-    ptr6 = ORC_PTR_OFFSET (s3, s3_stride * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadb */
-      var33 = ptr5[i];
-      /* 1: loadb */
-      var34 = ptr6[i];
-      /* 2: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var33;
-        _dest.x2[1] = var34;
-        var37.i = _dest.i;
-      }
-      /* 3: loadw */
-      var35 = ptr4[i];
-      /* 4: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var35.x2[0];
-        _dest.x2[1] = var37.x2[0];
-        var36.x2[0] = _dest.i;
-      }
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var35.x2[1];
-        _dest.x2[1] = var37.x2[1];
-        var36.x2[1] = _dest.i;
-      }
-      /* 5: storel */
-      ptr0[i] = var36;
-    }
-  }
-
-}
-
-#else
-static void
-_backup_video_convert_orc_convert_Y42B_YUY2 (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int j;
-  int n = ex->n;
-  int m = ex->params[ORC_VAR_A1];
-  orc_union32 *ORC_RESTRICT ptr0;
-  const orc_union16 *ORC_RESTRICT ptr4;
-  const orc_int8 *ORC_RESTRICT ptr5;
-  const orc_int8 *ORC_RESTRICT ptr6;
-  orc_int8 var33;
-  orc_int8 var34;
-  orc_union16 var35;
-  orc_union32 var36;
-  orc_union16 var37;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
-    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
-    ptr5 = ORC_PTR_OFFSET (ex->arrays[5], ex->params[5] * j);
-    ptr6 = ORC_PTR_OFFSET (ex->arrays[6], ex->params[6] * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadb */
-      var33 = ptr5[i];
-      /* 1: loadb */
-      var34 = ptr6[i];
-      /* 2: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var33;
-        _dest.x2[1] = var34;
-        var37.i = _dest.i;
-      }
-      /* 3: loadw */
-      var35 = ptr4[i];
-      /* 4: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var35.x2[0];
-        _dest.x2[1] = var37.x2[0];
-        var36.x2[0] = _dest.i;
-      }
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var35.x2[1];
-        _dest.x2[1] = var37.x2[1];
-        var36.x2[1] = _dest.i;
-      }
-      /* 5: storel */
-      ptr0[i] = var36;
-    }
-  }
-
-}
-
-void
-video_convert_orc_convert_Y42B_YUY2 (guint8 * ORC_RESTRICT d1, int d1_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride,
-    const guint8 * ORC_RESTRICT s2, int s2_stride,
-    const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
-        116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 89, 52,
-        50, 66, 95, 89, 85, 89, 50, 11, 4, 4, 12, 2, 2, 12, 1, 1,
-        12, 1, 1, 20, 2, 196, 32, 5, 6, 21, 1, 196, 0, 4, 32, 2,
-        0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_Y42B_YUY2);
-#else
-      p = orc_program_new ();
-      orc_program_set_2d (p);
-      orc_program_set_name (p, "video_convert_orc_convert_Y42B_YUY2");
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_Y42B_YUY2);
-      orc_program_add_destination (p, 4, "d1");
-      orc_program_add_source (p, 2, "s1");
-      orc_program_add_source (p, 1, "s2");
-      orc_program_add_source (p, 1, "s3");
-      orc_program_add_temporary (p, 2, "t1");
-
-      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_S2, ORC_VAR_S3,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_T1,
-          ORC_VAR_D1);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ORC_EXECUTOR_M (ex) = m;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->params[ORC_VAR_D1] = d1_stride;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-  ex->params[ORC_VAR_S1] = s1_stride;
-  ex->arrays[ORC_VAR_S2] = (void *) s2;
-  ex->params[ORC_VAR_S2] = s2_stride;
-  ex->arrays[ORC_VAR_S3] = (void *) s3;
-  ex->params[ORC_VAR_S3] = s3_stride;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_convert_orc_convert_Y42B_UYVY */
-#ifdef DISABLE_ORC
-void
-video_convert_orc_convert_Y42B_UYVY (guint8 * ORC_RESTRICT d1, int d1_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride,
-    const guint8 * ORC_RESTRICT s2, int s2_stride,
-    const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m)
-{
-  int i;
-  int j;
-  orc_union32 *ORC_RESTRICT ptr0;
-  const orc_union16 *ORC_RESTRICT ptr4;
-  const orc_int8 *ORC_RESTRICT ptr5;
-  const orc_int8 *ORC_RESTRICT ptr6;
-  orc_int8 var33;
-  orc_int8 var34;
-  orc_union16 var35;
-  orc_union32 var36;
-  orc_union16 var37;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
-    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
-    ptr5 = ORC_PTR_OFFSET (s2, s2_stride * j);
-    ptr6 = ORC_PTR_OFFSET (s3, s3_stride * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadb */
-      var33 = ptr5[i];
-      /* 1: loadb */
-      var34 = ptr6[i];
-      /* 2: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var33;
-        _dest.x2[1] = var34;
-        var37.i = _dest.i;
-      }
-      /* 3: loadw */
-      var35 = ptr4[i];
-      /* 4: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var37.x2[0];
-        _dest.x2[1] = var35.x2[0];
-        var36.x2[0] = _dest.i;
-      }
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var37.x2[1];
-        _dest.x2[1] = var35.x2[1];
-        var36.x2[1] = _dest.i;
-      }
-      /* 5: storel */
-      ptr0[i] = var36;
-    }
-  }
-
-}
-
-#else
-static void
-_backup_video_convert_orc_convert_Y42B_UYVY (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int j;
-  int n = ex->n;
-  int m = ex->params[ORC_VAR_A1];
-  orc_union32 *ORC_RESTRICT ptr0;
-  const orc_union16 *ORC_RESTRICT ptr4;
-  const orc_int8 *ORC_RESTRICT ptr5;
-  const orc_int8 *ORC_RESTRICT ptr6;
-  orc_int8 var33;
-  orc_int8 var34;
-  orc_union16 var35;
-  orc_union32 var36;
-  orc_union16 var37;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
-    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
-    ptr5 = ORC_PTR_OFFSET (ex->arrays[5], ex->params[5] * j);
-    ptr6 = ORC_PTR_OFFSET (ex->arrays[6], ex->params[6] * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadb */
-      var33 = ptr5[i];
-      /* 1: loadb */
-      var34 = ptr6[i];
-      /* 2: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var33;
-        _dest.x2[1] = var34;
-        var37.i = _dest.i;
-      }
-      /* 3: loadw */
-      var35 = ptr4[i];
-      /* 4: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var37.x2[0];
-        _dest.x2[1] = var35.x2[0];
-        var36.x2[0] = _dest.i;
-      }
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var37.x2[1];
-        _dest.x2[1] = var35.x2[1];
-        var36.x2[1] = _dest.i;
-      }
-      /* 5: storel */
-      ptr0[i] = var36;
-    }
-  }
-
-}
-
-void
-video_convert_orc_convert_Y42B_UYVY (guint8 * ORC_RESTRICT d1, int d1_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride,
-    const guint8 * ORC_RESTRICT s2, int s2_stride,
-    const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
-        116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 89, 52,
-        50, 66, 95, 85, 89, 86, 89, 11, 4, 4, 12, 2, 2, 12, 1, 1,
-        12, 1, 1, 20, 2, 196, 32, 5, 6, 21, 1, 196, 0, 32, 4, 2,
-        0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_Y42B_UYVY);
-#else
-      p = orc_program_new ();
-      orc_program_set_2d (p);
-      orc_program_set_name (p, "video_convert_orc_convert_Y42B_UYVY");
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_Y42B_UYVY);
-      orc_program_add_destination (p, 4, "d1");
-      orc_program_add_source (p, 2, "s1");
-      orc_program_add_source (p, 1, "s2");
-      orc_program_add_source (p, 1, "s3");
-      orc_program_add_temporary (p, 2, "t1");
-
-      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_S2, ORC_VAR_S3,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_S1,
-          ORC_VAR_D1);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ORC_EXECUTOR_M (ex) = m;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->params[ORC_VAR_D1] = d1_stride;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-  ex->params[ORC_VAR_S1] = s1_stride;
-  ex->arrays[ORC_VAR_S2] = (void *) s2;
-  ex->params[ORC_VAR_S2] = s2_stride;
-  ex->arrays[ORC_VAR_S3] = (void *) s3;
-  ex->params[ORC_VAR_S3] = s3_stride;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_convert_orc_convert_Y42B_AYUV */
-#ifdef DISABLE_ORC
-void
-video_convert_orc_convert_Y42B_AYUV (guint8 * ORC_RESTRICT d1, int d1_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride,
-    const guint8 * ORC_RESTRICT s2, int s2_stride,
-    const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m)
-{
-  int i;
-  int j;
-  orc_union64 *ORC_RESTRICT ptr0;
-  const orc_union16 *ORC_RESTRICT ptr4;
-  const orc_int8 *ORC_RESTRICT ptr5;
-  const orc_int8 *ORC_RESTRICT ptr6;
-  orc_int8 var36;
-  orc_int8 var37;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_union16 var38;
-#else
-  orc_union16 var38;
-#endif
-  orc_union16 var39;
-  orc_union64 var40;
-  orc_union16 var41;
-  orc_union32 var42;
-  orc_union32 var43;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
-    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
-    ptr5 = ORC_PTR_OFFSET (s2, s2_stride * j);
-    ptr6 = ORC_PTR_OFFSET (s3, s3_stride * j);
-
-    /* 3: loadpb */
-    var38.x2[0] = (int) 0x000000ff;     /* 255 or 1.25987e-321f */
-    var38.x2[1] = (int) 0x000000ff;     /* 255 or 1.25987e-321f */
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadb */
-      var36 = ptr5[i];
-      /* 1: loadb */
-      var37 = ptr6[i];
-      /* 2: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var36;
-        _dest.x2[1] = var37;
-        var41.i = _dest.i;
-      }
-      /* 4: loadw */
-      var39 = ptr4[i];
-      /* 5: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var38.x2[0];
-        _dest.x2[1] = var39.x2[0];
-        var42.x2[0] = _dest.i;
-      }
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var38.x2[1];
-        _dest.x2[1] = var39.x2[1];
-        var42.x2[1] = _dest.i;
-      }
-      /* 6: mergewl */
-      {
-        orc_union32 _dest;
-        _dest.x2[0] = var41.i;
-        _dest.x2[1] = var41.i;
-        var43.i = _dest.i;
-      }
-      /* 7: mergewl */
-      {
-        orc_union32 _dest;
-        _dest.x2[0] = var42.x2[0];
-        _dest.x2[1] = var43.x2[0];
-        var40.x2[0] = _dest.i;
-      }
-      {
-        orc_union32 _dest;
-        _dest.x2[0] = var42.x2[1];
-        _dest.x2[1] = var43.x2[1];
-        var40.x2[1] = _dest.i;
-      }
-      /* 8: storeq */
-      ptr0[i] = var40;
-    }
-  }
-
-}
-
-#else
-static void
-_backup_video_convert_orc_convert_Y42B_AYUV (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int j;
-  int n = ex->n;
-  int m = ex->params[ORC_VAR_A1];
-  orc_union64 *ORC_RESTRICT ptr0;
-  const orc_union16 *ORC_RESTRICT ptr4;
-  const orc_int8 *ORC_RESTRICT ptr5;
-  const orc_int8 *ORC_RESTRICT ptr6;
-  orc_int8 var36;
-  orc_int8 var37;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_union16 var38;
-#else
-  orc_union16 var38;
-#endif
-  orc_union16 var39;
-  orc_union64 var40;
-  orc_union16 var41;
-  orc_union32 var42;
-  orc_union32 var43;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
-    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
-    ptr5 = ORC_PTR_OFFSET (ex->arrays[5], ex->params[5] * j);
-    ptr6 = ORC_PTR_OFFSET (ex->arrays[6], ex->params[6] * j);
-
-    /* 3: loadpb */
-    var38.x2[0] = (int) 0x000000ff;     /* 255 or 1.25987e-321f */
-    var38.x2[1] = (int) 0x000000ff;     /* 255 or 1.25987e-321f */
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadb */
-      var36 = ptr5[i];
-      /* 1: loadb */
-      var37 = ptr6[i];
-      /* 2: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var36;
-        _dest.x2[1] = var37;
-        var41.i = _dest.i;
-      }
-      /* 4: loadw */
-      var39 = ptr4[i];
-      /* 5: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var38.x2[0];
-        _dest.x2[1] = var39.x2[0];
-        var42.x2[0] = _dest.i;
-      }
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var38.x2[1];
-        _dest.x2[1] = var39.x2[1];
-        var42.x2[1] = _dest.i;
-      }
-      /* 6: mergewl */
-      {
-        orc_union32 _dest;
-        _dest.x2[0] = var41.i;
-        _dest.x2[1] = var41.i;
-        var43.i = _dest.i;
-      }
-      /* 7: mergewl */
-      {
-        orc_union32 _dest;
-        _dest.x2[0] = var42.x2[0];
-        _dest.x2[1] = var43.x2[0];
-        var40.x2[0] = _dest.i;
-      }
-      {
-        orc_union32 _dest;
-        _dest.x2[0] = var42.x2[1];
-        _dest.x2[1] = var43.x2[1];
-        var40.x2[1] = _dest.i;
-      }
-      /* 8: storeq */
-      ptr0[i] = var40;
-    }
-  }
-
-}
-
-void
-video_convert_orc_convert_Y42B_AYUV (guint8 * ORC_RESTRICT d1, int d1_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride,
-    const guint8 * ORC_RESTRICT s2, int s2_stride,
-    const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
-        116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 89, 52,
-        50, 66, 95, 65, 89, 85, 86, 11, 8, 8, 12, 2, 2, 12, 1, 1,
-        12, 1, 1, 14, 1, 255, 0, 0, 0, 20, 2, 20, 2, 20, 4, 20,
-        4, 196, 32, 5, 6, 21, 1, 196, 35, 16, 4, 195, 34, 32, 32, 21,
-        1, 195, 0, 35, 34, 2, 0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_Y42B_AYUV);
-#else
-      p = orc_program_new ();
-      orc_program_set_2d (p);
-      orc_program_set_name (p, "video_convert_orc_convert_Y42B_AYUV");
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_Y42B_AYUV);
-      orc_program_add_destination (p, 8, "d1");
-      orc_program_add_source (p, 2, "s1");
-      orc_program_add_source (p, 1, "s2");
-      orc_program_add_source (p, 1, "s3");
-      orc_program_add_constant (p, 1, 0x000000ff, "c1");
-      orc_program_add_temporary (p, 2, "t1");
-      orc_program_add_temporary (p, 2, "t2");
-      orc_program_add_temporary (p, 4, "t3");
-      orc_program_add_temporary (p, 4, "t4");
-
-      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_S2, ORC_VAR_S3,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mergebw", 1, ORC_VAR_T4, ORC_VAR_C1, ORC_VAR_S1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T3, ORC_VAR_T1, ORC_VAR_T1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mergewl", 1, ORC_VAR_D1, ORC_VAR_T4, ORC_VAR_T3,
-          ORC_VAR_D1);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ORC_EXECUTOR_M (ex) = m;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->params[ORC_VAR_D1] = d1_stride;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-  ex->params[ORC_VAR_S1] = s1_stride;
-  ex->arrays[ORC_VAR_S2] = (void *) s2;
-  ex->params[ORC_VAR_S2] = s2_stride;
-  ex->arrays[ORC_VAR_S3] = (void *) s3;
-  ex->params[ORC_VAR_S3] = s3_stride;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_convert_orc_convert_Y444_YUY2 */
-#ifdef DISABLE_ORC
-void
-video_convert_orc_convert_Y444_YUY2 (guint8 * ORC_RESTRICT d1, int d1_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride,
-    const guint8 * ORC_RESTRICT s2, int s2_stride,
-    const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m)
-{
-  int i;
-  int j;
-  orc_union32 *ORC_RESTRICT ptr0;
-  const orc_union16 *ORC_RESTRICT ptr4;
-  const orc_union16 *ORC_RESTRICT ptr5;
-  const orc_union16 *ORC_RESTRICT ptr6;
-  orc_union16 var36;
-  orc_union16 var37;
-  orc_union16 var38;
-  orc_union32 var39;
-  orc_union32 var40;
-  orc_union16 var41;
-  orc_union16 var42;
-  orc_union16 var43;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
-    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
-    ptr5 = ORC_PTR_OFFSET (s2, s2_stride * j);
-    ptr6 = ORC_PTR_OFFSET (s3, s3_stride * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadw */
-      var36 = ptr5[i];
-      /* 1: loadw */
-      var37 = ptr6[i];
-      /* 2: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var36.x2[0];
-        _dest.x2[1] = var37.x2[0];
-        var40.x2[0] = _dest.i;
-      }
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var36.x2[1];
-        _dest.x2[1] = var37.x2[1];
-        var40.x2[1] = _dest.i;
-      }
-      /* 3: splitlw */
-      {
-        orc_union32 _src;
-        _src.i = var40.i;
-        var41.i = _src.x2[1];
-        var42.i = _src.x2[0];
-      }
-      /* 4: avgub */
-      var43.x2[0] =
-          ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
-      var43.x2[1] =
-          ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
-      /* 5: loadw */
-      var38 = ptr4[i];
-      /* 6: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var38.x2[0];
-        _dest.x2[1] = var43.x2[0];
-        var39.x2[0] = _dest.i;
-      }
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var38.x2[1];
-        _dest.x2[1] = var43.x2[1];
-        var39.x2[1] = _dest.i;
-      }
-      /* 7: storel */
-      ptr0[i] = var39;
-    }
-  }
-
-}
-
-#else
-static void
-_backup_video_convert_orc_convert_Y444_YUY2 (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int j;
-  int n = ex->n;
-  int m = ex->params[ORC_VAR_A1];
-  orc_union32 *ORC_RESTRICT ptr0;
-  const orc_union16 *ORC_RESTRICT ptr4;
-  const orc_union16 *ORC_RESTRICT ptr5;
-  const orc_union16 *ORC_RESTRICT ptr6;
-  orc_union16 var36;
-  orc_union16 var37;
-  orc_union16 var38;
-  orc_union32 var39;
-  orc_union32 var40;
-  orc_union16 var41;
-  orc_union16 var42;
-  orc_union16 var43;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
-    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
-    ptr5 = ORC_PTR_OFFSET (ex->arrays[5], ex->params[5] * j);
-    ptr6 = ORC_PTR_OFFSET (ex->arrays[6], ex->params[6] * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadw */
-      var36 = ptr5[i];
-      /* 1: loadw */
-      var37 = ptr6[i];
-      /* 2: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var36.x2[0];
-        _dest.x2[1] = var37.x2[0];
-        var40.x2[0] = _dest.i;
-      }
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var36.x2[1];
-        _dest.x2[1] = var37.x2[1];
-        var40.x2[1] = _dest.i;
-      }
-      /* 3: splitlw */
-      {
-        orc_union32 _src;
-        _src.i = var40.i;
-        var41.i = _src.x2[1];
-        var42.i = _src.x2[0];
-      }
-      /* 4: avgub */
-      var43.x2[0] =
-          ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
-      var43.x2[1] =
-          ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
-      /* 5: loadw */
-      var38 = ptr4[i];
-      /* 6: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var38.x2[0];
-        _dest.x2[1] = var43.x2[0];
-        var39.x2[0] = _dest.i;
-      }
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var38.x2[1];
-        _dest.x2[1] = var43.x2[1];
-        var39.x2[1] = _dest.i;
-      }
-      /* 7: storel */
-      ptr0[i] = var39;
-    }
-  }
-
-}
-
-void
-video_convert_orc_convert_Y444_YUY2 (guint8 * ORC_RESTRICT d1, int d1_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride,
-    const guint8 * ORC_RESTRICT s2, int s2_stride,
-    const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
-        116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 89, 52,
-        52, 52, 95, 89, 85, 89, 50, 11, 4, 4, 12, 2, 2, 12, 2, 2,
-        12, 2, 2, 20, 2, 20, 4, 20, 2, 20, 2, 21, 1, 196, 33, 5,
-        6, 198, 34, 35, 33, 21, 1, 39, 32, 34, 35, 21, 1, 196, 0, 4,
-        32, 2, 0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_Y444_YUY2);
-#else
-      p = orc_program_new ();
-      orc_program_set_2d (p);
-      orc_program_set_name (p, "video_convert_orc_convert_Y444_YUY2");
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_Y444_YUY2);
-      orc_program_add_destination (p, 4, "d1");
-      orc_program_add_source (p, 2, "s1");
-      orc_program_add_source (p, 2, "s2");
-      orc_program_add_source (p, 2, "s3");
-      orc_program_add_temporary (p, 2, "t1");
-      orc_program_add_temporary (p, 4, "t2");
-      orc_program_add_temporary (p, 2, "t3");
-      orc_program_add_temporary (p, 2, "t4");
-
-      orc_program_append_2 (p, "mergebw", 1, ORC_VAR_T2, ORC_VAR_S2, ORC_VAR_S3,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T3, ORC_VAR_T4, ORC_VAR_T2,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "avgub", 1, ORC_VAR_T1, ORC_VAR_T3, ORC_VAR_T4,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_T1,
-          ORC_VAR_D1);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ORC_EXECUTOR_M (ex) = m;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->params[ORC_VAR_D1] = d1_stride;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-  ex->params[ORC_VAR_S1] = s1_stride;
-  ex->arrays[ORC_VAR_S2] = (void *) s2;
-  ex->params[ORC_VAR_S2] = s2_stride;
-  ex->arrays[ORC_VAR_S3] = (void *) s3;
-  ex->params[ORC_VAR_S3] = s3_stride;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_convert_orc_convert_Y444_UYVY */
-#ifdef DISABLE_ORC
-void
-video_convert_orc_convert_Y444_UYVY (guint8 * ORC_RESTRICT d1, int d1_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride,
-    const guint8 * ORC_RESTRICT s2, int s2_stride,
-    const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m)
-{
-  int i;
-  int j;
-  orc_union32 *ORC_RESTRICT ptr0;
-  const orc_union16 *ORC_RESTRICT ptr4;
-  const orc_union16 *ORC_RESTRICT ptr5;
-  const orc_union16 *ORC_RESTRICT ptr6;
-  orc_union16 var36;
-  orc_union16 var37;
-  orc_union16 var38;
-  orc_union32 var39;
-  orc_union32 var40;
-  orc_union16 var41;
-  orc_union16 var42;
-  orc_union16 var43;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
-    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
-    ptr5 = ORC_PTR_OFFSET (s2, s2_stride * j);
-    ptr6 = ORC_PTR_OFFSET (s3, s3_stride * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadw */
-      var36 = ptr5[i];
-      /* 1: loadw */
-      var37 = ptr6[i];
-      /* 2: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var36.x2[0];
-        _dest.x2[1] = var37.x2[0];
-        var40.x2[0] = _dest.i;
-      }
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var36.x2[1];
-        _dest.x2[1] = var37.x2[1];
-        var40.x2[1] = _dest.i;
-      }
-      /* 3: splitlw */
-      {
-        orc_union32 _src;
-        _src.i = var40.i;
-        var41.i = _src.x2[1];
-        var42.i = _src.x2[0];
-      }
-      /* 4: avgub */
-      var43.x2[0] =
-          ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
-      var43.x2[1] =
-          ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
-      /* 5: loadw */
-      var38 = ptr4[i];
-      /* 6: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var43.x2[0];
-        _dest.x2[1] = var38.x2[0];
-        var39.x2[0] = _dest.i;
-      }
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var43.x2[1];
-        _dest.x2[1] = var38.x2[1];
-        var39.x2[1] = _dest.i;
-      }
-      /* 7: storel */
-      ptr0[i] = var39;
-    }
-  }
-
-}
-
-#else
-static void
-_backup_video_convert_orc_convert_Y444_UYVY (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int j;
-  int n = ex->n;
-  int m = ex->params[ORC_VAR_A1];
-  orc_union32 *ORC_RESTRICT ptr0;
-  const orc_union16 *ORC_RESTRICT ptr4;
-  const orc_union16 *ORC_RESTRICT ptr5;
-  const orc_union16 *ORC_RESTRICT ptr6;
-  orc_union16 var36;
-  orc_union16 var37;
-  orc_union16 var38;
-  orc_union32 var39;
-  orc_union32 var40;
-  orc_union16 var41;
-  orc_union16 var42;
-  orc_union16 var43;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
-    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
-    ptr5 = ORC_PTR_OFFSET (ex->arrays[5], ex->params[5] * j);
-    ptr6 = ORC_PTR_OFFSET (ex->arrays[6], ex->params[6] * j);
-
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadw */
-      var36 = ptr5[i];
-      /* 1: loadw */
-      var37 = ptr6[i];
-      /* 2: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var36.x2[0];
-        _dest.x2[1] = var37.x2[0];
-        var40.x2[0] = _dest.i;
-      }
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var36.x2[1];
-        _dest.x2[1] = var37.x2[1];
-        var40.x2[1] = _dest.i;
-      }
-      /* 3: splitlw */
-      {
-        orc_union32 _src;
-        _src.i = var40.i;
-        var41.i = _src.x2[1];
-        var42.i = _src.x2[0];
-      }
-      /* 4: avgub */
-      var43.x2[0] =
-          ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
-      var43.x2[1] =
-          ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
-      /* 5: loadw */
-      var38 = ptr4[i];
-      /* 6: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var43.x2[0];
-        _dest.x2[1] = var38.x2[0];
-        var39.x2[0] = _dest.i;
-      }
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var43.x2[1];
-        _dest.x2[1] = var38.x2[1];
-        var39.x2[1] = _dest.i;
-      }
-      /* 7: storel */
-      ptr0[i] = var39;
-    }
-  }
-
-}
-
-void
-video_convert_orc_convert_Y444_UYVY (guint8 * ORC_RESTRICT d1, int d1_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride,
-    const guint8 * ORC_RESTRICT s2, int s2_stride,
-    const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
-        116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 89, 52,
-        52, 52, 95, 85, 89, 86, 89, 11, 4, 4, 12, 2, 2, 12, 2, 2,
-        12, 2, 2, 20, 2, 20, 4, 20, 2, 20, 2, 21, 1, 196, 33, 5,
-        6, 198, 34, 35, 33, 21, 1, 39, 32, 34, 35, 21, 1, 196, 0, 32,
-        4, 2, 0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_Y444_UYVY);
-#else
-      p = orc_program_new ();
-      orc_program_set_2d (p);
-      orc_program_set_name (p, "video_convert_orc_convert_Y444_UYVY");
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_Y444_UYVY);
-      orc_program_add_destination (p, 4, "d1");
-      orc_program_add_source (p, 2, "s1");
-      orc_program_add_source (p, 2, "s2");
-      orc_program_add_source (p, 2, "s3");
-      orc_program_add_temporary (p, 2, "t1");
-      orc_program_add_temporary (p, 4, "t2");
-      orc_program_add_temporary (p, 2, "t3");
-      orc_program_add_temporary (p, 2, "t4");
-
-      orc_program_append_2 (p, "mergebw", 1, ORC_VAR_T2, ORC_VAR_S2, ORC_VAR_S3,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T3, ORC_VAR_T4, ORC_VAR_T2,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "avgub", 1, ORC_VAR_T1, ORC_VAR_T3, ORC_VAR_T4,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_S1,
-          ORC_VAR_D1);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ORC_EXECUTOR_M (ex) = m;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->params[ORC_VAR_D1] = d1_stride;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-  ex->params[ORC_VAR_S1] = s1_stride;
-  ex->arrays[ORC_VAR_S2] = (void *) s2;
-  ex->params[ORC_VAR_S2] = s2_stride;
-  ex->arrays[ORC_VAR_S3] = (void *) s3;
-  ex->params[ORC_VAR_S3] = s3_stride;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_convert_orc_convert_Y444_AYUV */
-#ifdef DISABLE_ORC
-void
-video_convert_orc_convert_Y444_AYUV (guint8 * ORC_RESTRICT d1, int d1_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride,
-    const guint8 * ORC_RESTRICT s2, int s2_stride,
-    const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m)
-{
-  int i;
-  int j;
-  orc_union32 *ORC_RESTRICT ptr0;
-  const orc_int8 *ORC_RESTRICT ptr4;
-  const orc_int8 *ORC_RESTRICT ptr5;
-  const orc_int8 *ORC_RESTRICT ptr6;
-  orc_int8 var34;
-  orc_int8 var35;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_int8 var36;
-#else
-  orc_int8 var36;
-#endif
-  orc_int8 var37;
-  orc_union32 var38;
-  orc_union16 var39;
-  orc_union16 var40;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
-    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
-    ptr5 = ORC_PTR_OFFSET (s2, s2_stride * j);
-    ptr6 = ORC_PTR_OFFSET (s3, s3_stride * j);
-
-    /* 3: loadpb */
-    var36 = (int) 0x000000ff;   /* 255 or 1.25987e-321f */
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadb */
-      var34 = ptr5[i];
-      /* 1: loadb */
-      var35 = ptr6[i];
-      /* 2: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var34;
-        _dest.x2[1] = var35;
-        var39.i = _dest.i;
-      }
-      /* 4: loadb */
-      var37 = ptr4[i];
-      /* 5: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var36;
-        _dest.x2[1] = var37;
-        var40.i = _dest.i;
-      }
-      /* 6: mergewl */
-      {
-        orc_union32 _dest;
-        _dest.x2[0] = var40.i;
-        _dest.x2[1] = var39.i;
-        var38.i = _dest.i;
-      }
-      /* 7: storel */
-      ptr0[i] = var38;
-    }
-  }
-
-}
-
-#else
-static void
-_backup_video_convert_orc_convert_Y444_AYUV (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int j;
-  int n = ex->n;
-  int m = ex->params[ORC_VAR_A1];
-  orc_union32 *ORC_RESTRICT ptr0;
-  const orc_int8 *ORC_RESTRICT ptr4;
-  const orc_int8 *ORC_RESTRICT ptr5;
-  const orc_int8 *ORC_RESTRICT ptr6;
-  orc_int8 var34;
-  orc_int8 var35;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_int8 var36;
-#else
-  orc_int8 var36;
-#endif
-  orc_int8 var37;
-  orc_union32 var38;
-  orc_union16 var39;
-  orc_union16 var40;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
-    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
-    ptr5 = ORC_PTR_OFFSET (ex->arrays[5], ex->params[5] * j);
-    ptr6 = ORC_PTR_OFFSET (ex->arrays[6], ex->params[6] * j);
-
-    /* 3: loadpb */
-    var36 = (int) 0x000000ff;   /* 255 or 1.25987e-321f */
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadb */
-      var34 = ptr5[i];
-      /* 1: loadb */
-      var35 = ptr6[i];
-      /* 2: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var34;
-        _dest.x2[1] = var35;
-        var39.i = _dest.i;
-      }
-      /* 4: loadb */
-      var37 = ptr4[i];
-      /* 5: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var36;
-        _dest.x2[1] = var37;
-        var40.i = _dest.i;
-      }
-      /* 6: mergewl */
-      {
-        orc_union32 _dest;
-        _dest.x2[0] = var40.i;
-        _dest.x2[1] = var39.i;
-        var38.i = _dest.i;
-      }
-      /* 7: storel */
-      ptr0[i] = var38;
-    }
-  }
-
-}
-
-void
-video_convert_orc_convert_Y444_AYUV (guint8 * ORC_RESTRICT d1, int d1_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride,
-    const guint8 * ORC_RESTRICT s2, int s2_stride,
-    const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
-        116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 89, 52,
-        52, 52, 95, 65, 89, 85, 86, 11, 4, 4, 12, 1, 1, 12, 1, 1,
-        12, 1, 1, 14, 1, 255, 0, 0, 0, 20, 2, 20, 2, 196, 32, 5,
-        6, 196, 33, 16, 4, 195, 0, 33, 32, 2, 0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_Y444_AYUV);
-#else
-      p = orc_program_new ();
-      orc_program_set_2d (p);
-      orc_program_set_name (p, "video_convert_orc_convert_Y444_AYUV");
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_Y444_AYUV);
-      orc_program_add_destination (p, 4, "d1");
-      orc_program_add_source (p, 1, "s1");
-      orc_program_add_source (p, 1, "s2");
-      orc_program_add_source (p, 1, "s3");
-      orc_program_add_constant (p, 1, 0x000000ff, "c1");
-      orc_program_add_temporary (p, 2, "t1");
-      orc_program_add_temporary (p, 2, "t2");
-
-      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_S2, ORC_VAR_S3,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T2, ORC_VAR_C1, ORC_VAR_S1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_T1,
-          ORC_VAR_D1);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ORC_EXECUTOR_M (ex) = m;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->params[ORC_VAR_D1] = d1_stride;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-  ex->params[ORC_VAR_S1] = s1_stride;
-  ex->arrays[ORC_VAR_S2] = (void *) s2;
-  ex->params[ORC_VAR_S2] = s2_stride;
-  ex->arrays[ORC_VAR_S3] = (void *) s3;
-  ex->params[ORC_VAR_S3] = s3_stride;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_convert_orc_convert_AYUV_ARGB */
-#ifdef DISABLE_ORC
-void
-video_convert_orc_convert_AYUV_ARGB (guint8 * ORC_RESTRICT d1, int d1_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int p2, int p3,
-    int p4, int p5, int n, int m)
-{
-  int i;
-  int j;
-  orc_union32 *ORC_RESTRICT ptr0;
-  const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var46;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_union32 var47;
-#else
-  orc_union32 var47;
-#endif
-  orc_union16 var48;
-  orc_union16 var49;
-  orc_union16 var50;
-  orc_union16 var51;
-  orc_union16 var52;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_union32 var53;
-#else
-  orc_union32 var53;
-#endif
-  orc_union32 var54;
-  orc_union32 var55;
-  orc_union16 var56;
-  orc_union16 var57;
-  orc_int8 var58;
-  orc_int8 var59;
-  orc_int8 var60;
-  orc_int8 var61;
-  orc_union16 var62;
-  orc_union16 var63;
-  orc_union16 var64;
-  orc_union16 var65;
-  orc_union16 var66;
-  orc_union16 var67;
-  orc_union16 var68;
-  orc_union16 var69;
-  orc_union16 var70;
-  orc_union16 var71;
-  orc_union16 var72;
-  orc_union16 var73;
-  orc_int8 var74;
-  orc_int8 var75;
-  orc_int8 var76;
-  orc_union16 var77;
-  orc_union16 var78;
-  orc_union32 var79;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
-    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
-
-    /* 1: loadpb */
-    var47.x4[0] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var47.x4[1] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var47.x4[2] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var47.x4[3] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    /* 9: loadpw */
-    var48.i = p1;
-    /* 11: loadpw */
-    var49.i = p2;
-    /* 14: loadpw */
-    var50.i = p3;
-    /* 17: loadpw */
-    var51.i = p4;
-    /* 20: loadpw */
-    var52.i = p5;
-    /* 29: loadpb */
-    var53.x4[0] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var53.x4[1] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var53.x4[2] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var53.x4[3] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadl */
-      var46 = ptr4[i];
-      /* 2: subb */
-      var55.x4[0] = var46.x4[0] - var47.x4[0];
-      var55.x4[1] = var46.x4[1] - var47.x4[1];
-      var55.x4[2] = var46.x4[2] - var47.x4[2];
-      var55.x4[3] = var46.x4[3] - var47.x4[3];
-      /* 3: splitlw */
-      {
-        orc_union32 _src;
-        _src.i = var55.i;
-        var56.i = _src.x2[1];
-        var57.i = _src.x2[0];
-      }
-      /* 4: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var57.i;
-        var58 = _src.x2[1];
-        var59 = _src.x2[0];
-      }
-      /* 5: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var56.i;
-        var60 = _src.x2[1];
-        var61 = _src.x2[0];
-      }
-      /* 6: splatbw */
-      var62.i = ((var58 & 0xff) << 8) | (var58 & 0xff);
-      /* 7: splatbw */
-      var63.i = ((var61 & 0xff) << 8) | (var61 & 0xff);
-      /* 8: splatbw */
-      var64.i = ((var60 & 0xff) << 8) | (var60 & 0xff);
-      /* 10: mulhsw */
-      var65.i = (var62.i * var48.i) >> 16;
-      /* 12: mulhsw */
-      var66.i = (var64.i * var49.i) >> 16;
-      /* 13: addssw */
-      var67.i = ORC_CLAMP_SW (var65.i + var66.i);
-      /* 15: mulhsw */
-      var68.i = (var63.i * var50.i) >> 16;
-      /* 16: addssw */
-      var69.i = ORC_CLAMP_SW (var65.i + var68.i);
-      /* 18: mulhsw */
-      var70.i = (var63.i * var51.i) >> 16;
-      /* 19: addssw */
-      var71.i = ORC_CLAMP_SW (var65.i + var70.i);
-      /* 21: mulhsw */
-      var72.i = (var64.i * var52.i) >> 16;
-      /* 22: addssw */
-      var73.i = ORC_CLAMP_SW (var71.i + var72.i);
-      /* 23: convssswb */
-      var74 = ORC_CLAMP_SB (var67.i);
-      /* 24: convssswb */
-      var75 = ORC_CLAMP_SB (var73.i);
-      /* 25: convssswb */
-      var76 = ORC_CLAMP_SB (var69.i);
-      /* 26: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var59;
-        _dest.x2[1] = var74;
-        var77.i = _dest.i;
-      }
-      /* 27: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var75;
-        _dest.x2[1] = var76;
-        var78.i = _dest.i;
-      }
-      /* 28: mergewl */
-      {
-        orc_union32 _dest;
-        _dest.x2[0] = var77.i;
-        _dest.x2[1] = var78.i;
-        var79.i = _dest.i;
-      }
-      /* 30: addb */
-      var54.x4[0] = var79.x4[0] + var53.x4[0];
-      var54.x4[1] = var79.x4[1] + var53.x4[1];
-      var54.x4[2] = var79.x4[2] + var53.x4[2];
-      var54.x4[3] = var79.x4[3] + var53.x4[3];
-      /* 31: storel */
-      ptr0[i] = var54;
-    }
-  }
-
-}
-
-#else
-static void
-_backup_video_convert_orc_convert_AYUV_ARGB (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int j;
-  int n = ex->n;
-  int m = ex->params[ORC_VAR_A1];
-  orc_union32 *ORC_RESTRICT ptr0;
-  const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var46;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_union32 var47;
-#else
-  orc_union32 var47;
-#endif
-  orc_union16 var48;
-  orc_union16 var49;
-  orc_union16 var50;
-  orc_union16 var51;
-  orc_union16 var52;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_union32 var53;
-#else
-  orc_union32 var53;
-#endif
-  orc_union32 var54;
-  orc_union32 var55;
-  orc_union16 var56;
-  orc_union16 var57;
-  orc_int8 var58;
-  orc_int8 var59;
-  orc_int8 var60;
-  orc_int8 var61;
-  orc_union16 var62;
-  orc_union16 var63;
-  orc_union16 var64;
-  orc_union16 var65;
-  orc_union16 var66;
-  orc_union16 var67;
-  orc_union16 var68;
-  orc_union16 var69;
-  orc_union16 var70;
-  orc_union16 var71;
-  orc_union16 var72;
-  orc_union16 var73;
-  orc_int8 var74;
-  orc_int8 var75;
-  orc_int8 var76;
-  orc_union16 var77;
-  orc_union16 var78;
-  orc_union32 var79;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
-    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
-
-    /* 1: loadpb */
-    var47.x4[0] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var47.x4[1] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var47.x4[2] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var47.x4[3] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    /* 9: loadpw */
-    var48.i = ex->params[24];
-    /* 11: loadpw */
-    var49.i = ex->params[25];
-    /* 14: loadpw */
-    var50.i = ex->params[26];
-    /* 17: loadpw */
-    var51.i = ex->params[27];
-    /* 20: loadpw */
-    var52.i = ex->params[28];
-    /* 29: loadpb */
-    var53.x4[0] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var53.x4[1] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var53.x4[2] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var53.x4[3] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadl */
-      var46 = ptr4[i];
-      /* 2: subb */
-      var55.x4[0] = var46.x4[0] - var47.x4[0];
-      var55.x4[1] = var46.x4[1] - var47.x4[1];
-      var55.x4[2] = var46.x4[2] - var47.x4[2];
-      var55.x4[3] = var46.x4[3] - var47.x4[3];
-      /* 3: splitlw */
-      {
-        orc_union32 _src;
-        _src.i = var55.i;
-        var56.i = _src.x2[1];
-        var57.i = _src.x2[0];
-      }
-      /* 4: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var57.i;
-        var58 = _src.x2[1];
-        var59 = _src.x2[0];
-      }
-      /* 5: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var56.i;
-        var60 = _src.x2[1];
-        var61 = _src.x2[0];
-      }
-      /* 6: splatbw */
-      var62.i = ((var58 & 0xff) << 8) | (var58 & 0xff);
-      /* 7: splatbw */
-      var63.i = ((var61 & 0xff) << 8) | (var61 & 0xff);
-      /* 8: splatbw */
-      var64.i = ((var60 & 0xff) << 8) | (var60 & 0xff);
-      /* 10: mulhsw */
-      var65.i = (var62.i * var48.i) >> 16;
-      /* 12: mulhsw */
-      var66.i = (var64.i * var49.i) >> 16;
-      /* 13: addssw */
-      var67.i = ORC_CLAMP_SW (var65.i + var66.i);
-      /* 15: mulhsw */
-      var68.i = (var63.i * var50.i) >> 16;
-      /* 16: addssw */
-      var69.i = ORC_CLAMP_SW (var65.i + var68.i);
-      /* 18: mulhsw */
-      var70.i = (var63.i * var51.i) >> 16;
-      /* 19: addssw */
-      var71.i = ORC_CLAMP_SW (var65.i + var70.i);
-      /* 21: mulhsw */
-      var72.i = (var64.i * var52.i) >> 16;
-      /* 22: addssw */
-      var73.i = ORC_CLAMP_SW (var71.i + var72.i);
-      /* 23: convssswb */
-      var74 = ORC_CLAMP_SB (var67.i);
-      /* 24: convssswb */
-      var75 = ORC_CLAMP_SB (var73.i);
-      /* 25: convssswb */
-      var76 = ORC_CLAMP_SB (var69.i);
-      /* 26: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var59;
-        _dest.x2[1] = var74;
-        var77.i = _dest.i;
-      }
-      /* 27: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var75;
-        _dest.x2[1] = var76;
-        var78.i = _dest.i;
-      }
-      /* 28: mergewl */
-      {
-        orc_union32 _dest;
-        _dest.x2[0] = var77.i;
-        _dest.x2[1] = var78.i;
-        var79.i = _dest.i;
-      }
-      /* 30: addb */
-      var54.x4[0] = var79.x4[0] + var53.x4[0];
-      var54.x4[1] = var79.x4[1] + var53.x4[1];
-      var54.x4[2] = var79.x4[2] + var53.x4[2];
-      var54.x4[3] = var79.x4[3] + var53.x4[3];
-      /* 31: storel */
-      ptr0[i] = var54;
-    }
-  }
-
-}
-
-void
-video_convert_orc_convert_AYUV_ARGB (guint8 * ORC_RESTRICT d1, int d1_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int p2, int p3,
-    int p4, int p5, int n, int m)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
-        116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 65, 89,
-        85, 86, 95, 65, 82, 71, 66, 11, 4, 4, 12, 4, 4, 14, 1, 128,
-        0, 0, 0, 16, 2, 16, 2, 16, 2, 16, 2, 16, 2, 20, 1, 20,
-        1, 20, 1, 20, 1, 20, 2, 20, 2, 20, 2, 20, 2, 20, 2, 20,
-        2, 20, 1, 20, 1, 20, 1, 20, 4, 21, 2, 65, 45, 4, 16, 198,
-        38, 36, 45, 199, 33, 32, 36, 199, 35, 34, 38, 151, 36, 33, 151, 37,
-        34, 151, 38, 35, 90, 36, 36, 24, 90, 39, 38, 25, 71, 39, 36, 39,
-        90, 41, 37, 26, 71, 41, 36, 41, 90, 40, 37, 27, 71, 40, 36, 40,
-        90, 36, 38, 28, 71, 40, 40, 36, 159, 42, 39, 159, 43, 40, 159, 44,
-        41, 196, 39, 32, 42, 196, 41, 43, 44, 195, 45, 39, 41, 21, 2, 33,
-        0, 45, 16, 2, 0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_AYUV_ARGB);
-#else
-      p = orc_program_new ();
-      orc_program_set_2d (p);
-      orc_program_set_name (p, "video_convert_orc_convert_AYUV_ARGB");
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_AYUV_ARGB);
-      orc_program_add_destination (p, 4, "d1");
-      orc_program_add_source (p, 4, "s1");
-      orc_program_add_constant (p, 1, 0x00000080, "c1");
-      orc_program_add_parameter (p, 2, "p1");
-      orc_program_add_parameter (p, 2, "p2");
-      orc_program_add_parameter (p, 2, "p3");
-      orc_program_add_parameter (p, 2, "p4");
-      orc_program_add_parameter (p, 2, "p5");
-      orc_program_add_temporary (p, 1, "t1");
-      orc_program_add_temporary (p, 1, "t2");
-      orc_program_add_temporary (p, 1, "t3");
-      orc_program_add_temporary (p, 1, "t4");
-      orc_program_add_temporary (p, 2, "t5");
-      orc_program_add_temporary (p, 2, "t6");
-      orc_program_add_temporary (p, 2, "t7");
-      orc_program_add_temporary (p, 2, "t8");
-      orc_program_add_temporary (p, 2, "t9");
-      orc_program_add_temporary (p, 2, "t10");
-      orc_program_add_temporary (p, 1, "t11");
-      orc_program_add_temporary (p, 1, "t12");
-      orc_program_add_temporary (p, 1, "t13");
-      orc_program_add_temporary (p, 4, "t14");
-
-      orc_program_append_2 (p, "subb", 2, ORC_VAR_T14, ORC_VAR_S1, ORC_VAR_C1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T7, ORC_VAR_T5,
-          ORC_VAR_T14, ORC_VAR_D1);
-      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_T5,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_T7,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splatbw", 0, ORC_VAR_T5, ORC_VAR_T2, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splatbw", 0, ORC_VAR_T6, ORC_VAR_T3, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splatbw", 0, ORC_VAR_T7, ORC_VAR_T4, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_P1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T8, ORC_VAR_T7, ORC_VAR_P2,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "addssw", 0, ORC_VAR_T8, ORC_VAR_T5, ORC_VAR_T8,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T10, ORC_VAR_T6, ORC_VAR_P3,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "addssw", 0, ORC_VAR_T10, ORC_VAR_T5,
-          ORC_VAR_T10, ORC_VAR_D1);
-      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T9, ORC_VAR_T6, ORC_VAR_P4,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "addssw", 0, ORC_VAR_T9, ORC_VAR_T5, ORC_VAR_T9,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T5, ORC_VAR_T7, ORC_VAR_P5,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "addssw", 0, ORC_VAR_T9, ORC_VAR_T9, ORC_VAR_T5,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T11, ORC_VAR_T8,
-          ORC_VAR_D1, ORC_VAR_D1);
-      orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T12, ORC_VAR_T9,
-          ORC_VAR_D1, ORC_VAR_D1);
-      orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T13, ORC_VAR_T10,
-          ORC_VAR_D1, ORC_VAR_D1);
-      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T8, ORC_VAR_T1,
-          ORC_VAR_T11, ORC_VAR_D1);
-      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T10, ORC_VAR_T12,
-          ORC_VAR_T13, ORC_VAR_D1);
-      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T14, ORC_VAR_T8,
-          ORC_VAR_T10, ORC_VAR_D1);
-      orc_program_append_2 (p, "addb", 2, ORC_VAR_D1, ORC_VAR_T14, ORC_VAR_C1,
-          ORC_VAR_D1);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ORC_EXECUTOR_M (ex) = m;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->params[ORC_VAR_D1] = d1_stride;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-  ex->params[ORC_VAR_S1] = s1_stride;
-  ex->params[ORC_VAR_P1] = p1;
-  ex->params[ORC_VAR_P2] = p2;
-  ex->params[ORC_VAR_P3] = p3;
-  ex->params[ORC_VAR_P4] = p4;
-  ex->params[ORC_VAR_P5] = p5;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_convert_orc_convert_AYUV_BGRA */
-#ifdef DISABLE_ORC
-void
-video_convert_orc_convert_AYUV_BGRA (guint8 * ORC_RESTRICT d1, int d1_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int p2, int p3,
-    int p4, int p5, int n, int m)
-{
-  int i;
-  int j;
-  orc_union32 *ORC_RESTRICT ptr0;
-  const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var46;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_union32 var47;
-#else
-  orc_union32 var47;
-#endif
-  orc_union16 var48;
-  orc_union16 var49;
-  orc_union16 var50;
-  orc_union16 var51;
-  orc_union16 var52;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_union32 var53;
-#else
-  orc_union32 var53;
-#endif
-  orc_union32 var54;
-  orc_union32 var55;
-  orc_union16 var56;
-  orc_union16 var57;
-  orc_int8 var58;
-  orc_int8 var59;
-  orc_int8 var60;
-  orc_int8 var61;
-  orc_union16 var62;
-  orc_union16 var63;
-  orc_union16 var64;
-  orc_union16 var65;
-  orc_union16 var66;
-  orc_union16 var67;
-  orc_union16 var68;
-  orc_union16 var69;
-  orc_union16 var70;
-  orc_union16 var71;
-  orc_union16 var72;
-  orc_union16 var73;
-  orc_int8 var74;
-  orc_int8 var75;
-  orc_int8 var76;
-  orc_union16 var77;
-  orc_union16 var78;
-  orc_union32 var79;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
-    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
-
-    /* 1: loadpb */
-    var47.x4[0] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var47.x4[1] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var47.x4[2] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var47.x4[3] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    /* 9: loadpw */
-    var48.i = p1;
-    /* 11: loadpw */
-    var49.i = p2;
-    /* 14: loadpw */
-    var50.i = p3;
-    /* 17: loadpw */
-    var51.i = p4;
-    /* 20: loadpw */
-    var52.i = p5;
-    /* 29: loadpb */
-    var53.x4[0] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var53.x4[1] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var53.x4[2] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var53.x4[3] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadl */
-      var46 = ptr4[i];
-      /* 2: subb */
-      var55.x4[0] = var46.x4[0] - var47.x4[0];
-      var55.x4[1] = var46.x4[1] - var47.x4[1];
-      var55.x4[2] = var46.x4[2] - var47.x4[2];
-      var55.x4[3] = var46.x4[3] - var47.x4[3];
-      /* 3: splitlw */
-      {
-        orc_union32 _src;
-        _src.i = var55.i;
-        var56.i = _src.x2[1];
-        var57.i = _src.x2[0];
-      }
-      /* 4: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var57.i;
-        var58 = _src.x2[1];
-        var59 = _src.x2[0];
-      }
-      /* 5: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var56.i;
-        var60 = _src.x2[1];
-        var61 = _src.x2[0];
-      }
-      /* 6: splatbw */
-      var62.i = ((var58 & 0xff) << 8) | (var58 & 0xff);
-      /* 7: splatbw */
-      var63.i = ((var61 & 0xff) << 8) | (var61 & 0xff);
-      /* 8: splatbw */
-      var64.i = ((var60 & 0xff) << 8) | (var60 & 0xff);
-      /* 10: mulhsw */
-      var65.i = (var62.i * var48.i) >> 16;
-      /* 12: mulhsw */
-      var66.i = (var64.i * var49.i) >> 16;
-      /* 13: addssw */
-      var67.i = ORC_CLAMP_SW (var65.i + var66.i);
-      /* 15: mulhsw */
-      var68.i = (var63.i * var50.i) >> 16;
-      /* 16: addssw */
-      var69.i = ORC_CLAMP_SW (var65.i + var68.i);
-      /* 18: mulhsw */
-      var70.i = (var63.i * var51.i) >> 16;
-      /* 19: addssw */
-      var71.i = ORC_CLAMP_SW (var65.i + var70.i);
-      /* 21: mulhsw */
-      var72.i = (var64.i * var52.i) >> 16;
-      /* 22: addssw */
-      var73.i = ORC_CLAMP_SW (var71.i + var72.i);
-      /* 23: convssswb */
-      var74 = ORC_CLAMP_SB (var67.i);
-      /* 24: convssswb */
-      var75 = ORC_CLAMP_SB (var73.i);
-      /* 25: convssswb */
-      var76 = ORC_CLAMP_SB (var69.i);
-      /* 26: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var76;
-        _dest.x2[1] = var75;
-        var77.i = _dest.i;
-      }
-      /* 27: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var74;
-        _dest.x2[1] = var59;
-        var78.i = _dest.i;
-      }
-      /* 28: mergewl */
-      {
-        orc_union32 _dest;
-        _dest.x2[0] = var77.i;
-        _dest.x2[1] = var78.i;
-        var79.i = _dest.i;
-      }
-      /* 30: addb */
-      var54.x4[0] = var79.x4[0] + var53.x4[0];
-      var54.x4[1] = var79.x4[1] + var53.x4[1];
-      var54.x4[2] = var79.x4[2] + var53.x4[2];
-      var54.x4[3] = var79.x4[3] + var53.x4[3];
-      /* 31: storel */
-      ptr0[i] = var54;
-    }
-  }
-
-}
-
-#else
-static void
-_backup_video_convert_orc_convert_AYUV_BGRA (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int j;
-  int n = ex->n;
-  int m = ex->params[ORC_VAR_A1];
-  orc_union32 *ORC_RESTRICT ptr0;
-  const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var46;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_union32 var47;
-#else
-  orc_union32 var47;
-#endif
-  orc_union16 var48;
-  orc_union16 var49;
-  orc_union16 var50;
-  orc_union16 var51;
-  orc_union16 var52;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_union32 var53;
-#else
-  orc_union32 var53;
-#endif
-  orc_union32 var54;
-  orc_union32 var55;
-  orc_union16 var56;
-  orc_union16 var57;
-  orc_int8 var58;
-  orc_int8 var59;
-  orc_int8 var60;
-  orc_int8 var61;
-  orc_union16 var62;
-  orc_union16 var63;
-  orc_union16 var64;
-  orc_union16 var65;
-  orc_union16 var66;
-  orc_union16 var67;
-  orc_union16 var68;
-  orc_union16 var69;
-  orc_union16 var70;
-  orc_union16 var71;
-  orc_union16 var72;
-  orc_union16 var73;
-  orc_int8 var74;
-  orc_int8 var75;
-  orc_int8 var76;
-  orc_union16 var77;
-  orc_union16 var78;
-  orc_union32 var79;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
-    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
-
-    /* 1: loadpb */
-    var47.x4[0] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var47.x4[1] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var47.x4[2] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var47.x4[3] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    /* 9: loadpw */
-    var48.i = ex->params[24];
-    /* 11: loadpw */
-    var49.i = ex->params[25];
-    /* 14: loadpw */
-    var50.i = ex->params[26];
-    /* 17: loadpw */
-    var51.i = ex->params[27];
-    /* 20: loadpw */
-    var52.i = ex->params[28];
-    /* 29: loadpb */
-    var53.x4[0] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var53.x4[1] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var53.x4[2] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var53.x4[3] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadl */
-      var46 = ptr4[i];
-      /* 2: subb */
-      var55.x4[0] = var46.x4[0] - var47.x4[0];
-      var55.x4[1] = var46.x4[1] - var47.x4[1];
-      var55.x4[2] = var46.x4[2] - var47.x4[2];
-      var55.x4[3] = var46.x4[3] - var47.x4[3];
-      /* 3: splitlw */
-      {
-        orc_union32 _src;
-        _src.i = var55.i;
-        var56.i = _src.x2[1];
-        var57.i = _src.x2[0];
-      }
-      /* 4: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var57.i;
-        var58 = _src.x2[1];
-        var59 = _src.x2[0];
-      }
-      /* 5: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var56.i;
-        var60 = _src.x2[1];
-        var61 = _src.x2[0];
-      }
-      /* 6: splatbw */
-      var62.i = ((var58 & 0xff) << 8) | (var58 & 0xff);
-      /* 7: splatbw */
-      var63.i = ((var61 & 0xff) << 8) | (var61 & 0xff);
-      /* 8: splatbw */
-      var64.i = ((var60 & 0xff) << 8) | (var60 & 0xff);
-      /* 10: mulhsw */
-      var65.i = (var62.i * var48.i) >> 16;
-      /* 12: mulhsw */
-      var66.i = (var64.i * var49.i) >> 16;
-      /* 13: addssw */
-      var67.i = ORC_CLAMP_SW (var65.i + var66.i);
-      /* 15: mulhsw */
-      var68.i = (var63.i * var50.i) >> 16;
-      /* 16: addssw */
-      var69.i = ORC_CLAMP_SW (var65.i + var68.i);
-      /* 18: mulhsw */
-      var70.i = (var63.i * var51.i) >> 16;
-      /* 19: addssw */
-      var71.i = ORC_CLAMP_SW (var65.i + var70.i);
-      /* 21: mulhsw */
-      var72.i = (var64.i * var52.i) >> 16;
-      /* 22: addssw */
-      var73.i = ORC_CLAMP_SW (var71.i + var72.i);
-      /* 23: convssswb */
-      var74 = ORC_CLAMP_SB (var67.i);
-      /* 24: convssswb */
-      var75 = ORC_CLAMP_SB (var73.i);
-      /* 25: convssswb */
-      var76 = ORC_CLAMP_SB (var69.i);
-      /* 26: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var76;
-        _dest.x2[1] = var75;
-        var77.i = _dest.i;
-      }
-      /* 27: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var74;
-        _dest.x2[1] = var59;
-        var78.i = _dest.i;
-      }
-      /* 28: mergewl */
-      {
-        orc_union32 _dest;
-        _dest.x2[0] = var77.i;
-        _dest.x2[1] = var78.i;
-        var79.i = _dest.i;
-      }
-      /* 30: addb */
-      var54.x4[0] = var79.x4[0] + var53.x4[0];
-      var54.x4[1] = var79.x4[1] + var53.x4[1];
-      var54.x4[2] = var79.x4[2] + var53.x4[2];
-      var54.x4[3] = var79.x4[3] + var53.x4[3];
-      /* 31: storel */
-      ptr0[i] = var54;
-    }
-  }
-
-}
-
-void
-video_convert_orc_convert_AYUV_BGRA (guint8 * ORC_RESTRICT d1, int d1_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int p2, int p3,
-    int p4, int p5, int n, int m)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
-        116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 65, 89,
-        85, 86, 95, 66, 71, 82, 65, 11, 4, 4, 12, 4, 4, 14, 1, 128,
-        0, 0, 0, 16, 2, 16, 2, 16, 2, 16, 2, 16, 2, 20, 1, 20,
-        1, 20, 1, 20, 1, 20, 2, 20, 2, 20, 2, 20, 2, 20, 2, 20,
-        2, 20, 1, 20, 1, 20, 1, 20, 4, 21, 2, 65, 45, 4, 16, 198,
-        38, 36, 45, 199, 33, 32, 36, 199, 35, 34, 38, 151, 36, 33, 151, 37,
-        34, 151, 38, 35, 90, 36, 36, 24, 90, 39, 38, 25, 71, 39, 36, 39,
-        90, 41, 37, 26, 71, 41, 36, 41, 90, 40, 37, 27, 71, 40, 36, 40,
-        90, 36, 38, 28, 71, 40, 40, 36, 159, 42, 39, 159, 43, 40, 159, 44,
-        41, 196, 41, 44, 43, 196, 39, 42, 32, 195, 45, 41, 39, 21, 2, 33,
-        0, 45, 16, 2, 0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_AYUV_BGRA);
-#else
-      p = orc_program_new ();
-      orc_program_set_2d (p);
-      orc_program_set_name (p, "video_convert_orc_convert_AYUV_BGRA");
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_AYUV_BGRA);
-      orc_program_add_destination (p, 4, "d1");
-      orc_program_add_source (p, 4, "s1");
-      orc_program_add_constant (p, 1, 0x00000080, "c1");
-      orc_program_add_parameter (p, 2, "p1");
-      orc_program_add_parameter (p, 2, "p2");
-      orc_program_add_parameter (p, 2, "p3");
-      orc_program_add_parameter (p, 2, "p4");
-      orc_program_add_parameter (p, 2, "p5");
-      orc_program_add_temporary (p, 1, "t1");
-      orc_program_add_temporary (p, 1, "t2");
-      orc_program_add_temporary (p, 1, "t3");
-      orc_program_add_temporary (p, 1, "t4");
-      orc_program_add_temporary (p, 2, "t5");
-      orc_program_add_temporary (p, 2, "t6");
-      orc_program_add_temporary (p, 2, "t7");
-      orc_program_add_temporary (p, 2, "t8");
-      orc_program_add_temporary (p, 2, "t9");
-      orc_program_add_temporary (p, 2, "t10");
-      orc_program_add_temporary (p, 1, "t11");
-      orc_program_add_temporary (p, 1, "t12");
-      orc_program_add_temporary (p, 1, "t13");
-      orc_program_add_temporary (p, 4, "t14");
-
-      orc_program_append_2 (p, "subb", 2, ORC_VAR_T14, ORC_VAR_S1, ORC_VAR_C1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T7, ORC_VAR_T5,
-          ORC_VAR_T14, ORC_VAR_D1);
-      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_T5,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_T7,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splatbw", 0, ORC_VAR_T5, ORC_VAR_T2, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splatbw", 0, ORC_VAR_T6, ORC_VAR_T3, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splatbw", 0, ORC_VAR_T7, ORC_VAR_T4, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_P1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T8, ORC_VAR_T7, ORC_VAR_P2,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "addssw", 0, ORC_VAR_T8, ORC_VAR_T5, ORC_VAR_T8,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T10, ORC_VAR_T6, ORC_VAR_P3,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "addssw", 0, ORC_VAR_T10, ORC_VAR_T5,
-          ORC_VAR_T10, ORC_VAR_D1);
-      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T9, ORC_VAR_T6, ORC_VAR_P4,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "addssw", 0, ORC_VAR_T9, ORC_VAR_T5, ORC_VAR_T9,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T5, ORC_VAR_T7, ORC_VAR_P5,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "addssw", 0, ORC_VAR_T9, ORC_VAR_T9, ORC_VAR_T5,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T11, ORC_VAR_T8,
-          ORC_VAR_D1, ORC_VAR_D1);
-      orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T12, ORC_VAR_T9,
-          ORC_VAR_D1, ORC_VAR_D1);
-      orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T13, ORC_VAR_T10,
-          ORC_VAR_D1, ORC_VAR_D1);
-      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T10, ORC_VAR_T13,
-          ORC_VAR_T12, ORC_VAR_D1);
-      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T8, ORC_VAR_T11,
-          ORC_VAR_T1, ORC_VAR_D1);
-      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T14, ORC_VAR_T10,
-          ORC_VAR_T8, ORC_VAR_D1);
-      orc_program_append_2 (p, "addb", 2, ORC_VAR_D1, ORC_VAR_T14, ORC_VAR_C1,
-          ORC_VAR_D1);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ORC_EXECUTOR_M (ex) = m;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->params[ORC_VAR_D1] = d1_stride;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-  ex->params[ORC_VAR_S1] = s1_stride;
-  ex->params[ORC_VAR_P1] = p1;
-  ex->params[ORC_VAR_P2] = p2;
-  ex->params[ORC_VAR_P3] = p3;
-  ex->params[ORC_VAR_P4] = p4;
-  ex->params[ORC_VAR_P5] = p5;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_convert_orc_convert_AYUV_ABGR */
-#ifdef DISABLE_ORC
-void
-video_convert_orc_convert_AYUV_ABGR (guint8 * ORC_RESTRICT d1, int d1_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int p2, int p3,
-    int p4, int p5, int n, int m)
-{
-  int i;
-  int j;
-  orc_union32 *ORC_RESTRICT ptr0;
-  const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var46;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_union32 var47;
-#else
-  orc_union32 var47;
-#endif
-  orc_union16 var48;
-  orc_union16 var49;
-  orc_union16 var50;
-  orc_union16 var51;
-  orc_union16 var52;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_union32 var53;
-#else
-  orc_union32 var53;
-#endif
-  orc_union32 var54;
-  orc_union32 var55;
-  orc_union16 var56;
-  orc_union16 var57;
-  orc_int8 var58;
-  orc_int8 var59;
-  orc_int8 var60;
-  orc_int8 var61;
-  orc_union16 var62;
-  orc_union16 var63;
-  orc_union16 var64;
-  orc_union16 var65;
-  orc_union16 var66;
-  orc_union16 var67;
-  orc_union16 var68;
-  orc_union16 var69;
-  orc_union16 var70;
-  orc_union16 var71;
-  orc_union16 var72;
-  orc_union16 var73;
-  orc_int8 var74;
-  orc_int8 var75;
-  orc_int8 var76;
-  orc_union16 var77;
-  orc_union16 var78;
-  orc_union32 var79;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
-    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
-
-    /* 1: loadpb */
-    var47.x4[0] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var47.x4[1] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var47.x4[2] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var47.x4[3] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    /* 9: loadpw */
-    var48.i = p1;
-    /* 11: loadpw */
-    var49.i = p2;
-    /* 14: loadpw */
-    var50.i = p3;
-    /* 17: loadpw */
-    var51.i = p4;
-    /* 20: loadpw */
-    var52.i = p5;
-    /* 29: loadpb */
-    var53.x4[0] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var53.x4[1] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var53.x4[2] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var53.x4[3] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadl */
-      var46 = ptr4[i];
-      /* 2: subb */
-      var55.x4[0] = var46.x4[0] - var47.x4[0];
-      var55.x4[1] = var46.x4[1] - var47.x4[1];
-      var55.x4[2] = var46.x4[2] - var47.x4[2];
-      var55.x4[3] = var46.x4[3] - var47.x4[3];
-      /* 3: splitlw */
-      {
-        orc_union32 _src;
-        _src.i = var55.i;
-        var56.i = _src.x2[1];
-        var57.i = _src.x2[0];
-      }
-      /* 4: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var57.i;
-        var58 = _src.x2[1];
-        var59 = _src.x2[0];
-      }
-      /* 5: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var56.i;
-        var60 = _src.x2[1];
-        var61 = _src.x2[0];
-      }
-      /* 6: splatbw */
-      var62.i = ((var58 & 0xff) << 8) | (var58 & 0xff);
-      /* 7: splatbw */
-      var63.i = ((var61 & 0xff) << 8) | (var61 & 0xff);
-      /* 8: splatbw */
-      var64.i = ((var60 & 0xff) << 8) | (var60 & 0xff);
-      /* 10: mulhsw */
-      var65.i = (var62.i * var48.i) >> 16;
-      /* 12: mulhsw */
-      var66.i = (var64.i * var49.i) >> 16;
-      /* 13: addssw */
-      var67.i = ORC_CLAMP_SW (var65.i + var66.i);
-      /* 15: mulhsw */
-      var68.i = (var63.i * var50.i) >> 16;
-      /* 16: addssw */
-      var69.i = ORC_CLAMP_SW (var65.i + var68.i);
-      /* 18: mulhsw */
-      var70.i = (var63.i * var51.i) >> 16;
-      /* 19: addssw */
-      var71.i = ORC_CLAMP_SW (var65.i + var70.i);
-      /* 21: mulhsw */
-      var72.i = (var64.i * var52.i) >> 16;
-      /* 22: addssw */
-      var73.i = ORC_CLAMP_SW (var71.i + var72.i);
-      /* 23: convssswb */
-      var74 = ORC_CLAMP_SB (var67.i);
-      /* 24: convssswb */
-      var75 = ORC_CLAMP_SB (var73.i);
-      /* 25: convssswb */
-      var76 = ORC_CLAMP_SB (var69.i);
-      /* 26: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var59;
-        _dest.x2[1] = var76;
-        var77.i = _dest.i;
-      }
-      /* 27: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var75;
-        _dest.x2[1] = var74;
-        var78.i = _dest.i;
-      }
-      /* 28: mergewl */
-      {
-        orc_union32 _dest;
-        _dest.x2[0] = var77.i;
-        _dest.x2[1] = var78.i;
-        var79.i = _dest.i;
-      }
-      /* 30: addb */
-      var54.x4[0] = var79.x4[0] + var53.x4[0];
-      var54.x4[1] = var79.x4[1] + var53.x4[1];
-      var54.x4[2] = var79.x4[2] + var53.x4[2];
-      var54.x4[3] = var79.x4[3] + var53.x4[3];
-      /* 31: storel */
-      ptr0[i] = var54;
-    }
-  }
-
-}
-
-#else
-static void
-_backup_video_convert_orc_convert_AYUV_ABGR (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int j;
-  int n = ex->n;
-  int m = ex->params[ORC_VAR_A1];
-  orc_union32 *ORC_RESTRICT ptr0;
-  const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var46;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_union32 var47;
-#else
-  orc_union32 var47;
-#endif
-  orc_union16 var48;
-  orc_union16 var49;
-  orc_union16 var50;
-  orc_union16 var51;
-  orc_union16 var52;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_union32 var53;
-#else
-  orc_union32 var53;
-#endif
-  orc_union32 var54;
-  orc_union32 var55;
-  orc_union16 var56;
-  orc_union16 var57;
-  orc_int8 var58;
-  orc_int8 var59;
-  orc_int8 var60;
-  orc_int8 var61;
-  orc_union16 var62;
-  orc_union16 var63;
-  orc_union16 var64;
-  orc_union16 var65;
-  orc_union16 var66;
-  orc_union16 var67;
-  orc_union16 var68;
-  orc_union16 var69;
-  orc_union16 var70;
-  orc_union16 var71;
-  orc_union16 var72;
-  orc_union16 var73;
-  orc_int8 var74;
-  orc_int8 var75;
-  orc_int8 var76;
-  orc_union16 var77;
-  orc_union16 var78;
-  orc_union32 var79;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
-    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
-
-    /* 1: loadpb */
-    var47.x4[0] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var47.x4[1] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var47.x4[2] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var47.x4[3] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    /* 9: loadpw */
-    var48.i = ex->params[24];
-    /* 11: loadpw */
-    var49.i = ex->params[25];
-    /* 14: loadpw */
-    var50.i = ex->params[26];
-    /* 17: loadpw */
-    var51.i = ex->params[27];
-    /* 20: loadpw */
-    var52.i = ex->params[28];
-    /* 29: loadpb */
-    var53.x4[0] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var53.x4[1] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var53.x4[2] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var53.x4[3] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadl */
-      var46 = ptr4[i];
-      /* 2: subb */
-      var55.x4[0] = var46.x4[0] - var47.x4[0];
-      var55.x4[1] = var46.x4[1] - var47.x4[1];
-      var55.x4[2] = var46.x4[2] - var47.x4[2];
-      var55.x4[3] = var46.x4[3] - var47.x4[3];
-      /* 3: splitlw */
-      {
-        orc_union32 _src;
-        _src.i = var55.i;
-        var56.i = _src.x2[1];
-        var57.i = _src.x2[0];
-      }
-      /* 4: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var57.i;
-        var58 = _src.x2[1];
-        var59 = _src.x2[0];
-      }
-      /* 5: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var56.i;
-        var60 = _src.x2[1];
-        var61 = _src.x2[0];
-      }
-      /* 6: splatbw */
-      var62.i = ((var58 & 0xff) << 8) | (var58 & 0xff);
-      /* 7: splatbw */
-      var63.i = ((var61 & 0xff) << 8) | (var61 & 0xff);
-      /* 8: splatbw */
-      var64.i = ((var60 & 0xff) << 8) | (var60 & 0xff);
-      /* 10: mulhsw */
-      var65.i = (var62.i * var48.i) >> 16;
-      /* 12: mulhsw */
-      var66.i = (var64.i * var49.i) >> 16;
-      /* 13: addssw */
-      var67.i = ORC_CLAMP_SW (var65.i + var66.i);
-      /* 15: mulhsw */
-      var68.i = (var63.i * var50.i) >> 16;
-      /* 16: addssw */
-      var69.i = ORC_CLAMP_SW (var65.i + var68.i);
-      /* 18: mulhsw */
-      var70.i = (var63.i * var51.i) >> 16;
-      /* 19: addssw */
-      var71.i = ORC_CLAMP_SW (var65.i + var70.i);
-      /* 21: mulhsw */
-      var72.i = (var64.i * var52.i) >> 16;
-      /* 22: addssw */
-      var73.i = ORC_CLAMP_SW (var71.i + var72.i);
-      /* 23: convssswb */
-      var74 = ORC_CLAMP_SB (var67.i);
-      /* 24: convssswb */
-      var75 = ORC_CLAMP_SB (var73.i);
-      /* 25: convssswb */
-      var76 = ORC_CLAMP_SB (var69.i);
-      /* 26: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var59;
-        _dest.x2[1] = var76;
-        var77.i = _dest.i;
-      }
-      /* 27: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var75;
-        _dest.x2[1] = var74;
-        var78.i = _dest.i;
-      }
-      /* 28: mergewl */
-      {
-        orc_union32 _dest;
-        _dest.x2[0] = var77.i;
-        _dest.x2[1] = var78.i;
-        var79.i = _dest.i;
-      }
-      /* 30: addb */
-      var54.x4[0] = var79.x4[0] + var53.x4[0];
-      var54.x4[1] = var79.x4[1] + var53.x4[1];
-      var54.x4[2] = var79.x4[2] + var53.x4[2];
-      var54.x4[3] = var79.x4[3] + var53.x4[3];
-      /* 31: storel */
-      ptr0[i] = var54;
-    }
-  }
-
-}
-
-void
-video_convert_orc_convert_AYUV_ABGR (guint8 * ORC_RESTRICT d1, int d1_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int p2, int p3,
-    int p4, int p5, int n, int m)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
-        116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 65, 89,
-        85, 86, 95, 65, 66, 71, 82, 11, 4, 4, 12, 4, 4, 14, 1, 128,
-        0, 0, 0, 16, 2, 16, 2, 16, 2, 16, 2, 16, 2, 20, 1, 20,
-        1, 20, 1, 20, 1, 20, 2, 20, 2, 20, 2, 20, 2, 20, 2, 20,
-        2, 20, 1, 20, 1, 20, 1, 20, 4, 21, 2, 65, 45, 4, 16, 198,
-        38, 36, 45, 199, 33, 32, 36, 199, 35, 34, 38, 151, 36, 33, 151, 37,
-        34, 151, 38, 35, 90, 36, 36, 24, 90, 39, 38, 25, 71, 39, 36, 39,
-        90, 41, 37, 26, 71, 41, 36, 41, 90, 40, 37, 27, 71, 40, 36, 40,
-        90, 36, 38, 28, 71, 40, 40, 36, 159, 42, 39, 159, 43, 40, 159, 44,
-        41, 196, 41, 32, 44, 196, 39, 43, 42, 195, 45, 41, 39, 21, 2, 33,
-        0, 45, 16, 2, 0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_AYUV_ABGR);
-#else
-      p = orc_program_new ();
-      orc_program_set_2d (p);
-      orc_program_set_name (p, "video_convert_orc_convert_AYUV_ABGR");
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_AYUV_ABGR);
-      orc_program_add_destination (p, 4, "d1");
-      orc_program_add_source (p, 4, "s1");
-      orc_program_add_constant (p, 1, 0x00000080, "c1");
-      orc_program_add_parameter (p, 2, "p1");
-      orc_program_add_parameter (p, 2, "p2");
-      orc_program_add_parameter (p, 2, "p3");
-      orc_program_add_parameter (p, 2, "p4");
-      orc_program_add_parameter (p, 2, "p5");
-      orc_program_add_temporary (p, 1, "t1");
-      orc_program_add_temporary (p, 1, "t2");
-      orc_program_add_temporary (p, 1, "t3");
-      orc_program_add_temporary (p, 1, "t4");
-      orc_program_add_temporary (p, 2, "t5");
-      orc_program_add_temporary (p, 2, "t6");
-      orc_program_add_temporary (p, 2, "t7");
-      orc_program_add_temporary (p, 2, "t8");
-      orc_program_add_temporary (p, 2, "t9");
-      orc_program_add_temporary (p, 2, "t10");
-      orc_program_add_temporary (p, 1, "t11");
-      orc_program_add_temporary (p, 1, "t12");
-      orc_program_add_temporary (p, 1, "t13");
-      orc_program_add_temporary (p, 4, "t14");
-
-      orc_program_append_2 (p, "subb", 2, ORC_VAR_T14, ORC_VAR_S1, ORC_VAR_C1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T7, ORC_VAR_T5,
-          ORC_VAR_T14, ORC_VAR_D1);
-      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_T5,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_T7,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splatbw", 0, ORC_VAR_T5, ORC_VAR_T2, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splatbw", 0, ORC_VAR_T6, ORC_VAR_T3, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splatbw", 0, ORC_VAR_T7, ORC_VAR_T4, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_P1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T8, ORC_VAR_T7, ORC_VAR_P2,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "addssw", 0, ORC_VAR_T8, ORC_VAR_T5, ORC_VAR_T8,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T10, ORC_VAR_T6, ORC_VAR_P3,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "addssw", 0, ORC_VAR_T10, ORC_VAR_T5,
-          ORC_VAR_T10, ORC_VAR_D1);
-      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T9, ORC_VAR_T6, ORC_VAR_P4,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "addssw", 0, ORC_VAR_T9, ORC_VAR_T5, ORC_VAR_T9,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T5, ORC_VAR_T7, ORC_VAR_P5,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "addssw", 0, ORC_VAR_T9, ORC_VAR_T9, ORC_VAR_T5,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T11, ORC_VAR_T8,
-          ORC_VAR_D1, ORC_VAR_D1);
-      orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T12, ORC_VAR_T9,
-          ORC_VAR_D1, ORC_VAR_D1);
-      orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T13, ORC_VAR_T10,
-          ORC_VAR_D1, ORC_VAR_D1);
-      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T10, ORC_VAR_T1,
-          ORC_VAR_T13, ORC_VAR_D1);
-      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T8, ORC_VAR_T12,
-          ORC_VAR_T11, ORC_VAR_D1);
-      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T14, ORC_VAR_T10,
-          ORC_VAR_T8, ORC_VAR_D1);
-      orc_program_append_2 (p, "addb", 2, ORC_VAR_D1, ORC_VAR_T14, ORC_VAR_C1,
-          ORC_VAR_D1);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ORC_EXECUTOR_M (ex) = m;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->params[ORC_VAR_D1] = d1_stride;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-  ex->params[ORC_VAR_S1] = s1_stride;
-  ex->params[ORC_VAR_P1] = p1;
-  ex->params[ORC_VAR_P2] = p2;
-  ex->params[ORC_VAR_P3] = p3;
-  ex->params[ORC_VAR_P4] = p4;
-  ex->params[ORC_VAR_P5] = p5;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_convert_orc_convert_AYUV_RGBA */
-#ifdef DISABLE_ORC
-void
-video_convert_orc_convert_AYUV_RGBA (guint8 * ORC_RESTRICT d1, int d1_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int p2, int p3,
-    int p4, int p5, int n, int m)
-{
-  int i;
-  int j;
-  orc_union32 *ORC_RESTRICT ptr0;
-  const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var46;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_union32 var47;
-#else
-  orc_union32 var47;
-#endif
-  orc_union16 var48;
-  orc_union16 var49;
-  orc_union16 var50;
-  orc_union16 var51;
-  orc_union16 var52;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_union32 var53;
-#else
-  orc_union32 var53;
-#endif
-  orc_union32 var54;
-  orc_union32 var55;
-  orc_union16 var56;
-  orc_union16 var57;
-  orc_int8 var58;
-  orc_int8 var59;
-  orc_int8 var60;
-  orc_int8 var61;
-  orc_union16 var62;
-  orc_union16 var63;
-  orc_union16 var64;
-  orc_union16 var65;
-  orc_union16 var66;
-  orc_union16 var67;
-  orc_union16 var68;
-  orc_union16 var69;
-  orc_union16 var70;
-  orc_union16 var71;
-  orc_union16 var72;
-  orc_union16 var73;
-  orc_int8 var74;
-  orc_int8 var75;
-  orc_int8 var76;
-  orc_union16 var77;
-  orc_union16 var78;
-  orc_union32 var79;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
-    ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
-
-    /* 1: loadpb */
-    var47.x4[0] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var47.x4[1] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var47.x4[2] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var47.x4[3] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    /* 9: loadpw */
-    var48.i = p1;
-    /* 11: loadpw */
-    var49.i = p2;
-    /* 14: loadpw */
-    var50.i = p3;
-    /* 17: loadpw */
-    var51.i = p4;
-    /* 20: loadpw */
-    var52.i = p5;
-    /* 29: loadpb */
-    var53.x4[0] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var53.x4[1] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var53.x4[2] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var53.x4[3] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadl */
-      var46 = ptr4[i];
-      /* 2: subb */
-      var55.x4[0] = var46.x4[0] - var47.x4[0];
-      var55.x4[1] = var46.x4[1] - var47.x4[1];
-      var55.x4[2] = var46.x4[2] - var47.x4[2];
-      var55.x4[3] = var46.x4[3] - var47.x4[3];
-      /* 3: splitlw */
-      {
-        orc_union32 _src;
-        _src.i = var55.i;
-        var56.i = _src.x2[1];
-        var57.i = _src.x2[0];
-      }
-      /* 4: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var57.i;
-        var58 = _src.x2[1];
-        var59 = _src.x2[0];
-      }
-      /* 5: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var56.i;
-        var60 = _src.x2[1];
-        var61 = _src.x2[0];
-      }
-      /* 6: splatbw */
-      var62.i = ((var58 & 0xff) << 8) | (var58 & 0xff);
-      /* 7: splatbw */
-      var63.i = ((var61 & 0xff) << 8) | (var61 & 0xff);
-      /* 8: splatbw */
-      var64.i = ((var60 & 0xff) << 8) | (var60 & 0xff);
-      /* 10: mulhsw */
-      var65.i = (var62.i * var48.i) >> 16;
-      /* 12: mulhsw */
-      var66.i = (var64.i * var49.i) >> 16;
-      /* 13: addssw */
-      var67.i = ORC_CLAMP_SW (var65.i + var66.i);
-      /* 15: mulhsw */
-      var68.i = (var63.i * var50.i) >> 16;
-      /* 16: addssw */
-      var69.i = ORC_CLAMP_SW (var65.i + var68.i);
-      /* 18: mulhsw */
-      var70.i = (var63.i * var51.i) >> 16;
-      /* 19: addssw */
-      var71.i = ORC_CLAMP_SW (var65.i + var70.i);
-      /* 21: mulhsw */
-      var72.i = (var64.i * var52.i) >> 16;
-      /* 22: addssw */
-      var73.i = ORC_CLAMP_SW (var71.i + var72.i);
-      /* 23: convssswb */
-      var74 = ORC_CLAMP_SB (var67.i);
-      /* 24: convssswb */
-      var75 = ORC_CLAMP_SB (var73.i);
-      /* 25: convssswb */
-      var76 = ORC_CLAMP_SB (var69.i);
-      /* 26: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var74;
-        _dest.x2[1] = var75;
-        var77.i = _dest.i;
-      }
-      /* 27: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var76;
-        _dest.x2[1] = var59;
-        var78.i = _dest.i;
-      }
-      /* 28: mergewl */
-      {
-        orc_union32 _dest;
-        _dest.x2[0] = var77.i;
-        _dest.x2[1] = var78.i;
-        var79.i = _dest.i;
-      }
-      /* 30: addb */
-      var54.x4[0] = var79.x4[0] + var53.x4[0];
-      var54.x4[1] = var79.x4[1] + var53.x4[1];
-      var54.x4[2] = var79.x4[2] + var53.x4[2];
-      var54.x4[3] = var79.x4[3] + var53.x4[3];
-      /* 31: storel */
-      ptr0[i] = var54;
-    }
-  }
-
-}
-
-#else
-static void
-_backup_video_convert_orc_convert_AYUV_RGBA (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int j;
-  int n = ex->n;
-  int m = ex->params[ORC_VAR_A1];
-  orc_union32 *ORC_RESTRICT ptr0;
-  const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var46;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_union32 var47;
-#else
-  orc_union32 var47;
-#endif
-  orc_union16 var48;
-  orc_union16 var49;
-  orc_union16 var50;
-  orc_union16 var51;
-  orc_union16 var52;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_union32 var53;
-#else
-  orc_union32 var53;
-#endif
-  orc_union32 var54;
-  orc_union32 var55;
-  orc_union16 var56;
-  orc_union16 var57;
-  orc_int8 var58;
-  orc_int8 var59;
-  orc_int8 var60;
-  orc_int8 var61;
-  orc_union16 var62;
-  orc_union16 var63;
-  orc_union16 var64;
-  orc_union16 var65;
-  orc_union16 var66;
-  orc_union16 var67;
-  orc_union16 var68;
-  orc_union16 var69;
-  orc_union16 var70;
-  orc_union16 var71;
-  orc_union16 var72;
-  orc_union16 var73;
-  orc_int8 var74;
-  orc_int8 var75;
-  orc_int8 var76;
-  orc_union16 var77;
-  orc_union16 var78;
-  orc_union32 var79;
-
-  for (j = 0; j < m; j++) {
-    ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
-    ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
-
-    /* 1: loadpb */
-    var47.x4[0] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var47.x4[1] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var47.x4[2] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var47.x4[3] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    /* 9: loadpw */
-    var48.i = ex->params[24];
-    /* 11: loadpw */
-    var49.i = ex->params[25];
-    /* 14: loadpw */
-    var50.i = ex->params[26];
-    /* 17: loadpw */
-    var51.i = ex->params[27];
-    /* 20: loadpw */
-    var52.i = ex->params[28];
-    /* 29: loadpb */
-    var53.x4[0] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var53.x4[1] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var53.x4[2] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-    var53.x4[3] = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-
-    for (i = 0; i < n; i++) {
-      /* 0: loadl */
-      var46 = ptr4[i];
-      /* 2: subb */
-      var55.x4[0] = var46.x4[0] - var47.x4[0];
-      var55.x4[1] = var46.x4[1] - var47.x4[1];
-      var55.x4[2] = var46.x4[2] - var47.x4[2];
-      var55.x4[3] = var46.x4[3] - var47.x4[3];
-      /* 3: splitlw */
-      {
-        orc_union32 _src;
-        _src.i = var55.i;
-        var56.i = _src.x2[1];
-        var57.i = _src.x2[0];
-      }
-      /* 4: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var57.i;
-        var58 = _src.x2[1];
-        var59 = _src.x2[0];
-      }
-      /* 5: splitwb */
-      {
-        orc_union16 _src;
-        _src.i = var56.i;
-        var60 = _src.x2[1];
-        var61 = _src.x2[0];
-      }
-      /* 6: splatbw */
-      var62.i = ((var58 & 0xff) << 8) | (var58 & 0xff);
-      /* 7: splatbw */
-      var63.i = ((var61 & 0xff) << 8) | (var61 & 0xff);
-      /* 8: splatbw */
-      var64.i = ((var60 & 0xff) << 8) | (var60 & 0xff);
-      /* 10: mulhsw */
-      var65.i = (var62.i * var48.i) >> 16;
-      /* 12: mulhsw */
-      var66.i = (var64.i * var49.i) >> 16;
-      /* 13: addssw */
-      var67.i = ORC_CLAMP_SW (var65.i + var66.i);
-      /* 15: mulhsw */
-      var68.i = (var63.i * var50.i) >> 16;
-      /* 16: addssw */
-      var69.i = ORC_CLAMP_SW (var65.i + var68.i);
-      /* 18: mulhsw */
-      var70.i = (var63.i * var51.i) >> 16;
-      /* 19: addssw */
-      var71.i = ORC_CLAMP_SW (var65.i + var70.i);
-      /* 21: mulhsw */
-      var72.i = (var64.i * var52.i) >> 16;
-      /* 22: addssw */
-      var73.i = ORC_CLAMP_SW (var71.i + var72.i);
-      /* 23: convssswb */
-      var74 = ORC_CLAMP_SB (var67.i);
-      /* 24: convssswb */
-      var75 = ORC_CLAMP_SB (var73.i);
-      /* 25: convssswb */
-      var76 = ORC_CLAMP_SB (var69.i);
-      /* 26: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var74;
-        _dest.x2[1] = var75;
-        var77.i = _dest.i;
-      }
-      /* 27: mergebw */
-      {
-        orc_union16 _dest;
-        _dest.x2[0] = var76;
-        _dest.x2[1] = var59;
-        var78.i = _dest.i;
-      }
-      /* 28: mergewl */
-      {
-        orc_union32 _dest;
-        _dest.x2[0] = var77.i;
-        _dest.x2[1] = var78.i;
-        var79.i = _dest.i;
-      }
-      /* 30: addb */
-      var54.x4[0] = var79.x4[0] + var53.x4[0];
-      var54.x4[1] = var79.x4[1] + var53.x4[1];
-      var54.x4[2] = var79.x4[2] + var53.x4[2];
-      var54.x4[3] = var79.x4[3] + var53.x4[3];
-      /* 31: storel */
-      ptr0[i] = var54;
-    }
-  }
-
-}
-
-void
-video_convert_orc_convert_AYUV_RGBA (guint8 * ORC_RESTRICT d1, int d1_stride,
-    const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int p2, int p3,
-    int p4, int p5, int n, int m)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
-        116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 65, 89,
-        85, 86, 95, 82, 71, 66, 65, 11, 4, 4, 12, 4, 4, 14, 1, 128,
-        0, 0, 0, 16, 2, 16, 2, 16, 2, 16, 2, 16, 2, 20, 1, 20,
-        1, 20, 1, 20, 1, 20, 2, 20, 2, 20, 2, 20, 2, 20, 2, 20,
-        2, 20, 1, 20, 1, 20, 1, 20, 4, 21, 2, 65, 45, 4, 16, 198,
-        38, 36, 45, 199, 33, 32, 36, 199, 35, 34, 38, 151, 36, 33, 151, 37,
-        34, 151, 38, 35, 90, 36, 36, 24, 90, 39, 38, 25, 71, 39, 36, 39,
-        90, 41, 37, 26, 71, 41, 36, 41, 90, 40, 37, 27, 71, 40, 36, 40,
-        90, 36, 38, 28, 71, 40, 40, 36, 159, 42, 39, 159, 43, 40, 159, 44,
-        41, 196, 39, 42, 43, 196, 41, 44, 32, 195, 45, 39, 41, 21, 2, 33,
-        0, 45, 16, 2, 0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_AYUV_RGBA);
-#else
-      p = orc_program_new ();
-      orc_program_set_2d (p);
-      orc_program_set_name (p, "video_convert_orc_convert_AYUV_RGBA");
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_AYUV_RGBA);
-      orc_program_add_destination (p, 4, "d1");
-      orc_program_add_source (p, 4, "s1");
-      orc_program_add_constant (p, 1, 0x00000080, "c1");
-      orc_program_add_parameter (p, 2, "p1");
-      orc_program_add_parameter (p, 2, "p2");
-      orc_program_add_parameter (p, 2, "p3");
-      orc_program_add_parameter (p, 2, "p4");
-      orc_program_add_parameter (p, 2, "p5");
-      orc_program_add_temporary (p, 1, "t1");
-      orc_program_add_temporary (p, 1, "t2");
-      orc_program_add_temporary (p, 1, "t3");
-      orc_program_add_temporary (p, 1, "t4");
-      orc_program_add_temporary (p, 2, "t5");
-      orc_program_add_temporary (p, 2, "t6");
-      orc_program_add_temporary (p, 2, "t7");
-      orc_program_add_temporary (p, 2, "t8");
-      orc_program_add_temporary (p, 2, "t9");
-      orc_program_add_temporary (p, 2, "t10");
-      orc_program_add_temporary (p, 1, "t11");
-      orc_program_add_temporary (p, 1, "t12");
-      orc_program_add_temporary (p, 1, "t13");
-      orc_program_add_temporary (p, 4, "t14");
-
-      orc_program_append_2 (p, "subb", 2, ORC_VAR_T14, ORC_VAR_S1, ORC_VAR_C1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T7, ORC_VAR_T5,
-          ORC_VAR_T14, ORC_VAR_D1);
-      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_T5,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_T7,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splatbw", 0, ORC_VAR_T5, ORC_VAR_T2, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splatbw", 0, ORC_VAR_T6, ORC_VAR_T3, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splatbw", 0, ORC_VAR_T7, ORC_VAR_T4, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_P1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T8, ORC_VAR_T7, ORC_VAR_P2,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "addssw", 0, ORC_VAR_T8, ORC_VAR_T5, ORC_VAR_T8,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T10, ORC_VAR_T6, ORC_VAR_P3,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "addssw", 0, ORC_VAR_T10, ORC_VAR_T5,
-          ORC_VAR_T10, ORC_VAR_D1);
-      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T9, ORC_VAR_T6, ORC_VAR_P4,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "addssw", 0, ORC_VAR_T9, ORC_VAR_T5, ORC_VAR_T9,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T5, ORC_VAR_T7, ORC_VAR_P5,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "addssw", 0, ORC_VAR_T9, ORC_VAR_T9, ORC_VAR_T5,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T11, ORC_VAR_T8,
-          ORC_VAR_D1, ORC_VAR_D1);
-      orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T12, ORC_VAR_T9,
-          ORC_VAR_D1, ORC_VAR_D1);
-      orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T13, ORC_VAR_T10,
-          ORC_VAR_D1, ORC_VAR_D1);
-      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T8, ORC_VAR_T11,
-          ORC_VAR_T12, ORC_VAR_D1);
-      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T10, ORC_VAR_T13,
-          ORC_VAR_T1, ORC_VAR_D1);
-      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T14, ORC_VAR_T8,
-          ORC_VAR_T10, ORC_VAR_D1);
-      orc_program_append_2 (p, "addb", 2, ORC_VAR_D1, ORC_VAR_T14, ORC_VAR_C1,
-          ORC_VAR_D1);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ORC_EXECUTOR_M (ex) = m;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->params[ORC_VAR_D1] = d1_stride;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-  ex->params[ORC_VAR_S1] = s1_stride;
-  ex->params[ORC_VAR_P1] = p1;
-  ex->params[ORC_VAR_P2] = p2;
-  ex->params[ORC_VAR_P3] = p3;
-  ex->params[ORC_VAR_P4] = p4;
-  ex->params[ORC_VAR_P5] = p5;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_convert_orc_convert_I420_BGRA */
-#ifdef DISABLE_ORC
-void
-video_convert_orc_convert_I420_BGRA (guint8 * ORC_RESTRICT d1,
-    const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
-    const guint8 * ORC_RESTRICT s3, int p1, int p2, int p3, int p4, int p5,
-    int n)
-{
-  int i;
-  orc_union32 *ORC_RESTRICT ptr0;
-  const orc_int8 *ORC_RESTRICT ptr4;
-  const orc_int8 *ORC_RESTRICT ptr5;
-  const orc_int8 *ORC_RESTRICT ptr6;
-  orc_int8 var42;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_int8 var43;
-#else
-  orc_int8 var43;
-#endif
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_int8 var44;
-#else
-  orc_int8 var44;
-#endif
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_int8 var45;
-#else
-  orc_int8 var45;
-#endif
-  orc_union16 var46;
-  orc_union16 var47;
-  orc_union16 var48;
-  orc_union16 var49;
-  orc_union16 var50;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_int8 var51;
-#else
-  orc_int8 var51;
-#endif
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_union32 var52;
-#else
-  orc_union32 var52;
-#endif
-  orc_union32 var53;
-  orc_int8 var54;
-  orc_union16 var55;
-  orc_int8 var56;
-  orc_int8 var57;
-  orc_union16 var58;
-  orc_int8 var59;
-  orc_int8 var60;
-  orc_union16 var61;
-  orc_union16 var62;
-  orc_union16 var63;
-  orc_union16 var64;
-  orc_union16 var65;
-  orc_union16 var66;
-  orc_union16 var67;
-  orc_union16 var68;
-  orc_union16 var69;
-  orc_union16 var70;
-  orc_int8 var71;
-  orc_int8 var72;
-  orc_int8 var73;
-  orc_union16 var74;
-  orc_union16 var75;
-  orc_union32 var76;
-
-  ptr0 = (orc_union32 *) d1;
-  ptr4 = (orc_int8 *) s1;
-  ptr5 = (orc_int8 *) s2;
-  ptr6 = (orc_int8 *) s3;
-
-  /* 1: loadpb */
-  var43 = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-  /* 5: loadpb */
-  var44 = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-  /* 9: loadpb */
-  var45 = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-  /* 12: loadpw */
-  var46.i = p1;
-  /* 14: loadpw */
-  var47.i = p2;
-  /* 17: loadpw */
-  var48.i = p3;
-  /* 20: loadpw */
-  var49.i = p4;
-  /* 23: loadpw */
-  var50.i = p5;
-  /* 30: loadpb */
-  var51 = (int) 0x0000007f;     /* 127 or 6.27463e-322f */
-  /* 33: loadpb */
-  var52.x4[0] = (int) 0x00000080;       /* 128 or 6.32404e-322f */
-  var52.x4[1] = (int) 0x00000080;       /* 128 or 6.32404e-322f */
-  var52.x4[2] = (int) 0x00000080;       /* 128 or 6.32404e-322f */
-  var52.x4[3] = (int) 0x00000080;       /* 128 or 6.32404e-322f */
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadb */
-    var42 = ptr4[i];
-    /* 2: subb */
-    var54 = var42 - var43;
-    /* 3: splatbw */
-    var55.i = ((var54 & 0xff) << 8) | (var54 & 0xff);
-    /* 4: loadupdb */
-    var56 = ptr5[i >> 1];
-    /* 6: subb */
-    var57 = var56 - var44;
-    /* 7: splatbw */
-    var58.i = ((var57 & 0xff) << 8) | (var57 & 0xff);
-    /* 8: loadupdb */
-    var59 = ptr6[i >> 1];
-    /* 10: subb */
-    var60 = var59 - var45;
-    /* 11: splatbw */
-    var61.i = ((var60 & 0xff) << 8) | (var60 & 0xff);
-    /* 13: mulhsw */
-    var62.i = (var55.i * var46.i) >> 16;
-    /* 15: mulhsw */
-    var63.i = (var61.i * var47.i) >> 16;
-    /* 16: addssw */
-    var64.i = ORC_CLAMP_SW (var62.i + var63.i);
-    /* 18: mulhsw */
-    var65.i = (var58.i * var48.i) >> 16;
-    /* 19: addssw */
-    var66.i = ORC_CLAMP_SW (var62.i + var65.i);
-    /* 21: mulhsw */
-    var67.i = (var58.i * var49.i) >> 16;
-    /* 22: addssw */
-    var68.i = ORC_CLAMP_SW (var62.i + var67.i);
-    /* 24: mulhsw */
-    var69.i = (var61.i * var50.i) >> 16;
-    /* 25: addssw */
-    var70.i = ORC_CLAMP_SW (var68.i + var69.i);
-    /* 26: convssswb */
-    var71 = ORC_CLAMP_SB (var64.i);
-    /* 27: convssswb */
-    var72 = ORC_CLAMP_SB (var70.i);
-    /* 28: convssswb */
-    var73 = ORC_CLAMP_SB (var66.i);
-    /* 29: mergebw */
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var73;
-      _dest.x2[1] = var72;
-      var74.i = _dest.i;
-    }
-    /* 31: mergebw */
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var71;
-      _dest.x2[1] = var51;
-      var75.i = _dest.i;
-    }
-    /* 32: mergewl */
-    {
-      orc_union32 _dest;
-      _dest.x2[0] = var74.i;
-      _dest.x2[1] = var75.i;
-      var76.i = _dest.i;
-    }
-    /* 34: addb */
-    var53.x4[0] = var76.x4[0] + var52.x4[0];
-    var53.x4[1] = var76.x4[1] + var52.x4[1];
-    var53.x4[2] = var76.x4[2] + var52.x4[2];
-    var53.x4[3] = var76.x4[3] + var52.x4[3];
-    /* 35: storel */
-    ptr0[i] = var53;
-  }
-
-}
-
-#else
-static void
-_backup_video_convert_orc_convert_I420_BGRA (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int n = ex->n;
-  orc_union32 *ORC_RESTRICT ptr0;
-  const orc_int8 *ORC_RESTRICT ptr4;
-  const orc_int8 *ORC_RESTRICT ptr5;
-  const orc_int8 *ORC_RESTRICT ptr6;
-  orc_int8 var42;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_int8 var43;
-#else
-  orc_int8 var43;
-#endif
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_int8 var44;
-#else
-  orc_int8 var44;
-#endif
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_int8 var45;
-#else
-  orc_int8 var45;
-#endif
-  orc_union16 var46;
-  orc_union16 var47;
-  orc_union16 var48;
-  orc_union16 var49;
-  orc_union16 var50;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_int8 var51;
-#else
-  orc_int8 var51;
-#endif
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_union32 var52;
-#else
-  orc_union32 var52;
-#endif
-  orc_union32 var53;
-  orc_int8 var54;
-  orc_union16 var55;
-  orc_int8 var56;
-  orc_int8 var57;
-  orc_union16 var58;
-  orc_int8 var59;
-  orc_int8 var60;
-  orc_union16 var61;
-  orc_union16 var62;
-  orc_union16 var63;
-  orc_union16 var64;
-  orc_union16 var65;
-  orc_union16 var66;
-  orc_union16 var67;
-  orc_union16 var68;
-  orc_union16 var69;
-  orc_union16 var70;
-  orc_int8 var71;
-  orc_int8 var72;
-  orc_int8 var73;
-  orc_union16 var74;
-  orc_union16 var75;
-  orc_union32 var76;
-
-  ptr0 = (orc_union32 *) ex->arrays[0];
-  ptr4 = (orc_int8 *) ex->arrays[4];
-  ptr5 = (orc_int8 *) ex->arrays[5];
-  ptr6 = (orc_int8 *) ex->arrays[6];
-
-  /* 1: loadpb */
-  var43 = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-  /* 5: loadpb */
-  var44 = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-  /* 9: loadpb */
-  var45 = (int) 0x00000080;     /* 128 or 6.32404e-322f */
-  /* 12: loadpw */
-  var46.i = ex->params[24];
-  /* 14: loadpw */
-  var47.i = ex->params[25];
-  /* 17: loadpw */
-  var48.i = ex->params[26];
-  /* 20: loadpw */
-  var49.i = ex->params[27];
-  /* 23: loadpw */
-  var50.i = ex->params[28];
-  /* 30: loadpb */
-  var51 = (int) 0x0000007f;     /* 127 or 6.27463e-322f */
-  /* 33: loadpb */
-  var52.x4[0] = (int) 0x00000080;       /* 128 or 6.32404e-322f */
-  var52.x4[1] = (int) 0x00000080;       /* 128 or 6.32404e-322f */
-  var52.x4[2] = (int) 0x00000080;       /* 128 or 6.32404e-322f */
-  var52.x4[3] = (int) 0x00000080;       /* 128 or 6.32404e-322f */
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadb */
-    var42 = ptr4[i];
-    /* 2: subb */
-    var54 = var42 - var43;
-    /* 3: splatbw */
-    var55.i = ((var54 & 0xff) << 8) | (var54 & 0xff);
-    /* 4: loadupdb */
-    var56 = ptr5[i >> 1];
-    /* 6: subb */
-    var57 = var56 - var44;
-    /* 7: splatbw */
-    var58.i = ((var57 & 0xff) << 8) | (var57 & 0xff);
-    /* 8: loadupdb */
-    var59 = ptr6[i >> 1];
-    /* 10: subb */
-    var60 = var59 - var45;
-    /* 11: splatbw */
-    var61.i = ((var60 & 0xff) << 8) | (var60 & 0xff);
-    /* 13: mulhsw */
-    var62.i = (var55.i * var46.i) >> 16;
-    /* 15: mulhsw */
-    var63.i = (var61.i * var47.i) >> 16;
-    /* 16: addssw */
-    var64.i = ORC_CLAMP_SW (var62.i + var63.i);
-    /* 18: mulhsw */
-    var65.i = (var58.i * var48.i) >> 16;
-    /* 19: addssw */
-    var66.i = ORC_CLAMP_SW (var62.i + var65.i);
-    /* 21: mulhsw */
-    var67.i = (var58.i * var49.i) >> 16;
-    /* 22: addssw */
-    var68.i = ORC_CLAMP_SW (var62.i + var67.i);
-    /* 24: mulhsw */
-    var69.i = (var61.i * var50.i) >> 16;
-    /* 25: addssw */
-    var70.i = ORC_CLAMP_SW (var68.i + var69.i);
-    /* 26: convssswb */
-    var71 = ORC_CLAMP_SB (var64.i);
-    /* 27: convssswb */
-    var72 = ORC_CLAMP_SB (var70.i);
-    /* 28: convssswb */
-    var73 = ORC_CLAMP_SB (var66.i);
-    /* 29: mergebw */
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var73;
-      _dest.x2[1] = var72;
-      var74.i = _dest.i;
-    }
-    /* 31: mergebw */
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var71;
-      _dest.x2[1] = var51;
-      var75.i = _dest.i;
-    }
-    /* 32: mergewl */
-    {
-      orc_union32 _dest;
-      _dest.x2[0] = var74.i;
-      _dest.x2[1] = var75.i;
-      var76.i = _dest.i;
-    }
-    /* 34: addb */
-    var53.x4[0] = var76.x4[0] + var52.x4[0];
-    var53.x4[1] = var76.x4[1] + var52.x4[1];
-    var53.x4[2] = var76.x4[2] + var52.x4[2];
-    var53.x4[3] = var76.x4[3] + var52.x4[3];
-    /* 35: storel */
-    ptr0[i] = var53;
-  }
-
-}
-
-void
-video_convert_orc_convert_I420_BGRA (guint8 * ORC_RESTRICT d1,
-    const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
-    const guint8 * ORC_RESTRICT s3, int p1, int p2, int p3, int p4, int p5,
-    int n)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116,
-        95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 73, 52, 50,
-        48, 95, 66, 71, 82, 65, 11, 4, 4, 12, 1, 1, 12, 1, 1, 12,
-        1, 1, 14, 1, 128, 0, 0, 0, 14, 4, 127, 0, 0, 0, 16, 2,
-        16, 2, 16, 2, 16, 2, 16, 2, 20, 2, 20, 2, 20, 2, 20, 2,
-        20, 2, 20, 2, 20, 1, 20, 1, 20, 1, 20, 4, 65, 38, 4, 16,
-        151, 32, 38, 45, 38, 5, 65, 38, 38, 16, 151, 33, 38, 45, 38, 6,
-        65, 38, 38, 16, 151, 34, 38, 90, 32, 32, 24, 90, 35, 34, 25, 71,
-        35, 32, 35, 90, 37, 33, 26, 71, 37, 32, 37, 90, 36, 33, 27, 71,
-        36, 32, 36, 90, 32, 34, 28, 71, 36, 36, 32, 159, 38, 35, 159, 39,
-        36, 159, 40, 37, 196, 37, 40, 39, 196, 35, 38, 17, 195, 41, 37, 35,
-        21, 2, 33, 0, 41, 16, 2, 0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_I420_BGRA);
-#else
-      p = orc_program_new ();
-      orc_program_set_name (p, "video_convert_orc_convert_I420_BGRA");
-      orc_program_set_backup_function (p,
-          _backup_video_convert_orc_convert_I420_BGRA);
-      orc_program_add_destination (p, 4, "d1");
-      orc_program_add_source (p, 1, "s1");
-      orc_program_add_source (p, 1, "s2");
-      orc_program_add_source (p, 1, "s3");
-      orc_program_add_constant (p, 1, 0x00000080, "c1");
-      orc_program_add_constant (p, 4, 0x0000007f, "c2");
-      orc_program_add_parameter (p, 2, "p1");
-      orc_program_add_parameter (p, 2, "p2");
-      orc_program_add_parameter (p, 2, "p3");
-      orc_program_add_parameter (p, 2, "p4");
-      orc_program_add_parameter (p, 2, "p5");
-      orc_program_add_temporary (p, 2, "t1");
-      orc_program_add_temporary (p, 2, "t2");
-      orc_program_add_temporary (p, 2, "t3");
-      orc_program_add_temporary (p, 2, "t4");
-      orc_program_add_temporary (p, 2, "t5");
-      orc_program_add_temporary (p, 2, "t6");
-      orc_program_add_temporary (p, 1, "t7");
-      orc_program_add_temporary (p, 1, "t8");
-      orc_program_add_temporary (p, 1, "t9");
-      orc_program_add_temporary (p, 4, "t10");
-
-      orc_program_append_2 (p, "subb", 0, ORC_VAR_T7, ORC_VAR_S1, ORC_VAR_C1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splatbw", 0, ORC_VAR_T1, ORC_VAR_T7, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "loadupdb", 0, ORC_VAR_T7, ORC_VAR_S2,
-          ORC_VAR_D1, ORC_VAR_D1);
-      orc_program_append_2 (p, "subb", 0, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_C1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splatbw", 0, ORC_VAR_T2, ORC_VAR_T7, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "loadupdb", 0, ORC_VAR_T7, ORC_VAR_S3,
-          ORC_VAR_D1, ORC_VAR_D1);
-      orc_program_append_2 (p, "subb", 0, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_C1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splatbw", 0, ORC_VAR_T3, ORC_VAR_T7, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_P1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_P2,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "addssw", 0, ORC_VAR_T4, ORC_VAR_T1, ORC_VAR_T4,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T6, ORC_VAR_T2, ORC_VAR_P3,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "addssw", 0, ORC_VAR_T6, ORC_VAR_T1, ORC_VAR_T6,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T5, ORC_VAR_T2, ORC_VAR_P4,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "addssw", 0, ORC_VAR_T5, ORC_VAR_T1, ORC_VAR_T5,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T1, ORC_VAR_T3, ORC_VAR_P5,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "addssw", 0, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_T1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T7, ORC_VAR_T4,
-          ORC_VAR_D1, ORC_VAR_D1);
-      orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T8, ORC_VAR_T5,
-          ORC_VAR_D1, ORC_VAR_D1);
-      orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T9, ORC_VAR_T6,
-          ORC_VAR_D1, ORC_VAR_D1);
-      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T6, ORC_VAR_T9, ORC_VAR_T8,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T4, ORC_VAR_T7, ORC_VAR_C2,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T10, ORC_VAR_T6,
-          ORC_VAR_T4, ORC_VAR_D1);
-      orc_program_append_2 (p, "addb", 2, ORC_VAR_D1, ORC_VAR_T10, ORC_VAR_C1,
-          ORC_VAR_D1);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-  ex->arrays[ORC_VAR_S2] = (void *) s2;
-  ex->arrays[ORC_VAR_S3] = (void *) s3;
-  ex->params[ORC_VAR_P1] = p1;
-  ex->params[ORC_VAR_P2] = p2;
-  ex->params[ORC_VAR_P3] = p3;
-  ex->params[ORC_VAR_P4] = p4;
-  ex->params[ORC_VAR_P5] = p5;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
diff --git a/gst/videoconvert/gstvideoconvertorc-dist.h b/gst/videoconvert/gstvideoconvertorc-dist.h
deleted file mode 100644
index b4981d1..0000000
--- a/gst/videoconvert/gstvideoconvertorc-dist.h
+++ /dev/null
@@ -1,124 +0,0 @@
-
-/* autogenerated from gstvideoconvertorc.orc */
-
-#ifndef _GSTVIDEOCONVERTORC_H_
-#define _GSTVIDEOCONVERTORC_H_
-
-#include <glib.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-
-#ifndef _ORC_INTEGER_TYPEDEFS_
-#define _ORC_INTEGER_TYPEDEFS_
-#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
-#include <stdint.h>
-typedef int8_t orc_int8;
-typedef int16_t orc_int16;
-typedef int32_t orc_int32;
-typedef int64_t orc_int64;
-typedef uint8_t orc_uint8;
-typedef uint16_t orc_uint16;
-typedef uint32_t orc_uint32;
-typedef uint64_t orc_uint64;
-#define ORC_UINT64_C(x) UINT64_C(x)
-#elif defined(_MSC_VER)
-typedef signed __int8 orc_int8;
-typedef signed __int16 orc_int16;
-typedef signed __int32 orc_int32;
-typedef signed __int64 orc_int64;
-typedef unsigned __int8 orc_uint8;
-typedef unsigned __int16 orc_uint16;
-typedef unsigned __int32 orc_uint32;
-typedef unsigned __int64 orc_uint64;
-#define ORC_UINT64_C(x) (x##Ui64)
-#define inline __inline
-#else
-#include <limits.h>
-typedef signed char orc_int8;
-typedef short orc_int16;
-typedef int orc_int32;
-typedef unsigned char orc_uint8;
-typedef unsigned short orc_uint16;
-typedef unsigned int orc_uint32;
-#if INT_MAX == LONG_MAX
-typedef long long orc_int64;
-typedef unsigned long long orc_uint64;
-#define ORC_UINT64_C(x) (x##ULL)
-#else
-typedef long orc_int64;
-typedef unsigned long orc_uint64;
-#define ORC_UINT64_C(x) (x##UL)
-#endif
-#endif
-typedef union { orc_int16 i; orc_int8 x2[2]; } orc_union16;
-typedef union { orc_int32 i; float f; orc_int16 x2[2]; orc_int8 x4[4]; } orc_union32;
-typedef union { orc_int64 i; double f; orc_int32 x2[2]; float x2f[2]; orc_int16 x4[4]; } orc_union64;
-#endif
-#ifndef ORC_RESTRICT
-#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
-#define ORC_RESTRICT restrict
-#elif defined(__GNUC__) && __GNUC__ >= 4
-#define ORC_RESTRICT __restrict__
-#else
-#define ORC_RESTRICT
-#endif
-#endif
-
-#ifndef ORC_INTERNAL
-#if defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590)
-#define ORC_INTERNAL __attribute__((visibility("hidden")))
-#elif defined(__SUNPRO_C) && (__SUNPRO_C >= 0x550)
-#define ORC_INTERNAL __hidden
-#elif defined (__GNUC__)
-#define ORC_INTERNAL __attribute__((visibility("hidden")))
-#else
-#define ORC_INTERNAL
-#endif
-#endif
-
-void video_convert_orc_memcpy_2d (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
-void video_convert_orc_convert_I420_UYVY (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, int n);
-void video_convert_orc_convert_I420_YUY2 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, int n);
-void video_convert_orc_convert_I420_AYUV (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, int n);
-void video_convert_orc_convert_YUY2_I420 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2, guint8 * ORC_RESTRICT d3, guint8 * ORC_RESTRICT d4, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, int n);
-void video_convert_orc_convert_UYVY_YUY2 (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
-void video_convert_orc_planar_chroma_420_422 (guint8 * ORC_RESTRICT d1, int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
-void video_convert_orc_planar_chroma_420_444 (guint8 * ORC_RESTRICT d1, int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
-void video_convert_orc_planar_chroma_422_444 (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
-void video_convert_orc_planar_chroma_444_422 (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
-void video_convert_orc_planar_chroma_444_420 (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, const guint8 * ORC_RESTRICT s2, int s2_stride, int n, int m);
-void video_convert_orc_planar_chroma_422_420 (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, const guint8 * ORC_RESTRICT s2, int s2_stride, int n, int m);
-void video_convert_orc_convert_YUY2_AYUV (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
-void video_convert_orc_convert_UYVY_AYUV (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
-void video_convert_orc_convert_YUY2_Y42B (guint8 * ORC_RESTRICT d1, int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3, int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
-void video_convert_orc_convert_UYVY_Y42B (guint8 * ORC_RESTRICT d1, int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3, int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
-void video_convert_orc_convert_YUY2_Y444 (guint8 * ORC_RESTRICT d1, int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3, int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
-void video_convert_orc_convert_UYVY_Y444 (guint8 * ORC_RESTRICT d1, int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3, int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
-void video_convert_orc_convert_UYVY_I420 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2, guint8 * ORC_RESTRICT d3, guint8 * ORC_RESTRICT d4, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, int n);
-void video_convert_orc_convert_AYUV_I420 (guint8 * ORC_RESTRICT d1, int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3, int d3_stride, guint8 * ORC_RESTRICT d4, int d4_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, const guint8 * ORC_RESTRICT s2, int s2_stride, int n, int m);
-void video_convert_orc_convert_AYUV_YUY2 (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
-void video_convert_orc_convert_AYUV_UYVY (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
-void video_convert_orc_convert_AYUV_Y42B (guint8 * ORC_RESTRICT d1, int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3, int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
-void video_convert_orc_convert_AYUV_Y444 (guint8 * ORC_RESTRICT d1, int d1_stride, guint8 * ORC_RESTRICT d2, int d2_stride, guint8 * ORC_RESTRICT d3, int d3_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
-void video_convert_orc_convert_Y42B_YUY2 (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, const guint8 * ORC_RESTRICT s2, int s2_stride, const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m);
-void video_convert_orc_convert_Y42B_UYVY (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, const guint8 * ORC_RESTRICT s2, int s2_stride, const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m);
-void video_convert_orc_convert_Y42B_AYUV (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, const guint8 * ORC_RESTRICT s2, int s2_stride, const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m);
-void video_convert_orc_convert_Y444_YUY2 (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, const guint8 * ORC_RESTRICT s2, int s2_stride, const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m);
-void video_convert_orc_convert_Y444_UYVY (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, const guint8 * ORC_RESTRICT s2, int s2_stride, const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m);
-void video_convert_orc_convert_Y444_AYUV (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, const guint8 * ORC_RESTRICT s2, int s2_stride, const guint8 * ORC_RESTRICT s3, int s3_stride, int n, int m);
-void video_convert_orc_convert_AYUV_ARGB (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int p2, int p3, int p4, int p5, int n, int m);
-void video_convert_orc_convert_AYUV_BGRA (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int p2, int p3, int p4, int p5, int n, int m);
-void video_convert_orc_convert_AYUV_ABGR (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int p2, int p3, int p4, int p5, int n, int m);
-void video_convert_orc_convert_AYUV_RGBA (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int p2, int p3, int p4, int p5, int n, int m);
-void video_convert_orc_convert_I420_BGRA (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, int p1, int p2, int p3, int p4, int p5, int n);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
diff --git a/gst/videoconvert/gstvideoconvertorc.orc b/gst/videoconvert/gstvideoconvertorc.orc
deleted file mode 100644
index 29a1998..0000000
--- a/gst/videoconvert/gstvideoconvertorc.orc
+++ /dev/null
@@ -1,729 +0,0 @@
-
-.function video_convert_orc_memcpy_2d
-.flags 2d
-.dest 1 d1 guint8
-.source 1 s1 guint8
-
-copyb d1, s1
-
-.function video_convert_orc_convert_I420_UYVY
-.dest 4 d1 guint8
-.dest 4 d2 guint8
-.source 2 y1 guint8
-.source 2 y2 guint8
-.source 1 u guint8
-.source 1 v guint8
-.temp 2 uv
-
-mergebw uv, u, v
-x2 mergebw d1, uv, y1
-x2 mergebw d2, uv, y2
-
-
-.function video_convert_orc_convert_I420_YUY2
-.dest 4 d1 guint8
-.dest 4 d2 guint8
-.source 2 y1 guint8
-.source 2 y2 guint8
-.source 1 u guint8
-.source 1 v guint8
-.temp 2 uv
-
-mergebw uv, u, v
-x2 mergebw d1, y1, uv
-x2 mergebw d2, y2, uv
-
-
-
-.function video_convert_orc_convert_I420_AYUV
-.dest 4 d1 guint8
-.dest 4 d2 guint8
-.source 1 y1 guint8
-.source 1 y2 guint8
-.source 1 u guint8
-.source 1 v guint8
-.const 1 c255 255
-.temp 2 uv
-.temp 2 ay
-.temp 1 tu
-.temp 1 tv
-
-loadupdb tu, u
-loadupdb tv, v
-mergebw uv, tu, tv
-mergebw ay, c255, y1
-mergewl d1, ay, uv
-mergebw ay, c255, y2
-mergewl d2, ay, uv
-
-
-.function video_convert_orc_convert_YUY2_I420
-.dest 2 y1 guint8
-.dest 2 y2 guint8
-.dest 1 u guint8
-.dest 1 v guint8
-.source 4 yuv1 guint8
-.source 4 yuv2 guint8
-.temp 2 t1
-.temp 2 t2
-.temp 2 ty
-
-x2 splitwb t1, ty, yuv1
-storew y1, ty
-x2 splitwb t2, ty, yuv2
-storew y2, ty
-x2 avgub t1, t1, t2
-splitwb v, u, t1
-
-
-.function video_convert_orc_convert_UYVY_YUY2
-.flags 2d
-.dest 4 yuy2 guint8
-.source 4 uyvy guint8
-
-x2 swapw yuy2, uyvy
-
-
-.function video_convert_orc_planar_chroma_420_422
-.flags 2d
-.dest 1 d1 guint8
-.dest 1 d2 guint8
-.source 1 s guint8
-
-copyb d1, s
-copyb d2, s
-
-
-.function video_convert_orc_planar_chroma_420_444
-.flags 2d
-.dest 2 d1 guint8
-.dest 2 d2 guint8
-.source 1 s guint8
-.temp 2 t
-
-splatbw t, s
-storew d1, t
-storew d2, t
-
-
-.function video_convert_orc_planar_chroma_422_444
-.flags 2d
-.dest 2 d1 guint8
-.source 1 s guint8
-.temp 2 t
-
-splatbw t, s
-storew d1, t
-
-
-.function video_convert_orc_planar_chroma_444_422
-.flags 2d
-.dest 1 d guint8
-.source 2 s guint8
-.temp 1 t1
-.temp 1 t2
-
-splitwb t1, t2, s
-avgub d, t1, t2
-
-
-.function video_convert_orc_planar_chroma_444_420
-.flags 2d
-.dest 1 d guint8
-.source 2 s1 guint8
-.source 2 s2 guint8
-.temp 2 t
-.temp 1 t1
-.temp 1 t2
-
-x2 avgub t, s1, s2
-splitwb t1, t2, t
-avgub d, t1, t2
-
-
-.function video_convert_orc_planar_chroma_422_420
-.flags 2d
-.dest 1 d guint8
-.source 1 s1 guint8
-.source 1 s2 guint8
-
-avgub d, s1, s2
-
-
-.function video_convert_orc_convert_YUY2_AYUV
-.flags 2d
-.dest 8 ayuv guint8
-.source 4 yuy2 guint8
-.const 2 c255 0xff
-.temp 2 yy
-.temp 2 uv
-.temp 4 ayay
-.temp 4 uvuv
-
-x2 splitwb uv, yy, yuy2
-x2 mergebw ayay, c255, yy
-mergewl uvuv, uv, uv
-x2 mergewl ayuv, ayay, uvuv
-
-
-.function video_convert_orc_convert_UYVY_AYUV
-.flags 2d
-.dest 8 ayuv guint8
-.source 4 uyvy guint8
-.const 2 c255 0xff
-.temp 2 yy
-.temp 2 uv
-.temp 4 ayay
-.temp 4 uvuv
-
-x2 splitwb yy, uv, uyvy
-x2 mergebw ayay, c255, yy
-mergewl uvuv, uv, uv
-x2 mergewl ayuv, ayay, uvuv
-
-
-.function video_convert_orc_convert_YUY2_Y42B
-.flags 2d
-.dest 2 y guint8
-.dest 1 u guint8
-.dest 1 v guint8
-.source 4 yuy2 guint8
-.temp 2 uv
-
-x2 splitwb uv, y, yuy2
-splitwb v, u, uv
-
-
-.function video_convert_orc_convert_UYVY_Y42B
-.flags 2d
-.dest 2 y guint8
-.dest 1 u guint8
-.dest 1 v guint8
-.source 4 uyvy guint8
-.temp 2 uv
-
-x2 splitwb y, uv, uyvy
-splitwb v, u, uv
-
-
-.function video_convert_orc_convert_YUY2_Y444
-.flags 2d
-.dest 2 y guint8
-.dest 2 uu guint8
-.dest 2 vv guint8
-.source 4 yuy2 guint8
-.temp 2 uv
-.temp 1 u
-.temp 1 v
-
-x2 splitwb uv, y, yuy2
-splitwb v, u, uv
-splatbw uu, u
-splatbw vv, v
-
-
-.function video_convert_orc_convert_UYVY_Y444
-.flags 2d
-.dest 2 y guint8
-.dest 2 uu guint8
-.dest 2 vv guint8
-.source 4 uyvy guint8
-.temp 2 uv
-.temp 1 u
-.temp 1 v
-
-x2 splitwb y, uv, uyvy
-splitwb v, u, uv
-splatbw uu, u
-splatbw vv, v
-
-
-.function video_convert_orc_convert_UYVY_I420
-.dest 2 y1 guint8
-.dest 2 y2 guint8
-.dest 1 u guint8
-.dest 1 v guint8
-.source 4 yuv1 guint8
-.source 4 yuv2 guint8
-.temp 2 t1
-.temp 2 t2
-.temp 2 ty
-
-x2 splitwb ty, t1, yuv1
-storew y1, ty
-x2 splitwb ty, t2, yuv2
-storew y2, ty
-x2 avgub t1, t1, t2
-splitwb v, u, t1
-
-
-
-.function video_convert_orc_convert_AYUV_I420
-.flags 2d
-.dest 2 y1 guint8
-.dest 2 y2 guint8
-.dest 1 u guint8
-.dest 1 v guint8
-.source 8 ayuv1 guint8
-.source 8 ayuv2 guint8
-.temp 4 ay
-.temp 4 uv1
-.temp 4 uv2
-.temp 4 uv
-.temp 2 uu
-.temp 2 vv
-.temp 1 t1
-.temp 1 t2
-
-x2 splitlw uv1, ay, ayuv1
-x2 select1wb y1, ay
-x2 splitlw uv2, ay, ayuv2
-x2 select1wb y2, ay
-x4 avgub uv, uv1, uv2
-x2 splitwb vv, uu, uv
-splitwb t1, t2, uu
-avgub u, t1, t2
-splitwb t1, t2, vv
-avgub v, t1, t2
-
-
-
-.function video_convert_orc_convert_AYUV_YUY2
-.flags 2d
-.dest 4 yuy2 guint8
-.source 8 ayuv guint8
-.temp 2 yy
-.temp 2 uv1
-.temp 2 uv2
-.temp 4 ayay
-.temp 4 uvuv
-
-x2 splitlw uvuv, ayay, ayuv
-splitlw uv1, uv2, uvuv
-x2 avgub uv1, uv1, uv2
-x2 select1wb yy, ayay
-x2 mergebw yuy2, yy, uv1
-
-
-.function video_convert_orc_convert_AYUV_UYVY
-.flags 2d
-.dest 4 yuy2 guint8
-.source 8 ayuv guint8
-.temp 2 yy
-.temp 2 uv1
-.temp 2 uv2
-.temp 4 ayay
-.temp 4 uvuv
-
-x2 splitlw uvuv, ayay, ayuv
-splitlw uv1, uv2, uvuv
-x2 avgub uv1, uv1, uv2
-x2 select1wb yy, ayay
-x2 mergebw yuy2, uv1, yy
-
-
-
-.function video_convert_orc_convert_AYUV_Y42B
-.flags 2d
-.dest 2 y guint8
-.dest 1 u guint8
-.dest 1 v guint8
-.source 8 ayuv guint8
-.temp 4 ayay
-.temp 4 uvuv
-.temp 2 uv1
-.temp 2 uv2
-
-x2 splitlw uvuv, ayay, ayuv
-splitlw uv1, uv2, uvuv
-x2 avgub uv1, uv1, uv2
-splitwb v, u, uv1
-x2 select1wb y, ayay
-
-
-.function video_convert_orc_convert_AYUV_Y444
-.flags 2d
-.dest 1 y guint8
-.dest 1 u guint8
-.dest 1 v guint8
-.source 4 ayuv guint8
-.temp 2 ay
-.temp 2 uv
-
-splitlw uv, ay, ayuv
-splitwb v, u, uv
-select1wb y, ay
-
-
-.function video_convert_orc_convert_Y42B_YUY2
-.flags 2d
-.dest 4 yuy2 guint8
-.source 2 y guint8
-.source 1 u guint8
-.source 1 v guint8
-.temp 2 uv
-
-mergebw uv, u, v
-x2 mergebw yuy2, y, uv
-
-
-.function video_convert_orc_convert_Y42B_UYVY
-.flags 2d
-.dest 4 uyvy guint8
-.source 2 y guint8
-.source 1 u guint8
-.source 1 v guint8
-.temp 2 uv
-
-mergebw uv, u, v
-x2 mergebw uyvy, uv, y
-
-
-.function video_convert_orc_convert_Y42B_AYUV
-.flags 2d
-.dest 8 ayuv guint8
-.source 2 yy guint8
-.source 1 u guint8
-.source 1 v guint8
-.const 1 c255 255
-.temp 2 uv
-.temp 2 ay
-.temp 4 uvuv
-.temp 4 ayay
-
-mergebw uv, u, v
-x2 mergebw ayay, c255, yy
-mergewl uvuv, uv, uv
-x2 mergewl ayuv, ayay, uvuv
-
-
-.function video_convert_orc_convert_Y444_YUY2
-.flags 2d
-.dest 4 yuy2 guint8
-.source 2 y guint8
-.source 2 u guint8
-.source 2 v guint8
-.temp 2 uv
-.temp 4 uvuv
-.temp 2 uv1
-.temp 2 uv2
-
-x2 mergebw uvuv, u, v
-splitlw uv1, uv2, uvuv
-x2 avgub uv, uv1, uv2
-x2 mergebw yuy2, y, uv
-
-
-.function video_convert_orc_convert_Y444_UYVY
-.flags 2d
-.dest 4 uyvy guint8
-.source 2 y guint8
-.source 2 u guint8
-.source 2 v guint8
-.temp 2 uv
-.temp 4 uvuv
-.temp 2 uv1
-.temp 2 uv2
-
-x2 mergebw uvuv, u, v
-splitlw uv1, uv2, uvuv
-x2 avgub uv, uv1, uv2
-x2 mergebw uyvy, uv, y
-
-
-.function video_convert_orc_convert_Y444_AYUV
-.flags 2d
-.dest 4 ayuv guint8
-.source 1 yy guint8
-.source 1 u guint8
-.source 1 v guint8
-.const 1 c255 255
-.temp 2 uv
-.temp 2 ay
-
-mergebw uv, u, v
-mergebw ay, c255, yy
-mergewl ayuv, ay, uv
-
-
-
-.function video_convert_orc_convert_AYUV_ARGB
-.flags 2d
-.dest 4 argb guint8
-.source 4 ayuv guint8
-.param 2 p1
-.param 2 p2
-.param 2 p3
-.param 2 p4
-.param 2 p5
-.temp 1 a
-.temp 1 y
-.temp 1 u
-.temp 1 v
-.temp 2 wy
-.temp 2 wu
-.temp 2 wv
-.temp 2 wr
-.temp 2 wg
-.temp 2 wb
-.temp 1 r
-.temp 1 g
-.temp 1 b
-.temp 4 x
-.const 1 c128 128
-
-x4 subb x, ayuv, c128 
-splitlw wv, wy, x
-splitwb y, a, wy
-splitwb v, u, wv
-
-splatbw wy, y
-splatbw wu, u
-splatbw wv, v
-
-mulhsw wy, wy, p1
-
-mulhsw wr, wv, p2
-addssw wr, wy, wr
-
-mulhsw wb, wu, p3
-addssw wb, wy, wb
-
-mulhsw wg, wu, p4
-addssw wg, wy, wg
-mulhsw wy, wv, p5
-addssw wg, wg, wy
-
-convssswb r, wr
-convssswb g, wg
-convssswb b, wb
-
-mergebw wr, a, r
-mergebw wb, g, b
-mergewl x, wr, wb
-x4 addb argb, x, c128
-
-.function video_convert_orc_convert_AYUV_BGRA
-.flags 2d
-.dest 4 bgra guint8
-.source 4 ayuv guint8
-.param 2 p1
-.param 2 p2
-.param 2 p3
-.param 2 p4
-.param 2 p5
-.temp 1 a
-.temp 1 y
-.temp 1 u
-.temp 1 v
-.temp 2 wy
-.temp 2 wu
-.temp 2 wv
-.temp 2 wr
-.temp 2 wg
-.temp 2 wb
-.temp 1 r
-.temp 1 g
-.temp 1 b
-.temp 4 x
-.const 1 c128 128
-
-x4 subb x, ayuv, c128 
-splitlw wv, wy, x
-splitwb y, a, wy
-splitwb v, u, wv
-
-splatbw wy, y
-splatbw wu, u
-splatbw wv, v
-
-mulhsw wy, wy, p1
-
-mulhsw wr, wv, p2
-addssw wr, wy, wr
-
-mulhsw wb, wu, p3
-addssw wb, wy, wb
-
-mulhsw wg, wu, p4
-addssw wg, wy, wg
-mulhsw wy, wv, p5
-addssw wg, wg, wy
-
-convssswb r, wr
-convssswb g, wg
-convssswb b, wb
-
-mergebw wb, b, g
-mergebw wr, r, a
-mergewl x, wb, wr
-x4 addb bgra, x, c128
-
-
-.function video_convert_orc_convert_AYUV_ABGR
-.flags 2d
-.dest 4 argb guint8
-.source 4 ayuv guint8
-.param 2 p1
-.param 2 p2
-.param 2 p3
-.param 2 p4
-.param 2 p5
-.temp 1 a
-.temp 1 y
-.temp 1 u
-.temp 1 v
-.temp 2 wy
-.temp 2 wu
-.temp 2 wv
-.temp 2 wr
-.temp 2 wg
-.temp 2 wb
-.temp 1 r
-.temp 1 g
-.temp 1 b
-.temp 4 x
-.const 1 c128 128
-
-x4 subb x, ayuv, c128 
-splitlw wv, wy, x
-splitwb y, a, wy
-splitwb v, u, wv
-
-splatbw wy, y
-splatbw wu, u
-splatbw wv, v
-
-mulhsw wy, wy, p1
-
-mulhsw wr, wv, p2
-addssw wr, wy, wr
-
-mulhsw wb, wu, p3
-addssw wb, wy, wb
-
-mulhsw wg, wu, p4
-addssw wg, wy, wg
-mulhsw wy, wv, p5
-addssw wg, wg, wy
-
-convssswb r, wr
-convssswb g, wg
-convssswb b, wb
-
-mergebw wb, a, b
-mergebw wr, g, r
-mergewl x, wb, wr
-x4 addb argb, x, c128
-
-.function video_convert_orc_convert_AYUV_RGBA
-.flags 2d
-.dest 4 argb guint8
-.source 4 ayuv guint8
-.param 2 p1
-.param 2 p2
-.param 2 p3
-.param 2 p4
-.param 2 p5
-.temp 1 a
-.temp 1 y
-.temp 1 u
-.temp 1 v
-.temp 2 wy
-.temp 2 wu
-.temp 2 wv
-.temp 2 wr
-.temp 2 wg
-.temp 2 wb
-.temp 1 r
-.temp 1 g
-.temp 1 b
-.temp 4 x
-.const 1 c128 128
-
-x4 subb x, ayuv, c128 
-splitlw wv, wy, x
-splitwb y, a, wy
-splitwb v, u, wv
-
-splatbw wy, y
-splatbw wu, u
-splatbw wv, v
-
-mulhsw wy, wy, p1
-
-mulhsw wr, wv, p2
-addssw wr, wy, wr
-
-mulhsw wb, wu, p3
-addssw wb, wy, wb
-
-mulhsw wg, wu, p4
-addssw wg, wy, wg
-mulhsw wy, wv, p5
-addssw wg, wg, wy
-
-convssswb r, wr
-convssswb g, wg
-convssswb b, wb
-
-mergebw wr, r, g
-mergebw wb, b, a
-mergewl x, wr, wb
-x4 addb argb, x, c128
-
-
-
-.function video_convert_orc_convert_I420_BGRA
-.dest 4 argb guint8
-.source 1 y guint8
-.source 1 u guint8
-.source 1 v guint8
-.param 2 p1
-.param 2 p2
-.param 2 p3
-.param 2 p4
-.param 2 p5
-.temp 2 wy
-.temp 2 wu
-.temp 2 wv
-.temp 2 wr
-.temp 2 wg
-.temp 2 wb
-.temp 1 r
-.temp 1 g
-.temp 1 b
-.temp 4 x
-.const 1 c128 128
-
-subb r, y, c128
-splatbw wy, r
-loadupdb r, u
-subb r, r, c128
-splatbw wu, r
-loadupdb r, v
-subb r, r, c128
-splatbw wv, r
-
-mulhsw wy, wy, p1
-
-mulhsw wr, wv, p2
-addssw wr, wy, wr
-
-mulhsw wb, wu, p3
-addssw wb, wy, wb
-
-mulhsw wg, wu, p4
-addssw wg, wy, wg
-mulhsw wy, wv, p5
-addssw wg, wg, wy
-
-convssswb r, wr
-convssswb g, wg
-convssswb b, wb
-
-mergebw wb, b, g
-mergebw wr, r, 127
-mergewl x, wb, wr
-x4 addb argb, x, c128
-
diff --git a/gst/videoconvert/videoconvert.c b/gst/videoconvert/videoconvert.c
deleted file mode 100644
index 380822d..0000000
--- a/gst/videoconvert/videoconvert.c
+++ /dev/null
@@ -1,1502 +0,0 @@
-/* GStreamer
- * Copyright (C) 2010 David Schleef <ds@schleef.org>
- * Copyright (C) 2010 Sebastian Dröge <sebastian.droege@collabora.co.uk>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include "videoconvert.h"
-
-#include <glib.h>
-#include <string.h>
-#include <math.h>
-
-#include "gstvideoconvertorc.h"
-
-
-static void videoconvert_convert_generic (VideoConvert * convert,
-    GstVideoFrame * dest, const GstVideoFrame * src);
-static void videoconvert_convert_matrix8 (VideoConvert * convert,
-    gpointer pixels);
-static void videoconvert_convert_matrix16 (VideoConvert * convert,
-    gpointer pixels);
-static gboolean videoconvert_convert_lookup_fastpath (VideoConvert * convert);
-static gboolean videoconvert_convert_compute_matrix (VideoConvert * convert);
-static gboolean videoconvert_convert_compute_resample (VideoConvert * convert);
-static void videoconvert_dither_verterr (VideoConvert * convert,
-    guint16 * pixels, int j);
-static void videoconvert_dither_halftone (VideoConvert * convert,
-    guint16 * pixels, int j);
-
-
-VideoConvert *
-videoconvert_convert_new (GstVideoInfo * in_info, GstVideoInfo * out_info)
-{
-  VideoConvert *convert;
-  gint width;
-
-  convert = g_malloc0 (sizeof (VideoConvert));
-
-  convert->in_info = *in_info;
-  convert->out_info = *out_info;
-  convert->dither16 = NULL;
-
-  convert->width = GST_VIDEO_INFO_WIDTH (in_info);
-  convert->height = GST_VIDEO_INFO_HEIGHT (in_info);
-
-  if (!videoconvert_convert_lookup_fastpath (convert)) {
-    convert->convert = videoconvert_convert_generic;
-    if (!videoconvert_convert_compute_matrix (convert))
-      goto no_convert;
-
-    if (!videoconvert_convert_compute_resample (convert))
-      goto no_convert;
-  }
-
-  width = convert->width;
-
-  convert->lines = out_info->finfo->pack_lines;
-  convert->errline = g_malloc0 (sizeof (guint16) * width * 4);
-
-  return convert;
-
-  /* ERRORS */
-no_convert:
-  {
-    videoconvert_convert_free (convert);
-    return NULL;
-  }
-}
-
-void
-videoconvert_convert_free (VideoConvert * convert)
-{
-  gint i;
-
-  if (convert->upsample)
-    gst_video_chroma_resample_free (convert->upsample);
-  if (convert->downsample)
-    gst_video_chroma_resample_free (convert->downsample);
-
-  for (i = 0; i < convert->n_tmplines; i++)
-    g_free (convert->tmplines[i]);
-  g_free (convert->tmplines);
-  g_free (convert->errline);
-
-  g_free (convert);
-}
-
-void
-videoconvert_convert_set_dither (VideoConvert * convert, int type)
-{
-  switch (type) {
-    case 0:
-    default:
-      convert->dither16 = NULL;
-      break;
-    case 1:
-      convert->dither16 = videoconvert_dither_verterr;
-      break;
-    case 2:
-      convert->dither16 = videoconvert_dither_halftone;
-      break;
-  }
-}
-
-void
-videoconvert_convert_convert (VideoConvert * convert,
-    GstVideoFrame * dest, const GstVideoFrame * src)
-{
-  convert->convert (convert, dest, src);
-}
-
-#define SCALE    (8)
-#define SCALE_F  ((float) (1 << SCALE))
-
-static void
-videoconvert_convert_matrix8 (VideoConvert * convert, gpointer pixels)
-{
-  int i;
-  int r, g, b;
-  int y, u, v;
-  guint8 *p = pixels;
-
-  for (i = 0; i < convert->width; i++) {
-    r = p[i * 4 + 1];
-    g = p[i * 4 + 2];
-    b = p[i * 4 + 3];
-
-    y = (convert->cmatrix[0][0] * r + convert->cmatrix[0][1] * g +
-        convert->cmatrix[0][2] * b + convert->cmatrix[0][3]) >> SCALE;
-    u = (convert->cmatrix[1][0] * r + convert->cmatrix[1][1] * g +
-        convert->cmatrix[1][2] * b + convert->cmatrix[1][3]) >> SCALE;
-    v = (convert->cmatrix[2][0] * r + convert->cmatrix[2][1] * g +
-        convert->cmatrix[2][2] * b + convert->cmatrix[2][3]) >> SCALE;
-
-    p[i * 4 + 1] = CLAMP (y, 0, 255);
-    p[i * 4 + 2] = CLAMP (u, 0, 255);
-    p[i * 4 + 3] = CLAMP (v, 0, 255);
-  }
-}
-
-static void
-videoconvert_convert_matrix16 (VideoConvert * convert, gpointer pixels)
-{
-  int i;
-  int r, g, b;
-  int y, u, v;
-  guint16 *p = pixels;
-
-  for (i = 0; i < convert->width; i++) {
-    r = p[i * 4 + 1];
-    g = p[i * 4 + 2];
-    b = p[i * 4 + 3];
-
-    y = (convert->cmatrix[0][0] * r + convert->cmatrix[0][1] * g +
-        convert->cmatrix[0][2] * b + convert->cmatrix[0][3]) >> SCALE;
-    u = (convert->cmatrix[1][0] * r + convert->cmatrix[1][1] * g +
-        convert->cmatrix[1][2] * b + convert->cmatrix[1][3]) >> SCALE;
-    v = (convert->cmatrix[2][0] * r + convert->cmatrix[2][1] * g +
-        convert->cmatrix[2][2] * b + convert->cmatrix[2][3]) >> SCALE;
-
-    p[i * 4 + 1] = CLAMP (y, 0, 65535);
-    p[i * 4 + 2] = CLAMP (u, 0, 65535);
-    p[i * 4 + 3] = CLAMP (v, 0, 65535);
-  }
-}
-
-static gboolean
-get_Kr_Kb (GstVideoColorMatrix matrix, gdouble * Kr, gdouble * Kb)
-{
-  gboolean res = TRUE;
-
-  switch (matrix) {
-      /* RGB */
-    default:
-    case GST_VIDEO_COLOR_MATRIX_RGB:
-      res = FALSE;
-      break;
-      /* YUV */
-    case GST_VIDEO_COLOR_MATRIX_FCC:
-      *Kr = 0.30;
-      *Kb = 0.11;
-      break;
-    case GST_VIDEO_COLOR_MATRIX_BT709:
-      *Kr = 0.2126;
-      *Kb = 0.0722;
-      break;
-    case GST_VIDEO_COLOR_MATRIX_BT601:
-      *Kr = 0.2990;
-      *Kb = 0.1140;
-      break;
-    case GST_VIDEO_COLOR_MATRIX_SMPTE240M:
-      *Kr = 0.212;
-      *Kb = 0.087;
-      break;
-  }
-  GST_DEBUG ("matrix: %d, Kr %f, Kb %f", matrix, *Kr, *Kb);
-  return res;
-}
-
-static gboolean
-videoconvert_convert_compute_matrix (VideoConvert * convert)
-{
-  GstVideoInfo *in_info, *out_info;
-  ColorMatrix dst;
-  gint i, j;
-  const GstVideoFormatInfo *sfinfo, *dfinfo;
-  const GstVideoFormatInfo *suinfo, *duinfo;
-  gint offset[4], scale[4];
-  gdouble Kr = 0, Kb = 0;
-
-  in_info = &convert->in_info;
-  out_info = &convert->out_info;
-
-  sfinfo = in_info->finfo;
-  dfinfo = out_info->finfo;
-
-  if (sfinfo->unpack_func == NULL)
-    goto no_unpack_func;
-
-  if (dfinfo->pack_func == NULL)
-    goto no_pack_func;
-
-  suinfo = gst_video_format_get_info (sfinfo->unpack_format);
-  duinfo = gst_video_format_get_info (dfinfo->unpack_format);
-
-  convert->in_bits = GST_VIDEO_FORMAT_INFO_DEPTH (suinfo, 0);
-  convert->out_bits = GST_VIDEO_FORMAT_INFO_DEPTH (duinfo, 0);
-
-  GST_DEBUG ("in bits %d, out bits %d", convert->in_bits, convert->out_bits);
-
-  if (in_info->colorimetry.range == out_info->colorimetry.range &&
-      in_info->colorimetry.matrix == out_info->colorimetry.matrix) {
-    GST_DEBUG ("using identity color transform");
-    convert->matrix = NULL;
-    return TRUE;
-  }
-
-  /* calculate intermediate format for the matrix. When unpacking, we expand
-   * input to 16 when one of the inputs is 16 bits */
-  if (convert->in_bits == 16 || convert->out_bits == 16) {
-    convert->matrix = videoconvert_convert_matrix16;
-
-    if (GST_VIDEO_FORMAT_INFO_IS_RGB (suinfo))
-      suinfo = gst_video_format_get_info (GST_VIDEO_FORMAT_ARGB64);
-    else
-      suinfo = gst_video_format_get_info (GST_VIDEO_FORMAT_AYUV64);
-
-    if (GST_VIDEO_FORMAT_INFO_IS_RGB (duinfo))
-      duinfo = gst_video_format_get_info (GST_VIDEO_FORMAT_ARGB64);
-    else
-      duinfo = gst_video_format_get_info (GST_VIDEO_FORMAT_AYUV64);
-  } else {
-    convert->matrix = videoconvert_convert_matrix8;
-  }
-
-  color_matrix_set_identity (&dst);
-
-  /* 1, bring color components to [0..1.0] range */
-  gst_video_color_range_offsets (in_info->colorimetry.range, suinfo, offset,
-      scale);
-
-  color_matrix_offset_components (&dst, -offset[0], -offset[1], -offset[2]);
-
-  color_matrix_scale_components (&dst, 1 / ((float) scale[0]),
-      1 / ((float) scale[1]), 1 / ((float) scale[2]));
-
-  /* 2. bring components to R'G'B' space */
-  if (get_Kr_Kb (in_info->colorimetry.matrix, &Kr, &Kb))
-    color_matrix_YCbCr_to_RGB (&dst, Kr, Kb);
-
-  /* 3. inverse transfer function. R'G'B' to linear RGB */
-
-  /* 4. from RGB to XYZ using the primaries */
-
-  /* 5. from XYZ to RGB using the primaries */
-
-  /* 6. transfer function. linear RGB to R'G'B' */
-
-  /* 7. bring components to YCbCr space */
-  if (get_Kr_Kb (out_info->colorimetry.matrix, &Kr, &Kb))
-    color_matrix_RGB_to_YCbCr (&dst, Kr, Kb);
-
-  /* 8, bring color components to nominal range */
-  gst_video_color_range_offsets (out_info->colorimetry.range, duinfo, offset,
-      scale);
-
-  color_matrix_scale_components (&dst, (float) scale[0], (float) scale[1],
-      (float) scale[2]);
-
-  color_matrix_offset_components (&dst, offset[0], offset[1], offset[2]);
-
-  /* because we're doing fixed point matrix coefficients */
-  color_matrix_scale_components (&dst, SCALE_F, SCALE_F, SCALE_F);
-
-  for (i = 0; i < 4; i++)
-    for (j = 0; j < 4; j++)
-      convert->cmatrix[i][j] = rint (dst.m[i][j]);
-
-  GST_DEBUG ("[%6d %6d %6d %6d]", convert->cmatrix[0][0],
-      convert->cmatrix[0][1], convert->cmatrix[0][2], convert->cmatrix[0][3]);
-  GST_DEBUG ("[%6d %6d %6d %6d]", convert->cmatrix[1][0],
-      convert->cmatrix[1][1], convert->cmatrix[1][2], convert->cmatrix[1][3]);
-  GST_DEBUG ("[%6d %6d %6d %6d]", convert->cmatrix[2][0],
-      convert->cmatrix[2][1], convert->cmatrix[2][2], convert->cmatrix[2][3]);
-  GST_DEBUG ("[%6d %6d %6d %6d]", convert->cmatrix[3][0],
-      convert->cmatrix[3][1], convert->cmatrix[3][2], convert->cmatrix[3][3]);
-
-  return TRUE;
-
-  /* ERRORS */
-no_unpack_func:
-  {
-    GST_ERROR ("no unpack_func for format %s",
-        gst_video_format_to_string (GST_VIDEO_INFO_FORMAT (in_info)));
-    return FALSE;
-  }
-no_pack_func:
-  {
-    GST_ERROR ("no pack_func for format %s",
-        gst_video_format_to_string (GST_VIDEO_INFO_FORMAT (out_info)));
-    return FALSE;
-  }
-}
-
-static void
-videoconvert_dither_verterr (VideoConvert * convert, guint16 * pixels, int j)
-{
-  int i;
-  guint16 *errline = convert->errline;
-  unsigned int mask = 0xff;
-
-  for (i = 0; i < 4 * convert->width; i++) {
-    int x = pixels[i] + errline[i];
-    if (x > 65535)
-      x = 65535;
-    pixels[i] = x;
-    errline[i] = x & mask;
-  }
-}
-
-static void
-videoconvert_dither_halftone (VideoConvert * convert, guint16 * pixels, int j)
-{
-  int i;
-  static guint16 halftone[8][8] = {
-    {0, 128, 32, 160, 8, 136, 40, 168},
-    {192, 64, 224, 96, 200, 72, 232, 104},
-    {48, 176, 16, 144, 56, 184, 24, 152},
-    {240, 112, 208, 80, 248, 120, 216, 88},
-    {12, 240, 44, 172, 4, 132, 36, 164},
-    {204, 76, 236, 108, 196, 68, 228, 100},
-    {60, 188, 28, 156, 52, 180, 20, 148},
-    {252, 142, 220, 92, 244, 116, 212, 84}
-  };
-
-  for (i = 0; i < convert->width * 4; i++) {
-    int x;
-    x = pixels[i] + halftone[(i >> 2) & 7][j & 7];
-    if (x > 65535)
-      x = 65535;
-    pixels[i] = x;
-  }
-}
-
-static void
-alloc_tmplines (VideoConvert * convert, guint lines, gint width)
-{
-  gint i;
-
-  convert->n_tmplines = lines;
-  convert->tmplines = g_malloc (lines * sizeof (gpointer));
-  for (i = 0; i < lines; i++)
-    convert->tmplines[i] = g_malloc (sizeof (guint16) * (width + 8) * 4);
-}
-
-static gboolean
-videoconvert_convert_compute_resample (VideoConvert * convert)
-{
-  GstVideoInfo *in_info, *out_info;
-  const GstVideoFormatInfo *sfinfo, *dfinfo;
-  gint width;
-
-  in_info = &convert->in_info;
-  out_info = &convert->out_info;
-
-  sfinfo = in_info->finfo;
-  dfinfo = out_info->finfo;
-
-  width = convert->width;
-
-  if (sfinfo->w_sub[2] != dfinfo->w_sub[2] ||
-      sfinfo->h_sub[2] != dfinfo->h_sub[2] ||
-      in_info->chroma_site != out_info->chroma_site) {
-    convert->upsample = gst_video_chroma_resample_new (0,
-        in_info->chroma_site, 0, sfinfo->unpack_format, sfinfo->w_sub[2],
-        sfinfo->h_sub[2]);
-
-
-    convert->downsample = gst_video_chroma_resample_new (0,
-        out_info->chroma_site, 0, dfinfo->unpack_format, -dfinfo->w_sub[2],
-        -dfinfo->h_sub[2]);
-
-  } else {
-    convert->upsample = NULL;
-    convert->downsample = NULL;
-  }
-
-  if (convert->upsample) {
-    gst_video_chroma_resample_get_info (convert->upsample,
-        &convert->up_n_lines, &convert->up_offset);
-  } else {
-    convert->up_n_lines = 1;
-    convert->up_offset = 0;
-  }
-  if (convert->downsample) {
-    gst_video_chroma_resample_get_info (convert->downsample,
-        &convert->down_n_lines, &convert->down_offset);
-  } else {
-    convert->down_n_lines = 1;
-    convert->down_offset = 0;
-  }
-  GST_DEBUG ("upsample: %p, site: %d, offset %d, n_lines %d", convert->upsample,
-      in_info->chroma_site, convert->up_offset, convert->up_n_lines);
-  GST_DEBUG ("downsample: %p, site: %d, offset %d, n_lines %d",
-      convert->downsample, out_info->chroma_site, convert->down_offset,
-      convert->down_n_lines);
-
-  alloc_tmplines (convert, convert->down_n_lines + convert->up_n_lines, width);
-
-  return TRUE;
-}
-
-#define TO_16(x) (((x)<<8) | (x))
-
-static void
-convert_to16 (gpointer line, gint width)
-{
-  guint8 *line8 = line;
-  guint16 *line16 = line;
-  gint i;
-
-  for (i = (width - 1) * 4; i >= 0; i--)
-    line16[i] = TO_16 (line8[i]);
-}
-
-static void
-convert_to8 (gpointer line, gint width)
-{
-  guint8 *line8 = line;
-  guint16 *line16 = line;
-  gint i;
-
-  for (i = 0; i < width * 4; i++)
-    line8[i] = line16[i] >> 8;
-}
-
-#define UNPACK_FRAME(frame,dest,line,width)          \
-  frame->info.finfo->unpack_func (frame->info.finfo, \
-      (GST_VIDEO_FRAME_IS_INTERLACED (frame) ?       \
-        GST_VIDEO_PACK_FLAG_INTERLACED :             \
-        GST_VIDEO_PACK_FLAG_NONE),                   \
-      dest, frame->data, frame->info.stride, 0,      \
-      line, width)
-#define PACK_FRAME(frame,dest,line,width)            \
-  frame->info.finfo->pack_func (frame->info.finfo,   \
-      (GST_VIDEO_FRAME_IS_INTERLACED (frame) ?       \
-        GST_VIDEO_PACK_FLAG_INTERLACED :             \
-        GST_VIDEO_PACK_FLAG_NONE),                   \
-      dest, 0, frame->data, frame->info.stride,      \
-      frame->info.chroma_site, line, width);
-
-static void
-videoconvert_convert_generic (VideoConvert * convert, GstVideoFrame * dest,
-    const GstVideoFrame * src)
-{
-  int j, k;
-  gint width, height, lines, max_lines;
-  guint in_bits, out_bits;
-  gconstpointer pal;
-  gsize palsize;
-  guint up_n_lines, down_n_lines;
-  gint up_offset, down_offset;
-  gint in_lines, out_lines;
-  gint up_line, down_line;
-  gint start_offset, stop_offset;
-  gpointer in_tmplines[8];
-  gpointer out_tmplines[8];
-
-  height = convert->height;
-  width = convert->width;
-
-  in_bits = convert->in_bits;
-  out_bits = convert->out_bits;
-
-  lines = convert->lines;
-  up_n_lines = convert->up_n_lines;
-  up_offset = convert->up_offset;
-  down_n_lines = convert->down_n_lines;
-  down_offset = convert->down_offset;
-  max_lines = convert->n_tmplines;
-
-  in_lines = 0;
-  out_lines = 0;
-
-  GST_DEBUG ("up_offset %d, up_n_lines %u", up_offset, up_n_lines);
-
-  start_offset = MIN (up_offset, down_offset);
-  stop_offset = height + start_offset + MAX (up_n_lines, down_n_lines);
-
-  for (; start_offset < stop_offset; start_offset++) {
-    guint idx, start;
-
-    idx = CLAMP (start_offset, 0, height);
-    in_tmplines[in_lines] = convert->tmplines[idx % max_lines];
-    out_tmplines[out_lines] = in_tmplines[in_lines];
-    GST_DEBUG ("start_offset %d/%d, %d, idx %u, in %d, out %d", start_offset,
-        stop_offset, up_offset, idx, in_lines, out_lines);
-
-    up_line = up_offset + in_lines;
-
-    /* extract the next line */
-    if (up_line >= 0 && up_line < height) {
-      GST_DEBUG ("unpack line %d into %d", up_line, in_lines);
-      UNPACK_FRAME (src, in_tmplines[in_lines], up_line, width);
-    }
-
-    if (start_offset >= up_offset)
-      in_lines++;
-
-    if (start_offset >= down_offset)
-      out_lines++;
-
-    if (in_lines < up_n_lines)
-      continue;
-
-    in_lines = 0;
-
-    /* we have enough lines to upsample */
-    if (convert->upsample) {
-      GST_DEBUG ("doing upsample");
-      gst_video_chroma_resample (convert->upsample, in_tmplines, width);
-    }
-
-    /* convert upsampled lines */
-    for (k = 0; k < up_n_lines; k++) {
-      down_line = up_offset + k;
-
-      /* only takes lines with valid output */
-      if (down_line < 0 || down_line >= height)
-        continue;
-
-      GST_DEBUG ("handle line %d, %d/%d, down_line %d", k, out_lines,
-          down_n_lines, down_line);
-
-      if (out_bits == 16 || in_bits == 16) {
-        /* FIXME, we can scale in the conversion matrix */
-        if (in_bits == 8)
-          convert_to16 (in_tmplines[k], width);
-
-        if (convert->matrix)
-          convert->matrix (convert, in_tmplines[k]);
-        if (convert->dither16)
-          convert->dither16 (convert, in_tmplines[k], down_line);
-
-        if (out_bits == 8)
-          convert_to8 (in_tmplines[k], width);
-      } else {
-        if (convert->matrix)
-          convert->matrix (convert, in_tmplines[k]);
-      }
-    }
-
-    start = 0;
-    while (out_lines >= down_n_lines) {
-      if (convert->downsample) {
-        GST_DEBUG ("doing downsample %u", start);
-        gst_video_chroma_resample (convert->downsample,
-            &out_tmplines[start], width);
-      }
-
-      for (j = 0; j < down_n_lines; j += lines) {
-        idx = down_offset + j;
-
-        if (idx < height) {
-          GST_DEBUG ("packing line %d %d %d", j + start, down_offset, idx);
-          /* FIXME, not correct if lines > 1 */
-          PACK_FRAME (dest, out_tmplines[j + start], idx, width);
-        }
-      }
-      down_offset += down_n_lines;
-      start += down_n_lines;
-      out_lines -= down_n_lines;
-    }
-    /* we didn't process these lines, move them up for the next round */
-    for (j = 0; j < out_lines; j++) {
-      GST_DEBUG ("move line %d->%d", j + start, j);
-      out_tmplines[j] = out_tmplines[j + start];
-    }
-
-    up_offset += up_n_lines;
-  }
-  if ((pal =
-          gst_video_format_get_palette (GST_VIDEO_FRAME_FORMAT (dest),
-              &palsize))) {
-    memcpy (GST_VIDEO_FRAME_PLANE_DATA (dest, 1), pal, palsize);
-  }
-}
-
-#define FRAME_GET_PLANE_STRIDE(frame, plane) \
-  GST_VIDEO_FRAME_PLANE_STRIDE (frame, plane)
-#define FRAME_GET_PLANE_LINE(frame, plane, line) \
-  (gpointer)(((guint8*)(GST_VIDEO_FRAME_PLANE_DATA (frame, plane))) + \
-      FRAME_GET_PLANE_STRIDE (frame, plane) * (line))
-
-#define FRAME_GET_COMP_STRIDE(frame, comp) \
-  GST_VIDEO_FRAME_COMP_STRIDE (frame, comp)
-#define FRAME_GET_COMP_LINE(frame, comp, line) \
-  (gpointer)(((guint8*)(GST_VIDEO_FRAME_COMP_DATA (frame, comp))) + \
-      FRAME_GET_COMP_STRIDE (frame, comp) * (line))
-
-#define FRAME_GET_STRIDE(frame)      FRAME_GET_PLANE_STRIDE (frame, 0)
-#define FRAME_GET_LINE(frame,line)   FRAME_GET_PLANE_LINE (frame, 0, line)
-
-#define FRAME_GET_Y_LINE(frame,line) FRAME_GET_COMP_LINE(frame, GST_VIDEO_COMP_Y, line)
-#define FRAME_GET_U_LINE(frame,line) FRAME_GET_COMP_LINE(frame, GST_VIDEO_COMP_U, line)
-#define FRAME_GET_V_LINE(frame,line) FRAME_GET_COMP_LINE(frame, GST_VIDEO_COMP_V, line)
-#define FRAME_GET_A_LINE(frame,line) FRAME_GET_COMP_LINE(frame, GST_VIDEO_COMP_A, line)
-
-#define FRAME_GET_Y_STRIDE(frame)    FRAME_GET_COMP_STRIDE(frame, GST_VIDEO_COMP_Y)
-#define FRAME_GET_U_STRIDE(frame)    FRAME_GET_COMP_STRIDE(frame, GST_VIDEO_COMP_U)
-#define FRAME_GET_V_STRIDE(frame)    FRAME_GET_COMP_STRIDE(frame, GST_VIDEO_COMP_V)
-#define FRAME_GET_A_STRIDE(frame)    FRAME_GET_COMP_STRIDE(frame, GST_VIDEO_COMP_A)
-
-/* Fast paths */
-
-#define GET_LINE_OFFSETS(interlaced,line,l1,l2) \
-    if (interlaced) {                           \
-      l1 = (line & 2 ? line - 1 : line);        \
-      l2 = l1 + 2;                              \
-    } else {                                    \
-      l1 = line;                                \
-      l2 = l1 + 1;                              \
-    }
-
-
-static void
-convert_I420_YUY2 (VideoConvert * convert, GstVideoFrame * dest,
-    const GstVideoFrame * src)
-{
-  int i;
-  gint width = convert->width;
-  gint height = convert->height;
-  gboolean interlaced = GST_VIDEO_FRAME_IS_INTERLACED (src);
-  gint l1, l2;
-
-  for (i = 0; i < GST_ROUND_DOWN_2 (height); i += 2) {
-    GET_LINE_OFFSETS (interlaced, i, l1, l2);
-
-    video_convert_orc_convert_I420_YUY2 (FRAME_GET_LINE (dest, l1),
-        FRAME_GET_LINE (dest, l2),
-        FRAME_GET_Y_LINE (src, l1),
-        FRAME_GET_Y_LINE (src, l2),
-        FRAME_GET_U_LINE (src, i >> 1),
-        FRAME_GET_V_LINE (src, i >> 1), (width + 1) / 2);
-  }
-
-  /* now handle last line */
-  if (height & 1) {
-    UNPACK_FRAME (src, convert->tmplines[0], height - 1, width);
-    PACK_FRAME (dest, convert->tmplines[0], height - 1, width);
-  }
-}
-
-static void
-convert_I420_UYVY (VideoConvert * convert, GstVideoFrame * dest,
-    const GstVideoFrame * src)
-{
-  int i;
-  gint width = convert->width;
-  gint height = convert->height;
-  gboolean interlaced = GST_VIDEO_FRAME_IS_INTERLACED (src);
-  gint l1, l2;
-
-  for (i = 0; i < GST_ROUND_DOWN_2 (height); i += 2) {
-    GET_LINE_OFFSETS (interlaced, i, l1, l2);
-
-    video_convert_orc_convert_I420_UYVY (FRAME_GET_LINE (dest, l1),
-        FRAME_GET_LINE (dest, l2),
-        FRAME_GET_Y_LINE (src, l1),
-        FRAME_GET_Y_LINE (src, l2),
-        FRAME_GET_U_LINE (src, i >> 1),
-        FRAME_GET_V_LINE (src, i >> 1), (width + 1) / 2);
-  }
-
-  /* now handle last line */
-  if (height & 1) {
-    UNPACK_FRAME (src, convert->tmplines[0], height - 1, width);
-    PACK_FRAME (dest, convert->tmplines[0], height - 1, width);
-  }
-}
-
-static void
-convert_I420_AYUV (VideoConvert * convert, GstVideoFrame * dest,
-    const GstVideoFrame * src)
-{
-  int i;
-  gint width = convert->width;
-  gint height = convert->height;
-  gboolean interlaced = GST_VIDEO_FRAME_IS_INTERLACED (src);
-  gint l1, l2;
-
-  for (i = 0; i < GST_ROUND_DOWN_2 (height); i += 2) {
-    GET_LINE_OFFSETS (interlaced, i, l1, l2);
-
-    video_convert_orc_convert_I420_AYUV (FRAME_GET_LINE (dest, l1),
-        FRAME_GET_LINE (dest, l2),
-        FRAME_GET_Y_LINE (src, l1),
-        FRAME_GET_Y_LINE (src, l2),
-        FRAME_GET_U_LINE (src, i >> 1), FRAME_GET_V_LINE (src, i >> 1), width);
-  }
-
-  /* now handle last line */
-  if (height & 1) {
-    UNPACK_FRAME (src, convert->tmplines[0], height - 1, width);
-    PACK_FRAME (dest, convert->tmplines[0], height - 1, width);
-  }
-}
-
-static void
-convert_I420_Y42B (VideoConvert * convert, GstVideoFrame * dest,
-    const GstVideoFrame * src)
-{
-  gint width = convert->width;
-  gint height = convert->height;
-
-  video_convert_orc_memcpy_2d (FRAME_GET_Y_LINE (dest, 0),
-      FRAME_GET_Y_STRIDE (dest), FRAME_GET_Y_LINE (src, 0),
-      FRAME_GET_Y_STRIDE (src), width, height);
-
-  video_convert_orc_planar_chroma_420_422 (FRAME_GET_U_LINE (dest, 0),
-      2 * FRAME_GET_U_STRIDE (dest), FRAME_GET_U_LINE (dest, 1),
-      2 * FRAME_GET_U_STRIDE (dest), FRAME_GET_U_LINE (src, 0),
-      FRAME_GET_U_STRIDE (src), (width + 1) / 2, height / 2);
-
-  video_convert_orc_planar_chroma_420_422 (FRAME_GET_V_LINE (dest, 0),
-      2 * FRAME_GET_V_STRIDE (dest), FRAME_GET_V_LINE (dest, 1),
-      2 * FRAME_GET_V_STRIDE (dest), FRAME_GET_V_LINE (src, 0),
-      FRAME_GET_V_STRIDE (src), (width + 1) / 2, height / 2);
-}
-
-static void
-convert_I420_Y444 (VideoConvert * convert, GstVideoFrame * dest,
-    const GstVideoFrame * src)
-{
-  gint width = convert->width;
-  gint height = convert->height;
-
-  video_convert_orc_memcpy_2d (FRAME_GET_Y_LINE (dest, 0),
-      FRAME_GET_Y_STRIDE (dest), FRAME_GET_Y_LINE (src, 0),
-      FRAME_GET_Y_STRIDE (src), width, height);
-
-  video_convert_orc_planar_chroma_420_444 (FRAME_GET_U_LINE (dest, 0),
-      2 * FRAME_GET_U_STRIDE (dest), FRAME_GET_U_LINE (dest, 1),
-      2 * FRAME_GET_U_STRIDE (dest), FRAME_GET_U_LINE (src, 0),
-      FRAME_GET_U_STRIDE (src), (width + 1) / 2, height / 2);
-
-  video_convert_orc_planar_chroma_420_444 (FRAME_GET_V_LINE (dest, 0),
-      2 * FRAME_GET_V_STRIDE (dest), FRAME_GET_V_LINE (dest, 1),
-      2 * FRAME_GET_V_STRIDE (dest), FRAME_GET_V_LINE (src, 0),
-      FRAME_GET_V_STRIDE (src), (width + 1) / 2, height / 2);
-
-  /* now handle last line */
-  if (height & 1) {
-    UNPACK_FRAME (src, convert->tmplines[0], height - 1, width);
-    PACK_FRAME (dest, convert->tmplines[0], height - 1, width);
-  }
-}
-
-static void
-convert_YUY2_I420 (VideoConvert * convert, GstVideoFrame * dest,
-    const GstVideoFrame * src)
-{
-  int i;
-  gint width = convert->width;
-  gint height = convert->height;
-  gboolean interlaced = GST_VIDEO_FRAME_IS_INTERLACED (src);
-  gint l1, l2;
-
-  for (i = 0; i < GST_ROUND_DOWN_2 (height); i += 2) {
-    GET_LINE_OFFSETS (interlaced, i, l1, l2);
-
-    video_convert_orc_convert_YUY2_I420 (FRAME_GET_Y_LINE (dest, l1),
-        FRAME_GET_Y_LINE (dest, l2),
-        FRAME_GET_U_LINE (dest, i >> 1),
-        FRAME_GET_V_LINE (dest, i >> 1),
-        FRAME_GET_LINE (src, l1), FRAME_GET_LINE (src, l2), (width + 1) / 2);
-  }
-
-  /* now handle last line */
-  if (height & 1) {
-    UNPACK_FRAME (src, convert->tmplines[0], height - 1, width);
-    PACK_FRAME (dest, convert->tmplines[0], height - 1, width);
-  }
-}
-
-static void
-convert_YUY2_AYUV (VideoConvert * convert, GstVideoFrame * dest,
-    const GstVideoFrame * src)
-{
-  gint width = convert->width;
-  gint height = convert->height;
-
-  video_convert_orc_convert_YUY2_AYUV (FRAME_GET_LINE (dest, 0),
-      FRAME_GET_STRIDE (dest), FRAME_GET_LINE (src, 0),
-      FRAME_GET_STRIDE (src), (width + 1) / 2, height);
-}
-
-static void
-convert_YUY2_Y42B (VideoConvert * convert, GstVideoFrame * dest,
-    const GstVideoFrame * src)
-{
-  gint width = convert->width;
-  gint height = convert->height;
-
-  video_convert_orc_convert_YUY2_Y42B (FRAME_GET_Y_LINE (dest, 0),
-      FRAME_GET_Y_STRIDE (dest), FRAME_GET_U_LINE (dest, 0),
-      FRAME_GET_U_STRIDE (dest), FRAME_GET_V_LINE (dest, 0),
-      FRAME_GET_V_STRIDE (dest), FRAME_GET_LINE (src, 0),
-      FRAME_GET_STRIDE (src), (width + 1) / 2, height);
-}
-
-static void
-convert_YUY2_Y444 (VideoConvert * convert, GstVideoFrame * dest,
-    const GstVideoFrame * src)
-{
-  gint width = convert->width;
-  gint height = convert->height;
-
-  video_convert_orc_convert_YUY2_Y444 (FRAME_GET_COMP_LINE (dest, 0, 0),
-      FRAME_GET_COMP_STRIDE (dest, 0), FRAME_GET_COMP_LINE (dest, 1, 0),
-      FRAME_GET_COMP_STRIDE (dest, 1), FRAME_GET_COMP_LINE (dest, 2, 0),
-      FRAME_GET_COMP_STRIDE (dest, 2), FRAME_GET_LINE (src, 0),
-      FRAME_GET_STRIDE (src), (width + 1) / 2, height);
-}
-
-
-static void
-convert_UYVY_I420 (VideoConvert * convert, GstVideoFrame * dest,
-    const GstVideoFrame * src)
-{
-  int i;
-  gint width = convert->width;
-  gint height = convert->height;
-  gboolean interlaced = GST_VIDEO_FRAME_IS_INTERLACED (src);
-  gint l1, l2;
-
-  for (i = 0; i < GST_ROUND_DOWN_2 (height); i += 2) {
-    GET_LINE_OFFSETS (interlaced, i, l1, l2);
-
-    video_convert_orc_convert_UYVY_I420 (FRAME_GET_COMP_LINE (dest, 0, l1),
-        FRAME_GET_COMP_LINE (dest, 0, l2),
-        FRAME_GET_COMP_LINE (dest, 1, i >> 1),
-        FRAME_GET_COMP_LINE (dest, 2, i >> 1),
-        FRAME_GET_LINE (src, l1), FRAME_GET_LINE (src, l2), (width + 1) / 2);
-  }
-
-  /* now handle last line */
-  if (height & 1) {
-    UNPACK_FRAME (src, convert->tmplines[0], height - 1, width);
-    PACK_FRAME (dest, convert->tmplines[0], height - 1, width);
-  }
-}
-
-static void
-convert_UYVY_AYUV (VideoConvert * convert, GstVideoFrame * dest,
-    const GstVideoFrame * src)
-{
-  gint width = convert->width;
-  gint height = convert->height;
-
-  video_convert_orc_convert_UYVY_AYUV (FRAME_GET_LINE (dest, 0),
-      FRAME_GET_STRIDE (dest), FRAME_GET_LINE (src, 0),
-      FRAME_GET_STRIDE (src), (width + 1) / 2, height);
-}
-
-static void
-convert_UYVY_YUY2 (VideoConvert * convert, GstVideoFrame * dest,
-    const GstVideoFrame * src)
-{
-  gint width = convert->width;
-  gint height = convert->height;
-
-  video_convert_orc_convert_UYVY_YUY2 (FRAME_GET_LINE (dest, 0),
-      FRAME_GET_STRIDE (dest), FRAME_GET_LINE (src, 0),
-      FRAME_GET_STRIDE (src), (width + 1) / 2, height);
-}
-
-static void
-convert_UYVY_Y42B (VideoConvert * convert, GstVideoFrame * dest,
-    const GstVideoFrame * src)
-{
-  gint width = convert->width;
-  gint height = convert->height;
-
-  video_convert_orc_convert_UYVY_Y42B (FRAME_GET_Y_LINE (dest, 0),
-      FRAME_GET_Y_STRIDE (dest), FRAME_GET_U_LINE (dest, 0),
-      FRAME_GET_U_STRIDE (dest), FRAME_GET_V_LINE (dest, 0),
-      FRAME_GET_V_STRIDE (dest), FRAME_GET_LINE (src, 0),
-      FRAME_GET_STRIDE (src), (width + 1) / 2, height);
-}
-
-static void
-convert_UYVY_Y444 (VideoConvert * convert, GstVideoFrame * dest,
-    const GstVideoFrame * src)
-{
-  gint width = convert->width;
-  gint height = convert->height;
-
-  video_convert_orc_convert_UYVY_Y444 (FRAME_GET_Y_LINE (dest, 0),
-      FRAME_GET_Y_STRIDE (dest), FRAME_GET_U_LINE (dest, 0),
-      FRAME_GET_U_STRIDE (dest), FRAME_GET_V_LINE (dest, 0),
-      FRAME_GET_V_STRIDE (dest), FRAME_GET_LINE (src, 0),
-      FRAME_GET_STRIDE (src), (width + 1) / 2, height);
-}
-
-static void
-convert_AYUV_I420 (VideoConvert * convert, GstVideoFrame * dest,
-    const GstVideoFrame * src)
-{
-  gint width = convert->width;
-  gint height = convert->height;
-
-  /* only for even width/height */
-  video_convert_orc_convert_AYUV_I420 (FRAME_GET_Y_LINE (dest, 0),
-      2 * FRAME_GET_Y_STRIDE (dest), FRAME_GET_Y_LINE (dest, 1),
-      2 * FRAME_GET_Y_STRIDE (dest), FRAME_GET_U_LINE (dest, 0),
-      FRAME_GET_U_STRIDE (dest), FRAME_GET_V_LINE (dest, 0),
-      FRAME_GET_V_STRIDE (dest), FRAME_GET_LINE (src, 0),
-      2 * FRAME_GET_STRIDE (src), FRAME_GET_LINE (src, 1),
-      2 * FRAME_GET_STRIDE (src), width / 2, height / 2);
-}
-
-static void
-convert_AYUV_YUY2 (VideoConvert * convert, GstVideoFrame * dest,
-    const GstVideoFrame * src)
-{
-  gint width = convert->width;
-  gint height = convert->height;
-
-  /* only for even width */
-  video_convert_orc_convert_AYUV_YUY2 (FRAME_GET_LINE (dest, 0),
-      FRAME_GET_STRIDE (dest), FRAME_GET_LINE (src, 0),
-      FRAME_GET_STRIDE (src), width / 2, height);
-}
-
-static void
-convert_AYUV_UYVY (VideoConvert * convert, GstVideoFrame * dest,
-    const GstVideoFrame * src)
-{
-  gint width = convert->width;
-  gint height = convert->height;
-
-  /* only for even width */
-  video_convert_orc_convert_AYUV_UYVY (FRAME_GET_LINE (dest, 0),
-      FRAME_GET_STRIDE (dest), FRAME_GET_LINE (src, 0),
-      FRAME_GET_STRIDE (src), width / 2, height);
-}
-
-static void
-convert_AYUV_Y42B (VideoConvert * convert, GstVideoFrame * dest,
-    const GstVideoFrame * src)
-{
-  gint width = convert->width;
-  gint height = convert->height;
-
-  /* only works for even width */
-  video_convert_orc_convert_AYUV_Y42B (FRAME_GET_Y_LINE (dest, 0),
-      FRAME_GET_Y_STRIDE (dest), FRAME_GET_U_LINE (dest, 0),
-      FRAME_GET_U_STRIDE (dest), FRAME_GET_V_LINE (dest, 0),
-      FRAME_GET_V_STRIDE (dest), FRAME_GET_LINE (src, 0),
-      FRAME_GET_STRIDE (src), width / 2, height);
-}
-
-static void
-convert_AYUV_Y444 (VideoConvert * convert, GstVideoFrame * dest,
-    const GstVideoFrame * src)
-{
-  gint width = convert->width;
-  gint height = convert->height;
-
-  video_convert_orc_convert_AYUV_Y444 (FRAME_GET_Y_LINE (dest, 0),
-      FRAME_GET_Y_STRIDE (dest), FRAME_GET_U_LINE (dest, 0),
-      FRAME_GET_U_STRIDE (dest), FRAME_GET_V_LINE (dest, 0),
-      FRAME_GET_V_STRIDE (dest), FRAME_GET_LINE (src, 0),
-      FRAME_GET_STRIDE (src), width, height);
-}
-
-static void
-convert_Y42B_I420 (VideoConvert * convert, GstVideoFrame * dest,
-    const GstVideoFrame * src)
-{
-  gint width = convert->width;
-  gint height = convert->height;
-
-  video_convert_orc_memcpy_2d (FRAME_GET_Y_LINE (dest, 0),
-      FRAME_GET_Y_STRIDE (dest), FRAME_GET_Y_LINE (src, 0),
-      FRAME_GET_Y_STRIDE (src), width, height);
-
-  video_convert_orc_planar_chroma_422_420 (FRAME_GET_U_LINE (dest, 0),
-      FRAME_GET_U_STRIDE (dest), FRAME_GET_U_LINE (src, 0),
-      2 * FRAME_GET_U_STRIDE (src), FRAME_GET_U_LINE (src, 1),
-      2 * FRAME_GET_U_STRIDE (src), (width + 1) / 2, height / 2);
-
-  video_convert_orc_planar_chroma_422_420 (FRAME_GET_V_LINE (dest, 0),
-      FRAME_GET_V_STRIDE (dest), FRAME_GET_V_LINE (src, 0),
-      2 * FRAME_GET_V_STRIDE (src), FRAME_GET_V_LINE (src, 1),
-      2 * FRAME_GET_V_STRIDE (src), (width + 1) / 2, height / 2);
-
-  /* now handle last line */
-  if (height & 1) {
-    UNPACK_FRAME (src, convert->tmplines[0], height - 1, width);
-    PACK_FRAME (dest, convert->tmplines[0], height - 1, width);
-  }
-}
-
-static void
-convert_Y42B_Y444 (VideoConvert * convert, GstVideoFrame * dest,
-    const GstVideoFrame * src)
-{
-  gint width = convert->width;
-  gint height = convert->height;
-
-  video_convert_orc_memcpy_2d (FRAME_GET_Y_LINE (dest, 0),
-      FRAME_GET_Y_STRIDE (dest), FRAME_GET_Y_LINE (src, 0),
-      FRAME_GET_Y_STRIDE (src), width, height);
-
-  video_convert_orc_planar_chroma_422_444 (FRAME_GET_U_LINE (dest, 0),
-      FRAME_GET_U_STRIDE (dest), FRAME_GET_U_LINE (src, 0),
-      FRAME_GET_U_STRIDE (src), (width + 1) / 2, height);
-
-  video_convert_orc_planar_chroma_422_444 (FRAME_GET_V_LINE (dest, 0),
-      FRAME_GET_V_STRIDE (dest), FRAME_GET_V_LINE (src, 0),
-      FRAME_GET_V_STRIDE (src), (width + 1) / 2, height);
-}
-
-static void
-convert_Y42B_YUY2 (VideoConvert * convert, GstVideoFrame * dest,
-    const GstVideoFrame * src)
-{
-  gint width = convert->width;
-  gint height = convert->height;
-
-  video_convert_orc_convert_Y42B_YUY2 (FRAME_GET_LINE (dest, 0),
-      FRAME_GET_STRIDE (dest), FRAME_GET_Y_LINE (src, 0),
-      FRAME_GET_Y_STRIDE (src), FRAME_GET_U_LINE (src, 0),
-      FRAME_GET_U_STRIDE (src), FRAME_GET_V_LINE (src, 0),
-      FRAME_GET_V_STRIDE (src), (width + 1) / 2, height);
-}
-
-static void
-convert_Y42B_UYVY (VideoConvert * convert, GstVideoFrame * dest,
-    const GstVideoFrame * src)
-{
-  gint width = convert->width;
-  gint height = convert->height;
-
-  video_convert_orc_convert_Y42B_UYVY (FRAME_GET_LINE (dest, 0),
-      FRAME_GET_STRIDE (dest), FRAME_GET_Y_LINE (src, 0),
-      FRAME_GET_Y_STRIDE (src), FRAME_GET_U_LINE (src, 0),
-      FRAME_GET_U_STRIDE (src), FRAME_GET_V_LINE (src, 0),
-      FRAME_GET_V_STRIDE (src), (width + 1) / 2, height);
-}
-
-static void
-convert_Y42B_AYUV (VideoConvert * convert, GstVideoFrame * dest,
-    const GstVideoFrame * src)
-{
-  gint width = convert->width;
-  gint height = convert->height;
-
-  /* only for even width */
-  video_convert_orc_convert_Y42B_AYUV (FRAME_GET_LINE (dest, 0),
-      FRAME_GET_STRIDE (dest), FRAME_GET_Y_LINE (src, 0),
-      FRAME_GET_Y_STRIDE (src), FRAME_GET_U_LINE (src, 0),
-      FRAME_GET_U_STRIDE (src), FRAME_GET_V_LINE (src, 0),
-      FRAME_GET_V_STRIDE (src), width / 2, height);
-}
-
-static void
-convert_Y444_I420 (VideoConvert * convert, GstVideoFrame * dest,
-    const GstVideoFrame * src)
-{
-  gint width = convert->width;
-  gint height = convert->height;
-
-  video_convert_orc_memcpy_2d (FRAME_GET_Y_LINE (dest, 0),
-      FRAME_GET_Y_STRIDE (dest), FRAME_GET_Y_LINE (src, 0),
-      FRAME_GET_Y_STRIDE (src), width, height);
-
-  video_convert_orc_planar_chroma_444_420 (FRAME_GET_U_LINE (dest, 0),
-      FRAME_GET_U_STRIDE (dest), FRAME_GET_U_LINE (src, 0),
-      2 * FRAME_GET_U_STRIDE (src), FRAME_GET_U_LINE (src, 1),
-      2 * FRAME_GET_U_STRIDE (src), width / 2, height / 2);
-
-  video_convert_orc_planar_chroma_444_420 (FRAME_GET_V_LINE (dest, 0),
-      FRAME_GET_V_STRIDE (dest), FRAME_GET_V_LINE (src, 0),
-      2 * FRAME_GET_V_STRIDE (src), FRAME_GET_V_LINE (src, 1),
-      2 * FRAME_GET_V_STRIDE (src), width / 2, height / 2);
-
-  /* now handle last line */
-  if (height & 1) {
-    UNPACK_FRAME (src, convert->tmplines[0], height - 1, width);
-    PACK_FRAME (dest, convert->tmplines[0], height - 1, width);
-  }
-}
-
-static void
-convert_Y444_Y42B (VideoConvert * convert, GstVideoFrame * dest,
-    const GstVideoFrame * src)
-{
-  gint width = convert->width;
-  gint height = convert->height;
-
-  video_convert_orc_memcpy_2d (FRAME_GET_Y_LINE (dest, 0),
-      FRAME_GET_Y_STRIDE (dest), FRAME_GET_Y_LINE (src, 0),
-      FRAME_GET_Y_STRIDE (src), width, height);
-
-  video_convert_orc_planar_chroma_444_422 (FRAME_GET_U_LINE (dest, 0),
-      FRAME_GET_U_STRIDE (dest), FRAME_GET_U_LINE (src, 0),
-      FRAME_GET_U_STRIDE (src), width / 2, height);
-
-  video_convert_orc_planar_chroma_444_422 (FRAME_GET_V_LINE (dest, 0),
-      FRAME_GET_V_STRIDE (dest), FRAME_GET_V_LINE (src, 0),
-      FRAME_GET_V_STRIDE (src), width / 2, height);
-}
-
-static void
-convert_Y444_YUY2 (VideoConvert * convert, GstVideoFrame * dest,
-    const GstVideoFrame * src)
-{
-  gint width = convert->width;
-  gint height = convert->height;
-
-  video_convert_orc_convert_Y444_YUY2 (FRAME_GET_LINE (dest, 0),
-      FRAME_GET_STRIDE (dest), FRAME_GET_Y_LINE (src, 0),
-      FRAME_GET_Y_STRIDE (src), FRAME_GET_U_LINE (src, 0),
-      FRAME_GET_U_STRIDE (src), FRAME_GET_V_LINE (src, 0),
-      FRAME_GET_V_STRIDE (src), width / 2, height);
-}
-
-static void
-convert_Y444_UYVY (VideoConvert * convert, GstVideoFrame * dest,
-    const GstVideoFrame * src)
-{
-  gint width = convert->width;
-  gint height = convert->height;
-
-  video_convert_orc_convert_Y444_UYVY (FRAME_GET_LINE (dest, 0),
-      FRAME_GET_STRIDE (dest), FRAME_GET_Y_LINE (src, 0),
-      FRAME_GET_Y_STRIDE (src), FRAME_GET_U_LINE (src, 0),
-      FRAME_GET_U_STRIDE (src), FRAME_GET_V_LINE (src, 0),
-      FRAME_GET_V_STRIDE (src), width / 2, height);
-}
-
-static void
-convert_Y444_AYUV (VideoConvert * convert, GstVideoFrame * dest,
-    const GstVideoFrame * src)
-{
-  gint width = convert->width;
-  gint height = convert->height;
-
-  video_convert_orc_convert_Y444_AYUV (FRAME_GET_LINE (dest, 0),
-      FRAME_GET_STRIDE (dest), FRAME_GET_Y_LINE (src, 0),
-      FRAME_GET_Y_STRIDE (src), FRAME_GET_U_LINE (src, 0),
-      FRAME_GET_U_STRIDE (src), FRAME_GET_V_LINE (src, 0),
-      FRAME_GET_V_STRIDE (src), width, height);
-}
-
-#if G_BYTE_ORDER == G_LITTLE_ENDIAN
-static void
-convert_AYUV_ARGB (VideoConvert * convert, GstVideoFrame * dest,
-    const GstVideoFrame * src)
-{
-  gint width = convert->width;
-  gint height = convert->height;
-
-  video_convert_orc_convert_AYUV_ARGB (FRAME_GET_LINE (dest, 0),
-      FRAME_GET_STRIDE (dest), FRAME_GET_LINE (src, 0),
-      FRAME_GET_STRIDE (src), convert->cmatrix[0][0], convert->cmatrix[0][2],
-      convert->cmatrix[2][1], convert->cmatrix[1][1], convert->cmatrix[1][2],
-      width, height);
-}
-
-static void
-convert_AYUV_BGRA (VideoConvert * convert, GstVideoFrame * dest,
-    const GstVideoFrame * src)
-{
-  gint width = convert->width;
-  gint height = convert->height;
-
-  video_convert_orc_convert_AYUV_BGRA (FRAME_GET_LINE (dest, 0),
-      FRAME_GET_STRIDE (dest), FRAME_GET_LINE (src, 0),
-      FRAME_GET_STRIDE (src), convert->cmatrix[0][0], convert->cmatrix[0][2],
-      convert->cmatrix[2][1], convert->cmatrix[1][1], convert->cmatrix[1][2],
-      width, height);
-}
-
-static void
-convert_AYUV_ABGR (VideoConvert * convert, GstVideoFrame * dest,
-    const GstVideoFrame * src)
-{
-  gint width = convert->width;
-  gint height = convert->height;
-
-  video_convert_orc_convert_AYUV_ABGR (FRAME_GET_LINE (dest, 0),
-      FRAME_GET_STRIDE (dest), FRAME_GET_LINE (src, 0),
-      FRAME_GET_STRIDE (src), convert->cmatrix[0][0], convert->cmatrix[0][2],
-      convert->cmatrix[2][1], convert->cmatrix[1][1], convert->cmatrix[1][2],
-      width, height);
-}
-
-static void
-convert_AYUV_RGBA (VideoConvert * convert, GstVideoFrame * dest,
-    const GstVideoFrame * src)
-{
-  gint width = convert->width;
-  gint height = convert->height;
-
-  video_convert_orc_convert_AYUV_RGBA (FRAME_GET_LINE (dest, 0),
-      FRAME_GET_STRIDE (dest), FRAME_GET_LINE (src, 0),
-      FRAME_GET_STRIDE (src), convert->cmatrix[0][0], convert->cmatrix[0][2],
-      convert->cmatrix[2][1], convert->cmatrix[1][1], convert->cmatrix[1][2],
-      width, height);
-}
-
-static void
-convert_I420_BGRA (VideoConvert * convert, GstVideoFrame * dest,
-    const GstVideoFrame * src)
-{
-  int i;
-  gint width = convert->width;
-  gint height = convert->height;
-
-  for (i = 0; i < height; i++) {
-    video_convert_orc_convert_I420_BGRA (FRAME_GET_LINE (dest, i),
-        FRAME_GET_Y_LINE (src, i),
-        FRAME_GET_U_LINE (src, i >> 1), FRAME_GET_V_LINE (src, i >> 1),
-        convert->cmatrix[0][0], convert->cmatrix[0][2],
-        convert->cmatrix[2][1], convert->cmatrix[1][1], convert->cmatrix[1][2],
-        width);
-  }
-}
-#endif
-
-
-
-/* Fast paths */
-
-typedef struct
-{
-  GstVideoFormat in_format;
-  GstVideoColorMatrix in_matrix;
-  GstVideoFormat out_format;
-  GstVideoColorMatrix out_matrix;
-  gboolean keeps_color_matrix;
-  gboolean keeps_interlaced;
-  gboolean needs_color_matrix;
-  gint width_align, height_align;
-  void (*convert) (VideoConvert * convert, GstVideoFrame * dest,
-      const GstVideoFrame * src);
-} VideoTransform;
-
-static const VideoTransform transforms[] = {
-  {GST_VIDEO_FORMAT_I420, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_YUY2,
-        GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, FALSE, 0, 0,
-      convert_I420_YUY2},
-  {GST_VIDEO_FORMAT_I420, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_UYVY,
-        GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, FALSE, 0, 0,
-      convert_I420_UYVY},
-  {GST_VIDEO_FORMAT_I420, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_AYUV,
-        GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, FALSE, 0, 0,
-      convert_I420_AYUV},
-  {GST_VIDEO_FORMAT_I420, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_Y42B,
-        GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, FALSE, FALSE, 0, 0,
-      convert_I420_Y42B},
-  {GST_VIDEO_FORMAT_I420, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_Y444,
-        GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, FALSE, FALSE, 0, 0,
-      convert_I420_Y444},
-
-  {GST_VIDEO_FORMAT_YV12, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_YUY2,
-        GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, FALSE, 0, 0,
-      convert_I420_YUY2},
-  {GST_VIDEO_FORMAT_YV12, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_UYVY,
-        GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, FALSE, 0, 0,
-      convert_I420_UYVY},
-  {GST_VIDEO_FORMAT_YV12, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_AYUV,
-        GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, FALSE, 0, 0,
-      convert_I420_AYUV},
-  {GST_VIDEO_FORMAT_YV12, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_Y42B,
-        GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, FALSE, FALSE, 0, 0,
-      convert_I420_Y42B},
-  {GST_VIDEO_FORMAT_YV12, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_Y444,
-        GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, FALSE, FALSE, 0, 0,
-      convert_I420_Y444},
-
-  {GST_VIDEO_FORMAT_YUY2, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_I420,
-        GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, FALSE, 0, 0,
-      convert_YUY2_I420},
-  {GST_VIDEO_FORMAT_YUY2, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_YV12,
-        GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, FALSE, 0, 0,
-      convert_YUY2_I420},
-  {GST_VIDEO_FORMAT_YUY2, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_UYVY,
-      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, FALSE, 0, 0, convert_UYVY_YUY2},      /* alias */
-  {GST_VIDEO_FORMAT_YUY2, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_AYUV,
-        GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, FALSE, 0, 0,
-      convert_YUY2_AYUV},
-  {GST_VIDEO_FORMAT_YUY2, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_Y42B,
-        GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, FALSE, 0, 0,
-      convert_YUY2_Y42B},
-  {GST_VIDEO_FORMAT_YUY2, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_Y444,
-        GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, FALSE, 0, 0,
-      convert_YUY2_Y444},
-
-  {GST_VIDEO_FORMAT_UYVY, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_I420,
-        GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, FALSE, 0, 0,
-      convert_UYVY_I420},
-  {GST_VIDEO_FORMAT_UYVY, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_YV12,
-        GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, FALSE, 0, 0,
-      convert_UYVY_I420},
-  {GST_VIDEO_FORMAT_UYVY, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_YUY2,
-        GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, FALSE, 0, 0,
-      convert_UYVY_YUY2},
-  {GST_VIDEO_FORMAT_UYVY, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_AYUV,
-        GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, FALSE, 0, 0,
-      convert_UYVY_AYUV},
-  {GST_VIDEO_FORMAT_UYVY, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_Y42B,
-        GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, FALSE, 0, 0,
-      convert_UYVY_Y42B},
-  {GST_VIDEO_FORMAT_UYVY, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_Y444,
-        GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, FALSE, 0, 0,
-      convert_UYVY_Y444},
-
-  {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_I420,
-        GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, FALSE, FALSE, 1, 1,
-      convert_AYUV_I420},
-  {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_YV12,
-        GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, FALSE, FALSE, 1, 1,
-      convert_AYUV_I420},
-  {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_YUY2,
-        GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, FALSE, 1, 0,
-      convert_AYUV_YUY2},
-  {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_UYVY,
-        GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, FALSE, 1, 0,
-      convert_AYUV_UYVY},
-  {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_Y42B,
-        GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, FALSE, 1, 0,
-      convert_AYUV_Y42B},
-  {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_Y444,
-        GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, FALSE, 0, 0,
-      convert_AYUV_Y444},
-
-  {GST_VIDEO_FORMAT_Y42B, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_I420,
-        GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, FALSE, FALSE, 0, 0,
-      convert_Y42B_I420},
-  {GST_VIDEO_FORMAT_Y42B, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_YV12,
-        GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, FALSE, FALSE, 0, 0,
-      convert_Y42B_I420},
-  {GST_VIDEO_FORMAT_Y42B, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_YUY2,
-        GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, FALSE, 0, 0,
-      convert_Y42B_YUY2},
-  {GST_VIDEO_FORMAT_Y42B, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_UYVY,
-        GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, FALSE, 0, 0,
-      convert_Y42B_UYVY},
-  {GST_VIDEO_FORMAT_Y42B, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_AYUV,
-        GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, FALSE, 1, 0,
-      convert_Y42B_AYUV},
-  {GST_VIDEO_FORMAT_Y42B, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_Y444,
-        GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, FALSE, 0, 0,
-      convert_Y42B_Y444},
-
-  {GST_VIDEO_FORMAT_Y444, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_I420,
-        GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, FALSE, FALSE, 1, 0,
-      convert_Y444_I420},
-  {GST_VIDEO_FORMAT_Y444, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_YV12,
-        GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, FALSE, FALSE, 1, 0,
-      convert_Y444_I420},
-  {GST_VIDEO_FORMAT_Y444, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_YUY2,
-        GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, FALSE, 1, 0,
-      convert_Y444_YUY2},
-  {GST_VIDEO_FORMAT_Y444, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_UYVY,
-        GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, FALSE, 1, 0,
-      convert_Y444_UYVY},
-  {GST_VIDEO_FORMAT_Y444, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_AYUV,
-        GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, FALSE, 0, 0,
-      convert_Y444_AYUV},
-  {GST_VIDEO_FORMAT_Y444, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_Y42B,
-        GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, FALSE, 1, 0,
-      convert_Y444_Y42B},
-
-#if G_BYTE_ORDER == G_LITTLE_ENDIAN
-  {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_ARGB,
-        GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, TRUE, 0, 0,
-      convert_AYUV_ARGB},
-  {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_BGRA,
-        GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, TRUE, 0, 0,
-      convert_AYUV_BGRA},
-  {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_xRGB,
-      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, TRUE, 0, 0, convert_AYUV_ARGB},       /* alias */
-  {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_BGRx,
-      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, TRUE, 0, 0, convert_AYUV_BGRA},       /* alias */
-  {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_ABGR,
-        GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, TRUE, 0, 0,
-      convert_AYUV_ABGR},
-  {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_RGBA,
-        GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, TRUE, 0, 0,
-      convert_AYUV_RGBA},
-  {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_xBGR,
-      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, TRUE, 0, 0, convert_AYUV_ABGR},       /* alias */
-  {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_RGBx,
-      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, TRUE, 0, 0, convert_AYUV_RGBA},       /* alias */
-
-  {GST_VIDEO_FORMAT_I420, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_BGRA,
-        GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, FALSE, TRUE, 0, 0,
-      convert_I420_BGRA},
-  {GST_VIDEO_FORMAT_I420, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_BGRx,
-        GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, FALSE, TRUE, 0, 0,
-      convert_I420_BGRA},
-  {GST_VIDEO_FORMAT_YV12, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_BGRA,
-        GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, FALSE, TRUE, 0, 0,
-      convert_I420_BGRA},
-  {GST_VIDEO_FORMAT_YV12, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_BGRx,
-        GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, FALSE, TRUE, 0, 0,
-      convert_I420_BGRA},
-#endif
-};
-
-static gboolean
-videoconvert_convert_lookup_fastpath (VideoConvert * convert)
-{
-  int i;
-  GstVideoFormat in_format, out_format;
-  GstVideoColorMatrix in_matrix, out_matrix;
-  gboolean interlaced;
-  gint width, height;
-
-  in_format = GST_VIDEO_INFO_FORMAT (&convert->in_info);
-  out_format = GST_VIDEO_INFO_FORMAT (&convert->out_info);
-
-  width = GST_VIDEO_INFO_WIDTH (&convert->in_info);
-  height = GST_VIDEO_INFO_HEIGHT (&convert->in_info);
-
-  in_matrix = convert->in_info.colorimetry.matrix;
-  out_matrix = convert->out_info.colorimetry.matrix;
-
-  interlaced = GST_VIDEO_INFO_IS_INTERLACED (&convert->in_info);
-  interlaced |= GST_VIDEO_INFO_IS_INTERLACED (&convert->out_info);
-
-  for (i = 0; i < sizeof (transforms) / sizeof (transforms[0]); i++) {
-    if (transforms[i].in_format == in_format &&
-        transforms[i].out_format == out_format &&
-        (transforms[i].keeps_color_matrix ||
-            (transforms[i].in_matrix == in_matrix &&
-                transforms[i].out_matrix == out_matrix)) &&
-        (transforms[i].keeps_interlaced || !interlaced) &&
-        (transforms[i].width_align & width) == 0 &&
-        (transforms[i].height_align & height) == 0) {
-      GST_DEBUG ("using fastpath");
-      if (transforms[i].needs_color_matrix)
-        if (!videoconvert_convert_compute_matrix (convert))
-          goto no_convert;
-      convert->convert = transforms[i].convert;
-      alloc_tmplines (convert, 1, GST_VIDEO_INFO_WIDTH (&convert->in_info));
-      return TRUE;
-    }
-  }
-  GST_DEBUG ("no fastpath found");
-  return FALSE;
-
-no_convert:
-  {
-    GST_DEBUG ("can't create matrix");
-    return FALSE;
-  }
-}
diff --git a/gst/videoconvert/videoconvert.h b/gst/videoconvert/videoconvert.h
deleted file mode 100644
index bc0aa7a..0000000
--- a/gst/videoconvert/videoconvert.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/* Video conversion functions
- * Copyright (C) 2010 David Schleef <ds@schleef.org>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifndef __COLORSPACE_H__
-#define __COLORSPACE_H__
-
-#include <gst/video/video.h>
-#include "gstcms.h"
-
-G_BEGIN_DECLS
-
-typedef struct _VideoConvert VideoConvert;
-
-typedef enum {
-  DITHER_NONE,
-  DITHER_VERTERR,
-  DITHER_HALFTONE
-} ColorSpaceDitherMethod;
-
-struct _VideoConvert {
-  GstVideoInfo in_info;
-  GstVideoInfo out_info;
-
-  gint width;
-  gint height;
-
-  gint in_bits;
-  gint out_bits;
-  gint cmatrix[4][4];
-
-  ColorSpaceDitherMethod dither;
-
-  guint lines;
-
-  guint n_tmplines;
-  gpointer *tmplines;
-  guint16 *errline;
-
-  GstVideoChromaResample *upsample;
-  guint up_n_lines;
-  gint up_offset;
-  GstVideoChromaResample *downsample;
-  guint down_n_lines;
-  gint down_offset;
-
-  void (*convert)      (VideoConvert *convert, GstVideoFrame *dest, const GstVideoFrame *src);
-  void (*matrix)       (VideoConvert *convert, gpointer pixels);
-  void (*dither16)     (VideoConvert *convert, guint16 * pixels, int j);
-
-};
-
-VideoConvert *   videoconvert_convert_new            (GstVideoInfo *in_info,
-                                                      GstVideoInfo *out_info);
-void             videoconvert_convert_free           (VideoConvert * convert);
-
-void             videoconvert_convert_set_dither     (VideoConvert * convert, int type);
-
-void             videoconvert_convert_convert        (VideoConvert * convert,
-                                                      GstVideoFrame *dest, const GstVideoFrame *src);
-
-
-G_END_DECLS
-
-#endif /* __GST_COLORSPACE_H__ */
diff --git a/gst/videorate/Makefile.am b/gst/videorate/Makefile.am
index d950ad9..f62c1ba 100644
--- a/gst/videorate/Makefile.am
+++ b/gst/videorate/Makefile.am
@@ -3,9 +3,10 @@
 plugin_LTLIBRARIES = libgstvideorate.la
 
 libgstvideorate_la_SOURCES = gstvideorate.c
-libgstvideorate_la_CFLAGS = $(GST_CFLAGS) $(GST_BASE_CFLAGS)
+libgstvideorate_la_CFLAGS = $(GST_CFLAGS) $(GST_BASE_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS)
 libgstvideorate_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstvideorate_la_LIBADD = $(GST_LIBS) $(GST_BASE_LIBS)
+libgstvideorate_la_LIBADD = $(GST_LIBS) $(GST_BASE_LIBS) \
+	$(top_builddir)/gst-libs/gst/video/libgstvideo-$(GST_API_VERSION).la
 libgstvideorate_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 
 Android.mk: Makefile.am $(BUILT_SOURCES)
diff --git a/gst/videorate/Makefile.in b/gst/videorate/Makefile.in
index 18b60f6..8338f8e 100644
--- a/gst/videorate/Makefile.in
+++ b/gst/videorate/Makefile.in
@@ -103,7 +103,6 @@
 	$(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-x11.m4 \
 	$(top_srcdir)/common/m4/gst.m4 \
 	$(top_srcdir)/common/m4/gtk-doc.m4 \
 	$(top_srcdir)/common/m4/introspection.m4 \
@@ -155,7 +154,8 @@
 LTLIBRARIES = $(plugin_LTLIBRARIES)
 am__DEPENDENCIES_1 =
 libgstvideorate_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
-	$(am__DEPENDENCIES_1)
+	$(am__DEPENDENCIES_1) \
+	$(top_builddir)/gst-libs/gst/video/libgstvideo-$(GST_API_VERSION).la
 am_libgstvideorate_la_OBJECTS = libgstvideorate_la-gstvideorate.lo
 libgstvideorate_la_OBJECTS = $(am_libgstvideorate_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
@@ -287,6 +287,8 @@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_2_0_CFLAGS = @GIO_UNIX_2_0_CFLAGS@
+GIO_UNIX_2_0_LIBS = @GIO_UNIX_2_0_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
@@ -316,6 +318,8 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
+GST_NET_CFLAGS = @GST_NET_CFLAGS@
+GST_NET_LIBS = @GST_NET_LIBS@
 GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
 GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
@@ -343,7 +347,6 @@
 GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
 GTK_X11_LIBS = @GTK_X11_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
-HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -447,13 +450,12 @@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-XMKMF = @XMKMF@
+XSHM_CFLAGS = @XSHM_CFLAGS@
 XSHM_LIBS = @XSHM_LIBS@
+XVIDEO_CFLAGS = @XVIDEO_CFLAGS@
 XVIDEO_LIBS = @XVIDEO_LIBS@
 X_CFLAGS = @X_CFLAGS@
-X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
-X_PRE_LIBS = @X_PRE_LIBS@
 ZLIB_CFLAGS = @ZLIB_CFLAGS@
 ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
@@ -521,9 +523,11 @@
 noinst_HEADERS = gstvideorate.h
 plugin_LTLIBRARIES = libgstvideorate.la
 libgstvideorate_la_SOURCES = gstvideorate.c
-libgstvideorate_la_CFLAGS = $(GST_CFLAGS) $(GST_BASE_CFLAGS)
+libgstvideorate_la_CFLAGS = $(GST_CFLAGS) $(GST_BASE_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS)
 libgstvideorate_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstvideorate_la_LIBADD = $(GST_LIBS) $(GST_BASE_LIBS)
+libgstvideorate_la_LIBADD = $(GST_LIBS) $(GST_BASE_LIBS) \
+	$(top_builddir)/gst-libs/gst/video/libgstvideo-$(GST_API_VERSION).la
+
 libgstvideorate_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 all: all-am
 
diff --git a/gst/videorate/gstvideorate.c b/gst/videorate/gstvideorate.c
index 14d628f..1aaf021 100644
--- a/gst/videorate/gstvideorate.c
+++ b/gst/videorate/gstvideorate.c
@@ -70,6 +70,7 @@
 #endif
 
 #include "gstvideorate.h"
+#include <gst/video/video.h>
 
 GST_DEBUG_CATEGORY_STATIC (video_rate_debug);
 #define GST_CAT_DEFAULT video_rate_debug
@@ -107,14 +108,14 @@
     GST_STATIC_PAD_TEMPLATE ("src",
     GST_PAD_SRC,
     GST_PAD_ALWAYS,
-    GST_STATIC_CAPS ("video/x-raw;" "image/jpeg;" "image/png")
+    GST_STATIC_CAPS ("video/x-raw(ANY);" "image/jpeg(ANY);" "image/png(ANY)")
     );
 
 static GstStaticPadTemplate gst_video_rate_sink_template =
     GST_STATIC_PAD_TEMPLATE ("sink",
     GST_PAD_SINK,
     GST_PAD_ALWAYS,
-    GST_STATIC_CAPS ("video/x-raw;" "image/jpeg;" "image/png")
+    GST_STATIC_CAPS ("video/x-raw(ANY);" "image/jpeg(ANY);" "image/png(ANY)")
     );
 
 static void gst_video_rate_swap_prev (GstVideoRate * videorate,
@@ -136,6 +137,9 @@
 static GstFlowReturn gst_video_rate_transform_ip (GstBaseTransform * trans,
     GstBuffer * buf);
 
+static gboolean gst_video_rate_propose_allocation (GstBaseTransform * trans,
+    GstQuery * decide_query, GstQuery * query);
+
 static gboolean gst_video_rate_start (GstBaseTransform * trans);
 static gboolean gst_video_rate_stop (GstBaseTransform * trans);
 
@@ -170,6 +174,8 @@
   base_class->stop = GST_DEBUG_FUNCPTR (gst_video_rate_stop);
   base_class->fixate_caps = GST_DEBUG_FUNCPTR (gst_video_rate_fixate_caps);
   base_class->query = GST_DEBUG_FUNCPTR (gst_video_rate_query);
+  base_class->propose_allocation =
+      GST_DEBUG_FUNCPTR (gst_video_rate_propose_allocation);
 
   g_object_class_install_property (object_class, PROP_IN,
       g_param_spec_uint64 ("in", "In",
@@ -366,6 +372,7 @@
 
     s1 = gst_structure_copy (s);
     s2 = gst_structure_copy (s);
+    s3 = NULL;
 
     if (videorate->drop_only) {
       gint min_num = 0, min_denom = 1;
@@ -428,10 +435,13 @@
           G_MAXINT, 1, NULL);
     }
     if (s1 != NULL)
-      ret = gst_caps_merge_structure (ret, s1);
-    ret = gst_caps_merge_structure (ret, s2);
+      ret = gst_caps_merge_structure_full (ret, s1,
+          gst_caps_features_copy (gst_caps_get_features (caps, i)));
+    ret = gst_caps_merge_structure_full (ret, s2,
+        gst_caps_features_copy (gst_caps_get_features (caps, i)));
     if (s3 != NULL)
-      ret = gst_caps_merge_structure (ret, s3);
+      ret = gst_caps_merge_structure_full (ret, s3,
+          gst_caps_features_copy (gst_caps_get_features (caps, i)));
   }
   if (filter) {
     GstCaps *intersection;
@@ -804,10 +814,12 @@
       gboolean live;
       guint64 latency;
       guint64 avg_period;
+      gboolean drop_only;
       GstPad *peer;
 
       GST_OBJECT_LOCK (videorate);
       avg_period = videorate->average_period_set;
+      drop_only = videorate->drop_only;
       GST_OBJECT_UNLOCK (videorate);
 
       if (avg_period == 0 && (peer = gst_pad_get_peer (otherpad))) {
@@ -818,7 +830,8 @@
               GST_TIME_FORMAT " max %" GST_TIME_FORMAT,
               GST_TIME_ARGS (min), GST_TIME_ARGS (max));
 
-          if (videorate->from_rate_numerator != 0) {
+          /* Drop only has no latency, other modes have one frame latency */
+          if (!drop_only && videorate->from_rate_numerator != 0) {
             /* add latency. We don't really know since we hold on to the frames
              * until we get a next frame, which can be anything. We assume
              * however that this will take from_rate time. */
@@ -859,6 +872,58 @@
   return res;
 }
 
+static gboolean
+gst_video_rate_propose_allocation (GstBaseTransform * trans,
+    GstQuery * decide_query, GstQuery * query)
+{
+  GstBaseTransformClass *klass = GST_BASE_TRANSFORM_CLASS (parent_class);
+  gboolean res;
+
+  /* We should always be passthrough */
+  g_return_val_if_fail (decide_query == NULL, FALSE);
+
+  res = klass->propose_allocation (trans, NULL, query);
+
+  if (res) {
+    guint i = 0;
+    guint n_allocation;
+    guint down_min = 0;
+
+    n_allocation = gst_query_get_n_allocation_pools (query);
+
+    while (i < n_allocation) {
+      GstBufferPool *pool;
+      guint size, min, max;
+
+      gst_query_parse_nth_allocation_pool (query, i, &pool, &size, &min, &max);
+
+      if (min == max) {
+        if (pool)
+          gst_object_unref (pool);
+        gst_query_remove_nth_allocation_pool (query, i);
+        n_allocation--;
+        down_min = MAX (min, down_min);
+        continue;
+      }
+
+      gst_query_set_nth_allocation_pool (query, i, pool, size, min + 1, max);
+      i++;
+    }
+
+    if (n_allocation == 0) {
+      GstCaps *caps;
+      GstVideoInfo info;
+
+      gst_query_parse_allocation (query, &caps, NULL);
+      gst_video_info_from_caps (&info, caps);
+
+      gst_query_add_allocation_pool (query, NULL, info.size, down_min + 1, 0);
+    }
+  }
+
+  return res;
+}
+
 static GstFlowReturn
 gst_video_rate_trans_ip_max_avg (GstVideoRate * videorate, GstBuffer * buf)
 {
@@ -982,7 +1047,7 @@
   intime = in_ts + videorate->segment.base;
 
   /* we need to have two buffers to compare */
-  if (videorate->prevbuf == NULL) {
+  if (videorate->prevbuf == NULL || videorate->drop_only) {
     gst_video_rate_swap_prev (videorate, buffer, intime);
     videorate->in++;
     if (!GST_CLOCK_TIME_IS_VALID (videorate->next_ts)) {
@@ -996,6 +1061,24 @@
         videorate->next_ts = videorate->segment.start + videorate->segment.base;
       }
     }
+
+    /* In drop-only mode we can already decide here if we should output the
+     * current frame or drop it because it's coming earlier than our minimum
+     * allowed frame period. This also keeps latency down to 0 frames
+     */
+    if (videorate->drop_only) {
+      if (intime >= videorate->next_ts) {
+        GstFlowReturn r;
+
+        /* on error the _flush function posted a warning already */
+        if ((r = gst_video_rate_flush_prev (videorate, FALSE)) != GST_FLOW_OK) {
+          res = r;
+          goto done;
+        }
+      }
+      /* No need to keep the buffer around for longer */
+      gst_buffer_replace (&videorate->prevbuf, NULL);
+    }
   } else {
     GstClockTime prevtime;
     gint count = 0;
@@ -1129,6 +1212,7 @@
     guint prop_id, const GValue * value, GParamSpec * pspec)
 {
   GstVideoRate *videorate = GST_VIDEO_RATE (object);
+  gboolean latency_changed = FALSE;
 
   GST_OBJECT_LOCK (videorate);
   switch (prop_id) {
@@ -1141,10 +1225,15 @@
     case PROP_SKIP_TO_FIRST:
       videorate->skip_to_first = g_value_get_boolean (value);
       break;
-    case PROP_DROP_ONLY:
+    case PROP_DROP_ONLY:{
+      gboolean new_value = g_value_get_boolean (value);
+
+      /* Latency changes if we switch drop-only mode */
+      latency_changed = new_value != videorate->drop_only;
       videorate->drop_only = g_value_get_boolean (value);
       goto reconfigure;
       break;
+    }
     case PROP_AVERAGE_PERIOD:
       videorate->average_period_set = g_value_get_uint64 (value);
       break;
@@ -1162,6 +1251,11 @@
 reconfigure:
   GST_OBJECT_UNLOCK (videorate);
   gst_base_transform_reconfigure_src (GST_BASE_TRANSFORM (videorate));
+
+  if (latency_changed) {
+    gst_element_post_message (GST_ELEMENT (videorate),
+        gst_message_new_latency (GST_OBJECT (videorate)));
+  }
 }
 
 static void
diff --git a/gst/videoscale/Makefile.am b/gst/videoscale/Makefile.am
index 5d96422..053cddf 100644
--- a/gst/videoscale/Makefile.am
+++ b/gst/videoscale/Makefile.am
@@ -1,39 +1,23 @@
 plugin_LTLIBRARIES = libgstvideoscale.la
 
-ORC_SOURCE=gstvideoscaleorc
-include $(top_srcdir)/common/orc.mak
+libgstvideoscale_la_SOURCES = gstvideoscale.c 
 
-libgstvideoscale_la_SOURCES = \
-	gstvideoscale.c \
-	vs_image.c \
-	vs_scanline.c \
-	vs_4tap.c \
-	vs_fill_borders.c \
-	vs_lanczos.c
-
-nodist_libgstvideoscale_la_SOURCES = $(ORC_NODIST_SOURCES)
-
-libgstvideoscale_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(ORC_CFLAGS)
+libgstvideoscale_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS)
 libgstvideoscale_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
 libgstvideoscale_la_LIBADD = \
 	$(top_builddir)/gst-libs/gst/video/libgstvideo-$(GST_API_VERSION).la \
-	$(GST_BASE_LIBS) $(GST_LIBS) $(ORC_LIBS) $(LIBM)
+	$(GST_BASE_LIBS) $(GST_LIBS) $(LIBM)
 libgstvideoscale_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 
 noinst_HEADERS = \
-	gstvideoscale.h \
-	vs_image.h \
-	vs_scanline.h \
-	vs_4tap.h \
-	vs_fill_borders.h
+	gstvideoscale.h
 
 Android.mk: Makefile.am $(BUILT_SOURCES)
 	androgenizer \
 	-:PROJECT libgstvideoscale -:SHARED libgstvideoscale \
 	 -:TAGS eng debug \
          -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
-	 -:SOURCES $(libgstvideoscale_la_SOURCES) \
-	 	   $(nodist_libgstvideoscale_la_SOURCES) \
+	 -:SOURCES $(libgstvideoscale_la_SOURCES)
 	 -:CFLAGS $(DEFS) $(DEFAULT_INCLUDES) $(libgstvideoscale_la_CFLAGS) \
 	 -:LDFLAGS $(libgstvideoscale_la_LDFLAGS) \
 	           $(libgstvideoscale_la_LIBADD) \
diff --git a/gst/videoscale/Makefile.in b/gst/videoscale/Makefile.in
index f775fc2..591af7f 100644
--- a/gst/videoscale/Makefile.in
+++ b/gst/videoscale/Makefile.in
@@ -14,28 +14,6 @@
 
 @SET_MAKE@
 
-#
-# This is a makefile.am fragment to build Orc code.
-#
-# Define ORC_SOURCE and then include this file, such as:
-#
-#  ORC_SOURCE=gstadderorc
-#  include $(top_srcdir)/common/orc.mak
-#
-# This fragment will create tmp-orc.c and gstadderorc.h from
-# gstadderorc.orc.
-#
-# When 'make dist' is run at the top level, or 'make orc-update'
-# in a directory including this fragment, the generated source 
-# files will be copied to $(ORC_SOURCE)-dist.[ch].  These files
-# should be checked in to git, since they are used if Orc is
-# disabled.
-# 
-# Note that this file defines BUILT_SOURCES, so any later usage
-# of BUILT_SOURCES in the Makefile.am that includes this file
-# must use '+='.
-#
-
 
 VPATH = @srcdir@
 am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
@@ -102,10 +80,9 @@
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
-DIST_COMMON = $(top_srcdir)/common/orc.mak $(srcdir)/Makefile.in \
-	$(srcdir)/Makefile.am $(top_srcdir)/depcomp $(noinst_HEADERS) \
-	README
 subdir = gst/videoscale
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS) README
 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 \
@@ -126,7 +103,6 @@
 	$(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-x11.m4 \
 	$(top_srcdir)/common/m4/gst.m4 \
 	$(top_srcdir)/common/m4/gtk-doc.m4 \
 	$(top_srcdir)/common/m4/introspection.m4 \
@@ -179,17 +155,9 @@
 am__DEPENDENCIES_1 =
 libgstvideoscale_la_DEPENDENCIES = $(top_builddir)/gst-libs/gst/video/libgstvideo-$(GST_API_VERSION).la \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
-	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
-am_libgstvideoscale_la_OBJECTS = libgstvideoscale_la-gstvideoscale.lo \
-	libgstvideoscale_la-vs_image.lo \
-	libgstvideoscale_la-vs_scanline.lo \
-	libgstvideoscale_la-vs_4tap.lo \
-	libgstvideoscale_la-vs_fill_borders.lo \
-	libgstvideoscale_la-vs_lanczos.lo
-am__objects_1 = libgstvideoscale_la-tmp-orc.lo
-nodist_libgstvideoscale_la_OBJECTS = $(am__objects_1)
-libgstvideoscale_la_OBJECTS = $(am_libgstvideoscale_la_OBJECTS) \
-	$(nodist_libgstvideoscale_la_OBJECTS)
+	$(am__DEPENDENCIES_1)
+am_libgstvideoscale_la_OBJECTS = libgstvideoscale_la-gstvideoscale.lo
+libgstvideoscale_la_OBJECTS = $(am_libgstvideoscale_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
@@ -232,8 +200,7 @@
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD    " $@;
 am__v_CCLD_1 = 
-SOURCES = $(libgstvideoscale_la_SOURCES) \
-	$(nodist_libgstvideoscale_la_SOURCES)
+SOURCES = $(libgstvideoscale_la_SOURCES)
 DIST_SOURCES = $(libgstvideoscale_la_SOURCES)
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
@@ -320,6 +287,8 @@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_2_0_CFLAGS = @GIO_UNIX_2_0_CFLAGS@
+GIO_UNIX_2_0_LIBS = @GIO_UNIX_2_0_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
@@ -349,6 +318,8 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
+GST_NET_CFLAGS = @GST_NET_CFLAGS@
+GST_NET_LIBS = @GST_NET_LIBS@
 GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
 GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
@@ -376,7 +347,6 @@
 GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
 GTK_X11_LIBS = @GTK_X11_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
-HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -480,13 +450,12 @@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-XMKMF = @XMKMF@
+XSHM_CFLAGS = @XSHM_CFLAGS@
 XSHM_LIBS = @XSHM_LIBS@
+XVIDEO_CFLAGS = @XVIDEO_CFLAGS@
 XVIDEO_LIBS = @XVIDEO_LIBS@
 X_CFLAGS = @X_CFLAGS@
-X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
-X_PRE_LIBS = @X_PRE_LIBS@
 ZLIB_CFLAGS = @ZLIB_CFLAGS@
 ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
@@ -552,45 +521,22 @@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 plugin_LTLIBRARIES = libgstvideoscale.la
-ORC_SOURCE = gstvideoscaleorc
-EXTRA_DIST = $(ORC_SOURCE).orc
-ORC_NODIST_SOURCES = tmp-orc.c $(ORC_SOURCE).h
-BUILT_SOURCES = tmp-orc.c $(ORC_SOURCE).h
-orcc_v_gen = $(orcc_v_gen_$(V))
-orcc_v_gen_ = $(orcc_v_gen_$(AM_DEFAULT_VERBOSITY))
-orcc_v_gen_0 = @echo "  ORCC   $@";
-cp_v_gen = $(cp_v_gen_$(V))
-cp_v_gen_ = $(cp_v_gen_$(AM_DEFAULT_VERBOSITY))
-cp_v_gen_0 = @echo "  CP     $@";
-libgstvideoscale_la_SOURCES = \
-	gstvideoscale.c \
-	vs_image.c \
-	vs_scanline.c \
-	vs_4tap.c \
-	vs_fill_borders.c \
-	vs_lanczos.c
-
-nodist_libgstvideoscale_la_SOURCES = $(ORC_NODIST_SOURCES)
-libgstvideoscale_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(ORC_CFLAGS)
+libgstvideoscale_la_SOURCES = gstvideoscale.c 
+libgstvideoscale_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS)
 libgstvideoscale_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
 libgstvideoscale_la_LIBADD = \
 	$(top_builddir)/gst-libs/gst/video/libgstvideo-$(GST_API_VERSION).la \
-	$(GST_BASE_LIBS) $(GST_LIBS) $(ORC_LIBS) $(LIBM)
+	$(GST_BASE_LIBS) $(GST_LIBS) $(LIBM)
 
 libgstvideoscale_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 noinst_HEADERS = \
-	gstvideoscale.h \
-	vs_image.h \
-	vs_scanline.h \
-	vs_4tap.h \
-	vs_fill_borders.h
+	gstvideoscale.h
 
-all: $(BUILT_SOURCES)
-	$(MAKE) $(AM_MAKEFLAGS) all-am
+all: all-am
 
 .SUFFIXES:
 .SUFFIXES: .c .lo .o .obj
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/common/orc.mak $(am__configure_deps)
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
@@ -611,7 +557,6 @@
 	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
 	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
 	esac;
-$(top_srcdir)/common/orc.mak:
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -667,12 +612,6 @@
 	-rm -f *.tab.c
 
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideoscale_la-gstvideoscale.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideoscale_la-tmp-orc.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideoscale_la-vs_4tap.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideoscale_la-vs_fill_borders.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideoscale_la-vs_image.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideoscale_la-vs_lanczos.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideoscale_la-vs_scanline.Plo@am__quote@
 
 .c.o:
 @am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
@@ -705,48 +644,6 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideoscale_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoscale_la_CFLAGS) $(CFLAGS) -c -o libgstvideoscale_la-gstvideoscale.lo `test -f 'gstvideoscale.c' || echo '$(srcdir)/'`gstvideoscale.c
 
-libgstvideoscale_la-vs_image.lo: vs_image.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideoscale_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoscale_la_CFLAGS) $(CFLAGS) -MT libgstvideoscale_la-vs_image.lo -MD -MP -MF $(DEPDIR)/libgstvideoscale_la-vs_image.Tpo -c -o libgstvideoscale_la-vs_image.lo `test -f 'vs_image.c' || echo '$(srcdir)/'`vs_image.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideoscale_la-vs_image.Tpo $(DEPDIR)/libgstvideoscale_la-vs_image.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='vs_image.c' object='libgstvideoscale_la-vs_image.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 $(libgstvideoscale_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoscale_la_CFLAGS) $(CFLAGS) -c -o libgstvideoscale_la-vs_image.lo `test -f 'vs_image.c' || echo '$(srcdir)/'`vs_image.c
-
-libgstvideoscale_la-vs_scanline.lo: vs_scanline.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideoscale_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoscale_la_CFLAGS) $(CFLAGS) -MT libgstvideoscale_la-vs_scanline.lo -MD -MP -MF $(DEPDIR)/libgstvideoscale_la-vs_scanline.Tpo -c -o libgstvideoscale_la-vs_scanline.lo `test -f 'vs_scanline.c' || echo '$(srcdir)/'`vs_scanline.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideoscale_la-vs_scanline.Tpo $(DEPDIR)/libgstvideoscale_la-vs_scanline.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='vs_scanline.c' object='libgstvideoscale_la-vs_scanline.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 $(libgstvideoscale_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoscale_la_CFLAGS) $(CFLAGS) -c -o libgstvideoscale_la-vs_scanline.lo `test -f 'vs_scanline.c' || echo '$(srcdir)/'`vs_scanline.c
-
-libgstvideoscale_la-vs_4tap.lo: vs_4tap.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideoscale_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoscale_la_CFLAGS) $(CFLAGS) -MT libgstvideoscale_la-vs_4tap.lo -MD -MP -MF $(DEPDIR)/libgstvideoscale_la-vs_4tap.Tpo -c -o libgstvideoscale_la-vs_4tap.lo `test -f 'vs_4tap.c' || echo '$(srcdir)/'`vs_4tap.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideoscale_la-vs_4tap.Tpo $(DEPDIR)/libgstvideoscale_la-vs_4tap.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='vs_4tap.c' object='libgstvideoscale_la-vs_4tap.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 $(libgstvideoscale_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoscale_la_CFLAGS) $(CFLAGS) -c -o libgstvideoscale_la-vs_4tap.lo `test -f 'vs_4tap.c' || echo '$(srcdir)/'`vs_4tap.c
-
-libgstvideoscale_la-vs_fill_borders.lo: vs_fill_borders.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideoscale_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoscale_la_CFLAGS) $(CFLAGS) -MT libgstvideoscale_la-vs_fill_borders.lo -MD -MP -MF $(DEPDIR)/libgstvideoscale_la-vs_fill_borders.Tpo -c -o libgstvideoscale_la-vs_fill_borders.lo `test -f 'vs_fill_borders.c' || echo '$(srcdir)/'`vs_fill_borders.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideoscale_la-vs_fill_borders.Tpo $(DEPDIR)/libgstvideoscale_la-vs_fill_borders.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='vs_fill_borders.c' object='libgstvideoscale_la-vs_fill_borders.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 $(libgstvideoscale_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoscale_la_CFLAGS) $(CFLAGS) -c -o libgstvideoscale_la-vs_fill_borders.lo `test -f 'vs_fill_borders.c' || echo '$(srcdir)/'`vs_fill_borders.c
-
-libgstvideoscale_la-vs_lanczos.lo: vs_lanczos.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideoscale_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoscale_la_CFLAGS) $(CFLAGS) -MT libgstvideoscale_la-vs_lanczos.lo -MD -MP -MF $(DEPDIR)/libgstvideoscale_la-vs_lanczos.Tpo -c -o libgstvideoscale_la-vs_lanczos.lo `test -f 'vs_lanczos.c' || echo '$(srcdir)/'`vs_lanczos.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideoscale_la-vs_lanczos.Tpo $(DEPDIR)/libgstvideoscale_la-vs_lanczos.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='vs_lanczos.c' object='libgstvideoscale_la-vs_lanczos.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 $(libgstvideoscale_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoscale_la_CFLAGS) $(CFLAGS) -c -o libgstvideoscale_la-vs_lanczos.lo `test -f 'vs_lanczos.c' || echo '$(srcdir)/'`vs_lanczos.c
-
-libgstvideoscale_la-tmp-orc.lo: tmp-orc.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideoscale_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoscale_la_CFLAGS) $(CFLAGS) -MT libgstvideoscale_la-tmp-orc.lo -MD -MP -MF $(DEPDIR)/libgstvideoscale_la-tmp-orc.Tpo -c -o libgstvideoscale_la-tmp-orc.lo `test -f 'tmp-orc.c' || echo '$(srcdir)/'`tmp-orc.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideoscale_la-tmp-orc.Tpo $(DEPDIR)/libgstvideoscale_la-tmp-orc.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tmp-orc.c' object='libgstvideoscale_la-tmp-orc.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideoscale_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoscale_la_CFLAGS) $(CFLAGS) -c -o libgstvideoscale_la-tmp-orc.lo `test -f 'tmp-orc.c' || echo '$(srcdir)/'`tmp-orc.c
-
 mostlyclean-libtool:
 	-rm -f *.lo
 
@@ -835,19 +732,14 @@
 	    || exit 1; \
 	  fi; \
 	done
-	$(MAKE) $(AM_MAKEFLAGS) \
-	  top_distdir="$(top_distdir)" distdir="$(distdir)" \
-	  dist-hook
 check-am: all-am
-check: $(BUILT_SOURCES)
-	$(MAKE) $(AM_MAKEFLAGS) check-am
+check: check-am
 all-am: Makefile $(LTLIBRARIES) $(HEADERS)
 installdirs:
 	for dir in "$(DESTDIR)$(plugindir)"; do \
 	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
 	done
-install: $(BUILT_SOURCES)
-	$(MAKE) $(AM_MAKEFLAGS) install-am
+install: install-am
 install-exec: install-exec-am
 install-data: install-data-am
 uninstall: uninstall-am
@@ -877,11 +769,10 @@
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
 	@echo "it deletes files that may require special tools to rebuild."
-	-test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
 clean: clean-am
 
-clean-am: clean-generic clean-libtool clean-local \
-	clean-pluginLTLIBRARIES mostlyclean-am
+clean-am: clean-generic clean-libtool clean-pluginLTLIBRARIES \
+	mostlyclean-am
 
 distclean: distclean-am
 	-rm -rf ./$(DEPDIR)
@@ -949,68 +840,30 @@
 
 uninstall-am: uninstall-pluginLTLIBRARIES
 
-.MAKE: all check install install-am install-strip
+.MAKE: install-am install-strip
 
 .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-local clean-pluginLTLIBRARIES \
-	cscopelist-am ctags ctags-am dist-hook distclean \
-	distclean-compile distclean-generic distclean-libtool \
-	distclean-tags distdir dvi dvi-am html html-am info info-am \
-	install install-am install-data install-data-am install-dvi \
-	install-dvi-am install-exec install-exec-am install-html \
-	install-html-am install-info install-info-am install-man \
-	install-pdf install-pdf-am install-pluginLTLIBRARIES \
-	install-ps install-ps-am install-strip installcheck \
-	installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-compile \
-	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags tags-am uninstall uninstall-am \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am distclean distclean-compile distclean-generic \
+	distclean-libtool distclean-tags distdir dvi dvi-am html \
+	html-am info info-am install install-am install-data \
+	install-data-am install-dvi install-dvi-am install-exec \
+	install-exec-am install-html install-html-am install-info \
+	install-info-am install-man install-pdf install-pdf-am \
+	install-pluginLTLIBRARIES install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
 
-orc-update: tmp-orc.c $(ORC_SOURCE).h
-	$(top_srcdir)/common/gst-indent tmp-orc.c
-	cp tmp-orc.c $(srcdir)/$(ORC_SOURCE)-dist.c
-	cp $(ORC_SOURCE).h $(srcdir)/$(ORC_SOURCE)-dist.h
-
-@HAVE_ORCC_TRUE@tmp-orc.c: $(srcdir)/$(ORC_SOURCE).orc
-@HAVE_ORCC_TRUE@	$(orcc_v_gen)$(ORCC) $(ORCC_FLAGS) --implementation --include glib.h -o tmp-orc.c $(srcdir)/$(ORC_SOURCE).orc
-
-@HAVE_ORCC_TRUE@$(ORC_SOURCE).h: $(srcdir)/$(ORC_SOURCE).orc
-@HAVE_ORCC_TRUE@	$(orcc_v_gen)$(ORCC) $(ORCC_FLAGS) --header --include glib.h -o $(ORC_SOURCE).h $(srcdir)/$(ORC_SOURCE).orc
-@HAVE_ORCC_FALSE@tmp-orc.c: $(srcdir)/$(ORC_SOURCE).orc $(srcdir)/$(ORC_SOURCE)-dist.c
-@HAVE_ORCC_FALSE@	$(cp_v_gen)cp $(srcdir)/$(ORC_SOURCE)-dist.c tmp-orc.c
-
-@HAVE_ORCC_FALSE@$(ORC_SOURCE).h: $(srcdir)/$(ORC_SOURCE).orc $(srcdir)/$(ORC_SOURCE)-dist.c
-@HAVE_ORCC_FALSE@	$(cp_v_gen)cp $(srcdir)/$(ORC_SOURCE)-dist.h $(ORC_SOURCE).h
-
-clean-local: clean-orc
-.PHONY: clean-orc
-clean-orc:
-	rm -f tmp-orc.c $(ORC_SOURCE).h
-
-dist-hook: dist-hook-orc
-.PHONY: dist-hook-orc
-
-# we try and copy updated orc -dist files below, but don't fail if it
-# doesn't work as the srcdir might not be writable
-dist-hook-orc: tmp-orc.c $(ORC_SOURCE).h
-	$(top_srcdir)/common/gst-indent tmp-orc.c
-	rm -f tmp-orc.c~
-	cmp -s tmp-orc.c $(srcdir)/$(ORC_SOURCE)-dist.c || \
-	  cp tmp-orc.c $(srcdir)/$(ORC_SOURCE)-dist.c || true
-	cmp -s $(ORC_SOURCE).h $(srcdir)/$(ORC_SOURCE)-dist.h || \
-	  cp $(ORC_SOURCE).h $(srcdir)/$(ORC_SOURCE)-dist.h || true
-	cp -p tmp-orc.c $(distdir)/$(ORC_SOURCE)-dist.c
-	cp -p $(ORC_SOURCE).h $(distdir)/$(ORC_SOURCE)-dist.h
-
 Android.mk: Makefile.am $(BUILT_SOURCES)
 	androgenizer \
 	-:PROJECT libgstvideoscale -:SHARED libgstvideoscale \
 	 -:TAGS eng debug \
          -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
-	 -:SOURCES $(libgstvideoscale_la_SOURCES) \
-	 	   $(nodist_libgstvideoscale_la_SOURCES) \
+	 -:SOURCES $(libgstvideoscale_la_SOURCES)
 	 -:CFLAGS $(DEFS) $(DEFAULT_INCLUDES) $(libgstvideoscale_la_CFLAGS) \
 	 -:LDFLAGS $(libgstvideoscale_la_LDFLAGS) \
 	           $(libgstvideoscale_la_LIBADD) \
diff --git a/gst/videoscale/gstvideoscale.c b/gst/videoscale/gstvideoscale.c
index 97d5648..20eb6e9 100644
--- a/gst/videoscale/gstvideoscale.c
+++ b/gst/videoscale/gstvideoscale.c
@@ -78,10 +78,6 @@
 #include <gst/video/gstvideopool.h>
 
 #include "gstvideoscale.h"
-#include "gstvideoscaleorc.h"
-#include "vs_image.h"
-#include "vs_4tap.h"
-#include "vs_fill_borders.h"
 
 /* debug variable definition */
 GST_DEBUG_CATEGORY (video_scale_debug);
@@ -94,6 +90,7 @@
 #define DEFAULT_PROP_DITHER       FALSE
 #define DEFAULT_PROP_SUBMETHOD    1
 #define DEFAULT_PROP_ENVELOPE     2.0
+#define DEFAULT_PROP_GAMMA_DECODE FALSE
 
 enum
 {
@@ -104,7 +101,8 @@
   PROP_SHARPEN,
   PROP_DITHER,
   PROP_SUBMETHOD,
-  PROP_ENVELOPE
+  PROP_ENVELOPE,
+  PROP_GAMMA_DECODE,
 };
 
 #undef GST_VIDEO_SIZE_RANGE
@@ -112,7 +110,6 @@
 
 /* FIXME: add v210 support
  * FIXME: add v216 support
- * FIXME: add NV21 support
  * FIXME: add UYVP support
  * FIXME: add A420 support
  * FIXME: add YUV9 support
@@ -121,12 +118,7 @@
  * FIXME: add r210 support
  */
 
-/* FIXME: if we can do NV12, NV21 shouldn't be so hard */
-#define GST_VIDEO_FORMATS "{ I420, YV12, YUY2, UYVY, AYUV, RGBx, " \
-    "BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, " \
-    "BGR, Y41B, Y42B, YVYU, Y444, GRAY8, GRAY16_BE, GRAY16_LE, " \
-    "v308, RGB16, RGB15, ARGB64, AYUV64, NV12 } "
-
+#define GST_VIDEO_FORMATS GST_VIDEO_FORMATS_ALL
 
 static GstStaticCaps gst_video_scale_format_caps =
     GST_STATIC_CAPS (GST_VIDEO_CAPS_MAKE (GST_VIDEO_FORMATS) ";"
@@ -140,9 +132,15 @@
 
   static const GEnumValue video_scale_methods[] = {
     {GST_VIDEO_SCALE_NEAREST, "Nearest Neighbour", "nearest-neighbour"},
-    {GST_VIDEO_SCALE_BILINEAR, "Bilinear", "bilinear"},
-    {GST_VIDEO_SCALE_4TAP, "4-tap", "4-tap"},
-    {GST_VIDEO_SCALE_LANCZOS, "Lanczos (experimental/unstable)", "lanczos"},
+    {GST_VIDEO_SCALE_BILINEAR, "Bilinear (2-tap)", "bilinear"},
+    {GST_VIDEO_SCALE_4TAP, "4-tap Sinc", "4-tap"},
+    {GST_VIDEO_SCALE_LANCZOS, "Lanczos", "lanczos"},
+    {GST_VIDEO_SCALE_BILINEAR2, "Bilinear (multi-tap)", "bilinear2"},
+    {GST_VIDEO_SCALE_SINC, "Sinc (multi-tap)", "sinc"},
+    {GST_VIDEO_SCALE_HERMITE, "Hermite (multi-tap)", "hermite"},
+    {GST_VIDEO_SCALE_SPLINE, "Spline (multi-tap)", "spline"},
+    {GST_VIDEO_SCALE_CATROM, "Catmull-Rom (multi-tap)", "catrom"},
+    {GST_VIDEO_SCALE_MITCHELL, "Mitchell (multi-tap)", "mitchell"},
     {0, NULL, NULL},
   };
 
@@ -202,9 +200,6 @@
 static void gst_video_scale_get_property (GObject * object, guint prop_id,
     GValue * value, GParamSpec * pspec);
 
-static GstFlowReturn do_scale (GstVideoFilter * filter, VSImage dest[4],
-    VSImage src[4]);
-
 #define gst_video_scale_parent_class parent_class
 G_DEFINE_TYPE (GstVideoScale, gst_video_scale, GST_TYPE_VIDEO_FILTER);
 
@@ -261,9 +256,15 @@
           "Size of filter envelope", 1.0, 5.0, DEFAULT_PROP_ENVELOPE,
           G_PARAM_CONSTRUCT | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
+  g_object_class_install_property (gobject_class, PROP_GAMMA_DECODE,
+      g_param_spec_boolean ("gamma-decode", "Gamma Decode",
+          "Decode gamma before scaling", DEFAULT_PROP_GAMMA_DECODE,
+          G_PARAM_CONSTRUCT | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+
   gst_element_class_set_static_metadata (element_class,
       "Video scaler", "Filter/Converter/Video/Scaler",
-      "Resizes video", "Wim Taymans <wim.taymans@chello.be>");
+      "Resizes video", "Wim Taymans <wim.taymans@gmail.com>");
 
   gst_element_class_add_pad_template (element_class,
       gst_video_scale_sink_template_factory ());
@@ -283,7 +284,6 @@
 static void
 gst_video_scale_init (GstVideoScale * videoscale)
 {
-  videoscale->tmp_buf = NULL;
   videoscale->method = DEFAULT_PROP_METHOD;
   videoscale->add_borders = DEFAULT_PROP_ADD_BORDERS;
   videoscale->submethod = DEFAULT_PROP_SUBMETHOD;
@@ -291,13 +291,14 @@
   videoscale->sharpen = DEFAULT_PROP_SHARPEN;
   videoscale->dither = DEFAULT_PROP_DITHER;
   videoscale->envelope = DEFAULT_PROP_ENVELOPE;
+  videoscale->gamma_decode = DEFAULT_PROP_GAMMA_DECODE;
 }
 
 static void
 gst_video_scale_finalize (GstVideoScale * videoscale)
 {
-  if (videoscale->tmp_buf)
-    g_free (videoscale->tmp_buf);
+  if (videoscale->convert)
+    gst_video_converter_free (videoscale->convert);
 
   G_OBJECT_CLASS (parent_class)->finalize (G_OBJECT (videoscale));
 }
@@ -345,6 +346,11 @@
       vscale->envelope = g_value_get_double (value);
       GST_OBJECT_UNLOCK (vscale);
       break;
+    case PROP_GAMMA_DECODE:
+      GST_OBJECT_LOCK (vscale);
+      vscale->gamma_decode = g_value_get_boolean (value);
+      GST_OBJECT_UNLOCK (vscale);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -393,6 +399,11 @@
       g_value_set_double (value, vscale->envelope);
       GST_OBJECT_UNLOCK (vscale);
       break;
+    case PROP_GAMMA_DECODE:
+      GST_OBJECT_LOCK (vscale);
+      g_value_set_boolean (value, vscale->gamma_decode);
+      GST_OBJECT_UNLOCK (vscale);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -400,46 +411,10 @@
 }
 
 static GstCaps *
-get_formats_filter (GstVideoScaleMethod method)
-{
-  switch (method) {
-    case GST_VIDEO_SCALE_NEAREST:
-    case GST_VIDEO_SCALE_BILINEAR:
-      return NULL;
-    case GST_VIDEO_SCALE_4TAP:
-    {
-      static GstStaticCaps fourtap_filter =
-          GST_STATIC_CAPS ("video/x-raw(ANY),"
-          "format = (string) { RGBx, xRGB, BGRx, xBGR, RGBA, "
-          "ARGB, BGRA, ABGR, AYUV, ARGB64, AYUV64, "
-          "RGB, BGR, v308, YUY2, YVYU, UYVY, "
-          "GRAY8, GRAY16_LE, GRAY16_BE, I420, YV12, "
-          "Y444, Y42B, Y41B, RGB16, RGB15 }");
-      return gst_static_caps_get (&fourtap_filter);
-    }
-    case GST_VIDEO_SCALE_LANCZOS:
-    {
-      static GstStaticCaps lanczos_filter =
-          GST_STATIC_CAPS ("video/x-raw(ANY),"
-          "format = (string) { RGBx, xRGB, BGRx, xBGR, RGBA, "
-          "ARGB, BGRA, ABGR, AYUV, ARGB64, AYUV64, "
-          "I420, YV12, Y444, Y42B, Y41B }");
-      return gst_static_caps_get (&lanczos_filter);
-    }
-    default:
-      g_assert_not_reached ();
-      break;
-  }
-  return NULL;
-}
-
-static GstCaps *
 gst_video_scale_transform_caps (GstBaseTransform * trans,
     GstPadDirection direction, GstCaps * caps, GstCaps * filter)
 {
-  GstVideoScale *videoscale = GST_VIDEO_SCALE (trans);
-  GstVideoScaleMethod method;
-  GstCaps *ret, *mfilter;
+  GstCaps *ret;
   GstStructure *structure;
   GstCapsFeatures *features;
   gint i, n;
@@ -448,20 +423,6 @@
       "Transforming caps %" GST_PTR_FORMAT " in direction %s", caps,
       (direction == GST_PAD_SINK) ? "sink" : "src");
 
-  GST_OBJECT_LOCK (videoscale);
-  method = videoscale->method;
-  GST_OBJECT_UNLOCK (videoscale);
-
-  /* filter the supported formats */
-  /* FIXME: Ideally we would still allow passthrough for the color formats
-   * that are unsupported by the selected method */
-  if ((mfilter = get_formats_filter (method))) {
-    caps = gst_caps_intersect_full (caps, mfilter, GST_CAPS_INTERSECT_FIRST);
-    gst_caps_unref (mfilter);
-  } else {
-    gst_caps_ref (caps);
-  }
-
   ret = gst_caps_new_empty ();
   n = gst_caps_get_size (caps);
   for (i = 0; i < n; i++) {
@@ -489,7 +450,6 @@
             GST_TYPE_FRACTION_RANGE, 1, G_MAXINT, G_MAXINT, 1, NULL);
       }
     }
-
     gst_caps_append_structure_full (ret, structure,
         gst_caps_features_copy (features));
   }
@@ -503,7 +463,6 @@
     ret = intersection;
   }
 
-  gst_caps_unref (caps);
   GST_DEBUG_OBJECT (trans, "returning caps: %" GST_PTR_FORMAT, ret);
 
   return ret;
@@ -554,16 +513,109 @@
     }
   }
 
-  if (videoscale->tmp_buf)
-    g_free (videoscale->tmp_buf);
-  videoscale->tmp_buf = g_malloc (out_info->width * sizeof (guint64) * 4);
-
   if (in_info->width == out_info->width && in_info->height == out_info->height
       && videoscale->borders_w == 0 && videoscale->borders_h == 0) {
     gst_base_transform_set_passthrough (GST_BASE_TRANSFORM (filter), TRUE);
   } else {
+    GstStructure *options;
     GST_CAT_DEBUG_OBJECT (GST_CAT_PERFORMANCE, filter, "setup videoscaling");
     gst_base_transform_set_passthrough (GST_BASE_TRANSFORM (filter), FALSE);
+
+    options = gst_structure_new_empty ("videoscale");
+
+    switch (videoscale->method) {
+      case GST_VIDEO_SCALE_NEAREST:
+        gst_structure_set (options,
+            GST_VIDEO_CONVERTER_OPT_RESAMPLER_METHOD,
+            GST_TYPE_VIDEO_RESAMPLER_METHOD, GST_VIDEO_RESAMPLER_METHOD_NEAREST,
+            NULL);
+        break;
+      case GST_VIDEO_SCALE_BILINEAR:
+        gst_structure_set (options,
+            GST_VIDEO_CONVERTER_OPT_RESAMPLER_METHOD,
+            GST_TYPE_VIDEO_RESAMPLER_METHOD, GST_VIDEO_RESAMPLER_METHOD_LINEAR,
+            GST_VIDEO_RESAMPLER_OPT_MAX_TAPS, G_TYPE_INT, 2, NULL);
+        break;
+      case GST_VIDEO_SCALE_4TAP:
+        gst_structure_set (options,
+            GST_VIDEO_CONVERTER_OPT_RESAMPLER_METHOD,
+            GST_TYPE_VIDEO_RESAMPLER_METHOD, GST_VIDEO_RESAMPLER_METHOD_SINC,
+            GST_VIDEO_RESAMPLER_OPT_MAX_TAPS, G_TYPE_INT, 4, NULL);
+        break;
+      case GST_VIDEO_SCALE_LANCZOS:
+        gst_structure_set (options,
+            GST_VIDEO_CONVERTER_OPT_RESAMPLER_METHOD,
+            GST_TYPE_VIDEO_RESAMPLER_METHOD, GST_VIDEO_RESAMPLER_METHOD_LANCZOS,
+            NULL);
+        break;
+      case GST_VIDEO_SCALE_BILINEAR2:
+        gst_structure_set (options,
+            GST_VIDEO_CONVERTER_OPT_RESAMPLER_METHOD,
+            GST_TYPE_VIDEO_RESAMPLER_METHOD, GST_VIDEO_RESAMPLER_METHOD_LINEAR,
+            NULL);
+        break;
+      case GST_VIDEO_SCALE_SINC:
+        gst_structure_set (options,
+            GST_VIDEO_CONVERTER_OPT_RESAMPLER_METHOD,
+            GST_TYPE_VIDEO_RESAMPLER_METHOD, GST_VIDEO_RESAMPLER_METHOD_SINC,
+            NULL);
+        break;
+      case GST_VIDEO_SCALE_HERMITE:
+        gst_structure_set (options,
+            GST_VIDEO_CONVERTER_OPT_RESAMPLER_METHOD,
+            GST_TYPE_VIDEO_RESAMPLER_METHOD, GST_VIDEO_RESAMPLER_METHOD_CUBIC,
+            GST_VIDEO_RESAMPLER_OPT_CUBIC_B, G_TYPE_DOUBLE, (gdouble) 0.0,
+            GST_VIDEO_RESAMPLER_OPT_CUBIC_C, G_TYPE_DOUBLE, (gdouble) 0.0,
+            NULL);
+        break;
+      case GST_VIDEO_SCALE_SPLINE:
+        gst_structure_set (options,
+            GST_VIDEO_CONVERTER_OPT_RESAMPLER_METHOD,
+            GST_TYPE_VIDEO_RESAMPLER_METHOD, GST_VIDEO_RESAMPLER_METHOD_CUBIC,
+            GST_VIDEO_RESAMPLER_OPT_CUBIC_B, G_TYPE_DOUBLE, (gdouble) 1.0,
+            GST_VIDEO_RESAMPLER_OPT_CUBIC_C, G_TYPE_DOUBLE, (gdouble) 0.0,
+            NULL);
+        break;
+      case GST_VIDEO_SCALE_CATROM:
+        gst_structure_set (options,
+            GST_VIDEO_CONVERTER_OPT_RESAMPLER_METHOD,
+            GST_TYPE_VIDEO_RESAMPLER_METHOD, GST_VIDEO_RESAMPLER_METHOD_CUBIC,
+            GST_VIDEO_RESAMPLER_OPT_CUBIC_B, G_TYPE_DOUBLE, (gdouble) 0.0,
+            GST_VIDEO_RESAMPLER_OPT_CUBIC_C, G_TYPE_DOUBLE, (gdouble) 0.5,
+            NULL);
+        break;
+      case GST_VIDEO_SCALE_MITCHELL:
+        gst_structure_set (options,
+            GST_VIDEO_CONVERTER_OPT_RESAMPLER_METHOD,
+            GST_TYPE_VIDEO_RESAMPLER_METHOD, GST_VIDEO_RESAMPLER_METHOD_CUBIC,
+            GST_VIDEO_RESAMPLER_OPT_CUBIC_B, G_TYPE_DOUBLE, (gdouble) 1.0 / 3.0,
+            GST_VIDEO_RESAMPLER_OPT_CUBIC_C, G_TYPE_DOUBLE, (gdouble) 1.0 / 3.0,
+            NULL);
+        break;
+    }
+    gst_structure_set (options,
+        GST_VIDEO_RESAMPLER_OPT_ENVELOPE, G_TYPE_DOUBLE, videoscale->envelope,
+        GST_VIDEO_RESAMPLER_OPT_SHARPNESS, G_TYPE_DOUBLE, videoscale->sharpness,
+        GST_VIDEO_RESAMPLER_OPT_SHARPEN, G_TYPE_DOUBLE, videoscale->sharpen,
+        GST_VIDEO_CONVERTER_OPT_DEST_X, G_TYPE_INT, videoscale->borders_w / 2,
+        GST_VIDEO_CONVERTER_OPT_DEST_Y, G_TYPE_INT, videoscale->borders_h / 2,
+        GST_VIDEO_CONVERTER_OPT_DEST_WIDTH, G_TYPE_INT,
+        out_info->width - videoscale->borders_w,
+        GST_VIDEO_CONVERTER_OPT_DEST_HEIGHT, G_TYPE_INT,
+        out_info->height - videoscale->borders_h,
+        GST_VIDEO_CONVERTER_OPT_MATRIX_MODE, G_TYPE_STRING, "none",
+        GST_VIDEO_CONVERTER_OPT_DITHER_METHOD, GST_TYPE_VIDEO_DITHER_METHOD,
+        GST_VIDEO_DITHER_NONE, GST_VIDEO_CONVERTER_OPT_CHROMA_MODE,
+        G_TYPE_STRING, "none", NULL);
+
+    if (videoscale->gamma_decode) {
+      gst_structure_set (options,
+          GST_VIDEO_CONVERTER_OPT_GAMMA_MODE, G_TYPE_STRING, "remap", NULL);
+    }
+
+    if (videoscale->convert)
+      gst_video_converter_free (videoscale->convert);
+    videoscale->convert = gst_video_converter_new (in_info, out_info, options);
   }
 
   GST_DEBUG_OBJECT (videoscale, "from=%dx%d (par=%d/%d dar=%d/%d), size %"
@@ -928,6 +980,7 @@
               &to_par_n, &to_par_d)) {
         GST_ELEMENT_ERROR (base, CORE, NEGOTIATION, (NULL),
             ("Error calculating the output scaled size - integer overflow"));
+        gst_structure_free (tmp);
         goto done;
       }
 
@@ -1014,440 +1067,20 @@
   return othercaps;
 }
 
-static void
-gst_video_scale_setup_vs_image (VSImage * image, GstVideoFrame * frame,
-    gint component, gint b_w, gint b_h, gboolean interlaced, gint field)
-{
-  GstVideoFormat format;
-  gint width, height;
-
-  format = GST_VIDEO_FRAME_FORMAT (frame);
-  width = GST_VIDEO_FRAME_WIDTH (frame);
-  height = GST_VIDEO_FRAME_HEIGHT (frame);
-
-  image->real_width = GST_VIDEO_FRAME_COMP_WIDTH (frame, component);
-  image->real_height = GST_VIDEO_FRAME_COMP_HEIGHT (frame, component);
-  image->width = GST_VIDEO_FORMAT_INFO_SCALE_WIDTH (frame->info.finfo,
-      component, MAX (1, width - b_w));
-  image->height = GST_VIDEO_FORMAT_INFO_SCALE_HEIGHT (frame->info.finfo,
-      component, MAX (1, height - b_h));
-
-  if (interlaced) {
-    image->real_height /= 2;
-    image->height /= 2;
-  }
-
-  image->border_top = (image->real_height - image->height) / 2;
-  image->border_bottom = image->real_height - image->height - image->border_top;
-
-  if (format == GST_VIDEO_FORMAT_YUY2 || format == GST_VIDEO_FORMAT_YVYU
-      || format == GST_VIDEO_FORMAT_UYVY) {
-    g_assert (component == 0);
-
-    image->border_left = (image->real_width - image->width) / 2;
-
-    if (image->border_left % 2 == 1)
-      image->border_left--;
-    image->border_right = image->real_width - image->width - image->border_left;
-  } else {
-    image->border_left = (image->real_width - image->width) / 2;
-    image->border_right = image->real_width - image->width - image->border_left;
-  }
-
-  image->real_pixels = GST_VIDEO_FRAME_PLANE_DATA (frame, component);
-  image->stride = GST_VIDEO_FRAME_PLANE_STRIDE (frame, component);
-
-  if (interlaced) {
-    if (field == 1)
-      image->real_pixels += image->stride;
-    image->stride *= 2;
-  }
-
-  image->pixels =
-      image->real_pixels + image->border_top * image->stride +
-      image->border_left * GST_VIDEO_FRAME_COMP_PSTRIDE (frame, component);
-
-}
-
-static const guint8 *
-_get_black_for_format (GstVideoFormat format)
-{
-  static const guint8 black[][4] = {
-    {255, 0, 0, 0},             /*  0 = ARGB, ABGR, xRGB, xBGR */
-    {0, 0, 0, 255},             /*  1 = RGBA, BGRA, RGBx, BGRx */
-    {255, 16, 128, 128},        /*  2 = AYUV */
-    {0, 0, 0, 0},               /*  3 = RGB and BGR */
-    {16, 128, 128, 0},          /*  4 = v301 */
-    {16, 128, 16, 128},         /*  5 = YUY2, YUYV */
-    {128, 16, 128, 16},         /*  6 = UYVY */
-    {16, 0, 0, 0},              /*  7 = Y */
-    {0, 0, 0, 0}                /*  8 = RGB565, RGB666 */
-  };
-
-  switch (format) {
-    case GST_VIDEO_FORMAT_ARGB:
-    case GST_VIDEO_FORMAT_ABGR:
-    case GST_VIDEO_FORMAT_xRGB:
-    case GST_VIDEO_FORMAT_xBGR:
-    case GST_VIDEO_FORMAT_ARGB64:
-      return black[0];
-    case GST_VIDEO_FORMAT_RGBA:
-    case GST_VIDEO_FORMAT_BGRA:
-    case GST_VIDEO_FORMAT_RGBx:
-    case GST_VIDEO_FORMAT_BGRx:
-      return black[1];
-    case GST_VIDEO_FORMAT_AYUV:
-    case GST_VIDEO_FORMAT_AYUV64:
-      return black[2];
-    case GST_VIDEO_FORMAT_RGB:
-    case GST_VIDEO_FORMAT_BGR:
-      return black[3];
-    case GST_VIDEO_FORMAT_v308:
-      return black[4];
-    case GST_VIDEO_FORMAT_YUY2:
-    case GST_VIDEO_FORMAT_YVYU:
-      return black[5];
-    case GST_VIDEO_FORMAT_UYVY:
-      return black[6];
-    case GST_VIDEO_FORMAT_GRAY8:
-      return black[7];
-    case GST_VIDEO_FORMAT_GRAY16_LE:
-    case GST_VIDEO_FORMAT_GRAY16_BE:
-      return NULL;              /* Handled by the caller */
-    case GST_VIDEO_FORMAT_I420:
-    case GST_VIDEO_FORMAT_YV12:
-    case GST_VIDEO_FORMAT_Y444:
-    case GST_VIDEO_FORMAT_Y42B:
-    case GST_VIDEO_FORMAT_Y41B:
-    case GST_VIDEO_FORMAT_NV12:
-      return black[4];          /* Y, U, V, 0 */
-    case GST_VIDEO_FORMAT_RGB16:
-    case GST_VIDEO_FORMAT_RGB15:
-      return black[8];
-    default:
-      return NULL;
-  }
-}
+#define GET_LINE(frame, line) \
+    (gpointer)(((guint8*)(GST_VIDEO_FRAME_PLANE_DATA (frame, 0))) + \
+     GST_VIDEO_FRAME_PLANE_STRIDE (frame, 0) * (line))
 
 static GstFlowReturn
 gst_video_scale_transform_frame (GstVideoFilter * filter,
     GstVideoFrame * in_frame, GstVideoFrame * out_frame)
 {
-  GstVideoScale *videoscale = GST_VIDEO_SCALE (filter);
+  GstVideoScale *videoscale = GST_VIDEO_SCALE_CAST (filter);
   GstFlowReturn ret = GST_FLOW_OK;
-  VSImage dest[4] = { {NULL,}, };
-  VSImage src[4] = { {NULL,}, };
-  gint i;
-  gboolean interlaced;
 
-  interlaced = GST_VIDEO_FRAME_IS_INTERLACED (in_frame);
-
-  for (i = 0; i < GST_VIDEO_FRAME_N_PLANES (in_frame); i++) {
-    gst_video_scale_setup_vs_image (&src[i], in_frame, i, 0, 0, interlaced, 0);
-    gst_video_scale_setup_vs_image (&dest[i], out_frame, i,
-        videoscale->borders_w, videoscale->borders_h, interlaced, 0);
-  }
-  ret = do_scale (filter, dest, src);
-
-  if (interlaced) {
-    for (i = 0; i < GST_VIDEO_FRAME_N_PLANES (in_frame); i++) {
-      gst_video_scale_setup_vs_image (&src[i], in_frame, i, 0, 0, interlaced,
-          1);
-      gst_video_scale_setup_vs_image (&dest[i], out_frame, i,
-          videoscale->borders_w, videoscale->borders_h, interlaced, 1);
-    }
-    ret = do_scale (filter, dest, src);
-  }
-  return ret;
-}
-
-static GstFlowReturn
-do_scale (GstVideoFilter * filter, VSImage dest[4], VSImage src[4])
-{
-  GstVideoScale *videoscale = GST_VIDEO_SCALE (filter);
-  GstFlowReturn ret = GST_FLOW_OK;
-  gint method;
-  const guint8 *black;
-  GstVideoFormat format;
-  gboolean add_borders;
-
-  GST_OBJECT_LOCK (videoscale);
-  method = videoscale->method;
-  add_borders = videoscale->add_borders;
-  GST_OBJECT_UNLOCK (videoscale);
-
-  format = GST_VIDEO_INFO_FORMAT (&filter->in_info);
-  black = _get_black_for_format (format);
-
-  if (filter->in_info.width == 1) {
-    method = GST_VIDEO_SCALE_NEAREST;
-  }
-  if (method == GST_VIDEO_SCALE_4TAP &&
-      (filter->in_info.width < 4 || filter->in_info.height < 4)) {
-    method = GST_VIDEO_SCALE_BILINEAR;
-  }
-
-  GST_CAT_DEBUG_OBJECT (GST_CAT_PERFORMANCE, filter,
-      "doing videoscale format %s", GST_VIDEO_INFO_NAME (&filter->in_info));
-
-  switch (format) {
-    case GST_VIDEO_FORMAT_RGBx:
-    case GST_VIDEO_FORMAT_xRGB:
-    case GST_VIDEO_FORMAT_BGRx:
-    case GST_VIDEO_FORMAT_xBGR:
-    case GST_VIDEO_FORMAT_RGBA:
-    case GST_VIDEO_FORMAT_ARGB:
-    case GST_VIDEO_FORMAT_BGRA:
-    case GST_VIDEO_FORMAT_ABGR:
-    case GST_VIDEO_FORMAT_AYUV:
-      if (add_borders)
-        vs_fill_borders_RGBA (&dest[0], black);
-      switch (method) {
-        case GST_VIDEO_SCALE_NEAREST:
-          vs_image_scale_nearest_RGBA (&dest[0], &src[0], videoscale->tmp_buf);
-          break;
-        case GST_VIDEO_SCALE_BILINEAR:
-          vs_image_scale_linear_RGBA (&dest[0], &src[0], videoscale->tmp_buf);
-          break;
-        case GST_VIDEO_SCALE_4TAP:
-          vs_image_scale_4tap_RGBA (&dest[0], &src[0], videoscale->tmp_buf);
-          break;
-        case GST_VIDEO_SCALE_LANCZOS:
-          vs_image_scale_lanczos_AYUV (&dest[0], &src[0], videoscale->tmp_buf,
-              videoscale->sharpness, videoscale->dither, videoscale->submethod,
-              videoscale->envelope, videoscale->sharpen);
-          break;
-        default:
-          goto unknown_mode;
-      }
-      break;
-    case GST_VIDEO_FORMAT_ARGB64:
-    case GST_VIDEO_FORMAT_AYUV64:
-      if (add_borders)
-        vs_fill_borders_AYUV64 (&dest[0], black);
-      switch (method) {
-        case GST_VIDEO_SCALE_NEAREST:
-          vs_image_scale_nearest_AYUV64 (&dest[0], &src[0],
-              videoscale->tmp_buf);
-          break;
-        case GST_VIDEO_SCALE_BILINEAR:
-          vs_image_scale_linear_AYUV64 (&dest[0], &src[0], videoscale->tmp_buf);
-          break;
-        case GST_VIDEO_SCALE_4TAP:
-          vs_image_scale_4tap_AYUV64 (&dest[0], &src[0], videoscale->tmp_buf);
-          break;
-        case GST_VIDEO_SCALE_LANCZOS:
-          vs_image_scale_lanczos_AYUV64 (&dest[0], &src[0], videoscale->tmp_buf,
-              videoscale->sharpness, videoscale->dither, videoscale->submethod,
-              videoscale->envelope, videoscale->sharpen);
-          break;
-        default:
-          goto unknown_mode;
-      }
-      break;
-    case GST_VIDEO_FORMAT_RGB:
-    case GST_VIDEO_FORMAT_BGR:
-    case GST_VIDEO_FORMAT_v308:
-      if (add_borders)
-        vs_fill_borders_RGB (&dest[0], black);
-      switch (method) {
-        case GST_VIDEO_SCALE_NEAREST:
-          vs_image_scale_nearest_RGB (&dest[0], &src[0], videoscale->tmp_buf);
-          break;
-        case GST_VIDEO_SCALE_BILINEAR:
-          vs_image_scale_linear_RGB (&dest[0], &src[0], videoscale->tmp_buf);
-          break;
-        case GST_VIDEO_SCALE_4TAP:
-          vs_image_scale_4tap_RGB (&dest[0], &src[0], videoscale->tmp_buf);
-          break;
-        default:
-          goto unknown_mode;
-      }
-      break;
-    case GST_VIDEO_FORMAT_YUY2:
-    case GST_VIDEO_FORMAT_YVYU:
-      if (add_borders)
-        vs_fill_borders_YUYV (&dest[0], black);
-      switch (method) {
-        case GST_VIDEO_SCALE_NEAREST:
-          vs_image_scale_nearest_YUYV (&dest[0], &src[0], videoscale->tmp_buf);
-          break;
-        case GST_VIDEO_SCALE_BILINEAR:
-          vs_image_scale_linear_YUYV (&dest[0], &src[0], videoscale->tmp_buf);
-          break;
-        case GST_VIDEO_SCALE_4TAP:
-          vs_image_scale_4tap_YUYV (&dest[0], &src[0], videoscale->tmp_buf);
-          break;
-        default:
-          goto unknown_mode;
-      }
-      break;
-    case GST_VIDEO_FORMAT_UYVY:
-      if (add_borders)
-        vs_fill_borders_UYVY (&dest[0], black);
-      switch (method) {
-        case GST_VIDEO_SCALE_NEAREST:
-          vs_image_scale_nearest_UYVY (&dest[0], &src[0], videoscale->tmp_buf);
-          break;
-        case GST_VIDEO_SCALE_BILINEAR:
-          vs_image_scale_linear_UYVY (&dest[0], &src[0], videoscale->tmp_buf);
-          break;
-        case GST_VIDEO_SCALE_4TAP:
-          vs_image_scale_4tap_UYVY (&dest[0], &src[0], videoscale->tmp_buf);
-          break;
-        default:
-          goto unknown_mode;
-      }
-      break;
-    case GST_VIDEO_FORMAT_GRAY8:
-      if (add_borders)
-        vs_fill_borders_Y (&dest[0], black);
-      switch (method) {
-        case GST_VIDEO_SCALE_NEAREST:
-          vs_image_scale_nearest_Y (&dest[0], &src[0], videoscale->tmp_buf);
-          break;
-        case GST_VIDEO_SCALE_BILINEAR:
-          vs_image_scale_linear_Y (&dest[0], &src[0], videoscale->tmp_buf);
-          break;
-        case GST_VIDEO_SCALE_4TAP:
-          vs_image_scale_4tap_Y (&dest[0], &src[0], videoscale->tmp_buf);
-          break;
-        default:
-          goto unknown_mode;
-      }
-      break;
-    case GST_VIDEO_FORMAT_GRAY16_LE:
-    case GST_VIDEO_FORMAT_GRAY16_BE:
-      if (add_borders)
-        vs_fill_borders_Y16 (&dest[0], 0);
-      switch (method) {
-        case GST_VIDEO_SCALE_NEAREST:
-          vs_image_scale_nearest_Y16 (&dest[0], &src[0], videoscale->tmp_buf);
-          break;
-        case GST_VIDEO_SCALE_BILINEAR:
-          vs_image_scale_linear_Y16 (&dest[0], &src[0], videoscale->tmp_buf);
-          break;
-        case GST_VIDEO_SCALE_4TAP:
-          vs_image_scale_4tap_Y16 (&dest[0], &src[0], videoscale->tmp_buf);
-          break;
-        default:
-          goto unknown_mode;
-      }
-      break;
-    case GST_VIDEO_FORMAT_I420:
-    case GST_VIDEO_FORMAT_YV12:
-    case GST_VIDEO_FORMAT_Y444:
-    case GST_VIDEO_FORMAT_Y42B:
-    case GST_VIDEO_FORMAT_Y41B:
-      if (add_borders) {
-        vs_fill_borders_Y (&dest[0], black);
-        vs_fill_borders_Y (&dest[1], black + 1);
-        vs_fill_borders_Y (&dest[2], black + 2);
-      }
-      switch (method) {
-        case GST_VIDEO_SCALE_NEAREST:
-          vs_image_scale_nearest_Y (&dest[0], &src[0], videoscale->tmp_buf);
-          vs_image_scale_nearest_Y (&dest[1], &src[1], videoscale->tmp_buf);
-          vs_image_scale_nearest_Y (&dest[2], &src[2], videoscale->tmp_buf);
-          break;
-        case GST_VIDEO_SCALE_BILINEAR:
-          vs_image_scale_linear_Y (&dest[0], &src[0], videoscale->tmp_buf);
-          vs_image_scale_linear_Y (&dest[1], &src[1], videoscale->tmp_buf);
-          vs_image_scale_linear_Y (&dest[2], &src[2], videoscale->tmp_buf);
-          break;
-        case GST_VIDEO_SCALE_4TAP:
-          vs_image_scale_4tap_Y (&dest[0], &src[0], videoscale->tmp_buf);
-          vs_image_scale_4tap_Y (&dest[1], &src[1], videoscale->tmp_buf);
-          vs_image_scale_4tap_Y (&dest[2], &src[2], videoscale->tmp_buf);
-          break;
-        case GST_VIDEO_SCALE_LANCZOS:
-          vs_image_scale_lanczos_Y (&dest[0], &src[0], videoscale->tmp_buf,
-              videoscale->sharpness, videoscale->dither, videoscale->submethod,
-              videoscale->envelope, videoscale->sharpen);
-          vs_image_scale_lanczos_Y (&dest[1], &src[1], videoscale->tmp_buf,
-              videoscale->sharpness, videoscale->dither, videoscale->submethod,
-              videoscale->envelope, videoscale->sharpen);
-          vs_image_scale_lanczos_Y (&dest[2], &src[2], videoscale->tmp_buf,
-              videoscale->sharpness, videoscale->dither, videoscale->submethod,
-              videoscale->envelope, videoscale->sharpen);
-          break;
-        default:
-          goto unknown_mode;
-      }
-      break;
-    case GST_VIDEO_FORMAT_NV12:
-      if (add_borders) {
-        vs_fill_borders_Y (&dest[0], black);
-        vs_fill_borders_Y16 (&dest[1], (black[1] << 8) | black[2]);
-      }
-      switch (method) {
-        case GST_VIDEO_SCALE_NEAREST:
-          vs_image_scale_nearest_Y (&dest[0], &src[0], videoscale->tmp_buf);
-          vs_image_scale_nearest_NV12 (&dest[1], &src[1], videoscale->tmp_buf);
-          break;
-        case GST_VIDEO_SCALE_BILINEAR:
-          vs_image_scale_linear_Y (&dest[0], &src[0], videoscale->tmp_buf);
-          vs_image_scale_linear_NV12 (&dest[1], &src[1], videoscale->tmp_buf);
-          break;
-        default:
-          goto unknown_mode;
-      }
-      break;
-    case GST_VIDEO_FORMAT_RGB16:
-      if (add_borders)
-        vs_fill_borders_RGB565 (&dest[0], black);
-      switch (method) {
-        case GST_VIDEO_SCALE_NEAREST:
-          vs_image_scale_nearest_RGB565 (&dest[0], &src[0],
-              videoscale->tmp_buf);
-          break;
-        case GST_VIDEO_SCALE_BILINEAR:
-          vs_image_scale_linear_RGB565 (&dest[0], &src[0], videoscale->tmp_buf);
-          break;
-        case GST_VIDEO_SCALE_4TAP:
-          vs_image_scale_4tap_RGB565 (&dest[0], &src[0], videoscale->tmp_buf);
-          break;
-        default:
-          goto unknown_mode;
-      }
-      break;
-    case GST_VIDEO_FORMAT_RGB15:
-      if (add_borders)
-        vs_fill_borders_RGB555 (&dest[0], black);
-      switch (method) {
-        case GST_VIDEO_SCALE_NEAREST:
-          vs_image_scale_nearest_RGB555 (&dest[0], &src[0],
-              videoscale->tmp_buf);
-          break;
-        case GST_VIDEO_SCALE_BILINEAR:
-          vs_image_scale_linear_RGB555 (&dest[0], &src[0], videoscale->tmp_buf);
-          break;
-        case GST_VIDEO_SCALE_4TAP:
-          vs_image_scale_4tap_RGB555 (&dest[0], &src[0], videoscale->tmp_buf);
-          break;
-        default:
-          goto unknown_mode;
-      }
-      break;
-    default:
-      goto unsupported;
-  }
+  gst_video_converter_frame (videoscale->convert, in_frame, out_frame);
 
   return ret;
-
-  /* ERRORS */
-unsupported:
-  {
-    GST_ELEMENT_ERROR (videoscale, STREAM, NOT_IMPLEMENTED, (NULL),
-        ("Unsupported format %d for scaling method %d", format, method));
-    return GST_FLOW_ERROR;
-  }
-unknown_mode:
-  {
-    GST_ELEMENT_ERROR (videoscale, STREAM, NOT_IMPLEMENTED, (NULL),
-        ("Unknown scaling method %d", videoscale->method));
-    return GST_FLOW_ERROR;
-  }
 }
 
 static gboolean
@@ -1500,8 +1133,6 @@
       "videoscale element");
   GST_DEBUG_CATEGORY_GET (GST_CAT_PERFORMANCE, "GST_PERFORMANCE");
 
-  vs_4tap_init ();
-
   return TRUE;
 }
 
diff --git a/gst/videoscale/gstvideoscale.h b/gst/videoscale/gstvideoscale.h
index 37c056e..297ceed 100644
--- a/gst/videoscale/gstvideoscale.h
+++ b/gst/videoscale/gstvideoscale.h
@@ -24,8 +24,6 @@
 #include <gst/video/video.h>
 #include <gst/video/gstvideofilter.h>
 
-#include "vs_image.h"
-
 G_BEGIN_DECLS
 
 GST_DEBUG_CATEGORY_EXTERN (video_scale_debug);
@@ -47,9 +45,15 @@
 /**
  * GstVideoScaleMethod:
  * @GST_VIDEO_SCALE_NEAREST: use nearest neighbour scaling (fast and ugly)
- * @GST_VIDEO_SCALE_BILINEAR: use bilinear scaling (slower but prettier).
- * @GST_VIDEO_SCALE_4TAP: use a 4-tap filter for scaling (slow).
+ * @GST_VIDEO_SCALE_BILINEAR: use 2-tap bilinear scaling (slower but prettier).
+ * @GST_VIDEO_SCALE_4TAP: use a 4-tap sinc filter for scaling (slow).
  * @GST_VIDEO_SCALE_LANCZOS: use a multitap Lanczos filter for scaling (slow).
+ * @GST_VIDEO_SCALE_BILINEAR2: use a multitap bilinear filter
+ * @GST_VIDEO_SCALE_SINC: use a multitap sinc filter
+ * @GST_VIDEO_SCALE_HERMITE: use a multitap bicubic Hermite filter
+ * @GST_VIDEO_SCALE_SPLINE: use a multitap bicubic spline filter
+ * @GST_VIDEO_SCALE_CATROM: use a multitap bicubic Catmull-Rom filter
+ * @GST_VIDEO_SCALE_MITCHELL: use a multitap bicubic Mitchell filter
  *
  * The videoscale method to use.
  */
@@ -57,7 +61,14 @@
   GST_VIDEO_SCALE_NEAREST,
   GST_VIDEO_SCALE_BILINEAR,
   GST_VIDEO_SCALE_4TAP,
-  GST_VIDEO_SCALE_LANCZOS
+  GST_VIDEO_SCALE_LANCZOS,
+
+  GST_VIDEO_SCALE_BILINEAR2,
+  GST_VIDEO_SCALE_SINC,
+  GST_VIDEO_SCALE_HERMITE,
+  GST_VIDEO_SCALE_SPLINE,
+  GST_VIDEO_SCALE_CATROM,
+  GST_VIDEO_SCALE_MITCHELL
 } GstVideoScaleMethod;
 
 typedef struct _GstVideoScale GstVideoScale;
@@ -79,12 +90,12 @@
   gboolean dither;
   int submethod;
   double envelope;
+  gboolean gamma_decode;
+
+  GstVideoConverter *convert;
 
   gint borders_h;
   gint borders_w;
-
-  /*< private >*/
-  guint8 *tmp_buf;
 };
 
 struct _GstVideoScaleClass {
diff --git a/gst/videoscale/gstvideoscaleorc-dist.c b/gst/videoscale/gstvideoscaleorc-dist.c
deleted file mode 100644
index 85b37fd..0000000
--- a/gst/videoscale/gstvideoscaleorc-dist.c
+++ /dev/null
@@ -1,2561 +0,0 @@
-
-/* autogenerated from gstvideoscaleorc.orc */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-#include <glib.h>
-
-#ifndef _ORC_INTEGER_TYPEDEFS_
-#define _ORC_INTEGER_TYPEDEFS_
-#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
-#include <stdint.h>
-typedef int8_t orc_int8;
-typedef int16_t orc_int16;
-typedef int32_t orc_int32;
-typedef int64_t orc_int64;
-typedef uint8_t orc_uint8;
-typedef uint16_t orc_uint16;
-typedef uint32_t orc_uint32;
-typedef uint64_t orc_uint64;
-#define ORC_UINT64_C(x) UINT64_C(x)
-#elif defined(_MSC_VER)
-typedef signed __int8 orc_int8;
-typedef signed __int16 orc_int16;
-typedef signed __int32 orc_int32;
-typedef signed __int64 orc_int64;
-typedef unsigned __int8 orc_uint8;
-typedef unsigned __int16 orc_uint16;
-typedef unsigned __int32 orc_uint32;
-typedef unsigned __int64 orc_uint64;
-#define ORC_UINT64_C(x) (x##Ui64)
-#define inline __inline
-#else
-#include <limits.h>
-typedef signed char orc_int8;
-typedef short orc_int16;
-typedef int orc_int32;
-typedef unsigned char orc_uint8;
-typedef unsigned short orc_uint16;
-typedef unsigned int orc_uint32;
-#if INT_MAX == LONG_MAX
-typedef long long orc_int64;
-typedef unsigned long long orc_uint64;
-#define ORC_UINT64_C(x) (x##ULL)
-#else
-typedef long orc_int64;
-typedef unsigned long orc_uint64;
-#define ORC_UINT64_C(x) (x##UL)
-#endif
-#endif
-typedef union
-{
-  orc_int16 i;
-  orc_int8 x2[2];
-} orc_union16;
-typedef union
-{
-  orc_int32 i;
-  float f;
-  orc_int16 x2[2];
-  orc_int8 x4[4];
-} orc_union32;
-typedef union
-{
-  orc_int64 i;
-  double f;
-  orc_int32 x2[2];
-  float x2f[2];
-  orc_int16 x4[4];
-} orc_union64;
-#endif
-#ifndef ORC_RESTRICT
-#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
-#define ORC_RESTRICT restrict
-#elif defined(__GNUC__) && __GNUC__ >= 4
-#define ORC_RESTRICT __restrict__
-#else
-#define ORC_RESTRICT
-#endif
-#endif
-
-#ifndef ORC_INTERNAL
-#if defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590)
-#define ORC_INTERNAL __attribute__((visibility("hidden")))
-#elif defined(__SUNPRO_C) && (__SUNPRO_C >= 0x550)
-#define ORC_INTERNAL __hidden
-#elif defined (__GNUC__)
-#define ORC_INTERNAL __attribute__((visibility("hidden")))
-#else
-#define ORC_INTERNAL
-#endif
-#endif
-
-
-#ifndef DISABLE_ORC
-#include <orc/orc.h>
-#endif
-void video_scale_orc_merge_linear_u8 (orc_uint8 * ORC_RESTRICT d1,
-    const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2,
-    int p1, int n);
-void video_scale_orc_merge_linear_u16 (orc_uint16 * ORC_RESTRICT d1,
-    const orc_uint16 * ORC_RESTRICT s1, const orc_uint16 * ORC_RESTRICT s2,
-    int p1, int p2, int n);
-void video_scale_orc_splat_u16 (orc_uint16 * ORC_RESTRICT d1, int p1, int n);
-void video_scale_orc_splat_u32 (orc_uint32 * ORC_RESTRICT d1, int p1, int n);
-void video_scale_orc_splat_u64 (orc_uint64 * ORC_RESTRICT d1, orc_int64 p1,
-    int n);
-void video_scale_orc_downsample_u8 (guint8 * ORC_RESTRICT d1,
-    const guint8 * ORC_RESTRICT s1, int n);
-void video_scale_orc_downsample_u16 (guint16 * ORC_RESTRICT d1,
-    const guint16 * ORC_RESTRICT s1, int n);
-void video_scale_orc_downsample_u32 (guint8 * ORC_RESTRICT d1,
-    const guint8 * ORC_RESTRICT s1, int n);
-void video_scale_orc_downsample_yuyv (guint8 * ORC_RESTRICT d1,
-    const guint8 * ORC_RESTRICT s1, int n);
-void video_scale_orc_resample_nearest_u8 (guint8 * ORC_RESTRICT d1,
-    const guint8 * ORC_RESTRICT s1, int p1, int p2, int n);
-void video_scale_orc_resample_bilinear_u8 (guint8 * ORC_RESTRICT d1,
-    const guint8 * ORC_RESTRICT s1, int p1, int p2, int n);
-void video_scale_orc_resample_nearest_u32 (guint8 * ORC_RESTRICT d1,
-    const guint8 * ORC_RESTRICT s1, int p1, int p2, int n);
-void video_scale_orc_resample_bilinear_u32 (guint8 * ORC_RESTRICT d1,
-    const guint8 * ORC_RESTRICT s1, int p1, int p2, int n);
-void video_scale_orc_resample_merge_bilinear_u32 (guint8 * ORC_RESTRICT d1,
-    guint8 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1,
-    const guint8 * ORC_RESTRICT s2, int p1, int p2, int p3, int n);
-void video_scale_orc_merge_bicubic_u8 (guint8 * ORC_RESTRICT d1,
-    const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
-    const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, int p1,
-    int p2, int p3, int p4, int n);
-
-
-/* begin Orc C target preamble */
-#define ORC_CLAMP(x,a,b) ((x)<(a) ? (a) : ((x)>(b) ? (b) : (x)))
-#define ORC_ABS(a) ((a)<0 ? -(a) : (a))
-#define ORC_MIN(a,b) ((a)<(b) ? (a) : (b))
-#define ORC_MAX(a,b) ((a)>(b) ? (a) : (b))
-#define ORC_SB_MAX 127
-#define ORC_SB_MIN (-1-ORC_SB_MAX)
-#define ORC_UB_MAX 255
-#define ORC_UB_MIN 0
-#define ORC_SW_MAX 32767
-#define ORC_SW_MIN (-1-ORC_SW_MAX)
-#define ORC_UW_MAX 65535
-#define ORC_UW_MIN 0
-#define ORC_SL_MAX 2147483647
-#define ORC_SL_MIN (-1-ORC_SL_MAX)
-#define ORC_UL_MAX 4294967295U
-#define ORC_UL_MIN 0
-#define ORC_CLAMP_SB(x) ORC_CLAMP(x,ORC_SB_MIN,ORC_SB_MAX)
-#define ORC_CLAMP_UB(x) ORC_CLAMP(x,ORC_UB_MIN,ORC_UB_MAX)
-#define ORC_CLAMP_SW(x) ORC_CLAMP(x,ORC_SW_MIN,ORC_SW_MAX)
-#define ORC_CLAMP_UW(x) ORC_CLAMP(x,ORC_UW_MIN,ORC_UW_MAX)
-#define ORC_CLAMP_SL(x) ORC_CLAMP(x,ORC_SL_MIN,ORC_SL_MAX)
-#define ORC_CLAMP_UL(x) ORC_CLAMP(x,ORC_UL_MIN,ORC_UL_MAX)
-#define ORC_SWAP_W(x) ((((x)&0xffU)<<8) | (((x)&0xff00U)>>8))
-#define ORC_SWAP_L(x) ((((x)&0xffU)<<24) | (((x)&0xff00U)<<8) | (((x)&0xff0000U)>>8) | (((x)&0xff000000U)>>24))
-#define ORC_SWAP_Q(x) ((((x)&ORC_UINT64_C(0xff))<<56) | (((x)&ORC_UINT64_C(0xff00))<<40) | (((x)&ORC_UINT64_C(0xff0000))<<24) | (((x)&ORC_UINT64_C(0xff000000))<<8) | (((x)&ORC_UINT64_C(0xff00000000))>>8) | (((x)&ORC_UINT64_C(0xff0000000000))>>24) | (((x)&ORC_UINT64_C(0xff000000000000))>>40) | (((x)&ORC_UINT64_C(0xff00000000000000))>>56))
-#define ORC_PTR_OFFSET(ptr,offset) ((void *)(((unsigned char *)(ptr)) + (offset)))
-#define ORC_DENORMAL(x) ((x) & ((((x)&0x7f800000) == 0) ? 0xff800000 : 0xffffffff))
-#define ORC_ISNAN(x) ((((x)&0x7f800000) == 0x7f800000) && (((x)&0x007fffff) != 0))
-#define ORC_DENORMAL_DOUBLE(x) ((x) & ((((x)&ORC_UINT64_C(0x7ff0000000000000)) == 0) ? ORC_UINT64_C(0xfff0000000000000) : ORC_UINT64_C(0xffffffffffffffff)))
-#define ORC_ISNAN_DOUBLE(x) ((((x)&ORC_UINT64_C(0x7ff0000000000000)) == ORC_UINT64_C(0x7ff0000000000000)) && (((x)&ORC_UINT64_C(0x000fffffffffffff)) != 0))
-#ifndef ORC_RESTRICT
-#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
-#define ORC_RESTRICT restrict
-#elif defined(__GNUC__) && __GNUC__ >= 4
-#define ORC_RESTRICT __restrict__
-#else
-#define ORC_RESTRICT
-#endif
-#endif
-/* end Orc C target preamble */
-
-
-
-/* video_scale_orc_merge_linear_u8 */
-#ifdef DISABLE_ORC
-void
-video_scale_orc_merge_linear_u8 (orc_uint8 * ORC_RESTRICT d1,
-    const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2,
-    int p1, int n)
-{
-  int i;
-  orc_int8 *ORC_RESTRICT ptr0;
-  const orc_int8 *ORC_RESTRICT ptr4;
-  const orc_int8 *ORC_RESTRICT ptr5;
-  orc_int8 var36;
-  orc_int8 var37;
-  orc_union16 var38;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_union16 var39;
-#else
-  orc_union16 var39;
-#endif
-  orc_int8 var40;
-  orc_int8 var41;
-  orc_union16 var42;
-  orc_union16 var43;
-  orc_union16 var44;
-  orc_union16 var45;
-  orc_union16 var46;
-  orc_int8 var47;
-
-  ptr0 = (orc_int8 *) d1;
-  ptr4 = (orc_int8 *) s1;
-  ptr5 = (orc_int8 *) s2;
-
-  /* 6: loadpw */
-  var38.i = p1;
-  /* 8: loadpw */
-  var39.i = (int) 0x00000080;   /* 128 or 6.32404e-322f */
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadb */
-    var41 = ptr4[i];
-    /* 1: loadb */
-    var36 = ptr4[i];
-    /* 2: convubw */
-    var42.i = (orc_uint8) var36;
-    /* 3: loadb */
-    var37 = ptr5[i];
-    /* 4: convubw */
-    var43.i = (orc_uint8) var37;
-    /* 5: subw */
-    var44.i = var43.i - var42.i;
-    /* 7: mullw */
-    var45.i = (var44.i * var38.i) & 0xffff;
-    /* 9: addw */
-    var46.i = var45.i + var39.i;
-    /* 10: convhwb */
-    var47 = ((orc_uint16) var46.i) >> 8;
-    /* 11: addb */
-    var40 = var47 + var41;
-    /* 12: storeb */
-    ptr0[i] = var40;
-  }
-
-}
-
-#else
-static void
-_backup_video_scale_orc_merge_linear_u8 (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int n = ex->n;
-  orc_int8 *ORC_RESTRICT ptr0;
-  const orc_int8 *ORC_RESTRICT ptr4;
-  const orc_int8 *ORC_RESTRICT ptr5;
-  orc_int8 var36;
-  orc_int8 var37;
-  orc_union16 var38;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_union16 var39;
-#else
-  orc_union16 var39;
-#endif
-  orc_int8 var40;
-  orc_int8 var41;
-  orc_union16 var42;
-  orc_union16 var43;
-  orc_union16 var44;
-  orc_union16 var45;
-  orc_union16 var46;
-  orc_int8 var47;
-
-  ptr0 = (orc_int8 *) ex->arrays[0];
-  ptr4 = (orc_int8 *) ex->arrays[4];
-  ptr5 = (orc_int8 *) ex->arrays[5];
-
-  /* 6: loadpw */
-  var38.i = ex->params[24];
-  /* 8: loadpw */
-  var39.i = (int) 0x00000080;   /* 128 or 6.32404e-322f */
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadb */
-    var41 = ptr4[i];
-    /* 1: loadb */
-    var36 = ptr4[i];
-    /* 2: convubw */
-    var42.i = (orc_uint8) var36;
-    /* 3: loadb */
-    var37 = ptr5[i];
-    /* 4: convubw */
-    var43.i = (orc_uint8) var37;
-    /* 5: subw */
-    var44.i = var43.i - var42.i;
-    /* 7: mullw */
-    var45.i = (var44.i * var38.i) & 0xffff;
-    /* 9: addw */
-    var46.i = var45.i + var39.i;
-    /* 10: convhwb */
-    var47 = ((orc_uint16) var46.i) >> 8;
-    /* 11: addb */
-    var40 = var47 + var41;
-    /* 12: storeb */
-    ptr0[i] = var40;
-  }
-
-}
-
-void
-video_scale_orc_merge_linear_u8 (orc_uint8 * ORC_RESTRICT d1,
-    const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2,
-    int p1, int n)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 9, 31, 118, 105, 100, 101, 111, 95, 115, 99, 97, 108, 101, 95, 111,
-        114, 99, 95, 109, 101, 114, 103, 101, 95, 108, 105, 110, 101, 97, 114,
-        95,
-        117, 56, 11, 1, 1, 12, 1, 1, 12, 1, 1, 14, 4, 128, 0, 0,
-        0, 16, 1, 20, 2, 20, 2, 20, 1, 20, 1, 43, 34, 4, 150, 32,
-        4, 150, 33, 5, 98, 33, 33, 32, 89, 33, 33, 24, 70, 33, 33, 16,
-        158, 35, 33, 33, 0, 35, 34, 2, 0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p,
-          _backup_video_scale_orc_merge_linear_u8);
-#else
-      p = orc_program_new ();
-      orc_program_set_name (p, "video_scale_orc_merge_linear_u8");
-      orc_program_set_backup_function (p,
-          _backup_video_scale_orc_merge_linear_u8);
-      orc_program_add_destination (p, 1, "d1");
-      orc_program_add_source (p, 1, "s1");
-      orc_program_add_source (p, 1, "s2");
-      orc_program_add_constant (p, 4, 0x00000080, "c1");
-      orc_program_add_parameter (p, 1, "p1");
-      orc_program_add_temporary (p, 2, "t1");
-      orc_program_add_temporary (p, 2, "t2");
-      orc_program_add_temporary (p, 1, "t3");
-      orc_program_add_temporary (p, 1, "t4");
-
-      orc_program_append_2 (p, "loadb", 0, ORC_VAR_T3, ORC_VAR_S1, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "convubw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "convubw", 0, ORC_VAR_T2, ORC_VAR_S2, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "subw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_T1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mullw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_P1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "addw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "convhwb", 0, ORC_VAR_T4, ORC_VAR_T2, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "addb", 0, ORC_VAR_D1, ORC_VAR_T4, ORC_VAR_T3,
-          ORC_VAR_D1);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-  ex->arrays[ORC_VAR_S2] = (void *) s2;
-  ex->params[ORC_VAR_P1] = p1;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_scale_orc_merge_linear_u16 */
-#ifdef DISABLE_ORC
-void
-video_scale_orc_merge_linear_u16 (orc_uint16 * ORC_RESTRICT d1,
-    const orc_uint16 * ORC_RESTRICT s1, const orc_uint16 * ORC_RESTRICT s2,
-    int p1, int p2, int n)
-{
-  int i;
-  orc_union16 *ORC_RESTRICT ptr0;
-  const orc_union16 *ORC_RESTRICT ptr4;
-  const orc_union16 *ORC_RESTRICT ptr5;
-  orc_union16 var34;
-  orc_union16 var35;
-  orc_union16 var36;
-  orc_union16 var37;
-  orc_union16 var38;
-  orc_union32 var39;
-  orc_union32 var40;
-  orc_union32 var41;
-  orc_union32 var42;
-
-  ptr0 = (orc_union16 *) d1;
-  ptr4 = (orc_union16 *) s1;
-  ptr5 = (orc_union16 *) s2;
-
-  /* 1: loadpw */
-  var35.i = p1;
-  /* 4: loadpw */
-  var37.i = p2;
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadw */
-    var34 = ptr4[i];
-    /* 2: muluwl */
-    var39.i = ((orc_uint16) var34.i) * ((orc_uint16) var35.i);
-    /* 3: loadw */
-    var36 = ptr5[i];
-    /* 5: muluwl */
-    var40.i = ((orc_uint16) var36.i) * ((orc_uint16) var37.i);
-    /* 6: addl */
-    var41.i = var39.i + var40.i;
-    /* 7: shrul */
-    var42.i = ((orc_uint32) var41.i) >> 16;
-    /* 8: convlw */
-    var38.i = var42.i;
-    /* 9: storew */
-    ptr0[i] = var38;
-  }
-
-}
-
-#else
-static void
-_backup_video_scale_orc_merge_linear_u16 (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int n = ex->n;
-  orc_union16 *ORC_RESTRICT ptr0;
-  const orc_union16 *ORC_RESTRICT ptr4;
-  const orc_union16 *ORC_RESTRICT ptr5;
-  orc_union16 var34;
-  orc_union16 var35;
-  orc_union16 var36;
-  orc_union16 var37;
-  orc_union16 var38;
-  orc_union32 var39;
-  orc_union32 var40;
-  orc_union32 var41;
-  orc_union32 var42;
-
-  ptr0 = (orc_union16 *) ex->arrays[0];
-  ptr4 = (orc_union16 *) ex->arrays[4];
-  ptr5 = (orc_union16 *) ex->arrays[5];
-
-  /* 1: loadpw */
-  var35.i = ex->params[24];
-  /* 4: loadpw */
-  var37.i = ex->params[25];
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadw */
-    var34 = ptr4[i];
-    /* 2: muluwl */
-    var39.i = ((orc_uint16) var34.i) * ((orc_uint16) var35.i);
-    /* 3: loadw */
-    var36 = ptr5[i];
-    /* 5: muluwl */
-    var40.i = ((orc_uint16) var36.i) * ((orc_uint16) var37.i);
-    /* 6: addl */
-    var41.i = var39.i + var40.i;
-    /* 7: shrul */
-    var42.i = ((orc_uint32) var41.i) >> 16;
-    /* 8: convlw */
-    var38.i = var42.i;
-    /* 9: storew */
-    ptr0[i] = var38;
-  }
-
-}
-
-void
-video_scale_orc_merge_linear_u16 (orc_uint16 * ORC_RESTRICT d1,
-    const orc_uint16 * ORC_RESTRICT s1, const orc_uint16 * ORC_RESTRICT s2,
-    int p1, int p2, int n)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 9, 32, 118, 105, 100, 101, 111, 95, 115, 99, 97, 108, 101, 95, 111,
-        114, 99, 95, 109, 101, 114, 103, 101, 95, 108, 105, 110, 101, 97, 114,
-        95,
-        117, 49, 54, 11, 2, 2, 12, 2, 2, 12, 2, 2, 14, 4, 16, 0,
-        0, 0, 16, 2, 16, 2, 20, 4, 20, 4, 177, 32, 4, 24, 177, 33,
-        5, 25, 103, 32, 32, 33, 126, 32, 32, 16, 163, 0, 32, 2, 0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p,
-          _backup_video_scale_orc_merge_linear_u16);
-#else
-      p = orc_program_new ();
-      orc_program_set_name (p, "video_scale_orc_merge_linear_u16");
-      orc_program_set_backup_function (p,
-          _backup_video_scale_orc_merge_linear_u16);
-      orc_program_add_destination (p, 2, "d1");
-      orc_program_add_source (p, 2, "s1");
-      orc_program_add_source (p, 2, "s2");
-      orc_program_add_constant (p, 4, 0x00000010, "c1");
-      orc_program_add_parameter (p, 2, "p1");
-      orc_program_add_parameter (p, 2, "p2");
-      orc_program_add_temporary (p, 4, "t1");
-      orc_program_add_temporary (p, 4, "t2");
-
-      orc_program_append_2 (p, "muluwl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_P1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "muluwl", 0, ORC_VAR_T2, ORC_VAR_S2, ORC_VAR_P2,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "addl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T2,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "shrul", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "convlw", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
-          ORC_VAR_D1);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-  ex->arrays[ORC_VAR_S2] = (void *) s2;
-  ex->params[ORC_VAR_P1] = p1;
-  ex->params[ORC_VAR_P2] = p2;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_scale_orc_splat_u16 */
-#ifdef DISABLE_ORC
-void
-video_scale_orc_splat_u16 (orc_uint16 * ORC_RESTRICT d1, int p1, int n)
-{
-  int i;
-  orc_union16 *ORC_RESTRICT ptr0;
-  orc_union16 var32;
-  orc_union16 var33;
-
-  ptr0 = (orc_union16 *) d1;
-
-  /* 0: loadpw */
-  var32.i = p1;
-
-  for (i = 0; i < n; i++) {
-    /* 1: copyw */
-    var33.i = var32.i;
-    /* 2: storew */
-    ptr0[i] = var33;
-  }
-
-}
-
-#else
-static void
-_backup_video_scale_orc_splat_u16 (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int n = ex->n;
-  orc_union16 *ORC_RESTRICT ptr0;
-  orc_union16 var32;
-  orc_union16 var33;
-
-  ptr0 = (orc_union16 *) ex->arrays[0];
-
-  /* 0: loadpw */
-  var32.i = ex->params[24];
-
-  for (i = 0; i < n; i++) {
-    /* 1: copyw */
-    var33.i = var32.i;
-    /* 2: storew */
-    ptr0[i] = var33;
-  }
-
-}
-
-void
-video_scale_orc_splat_u16 (orc_uint16 * ORC_RESTRICT d1, int p1, int n)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 9, 25, 118, 105, 100, 101, 111, 95, 115, 99, 97, 108, 101, 95, 111,
-        114, 99, 95, 115, 112, 108, 97, 116, 95, 117, 49, 54, 11, 2, 2, 16,
-        2, 79, 0, 24, 2, 0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p, _backup_video_scale_orc_splat_u16);
-#else
-      p = orc_program_new ();
-      orc_program_set_name (p, "video_scale_orc_splat_u16");
-      orc_program_set_backup_function (p, _backup_video_scale_orc_splat_u16);
-      orc_program_add_destination (p, 2, "d1");
-      orc_program_add_parameter (p, 2, "p1");
-
-      orc_program_append_2 (p, "copyw", 0, ORC_VAR_D1, ORC_VAR_P1, ORC_VAR_D1,
-          ORC_VAR_D1);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->params[ORC_VAR_P1] = p1;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_scale_orc_splat_u32 */
-#ifdef DISABLE_ORC
-void
-video_scale_orc_splat_u32 (orc_uint32 * ORC_RESTRICT d1, int p1, int n)
-{
-  int i;
-  orc_union32 *ORC_RESTRICT ptr0;
-  orc_union32 var32;
-  orc_union32 var33;
-
-  ptr0 = (orc_union32 *) d1;
-
-  /* 0: loadpl */
-  var32.i = p1;
-
-  for (i = 0; i < n; i++) {
-    /* 1: copyl */
-    var33.i = var32.i;
-    /* 2: storel */
-    ptr0[i] = var33;
-  }
-
-}
-
-#else
-static void
-_backup_video_scale_orc_splat_u32 (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int n = ex->n;
-  orc_union32 *ORC_RESTRICT ptr0;
-  orc_union32 var32;
-  orc_union32 var33;
-
-  ptr0 = (orc_union32 *) ex->arrays[0];
-
-  /* 0: loadpl */
-  var32.i = ex->params[24];
-
-  for (i = 0; i < n; i++) {
-    /* 1: copyl */
-    var33.i = var32.i;
-    /* 2: storel */
-    ptr0[i] = var33;
-  }
-
-}
-
-void
-video_scale_orc_splat_u32 (orc_uint32 * ORC_RESTRICT d1, int p1, int n)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 9, 25, 118, 105, 100, 101, 111, 95, 115, 99, 97, 108, 101, 95, 111,
-        114, 99, 95, 115, 112, 108, 97, 116, 95, 117, 51, 50, 11, 4, 4, 16,
-        4, 112, 0, 24, 2, 0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p, _backup_video_scale_orc_splat_u32);
-#else
-      p = orc_program_new ();
-      orc_program_set_name (p, "video_scale_orc_splat_u32");
-      orc_program_set_backup_function (p, _backup_video_scale_orc_splat_u32);
-      orc_program_add_destination (p, 4, "d1");
-      orc_program_add_parameter (p, 4, "p1");
-
-      orc_program_append_2 (p, "copyl", 0, ORC_VAR_D1, ORC_VAR_P1, ORC_VAR_D1,
-          ORC_VAR_D1);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->params[ORC_VAR_P1] = p1;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_scale_orc_splat_u64 */
-#ifdef DISABLE_ORC
-void
-video_scale_orc_splat_u64 (orc_uint64 * ORC_RESTRICT d1, orc_int64 p1, int n)
-{
-  int i;
-  orc_union64 *ORC_RESTRICT ptr0;
-  orc_union64 var32;
-  orc_union64 var33;
-
-  ptr0 = (orc_union64 *) d1;
-
-  /* 0: loadpq */
-  var32.i = p1;
-
-  for (i = 0; i < n; i++) {
-    /* 1: copyq */
-    var33.i = var32.i;
-    /* 2: storeq */
-    ptr0[i] = var33;
-  }
-
-}
-
-#else
-static void
-_backup_video_scale_orc_splat_u64 (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int n = ex->n;
-  orc_union64 *ORC_RESTRICT ptr0;
-  orc_union64 var32;
-  orc_union64 var33;
-
-  ptr0 = (orc_union64 *) ex->arrays[0];
-
-  /* 0: loadpq */
-  var32.i =
-      (ex->params[24] & 0xffffffff) | ((orc_uint64) (ex->params[24 +
-              (ORC_VAR_T1 - ORC_VAR_P1)]) << 32);
-
-  for (i = 0; i < n; i++) {
-    /* 1: copyq */
-    var33.i = var32.i;
-    /* 2: storeq */
-    ptr0[i] = var33;
-  }
-
-}
-
-void
-video_scale_orc_splat_u64 (orc_uint64 * ORC_RESTRICT d1, orc_int64 p1, int n)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 9, 25, 118, 105, 100, 101, 111, 95, 115, 99, 97, 108, 101, 95, 111,
-        114, 99, 95, 115, 112, 108, 97, 116, 95, 117, 54, 52, 11, 8, 8, 18,
-        8, 137, 0, 24, 2, 0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p, _backup_video_scale_orc_splat_u64);
-#else
-      p = orc_program_new ();
-      orc_program_set_name (p, "video_scale_orc_splat_u64");
-      orc_program_set_backup_function (p, _backup_video_scale_orc_splat_u64);
-      orc_program_add_destination (p, 8, "d1");
-      orc_program_add_parameter_int64 (p, 8, "p1");
-
-      orc_program_append_2 (p, "copyq", 0, ORC_VAR_D1, ORC_VAR_P1, ORC_VAR_D1,
-          ORC_VAR_D1);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ex->arrays[ORC_VAR_D1] = d1;
-  {
-    orc_union64 tmp;
-    tmp.i = p1;
-    ex->params[ORC_VAR_P1] = tmp.x2[0];
-    ex->params[ORC_VAR_T1] = tmp.x2[1];
-  }
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_scale_orc_downsample_u8 */
-#ifdef DISABLE_ORC
-void
-video_scale_orc_downsample_u8 (guint8 * ORC_RESTRICT d1,
-    const guint8 * ORC_RESTRICT s1, int n)
-{
-  int i;
-  orc_int8 *ORC_RESTRICT ptr0;
-  const orc_union16 *ORC_RESTRICT ptr4;
-  orc_union16 var34;
-  orc_int8 var35;
-  orc_int8 var36;
-  orc_int8 var37;
-
-  ptr0 = (orc_int8 *) d1;
-  ptr4 = (orc_union16 *) s1;
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadw */
-    var34 = ptr4[i];
-    /* 1: splitwb */
-    {
-      orc_union16 _src;
-      _src.i = var34.i;
-      var36 = _src.x2[1];
-      var37 = _src.x2[0];
-    }
-    /* 2: avgub */
-    var35 = ((orc_uint8) var36 + (orc_uint8) var37 + 1) >> 1;
-    /* 3: storeb */
-    ptr0[i] = var35;
-  }
-
-}
-
-#else
-static void
-_backup_video_scale_orc_downsample_u8 (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int n = ex->n;
-  orc_int8 *ORC_RESTRICT ptr0;
-  const orc_union16 *ORC_RESTRICT ptr4;
-  orc_union16 var34;
-  orc_int8 var35;
-  orc_int8 var36;
-  orc_int8 var37;
-
-  ptr0 = (orc_int8 *) ex->arrays[0];
-  ptr4 = (orc_union16 *) ex->arrays[4];
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadw */
-    var34 = ptr4[i];
-    /* 1: splitwb */
-    {
-      orc_union16 _src;
-      _src.i = var34.i;
-      var36 = _src.x2[1];
-      var37 = _src.x2[0];
-    }
-    /* 2: avgub */
-    var35 = ((orc_uint8) var36 + (orc_uint8) var37 + 1) >> 1;
-    /* 3: storeb */
-    ptr0[i] = var35;
-  }
-
-}
-
-void
-video_scale_orc_downsample_u8 (guint8 * ORC_RESTRICT d1,
-    const guint8 * ORC_RESTRICT s1, int n)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 9, 29, 118, 105, 100, 101, 111, 95, 115, 99, 97, 108, 101, 95, 111,
-        114, 99, 95, 100, 111, 119, 110, 115, 97, 109, 112, 108, 101, 95, 117,
-        56,
-        11, 1, 1, 12, 2, 2, 20, 1, 20, 1, 199, 32, 33, 4, 39, 0,
-        32, 33, 2, 0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p,
-          _backup_video_scale_orc_downsample_u8);
-#else
-      p = orc_program_new ();
-      orc_program_set_name (p, "video_scale_orc_downsample_u8");
-      orc_program_set_backup_function (p,
-          _backup_video_scale_orc_downsample_u8);
-      orc_program_add_destination (p, 1, "d1");
-      orc_program_add_source (p, 2, "s1");
-      orc_program_add_temporary (p, 1, "t1");
-      orc_program_add_temporary (p, 1, "t2");
-
-      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T1, ORC_VAR_T2, ORC_VAR_S1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "avgub", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T2,
-          ORC_VAR_D1);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_scale_orc_downsample_u16 */
-#ifdef DISABLE_ORC
-void
-video_scale_orc_downsample_u16 (guint16 * ORC_RESTRICT d1,
-    const guint16 * ORC_RESTRICT s1, int n)
-{
-  int i;
-  orc_union16 *ORC_RESTRICT ptr0;
-  const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var34;
-  orc_union16 var35;
-  orc_union16 var36;
-  orc_union16 var37;
-
-  ptr0 = (orc_union16 *) d1;
-  ptr4 = (orc_union32 *) s1;
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadl */
-    var34 = ptr4[i];
-    /* 1: splitlw */
-    {
-      orc_union32 _src;
-      _src.i = var34.i;
-      var36.i = _src.x2[1];
-      var37.i = _src.x2[0];
-    }
-    /* 2: avguw */
-    var35.i = ((orc_uint16) var36.i + (orc_uint16) var37.i + 1) >> 1;
-    /* 3: storew */
-    ptr0[i] = var35;
-  }
-
-}
-
-#else
-static void
-_backup_video_scale_orc_downsample_u16 (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int n = ex->n;
-  orc_union16 *ORC_RESTRICT ptr0;
-  const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var34;
-  orc_union16 var35;
-  orc_union16 var36;
-  orc_union16 var37;
-
-  ptr0 = (orc_union16 *) ex->arrays[0];
-  ptr4 = (orc_union32 *) ex->arrays[4];
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadl */
-    var34 = ptr4[i];
-    /* 1: splitlw */
-    {
-      orc_union32 _src;
-      _src.i = var34.i;
-      var36.i = _src.x2[1];
-      var37.i = _src.x2[0];
-    }
-    /* 2: avguw */
-    var35.i = ((orc_uint16) var36.i + (orc_uint16) var37.i + 1) >> 1;
-    /* 3: storew */
-    ptr0[i] = var35;
-  }
-
-}
-
-void
-video_scale_orc_downsample_u16 (guint16 * ORC_RESTRICT d1,
-    const guint16 * ORC_RESTRICT s1, int n)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 9, 30, 118, 105, 100, 101, 111, 95, 115, 99, 97, 108, 101, 95, 111,
-        114, 99, 95, 100, 111, 119, 110, 115, 97, 109, 112, 108, 101, 95, 117,
-        49,
-        54, 11, 2, 2, 12, 4, 4, 20, 2, 20, 2, 198, 32, 33, 4, 76,
-        0, 32, 33, 2, 0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p,
-          _backup_video_scale_orc_downsample_u16);
-#else
-      p = orc_program_new ();
-      orc_program_set_name (p, "video_scale_orc_downsample_u16");
-      orc_program_set_backup_function (p,
-          _backup_video_scale_orc_downsample_u16);
-      orc_program_add_destination (p, 2, "d1");
-      orc_program_add_source (p, 4, "s1");
-      orc_program_add_temporary (p, 2, "t1");
-      orc_program_add_temporary (p, 2, "t2");
-
-      orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T1, ORC_VAR_T2, ORC_VAR_S1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "avguw", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T2,
-          ORC_VAR_D1);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_scale_orc_downsample_u32 */
-#ifdef DISABLE_ORC
-void
-video_scale_orc_downsample_u32 (guint8 * ORC_RESTRICT d1,
-    const guint8 * ORC_RESTRICT s1, int n)
-{
-  int i;
-  orc_union32 *ORC_RESTRICT ptr0;
-  const orc_union64 *ORC_RESTRICT ptr4;
-  orc_union64 var34;
-  orc_union32 var35;
-  orc_union32 var36;
-  orc_union32 var37;
-
-  ptr0 = (orc_union32 *) d1;
-  ptr4 = (orc_union64 *) s1;
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadq */
-    var34 = ptr4[i];
-    /* 1: splitql */
-    {
-      orc_union64 _src;
-      _src.i = var34.i;
-      var36.i = _src.x2[1];
-      var37.i = _src.x2[0];
-    }
-    /* 2: avgub */
-    var35.x4[0] = ((orc_uint8) var36.x4[0] + (orc_uint8) var37.x4[0] + 1) >> 1;
-    var35.x4[1] = ((orc_uint8) var36.x4[1] + (orc_uint8) var37.x4[1] + 1) >> 1;
-    var35.x4[2] = ((orc_uint8) var36.x4[2] + (orc_uint8) var37.x4[2] + 1) >> 1;
-    var35.x4[3] = ((orc_uint8) var36.x4[3] + (orc_uint8) var37.x4[3] + 1) >> 1;
-    /* 3: storel */
-    ptr0[i] = var35;
-  }
-
-}
-
-#else
-static void
-_backup_video_scale_orc_downsample_u32 (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int n = ex->n;
-  orc_union32 *ORC_RESTRICT ptr0;
-  const orc_union64 *ORC_RESTRICT ptr4;
-  orc_union64 var34;
-  orc_union32 var35;
-  orc_union32 var36;
-  orc_union32 var37;
-
-  ptr0 = (orc_union32 *) ex->arrays[0];
-  ptr4 = (orc_union64 *) ex->arrays[4];
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadq */
-    var34 = ptr4[i];
-    /* 1: splitql */
-    {
-      orc_union64 _src;
-      _src.i = var34.i;
-      var36.i = _src.x2[1];
-      var37.i = _src.x2[0];
-    }
-    /* 2: avgub */
-    var35.x4[0] = ((orc_uint8) var36.x4[0] + (orc_uint8) var37.x4[0] + 1) >> 1;
-    var35.x4[1] = ((orc_uint8) var36.x4[1] + (orc_uint8) var37.x4[1] + 1) >> 1;
-    var35.x4[2] = ((orc_uint8) var36.x4[2] + (orc_uint8) var37.x4[2] + 1) >> 1;
-    var35.x4[3] = ((orc_uint8) var36.x4[3] + (orc_uint8) var37.x4[3] + 1) >> 1;
-    /* 3: storel */
-    ptr0[i] = var35;
-  }
-
-}
-
-void
-video_scale_orc_downsample_u32 (guint8 * ORC_RESTRICT d1,
-    const guint8 * ORC_RESTRICT s1, int n)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 9, 30, 118, 105, 100, 101, 111, 95, 115, 99, 97, 108, 101, 95, 111,
-        114, 99, 95, 100, 111, 119, 110, 115, 97, 109, 112, 108, 101, 95, 117,
-        51,
-        50, 11, 4, 4, 12, 8, 8, 20, 4, 20, 4, 197, 32, 33, 4, 21,
-        2, 39, 0, 32, 33, 2, 0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p,
-          _backup_video_scale_orc_downsample_u32);
-#else
-      p = orc_program_new ();
-      orc_program_set_name (p, "video_scale_orc_downsample_u32");
-      orc_program_set_backup_function (p,
-          _backup_video_scale_orc_downsample_u32);
-      orc_program_add_destination (p, 4, "d1");
-      orc_program_add_source (p, 8, "s1");
-      orc_program_add_temporary (p, 4, "t1");
-      orc_program_add_temporary (p, 4, "t2");
-
-      orc_program_append_2 (p, "splitql", 0, ORC_VAR_T1, ORC_VAR_T2, ORC_VAR_S1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "avgub", 2, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T2,
-          ORC_VAR_D1);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_scale_orc_downsample_yuyv */
-#ifdef DISABLE_ORC
-void
-video_scale_orc_downsample_yuyv (guint8 * ORC_RESTRICT d1,
-    const guint8 * ORC_RESTRICT s1, int n)
-{
-  int i;
-  orc_union32 *ORC_RESTRICT ptr0;
-  const orc_union64 *ORC_RESTRICT ptr4;
-  orc_union64 var38;
-  orc_union32 var39;
-  orc_union32 var40;
-  orc_union32 var41;
-  orc_union16 var42;
-  orc_union16 var43;
-  orc_union16 var44;
-  orc_union16 var45;
-  orc_union16 var46;
-  orc_union16 var47;
-
-  ptr0 = (orc_union32 *) d1;
-  ptr4 = (orc_union64 *) s1;
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadq */
-    var38 = ptr4[i];
-    /* 1: splitwb */
-    {
-      orc_union16 _src;
-      _src.i = var38.x4[0];
-      var40.x4[0] = _src.x2[1];
-      var41.x4[0] = _src.x2[0];
-    }
-    {
-      orc_union16 _src;
-      _src.i = var38.x4[1];
-      var40.x4[1] = _src.x2[1];
-      var41.x4[1] = _src.x2[0];
-    }
-    {
-      orc_union16 _src;
-      _src.i = var38.x4[2];
-      var40.x4[2] = _src.x2[1];
-      var41.x4[2] = _src.x2[0];
-    }
-    {
-      orc_union16 _src;
-      _src.i = var38.x4[3];
-      var40.x4[3] = _src.x2[1];
-      var41.x4[3] = _src.x2[0];
-    }
-    /* 2: splitwb */
-    {
-      orc_union16 _src;
-      _src.i = var40.x2[0];
-      var42.x2[0] = _src.x2[1];
-      var43.x2[0] = _src.x2[0];
-    }
-    {
-      orc_union16 _src;
-      _src.i = var40.x2[1];
-      var42.x2[1] = _src.x2[1];
-      var43.x2[1] = _src.x2[0];
-    }
-    /* 3: avgub */
-    var44.x2[0] = ((orc_uint8) var42.x2[0] + (orc_uint8) var43.x2[0] + 1) >> 1;
-    var44.x2[1] = ((orc_uint8) var42.x2[1] + (orc_uint8) var43.x2[1] + 1) >> 1;
-    /* 4: splitlw */
-    {
-      orc_union32 _src;
-      _src.i = var41.i;
-      var45.i = _src.x2[1];
-      var46.i = _src.x2[0];
-    }
-    /* 5: avgub */
-    var47.x2[0] = ((orc_uint8) var45.x2[0] + (orc_uint8) var46.x2[0] + 1) >> 1;
-    var47.x2[1] = ((orc_uint8) var45.x2[1] + (orc_uint8) var46.x2[1] + 1) >> 1;
-    /* 6: mergebw */
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var44.x2[0];
-      _dest.x2[1] = var47.x2[0];
-      var39.x2[0] = _dest.i;
-    }
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var44.x2[1];
-      _dest.x2[1] = var47.x2[1];
-      var39.x2[1] = _dest.i;
-    }
-    /* 7: storel */
-    ptr0[i] = var39;
-  }
-
-}
-
-#else
-static void
-_backup_video_scale_orc_downsample_yuyv (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int n = ex->n;
-  orc_union32 *ORC_RESTRICT ptr0;
-  const orc_union64 *ORC_RESTRICT ptr4;
-  orc_union64 var38;
-  orc_union32 var39;
-  orc_union32 var40;
-  orc_union32 var41;
-  orc_union16 var42;
-  orc_union16 var43;
-  orc_union16 var44;
-  orc_union16 var45;
-  orc_union16 var46;
-  orc_union16 var47;
-
-  ptr0 = (orc_union32 *) ex->arrays[0];
-  ptr4 = (orc_union64 *) ex->arrays[4];
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadq */
-    var38 = ptr4[i];
-    /* 1: splitwb */
-    {
-      orc_union16 _src;
-      _src.i = var38.x4[0];
-      var40.x4[0] = _src.x2[1];
-      var41.x4[0] = _src.x2[0];
-    }
-    {
-      orc_union16 _src;
-      _src.i = var38.x4[1];
-      var40.x4[1] = _src.x2[1];
-      var41.x4[1] = _src.x2[0];
-    }
-    {
-      orc_union16 _src;
-      _src.i = var38.x4[2];
-      var40.x4[2] = _src.x2[1];
-      var41.x4[2] = _src.x2[0];
-    }
-    {
-      orc_union16 _src;
-      _src.i = var38.x4[3];
-      var40.x4[3] = _src.x2[1];
-      var41.x4[3] = _src.x2[0];
-    }
-    /* 2: splitwb */
-    {
-      orc_union16 _src;
-      _src.i = var40.x2[0];
-      var42.x2[0] = _src.x2[1];
-      var43.x2[0] = _src.x2[0];
-    }
-    {
-      orc_union16 _src;
-      _src.i = var40.x2[1];
-      var42.x2[1] = _src.x2[1];
-      var43.x2[1] = _src.x2[0];
-    }
-    /* 3: avgub */
-    var44.x2[0] = ((orc_uint8) var42.x2[0] + (orc_uint8) var43.x2[0] + 1) >> 1;
-    var44.x2[1] = ((orc_uint8) var42.x2[1] + (orc_uint8) var43.x2[1] + 1) >> 1;
-    /* 4: splitlw */
-    {
-      orc_union32 _src;
-      _src.i = var41.i;
-      var45.i = _src.x2[1];
-      var46.i = _src.x2[0];
-    }
-    /* 5: avgub */
-    var47.x2[0] = ((orc_uint8) var45.x2[0] + (orc_uint8) var46.x2[0] + 1) >> 1;
-    var47.x2[1] = ((orc_uint8) var45.x2[1] + (orc_uint8) var46.x2[1] + 1) >> 1;
-    /* 6: mergebw */
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var44.x2[0];
-      _dest.x2[1] = var47.x2[0];
-      var39.x2[0] = _dest.i;
-    }
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var44.x2[1];
-      _dest.x2[1] = var47.x2[1];
-      var39.x2[1] = _dest.i;
-    }
-    /* 7: storel */
-    ptr0[i] = var39;
-  }
-
-}
-
-void
-video_scale_orc_downsample_yuyv (guint8 * ORC_RESTRICT d1,
-    const guint8 * ORC_RESTRICT s1, int n)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 9, 31, 118, 105, 100, 101, 111, 95, 115, 99, 97, 108, 101, 95, 111,
-        114, 99, 95, 100, 111, 119, 110, 115, 97, 109, 112, 108, 101, 95, 121,
-        117,
-        121, 118, 11, 4, 4, 12, 8, 8, 20, 4, 20, 4, 20, 2, 20, 2,
-        20, 2, 20, 2, 21, 2, 199, 32, 33, 4, 21, 1, 199, 34, 35, 32,
-        21, 1, 39, 36, 34, 35, 198, 34, 35, 33, 21, 1, 39, 37, 34, 35,
-        21, 1, 196, 0, 36, 37, 2, 0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p,
-          _backup_video_scale_orc_downsample_yuyv);
-#else
-      p = orc_program_new ();
-      orc_program_set_name (p, "video_scale_orc_downsample_yuyv");
-      orc_program_set_backup_function (p,
-          _backup_video_scale_orc_downsample_yuyv);
-      orc_program_add_destination (p, 4, "d1");
-      orc_program_add_source (p, 8, "s1");
-      orc_program_add_temporary (p, 4, "t1");
-      orc_program_add_temporary (p, 4, "t2");
-      orc_program_add_temporary (p, 2, "t3");
-      orc_program_add_temporary (p, 2, "t4");
-      orc_program_add_temporary (p, 2, "t5");
-      orc_program_add_temporary (p, 2, "t6");
-
-      orc_program_append_2 (p, "splitwb", 2, ORC_VAR_T1, ORC_VAR_T2, ORC_VAR_S1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T3, ORC_VAR_T4, ORC_VAR_T1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "avgub", 1, ORC_VAR_T5, ORC_VAR_T3, ORC_VAR_T4,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T3, ORC_VAR_T4, ORC_VAR_T2,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "avgub", 1, ORC_VAR_T6, ORC_VAR_T3, ORC_VAR_T4,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D1, ORC_VAR_T5, ORC_VAR_T6,
-          ORC_VAR_D1);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_scale_orc_resample_nearest_u8 */
-#ifdef DISABLE_ORC
-void
-video_scale_orc_resample_nearest_u8 (guint8 * ORC_RESTRICT d1,
-    const guint8 * ORC_RESTRICT s1, int p1, int p2, int n)
-{
-  int i;
-  orc_int8 *ORC_RESTRICT ptr0;
-  const orc_int8 *ORC_RESTRICT ptr4;
-  orc_int8 var32;
-
-  ptr0 = (orc_int8 *) d1;
-  ptr4 = (orc_int8 *) s1;
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: ldresnearb */
-    var32 = ptr4[(p1 + i * p2) >> 16];
-    /* 1: storeb */
-    ptr0[i] = var32;
-  }
-
-}
-
-#else
-static void
-_backup_video_scale_orc_resample_nearest_u8 (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int n = ex->n;
-  orc_int8 *ORC_RESTRICT ptr0;
-  const orc_int8 *ORC_RESTRICT ptr4;
-  orc_int8 var32;
-
-  ptr0 = (orc_int8 *) ex->arrays[0];
-  ptr4 = (orc_int8 *) ex->arrays[4];
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: ldresnearb */
-    var32 = ptr4[(ex->params[24] + i * ex->params[25]) >> 16];
-    /* 1: storeb */
-    ptr0[i] = var32;
-  }
-
-}
-
-void
-video_scale_orc_resample_nearest_u8 (guint8 * ORC_RESTRICT d1,
-    const guint8 * ORC_RESTRICT s1, int p1, int p2, int n)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 9, 35, 118, 105, 100, 101, 111, 95, 115, 99, 97, 108, 101, 95, 111,
-        114, 99, 95, 114, 101, 115, 97, 109, 112, 108, 101, 95, 110, 101, 97,
-        114,
-        101, 115, 116, 95, 117, 56, 11, 1, 1, 12, 1, 1, 16, 4, 16, 4,
-        48, 0, 4, 24, 25, 2, 0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p,
-          _backup_video_scale_orc_resample_nearest_u8);
-#else
-      p = orc_program_new ();
-      orc_program_set_name (p, "video_scale_orc_resample_nearest_u8");
-      orc_program_set_backup_function (p,
-          _backup_video_scale_orc_resample_nearest_u8);
-      orc_program_add_destination (p, 1, "d1");
-      orc_program_add_source (p, 1, "s1");
-      orc_program_add_parameter (p, 4, "p1");
-      orc_program_add_parameter (p, 4, "p2");
-
-      orc_program_append_2 (p, "ldresnearb", 0, ORC_VAR_D1, ORC_VAR_S1,
-          ORC_VAR_P1, ORC_VAR_P2);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-  ex->params[ORC_VAR_P1] = p1;
-  ex->params[ORC_VAR_P2] = p2;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_scale_orc_resample_bilinear_u8 */
-#ifdef DISABLE_ORC
-void
-video_scale_orc_resample_bilinear_u8 (guint8 * ORC_RESTRICT d1,
-    const guint8 * ORC_RESTRICT s1, int p1, int p2, int n)
-{
-  int i;
-  orc_int8 *ORC_RESTRICT ptr0;
-  const orc_int8 *ORC_RESTRICT ptr4;
-  orc_int8 var32;
-
-  ptr0 = (orc_int8 *) d1;
-  ptr4 = (orc_int8 *) s1;
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: ldreslinb */
-    {
-      int tmp = p1 + i * p2;
-      var32 =
-          ((orc_uint8) ptr4[tmp >> 16] * (256 - ((tmp >> 8) & 0xff)) +
-          (orc_uint8) ptr4[(tmp >> 16) + 1] * ((tmp >> 8) & 0xff)) >> 8;
-    }
-    /* 1: storeb */
-    ptr0[i] = var32;
-  }
-
-}
-
-#else
-static void
-_backup_video_scale_orc_resample_bilinear_u8 (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int n = ex->n;
-  orc_int8 *ORC_RESTRICT ptr0;
-  const orc_int8 *ORC_RESTRICT ptr4;
-  orc_int8 var32;
-
-  ptr0 = (orc_int8 *) ex->arrays[0];
-  ptr4 = (orc_int8 *) ex->arrays[4];
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: ldreslinb */
-    {
-      int tmp = ex->params[24] + i * ex->params[25];
-      var32 =
-          ((orc_uint8) ptr4[tmp >> 16] * (256 - ((tmp >> 8) & 0xff)) +
-          (orc_uint8) ptr4[(tmp >> 16) + 1] * ((tmp >> 8) & 0xff)) >> 8;
-    }
-    /* 1: storeb */
-    ptr0[i] = var32;
-  }
-
-}
-
-void
-video_scale_orc_resample_bilinear_u8 (guint8 * ORC_RESTRICT d1,
-    const guint8 * ORC_RESTRICT s1, int p1, int p2, int n)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 9, 36, 118, 105, 100, 101, 111, 95, 115, 99, 97, 108, 101, 95, 111,
-        114, 99, 95, 114, 101, 115, 97, 109, 112, 108, 101, 95, 98, 105, 108,
-        105,
-        110, 101, 97, 114, 95, 117, 56, 11, 1, 1, 12, 1, 1, 16, 4, 16,
-        4, 50, 0, 4, 24, 25, 2, 0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p,
-          _backup_video_scale_orc_resample_bilinear_u8);
-#else
-      p = orc_program_new ();
-      orc_program_set_name (p, "video_scale_orc_resample_bilinear_u8");
-      orc_program_set_backup_function (p,
-          _backup_video_scale_orc_resample_bilinear_u8);
-      orc_program_add_destination (p, 1, "d1");
-      orc_program_add_source (p, 1, "s1");
-      orc_program_add_parameter (p, 4, "p1");
-      orc_program_add_parameter (p, 4, "p2");
-
-      orc_program_append_2 (p, "ldreslinb", 0, ORC_VAR_D1, ORC_VAR_S1,
-          ORC_VAR_P1, ORC_VAR_P2);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-  ex->params[ORC_VAR_P1] = p1;
-  ex->params[ORC_VAR_P2] = p2;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_scale_orc_resample_nearest_u32 */
-#ifdef DISABLE_ORC
-void
-video_scale_orc_resample_nearest_u32 (guint8 * ORC_RESTRICT d1,
-    const guint8 * ORC_RESTRICT s1, int p1, int p2, int n)
-{
-  int i;
-  orc_union32 *ORC_RESTRICT ptr0;
-  const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var32;
-
-  ptr0 = (orc_union32 *) d1;
-  ptr4 = (orc_union32 *) s1;
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: ldresnearl */
-    var32 = ptr4[(p1 + i * p2) >> 16];
-    /* 1: storel */
-    ptr0[i] = var32;
-  }
-
-}
-
-#else
-static void
-_backup_video_scale_orc_resample_nearest_u32 (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int n = ex->n;
-  orc_union32 *ORC_RESTRICT ptr0;
-  const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var32;
-
-  ptr0 = (orc_union32 *) ex->arrays[0];
-  ptr4 = (orc_union32 *) ex->arrays[4];
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: ldresnearl */
-    var32 = ptr4[(ex->params[24] + i * ex->params[25]) >> 16];
-    /* 1: storel */
-    ptr0[i] = var32;
-  }
-
-}
-
-void
-video_scale_orc_resample_nearest_u32 (guint8 * ORC_RESTRICT d1,
-    const guint8 * ORC_RESTRICT s1, int p1, int p2, int n)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 9, 36, 118, 105, 100, 101, 111, 95, 115, 99, 97, 108, 101, 95, 111,
-        114, 99, 95, 114, 101, 115, 97, 109, 112, 108, 101, 95, 110, 101, 97,
-        114,
-        101, 115, 116, 95, 117, 51, 50, 11, 4, 4, 12, 4, 4, 16, 4, 16,
-        4, 49, 0, 4, 24, 25, 2, 0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p,
-          _backup_video_scale_orc_resample_nearest_u32);
-#else
-      p = orc_program_new ();
-      orc_program_set_name (p, "video_scale_orc_resample_nearest_u32");
-      orc_program_set_backup_function (p,
-          _backup_video_scale_orc_resample_nearest_u32);
-      orc_program_add_destination (p, 4, "d1");
-      orc_program_add_source (p, 4, "s1");
-      orc_program_add_parameter (p, 4, "p1");
-      orc_program_add_parameter (p, 4, "p2");
-
-      orc_program_append_2 (p, "ldresnearl", 0, ORC_VAR_D1, ORC_VAR_S1,
-          ORC_VAR_P1, ORC_VAR_P2);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-  ex->params[ORC_VAR_P1] = p1;
-  ex->params[ORC_VAR_P2] = p2;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_scale_orc_resample_bilinear_u32 */
-#ifdef DISABLE_ORC
-void
-video_scale_orc_resample_bilinear_u32 (guint8 * ORC_RESTRICT d1,
-    const guint8 * ORC_RESTRICT s1, int p1, int p2, int n)
-{
-  int i;
-  orc_union32 *ORC_RESTRICT ptr0;
-  const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var32;
-
-  ptr0 = (orc_union32 *) d1;
-  ptr4 = (orc_union32 *) s1;
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: ldreslinl */
-    {
-      int tmp = p1 + i * p2;
-      orc_union32 a = ptr4[tmp >> 16];
-      orc_union32 b = ptr4[(tmp >> 16) + 1];
-      var32.x4[0] =
-          ((orc_uint8) a.x4[0] * (256 - ((tmp >> 8) & 0xff)) +
-          (orc_uint8) b.x4[0] * ((tmp >> 8) & 0xff)) >> 8;
-      var32.x4[1] =
-          ((orc_uint8) a.x4[1] * (256 - ((tmp >> 8) & 0xff)) +
-          (orc_uint8) b.x4[1] * ((tmp >> 8) & 0xff)) >> 8;
-      var32.x4[2] =
-          ((orc_uint8) a.x4[2] * (256 - ((tmp >> 8) & 0xff)) +
-          (orc_uint8) b.x4[2] * ((tmp >> 8) & 0xff)) >> 8;
-      var32.x4[3] =
-          ((orc_uint8) a.x4[3] * (256 - ((tmp >> 8) & 0xff)) +
-          (orc_uint8) b.x4[3] * ((tmp >> 8) & 0xff)) >> 8;
-    }
-    /* 1: storel */
-    ptr0[i] = var32;
-  }
-
-}
-
-#else
-static void
-_backup_video_scale_orc_resample_bilinear_u32 (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int n = ex->n;
-  orc_union32 *ORC_RESTRICT ptr0;
-  const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var32;
-
-  ptr0 = (orc_union32 *) ex->arrays[0];
-  ptr4 = (orc_union32 *) ex->arrays[4];
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: ldreslinl */
-    {
-      int tmp = ex->params[24] + i * ex->params[25];
-      orc_union32 a = ptr4[tmp >> 16];
-      orc_union32 b = ptr4[(tmp >> 16) + 1];
-      var32.x4[0] =
-          ((orc_uint8) a.x4[0] * (256 - ((tmp >> 8) & 0xff)) +
-          (orc_uint8) b.x4[0] * ((tmp >> 8) & 0xff)) >> 8;
-      var32.x4[1] =
-          ((orc_uint8) a.x4[1] * (256 - ((tmp >> 8) & 0xff)) +
-          (orc_uint8) b.x4[1] * ((tmp >> 8) & 0xff)) >> 8;
-      var32.x4[2] =
-          ((orc_uint8) a.x4[2] * (256 - ((tmp >> 8) & 0xff)) +
-          (orc_uint8) b.x4[2] * ((tmp >> 8) & 0xff)) >> 8;
-      var32.x4[3] =
-          ((orc_uint8) a.x4[3] * (256 - ((tmp >> 8) & 0xff)) +
-          (orc_uint8) b.x4[3] * ((tmp >> 8) & 0xff)) >> 8;
-    }
-    /* 1: storel */
-    ptr0[i] = var32;
-  }
-
-}
-
-void
-video_scale_orc_resample_bilinear_u32 (guint8 * ORC_RESTRICT d1,
-    const guint8 * ORC_RESTRICT s1, int p1, int p2, int n)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 9, 37, 118, 105, 100, 101, 111, 95, 115, 99, 97, 108, 101, 95, 111,
-        114, 99, 95, 114, 101, 115, 97, 109, 112, 108, 101, 95, 98, 105, 108,
-        105,
-        110, 101, 97, 114, 95, 117, 51, 50, 11, 4, 4, 12, 4, 4, 16, 4,
-        16, 4, 51, 0, 4, 24, 25, 2, 0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p,
-          _backup_video_scale_orc_resample_bilinear_u32);
-#else
-      p = orc_program_new ();
-      orc_program_set_name (p, "video_scale_orc_resample_bilinear_u32");
-      orc_program_set_backup_function (p,
-          _backup_video_scale_orc_resample_bilinear_u32);
-      orc_program_add_destination (p, 4, "d1");
-      orc_program_add_source (p, 4, "s1");
-      orc_program_add_parameter (p, 4, "p1");
-      orc_program_add_parameter (p, 4, "p2");
-
-      orc_program_append_2 (p, "ldreslinl", 0, ORC_VAR_D1, ORC_VAR_S1,
-          ORC_VAR_P1, ORC_VAR_P2);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-  ex->params[ORC_VAR_P1] = p1;
-  ex->params[ORC_VAR_P2] = p2;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_scale_orc_resample_merge_bilinear_u32 */
-#ifdef DISABLE_ORC
-void
-video_scale_orc_resample_merge_bilinear_u32 (guint8 * ORC_RESTRICT d1,
-    guint8 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1,
-    const guint8 * ORC_RESTRICT s2, int p1, int p2, int p3, int n)
-{
-  int i;
-  orc_union32 *ORC_RESTRICT ptr0;
-  orc_union32 *ORC_RESTRICT ptr1;
-  const orc_union32 *ORC_RESTRICT ptr4;
-  const orc_union32 *ORC_RESTRICT ptr5;
-  orc_union64 var37;
-  orc_union32 var38;
-  orc_union32 var39;
-  orc_union32 var40;
-  orc_union64 var41;
-  orc_union64 var42;
-  orc_union64 var43;
-  orc_union64 var44;
-  orc_union32 var45;
-
-  ptr0 = (orc_union32 *) d1;
-  ptr1 = (orc_union32 *) d2;
-  ptr4 = (orc_union32 *) s1;
-  ptr5 = (orc_union32 *) s2;
-
-  /* 6: loadpw */
-  var37.x4[0] = p1;
-  var37.x4[1] = p1;
-  var37.x4[2] = p1;
-  var37.x4[3] = p1;
-
-  for (i = 0; i < n; i++) {
-    /* 0: ldreslinl */
-    {
-      int tmp = p2 + i * p3;
-      orc_union32 a = ptr5[tmp >> 16];
-      orc_union32 b = ptr5[(tmp >> 16) + 1];
-      var39.x4[0] =
-          ((orc_uint8) a.x4[0] * (256 - ((tmp >> 8) & 0xff)) +
-          (orc_uint8) b.x4[0] * ((tmp >> 8) & 0xff)) >> 8;
-      var39.x4[1] =
-          ((orc_uint8) a.x4[1] * (256 - ((tmp >> 8) & 0xff)) +
-          (orc_uint8) b.x4[1] * ((tmp >> 8) & 0xff)) >> 8;
-      var39.x4[2] =
-          ((orc_uint8) a.x4[2] * (256 - ((tmp >> 8) & 0xff)) +
-          (orc_uint8) b.x4[2] * ((tmp >> 8) & 0xff)) >> 8;
-      var39.x4[3] =
-          ((orc_uint8) a.x4[3] * (256 - ((tmp >> 8) & 0xff)) +
-          (orc_uint8) b.x4[3] * ((tmp >> 8) & 0xff)) >> 8;
-    }
-    /* 1: storel */
-    ptr1[i] = var39;
-    /* 2: loadl */
-    var40 = ptr4[i];
-    /* 3: convubw */
-    var41.x4[0] = (orc_uint8) var40.x4[0];
-    var41.x4[1] = (orc_uint8) var40.x4[1];
-    var41.x4[2] = (orc_uint8) var40.x4[2];
-    var41.x4[3] = (orc_uint8) var40.x4[3];
-    /* 4: convubw */
-    var42.x4[0] = (orc_uint8) var39.x4[0];
-    var42.x4[1] = (orc_uint8) var39.x4[1];
-    var42.x4[2] = (orc_uint8) var39.x4[2];
-    var42.x4[3] = (orc_uint8) var39.x4[3];
-    /* 5: subw */
-    var43.x4[0] = var42.x4[0] - var41.x4[0];
-    var43.x4[1] = var42.x4[1] - var41.x4[1];
-    var43.x4[2] = var42.x4[2] - var41.x4[2];
-    var43.x4[3] = var42.x4[3] - var41.x4[3];
-    /* 7: mullw */
-    var44.x4[0] = (var43.x4[0] * var37.x4[0]) & 0xffff;
-    var44.x4[1] = (var43.x4[1] * var37.x4[1]) & 0xffff;
-    var44.x4[2] = (var43.x4[2] * var37.x4[2]) & 0xffff;
-    var44.x4[3] = (var43.x4[3] * var37.x4[3]) & 0xffff;
-    /* 8: convhwb */
-    var45.x4[0] = ((orc_uint16) var44.x4[0]) >> 8;
-    var45.x4[1] = ((orc_uint16) var44.x4[1]) >> 8;
-    var45.x4[2] = ((orc_uint16) var44.x4[2]) >> 8;
-    var45.x4[3] = ((orc_uint16) var44.x4[3]) >> 8;
-    /* 9: addb */
-    var38.x4[0] = var45.x4[0] + var40.x4[0];
-    var38.x4[1] = var45.x4[1] + var40.x4[1];
-    var38.x4[2] = var45.x4[2] + var40.x4[2];
-    var38.x4[3] = var45.x4[3] + var40.x4[3];
-    /* 10: storel */
-    ptr0[i] = var38;
-  }
-
-}
-
-#else
-static void
-_backup_video_scale_orc_resample_merge_bilinear_u32 (OrcExecutor *
-    ORC_RESTRICT ex)
-{
-  int i;
-  int n = ex->n;
-  orc_union32 *ORC_RESTRICT ptr0;
-  orc_union32 *ORC_RESTRICT ptr1;
-  const orc_union32 *ORC_RESTRICT ptr4;
-  const orc_union32 *ORC_RESTRICT ptr5;
-  orc_union64 var37;
-  orc_union32 var38;
-  orc_union32 var39;
-  orc_union32 var40;
-  orc_union64 var41;
-  orc_union64 var42;
-  orc_union64 var43;
-  orc_union64 var44;
-  orc_union32 var45;
-
-  ptr0 = (orc_union32 *) ex->arrays[0];
-  ptr1 = (orc_union32 *) ex->arrays[1];
-  ptr4 = (orc_union32 *) ex->arrays[4];
-  ptr5 = (orc_union32 *) ex->arrays[5];
-
-  /* 6: loadpw */
-  var37.x4[0] = ex->params[24];
-  var37.x4[1] = ex->params[24];
-  var37.x4[2] = ex->params[24];
-  var37.x4[3] = ex->params[24];
-
-  for (i = 0; i < n; i++) {
-    /* 0: ldreslinl */
-    {
-      int tmp = ex->params[25] + i * ex->params[26];
-      orc_union32 a = ptr5[tmp >> 16];
-      orc_union32 b = ptr5[(tmp >> 16) + 1];
-      var39.x4[0] =
-          ((orc_uint8) a.x4[0] * (256 - ((tmp >> 8) & 0xff)) +
-          (orc_uint8) b.x4[0] * ((tmp >> 8) & 0xff)) >> 8;
-      var39.x4[1] =
-          ((orc_uint8) a.x4[1] * (256 - ((tmp >> 8) & 0xff)) +
-          (orc_uint8) b.x4[1] * ((tmp >> 8) & 0xff)) >> 8;
-      var39.x4[2] =
-          ((orc_uint8) a.x4[2] * (256 - ((tmp >> 8) & 0xff)) +
-          (orc_uint8) b.x4[2] * ((tmp >> 8) & 0xff)) >> 8;
-      var39.x4[3] =
-          ((orc_uint8) a.x4[3] * (256 - ((tmp >> 8) & 0xff)) +
-          (orc_uint8) b.x4[3] * ((tmp >> 8) & 0xff)) >> 8;
-    }
-    /* 1: storel */
-    ptr1[i] = var39;
-    /* 2: loadl */
-    var40 = ptr4[i];
-    /* 3: convubw */
-    var41.x4[0] = (orc_uint8) var40.x4[0];
-    var41.x4[1] = (orc_uint8) var40.x4[1];
-    var41.x4[2] = (orc_uint8) var40.x4[2];
-    var41.x4[3] = (orc_uint8) var40.x4[3];
-    /* 4: convubw */
-    var42.x4[0] = (orc_uint8) var39.x4[0];
-    var42.x4[1] = (orc_uint8) var39.x4[1];
-    var42.x4[2] = (orc_uint8) var39.x4[2];
-    var42.x4[3] = (orc_uint8) var39.x4[3];
-    /* 5: subw */
-    var43.x4[0] = var42.x4[0] - var41.x4[0];
-    var43.x4[1] = var42.x4[1] - var41.x4[1];
-    var43.x4[2] = var42.x4[2] - var41.x4[2];
-    var43.x4[3] = var42.x4[3] - var41.x4[3];
-    /* 7: mullw */
-    var44.x4[0] = (var43.x4[0] * var37.x4[0]) & 0xffff;
-    var44.x4[1] = (var43.x4[1] * var37.x4[1]) & 0xffff;
-    var44.x4[2] = (var43.x4[2] * var37.x4[2]) & 0xffff;
-    var44.x4[3] = (var43.x4[3] * var37.x4[3]) & 0xffff;
-    /* 8: convhwb */
-    var45.x4[0] = ((orc_uint16) var44.x4[0]) >> 8;
-    var45.x4[1] = ((orc_uint16) var44.x4[1]) >> 8;
-    var45.x4[2] = ((orc_uint16) var44.x4[2]) >> 8;
-    var45.x4[3] = ((orc_uint16) var44.x4[3]) >> 8;
-    /* 9: addb */
-    var38.x4[0] = var45.x4[0] + var40.x4[0];
-    var38.x4[1] = var45.x4[1] + var40.x4[1];
-    var38.x4[2] = var45.x4[2] + var40.x4[2];
-    var38.x4[3] = var45.x4[3] + var40.x4[3];
-    /* 10: storel */
-    ptr0[i] = var38;
-  }
-
-}
-
-void
-video_scale_orc_resample_merge_bilinear_u32 (guint8 * ORC_RESTRICT d1,
-    guint8 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1,
-    const guint8 * ORC_RESTRICT s2, int p1, int p2, int p3, int n)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 9, 43, 118, 105, 100, 101, 111, 95, 115, 99, 97, 108, 101, 95, 111,
-        114, 99, 95, 114, 101, 115, 97, 109, 112, 108, 101, 95, 109, 101, 114,
-        103,
-        101, 95, 98, 105, 108, 105, 110, 101, 97, 114, 95, 117, 51, 50, 11, 4,
-        4, 11, 4, 4, 12, 4, 4, 12, 4, 4, 16, 4, 16, 4, 16, 4,
-        20, 4, 20, 4, 20, 4, 20, 8, 20, 8, 51, 33, 5, 25, 26, 128,
-        1, 33, 113, 32, 4, 21, 2, 150, 35, 32, 21, 2, 150, 36, 33, 21,
-        2, 98, 36, 36, 35, 21, 2, 89, 36, 36, 24, 21, 2, 158, 34, 36,
-        21, 2, 33, 0, 34, 32, 2, 0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p,
-          _backup_video_scale_orc_resample_merge_bilinear_u32);
-#else
-      p = orc_program_new ();
-      orc_program_set_name (p, "video_scale_orc_resample_merge_bilinear_u32");
-      orc_program_set_backup_function (p,
-          _backup_video_scale_orc_resample_merge_bilinear_u32);
-      orc_program_add_destination (p, 4, "d1");
-      orc_program_add_destination (p, 4, "d2");
-      orc_program_add_source (p, 4, "s1");
-      orc_program_add_source (p, 4, "s2");
-      orc_program_add_parameter (p, 4, "p1");
-      orc_program_add_parameter (p, 4, "p2");
-      orc_program_add_parameter (p, 4, "p3");
-      orc_program_add_temporary (p, 4, "t1");
-      orc_program_add_temporary (p, 4, "t2");
-      orc_program_add_temporary (p, 4, "t3");
-      orc_program_add_temporary (p, 8, "t4");
-      orc_program_add_temporary (p, 8, "t5");
-
-      orc_program_append_2 (p, "ldreslinl", 0, ORC_VAR_T2, ORC_VAR_S2,
-          ORC_VAR_P2, ORC_VAR_P3);
-      orc_program_append_2 (p, "storel", 0, ORC_VAR_D2, ORC_VAR_T2, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "loadl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "convubw", 2, ORC_VAR_T4, ORC_VAR_T1, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "convubw", 2, ORC_VAR_T5, ORC_VAR_T2, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "subw", 2, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_T4,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mullw", 2, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_P1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "convhwb", 2, ORC_VAR_T3, ORC_VAR_T5, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "addb", 2, ORC_VAR_D1, ORC_VAR_T3, ORC_VAR_T1,
-          ORC_VAR_D1);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->arrays[ORC_VAR_D2] = d2;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-  ex->arrays[ORC_VAR_S2] = (void *) s2;
-  ex->params[ORC_VAR_P1] = p1;
-  ex->params[ORC_VAR_P2] = p2;
-  ex->params[ORC_VAR_P3] = p3;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_scale_orc_merge_bicubic_u8 */
-#ifdef DISABLE_ORC
-void
-video_scale_orc_merge_bicubic_u8 (guint8 * ORC_RESTRICT d1,
-    const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
-    const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, int p1,
-    int p2, int p3, int p4, int n)
-{
-  int i;
-  orc_int8 *ORC_RESTRICT ptr0;
-  const orc_int8 *ORC_RESTRICT ptr4;
-  const orc_int8 *ORC_RESTRICT ptr5;
-  const orc_int8 *ORC_RESTRICT ptr6;
-  const orc_int8 *ORC_RESTRICT ptr7;
-  orc_int8 var34;
-  orc_int8 var35;
-  orc_int8 var36;
-  orc_int8 var37;
-  orc_int8 var38;
-  orc_int8 var39;
-  orc_int8 var40;
-  orc_int8 var41;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_union16 var42;
-#else
-  orc_union16 var42;
-#endif
-  orc_int8 var43;
-  orc_union16 var44;
-  orc_union16 var45;
-  orc_union16 var46;
-  orc_union16 var47;
-  orc_union16 var48;
-  orc_union16 var49;
-  orc_union16 var50;
-  orc_union16 var51;
-  orc_union16 var52;
-
-  ptr0 = (orc_int8 *) d1;
-  ptr4 = (orc_int8 *) s1;
-  ptr5 = (orc_int8 *) s2;
-  ptr6 = (orc_int8 *) s3;
-  ptr7 = (orc_int8 *) s4;
-
-  /* 1: loadpb */
-  var35 = p2;
-  /* 4: loadpb */
-  var37 = p3;
-  /* 8: loadpb */
-  var39 = p1;
-  /* 12: loadpb */
-  var41 = p4;
-  /* 15: loadpw */
-  var42.i = (int) 0x00000020;   /* 32 or 1.58101e-322f */
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadb */
-    var34 = ptr5[i];
-    /* 2: mulubw */
-    var44.i = ((orc_uint8) var34) * ((orc_uint8) var35);
-    /* 3: loadb */
-    var36 = ptr6[i];
-    /* 5: mulubw */
-    var45.i = ((orc_uint8) var36) * ((orc_uint8) var37);
-    /* 6: addw */
-    var46.i = var44.i + var45.i;
-    /* 7: loadb */
-    var38 = ptr4[i];
-    /* 9: mulubw */
-    var47.i = ((orc_uint8) var38) * ((orc_uint8) var39);
-    /* 10: subw */
-    var48.i = var46.i - var47.i;
-    /* 11: loadb */
-    var40 = ptr7[i];
-    /* 13: mulubw */
-    var49.i = ((orc_uint8) var40) * ((orc_uint8) var41);
-    /* 14: subw */
-    var50.i = var48.i - var49.i;
-    /* 16: addw */
-    var51.i = var50.i + var42.i;
-    /* 17: shrsw */
-    var52.i = var51.i >> 6;
-    /* 18: convsuswb */
-    var43 = ORC_CLAMP_UB (var52.i);
-    /* 19: storeb */
-    ptr0[i] = var43;
-  }
-
-}
-
-#else
-static void
-_backup_video_scale_orc_merge_bicubic_u8 (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int n = ex->n;
-  orc_int8 *ORC_RESTRICT ptr0;
-  const orc_int8 *ORC_RESTRICT ptr4;
-  const orc_int8 *ORC_RESTRICT ptr5;
-  const orc_int8 *ORC_RESTRICT ptr6;
-  const orc_int8 *ORC_RESTRICT ptr7;
-  orc_int8 var34;
-  orc_int8 var35;
-  orc_int8 var36;
-  orc_int8 var37;
-  orc_int8 var38;
-  orc_int8 var39;
-  orc_int8 var40;
-  orc_int8 var41;
-#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_union16 var42;
-#else
-  orc_union16 var42;
-#endif
-  orc_int8 var43;
-  orc_union16 var44;
-  orc_union16 var45;
-  orc_union16 var46;
-  orc_union16 var47;
-  orc_union16 var48;
-  orc_union16 var49;
-  orc_union16 var50;
-  orc_union16 var51;
-  orc_union16 var52;
-
-  ptr0 = (orc_int8 *) ex->arrays[0];
-  ptr4 = (orc_int8 *) ex->arrays[4];
-  ptr5 = (orc_int8 *) ex->arrays[5];
-  ptr6 = (orc_int8 *) ex->arrays[6];
-  ptr7 = (orc_int8 *) ex->arrays[7];
-
-  /* 1: loadpb */
-  var35 = ex->params[25];
-  /* 4: loadpb */
-  var37 = ex->params[26];
-  /* 8: loadpb */
-  var39 = ex->params[24];
-  /* 12: loadpb */
-  var41 = ex->params[27];
-  /* 15: loadpw */
-  var42.i = (int) 0x00000020;   /* 32 or 1.58101e-322f */
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadb */
-    var34 = ptr5[i];
-    /* 2: mulubw */
-    var44.i = ((orc_uint8) var34) * ((orc_uint8) var35);
-    /* 3: loadb */
-    var36 = ptr6[i];
-    /* 5: mulubw */
-    var45.i = ((orc_uint8) var36) * ((orc_uint8) var37);
-    /* 6: addw */
-    var46.i = var44.i + var45.i;
-    /* 7: loadb */
-    var38 = ptr4[i];
-    /* 9: mulubw */
-    var47.i = ((orc_uint8) var38) * ((orc_uint8) var39);
-    /* 10: subw */
-    var48.i = var46.i - var47.i;
-    /* 11: loadb */
-    var40 = ptr7[i];
-    /* 13: mulubw */
-    var49.i = ((orc_uint8) var40) * ((orc_uint8) var41);
-    /* 14: subw */
-    var50.i = var48.i - var49.i;
-    /* 16: addw */
-    var51.i = var50.i + var42.i;
-    /* 17: shrsw */
-    var52.i = var51.i >> 6;
-    /* 18: convsuswb */
-    var43 = ORC_CLAMP_UB (var52.i);
-    /* 19: storeb */
-    ptr0[i] = var43;
-  }
-
-}
-
-void
-video_scale_orc_merge_bicubic_u8 (guint8 * ORC_RESTRICT d1,
-    const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
-    const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, int p1,
-    int p2, int p3, int p4, int n)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static volatile int p_inited = 0;
-  static OrcCode *c = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcProgram *p;
-
-#if 1
-      static const orc_uint8 bc[] = {
-        1, 9, 32, 118, 105, 100, 101, 111, 95, 115, 99, 97, 108, 101, 95, 111,
-        114, 99, 95, 109, 101, 114, 103, 101, 95, 98, 105, 99, 117, 98, 105, 99,
-        95, 117, 56, 11, 1, 1, 12, 1, 1, 12, 1, 1, 12, 1, 1, 12,
-        1, 1, 14, 4, 32, 0, 0, 0, 14, 4, 6, 0, 0, 0, 16, 4,
-        16, 4, 16, 4, 16, 4, 20, 2, 20, 2, 175, 32, 5, 25, 175, 33,
-        6, 26, 70, 32, 32, 33, 175, 33, 4, 24, 98, 32, 32, 33, 175, 33,
-        7, 27, 98, 32, 32, 33, 70, 32, 32, 16, 94, 32, 32, 17, 160, 0,
-        32, 2, 0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p,
-          _backup_video_scale_orc_merge_bicubic_u8);
-#else
-      p = orc_program_new ();
-      orc_program_set_name (p, "video_scale_orc_merge_bicubic_u8");
-      orc_program_set_backup_function (p,
-          _backup_video_scale_orc_merge_bicubic_u8);
-      orc_program_add_destination (p, 1, "d1");
-      orc_program_add_source (p, 1, "s1");
-      orc_program_add_source (p, 1, "s2");
-      orc_program_add_source (p, 1, "s3");
-      orc_program_add_source (p, 1, "s4");
-      orc_program_add_constant (p, 4, 0x00000020, "c1");
-      orc_program_add_constant (p, 4, 0x00000006, "c2");
-      orc_program_add_parameter (p, 4, "p1");
-      orc_program_add_parameter (p, 4, "p2");
-      orc_program_add_parameter (p, 4, "p3");
-      orc_program_add_parameter (p, 4, "p4");
-      orc_program_add_temporary (p, 2, "t1");
-      orc_program_add_temporary (p, 2, "t2");
-
-      orc_program_append_2 (p, "mulubw", 0, ORC_VAR_T1, ORC_VAR_S2, ORC_VAR_P2,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mulubw", 0, ORC_VAR_T2, ORC_VAR_S3, ORC_VAR_P3,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "addw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T2,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mulubw", 0, ORC_VAR_T2, ORC_VAR_S1, ORC_VAR_P1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "subw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T2,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mulubw", 0, ORC_VAR_T2, ORC_VAR_S4, ORC_VAR_P4,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "subw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T2,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "addw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C2,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "convsuswb", 0, ORC_VAR_D1, ORC_VAR_T1,
-          ORC_VAR_D1, ORC_VAR_D1);
-#endif
-
-      orc_program_compile (p);
-      c = orc_program_take_code (p);
-      orc_program_free (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->arrays[ORC_VAR_A2] = c;
-  ex->program = 0;
-
-  ex->n = n;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-  ex->arrays[ORC_VAR_S2] = (void *) s2;
-  ex->arrays[ORC_VAR_S3] = (void *) s3;
-  ex->arrays[ORC_VAR_S4] = (void *) s4;
-  ex->params[ORC_VAR_P1] = p1;
-  ex->params[ORC_VAR_P2] = p2;
-  ex->params[ORC_VAR_P3] = p3;
-  ex->params[ORC_VAR_P4] = p4;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
diff --git a/gst/videoscale/gstvideoscaleorc-dist.h b/gst/videoscale/gstvideoscaleorc-dist.h
deleted file mode 100644
index 868f07b..0000000
--- a/gst/videoscale/gstvideoscaleorc-dist.h
+++ /dev/null
@@ -1,104 +0,0 @@
-
-/* autogenerated from gstvideoscaleorc.orc */
-
-#ifndef _GSTVIDEOSCALEORC_H_
-#define _GSTVIDEOSCALEORC_H_
-
-#include <glib.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-
-#ifndef _ORC_INTEGER_TYPEDEFS_
-#define _ORC_INTEGER_TYPEDEFS_
-#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
-#include <stdint.h>
-typedef int8_t orc_int8;
-typedef int16_t orc_int16;
-typedef int32_t orc_int32;
-typedef int64_t orc_int64;
-typedef uint8_t orc_uint8;
-typedef uint16_t orc_uint16;
-typedef uint32_t orc_uint32;
-typedef uint64_t orc_uint64;
-#define ORC_UINT64_C(x) UINT64_C(x)
-#elif defined(_MSC_VER)
-typedef signed __int8 orc_int8;
-typedef signed __int16 orc_int16;
-typedef signed __int32 orc_int32;
-typedef signed __int64 orc_int64;
-typedef unsigned __int8 orc_uint8;
-typedef unsigned __int16 orc_uint16;
-typedef unsigned __int32 orc_uint32;
-typedef unsigned __int64 orc_uint64;
-#define ORC_UINT64_C(x) (x##Ui64)
-#define inline __inline
-#else
-#include <limits.h>
-typedef signed char orc_int8;
-typedef short orc_int16;
-typedef int orc_int32;
-typedef unsigned char orc_uint8;
-typedef unsigned short orc_uint16;
-typedef unsigned int orc_uint32;
-#if INT_MAX == LONG_MAX
-typedef long long orc_int64;
-typedef unsigned long long orc_uint64;
-#define ORC_UINT64_C(x) (x##ULL)
-#else
-typedef long orc_int64;
-typedef unsigned long orc_uint64;
-#define ORC_UINT64_C(x) (x##UL)
-#endif
-#endif
-typedef union { orc_int16 i; orc_int8 x2[2]; } orc_union16;
-typedef union { orc_int32 i; float f; orc_int16 x2[2]; orc_int8 x4[4]; } orc_union32;
-typedef union { orc_int64 i; double f; orc_int32 x2[2]; float x2f[2]; orc_int16 x4[4]; } orc_union64;
-#endif
-#ifndef ORC_RESTRICT
-#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
-#define ORC_RESTRICT restrict
-#elif defined(__GNUC__) && __GNUC__ >= 4
-#define ORC_RESTRICT __restrict__
-#else
-#define ORC_RESTRICT
-#endif
-#endif
-
-#ifndef ORC_INTERNAL
-#if defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590)
-#define ORC_INTERNAL __attribute__((visibility("hidden")))
-#elif defined(__SUNPRO_C) && (__SUNPRO_C >= 0x550)
-#define ORC_INTERNAL __hidden
-#elif defined (__GNUC__)
-#define ORC_INTERNAL __attribute__((visibility("hidden")))
-#else
-#define ORC_INTERNAL
-#endif
-#endif
-
-void video_scale_orc_merge_linear_u8 (orc_uint8 * ORC_RESTRICT d1, const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2, int p1, int n);
-void video_scale_orc_merge_linear_u16 (orc_uint16 * ORC_RESTRICT d1, const orc_uint16 * ORC_RESTRICT s1, const orc_uint16 * ORC_RESTRICT s2, int p1, int p2, int n);
-void video_scale_orc_splat_u16 (orc_uint16 * ORC_RESTRICT d1, int p1, int n);
-void video_scale_orc_splat_u32 (orc_uint32 * ORC_RESTRICT d1, int p1, int n);
-void video_scale_orc_splat_u64 (orc_uint64 * ORC_RESTRICT d1, orc_int64 p1, int n);
-void video_scale_orc_downsample_u8 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
-void video_scale_orc_downsample_u16 (guint16 * ORC_RESTRICT d1, const guint16 * ORC_RESTRICT s1, int n);
-void video_scale_orc_downsample_u32 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
-void video_scale_orc_downsample_yuyv (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
-void video_scale_orc_resample_nearest_u8 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int p1, int p2, int n);
-void video_scale_orc_resample_bilinear_u8 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int p1, int p2, int n);
-void video_scale_orc_resample_nearest_u32 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int p1, int p2, int n);
-void video_scale_orc_resample_bilinear_u32 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int p1, int p2, int n);
-void video_scale_orc_resample_merge_bilinear_u32 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, int p1, int p2, int p3, int n);
-void video_scale_orc_merge_bicubic_u8 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, int p1, int p2, int p3, int p4, int n);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
diff --git a/gst/videoscale/gstvideoscaleorc.orc b/gst/videoscale/gstvideoscaleorc.orc
deleted file mode 100644
index 06e8c9b..0000000
--- a/gst/videoscale/gstvideoscaleorc.orc
+++ /dev/null
@@ -1,197 +0,0 @@
-
-.function video_scale_orc_merge_linear_u8
-.dest 1 d1
-.source 1 s1
-.source 1 s2
-.param 1 p1
-.temp 2 t1
-.temp 2 t2
-.temp 1 a
-.temp 1 t
-
-loadb a, s1
-convubw t1, s1
-convubw t2, s2
-subw t2, t2, t1
-mullw t2, t2, p1
-addw t2, t2, 128
-convhwb t, t2
-addb d1, t, a
-
-
-
-.function video_scale_orc_merge_linear_u16
-.dest 2 d1
-.source 2 s1
-.source 2 s2
-.param 2 p1
-.param 2 p2
-.temp 4 t1
-.temp 4 t2
-
-# This is slightly different thatn the u8 case, since muluwl
-# tends to be much faster than mulll
-muluwl t1, s1, p1
-muluwl t2, s2, p2
-addl t1, t1, t2
-shrul t1, t1, 16
-convlw d1, t1
-
-
-.function video_scale_orc_splat_u16
-.dest 2 d1
-.param 2 p1
-
-copyw d1, p1
-
-
-.function video_scale_orc_splat_u32
-.dest 4 d1
-.param 4 p1
-
-copyl d1, p1
-
-
-.function video_scale_orc_splat_u64
-.dest 8 d1
-.longparam 8 p1
-
-copyq d1, p1
-
-
-.function video_scale_orc_downsample_u8
-.dest 1 d1 guint8
-.source 2 s1 guint8
-.temp 1 t1
-.temp 1 t2
-
-splitwb t1, t2, s1
-avgub d1, t1, t2
-
-
-.function video_scale_orc_downsample_u16
-.dest 2 d1 guint16
-.source 4 s1 guint16
-.temp 2 t1
-.temp 2 t2
-
-splitlw t1, t2, s1
-avguw d1, t1, t2
-
-
-.function video_scale_orc_downsample_u32
-.dest 4 d1 guint8
-.source 8 s1 guint8
-.temp 4 t1
-.temp 4 t2
-
-splitql t1, t2, s1
-x4 avgub d1, t1, t2
-
-
-.function video_scale_orc_downsample_yuyv
-.dest 4 d1 guint8
-.source 8 s1 guint8
-.temp 4 yyyy
-.temp 4 uvuv
-.temp 2 t1
-.temp 2 t2
-.temp 2 yy
-.temp 2 uv
-
-x4 splitwb yyyy, uvuv, s1
-x2 splitwb t1, t2, yyyy
-x2 avgub yy, t1, t2
-splitlw t1, t2, uvuv
-x2 avgub uv, t1, t2
-x2 mergebw d1, yy, uv
-
-
-
-.function video_scale_orc_resample_nearest_u8
-.dest 1 d1 guint8
-.source 1 s1 guint8
-.param 4 p1
-.param 4 p2
-
-ldresnearb d1, s1, p1, p2
-
-
-.function video_scale_orc_resample_bilinear_u8
-.dest 1 d1 guint8
-.source 1 s1 guint8
-.param 4 p1
-.param 4 p2
-
-ldreslinb d1, s1, p1, p2
-
-
-.function video_scale_orc_resample_nearest_u32
-.dest 4 d1 guint8
-.source 4 s1 guint8
-.param 4 p1
-.param 4 p2
-
-ldresnearl d1, s1, p1, p2
-
-
-.function video_scale_orc_resample_bilinear_u32
-.dest 4 d1 guint8
-.source 4 s1 guint8
-.param 4 p1
-.param 4 p2
-
-ldreslinl d1, s1, p1, p2
-
-
-.function video_scale_orc_resample_merge_bilinear_u32
-.dest 4 d1 guint8
-.dest 4 d2 guint8
-.source 4 s1 guint8
-.source 4 s2 guint8
-.temp 4 a
-.temp 4 b
-.temp 4 t
-.temp 8 t1
-.temp 8 t2
-.param 4 p1
-.param 4 p2
-.param 4 p3
-
-ldreslinl b, s2, p2, p3
-storel d2, b
-loadl a, s1
-x4 convubw t1, a
-x4 convubw t2, b
-x4 subw t2, t2, t1
-x4 mullw t2, t2, p1
-x4 convhwb t, t2
-x4 addb d1, t, a
-
-
-
-.function video_scale_orc_merge_bicubic_u8
-.dest 1 d1 guint8
-.source 1 s1 guint8
-.source 1 s2 guint8
-.source 1 s3 guint8
-.source 1 s4 guint8
-.param 4 p1
-.param 4 p2
-.param 4 p3
-.param 4 p4
-.temp 2 t1
-.temp 2 t2
-
-mulubw t1, s2, p2
-mulubw t2, s3, p3
-addw t1, t1, t2
-mulubw t2, s1, p1
-subw t1, t1, t2
-mulubw t2, s4, p4
-subw t1, t1, t2
-addw t1, t1, 32
-shrsw t1, t1, 6
-convsuswb d1, t1
-
-
diff --git a/gst/videoscale/vs_4tap.c b/gst/videoscale/vs_4tap.c
deleted file mode 100644
index 7097ad7..0000000
--- a/gst/videoscale/vs_4tap.c
+++ /dev/null
@@ -1,1502 +0,0 @@
-/*
- * Image Scaling Functions (4 tap)
- * Copyright (c) 2005 David A. Schleef <ds@schleef.org>
- * Copyright (c) 2009 Sebastian Dröge <sebastian.droege@collabora.co.uk>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include "vs_image.h"
-#include "vs_scanline.h"
-
-#include "vs_4tap.h"
-
-#include <gst/math-compat.h>
-
-#define SHIFT 10
-
-static int16_t vs_4tap_taps[256][4];
-
-
-static void vs_scanline_resample_4tap_Y (uint8_t * dest, uint8_t * src,
-    int n, int src_width, int *xacc, int increment);
-static void vs_scanline_merge_4tap_Y (uint8_t * dest, uint8_t * src1,
-    uint8_t * src2, uint8_t * src3, uint8_t * src4, int n, int acc);
-
-static void vs_scanline_resample_4tap_RGBA (uint8_t * dest, uint8_t * src,
-    int n, int src_width, int *xacc, int increment);
-static void vs_scanline_merge_4tap_RGBA (uint8_t * dest, uint8_t * src1,
-    uint8_t * src2, uint8_t * src3, uint8_t * src4, int n, int acc);
-
-static void vs_scanline_resample_4tap_RGB (uint8_t * dest, uint8_t * src,
-    int n, int src_width, int *xacc, int increment);
-static void vs_scanline_merge_4tap_RGB (uint8_t * dest, uint8_t * src1,
-    uint8_t * src2, uint8_t * src3, uint8_t * src4, int n, int acc);
-
-static void vs_scanline_resample_4tap_YUYV (uint8_t * dest, uint8_t * src,
-    int n, int src_width, int *xacc, int increment);
-static void vs_scanline_merge_4tap_YUYV (uint8_t * dest, uint8_t * src1,
-    uint8_t * src2, uint8_t * src3, uint8_t * src4, int n, int acc);
-
-static void vs_scanline_resample_4tap_UYVY (uint8_t * dest, uint8_t * src,
-    int n, int src_width, int *xacc, int increment);
-static void vs_scanline_merge_4tap_UYVY (uint8_t * dest, uint8_t * src1,
-    uint8_t * src2, uint8_t * src3, uint8_t * src4, int n, int acc);
-
-static void vs_scanline_resample_4tap_RGB565 (uint8_t * dest, uint8_t * src,
-    int n, int src_width, int *xacc, int increment);
-static void vs_scanline_merge_4tap_RGB565 (uint8_t * dest, uint8_t * src1,
-    uint8_t * src2, uint8_t * src3, uint8_t * src4, int n, int acc);
-
-static void vs_scanline_resample_4tap_RGB555 (uint8_t * dest, uint8_t * src,
-    int n, int src_width, int *xacc, int increment);
-static void vs_scanline_merge_4tap_RGB555 (uint8_t * dest, uint8_t * src1,
-    uint8_t * src2, uint8_t * src3, uint8_t * src4, int n, int acc);
-
-static void vs_scanline_resample_4tap_Y16 (uint8_t * dest, uint8_t * src,
-    int n, int src_width, int *xacc, int increment);
-static void vs_scanline_merge_4tap_Y16 (uint8_t * dest, uint8_t * src1,
-    uint8_t * src2, uint8_t * src3, uint8_t * src4, int n, int acc);
-
-static void vs_scanline_resample_4tap_AYUV64 (uint16_t * dest, uint16_t * src,
-    int n, int src_width, int *xacc, int increment);
-static void vs_scanline_merge_4tap_AYUV64 (uint16_t * dest, uint16_t * src1,
-    uint16_t * src2, uint16_t * src3, uint16_t * src4, int n, int acc);
-
-static double
-vs_4tap_func (double x)
-{
-#if 0
-  if (x < -1)
-    return 0;
-  if (x > 1)
-    return 0;
-  if (x < 0)
-    return 1 + x;
-  return 1 - x;
-#endif
-#if 0
-  if (x == 0)
-    return 1;
-  return sin (G_PI * x) / (G_PI * x) * (1 - 0.25 * x * x);
-#endif
-#if 1
-  if (x == 0)
-    return 1;
-  return sin (G_PI * x) / (G_PI * x);
-#endif
-}
-
-void
-vs_4tap_init (void)
-{
-  int i;
-  double a, b, c, d;
-  double sum;
-
-  for (i = 0; i < 256; i++) {
-    a = vs_4tap_func (-1 - i / 256.0);
-    b = vs_4tap_func (0 - i / 256.0);
-    c = vs_4tap_func (1 - i / 256.0);
-    d = vs_4tap_func (2 - i / 256.0);
-    sum = a + b + c + d;
-
-    vs_4tap_taps[i][0] = rint ((1 << SHIFT) * (a / sum));
-    vs_4tap_taps[i][1] = rint ((1 << SHIFT) * (b / sum));
-    vs_4tap_taps[i][2] = rint ((1 << SHIFT) * (c / sum));
-    vs_4tap_taps[i][3] = rint ((1 << SHIFT) * (d / sum));
-  }
-}
-
-
-void
-vs_scanline_resample_4tap_Y (uint8_t * dest, uint8_t * src,
-    int n, int src_width, int *xacc, int increment)
-{
-  int i;
-  int j;
-  int acc;
-  int x;
-  int y;
-
-  acc = *xacc;
-  for (i = 0; i < n; i++) {
-    j = acc >> 16;
-    x = (acc & 0xff00) >> 8;
-    if (j - 1 >= 0 && j + 2 < src_width) {
-      y = vs_4tap_taps[x][0] * src[j - 1];
-      y += vs_4tap_taps[x][1] * src[j];
-      y += vs_4tap_taps[x][2] * src[j + 1];
-      y += vs_4tap_taps[x][3] * src[j + 2];
-    } else {
-      y = vs_4tap_taps[x][0] * src[CLAMP (j - 1, 0, src_width - 1)];
-      y += vs_4tap_taps[x][1] * src[CLAMP (j, 0, src_width - 1)];
-      y += vs_4tap_taps[x][2] * src[CLAMP (j + 1, 0, src_width - 1)];
-      y += vs_4tap_taps[x][3] * src[CLAMP (j + 2, 0, src_width - 1)];
-    }
-    y += (1 << (SHIFT - 1));
-    dest[i] = CLAMP (y >> SHIFT, 0, 255);
-    acc += increment;
-  }
-  *xacc = acc;
-}
-
-void
-vs_scanline_merge_4tap_Y (uint8_t * dest, uint8_t * src1, uint8_t * src2,
-    uint8_t * src3, uint8_t * src4, int n, int acc)
-{
-  int i;
-  int y;
-  int a, b, c, d;
-
-  acc = (acc >> 8) & 0xff;
-  a = vs_4tap_taps[acc][0];
-  b = vs_4tap_taps[acc][1];
-  c = vs_4tap_taps[acc][2];
-  d = vs_4tap_taps[acc][3];
-  for (i = 0; i < n; i++) {
-    y = a * src1[i];
-    y += b * src2[i];
-    y += c * src3[i];
-    y += d * src4[i];
-    y += (1 << (SHIFT - 1));
-    dest[i] = CLAMP (y >> SHIFT, 0, 255);
-  }
-}
-
-
-void
-vs_image_scale_4tap_Y (const VSImage * dest, const VSImage * src,
-    uint8_t * tmpbuf)
-{
-  int yacc;
-  int y_increment;
-  int x_increment;
-  int i;
-  int j;
-  int xacc;
-  int k;
-
-  if (dest->height == 1)
-    y_increment = 0;
-  else
-    y_increment = ((src->height - 1) << 16) / (dest->height - 1);
-
-  if (dest->width == 1)
-    x_increment = 0;
-  else
-    x_increment = ((src->width - 1) << 16) / (dest->width - 1);
-
-  k = 0;
-  for (i = 0; i < 4; i++) {
-    xacc = 0;
-    vs_scanline_resample_4tap_Y (tmpbuf + i * dest->width,
-        src->pixels + CLAMP (i, 0, src->height - 1) * src->stride, dest->width,
-        src->width, &xacc, x_increment);
-  }
-
-  yacc = 0;
-  for (i = 0; i < dest->height; i++) {
-    uint8_t *t0, *t1, *t2, *t3;
-
-    j = yacc >> 16;
-
-    while (j > k) {
-      k++;
-      if (k + 3 < src->height) {
-        xacc = 0;
-        vs_scanline_resample_4tap_Y (tmpbuf + ((k + 3) & 3) * dest->width,
-            src->pixels + (k + 3) * src->stride,
-            dest->width, src->width, &xacc, x_increment);
-      }
-    }
-
-    t0 = tmpbuf + (CLAMP (j - 1, 0, src->height - 1) & 3) * dest->width;
-    t1 = tmpbuf + (CLAMP (j, 0, src->height - 1) & 3) * dest->width;
-    t2 = tmpbuf + (CLAMP (j + 1, 0, src->height - 1) & 3) * dest->width;
-    t3 = tmpbuf + (CLAMP (j + 2, 0, src->height - 1) & 3) * dest->width;
-    vs_scanline_merge_4tap_Y (dest->pixels + i * dest->stride,
-        t0, t1, t2, t3, dest->width, yacc & 0xffff);
-
-    yacc += y_increment;
-  }
-}
-
-void
-vs_scanline_resample_4tap_Y16 (uint8_t * dest, uint8_t * src,
-    int n, int src_width, int *xacc, int increment)
-{
-  int i;
-  int j;
-  int acc;
-  int x;
-  int y;
-  uint16_t *d = (uint16_t *) dest, *s = (uint16_t *) src;
-
-  acc = *xacc;
-  for (i = 0; i < n; i++) {
-    j = acc >> 16;
-    x = (acc & 0xff00) >> 8;
-    if (j - 1 >= 0 && j + 2 < src_width) {
-      y = vs_4tap_taps[x][0] * s[j - 1];
-      y += vs_4tap_taps[x][1] * s[j];
-      y += vs_4tap_taps[x][2] * s[j + 1];
-      y += vs_4tap_taps[x][3] * s[j + 2];
-    } else {
-      y = vs_4tap_taps[x][0] * s[CLAMP (j - 1, 0, src_width - 1)];
-      y += vs_4tap_taps[x][1] * s[CLAMP (j, 0, src_width - 1)];
-      y += vs_4tap_taps[x][2] * s[CLAMP (j + 1, 0, src_width - 1)];
-      y += vs_4tap_taps[x][3] * s[CLAMP (j + 2, 0, src_width - 1)];
-    }
-    y += (1 << (SHIFT - 1));
-    d[i] = CLAMP (y >> SHIFT, 0, 65535);
-    acc += increment;
-  }
-  *xacc = acc;
-}
-
-void
-vs_scanline_merge_4tap_Y16 (uint8_t * dest, uint8_t * src1, uint8_t * src2,
-    uint8_t * src3, uint8_t * src4, int n, int acc)
-{
-  int i;
-  int y;
-  int a, b, c, d;
-  uint16_t *de = (uint16_t *) dest, *s1 = (uint16_t *) src1;
-  uint16_t *s2 = (uint16_t *) src2, *s3 = (uint16_t *) src3;
-  uint16_t *s4 = (uint16_t *) src4;
-
-  acc = (acc >> 8) & 0xff;
-  a = vs_4tap_taps[acc][0];
-  b = vs_4tap_taps[acc][1];
-  c = vs_4tap_taps[acc][2];
-  d = vs_4tap_taps[acc][3];
-  for (i = 0; i < n; i++) {
-    y = a * s1[i];
-    y += b * s2[i];
-    y += c * s3[i];
-    y += d * s4[i];
-    y += (1 << (SHIFT - 1));
-    de[i] = CLAMP (y >> SHIFT, 0, 65535);
-  }
-}
-
-
-void
-vs_image_scale_4tap_Y16 (const VSImage * dest, const VSImage * src,
-    uint8_t * tmpbuf)
-{
-  int yacc;
-  int y_increment;
-  int x_increment;
-  int i;
-  int j;
-  int xacc;
-  int k;
-
-  if (dest->height == 1)
-    y_increment = 0;
-  else
-    y_increment = ((src->height - 1) << 16) / (dest->height - 1);
-
-  if (dest->width == 1)
-    x_increment = 0;
-  else
-    x_increment = ((src->width - 1) << 16) / (dest->width - 1);
-
-  k = 0;
-  for (i = 0; i < 4; i++) {
-    xacc = 0;
-    vs_scanline_resample_4tap_Y16 (tmpbuf + i * dest->stride,
-        src->pixels + CLAMP (i, 0, src->height - 1) * src->stride, dest->width,
-        src->width, &xacc, x_increment);
-  }
-
-  yacc = 0;
-  for (i = 0; i < dest->height; i++) {
-    uint8_t *t0, *t1, *t2, *t3;
-
-    j = yacc >> 16;
-
-    while (j > k) {
-      k++;
-      if (k + 3 < src->height) {
-        xacc = 0;
-        vs_scanline_resample_4tap_Y16 (tmpbuf + ((k + 3) & 3) * dest->stride,
-            src->pixels + (k + 3) * src->stride,
-            dest->width, src->width, &xacc, x_increment);
-      }
-    }
-
-    t0 = tmpbuf + (CLAMP (j - 1, 0, src->height - 1) & 3) * dest->stride;
-    t1 = tmpbuf + (CLAMP (j, 0, src->height - 1) & 3) * dest->stride;
-    t2 = tmpbuf + (CLAMP (j + 1, 0, src->height - 1) & 3) * dest->stride;
-    t3 = tmpbuf + (CLAMP (j + 2, 0, src->height - 1) & 3) * dest->stride;
-    vs_scanline_merge_4tap_Y16 (dest->pixels + i * dest->stride,
-        t0, t1, t2, t3, dest->width, yacc & 0xffff);
-
-    yacc += y_increment;
-  }
-}
-
-void
-vs_scanline_resample_4tap_RGBA (uint8_t * dest, uint8_t * src,
-    int n, int src_width, int *xacc, int increment)
-{
-  int i;
-  int j;
-  int acc;
-  int x;
-  int y;
-  int off;
-
-  acc = *xacc;
-  for (i = 0; i < n; i++) {
-    j = acc >> 16;
-    x = (acc & 0xffff) >> 8;
-
-    for (off = 0; off < 4; off++) {
-      if (j - 1 >= 0 && j + 2 < src_width) {
-        y = vs_4tap_taps[x][0] * src[(j - 1) * 4 + off];
-        y += vs_4tap_taps[x][1] * src[j * 4 + off];
-        y += vs_4tap_taps[x][2] * src[(j + 1) * 4 + off];
-        y += vs_4tap_taps[x][3] * src[(j + 2) * 4 + off];
-      } else {
-        y = vs_4tap_taps[x][0] *
-            src[CLAMP ((j - 1), 0, src_width - 1) * 4 + off];
-        y += vs_4tap_taps[x][1] *
-            src[CLAMP ((j + 0), 0, src_width - 1) * 4 + off];
-        y += vs_4tap_taps[x][2] *
-            src[CLAMP ((j + 1), 0, src_width - 1) * 4 + off];
-        y += vs_4tap_taps[x][3] *
-            src[CLAMP ((j + 2), 0, src_width - 1) * 4 + off];
-      }
-      y += (1 << (SHIFT - 1));
-      dest[i * 4 + off] = CLAMP (y >> SHIFT, 0, 255);
-    }
-    acc += increment;
-  }
-  *xacc = acc;
-}
-
-void
-vs_scanline_merge_4tap_RGBA (uint8_t * dest, uint8_t * src1, uint8_t * src2,
-    uint8_t * src3, uint8_t * src4, int n, int acc)
-{
-  int i;
-  int y;
-  int off;
-  int a, b, c, d;
-
-  acc = (acc >> 8) & 0xff;
-  a = vs_4tap_taps[acc][0];
-  b = vs_4tap_taps[acc][1];
-  c = vs_4tap_taps[acc][2];
-  d = vs_4tap_taps[acc][3];
-  for (i = 0; i < n; i++) {
-    for (off = 0; off < 4; off++) {
-      y = a * src1[i * 4 + off];
-      y += b * src2[i * 4 + off];
-      y += c * src3[i * 4 + off];
-      y += d * src4[i * 4 + off];
-      y += (1 << (SHIFT - 1));
-      dest[i * 4 + off] = CLAMP (y >> SHIFT, 0, 255);
-    }
-  }
-}
-
-void
-vs_image_scale_4tap_RGBA (const VSImage * dest, const VSImage * src,
-    uint8_t * tmpbuf)
-{
-  int yacc;
-  int y_increment;
-  int x_increment;
-  int i;
-  int j;
-  int xacc;
-  int k;
-
-  if (dest->height == 1)
-    y_increment = 0;
-  else
-    y_increment = ((src->height - 1) << 16) / (dest->height - 1);
-
-  if (dest->width == 1)
-    x_increment = 0;
-  else
-    x_increment = ((src->width - 1) << 16) / (dest->width - 1);
-
-  k = 0;
-  for (i = 0; i < 4; i++) {
-    xacc = 0;
-    vs_scanline_resample_4tap_RGBA (tmpbuf + i * dest->stride,
-        src->pixels + CLAMP (i, 0, src->height) * src->stride,
-        dest->width, src->width, &xacc, x_increment);
-  }
-
-  yacc = 0;
-  for (i = 0; i < dest->height; i++) {
-    uint8_t *t0, *t1, *t2, *t3;
-
-    j = yacc >> 16;
-
-    while (j > k) {
-      k++;
-      if (k + 3 < src->height) {
-        xacc = 0;
-        vs_scanline_resample_4tap_RGBA (tmpbuf + ((k + 3) & 3) * dest->stride,
-            src->pixels + (k + 3) * src->stride,
-            dest->width, src->width, &xacc, x_increment);
-      }
-    }
-
-    t0 = tmpbuf + (CLAMP (j - 1, 0, src->height - 1) & 3) * dest->stride;
-    t1 = tmpbuf + (CLAMP (j, 0, src->height - 1) & 3) * dest->stride;
-    t2 = tmpbuf + (CLAMP (j + 1, 0, src->height - 1) & 3) * dest->stride;
-    t3 = tmpbuf + (CLAMP (j + 2, 0, src->height - 1) & 3) * dest->stride;
-    vs_scanline_merge_4tap_RGBA (dest->pixels + i * dest->stride,
-        t0, t1, t2, t3, dest->width, yacc & 0xffff);
-
-    yacc += y_increment;
-  }
-}
-
-void
-vs_scanline_resample_4tap_RGB (uint8_t * dest, uint8_t * src,
-    int n, int src_width, int *xacc, int increment)
-{
-  int i;
-  int j;
-  int acc;
-  int x;
-  int y;
-  int off;
-
-  acc = *xacc;
-  for (i = 0; i < n; i++) {
-    j = acc >> 16;
-    x = (acc & 0xffff) >> 8;
-
-    for (off = 0; off < 3; off++) {
-      if (j - 1 >= 0 && j + 2 < src_width) {
-        y = vs_4tap_taps[x][0] * src[(j - 1) * 3 + off];
-        y += vs_4tap_taps[x][1] * src[j * 3 + off];
-        y += vs_4tap_taps[x][2] * src[(j + 1) * 3 + off];
-        y += vs_4tap_taps[x][3] * src[(j + 2) * 3 + off];
-      } else {
-        y = vs_4tap_taps[x][0] * src[CLAMP ((j - 1) * 3 + off, 0,
-                3 * (src_width - 1) + off)];
-        y += vs_4tap_taps[x][1] * src[CLAMP (j * 3 + off, 0,
-                3 * (src_width - 1) + off)];
-        y += vs_4tap_taps[x][2] * src[CLAMP ((j + 1) * 3 + off, 0,
-                3 * (src_width - 1) + off)];
-        y += vs_4tap_taps[x][3] * src[CLAMP ((j + 2) * 3 + off, 0,
-                3 * (src_width - 1) + off)];
-      }
-      y += (1 << (SHIFT - 1));
-      dest[i * 3 + off] = CLAMP (y >> SHIFT, 0, 255);
-    }
-    acc += increment;
-  }
-  *xacc = acc;
-}
-
-void
-vs_scanline_merge_4tap_RGB (uint8_t * dest, uint8_t * src1, uint8_t * src2,
-    uint8_t * src3, uint8_t * src4, int n, int acc)
-{
-  int i;
-  int y;
-  int off;
-  int a, b, c, d;
-
-  acc = (acc >> 8) & 0xff;
-  a = vs_4tap_taps[acc][0];
-  b = vs_4tap_taps[acc][1];
-  c = vs_4tap_taps[acc][2];
-  d = vs_4tap_taps[acc][3];
-  for (i = 0; i < n; i++) {
-    for (off = 0; off < 3; off++) {
-      y = a * src1[i * 3 + off];
-      y += b * src2[i * 3 + off];
-      y += c * src3[i * 3 + off];
-      y += d * src4[i * 3 + off];
-      y += (1 << (SHIFT - 1));
-      dest[i * 3 + off] = CLAMP (y >> SHIFT, 0, 255);
-    }
-  }
-}
-
-void
-vs_image_scale_4tap_RGB (const VSImage * dest, const VSImage * src,
-    uint8_t * tmpbuf)
-{
-  int yacc;
-  int y_increment;
-  int x_increment;
-  int i;
-  int j;
-  int xacc;
-  int k;
-
-  if (dest->height == 1)
-    y_increment = 0;
-  else
-    y_increment = ((src->height - 1) << 16) / (dest->height - 1);
-
-  if (dest->width == 1)
-    x_increment = 0;
-  else
-    x_increment = ((src->width - 1) << 16) / (dest->width - 1);
-
-  k = 0;
-  for (i = 0; i < 4; i++) {
-    xacc = 0;
-    vs_scanline_resample_4tap_RGB (tmpbuf + i * dest->stride,
-        src->pixels + CLAMP (i, 0, src->height - 1) * src->stride, dest->width,
-        src->width, &xacc, x_increment);
-  }
-
-  yacc = 0;
-  for (i = 0; i < dest->height; i++) {
-    uint8_t *t0, *t1, *t2, *t3;
-
-    j = yacc >> 16;
-
-    while (j > k) {
-      k++;
-      if (k + 3 < src->height) {
-        xacc = 0;
-        vs_scanline_resample_4tap_RGB (tmpbuf + ((k + 3) & 3) * dest->stride,
-            src->pixels + (k + 3) * src->stride,
-            dest->width, src->width, &xacc, x_increment);
-      }
-    }
-
-    t0 = tmpbuf + (CLAMP (j - 1, 0, src->height - 1) & 3) * dest->stride;
-    t1 = tmpbuf + (CLAMP (j, 0, src->height - 1) & 3) * dest->stride;
-    t2 = tmpbuf + (CLAMP (j + 1, 0, src->height - 1) & 3) * dest->stride;
-    t3 = tmpbuf + (CLAMP (j + 2, 0, src->height - 1) & 3) * dest->stride;
-    vs_scanline_merge_4tap_RGB (dest->pixels + i * dest->stride,
-        t0, t1, t2, t3, dest->width, yacc & 0xffff);
-
-    yacc += y_increment;
-  }
-}
-
-void
-vs_scanline_resample_4tap_YUYV (uint8_t * dest, uint8_t * src,
-    int n, int src_width, int *xacc, int increment)
-{
-  int i;
-  int j;
-  int acc;
-  int x;
-  int y;
-  int quads = (n + 1) / 2;
-  int last_y = 2 * (src_width - 1);
-  int last_u =
-      MAX ((2 * (src_width - 1) % 4 ==
-          0) ? 2 * (src_width - 1) + 1 : 2 * (src_width - 1) - 1, 1);
-  int last_v =
-      MAX ((2 * (src_width - 1) % 4 ==
-          2) ? 2 * (src_width - 1) + 1 : 2 * (src_width - 1) - 1, 1);
-
-  acc = *xacc;
-  for (i = 0; i < quads; i++) {
-    j = acc >> 16;
-    x = (acc & 0xffff) >> 8;
-
-    if (j - 1 >= 0 && j + 2 < src_width) {
-      y = vs_4tap_taps[x][0] * src[j * 2 + 0 - 2];
-      y += vs_4tap_taps[x][1] * src[j * 2 + 0];
-      y += vs_4tap_taps[x][2] * src[j * 2 + 0 + 2];
-      y += vs_4tap_taps[x][3] * src[j * 2 + 0 + 4];
-    } else {
-      y = vs_4tap_taps[x][0] * src[CLAMP (j * 2 + 0 - 2, 0, last_y)];
-      y += vs_4tap_taps[x][1] * src[CLAMP (j * 2 + 0, 0, last_y)];
-      y += vs_4tap_taps[x][2] * src[CLAMP (j * 2 + 0 + 2, 0, last_y)];
-      y += vs_4tap_taps[x][3] * src[CLAMP (j * 2 + 0 + 4, 0, last_y)];
-    }
-    y += (1 << (SHIFT - 1));
-    dest[i * 4 + 0] = CLAMP (y >> SHIFT, 0, 255);
-
-    j = acc >> 17;
-    x = (acc & 0x1ffff) >> 9;
-
-    if (2 * j - 1 >= 0 && 2 * j + 4 < src_width) {
-      y = vs_4tap_taps[x][0] * src[MAX (j * 4 + 1 - 4, 1)];
-      y += vs_4tap_taps[x][1] * src[j * 4 + 1];
-      y += vs_4tap_taps[x][2] * src[j * 4 + 1 + 4];
-      y += vs_4tap_taps[x][3] * src[j * 4 + 1 + 8];
-    } else {
-      y = vs_4tap_taps[x][0] * src[CLAMP (j * 4 + 1 - 4, 1, last_u)];
-      y += vs_4tap_taps[x][1] * src[CLAMP (j * 4 + 1, 1, last_u)];
-      y += vs_4tap_taps[x][2] * src[CLAMP (j * 4 + 1 + 4, 1, last_u)];
-      y += vs_4tap_taps[x][3] * src[CLAMP (j * 4 + 1 + 8, 1, last_u)];
-    }
-    y += (1 << (SHIFT - 1));
-    dest[i * 4 + 1] = CLAMP (y >> SHIFT, 0, 255);
-
-    if (2 * i + 1 < n) {
-      if (2 * j - 1 >= 0 && 2 * j + 4 < src_width) {
-        y = vs_4tap_taps[x][0] * src[MAX (j * 4 + 3 - 4, 3)];
-        y += vs_4tap_taps[x][1] * src[j * 4 + 3];
-        y += vs_4tap_taps[x][2] * src[j * 4 + 3 + 4];
-        y += vs_4tap_taps[x][3] * src[j * 4 + 3 + 8];
-      } else {
-        y = vs_4tap_taps[x][0] * src[CLAMP (j * 4 + 3 - 4, 3, last_v)];
-        y += vs_4tap_taps[x][1] * src[CLAMP (j * 4 + 3, 3, last_v)];
-        y += vs_4tap_taps[x][2] * src[CLAMP (j * 4 + 3 + 4, 3, last_v)];
-        y += vs_4tap_taps[x][3] * src[CLAMP (j * 4 + 3 + 8, 3, last_v)];
-      }
-      y += (1 << (SHIFT - 1));
-      dest[i * 4 + 3] = CLAMP (y >> SHIFT, 0, 255);
-    }
-
-    acc += increment;
-    j = acc >> 16;
-    x = (acc & 0xffff) >> 8;
-
-    if (2 * i + 1 < n) {
-      if (j - 1 >= 0 && j + 2 < src_width) {
-        y = vs_4tap_taps[x][0] * src[j * 2 + 0 - 2];
-        y += vs_4tap_taps[x][1] * src[j * 2 + 0];
-        y += vs_4tap_taps[x][2] * src[j * 2 + 0 + 2];
-        y += vs_4tap_taps[x][3] * src[j * 2 + 0 + 4];
-      } else {
-        y = vs_4tap_taps[x][0] * src[CLAMP (j * 2 + 0 - 2, 0, last_y)];
-        y += vs_4tap_taps[x][1] * src[CLAMP (j * 2 + 0, 0, last_y)];
-        y += vs_4tap_taps[x][2] * src[CLAMP (j * 2 + 0 + 2, 0, last_y)];
-        y += vs_4tap_taps[x][3] * src[CLAMP (j * 2 + 0 + 4, 0, last_y)];
-      }
-      y += (1 << (SHIFT - 1));
-      dest[i * 4 + 2] = CLAMP (y >> SHIFT, 0, 255);
-      acc += increment;
-    }
-  }
-  *xacc = acc;
-}
-
-void
-vs_scanline_merge_4tap_YUYV (uint8_t * dest, uint8_t * src1, uint8_t * src2,
-    uint8_t * src3, uint8_t * src4, int n, int acc)
-{
-  int i;
-  int y;
-  int a, b, c, d;
-  int quads = (n + 1) / 2;
-
-  acc = (acc >> 8) & 0xff;
-  a = vs_4tap_taps[acc][0];
-  b = vs_4tap_taps[acc][1];
-  c = vs_4tap_taps[acc][2];
-  d = vs_4tap_taps[acc][3];
-  for (i = 0; i < quads; i++) {
-    y = a * src1[i * 4 + 0];
-    y += b * src2[i * 4 + 0];
-    y += c * src3[i * 4 + 0];
-    y += d * src4[i * 4 + 0];
-    y += (1 << (SHIFT - 1));
-    dest[i * 4 + 0] = CLAMP (y >> SHIFT, 0, 255);
-
-    y = a * src1[i * 4 + 1];
-    y += b * src2[i * 4 + 1];
-    y += c * src3[i * 4 + 1];
-    y += d * src4[i * 4 + 1];
-    y += (1 << (SHIFT - 1));
-    dest[i * 4 + 1] = CLAMP (y >> SHIFT, 0, 255);
-
-    if (2 * i + 1 < n) {
-      y = a * src1[i * 4 + 2];
-      y += b * src2[i * 4 + 2];
-      y += c * src3[i * 4 + 2];
-      y += d * src4[i * 4 + 2];
-      y += (1 << (SHIFT - 1));
-      dest[i * 4 + 2] = CLAMP (y >> SHIFT, 0, 255);
-
-      y = a * src1[i * 4 + 3];
-      y += b * src2[i * 4 + 3];
-      y += c * src3[i * 4 + 3];
-      y += d * src4[i * 4 + 3];
-      y += (1 << (SHIFT - 1));
-      dest[i * 4 + 3] = CLAMP (y >> SHIFT, 0, 255);
-    }
-  }
-}
-
-void
-vs_image_scale_4tap_YUYV (const VSImage * dest, const VSImage * src,
-    uint8_t * tmpbuf)
-{
-  int yacc;
-  int y_increment;
-  int x_increment;
-  int i;
-  int j;
-  int xacc;
-  int k;
-
-  if (dest->height == 1)
-    y_increment = 0;
-  else
-    y_increment = ((src->height - 1) << 16) / (dest->height - 1);
-
-  if (dest->width == 1)
-    x_increment = 0;
-  else
-    x_increment = ((src->width - 1) << 16) / (dest->width - 1);
-
-  k = 0;
-  for (i = 0; i < 4; i++) {
-    xacc = 0;
-    vs_scanline_resample_4tap_YUYV (tmpbuf + i * dest->stride,
-        src->pixels + CLAMP (i, 0, src->height - 1) * src->stride, dest->width,
-        src->width, &xacc, x_increment);
-  }
-
-  yacc = 0;
-  for (i = 0; i < dest->height; i++) {
-    uint8_t *t0, *t1, *t2, *t3;
-
-    j = yacc >> 16;
-
-    while (j > k) {
-      k++;
-      if (k + 3 < src->height) {
-        xacc = 0;
-        vs_scanline_resample_4tap_YUYV (tmpbuf + ((k + 3) & 3) * dest->stride,
-            src->pixels + (k + 3) * src->stride,
-            dest->width, src->width, &xacc, x_increment);
-      }
-    }
-
-    t0 = tmpbuf + (CLAMP (j - 1, 0, src->height - 1) & 3) * dest->stride;
-    t1 = tmpbuf + (CLAMP (j, 0, src->height - 1) & 3) * dest->stride;
-    t2 = tmpbuf + (CLAMP (j + 1, 0, src->height - 1) & 3) * dest->stride;
-    t3 = tmpbuf + (CLAMP (j + 2, 0, src->height - 1) & 3) * dest->stride;
-    vs_scanline_merge_4tap_YUYV (dest->pixels + i * dest->stride,
-        t0, t1, t2, t3, dest->width, yacc & 0xffff);
-
-    yacc += y_increment;
-  }
-}
-
-void
-vs_scanline_resample_4tap_UYVY (uint8_t * dest, uint8_t * src,
-    int n, int src_width, int *xacc, int increment)
-{
-  int i;
-  int j;
-  int acc;
-  int x;
-  int y;
-  int quads = (n + 1) / 2;
-  int last_y = 2 * (src_width - 1) + 1;
-  int last_u =
-      MAX ((2 * (src_width - 1) % 4 ==
-          0) ? 2 * (src_width - 1) : 2 * (src_width - 1) - 2, 0);
-  int last_v =
-      MAX ((2 * (src_width - 1) % 4 ==
-          2) ? 2 * (src_width - 1) : 2 * (src_width - 1) - 2, 0);
-
-  acc = *xacc;
-  for (i = 0; i < quads; i++) {
-    j = acc >> 16;
-    x = (acc & 0xffff) >> 8;
-
-    if (j - 1 >= 0 && j + 2 < src_width) {
-      y = vs_4tap_taps[x][0] * src[MAX (j * 2 + 1 - 2, 1)];
-      y += vs_4tap_taps[x][1] * src[j * 2 + 1];
-      y += vs_4tap_taps[x][2] * src[j * 2 + 1 + 2];
-      y += vs_4tap_taps[x][3] * src[j * 2 + 1 + 4];
-    } else {
-      y = vs_4tap_taps[x][0] * src[CLAMP (j * 2 + 1 - 2, 1, last_y)];
-      y += vs_4tap_taps[x][1] * src[CLAMP (j * 2 + 1, 1, last_y)];
-      y += vs_4tap_taps[x][2] * src[CLAMP (j * 2 + 1 + 2, 1, last_y)];
-      y += vs_4tap_taps[x][3] * src[CLAMP (j * 2 + 1 + 4, 1, last_y)];
-    }
-    y += (1 << (SHIFT - 1));
-    dest[i * 4 + 1] = CLAMP (y >> SHIFT, 0, 255);
-
-    j = acc >> 17;
-    x = (acc & 0x1ffff) >> 9;
-
-    if (2 * j - 2 >= 0 && 2 * j + 4 < src_width) {
-      y = vs_4tap_taps[x][0] * src[MAX (j * 4 + 0 - 4, 0)];
-      y += vs_4tap_taps[x][1] * src[j * 4 + 0];
-      y += vs_4tap_taps[x][2] * src[j * 4 + 0 + 4];
-      y += vs_4tap_taps[x][3] * src[j * 4 + 0 + 8];
-    } else {
-      y = vs_4tap_taps[x][0] * src[CLAMP (j * 4 + 0 - 4, 0, last_u)];
-      y += vs_4tap_taps[x][1] * src[CLAMP (j * 4 + 0, 0, last_u)];
-      y += vs_4tap_taps[x][2] * src[CLAMP (j * 4 + 0 + 4, 0, last_u)];
-      y += vs_4tap_taps[x][3] * src[CLAMP (j * 4 + 0 + 8, 0, last_u)];
-    }
-    y += (1 << (SHIFT - 1));
-    dest[i * 4 + 0] = CLAMP (y >> SHIFT, 0, 255);
-
-    if (2 * i + 1 < n) {
-      if (2 * j - 1 >= 0 && 2 * j + 4 < src_width) {
-        y = vs_4tap_taps[x][0] * src[MAX (j * 4 + 2 - 4, 2)];
-        y += vs_4tap_taps[x][1] * src[j * 4 + 2];
-        y += vs_4tap_taps[x][2] * src[j * 4 + 2 + 4];
-        y += vs_4tap_taps[x][3] * src[j * 4 + 2 + 8];
-      } else {
-        y = vs_4tap_taps[x][0] * src[CLAMP (j * 4 + 2 - 4, 2, last_v)];
-        y += vs_4tap_taps[x][1] * src[CLAMP (j * 4 + 2, 2, last_v)];
-        y += vs_4tap_taps[x][2] * src[CLAMP (j * 4 + 2 + 4, 2, last_v)];
-        y += vs_4tap_taps[x][3] * src[CLAMP (j * 4 + 2 + 8, 2, last_v)];
-      }
-      y += (1 << (SHIFT - 1));
-      dest[i * 4 + 2] = CLAMP (y >> SHIFT, 0, 255);
-    }
-
-    acc += increment;
-    j = acc >> 16;
-    x = (acc & 0xffff) >> 8;
-
-    if (2 * i + 1 < n) {
-      if (j - 1 >= 0 && j + 2 < src_width) {
-        y = vs_4tap_taps[x][0] * src[MAX (j * 2 + 1 - 2, 0)];
-        y += vs_4tap_taps[x][1] * src[j * 2 + 1];
-        y += vs_4tap_taps[x][2] * src[j * 2 + 1 + 2];
-        y += vs_4tap_taps[x][3] * src[j * 2 + 1 + 4];
-      } else {
-        y = vs_4tap_taps[x][0] * src[CLAMP (j * 2 + 1 - 2, 1, last_y)];
-        y += vs_4tap_taps[x][1] * src[CLAMP (j * 2 + 1, 1, last_y)];
-        y += vs_4tap_taps[x][2] * src[CLAMP (j * 2 + 1 + 2, 1, last_y)];
-        y += vs_4tap_taps[x][3] * src[CLAMP (j * 2 + 1 + 4, 1, last_y)];
-      }
-      y += (1 << (SHIFT - 1));
-      dest[i * 4 + 3] = CLAMP (y >> SHIFT, 0, 255);
-      acc += increment;
-    }
-  }
-  *xacc = acc;
-}
-
-void
-vs_scanline_merge_4tap_UYVY (uint8_t * dest, uint8_t * src1, uint8_t * src2,
-    uint8_t * src3, uint8_t * src4, int n, int acc)
-{
-  int i;
-  int y;
-  int a, b, c, d;
-  int quads = (n + 1) / 2;
-
-  acc = (acc >> 8) & 0xff;
-  a = vs_4tap_taps[acc][0];
-  b = vs_4tap_taps[acc][1];
-  c = vs_4tap_taps[acc][2];
-  d = vs_4tap_taps[acc][3];
-  for (i = 0; i < quads; i++) {
-    y = a * src1[i * 4 + 0];
-    y += b * src2[i * 4 + 0];
-    y += c * src3[i * 4 + 0];
-    y += d * src4[i * 4 + 0];
-    y += (1 << (SHIFT - 1));
-    dest[i * 4 + 0] = CLAMP (y >> SHIFT, 0, 255);
-
-    y = a * src1[i * 4 + 1];
-    y += b * src2[i * 4 + 1];
-    y += c * src3[i * 4 + 1];
-    y += d * src4[i * 4 + 1];
-    y += (1 << (SHIFT - 1));
-    dest[i * 4 + 1] = CLAMP (y >> SHIFT, 0, 255);
-
-    if (2 * i + 1 < n) {
-      y = a * src1[i * 4 + 2];
-      y += b * src2[i * 4 + 2];
-      y += c * src3[i * 4 + 2];
-      y += d * src4[i * 4 + 2];
-      y += (1 << (SHIFT - 1));
-      dest[i * 4 + 2] = CLAMP (y >> SHIFT, 0, 255);
-
-      y = a * src1[i * 4 + 3];
-      y += b * src2[i * 4 + 3];
-      y += c * src3[i * 4 + 3];
-      y += d * src4[i * 4 + 3];
-      y += (1 << (SHIFT - 1));
-      dest[i * 4 + 3] = CLAMP (y >> SHIFT, 0, 255);
-    }
-  }
-}
-
-void
-vs_image_scale_4tap_UYVY (const VSImage * dest, const VSImage * src,
-    uint8_t * tmpbuf)
-{
-  int yacc;
-  int y_increment;
-  int x_increment;
-  int i;
-  int j;
-  int xacc;
-  int k;
-
-  if (dest->height == 1)
-    y_increment = 0;
-  else
-    y_increment = ((src->height - 1) << 16) / (dest->height - 1);
-
-  if (dest->width == 1)
-    x_increment = 0;
-  else
-    x_increment = ((src->width - 1) << 16) / (dest->width - 1);
-
-  k = 0;
-  for (i = 0; i < 4; i++) {
-    xacc = 0;
-    vs_scanline_resample_4tap_UYVY (tmpbuf + i * dest->stride,
-        src->pixels + CLAMP (i, 0, src->height - 1) * src->stride, dest->width,
-        src->width, &xacc, x_increment);
-  }
-
-  yacc = 0;
-  for (i = 0; i < dest->height; i++) {
-    uint8_t *t0, *t1, *t2, *t3;
-
-    j = yacc >> 16;
-
-    while (j > k) {
-      k++;
-      if (k + 3 < src->height) {
-        xacc = 0;
-        vs_scanline_resample_4tap_UYVY (tmpbuf + ((k + 3) & 3) * dest->stride,
-            src->pixels + (k + 3) * src->stride,
-            dest->width, src->width, &xacc, x_increment);
-      }
-    }
-
-    t0 = tmpbuf + (CLAMP (j - 1, 0, src->height - 1) & 3) * dest->stride;
-    t1 = tmpbuf + (CLAMP (j, 0, src->height - 1) & 3) * dest->stride;
-    t2 = tmpbuf + (CLAMP (j + 1, 0, src->height - 1) & 3) * dest->stride;
-    t3 = tmpbuf + (CLAMP (j + 2, 0, src->height - 1) & 3) * dest->stride;
-    vs_scanline_merge_4tap_UYVY (dest->pixels + i * dest->stride,
-        t0, t1, t2, t3, dest->width, yacc & 0xffff);
-
-    yacc += y_increment;
-  }
-}
-
-/* note that src and dest are uint16_t, and thus endian dependent */
-
-#define RGB565_R(x) (((x)&0xf800)>>8 | ((x)&0xf800)>>13)
-#define RGB565_G(x) (((x)&0x07e0)>>3 | ((x)&0x07e0)>>9)
-#define RGB565_B(x) (((x)&0x001f)<<3 | ((x)&0x001f)>>2)
-
-#define RGB565(r,g,b) \
-  ((((r)<<8)&0xf800) | (((g)<<3)&0x07e0) | (((b)>>3)&0x001f))
-
-void
-vs_scanline_resample_4tap_RGB565 (uint8_t * dest_u8, uint8_t * src_u8,
-    int n, int src_width, int *xacc, int increment)
-{
-  int i;
-  int j;
-  int acc;
-  int x;
-  int y, y_r, y_b, y_g;
-  uint16_t *dest = (uint16_t *) dest_u8;
-  uint16_t *src = (uint16_t *) src_u8;
-
-  acc = *xacc;
-  for (i = 0; i < n; i++) {
-    j = acc >> 16;
-    x = (acc & 0xffff) >> 8;
-
-    if (j - 1 >= 0 && j + 2 < src_width) {
-      y = vs_4tap_taps[x][0] * RGB565_R (src[(j - 1)]);
-      y += vs_4tap_taps[x][1] * RGB565_R (src[j]);
-      y += vs_4tap_taps[x][2] * RGB565_R (src[(j + 1)]);
-      y += vs_4tap_taps[x][3] * RGB565_R (src[(j + 2)]);
-    } else {
-      y = vs_4tap_taps[x][0] * RGB565_R (src[CLAMP ((j - 1), 0,
-                  src_width - 1)]);
-      y += vs_4tap_taps[x][1] * RGB565_R (src[CLAMP (j, 0, src_width - 1)]);
-      y += vs_4tap_taps[x][2] * RGB565_R (src[CLAMP ((j + 1), 0,
-                  src_width - 1)]);
-      y += vs_4tap_taps[x][3] * RGB565_R (src[CLAMP ((j + 2), 0,
-                  src_width - 1)]);
-    }
-    y += (1 << (SHIFT - 1));
-    y_r = CLAMP (y >> SHIFT, 0, 255);
-
-    if (j - 1 >= 0 && j + 2 < src_width) {
-      y = vs_4tap_taps[x][0] * RGB565_G (src[(j - 1)]);
-      y += vs_4tap_taps[x][1] * RGB565_G (src[j]);
-      y += vs_4tap_taps[x][2] * RGB565_G (src[(j + 1)]);
-      y += vs_4tap_taps[x][3] * RGB565_G (src[(j + 2)]);
-    } else {
-      y = vs_4tap_taps[x][0] * RGB565_G (src[CLAMP ((j - 1), 0,
-                  src_width - 1)]);
-      y += vs_4tap_taps[x][1] * RGB565_G (src[CLAMP (j, 0, src_width - 1)]);
-      y += vs_4tap_taps[x][2] * RGB565_G (src[CLAMP ((j + 1), 0,
-                  src_width - 1)]);
-      y += vs_4tap_taps[x][3] * RGB565_G (src[CLAMP ((j + 2), 0,
-                  src_width - 1)]);
-    }
-    y += (1 << (SHIFT - 1));
-    y_g = CLAMP (y >> SHIFT, 0, 255);
-
-    if (j - 1 >= 0 && j + 2 < src_width) {
-      y = vs_4tap_taps[x][0] * RGB565_B (src[(j - 1)]);
-      y += vs_4tap_taps[x][1] * RGB565_B (src[j]);
-      y += vs_4tap_taps[x][2] * RGB565_B (src[(j + 1)]);
-      y += vs_4tap_taps[x][3] * RGB565_B (src[(j + 2)]);
-    } else {
-      y = vs_4tap_taps[x][0] * RGB565_B (src[CLAMP ((j - 1), 0,
-                  src_width - 1)]);
-      y += vs_4tap_taps[x][1] * RGB565_B (src[CLAMP (j, 0, src_width - 1)]);
-      y += vs_4tap_taps[x][2] * RGB565_B (src[CLAMP ((j + 1), 0,
-                  src_width - 1)]);
-      y += vs_4tap_taps[x][3] * RGB565_B (src[CLAMP ((j + 2), 0,
-                  src_width - 1)]);
-    }
-    y += (1 << (SHIFT - 1));
-    y_b = CLAMP (y >> SHIFT, 0, 255);
-
-    dest[i] = RGB565 (y_r, y_g, y_b);
-    acc += increment;
-  }
-  *xacc = acc;
-}
-
-void
-vs_scanline_merge_4tap_RGB565 (uint8_t * dest_u8, uint8_t * src1_u8,
-    uint8_t * src2_u8, uint8_t * src3_u8, uint8_t * src4_u8, int n, int acc)
-{
-  int i;
-  int y, y_r, y_b, y_g;
-  int a, b, c, d;
-  uint16_t *dest = (uint16_t *) dest_u8;
-  uint16_t *src1 = (uint16_t *) src1_u8;
-  uint16_t *src2 = (uint16_t *) src2_u8;
-  uint16_t *src3 = (uint16_t *) src3_u8;
-  uint16_t *src4 = (uint16_t *) src4_u8;
-
-  acc = (acc >> 8) & 0xff;
-  a = vs_4tap_taps[acc][0];
-  b = vs_4tap_taps[acc][1];
-  c = vs_4tap_taps[acc][2];
-  d = vs_4tap_taps[acc][3];
-
-  for (i = 0; i < n; i++) {
-    y = a * RGB565_R (src1[i]);
-    y += b * RGB565_R (src2[i]);
-    y += c * RGB565_R (src3[i]);
-    y += d * RGB565_R (src4[i]);
-    y += (1 << (SHIFT - 1));
-    y_r = CLAMP (y >> SHIFT, 0, 255);
-
-    y = a * RGB565_G (src1[i]);
-    y += b * RGB565_G (src2[i]);
-    y += c * RGB565_G (src3[i]);
-    y += d * RGB565_G (src4[i]);
-    y += (1 << (SHIFT - 1));
-    y_g = CLAMP (y >> SHIFT, 0, 255);
-
-    y = a * RGB565_B (src1[i]);
-    y += b * RGB565_B (src2[i]);
-    y += c * RGB565_B (src3[i]);
-    y += d * RGB565_B (src4[i]);
-    y += (1 << (SHIFT - 1));
-    y_b = CLAMP (y >> SHIFT, 0, 255);
-
-    dest[i] = RGB565 (y_r, y_g, y_b);
-  }
-}
-
-void
-vs_image_scale_4tap_RGB565 (const VSImage * dest, const VSImage * src,
-    uint8_t * tmpbuf)
-{
-  int yacc;
-  int y_increment;
-  int x_increment;
-  int i;
-  int j;
-  int xacc;
-  int k;
-
-  if (dest->height == 1)
-    y_increment = 0;
-  else
-    y_increment = ((src->height - 1) << 16) / (dest->height - 1);
-
-  if (dest->width == 1)
-    x_increment = 0;
-  else
-    x_increment = ((src->width - 1) << 16) / (dest->width - 1);
-
-  k = 0;
-  for (i = 0; i < 4; i++) {
-    xacc = 0;
-    vs_scanline_resample_4tap_RGB565 (tmpbuf + i * dest->stride,
-        src->pixels + CLAMP (i, 0, src->height - 1) * src->stride, dest->width,
-        src->width, &xacc, x_increment);
-  }
-
-  yacc = 0;
-  for (i = 0; i < dest->height; i++) {
-    uint8_t *t0, *t1, *t2, *t3;
-
-    j = yacc >> 16;
-
-    while (j > k) {
-      k++;
-      if (k + 3 < src->height) {
-        xacc = 0;
-        vs_scanline_resample_4tap_RGB565 (tmpbuf + ((k + 3) & 3) * dest->stride,
-            src->pixels + (k + 3) * src->stride,
-            dest->width, src->width, &xacc, x_increment);
-      }
-    }
-
-    t0 = tmpbuf + (CLAMP (j - 1, 0, src->height - 1) & 3) * dest->stride;
-    t1 = tmpbuf + (CLAMP (j, 0, src->height - 1) & 3) * dest->stride;
-    t2 = tmpbuf + (CLAMP (j + 1, 0, src->height - 1) & 3) * dest->stride;
-    t3 = tmpbuf + (CLAMP (j + 2, 0, src->height - 1) & 3) * dest->stride;
-    vs_scanline_merge_4tap_RGB565 (dest->pixels + i * dest->stride,
-        t0, t1, t2, t3, dest->width, yacc & 0xffff);
-
-    yacc += y_increment;
-  }
-}
-
-/* note that src and dest are uint16_t, and thus endian dependent */
-
-#define RGB555_R(x) (((x)&0x7c00)>>7 | ((x)&0x7c00)>>12)
-#define RGB555_G(x) (((x)&0x03e0)>>2 | ((x)&0x03e0)>>7)
-#define RGB555_B(x) (((x)&0x001f)<<3 | ((x)&0x001f)>>2)
-
-#define RGB555(r,g,b) \
-  ((((r)<<7)&0x7c00) | (((g)<<2)&0x03e0) | (((b)>>3)&0x001f))
-
-void
-vs_scanline_resample_4tap_RGB555 (uint8_t * dest_u8, uint8_t * src_u8,
-    int n, int src_width, int *xacc, int increment)
-{
-  int i;
-  int j;
-  int acc;
-  int x;
-  int y, y_r, y_b, y_g;
-  uint16_t *dest = (uint16_t *) dest_u8;
-  uint16_t *src = (uint16_t *) src_u8;
-
-  acc = *xacc;
-  for (i = 0; i < n; i++) {
-    j = acc >> 16;
-    x = (acc & 0xffff) >> 8;
-
-    if (j - 1 >= 0 && j + 2 < src_width) {
-      y = vs_4tap_taps[x][0] * RGB555_R (src[(j - 1)]);
-      y += vs_4tap_taps[x][1] * RGB555_R (src[j]);
-      y += vs_4tap_taps[x][2] * RGB555_R (src[(j + 1)]);
-      y += vs_4tap_taps[x][3] * RGB555_R (src[(j + 2)]);
-    } else {
-      y = vs_4tap_taps[x][0] * RGB555_R (src[CLAMP ((j - 1), 0,
-                  src_width - 1)]);
-      y += vs_4tap_taps[x][1] * RGB555_R (src[CLAMP (j, 0, src_width - 1)]);
-      y += vs_4tap_taps[x][2] * RGB555_R (src[CLAMP ((j + 1), 0,
-                  src_width - 1)]);
-      y += vs_4tap_taps[x][3] * RGB555_R (src[CLAMP ((j + 2), 0,
-                  src_width - 1)]);
-    }
-    y += (1 << (SHIFT - 1));
-    y_r = CLAMP (y >> SHIFT, 0, 255);
-
-    if (j - 1 >= 0 && j + 2 < src_width) {
-      y = vs_4tap_taps[x][0] * RGB555_G (src[(j - 1)]);
-      y += vs_4tap_taps[x][1] * RGB555_G (src[j]);
-      y += vs_4tap_taps[x][2] * RGB555_G (src[(j + 1)]);
-      y += vs_4tap_taps[x][3] * RGB555_G (src[(j + 2)]);
-    } else {
-      y = vs_4tap_taps[x][0] * RGB555_G (src[CLAMP ((j - 1), 0,
-                  src_width - 1)]);
-      y += vs_4tap_taps[x][1] * RGB555_G (src[CLAMP (j, 0, src_width - 1)]);
-      y += vs_4tap_taps[x][2] * RGB555_G (src[CLAMP ((j + 1), 0,
-                  src_width - 1)]);
-      y += vs_4tap_taps[x][3] * RGB555_G (src[CLAMP ((j + 2), 0,
-                  src_width - 1)]);
-    }
-    y += (1 << (SHIFT - 1));
-    y_g = CLAMP (y >> SHIFT, 0, 255);
-
-    if (j - 1 >= 0 && j + 2 < src_width) {
-      y = vs_4tap_taps[x][0] * RGB555_B (src[(j - 1)]);
-      y += vs_4tap_taps[x][1] * RGB555_B (src[j]);
-      y += vs_4tap_taps[x][2] * RGB555_B (src[(j + 1)]);
-      y += vs_4tap_taps[x][3] * RGB555_B (src[(j + 2)]);
-    } else {
-      y = vs_4tap_taps[x][0] * RGB555_B (src[CLAMP ((j - 1), 0,
-                  src_width - 1)]);
-      y += vs_4tap_taps[x][1] * RGB555_B (src[CLAMP (j, 0, src_width - 1)]);
-      y += vs_4tap_taps[x][2] * RGB555_B (src[CLAMP ((j + 1), 0,
-                  src_width - 1)]);
-      y += vs_4tap_taps[x][3] * RGB555_B (src[CLAMP ((j + 2), 0,
-                  src_width - 1)]);
-    }
-    y += (1 << (SHIFT - 1));
-    y_b = CLAMP (y >> SHIFT, 0, 255);
-
-    dest[i] = RGB555 (y_r, y_g, y_b);
-    acc += increment;
-  }
-  *xacc = acc;
-}
-
-void
-vs_scanline_merge_4tap_RGB555 (uint8_t * dest_u8, uint8_t * src1_u8,
-    uint8_t * src2_u8, uint8_t * src3_u8, uint8_t * src4_u8, int n, int acc)
-{
-  int i;
-  int y, y_r, y_b, y_g;
-  int a, b, c, d;
-  uint16_t *dest = (uint16_t *) dest_u8;
-  uint16_t *src1 = (uint16_t *) src1_u8;
-  uint16_t *src2 = (uint16_t *) src2_u8;
-  uint16_t *src3 = (uint16_t *) src3_u8;
-  uint16_t *src4 = (uint16_t *) src4_u8;
-
-  acc = (acc >> 8) & 0xff;
-  a = vs_4tap_taps[acc][0];
-  b = vs_4tap_taps[acc][1];
-  c = vs_4tap_taps[acc][2];
-  d = vs_4tap_taps[acc][3];
-
-  for (i = 0; i < n; i++) {
-    y = a * RGB555_R (src1[i]);
-    y += b * RGB555_R (src2[i]);
-    y += c * RGB555_R (src3[i]);
-    y += d * RGB555_R (src4[i]);
-    y += (1 << (SHIFT - 1));
-    y_r = CLAMP (y >> SHIFT, 0, 255);
-
-    y = a * RGB555_G (src1[i]);
-    y += b * RGB555_G (src2[i]);
-    y += c * RGB555_G (src3[i]);
-    y += d * RGB555_G (src4[i]);
-    y += (1 << (SHIFT - 1));
-    y_g = CLAMP (y >> SHIFT, 0, 255);
-
-    y = a * RGB555_B (src1[i]);
-    y += b * RGB555_B (src2[i]);
-    y += c * RGB555_B (src3[i]);
-    y += d * RGB555_B (src4[i]);
-    y += (1 << (SHIFT - 1));
-    y_b = CLAMP (y >> SHIFT, 0, 255);
-
-    dest[i] = RGB555 (y_r, y_g, y_b);
-  }
-}
-
-void
-vs_image_scale_4tap_RGB555 (const VSImage * dest, const VSImage * src,
-    uint8_t * tmpbuf)
-{
-  int yacc;
-  int y_increment;
-  int x_increment;
-  int i;
-  int j;
-  int xacc;
-  int k;
-
-  if (dest->height == 1)
-    y_increment = 0;
-  else
-    y_increment = ((src->height - 1) << 16) / (dest->height - 1);
-
-  if (dest->width == 1)
-    x_increment = 0;
-  else
-    x_increment = ((src->width - 1) << 16) / (dest->width - 1);
-
-  k = 0;
-  for (i = 0; i < 4; i++) {
-    xacc = 0;
-    vs_scanline_resample_4tap_RGB555 (tmpbuf + i * dest->stride,
-        src->pixels + CLAMP (i, 0, src->height - 1) * src->stride, dest->width,
-        src->width, &xacc, x_increment);
-  }
-
-  yacc = 0;
-  for (i = 0; i < dest->height; i++) {
-    uint8_t *t0, *t1, *t2, *t3;
-
-    j = yacc >> 16;
-
-    while (j > k) {
-      k++;
-      if (k + 3 < src->height) {
-        xacc = 0;
-        vs_scanline_resample_4tap_RGB555 (tmpbuf + ((k + 3) & 3) * dest->stride,
-            src->pixels + (k + 3) * src->stride,
-            dest->width, src->width, &xacc, x_increment);
-      }
-    }
-
-    t0 = tmpbuf + (CLAMP (j - 1, 0, src->height - 1) & 3) * dest->stride;
-    t1 = tmpbuf + (CLAMP (j, 0, src->height - 1) & 3) * dest->stride;
-    t2 = tmpbuf + (CLAMP (j + 1, 0, src->height - 1) & 3) * dest->stride;
-    t3 = tmpbuf + (CLAMP (j + 2, 0, src->height - 1) & 3) * dest->stride;
-    vs_scanline_merge_4tap_RGB555 (dest->pixels + i * dest->stride,
-        t0, t1, t2, t3, dest->width, yacc & 0xffff);
-
-    yacc += y_increment;
-  }
-}
-
-void
-vs_scanline_resample_4tap_AYUV64 (uint16_t * dest, uint16_t * src,
-    int n, int src_width, int *xacc, int increment)
-{
-  int i;
-  int j;
-  int acc;
-  int x;
-  int y;
-  int off;
-
-  acc = *xacc;
-  for (i = 0; i < n; i++) {
-    j = acc >> 16;
-    x = (acc & 0xffff) >> 8;
-
-    for (off = 0; off < 4; off++) {
-      if (j - 1 >= 0 && j + 2 < src_width) {
-        y = vs_4tap_taps[x][0] * src[(j - 1) * 4 + off];
-        y += vs_4tap_taps[x][1] * src[j * 4 + off];
-        y += vs_4tap_taps[x][2] * src[(j + 1) * 4 + off];
-        y += vs_4tap_taps[x][3] * src[(j + 2) * 4 + off];
-      } else {
-        y = vs_4tap_taps[x][0] * src[CLAMP ((j - 1) * 4 + off, 0,
-                4 * (src_width - 1) + off)];
-        y += vs_4tap_taps[x][1] * src[CLAMP (j * 4 + off, 0,
-                4 * (src_width - 1) + off)];
-        y += vs_4tap_taps[x][2] * src[CLAMP ((j + 1) * 4 + off, 0,
-                4 * (src_width - 1) + off)];
-        y += vs_4tap_taps[x][3] * src[CLAMP ((j + 2) * 4 + off, 0,
-                4 * (src_width - 1) + off)];
-      }
-      y += (1 << (SHIFT - 1));
-      dest[i * 4 + off] = CLAMP (y >> SHIFT, 0, 255);
-    }
-    acc += increment;
-  }
-  *xacc = acc;
-}
-
-void
-vs_scanline_merge_4tap_AYUV64 (uint16_t * dest, uint16_t * src1,
-    uint16_t * src2, uint16_t * src3, uint16_t * src4, int n, int acc)
-{
-  int i;
-  int y;
-  int off;
-  int a, b, c, d;
-
-  acc = (acc >> 8) & 0xff;
-  a = vs_4tap_taps[acc][0];
-  b = vs_4tap_taps[acc][1];
-  c = vs_4tap_taps[acc][2];
-  d = vs_4tap_taps[acc][3];
-  for (i = 0; i < n; i++) {
-    for (off = 0; off < 4; off++) {
-      y = a * src1[i * 4 + off];
-      y += b * src2[i * 4 + off];
-      y += c * src3[i * 4 + off];
-      y += d * src4[i * 4 + off];
-      y += (1 << (SHIFT - 1));
-      dest[i * 4 + off] = CLAMP (y >> SHIFT, 0, 65535);
-    }
-  }
-}
-
-void
-vs_image_scale_4tap_AYUV64 (const VSImage * dest, const VSImage * src,
-    uint8_t * tmpbuf8)
-{
-  int yacc;
-  int y_increment;
-  int x_increment;
-  int i;
-  int j;
-  int xacc;
-  int k;
-  guint16 *tmpbuf = (guint16 *) tmpbuf8;
-  /* destination stride in pixels for easier use with tmpbuf variable */
-  int dest_pixstride = dest->stride / sizeof (guint16);
-
-  if (dest->height == 1)
-    y_increment = 0;
-  else
-    y_increment = ((src->height - 1) << 16) / (dest->height - 1);
-
-  if (dest->width == 1)
-    x_increment = 0;
-  else
-    x_increment = ((src->width - 1) << 16) / (dest->width - 1);
-
-  k = 0;
-  for (i = 0; i < 4; i++) {
-    xacc = 0;
-    vs_scanline_resample_4tap_AYUV64 (tmpbuf + i * dest_pixstride,
-        (guint16 *) (src->pixels + CLAMP (i, 0, src->height - 1) * src->stride),
-        dest->width, src->width, &xacc, x_increment);
-  }
-
-  yacc = 0;
-  for (i = 0; i < dest->height; i++) {
-    uint16_t *t0, *t1, *t2, *t3;
-
-    j = yacc >> 16;
-
-    while (j > k) {
-      k++;
-      if (k + 3 < src->height) {
-        xacc = 0;
-        vs_scanline_resample_4tap_AYUV64 (tmpbuf + ((k +
-                    3) & 3) * dest_pixstride,
-            (guint16 *) (src->pixels + (k + 3) * src->stride), dest->width,
-            src->width, &xacc, x_increment);
-      }
-    }
-
-    t0 = tmpbuf + (CLAMP (j - 1, 0, src->height - 1) & 3) * dest_pixstride;
-    t1 = tmpbuf + (CLAMP (j, 0, src->height - 1) & 3) * dest_pixstride;
-    t2 = tmpbuf + (CLAMP (j + 1, 0, src->height - 1) & 3) * dest_pixstride;
-    t3 = tmpbuf + (CLAMP (j + 2, 0, src->height - 1) & 3) * dest_pixstride;
-    vs_scanline_merge_4tap_AYUV64 ((guint16 *) (dest->pixels +
-            i * dest->stride), t0, t1, t2, t3, dest->width, yacc & 0xffff);
-
-    yacc += y_increment;
-  }
-}
diff --git a/gst/videoscale/vs_4tap.h b/gst/videoscale/vs_4tap.h
deleted file mode 100644
index 198d045..0000000
--- a/gst/videoscale/vs_4tap.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Image Scaling Functions (4 tap)
- * Copyright (c) 2005 David A. Schleef <ds@schleef.org>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef _VS_4TAP_H_
-#define _VS_4TAP_H_
-
-#include "vs_image.h"
-
-G_GNUC_INTERNAL void vs_4tap_init (void);
-
-G_GNUC_INTERNAL void vs_image_scale_4tap_Y      (const VSImage * dest,
-                                                 const VSImage * src,
-                                                 uint8_t       * tmpbuf);
-
-G_GNUC_INTERNAL void vs_image_scale_4tap_RGBA   (const VSImage * dest,
-                                                 const VSImage * src,
-                                                 uint8_t       * tmpbuf);
-
-G_GNUC_INTERNAL void vs_image_scale_4tap_RGB    (const VSImage * dest,
-                                                 const VSImage * src,
-                                                 uint8_t       * tmpbuf);
-
-G_GNUC_INTERNAL void vs_image_scale_4tap_YUYV   (const VSImage * dest,
-                                                 const VSImage * src,
-                                                 uint8_t       * tmpbuf);
-
-G_GNUC_INTERNAL void vs_image_scale_4tap_UYVY   (const VSImage * dest,
-                                                 const VSImage * src,
-                                                 uint8_t       * tmpbuf);
-
-G_GNUC_INTERNAL void vs_image_scale_4tap_RGB565 (const VSImage * dest,
-                                                 const VSImage * src,
-                                                 uint8_t       * tmpbuf);
-
-G_GNUC_INTERNAL void vs_image_scale_4tap_RGB555 (const VSImage * dest,
-                                                 const VSImage * src,
-                                                 uint8_t       * tmpbuf);
-
-G_GNUC_INTERNAL void vs_image_scale_4tap_Y16    (const VSImage * dest,
-                                                 const VSImage * src,
-                                                 uint8_t       * tmpbuf);
-
-G_GNUC_INTERNAL void vs_image_scale_4tap_AYUV64 (const VSImage * dest,
-                                                 const VSImage * src,
-                                                 uint8_t       * tmpbuf);
-
-#endif
-
diff --git a/gst/videoscale/vs_fill_borders.c b/gst/videoscale/vs_fill_borders.c
deleted file mode 100644
index 37ae78b..0000000
--- a/gst/videoscale/vs_fill_borders.c
+++ /dev/null
@@ -1,421 +0,0 @@
-/*
- * Image Scaling Functions
- * Copyright (c) 2010 Sebastian Dröge <sebastian.droege@collabora.co.uk>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <gst/gst.h>
-#include <string.h>
-
-#include "vs_fill_borders.h"
-#include "gstvideoscaleorc.h"
-
-#if G_BYTE_ORDER == G_LITTLE_ENDIAN
-#define READ_UINT32(ptr) GST_READ_UINT32_LE(ptr)
-#define READ_UINT16(ptr) GST_READ_UINT16_LE(ptr)
-#else
-#define READ_UINT32(ptr) GST_READ_UINT32_BE(ptr)
-#define READ_UINT16(ptr) GST_READ_UINT16_BE(ptr)
-#endif
-
-void
-vs_fill_borders_RGBA (const VSImage * dest, const uint8_t * val)
-{
-  int i;
-  int top = dest->border_top, bottom = dest->border_bottom;
-  int left = dest->border_left, right = dest->border_right;
-  int width = dest->width;
-  int height = dest->height;
-  int real_width = dest->real_width;
-  gsize stride = dest->stride;
-  int tmp, tmp2;
-  uint8_t *data;
-  uint32_t v = READ_UINT32 (val);
-
-  data = dest->real_pixels;
-  for (i = 0; i < top; i++) {
-    video_scale_orc_splat_u32 ((uint32_t *) data, v, real_width);
-    data += stride;
-  }
-
-  if (left || right) {
-    tmp = height;
-    tmp2 = (left + width) * 4;
-    for (i = 0; i < tmp; i++) {
-      video_scale_orc_splat_u32 ((uint32_t *) data, v, left);
-      video_scale_orc_splat_u32 ((uint32_t *) (data + tmp2), v, right);
-      data += stride;
-    }
-  } else {
-    data += stride * height;
-  }
-
-  for (i = 0; i < bottom; i++) {
-    video_scale_orc_splat_u32 ((uint32_t *) data, v, real_width);
-    data += stride;
-  }
-}
-
-static void
-_memset_u24 (uint8_t * data, uint8_t val1, uint8_t val2, uint8_t val3,
-    unsigned int n)
-{
-  unsigned int i;
-
-  for (i = 0; i < n; i++) {
-    data[0] = val1;
-    data[1] = val2;
-    data[2] = val3;
-    data += 3;
-  }
-}
-
-void
-vs_fill_borders_RGB (const VSImage * dest, const uint8_t * val)
-{
-  int i;
-  int top = dest->border_top, bottom = dest->border_bottom;
-  int left = dest->border_left, right = dest->border_right;
-  int width = dest->width;
-  int height = dest->height;
-  int real_width = dest->real_width;
-  gsize stride = dest->stride;
-  int tmp, tmp2;
-  uint8_t *data;
-
-  data = dest->real_pixels;
-  for (i = 0; i < top; i++) {
-    _memset_u24 (data, val[0], val[1], val[2], real_width);
-    data += stride;
-  }
-
-  if (left || right) {
-    tmp = height;
-    tmp2 = (left + width) * 3;
-    for (i = 0; i < tmp; i++) {
-      _memset_u24 (data, val[0], val[1], val[2], left);
-      _memset_u24 (data + tmp2, val[0], val[1], val[2], right);
-      data += stride;
-    }
-  } else {
-    data += stride * height;
-  }
-
-  for (i = 0; i < bottom; i++) {
-    _memset_u24 (data, val[0], val[1], val[2], real_width);
-    data += stride;
-  }
-}
-
-void
-vs_fill_borders_YUYV (const VSImage * dest, const uint8_t * val)
-{
-  int i, j;
-  int top = dest->border_top, bottom = dest->border_bottom;
-  int left = dest->border_left, right = dest->border_right;
-  int width = dest->width;
-  int height = dest->height;
-  int real_width = dest->real_width;
-  gsize stride = dest->stride;
-  int tmp, tmp2;
-  uint8_t *data;
-
-  data = dest->real_pixels;
-  for (i = 0; i < top; i++) {
-    for (j = 0; j < real_width; j++) {
-      data[2 * j] = val[0];
-      data[2 * j + 1] = (j % 2 == 0) ? val[1] : val[3];
-    }
-    data += stride;
-  }
-
-  if (left || right) {
-    tmp = height;
-    tmp2 = (left + width) * 2;
-    for (i = 0; i < tmp; i++) {
-      for (j = 0; j < left; j++) {
-        data[2 * j] = val[0];
-        data[2 * j + 1] = (j % 2 == 0) ? val[1] : val[3];
-      }
-      for (j = 0; j < right; j++) {
-        data[tmp2 + 2 * j] = val[0];
-        data[tmp2 + 2 * j + 1] = (j % 2 == 0) ? val[1] : val[3];
-      }
-      data += stride;
-    }
-  } else {
-    data += stride * height;
-  }
-
-  for (i = 0; i < bottom; i++) {
-    for (j = 0; j < real_width; j++) {
-      data[2 * j] = val[0];
-      data[2 * j + 1] = (j % 2 == 0) ? val[1] : val[3];
-    }
-    data += stride;
-  }
-}
-
-void
-vs_fill_borders_UYVY (const VSImage * dest, const uint8_t * val)
-{
-  int i, j;
-  int top = dest->border_top, bottom = dest->border_bottom;
-  int left = dest->border_left, right = dest->border_right;
-  int width = dest->width;
-  int height = dest->height;
-  int real_width = dest->real_width;
-  gsize stride = dest->stride;
-  int tmp, tmp2;
-  uint8_t *data;
-
-  data = dest->real_pixels;
-  for (i = 0; i < top; i++) {
-    for (j = 0; j < real_width; j++) {
-      data[2 * j] = (j % 2 == 0) ? val[0] : val[2];
-      data[2 * j + 1] = val[1];
-    }
-    data += stride;
-  }
-
-  if (left || right) {
-    tmp = height;
-    tmp2 = (left + width) * 2;
-    for (i = 0; i < tmp; i++) {
-      for (j = 0; j < left; j++) {
-        data[2 * j] = (j % 2 == 0) ? val[0] : val[2];
-        data[2 * j + 1] = val[1];
-      }
-      for (j = 0; j < right; j++) {
-        data[tmp2 + 2 * j] = (j % 2 == 0) ? val[0] : val[2];
-        data[tmp2 + 2 * j + 1] = val[1];
-      }
-      data += stride;
-    }
-  } else {
-    data += stride * height;
-  }
-
-  for (i = 0; i < bottom; i++) {
-    for (j = 0; j < real_width; j++) {
-      data[2 * j] = (j % 2 == 0) ? val[0] : val[2];
-      data[2 * j + 1] = val[1];
-    }
-    data += stride;
-  }
-}
-
-void
-vs_fill_borders_Y (const VSImage * dest, const uint8_t * val)
-{
-  int i;
-  int top = dest->border_top, bottom = dest->border_bottom;
-  int left = dest->border_left, right = dest->border_right;
-  int width = dest->width;
-  int height = dest->height;
-  int real_width = dest->real_width;
-  gsize stride = dest->stride;
-  int tmp, tmp2;
-  uint8_t *data;
-
-  data = dest->real_pixels;
-  for (i = 0; i < top; i++) {
-    memset (data, *val, real_width);
-    data += stride;
-  }
-
-  if (left || right) {
-    tmp = height;
-    tmp2 = left + width;
-    for (i = 0; i < tmp; i++) {
-      memset (data, *val, left);
-      memset (data + tmp2, *val, right);
-      data += stride;
-    }
-  } else {
-    data += stride * height;
-  }
-
-  for (i = 0; i < bottom; i++) {
-    memset (data, *val, real_width);
-    data += stride;
-  }
-}
-
-void
-vs_fill_borders_Y16 (const VSImage * dest, const uint16_t val)
-{
-  int i;
-  int top = dest->border_top, bottom = dest->border_bottom;
-  int left = dest->border_left, right = dest->border_right;
-  int width = dest->width;
-  int height = dest->height;
-  int real_width = dest->real_width;
-  gsize stride = dest->stride;
-  int tmp, tmp2;
-  uint8_t *data;
-
-  data = dest->real_pixels;
-  for (i = 0; i < top; i++) {
-    video_scale_orc_splat_u16 ((uint16_t *) data, val, real_width);
-    data += stride;
-  }
-
-  if (left || right) {
-    tmp = height;
-    tmp2 = (left + width) * 2;
-    for (i = 0; i < tmp; i++) {
-      video_scale_orc_splat_u16 ((uint16_t *) data, val, left);
-      video_scale_orc_splat_u16 ((uint16_t *) (data + tmp2), val, right);
-      data += stride;
-    }
-  } else {
-    data += stride * height;
-  }
-
-  for (i = 0; i < bottom; i++) {
-    video_scale_orc_splat_u16 ((uint16_t *) data, val, real_width);
-    data += stride;
-  }
-}
-
-void
-vs_fill_borders_RGB565 (const VSImage * dest, const uint8_t * val)
-{
-  int i;
-  int top = dest->border_top, bottom = dest->border_bottom;
-  int left = dest->border_left, right = dest->border_right;
-  int width = dest->width;
-  int height = dest->height;
-  int real_width = dest->real_width;
-  gsize stride = dest->stride;
-  int tmp, tmp2;
-  uint8_t *data;
-  uint16_t v = READ_UINT16 (val);
-
-  data = dest->real_pixels;
-  for (i = 0; i < top; i++) {
-    video_scale_orc_splat_u16 ((uint16_t *) data, v, real_width);
-    data += stride;
-  }
-
-  if (left || right) {
-    tmp = height;
-    tmp2 = (left + width) * 2;
-    for (i = 0; i < tmp; i++) {
-      video_scale_orc_splat_u16 ((uint16_t *) data, v, left);
-      video_scale_orc_splat_u16 ((uint16_t *) (data + tmp2), v, right);
-      data += stride;
-    }
-  } else {
-    data += stride * height;
-  }
-
-  for (i = 0; i < bottom; i++) {
-    video_scale_orc_splat_u16 ((uint16_t *) data, v, real_width);
-    data += stride;
-  }
-}
-
-void
-vs_fill_borders_RGB555 (const VSImage * dest, const uint8_t * val)
-{
-  int i;
-  int top = dest->border_top, bottom = dest->border_bottom;
-  int left = dest->border_left, right = dest->border_right;
-  int width = dest->width;
-  int height = dest->height;
-  int real_width = dest->real_width;
-  gsize stride = dest->stride;
-  int tmp, tmp2;
-  uint8_t *data;
-  uint16_t v = READ_UINT16 (val);
-
-  data = dest->real_pixels;
-  for (i = 0; i < top; i++) {
-    video_scale_orc_splat_u16 ((uint16_t *) data, v, real_width);
-    data += stride;
-  }
-
-  if (left || right) {
-    tmp = height;
-    tmp2 = (left + width) * 2;
-    for (i = 0; i < tmp; i++) {
-      video_scale_orc_splat_u16 ((uint16_t *) data, v, left);
-      video_scale_orc_splat_u16 ((uint16_t *) (data + tmp2), v, right);
-      data += stride;
-    }
-  } else {
-    data += stride * height;
-  }
-
-  for (i = 0; i < bottom; i++) {
-    video_scale_orc_splat_u16 ((uint16_t *) data, v, real_width);
-    data += stride;
-  }
-}
-
-void
-vs_fill_borders_AYUV64 (const VSImage * dest, const uint8_t * val)
-{
-  int i;
-  int top = dest->border_top, bottom = dest->border_bottom;
-  int left = dest->border_left, right = dest->border_right;
-  int width = dest->width;
-  int height = dest->height;
-  int real_width = dest->real_width;
-  gsize stride = dest->stride;
-  int tmp, tmp2;
-  uint8_t *data;
-  uint64_t v;
-
-  v = (((guint32) val[0]) << 8) | (((guint32) val[1]) << 24) |
-      (((guint64) val[2]) << 40) | (((guint64) val[3]) << 56);
-
-  data = dest->real_pixels;
-  for (i = 0; i < top; i++) {
-    video_scale_orc_splat_u64 ((uint64_t *) data, v, real_width);
-    data += stride;
-  }
-
-  if (left || right) {
-    tmp = height;
-    tmp2 = (left + width) * 8;
-    for (i = 0; i < tmp; i++) {
-      video_scale_orc_splat_u64 ((uint64_t *) data, v, left);
-      video_scale_orc_splat_u64 ((uint64_t *) (data + tmp2), v, right);
-      data += stride;
-    }
-  } else {
-    data += stride * height;
-  }
-
-  for (i = 0; i < bottom; i++) {
-    video_scale_orc_splat_u64 ((uint64_t *) data, v, real_width);
-    data += stride;
-  }
-}
diff --git a/gst/videoscale/vs_fill_borders.h b/gst/videoscale/vs_fill_borders.h
deleted file mode 100644
index 5cbb8bf..0000000
--- a/gst/videoscale/vs_fill_borders.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Image Scaling Functions
- * Copyright (c) 2010 Sebastian Dröge <sebastian.droege@collabora.co.uk>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */ 
-
-#ifndef __VS_FILL_BORDERS_H__
-#define __VS_FILL_BORDERS_H__
-
-#include <_stdint.h>
-#include "vs_image.h"
-
-G_GNUC_INTERNAL void vs_fill_borders_RGBA   (const VSImage *dest, const uint8_t *val);
-G_GNUC_INTERNAL void vs_fill_borders_RGB    (const VSImage *dest, const uint8_t *val);
-G_GNUC_INTERNAL void vs_fill_borders_YUYV   (const VSImage *dest, const uint8_t *val);
-G_GNUC_INTERNAL void vs_fill_borders_UYVY   (const VSImage *dest, const uint8_t *val);
-G_GNUC_INTERNAL void vs_fill_borders_Y      (const VSImage *dest, const uint8_t *val);
-G_GNUC_INTERNAL void vs_fill_borders_Y16    (const VSImage *dest, const uint16_t val);
-G_GNUC_INTERNAL void vs_fill_borders_RGB565 (const VSImage *dest, const uint8_t *val);
-G_GNUC_INTERNAL void vs_fill_borders_RGB555 (const VSImage *dest, const uint8_t *val);
-G_GNUC_INTERNAL void vs_fill_borders_AYUV64 (const VSImage *dest, const uint8_t *val);
-
-#endif /* __VS_FILL_BORDERS_H__ */
diff --git a/gst/videoscale/vs_image.c b/gst/videoscale/vs_image.c
deleted file mode 100644
index 00096fd..0000000
--- a/gst/videoscale/vs_image.c
+++ /dev/null
@@ -1,1282 +0,0 @@
-/*
- * Image Scaling Functions
- * Copyright (c) 2005-2012 David A. Schleef <ds@schleef.org>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <string.h>
-
-#include "vs_scanline.h"
-#include "vs_image.h"
-
-#include "gstvideoscaleorc.h"
-#include <gst/gst.h>
-
-#define ROUND_UP_2(x)  (((x)+1)&~1)
-#define ROUND_UP_4(x)  (((x)+3)&~3)
-#define ROUND_UP_8(x)  (((x)+7)&~7)
-
-void
-vs_image_scale_nearest_RGBA (const VSImage * dest, const VSImage * src,
-    uint8_t * tmpbuf)
-{
-  int acc;
-  int y_increment;
-  int x_increment;
-  int i;
-  int j;
-  int prev_j;
-
-  if (dest->height == 1)
-    y_increment = 0;
-  else
-    y_increment = ((src->height - 1) << 16) / (dest->height - 1);
-
-  if (dest->width == 1)
-    x_increment = 0;
-  else
-    x_increment = ((src->width - 1) << 16) / (dest->width - 1);
-
-
-  acc = 0;
-  prev_j = -1;
-  for (i = 0; i < dest->height; i++) {
-    j = (acc + 0x8000) >> 16;
-
-    if (j == prev_j) {
-      memcpy (dest->pixels + i * dest->stride,
-          dest->pixels + (i - 1) * dest->stride, dest->width * 4);
-    } else {
-      video_scale_orc_resample_nearest_u32 (dest->pixels + i * dest->stride,
-          src->pixels + j * src->stride, 0, x_increment, dest->width);
-    }
-
-    prev_j = j;
-    acc += y_increment;
-  }
-}
-
-void
-vs_image_scale_linear_RGBA (const VSImage * dest, const VSImage * src,
-    uint8_t * tmpbuf)
-{
-  int acc;
-  int y_increment;
-  int x_increment;
-  int y1;
-  int i;
-  int j;
-  int x;
-  int dest_size;
-
-  if (dest->height == 1)
-    y_increment = 0;
-  else
-    y_increment = ((src->height - 1) << 16) / (dest->height - 1) - 1;
-
-  if (dest->width == 1)
-    x_increment = 0;
-  else
-    x_increment = ((src->width - 1) << 16) / (dest->width - 1) - 1;
-
-  dest_size = dest->width * 4;
-
-#define LINE(x) ((tmpbuf) + (dest_size)*((x)&1))
-
-  acc = 0;
-  video_scale_orc_resample_bilinear_u32 (LINE (0), src->pixels,
-      0, x_increment, dest->width);
-  y1 = 0;
-  for (i = 0; i < dest->height; i++) {
-    j = acc >> 16;
-    x = acc & 0xffff;
-
-    if (x == 0) {
-      memcpy (dest->pixels + i * dest->stride, LINE (j), dest_size);
-    } else {
-      if (j > y1) {
-        video_scale_orc_resample_bilinear_u32 (LINE (j),
-            src->pixels + j * src->stride, 0, x_increment, dest->width);
-        y1++;
-      }
-      if (j >= y1) {
-        video_scale_orc_resample_bilinear_u32 (LINE (j + 1),
-            src->pixels + (j + 1) * src->stride, 0, x_increment, dest->width);
-        y1++;
-      }
-      video_scale_orc_merge_linear_u8 (dest->pixels + i * dest->stride,
-          LINE (j), LINE (j + 1), (x >> 8), dest->width * 4);
-    }
-
-    acc += y_increment;
-  }
-}
-
-
-void
-vs_image_scale_nearest_RGB (const VSImage * dest, const VSImage * src,
-    uint8_t * tmpbuf)
-{
-  int acc;
-  int y_increment;
-  int x_increment;
-  int i;
-  int j;
-  int xacc;
-
-  if (dest->height == 1)
-    y_increment = 0;
-  else
-    y_increment = ((src->height - 1) << 16) / (dest->height - 1);
-
-  if (dest->width == 1)
-    x_increment = 0;
-  else
-    x_increment = ((src->width - 1) << 16) / (dest->width - 1);
-
-  acc = 0;
-  for (i = 0; i < dest->height; i++) {
-    j = (acc + 0x8000) >> 16;
-
-    xacc = 0;
-    vs_scanline_resample_nearest_RGB (dest->pixels + i * dest->stride,
-        src->pixels + j * src->stride, src->width, dest->width, &xacc,
-        x_increment);
-
-    acc += y_increment;
-  }
-}
-
-void
-vs_image_scale_linear_RGB (const VSImage * dest, const VSImage * src,
-    uint8_t * tmpbuf)
-{
-  int acc;
-  int y_increment;
-  int x_increment;
-  uint8_t *tmp1;
-  uint8_t *tmp2;
-  int y1;
-  int y2;
-  int i;
-  int j;
-  int x;
-  int dest_size;
-  int xacc;
-
-  if (dest->height == 1)
-    y_increment = 0;
-  else
-    y_increment = ((src->height - 1) << 16) / (dest->height - 1) - 1;
-
-  if (dest->width == 1)
-    x_increment = 0;
-  else
-    x_increment = ((src->width - 1) << 16) / (dest->width - 1) - 1;
-
-  dest_size = dest->width * 3;
-
-  tmp1 = tmpbuf;
-  tmp2 = tmpbuf + dest_size;
-
-  acc = 0;
-  xacc = 0;
-  y2 = -1;
-  vs_scanline_resample_linear_RGB (tmp1, src->pixels, src->width, dest->width,
-      &xacc, x_increment);
-  y1 = 0;
-  for (i = 0; i < dest->height; i++) {
-    j = acc >> 16;
-    x = acc & 0xffff;
-
-    if (x == 0) {
-      if (j == y1) {
-        memcpy (dest->pixels + i * dest->stride, tmp1, dest_size);
-      } else if (j == y2) {
-        memcpy (dest->pixels + i * dest->stride, tmp2, dest_size);
-      } else {
-        xacc = 0;
-        vs_scanline_resample_linear_RGB (tmp1, src->pixels + j * src->stride,
-            src->width, dest->width, &xacc, x_increment);
-        y1 = j;
-        memcpy (dest->pixels + i * dest->stride, tmp1, dest_size);
-      }
-    } else {
-      if (j == y1) {
-        if (j + 1 != y2) {
-          xacc = 0;
-          vs_scanline_resample_linear_RGB (tmp2,
-              src->pixels + (j + 1) * src->stride, src->width, dest->width,
-              &xacc, x_increment);
-          y2 = j + 1;
-        }
-        vs_scanline_merge_linear_RGB (dest->pixels + i * dest->stride,
-            tmp1, tmp2, dest->width, x);
-      } else if (j == y2) {
-        if (j + 1 != y1) {
-          xacc = 0;
-          vs_scanline_resample_linear_RGB (tmp1,
-              src->pixels + (j + 1) * src->stride, src->width, dest->width,
-              &xacc, x_increment);
-          y1 = j + 1;
-        }
-        vs_scanline_merge_linear_RGB (dest->pixels + i * dest->stride,
-            tmp2, tmp1, dest->width, x);
-      } else {
-        xacc = 0;
-        vs_scanline_resample_linear_RGB (tmp1, src->pixels + j * src->stride,
-            src->width, dest->width, &xacc, x_increment);
-        y1 = j;
-        xacc = 0;
-        vs_scanline_resample_linear_RGB (tmp2,
-            src->pixels + (j + 1) * src->stride, src->width, dest->width, &xacc,
-            x_increment);
-        y2 = (j + 1);
-        vs_scanline_merge_linear_RGB (dest->pixels + i * dest->stride,
-            tmp1, tmp2, dest->width, x);
-      }
-    }
-
-    acc += y_increment;
-  }
-}
-
-/* YUYV */
-
-void
-vs_image_scale_nearest_YUYV (const VSImage * dest, const VSImage * src,
-    uint8_t * tmpbuf)
-{
-  int acc;
-  int y_increment;
-  int x_increment;
-  int i;
-  int j;
-  int xacc;
-
-  if (dest->height == 1)
-    y_increment = 0;
-  else
-    y_increment = ((src->height - 1) << 16) / (dest->height - 1);
-
-  if (dest->width == 1)
-    x_increment = 0;
-  else
-    x_increment = ((src->width - 1) << 16) / (dest->width - 1);
-
-  acc = 0;
-  for (i = 0; i < dest->height; i++) {
-    j = (acc + 0x8000) >> 16;
-
-    xacc = 0;
-    vs_scanline_resample_nearest_YUYV (dest->pixels + i * dest->stride,
-        src->pixels + j * src->stride, src->width, dest->width, &xacc,
-        x_increment);
-
-    acc += y_increment;
-  }
-}
-
-void
-vs_image_scale_linear_YUYV (const VSImage * dest, const VSImage * src,
-    uint8_t * tmpbuf)
-{
-  int acc;
-  int y_increment;
-  int x_increment;
-  uint8_t *tmp1;
-  uint8_t *tmp2;
-  int y1;
-  int y2;
-  int i;
-  int j;
-  int x;
-  int dest_size;
-  int xacc;
-
-  if (dest->height == 1)
-    y_increment = 0;
-  else
-    y_increment = ((src->height - 1) << 16) / (dest->height - 1) - 1;
-
-  if (dest->width == 1)
-    x_increment = 0;
-  else
-    x_increment = ((src->width - 1) << 16) / (dest->width - 1) - 1;
-
-  dest_size = ROUND_UP_4 (dest->width * 2);
-
-  tmp1 = tmpbuf;
-  tmp2 = tmpbuf + dest_size;
-
-  acc = 0;
-  xacc = 0;
-  y2 = -1;
-  vs_scanline_resample_linear_YUYV (tmp1, src->pixels, src->width, dest->width,
-      &xacc, x_increment);
-  y1 = 0;
-  for (i = 0; i < dest->height; i++) {
-    j = acc >> 16;
-    x = acc & 0xffff;
-
-    if (x == 0) {
-      if (j == y1) {
-        memcpy (dest->pixels + i * dest->stride, tmp1, dest_size);
-      } else if (j == y2) {
-        memcpy (dest->pixels + i * dest->stride, tmp2, dest_size);
-      } else {
-        xacc = 0;
-        vs_scanline_resample_linear_YUYV (tmp1, src->pixels + j * src->stride,
-            src->width, dest->width, &xacc, x_increment);
-        y1 = j;
-        memcpy (dest->pixels + i * dest->stride, tmp1, dest_size);
-      }
-    } else {
-      if (j == y1) {
-        if (j + 1 != y2) {
-          xacc = 0;
-          vs_scanline_resample_linear_YUYV (tmp2,
-              src->pixels + (j + 1) * src->stride, src->width, dest->width,
-              &xacc, x_increment);
-          y2 = j + 1;
-        }
-        vs_scanline_merge_linear_YUYV (dest->pixels + i * dest->stride,
-            tmp1, tmp2, dest->width, x);
-      } else if (j == y2) {
-        if (j + 1 != y1) {
-          xacc = 0;
-          vs_scanline_resample_linear_YUYV (tmp1,
-              src->pixels + (j + 1) * src->stride, src->width, dest->width,
-              &xacc, x_increment);
-          y1 = j + 1;
-        }
-        vs_scanline_merge_linear_YUYV (dest->pixels + i * dest->stride,
-            tmp2, tmp1, dest->width, x);
-      } else {
-        xacc = 0;
-        vs_scanline_resample_linear_YUYV (tmp1, src->pixels + j * src->stride,
-            src->width, dest->width, &xacc, x_increment);
-        y1 = j;
-        xacc = 0;
-        vs_scanline_resample_linear_YUYV (tmp2,
-            src->pixels + (j + 1) * src->stride, src->width, dest->width,
-            &xacc, x_increment);
-        y2 = (j + 1);
-        vs_scanline_merge_linear_YUYV (dest->pixels + i * dest->stride,
-            tmp1, tmp2, dest->width, x);
-      }
-    }
-
-    acc += y_increment;
-  }
-}
-
-/* UYVY */
-
-void
-vs_image_scale_nearest_UYVY (const VSImage * dest, const VSImage * src,
-    uint8_t * tmpbuf)
-{
-  int acc;
-  int y_increment;
-  int x_increment;
-  int i;
-  int j;
-  int xacc;
-
-  if (dest->height == 1)
-    y_increment = 0;
-  else
-    y_increment = ((src->height - 1) << 16) / (dest->height - 1);
-
-  if (dest->width == 1)
-    x_increment = 0;
-  else
-    x_increment = ((src->width - 1) << 16) / (dest->width - 1);
-
-  acc = 0;
-  for (i = 0; i < dest->height; i++) {
-    j = (acc + 0x8000) >> 16;
-
-    xacc = 0;
-    vs_scanline_resample_nearest_UYVY (dest->pixels + i * dest->stride,
-        src->pixels + j * src->stride, src->width, dest->width, &xacc,
-        x_increment);
-
-    acc += y_increment;
-  }
-}
-
-void
-vs_image_scale_linear_UYVY (const VSImage * dest, const VSImage * src,
-    uint8_t * tmpbuf)
-{
-  int acc;
-  int y_increment;
-  int x_increment;
-  uint8_t *tmp1;
-  uint8_t *tmp2;
-  int y1;
-  int y2;
-  int i;
-  int j;
-  int x;
-  int dest_size;
-  int xacc;
-
-  if (dest->height == 1)
-    y_increment = 0;
-  else
-    y_increment = ((src->height - 1) << 16) / (dest->height - 1) - 1;
-
-  if (dest->width == 1)
-    x_increment = 0;
-  else
-    x_increment = ((src->width - 1) << 16) / (dest->width - 1) - 1;
-
-  dest_size = ROUND_UP_4 (dest->width * 2);
-
-  tmp1 = tmpbuf;
-  tmp2 = tmpbuf + dest_size;
-
-  acc = 0;
-  xacc = 0;
-  y2 = -1;
-  vs_scanline_resample_linear_UYVY (tmp1, src->pixels, src->width, dest->width,
-      &xacc, x_increment);
-  y1 = 0;
-  for (i = 0; i < dest->height; i++) {
-    j = acc >> 16;
-    x = acc & 0xffff;
-
-    if (x == 0) {
-      if (j == y1) {
-        memcpy (dest->pixels + i * dest->stride, tmp1, dest_size);
-      } else if (j == y2) {
-        memcpy (dest->pixels + i * dest->stride, tmp2, dest_size);
-      } else {
-        xacc = 0;
-        vs_scanline_resample_linear_UYVY (tmp1, src->pixels + j * src->stride,
-            src->width, dest->width, &xacc, x_increment);
-        y1 = j;
-        memcpy (dest->pixels + i * dest->stride, tmp1, dest_size);
-      }
-    } else {
-      if (j == y1) {
-        if (j + 1 != y2) {
-          xacc = 0;
-          vs_scanline_resample_linear_UYVY (tmp2,
-              src->pixels + (j + 1) * src->stride, src->width, dest->width,
-              &xacc, x_increment);
-          y2 = j + 1;
-        }
-        vs_scanline_merge_linear_UYVY (dest->pixels + i * dest->stride,
-            tmp1, tmp2, dest->width, x);
-      } else if (j == y2) {
-        if (j + 1 != y1) {
-          xacc = 0;
-          vs_scanline_resample_linear_UYVY (tmp1,
-              src->pixels + (j + 1) * src->stride, src->width, dest->width,
-              &xacc, x_increment);
-          y1 = j + 1;
-        }
-        vs_scanline_merge_linear_UYVY (dest->pixels + i * dest->stride,
-            tmp2, tmp1, dest->width, x);
-      } else {
-        xacc = 0;
-        vs_scanline_resample_linear_UYVY (tmp1, src->pixels + j * src->stride,
-            src->width, dest->width, &xacc, x_increment);
-        y1 = j;
-        xacc = 0;
-        vs_scanline_resample_linear_UYVY (tmp2,
-            src->pixels + (j + 1) * src->stride, src->width, dest->width,
-            &xacc, x_increment);
-        y2 = (j + 1);
-        vs_scanline_merge_linear_UYVY (dest->pixels + i * dest->stride,
-            tmp1, tmp2, dest->width, x);
-      }
-    }
-
-    acc += y_increment;
-  }
-}
-
-/* NV12 */
-
-void
-vs_image_scale_nearest_NV12 (const VSImage * dest, const VSImage * src,
-    uint8_t * tmpbuf)
-{
-  int acc;
-  int y_increment;
-  int x_increment;
-  int i;
-  int j;
-  int xacc;
-
-  if (dest->height == 1)
-    y_increment = 0;
-  else
-    y_increment = ((src->height - 1) << 16) / (dest->height - 1);
-
-  if (dest->width == 1)
-    x_increment = 0;
-  else
-    x_increment = ((src->width - 1) << 16) / (dest->width - 1);
-
-  acc = 0;
-  for (i = 0; i < dest->height; i++) {
-    j = (acc + 0x8000) >> 16;
-
-    xacc = 0;
-    vs_scanline_resample_nearest_NV12 (dest->pixels + i * dest->stride,
-        src->pixels + j * src->stride, src->width, dest->width, &xacc,
-        x_increment);
-
-    acc += y_increment;
-  }
-}
-
-void
-vs_image_scale_linear_NV12 (const VSImage * dest, const VSImage * src,
-    uint8_t * tmpbuf)
-{
-  int acc;
-  int y_increment;
-  int x_increment;
-  uint8_t *tmp1;
-  uint8_t *tmp2;
-  int y1;
-  int y2;
-  int i;
-  int j;
-  int x;
-  int dest_size;
-  int xacc;
-
-  if (dest->height == 1)
-    y_increment = 0;
-  else
-    y_increment = ((src->height - 1) << 16) / (dest->height - 1) - 1;
-
-  if (dest->width == 1)
-    x_increment = 0;
-  else
-    x_increment = ((src->width - 1) << 16) / (dest->width - 1) - 1;
-
-  dest_size = ROUND_UP_4 (dest->width * 2);
-
-  tmp1 = tmpbuf;
-  tmp2 = tmpbuf + dest_size;
-
-  acc = 0;
-  xacc = 0;
-  y2 = -1;
-  vs_scanline_resample_linear_NV12 (tmp1, src->pixels, src->width, dest->width,
-      &xacc, x_increment);
-  y1 = 0;
-  for (i = 0; i < dest->height; i++) {
-    j = acc >> 16;
-    x = acc & 0xffff;
-
-    if (x == 0) {
-      if (j == y1) {
-        memcpy (dest->pixels + i * dest->stride, tmp1, dest_size);
-      } else if (j == y2) {
-        memcpy (dest->pixels + i * dest->stride, tmp2, dest_size);
-      } else {
-        xacc = 0;
-        vs_scanline_resample_linear_NV12 (tmp1, src->pixels + j * src->stride,
-            src->width, dest->width, &xacc, x_increment);
-        y1 = j;
-        memcpy (dest->pixels + i * dest->stride, tmp1, dest_size);
-      }
-    } else {
-      if (j == y1) {
-        if (j + 1 != y2) {
-          xacc = 0;
-          vs_scanline_resample_linear_NV12 (tmp2,
-              src->pixels + (j + 1) * src->stride, src->width, dest->width,
-              &xacc, x_increment);
-          y2 = j + 1;
-        }
-        vs_scanline_merge_linear_NV12 (dest->pixels + i * dest->stride,
-            tmp1, tmp2, dest->width, x);
-      } else if (j == y2) {
-        if (j + 1 != y1) {
-          xacc = 0;
-          vs_scanline_resample_linear_NV12 (tmp1,
-              src->pixels + (j + 1) * src->stride, src->width, dest->width,
-              &xacc, x_increment);
-          y1 = j + 1;
-        }
-        vs_scanline_merge_linear_NV12 (dest->pixels + i * dest->stride,
-            tmp2, tmp1, dest->width, x);
-      } else {
-        xacc = 0;
-        vs_scanline_resample_linear_NV12 (tmp1, src->pixels + j * src->stride,
-            src->width, dest->width, &xacc, x_increment);
-        y1 = j;
-        xacc = 0;
-        vs_scanline_resample_linear_NV12 (tmp2,
-            src->pixels + (j + 1) * src->stride, src->width, dest->width,
-            &xacc, x_increment);
-        y2 = (j + 1);
-        vs_scanline_merge_linear_NV12 (dest->pixels + i * dest->stride,
-            tmp1, tmp2, dest->width, x);
-      }
-    }
-
-    acc += y_increment;
-  }
-}
-
-/* greyscale */
-
-void
-vs_image_scale_nearest_Y (const VSImage * dest, const VSImage * src,
-    uint8_t * tmpbuf)
-{
-  int acc;
-  int y_increment;
-  int x_increment;
-  int i;
-  int j;
-
-  if (dest->height == 1)
-    y_increment = 0;
-  else
-    y_increment = ((src->height - 1) << 16) / (dest->height - 1);
-
-  if (dest->width == 1)
-    x_increment = 0;
-  else
-    x_increment = ((src->width - 1) << 16) / (dest->width - 1);
-
-  acc = 0;
-  for (i = 0; i < dest->height; i++) {
-    j = (acc + 0x8000) >> 16;
-
-    video_scale_orc_resample_nearest_u8 (dest->pixels + i * dest->stride,
-        src->pixels + j * src->stride, 0, x_increment, dest->width);
-    acc += y_increment;
-  }
-}
-
-void
-vs_image_scale_linear_Y (const VSImage * dest, const VSImage * src,
-    uint8_t * tmpbuf)
-{
-  int acc;
-  int y_increment;
-  int x_increment;
-  uint8_t *tmp1;
-  uint8_t *tmp2;
-  int y1;
-  int y2;
-  int i;
-  int j;
-  int x;
-  int dest_size;
-
-  if (dest->height == 1)
-    y_increment = 0;
-  else
-    y_increment = ((src->height - 1) << 16) / (dest->height - 1) - 1;
-
-  if (dest->width == 1)
-    x_increment = 0;
-  else
-    x_increment = ((src->width - 1) << 16) / (dest->width - 1) - 1;
-
-  dest_size = dest->width;
-
-  tmp1 = tmpbuf;
-  tmp2 = tmpbuf + dest_size;
-
-  acc = 0;
-  y2 = -1;
-  video_scale_orc_resample_bilinear_u8 (tmp1, src->pixels,
-      0, x_increment, dest->width);
-  y1 = 0;
-  for (i = 0; i < dest->height; i++) {
-    j = acc >> 16;
-    x = acc & 0xffff;
-
-    if (x == 0) {
-      if (j == y1) {
-        memcpy (dest->pixels + i * dest->stride, tmp1, dest_size);
-      } else if (j == y2) {
-        memcpy (dest->pixels + i * dest->stride, tmp2, dest_size);
-      } else {
-        video_scale_orc_resample_bilinear_u8 (tmp1,
-            src->pixels + j * src->stride, 0, x_increment, dest->width);
-        y1 = j;
-        memcpy (dest->pixels + i * dest->stride, tmp1, dest_size);
-      }
-    } else {
-      if (j == y1) {
-        if (j + 1 != y2) {
-          video_scale_orc_resample_bilinear_u8 (tmp2,
-              src->pixels + (j + 1) * src->stride, 0, x_increment, dest->width);
-          y2 = j + 1;
-        }
-        if ((x >> 8) == 0) {
-          memcpy (dest->pixels + i * dest->stride, tmp1, dest->width);
-        } else {
-          video_scale_orc_merge_linear_u8 (dest->pixels + i * dest->stride,
-              tmp1, tmp2, (x >> 8), dest->width);
-        }
-      } else if (j == y2) {
-        if (j + 1 != y1) {
-          video_scale_orc_resample_bilinear_u8 (tmp1,
-              src->pixels + (j + 1) * src->stride, 0, x_increment, dest->width);
-          y1 = j + 1;
-        }
-        if ((x >> 8) == 0) {
-          memcpy (dest->pixels + i * dest->stride, tmp2, dest->width);
-        } else {
-          video_scale_orc_merge_linear_u8 (dest->pixels + i * dest->stride,
-              tmp2, tmp1, (x >> 8), dest->width);
-        }
-      } else {
-        video_scale_orc_resample_bilinear_u8 (tmp1,
-            src->pixels + j * src->stride, 0, x_increment, dest->width);
-        y1 = j;
-        video_scale_orc_resample_bilinear_u8 (tmp2,
-            src->pixels + (j + 1) * src->stride, 0, x_increment, dest->width);
-        y2 = (j + 1);
-        if ((x >> 8) == 0) {
-          memcpy (dest->pixels + i * dest->stride, tmp1, dest->width);
-        } else {
-          video_scale_orc_merge_linear_u8 (dest->pixels + i * dest->stride,
-              tmp1, tmp2, (x >> 8), dest->width);
-        }
-      }
-    }
-
-    acc += y_increment;
-  }
-}
-
-void
-vs_image_scale_nearest_Y16 (const VSImage * dest, const VSImage * src,
-    uint8_t * tmpbuf)
-{
-  int acc;
-  int y_increment;
-  int x_increment;
-  int i;
-  int j;
-  int xacc;
-
-  if (dest->height == 1)
-    y_increment = 0;
-  else
-    y_increment = ((src->height - 1) << 16) / (dest->height - 1);
-
-  if (dest->width == 1)
-    x_increment = 0;
-  else
-    x_increment = ((src->width - 1) << 16) / (dest->width - 1);
-
-  acc = 0;
-  for (i = 0; i < dest->height; i++) {
-    j = (acc + 0x8000) >> 16;
-
-    xacc = 0;
-    vs_scanline_resample_nearest_Y16 (dest->pixels + i * dest->stride,
-        src->pixels + j * src->stride, src->width, dest->width, &xacc,
-        x_increment);
-
-    acc += y_increment;
-  }
-}
-
-void
-vs_image_scale_linear_Y16 (const VSImage * dest, const VSImage * src,
-    uint8_t * tmpbuf)
-{
-  int acc;
-  int y_increment;
-  int x_increment;
-  uint8_t *tmp1;
-  uint8_t *tmp2;
-  int y1;
-  int y2;
-  int i;
-  int j;
-  int x;
-  int dest_size;
-  int xacc;
-
-  if (dest->height == 1)
-    y_increment = 0;
-  else
-    y_increment = ((src->height - 1) << 16) / (dest->height - 1) - 1;
-
-  if (dest->width == 1)
-    x_increment = 0;
-  else
-    x_increment = ((src->width - 1) << 16) / (dest->width - 1) - 1;
-
-  dest_size = 2 * dest->width;
-
-  tmp1 = tmpbuf;
-  tmp2 = tmpbuf + dest_size;
-
-  acc = 0;
-  xacc = 0;
-  y2 = -1;
-  vs_scanline_resample_linear_Y16 (tmp1, src->pixels, src->width, dest->width,
-      &xacc, x_increment);
-  y1 = 0;
-  for (i = 0; i < dest->height; i++) {
-    j = acc >> 16;
-    x = acc & 0xffff;
-
-    if (x == 0) {
-      if (j == y1) {
-        memcpy (dest->pixels + i * dest->stride, tmp1, dest_size);
-      } else if (j == y2) {
-        memcpy (dest->pixels + i * dest->stride, tmp2, dest_size);
-      } else {
-        xacc = 0;
-        vs_scanline_resample_linear_Y16 (tmp1, src->pixels + j * src->stride,
-            src->width, dest->width, &xacc, x_increment);
-        y1 = j;
-        memcpy (dest->pixels + i * dest->stride, tmp1, dest_size);
-      }
-    } else {
-      if (j == y1) {
-        if (j + 1 != y2) {
-          xacc = 0;
-          vs_scanline_resample_linear_Y16 (tmp2,
-              src->pixels + (j + 1) * src->stride, src->width, dest->width,
-              &xacc, x_increment);
-          y2 = j + 1;
-        }
-        vs_scanline_merge_linear_Y16 (dest->pixels + i * dest->stride,
-            tmp1, tmp2, dest->width, x);
-      } else if (j == y2) {
-        if (j + 1 != y1) {
-          xacc = 0;
-          vs_scanline_resample_linear_Y16 (tmp1,
-              src->pixels + (j + 1) * src->stride, src->width, dest->width,
-              &xacc, x_increment);
-          y1 = j + 1;
-        }
-        vs_scanline_merge_linear_Y16 (dest->pixels + i * dest->stride,
-            tmp2, tmp1, dest->width, x);
-      } else {
-        xacc = 0;
-        vs_scanline_resample_linear_Y16 (tmp1, src->pixels + j * src->stride,
-            src->width, dest->width, &xacc, x_increment);
-        y1 = j;
-        xacc = 0;
-        vs_scanline_resample_linear_Y16 (tmp2,
-            src->pixels + (j + 1) * src->stride, src->width, dest->width, &xacc,
-            x_increment);
-        y2 = (j + 1);
-        vs_scanline_merge_linear_Y16 (dest->pixels + i * dest->stride,
-            tmp1, tmp2, dest->width, x);
-      }
-    }
-
-    acc += y_increment;
-  }
-}
-
-/* RGB565 */
-
-void
-vs_image_scale_nearest_RGB565 (const VSImage * dest, const VSImage * src,
-    uint8_t * tmpbuf)
-{
-  int acc;
-  int y_increment;
-  int x_increment;
-  int i;
-  int j;
-  int xacc;
-
-  if (dest->height == 1)
-    y_increment = 0;
-  else
-    y_increment = ((src->height - 1) << 16) / (dest->height - 1);
-
-  if (dest->width == 1)
-    x_increment = 0;
-  else
-    x_increment = ((src->width - 1) << 16) / (dest->width - 1);
-
-  acc = 0;
-  for (i = 0; i < dest->height; i++) {
-    j = (acc + 0x8000) >> 16;
-
-    xacc = 0;
-    vs_scanline_resample_nearest_RGB565 (dest->pixels + i * dest->stride,
-        src->pixels + j * src->stride, src->width, dest->width, &xacc,
-        x_increment);
-
-    acc += y_increment;
-  }
-}
-
-void
-vs_image_scale_linear_RGB565 (const VSImage * dest, const VSImage * src,
-    uint8_t * tmpbuf)
-{
-  int acc;
-  int y_increment;
-  int x_increment;
-  uint8_t *tmp1;
-  uint8_t *tmp2;
-  int y1;
-  int y2;
-  int i;
-  int j;
-  int x;
-  int dest_size;
-  int xacc;
-
-  if (dest->height == 1)
-    y_increment = 0;
-  else
-    y_increment = ((src->height - 1) << 16) / (dest->height - 1) - 1;
-
-  if (dest->width == 1)
-    x_increment = 0;
-  else
-    x_increment = ((src->width - 1) << 16) / (dest->width - 1) - 1;
-
-  dest_size = dest->width * 2;
-
-  tmp1 = tmpbuf;
-  tmp2 = tmpbuf + dest_size;
-
-  acc = 0;
-  xacc = 0;
-  y2 = -1;
-  vs_scanline_resample_linear_RGB565 (tmp1, src->pixels, src->width,
-      dest->width, &xacc, x_increment);
-  y1 = 0;
-  for (i = 0; i < dest->height; i++) {
-    j = acc >> 16;
-    x = acc & 0xffff;
-
-    if (x == 0) {
-      if (j == y1) {
-        memcpy (dest->pixels + i * dest->stride, tmp1, dest_size);
-      } else if (j == y2) {
-        memcpy (dest->pixels + i * dest->stride, tmp2, dest_size);
-      } else {
-        xacc = 0;
-        vs_scanline_resample_linear_RGB565 (tmp1, src->pixels + j * src->stride,
-            src->width, dest->width, &xacc, x_increment);
-        y1 = j;
-        memcpy (dest->pixels + i * dest->stride, tmp1, dest_size);
-      }
-    } else {
-      if (j == y1) {
-        if (j + 1 != y2) {
-          xacc = 0;
-          vs_scanline_resample_linear_RGB565 (tmp2,
-              src->pixels + (j + 1) * src->stride, src->width, dest->width,
-              &xacc, x_increment);
-          y2 = j + 1;
-        }
-        vs_scanline_merge_linear_RGB565 (dest->pixels + i * dest->stride,
-            tmp1, tmp2, dest->width, x);
-      } else if (j == y2) {
-        if (j + 1 != y1) {
-          xacc = 0;
-          vs_scanline_resample_linear_RGB565 (tmp1,
-              src->pixels + (j + 1) * src->stride, src->width, dest->width,
-              &xacc, x_increment);
-          y1 = j + 1;
-        }
-        vs_scanline_merge_linear_RGB565 (dest->pixels + i * dest->stride,
-            tmp2, tmp1, dest->width, x);
-      } else {
-        xacc = 0;
-        vs_scanline_resample_linear_RGB565 (tmp1, src->pixels + j * src->stride,
-            src->width, dest->width, &xacc, x_increment);
-        y1 = j;
-        xacc = 0;
-        vs_scanline_resample_linear_RGB565 (tmp2,
-            src->pixels + (j + 1) * src->stride, src->width, dest->width, &xacc,
-            x_increment);
-        y2 = (j + 1);
-        vs_scanline_merge_linear_RGB565 (dest->pixels + i * dest->stride,
-            tmp1, tmp2, dest->width, x);
-      }
-    }
-
-    acc += y_increment;
-  }
-}
-
-/* RGB555 */
-
-void
-vs_image_scale_nearest_RGB555 (const VSImage * dest, const VSImage * src,
-    uint8_t * tmpbuf)
-{
-  int acc;
-  int y_increment;
-  int x_increment;
-  int i;
-  int j;
-  int xacc;
-
-  if (dest->height == 1)
-    y_increment = 0;
-  else
-    y_increment = ((src->height - 1) << 16) / (dest->height - 1);
-
-  if (dest->width == 1)
-    x_increment = 0;
-  else
-    x_increment = ((src->width - 1) << 16) / (dest->width - 1);
-
-  acc = 0;
-  for (i = 0; i < dest->height; i++) {
-    j = (acc + 0x8000) >> 16;
-
-    xacc = 0;
-    vs_scanline_resample_nearest_RGB555 (dest->pixels + i * dest->stride,
-        src->pixels + j * src->stride, src->width, dest->width, &xacc,
-        x_increment);
-
-    acc += y_increment;
-  }
-}
-
-void
-vs_image_scale_linear_RGB555 (const VSImage * dest, const VSImage * src,
-    uint8_t * tmpbuf)
-{
-  int acc;
-  int y_increment;
-  int x_increment;
-  uint8_t *tmp1;
-  uint8_t *tmp2;
-  int y1;
-  int y2;
-  int i;
-  int j;
-  int x;
-  int dest_size;
-  int xacc;
-
-  if (dest->height == 1)
-    y_increment = 0;
-  else
-    y_increment = ((src->height - 1) << 16) / (dest->height - 1) - 1;
-
-  if (dest->width == 1)
-    x_increment = 0;
-  else
-    x_increment = ((src->width - 1) << 16) / (dest->width - 1) - 1;
-
-  dest_size = dest->width * 2;
-
-  tmp1 = tmpbuf;
-  tmp2 = tmpbuf + dest_size;
-
-  acc = 0;
-  xacc = 0;
-  y2 = -1;
-  vs_scanline_resample_linear_RGB555 (tmp1, src->pixels, src->width,
-      dest->width, &xacc, x_increment);
-  y1 = 0;
-  for (i = 0; i < dest->height; i++) {
-    j = acc >> 16;
-    x = acc & 0xffff;
-
-    if (x == 0) {
-      if (j == y1) {
-        memcpy (dest->pixels + i * dest->stride, tmp1, dest_size);
-      } else if (j == y2) {
-        memcpy (dest->pixels + i * dest->stride, tmp2, dest_size);
-      } else {
-        xacc = 0;
-        vs_scanline_resample_linear_RGB555 (tmp1, src->pixels + j * src->stride,
-            src->width, dest->width, &xacc, x_increment);
-        y1 = j;
-        memcpy (dest->pixels + i * dest->stride, tmp1, dest_size);
-      }
-    } else {
-      if (j == y1) {
-        if (j + 1 != y2) {
-          xacc = 0;
-          vs_scanline_resample_linear_RGB555 (tmp2,
-              src->pixels + (j + 1) * src->stride, src->width, dest->width,
-              &xacc, x_increment);
-          y2 = j + 1;
-        }
-        vs_scanline_merge_linear_RGB555 (dest->pixels + i * dest->stride,
-            tmp1, tmp2, dest->width, x);
-      } else if (j == y2) {
-        if (j + 1 != y1) {
-          xacc = 0;
-          vs_scanline_resample_linear_RGB555 (tmp1,
-              src->pixels + (j + 1) * src->stride, src->width, dest->width,
-              &xacc, x_increment);
-          y1 = j + 1;
-        }
-        vs_scanline_merge_linear_RGB555 (dest->pixels + i * dest->stride,
-            tmp2, tmp1, dest->width, x);
-      } else {
-        xacc = 0;
-        vs_scanline_resample_linear_RGB555 (tmp1, src->pixels + j * src->stride,
-            src->width, dest->width, &xacc, x_increment);
-        y1 = j;
-        xacc = 0;
-        vs_scanline_resample_linear_RGB555 (tmp2,
-            src->pixels + (j + 1) * src->stride, src->width, dest->width, &xacc,
-            x_increment);
-        y2 = (j + 1);
-        vs_scanline_merge_linear_RGB555 (dest->pixels + i * dest->stride,
-            tmp1, tmp2, dest->width, x);
-      }
-    }
-
-    acc += y_increment;
-  }
-}
-
-void
-vs_image_scale_nearest_AYUV64 (const VSImage * dest, const VSImage * src,
-    uint8_t * tmpbuf8)
-{
-  int acc;
-  int y_increment;
-  int x_increment;
-  int i;
-  int j;
-  int prev_j;
-
-  if (dest->height == 1)
-    y_increment = 0;
-  else
-    y_increment = ((src->height - 1) << 16) / (dest->height - 1);
-
-  if (dest->width == 1)
-    x_increment = 0;
-  else
-    x_increment = ((src->width - 1) << 16) / (dest->width - 1);
-
-
-  acc = 0;
-  prev_j = -1;
-  for (i = 0; i < dest->height; i++) {
-    j = (acc + 0x8000) >> 16;
-
-    if (j == prev_j) {
-      memcpy (dest->pixels + i * dest->stride,
-          dest->pixels + (i - 1) * dest->stride, dest->width * 8);
-    } else {
-      int xacc = 0;
-      vs_scanline_resample_nearest_AYUV64 (dest->pixels + i * dest->stride,
-          src->pixels + j * src->stride, src->width, dest->width, &xacc,
-          x_increment);
-    }
-
-    prev_j = j;
-    acc += y_increment;
-  }
-}
-
-void
-vs_image_scale_linear_AYUV64 (const VSImage * dest, const VSImage * src,
-    uint8_t * tmpbuf)
-{
-  int acc;
-  int y_increment;
-  int x_increment;
-  int y1;
-  int i;
-  int j;
-  int x;
-  int dest_size;
-  int xacc;
-
-  if (dest->height == 1)
-    y_increment = 0;
-  else
-    y_increment = ((src->height - 1) << 16) / (dest->height - 1) - 1;
-
-  if (dest->width == 1)
-    x_increment = 0;
-  else
-    x_increment = ((src->width - 1) << 16) / (dest->width - 1) - 1;
-
-  dest_size = dest->width * 8;
-
-#undef LINE
-#define LINE(x) ((guint16 *)((tmpbuf) + (dest_size)*((x)&1)))
-
-  acc = 0;
-  xacc = 0;
-  vs_scanline_resample_linear_AYUV64 ((guint8 *) LINE (0),
-      src->pixels, src->width, dest->width, &xacc, x_increment);
-  y1 = 0;
-  for (i = 0; i < dest->height; i++) {
-    j = acc >> 16;
-    x = acc & 0xffff;
-
-    if (x == 0) {
-      memcpy (dest->pixels + i * dest->stride, LINE (j), dest_size);
-    } else {
-      if (j > y1) {
-        xacc = 0;
-        vs_scanline_resample_linear_AYUV64 ((guint8 *) LINE (j),
-            src->pixels + j * src->stride, src->width, dest->width, &xacc,
-            x_increment);
-        y1++;
-      }
-      if (j >= y1) {
-        xacc = 0;
-        vs_scanline_resample_linear_AYUV64 ((guint8 *) LINE (j + 1),
-            src->pixels + (j + 1) * src->stride, src->width, dest->width, &xacc,
-            x_increment);
-        video_scale_orc_merge_linear_u16 ((guint16 *) (dest->pixels +
-                i * dest->stride), LINE (j), LINE (j + 1), 65536 - x, x,
-            dest->width * 4);
-        y1++;
-      } else {
-        video_scale_orc_merge_linear_u16 ((guint16 *) (dest->pixels +
-                i * dest->stride), LINE (j), LINE (j + 1), 65536 - x, x,
-            dest->width * 4);
-      }
-    }
-
-    acc += y_increment;
-  }
-}
diff --git a/gst/videoscale/vs_image.h b/gst/videoscale/vs_image.h
deleted file mode 100644
index d0a30ec..0000000
--- a/gst/videoscale/vs_image.h
+++ /dev/null
@@ -1,174 +0,0 @@
-/*
- * Image Scaling Functions
- * Copyright (c) 2005 David A. Schleef <ds@schleef.org>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef __VS_IMAGE_H__
-#define __VS_IMAGE_H__
-
-#include <glib.h>
-#include <_stdint.h>
-
-typedef struct _VSImage VSImage;
-
-struct _VSImage {
-  uint8_t *real_pixels;
-  int real_width;
-  int real_height;
-  int border_left, border_right;
-  int border_top, border_bottom;
-  uint8_t *pixels;
-  int width;
-  int height;
-  gsize stride;
-};
-
-G_GNUC_INTERNAL void vs_image_scale_nearest_RGBA   (const VSImage * dest,
-                                                    const VSImage * src,
-                                                    uint8_t       * tmpbuf);
-G_GNUC_INTERNAL void vs_image_scale_linear_RGBA    (const VSImage * dest,
-                                                    const VSImage * src,
-                                                    uint8_t       * tmpbuf);
-
-
-G_GNUC_INTERNAL void vs_image_scale_lanczos_AYUV   (const VSImage * dest,
-                                                    const VSImage * src,
-                                                    uint8_t       * tmpbuf,
-                                                    double          sharpness,
-                                                    gboolean        dither,
-                                                    int             submethod,
-                                                    double          a,
-                                                    double          sharpen);
-
-G_GNUC_INTERNAL void vs_image_scale_lanczos_AYUV64 (const VSImage * dest,
-                                                    const VSImage * src,
-                                                    uint8_t       * tmpbuf,
-                                                    double          sharpness,
-                                                    gboolean        dither,
-                                                    int             submethod,
-                                                    double          a,
-                                                    double          sharpen);
-
-
-G_GNUC_INTERNAL void vs_image_scale_nearest_RGB    (const VSImage * dest,
-                                                    const VSImage * src,
-                                                    uint8_t       * tmpbuf);
-
-G_GNUC_INTERNAL void vs_image_scale_linear_RGB     (const VSImage * dest,
-                                                    const VSImage * src,
-                                                    uint8_t       * tmpbuf);
-
-
-G_GNUC_INTERNAL void vs_image_scale_nearest_YUYV   (const VSImage * dest,
-                                                    const VSImage * src,
-                                                    uint8_t       * tmpbuf);
-
-G_GNUC_INTERNAL void vs_image_scale_linear_YUYV    (const VSImage * dest,
-                                                    const VSImage * src,
-                                                    uint8_t       * tmpbuf);
-
-
-G_GNUC_INTERNAL void vs_image_scale_nearest_UYVY   (const VSImage * dest,
-                                                    const VSImage * src,
-                                                    uint8_t       * tmpbuf);
-
-G_GNUC_INTERNAL void vs_image_scale_linear_UYVY    (const VSImage * dest,
-                                                    const VSImage * src,
-                                                    uint8_t       * tmpbuf);
-
-
-G_GNUC_INTERNAL void vs_image_scale_nearest_NV12   (const VSImage * dest,
-                                                    const VSImage * src,
-                                                    uint8_t       * tmpbuf);
-
-G_GNUC_INTERNAL void vs_image_scale_linear_NV12    (const VSImage * dest,
-                                                    const VSImage * src,
-                                                    uint8_t       * tmpbuf);
-
-
-G_GNUC_INTERNAL void vs_image_scale_nearest_Y      (const VSImage * dest,
-                                                    const VSImage * src,
-                                                    uint8_t       * tmpbuf);
-
-G_GNUC_INTERNAL void vs_image_scale_linear_Y       (const VSImage * dest,
-                                                    const VSImage * src,
-                                                    uint8_t       * tmpbuf);
-
-G_GNUC_INTERNAL void vs_image_scale_lanczos_Y      (const VSImage * dest,
-                                                    const VSImage * src,
-                                                    uint8_t       * tmpbuf,
-                                                    double          sharpness,
-                                                    gboolean        dither,
-                                                    int             submethod,
-                                                    double          a,
-                                                    double          sharpen);
-
-
-G_GNUC_INTERNAL void vs_image_scale_nearest_RGB565 (const VSImage * dest,
-                                                    const VSImage * src,
-                                                    uint8_t       * tmpbuf);
-
-G_GNUC_INTERNAL void vs_image_scale_linear_RGB565  (const VSImage * dest,
-                                                    const VSImage * src,
-                                                    uint8_t       * tmpbuf);
-
-
-G_GNUC_INTERNAL void vs_image_scale_nearest_RGB555 (const VSImage * dest,
-                                                    const VSImage * src,
-                                                    uint8_t       * tmpbuf);
-
-G_GNUC_INTERNAL void vs_image_scale_linear_RGB555  (const VSImage * dest,
-                                                    const VSImage * src,
-                                                    uint8_t       * tmpbuf);
-
-
-G_GNUC_INTERNAL void vs_image_scale_nearest_Y16    (const VSImage * dest,
-                                                    const VSImage * src,
-                                                    uint8_t       * tmpbuf);
-
-G_GNUC_INTERNAL void vs_image_scale_linear_Y16     (const VSImage * dest,
-                                                    const VSImage * src,
-                                                    uint8_t       * tmpbuf);
-
-
-G_GNUC_INTERNAL void vs_image_scale_nearest_AYUV16 (const VSImage * dest,
-                                                    const VSImage * src,
-                                                    uint8_t       * tmpbuf);
-
-G_GNUC_INTERNAL void vs_image_scale_linear_AYUV16  (const VSImage * dest,
-                                                    const VSImage * src,
-                                                    uint8_t       * tmpbuf);
-
-
-G_GNUC_INTERNAL void vs_image_scale_nearest_AYUV64 (const VSImage * dest,
-                                                    const VSImage * src,
-                                                    uint8_t       * tmpbuf8);
-
-G_GNUC_INTERNAL void vs_image_scale_linear_AYUV64  (const VSImage * dest,
-                                                    const VSImage * src,
-                                                    uint8_t       * tmpbuf8);
-
-#endif
-
diff --git a/gst/videoscale/vs_lanczos.c b/gst/videoscale/vs_lanczos.c
deleted file mode 100644
index 929a763..0000000
--- a/gst/videoscale/vs_lanczos.c
+++ /dev/null
@@ -1,1656 +0,0 @@
-/*
- * Image Scaling Functions
- * Copyright (c) 2011 David A. Schleef <ds@schleef.org>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-/*
- *
- * Modified Lanczos scaling algorithm
- * ==================================
- *
- * This algorithm was developed by the author.  The primary goals of
- * the algorithm are high-quality video downscaling for medium scale
- * factors (in the range of 1.3x to 5.0x) using methods that can be
- * converted to SIMD code.  Concerns with existing algorithms were
- * mainly related to either over-soft filtering (Lanczos) or aliasing
- * (bilinear or any other method with inadequate sampling).
- *
- * The problems with bilinear scaling are apparent when downscaling
- * more than a factor of 2.  For example, when downscaling by a factor
- * of 3, only two-thirds of the input pixels contribute to the output
- * pixels.  This is only considering scaling in one direction; after
- * scaling both vertically and horizontally in a 2-D image, fewer than
- * half of the input pixels contribute to the output, so it should not
- * be surprising that the output is suboptimal.
- *
- * The problems with Lanczos scaling are more subtle.  From a theoretical
- * perspective, Lanczos is an optimal algorithm for resampling equally-
- * spaced values.  This theoretical perspective is based on analysis
- * done in frequency space, thus, Lanczos works very well for audio
- * resampling, since the ear hears primarily in frequency space.  The
- * human visual system is sensitive primarily in the spatial domain,
- * therefore any resampling algorithm should take this into account.
- * This difference is immediately clear in the size of resampling
- * window or envelope that is chosen for resampling: for audio, an
- * envelope of a=64 is typical, in image scaling, the envelope is
- * usually a=2 or a=3.
- *
- * One result of the HVS being sensitive in the spatial domain (and
- * also probably due to oversampling capabilities of the retina and
- * visual cortex) is that it is less sensitive to the exact magnitude
- * of high-frequency visual signals than to the appropriate amount of
- * energy in the nearby frequency band.  A Lanczos kernel with a=2
- * or a=3 strongly decreases the amount of energy in the high frequency
- * bands.  The energy in this area can be increased by increasing a,
- * which brings in energy from different areas of the image (bad for
- * reasons mentioned above), or by oversampling the input data.  We
- * have chosen two methods for doing the latter.  Firstly, there is
- * a sharpness parameter, which increases the cutoff frequency of the
- * filter, aliasing higher frequency noise into the passband.  And
- * secondly, there is the sharpen parameter, which increases the
- * contribution of high-frequency (but in-band) components.
- *
- * An alternate explanation of the usefulness of a sharpening filter
- * is that many natural images have a roughly 1/f spectrum.  In order
- * for a downsampled image to look more "natural" when high frequencies
- * are removed, the frequencies in the pass band near the cutoff
- * frequency are amplified, causing the spectrum to be more roughly
- * 1/f.  I said "roughly", not "literally".
- *
- * This alternate explanation is useful for understanding the author's
- * secondary motivation for developing this algorithm, namely, as a
- * method of video compression.  Several recent techniques (such as
- * HTTP Live Streaming and SVC) use image scaling as a method to get
- * increased compression out of nominally non-scalable codecs such as
- * H.264.  For optimal quality, it is thusly important to consider
- * the scaler and encoder as a combined unit.  Tuning of the sharpness
- * and sharpen parameters was performed using the Toro encoder tuner,
- * where scaled and encoded video was compared to unscaled and encoded
- * video.  This tuning suggested values that were very close to the
- * values chosen by manual inspection of scaled images and video.
- *
- * The optimal values of sharpen and sharpness were slightly different
- * depending whether the comparison was still images or video.  Video
- * comparisons were more sensitive to aliasing, since the aliasing
- * artifacts tended to move or "crawl" around the video.  The default
- * values are for video; image scaling may prefer higher values.
- *
- * A number of related techniques were rejected for various reasons.
- * An early technique of selecting the sharpness factor locally based
- * on edge detection (in order to use a higher sharpness values without
- * the corresponding aliasing on edges) worked very well for still
- * images, but caused too much "crawling" on textures in video.  Also,
- * this method is slow, as it does not parallelize well.
- *
- * Non-separable techniques were rejected because the fastest would
- * have been at least 4x slower.
- *
- * It is infrequently appreciated that image scaling should ideally be
- * done in linear light space.  Converting to linear light space has
- * a similar effect to a sharpening filter.  This approach was not
- * taken because the added benefit is minor compared to the additional
- * computational cost.  Morever, the benefit is decreased by increasing
- * the strength of the sharpening filter.
- *
- */
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <string.h>
-
-#include "vs_scanline.h"
-#include "vs_image.h"
-
-#include "gstvideoscaleorc.h"
-#include <gst/gst.h>
-#include <math.h>
-
-#define NEED_CLAMP(x,a,b) ((x) < (a) || (x) > (b))
-
-#define ROUND_UP_2(x)  (((x)+1)&~1)
-#define ROUND_UP_4(x)  (((x)+3)&~3)
-#define ROUND_UP_8(x)  (((x)+7)&~7)
-
-#define SRC_LINE(i) (scale->src->pixels + scale->src->stride * (i))
-
-#define TMP_LINE_S16(i) ((gint16 *)scale->tmpdata + (i)*(scale->dest->width))
-#define TMP_LINE_S32(i) ((gint32 *)scale->tmpdata + (i)*(scale->dest->width))
-#define TMP_LINE_FLOAT(i) ((float *)scale->tmpdata + (i)*(scale->dest->width))
-#define TMP_LINE_DOUBLE(i) ((double *)scale->tmpdata + (i)*(scale->dest->width))
-#define TMP_LINE_S16_AYUV(i) ((gint16 *)scale->tmpdata + (i)*4*(scale->dest->width))
-#define TMP_LINE_S32_AYUV(i) ((gint32 *)scale->tmpdata + (i)*4*(scale->dest->width))
-#define TMP_LINE_FLOAT_AYUV(i) ((float *)scale->tmpdata + (i)*4*(scale->dest->width))
-#define TMP_LINE_DOUBLE_AYUV(i) ((double *)scale->tmpdata + (i)*4*(scale->dest->width))
-
-#define PTR_OFFSET(a,b) ((void *)((char *)(a) + (b)))
-
-typedef void (*HorizResampleFunc) (void *dest, const gint32 * offsets,
-    const void *taps, const void *src, int n_taps, int shift, int n);
-
-typedef struct _Scale1D Scale1D;
-struct _Scale1D
-{
-  int n;
-  double offset;
-  double scale;
-
-  double fx;
-  double ex;
-  int dx;
-
-  int n_taps;
-  gint32 *offsets;
-  void *taps;
-};
-
-typedef struct _Scale Scale;
-struct _Scale
-{
-  const VSImage *dest;
-  const VSImage *src;
-
-  double sharpness;
-  gboolean dither;
-
-  void *tmpdata;
-
-  HorizResampleFunc horiz_resample_func;
-
-  Scale1D x_scale1d;
-  Scale1D y_scale1d;
-};
-
-static void
-vs_image_scale_lanczos_Y_int16 (const VSImage * dest, const VSImage * src,
-    uint8_t * tmpbuf, double sharpness, gboolean dither, double a,
-    double sharpen);
-static void vs_image_scale_lanczos_Y_int32 (const VSImage * dest,
-    const VSImage * src, uint8_t * tmpbuf, double sharpness, gboolean dither,
-    double a, double sharpen);
-static void vs_image_scale_lanczos_Y_float (const VSImage * dest,
-    const VSImage * src, uint8_t * tmpbuf, double sharpness, gboolean dither,
-    double a, double sharpen);
-static void vs_image_scale_lanczos_Y_double (const VSImage * dest,
-    const VSImage * src, uint8_t * tmpbuf, double sharpness, gboolean dither,
-    double a, double sharpen);
-static void
-vs_image_scale_lanczos_AYUV_int16 (const VSImage * dest, const VSImage * src,
-    uint8_t * tmpbuf, double sharpness, gboolean dither, double a,
-    double sharpen);
-static void vs_image_scale_lanczos_AYUV_int32 (const VSImage * dest,
-    const VSImage * src, uint8_t * tmpbuf, double sharpness, gboolean dither,
-    double a, double sharpen);
-static void vs_image_scale_lanczos_AYUV_float (const VSImage * dest,
-    const VSImage * src, uint8_t * tmpbuf, double sharpness, gboolean dither,
-    double a, double sharpen);
-static void vs_image_scale_lanczos_AYUV_double (const VSImage * dest,
-    const VSImage * src, uint8_t * tmpbuf, double sharpness, gboolean dither,
-    double a, double sharpen);
-static void vs_image_scale_lanczos_AYUV64_double (const VSImage * dest,
-    const VSImage * src, uint8_t * tmpbuf, double sharpness, gboolean dither,
-    double a, double sharpen);
-
-static double
-sinc (double x)
-{
-  if (x == 0)
-    return 1;
-  return sin (G_PI * x) / (G_PI * x);
-}
-
-static double
-envelope (double x)
-{
-  if (x <= -1 || x >= 1)
-    return 0;
-  return sinc (x);
-}
-
-static int
-scale1d_get_n_taps (int src_size, int dest_size, double a, double sharpness)
-{
-  double scale;
-  double fx;
-  int dx;
-
-  scale = src_size / (double) dest_size;
-  if (scale > 1.0) {
-    fx = (1.0 / scale) * sharpness;
-  } else {
-    fx = (1.0) * sharpness;
-  }
-  dx = ceil (a / fx);
-
-  return 2 * dx;
-}
-
-static void
-scale1d_cleanup (Scale1D * scale)
-{
-  g_free (scale->taps);
-  g_free (scale->offsets);
-}
-
-/*
- * Calculates a set of taps for each destination element in double
- * format.  Each set of taps sums to 1.0.
- *
- */
-static void
-scale1d_calculate_taps (Scale1D * scale, int src_size, int dest_size,
-    int n_taps, double a, double sharpness, double sharpen)
-{
-  int j;
-  double *tap_array;
-  gint32 *offsets;
-  double scale_offset;
-  double scale_increment;
-  int dx;
-  double fx;
-  double ex;
-
-  scale->scale = src_size / (double) dest_size;
-  scale->offset = scale->scale / 2 - 0.5;
-
-  if (scale->scale > 1.0) {
-    scale->fx = (1.0 / scale->scale) * sharpness;
-  } else {
-    scale->fx = (1.0) * sharpness;
-  }
-  scale->ex = scale->fx / a;
-  scale->dx = ceil (a / scale->fx);
-
-  g_assert (n_taps >= 2 * scale->dx);
-  scale->n_taps = n_taps;
-
-  scale->taps = g_malloc (sizeof (double) * scale->n_taps * dest_size);
-  scale->offsets = g_malloc (sizeof (gint32) * dest_size);
-  tap_array = scale->taps;
-  offsets = scale->offsets;
-
-  scale_offset = scale->offset;
-  scale_increment = scale->scale;
-  dx = scale->dx;
-  fx = scale->fx;
-  ex = scale->ex;
-
-  for (j = 0; j < dest_size; j++) {
-    double x;
-    int xi;
-    int l;
-    double weight;
-    double *taps;
-
-    x = scale_offset + scale_increment * j;
-    x = CLAMP (x, 0, src_size);
-    xi = ceil (x) - dx;
-
-    offsets[j] = xi;
-    weight = 0;
-    taps = tap_array + j * n_taps;
-
-    for (l = 0; l < n_taps; l++) {
-      int xl = xi + l;
-      taps[l] = sinc ((x - xl) * fx) * envelope ((x - xl) * ex);
-      taps[l] -= sharpen * envelope ((x - xl) * ex);
-      weight += taps[l];
-    }
-    g_assert (envelope ((x - (xi - 1)) * ex) == 0);
-    g_assert (envelope ((x - (xi + n_taps)) * ex) == 0);
-    for (l = 0; l < n_taps; l++) {
-      taps[l] /= weight;
-    }
-
-    if (xi < 0) {
-      int shift = -xi;
-
-      for (l = 0; l < shift; l++) {
-        taps[shift] += taps[l];
-      }
-      for (l = 0; l < n_taps - shift; l++) {
-        taps[l] = taps[shift + l];
-      }
-      for (; l < n_taps; l++) {
-        taps[l] = 0;
-      }
-      offsets[j] += shift;
-    }
-
-    if (xi > src_size - n_taps) {
-      int shift = xi - (src_size - n_taps);
-
-      for (l = 0; l < shift; l++) {
-        taps[n_taps - shift - 1] += taps[n_taps - shift + l];
-      }
-      for (l = 0; l < n_taps - shift; l++) {
-        taps[n_taps - 1 - l] = taps[n_taps - 1 - shift - l];
-      }
-      for (l = 0; l < shift; l++) {
-        taps[l] = 0;
-      }
-      offsets[j] -= shift;
-    }
-  }
-}
-
-/*
- * Calculates a set of taps for each destination element in float
- * format.  Each set of taps sums to 1.0.
- */
-static void
-scale1d_calculate_taps_float (Scale1D * scale, int src_size, int dest_size,
-    int n_taps, double a, double sharpness, double sharpen)
-{
-  double *taps_d;
-  float *taps_f;
-  int j;
-
-  scale1d_calculate_taps (scale, src_size, dest_size, n_taps, a, sharpness,
-      sharpen);
-
-  taps_d = scale->taps;
-  taps_f = g_malloc (sizeof (float) * scale->n_taps * dest_size);
-
-  for (j = 0; j < dest_size * n_taps; j++) {
-    taps_f[j] = taps_d[j];
-  }
-
-  g_free (taps_d);
-  scale->taps = taps_f;
-}
-
-/*
- * Calculates a set of taps for each destination element in gint32
- * format.  Each set of taps sums to (very nearly) (1<<shift).  A
- * typical value for shift is 10 to 15, so that applying the taps to
- * uint8 values and summing will fit in a (signed) int32.
- */
-static void
-scale1d_calculate_taps_int32 (Scale1D * scale, int src_size, int dest_size,
-    int n_taps, double a, double sharpness, double sharpen, int shift)
-{
-  double *taps_d;
-  gint32 *taps_i;
-  int i;
-  int j;
-  double multiplier;
-
-  scale1d_calculate_taps (scale, src_size, dest_size, n_taps, a, sharpness,
-      sharpen);
-
-  taps_d = scale->taps;
-  taps_i = g_malloc (sizeof (gint32) * scale->n_taps * dest_size);
-
-  multiplier = (1 << shift);
-
-  for (j = 0; j < dest_size; j++) {
-    for (i = 0; i < n_taps; i++) {
-      taps_i[j * n_taps + i] =
-          floor (0.5 + taps_d[j * n_taps + i] * multiplier);
-    }
-  }
-
-  g_free (taps_d);
-  scale->taps = taps_i;
-}
-
-/*
- * Calculates a set of taps for each destination element in gint16
- * format.  Each set of taps sums to (1<<shift).  A typical value
- * for shift is 7, so that applying the taps to uint8 values and
- * summing will fit in a (signed) int16.
- */
-static void
-scale1d_calculate_taps_int16 (Scale1D * scale, int src_size, int dest_size,
-    int n_taps, double a, double sharpness, double sharpen, int shift)
-{
-  double *taps_d;
-  gint16 *taps_i;
-  int i;
-  int j;
-  double multiplier;
-
-  scale1d_calculate_taps (scale, src_size, dest_size, n_taps, a, sharpness,
-      sharpen);
-
-  taps_d = scale->taps;
-  taps_i = g_malloc (sizeof (gint16) * scale->n_taps * dest_size);
-
-  multiplier = (1 << shift);
-
-  /* Various methods for converting floating point taps to integer.
-   * The dB values are the SSIM value between scaling an image via
-   * the floating point pathway vs. the integer pathway using the
-   * given code to generate the taps.  Only one image was tested,
-   * scaling from 1920x1080 to 640x360.  Several variations of the
-   * methods were also tested, with nothing appearing useful.  */
-#if 0
-  /* Standard round to integer.  This causes bad DC errors. */
-  /* 44.588 dB */
-  for (j = 0; j < dest_size; j++) {
-    for (i = 0; i < n_taps; i++) {
-      taps_i[j * n_taps + i] =
-          floor (0.5 + taps_d[j * n_taps + i] * multiplier);
-    }
-  }
-#endif
-#if 0
-  /* Dithering via error propogation.  Works pretty well, but
-   * really we want to propogate errors across rows, which would
-   * mean having several sets of tap arrays.  Possible, but more work,
-   * and it may not even be better. */
-  /* 57.0961 dB */
-  {
-    double err = 0;
-    for (j = 0; j < dest_size; j++) {
-      for (i = 0; i < n_taps; i++) {
-        err += taps_d[j * n_taps + i] * multiplier;
-        taps_i[j * n_taps + i] = floor (err);
-        err -= floor (err);
-      }
-    }
-  }
-#endif
-#if 1
-  /* Round to integer, but with an adjustable bias that we use to
-   * eliminate the DC error.  This search method is a bit crude, and
-   * could perhaps be improved somewhat. */
-  /* 60.4851 dB */
-  for (j = 0; j < dest_size; j++) {
-    int k;
-    for (k = 0; k < 100; k++) {
-      int sum = 0;
-      double offset;
-
-      offset = k * 0.01;
-      for (i = 0; i < n_taps; i++) {
-        taps_i[j * n_taps + i] =
-            floor (offset + taps_d[j * n_taps + i] * multiplier);
-        sum += taps_i[j * n_taps + i];
-      }
-
-      if (sum >= (1 << shift))
-        break;
-    }
-  }
-#endif
-#if 0
-  /* Round to integer, but adjust the multiplier.  The search method is
-   * wrong a lot, but was sufficient enough to calculate dB error. */
-  /* 58.6517 dB */
-  for (j = 0; j < dest_size; j++) {
-    int k;
-    int sum = 0;
-    for (k = 0; k < 200; k++) {
-      sum = 0;
-
-      multiplier = (1 << shift) - 1.0 + k * 0.01;
-      for (i = 0; i < n_taps; i++) {
-        taps_i[j * n_taps + i] =
-            floor (0.5 + taps_d[j * n_taps + i] * multiplier);
-        sum += taps_i[j * n_taps + i];
-      }
-
-      if (sum >= (1 << shift))
-        break;
-    }
-    if (sum != (1 << shift)) {
-      GST_ERROR ("%g %d", multiplier, sum);
-    }
-  }
-#endif
-#if 0
-  /* Round to integer, but subtract the error from the largest tap */
-  /* 58.3677 dB */
-  for (j = 0; j < dest_size; j++) {
-    int err = -multiplier;
-    for (i = 0; i < n_taps; i++) {
-      taps_i[j * n_taps + i] =
-          floor (0.5 + taps_d[j * n_taps + i] * multiplier);
-      err += taps_i[j * n_taps + i];
-    }
-    if (taps_i[j * n_taps + (n_taps / 2 - 1)] >
-        taps_i[j * n_taps + (n_taps / 2)]) {
-      taps_i[j * n_taps + (n_taps / 2 - 1)] -= err;
-    } else {
-      taps_i[j * n_taps + (n_taps / 2)] -= err;
-    }
-  }
-#endif
-
-  g_free (taps_d);
-  scale->taps = taps_i;
-}
-
-
-void
-vs_image_scale_lanczos_Y (const VSImage * dest, const VSImage * src,
-    uint8_t * tmpbuf, double sharpness, gboolean dither, int submethod,
-    double a, double sharpen)
-{
-  switch (submethod) {
-    case 0:
-    default:
-      vs_image_scale_lanczos_Y_int16 (dest, src, tmpbuf, sharpness, dither, a,
-          sharpen);
-      break;
-    case 1:
-      vs_image_scale_lanczos_Y_int32 (dest, src, tmpbuf, sharpness, dither, a,
-          sharpen);
-      break;
-    case 2:
-      vs_image_scale_lanczos_Y_float (dest, src, tmpbuf, sharpness, dither, a,
-          sharpen);
-      break;
-    case 3:
-      vs_image_scale_lanczos_Y_double (dest, src, tmpbuf, sharpness, dither, a,
-          sharpen);
-      break;
-  }
-}
-
-void
-vs_image_scale_lanczos_AYUV (const VSImage * dest, const VSImage * src,
-    uint8_t * tmpbuf, double sharpness, gboolean dither, int submethod,
-    double a, double sharpen)
-{
-  switch (submethod) {
-    case 0:
-    default:
-      vs_image_scale_lanczos_AYUV_int16 (dest, src, tmpbuf, sharpness, dither,
-          a, sharpen);
-      break;
-    case 1:
-      vs_image_scale_lanczos_AYUV_int32 (dest, src, tmpbuf, sharpness, dither,
-          a, sharpen);
-      break;
-    case 2:
-      vs_image_scale_lanczos_AYUV_float (dest, src, tmpbuf, sharpness, dither,
-          a, sharpen);
-      break;
-    case 3:
-      vs_image_scale_lanczos_AYUV_double (dest, src, tmpbuf, sharpness, dither,
-          a, sharpen);
-      break;
-  }
-}
-
-void
-vs_image_scale_lanczos_AYUV64 (const VSImage * dest, const VSImage * src,
-    uint8_t * tmpbuf, double sharpness, gboolean dither, int submethod,
-    double a, double sharpen)
-{
-  vs_image_scale_lanczos_AYUV64_double (dest, src, tmpbuf, sharpness, dither,
-      a, sharpen);
-}
-
-
-
-#define RESAMPLE_HORIZ_FLOAT(function, dest_type, tap_type, src_type, _n_taps) \
-static void \
-function (dest_type *dest, const gint32 *offsets, \
-    const tap_type *taps, const src_type *src, int n_taps, int shift, int n) \
-{ \
-  int i; \
-  int k; \
-  dest_type sum; \
-  const src_type *srcline; \
-  const tap_type *tapsline; \
-  for (i = 0; i < n; i++) { \
-    srcline = src + offsets[i]; \
-    tapsline = taps + i * _n_taps; \
-    sum = 0; \
-    for (k = 0; k < _n_taps; k++) { \
-      sum += srcline[k] * tapsline[k]; \
-    } \
-    dest[i] = sum; \
-  } \
-}
-
-#define RESAMPLE_HORIZ(function, dest_type, tap_type, src_type, _n_taps, _shift) \
-static void \
-function (dest_type *dest, const gint32 *offsets, \
-    const tap_type *taps, const src_type *src, int n_taps, int shift, int n) \
-{ \
-  int i; \
-  int k; \
-  dest_type sum; \
-  const src_type *srcline; \
-  const tap_type *tapsline; \
-  int offset; \
-  if (_shift > 0) offset = (1<<_shift)>>1; \
-  else offset = 0; \
-  for (i = 0; i < n; i++) { \
-    srcline = src + offsets[i]; \
-    tapsline = taps + i * _n_taps; \
-    sum = 0; \
-    for (k = 0; k < _n_taps; k++) { \
-      sum += srcline[k] * tapsline[k]; \
-    } \
-    dest[i] = (sum + offset) >> _shift; \
-  } \
-}
-
-#define RESAMPLE_HORIZ_AYUV_FLOAT(function, dest_type, tap_type, src_type, _n_taps) \
-static void \
-function (dest_type *dest, const gint32 *offsets, \
-    const tap_type *taps, const src_type *src, int n_taps, int shift, int n) \
-{ \
-  int i; \
-  int k; \
-  dest_type sum1; \
-  dest_type sum2; \
-  dest_type sum3; \
-  dest_type sum4; \
-  const src_type *srcline; \
-  const tap_type *tapsline; \
-  for (i = 0; i < n; i++) { \
-    srcline = src + 4*offsets[i]; \
-    tapsline = taps + i * _n_taps; \
-    sum1 = 0; \
-    sum2 = 0; \
-    sum3 = 0; \
-    sum4 = 0; \
-    for (k = 0; k < _n_taps; k++) { \
-      sum1 += srcline[k*4+0] * tapsline[k]; \
-      sum2 += srcline[k*4+1] * tapsline[k]; \
-      sum3 += srcline[k*4+2] * tapsline[k]; \
-      sum4 += srcline[k*4+3] * tapsline[k]; \
-    } \
-    dest[i*4+0] = sum1; \
-    dest[i*4+1] = sum2; \
-    dest[i*4+2] = sum3; \
-    dest[i*4+3] = sum4; \
-  } \
-}
-
-#define RESAMPLE_HORIZ_AYUV(function, dest_type, tap_type, src_type, _n_taps, _shift) \
-static void \
-function (dest_type *dest, const gint32 *offsets, \
-    const tap_type *taps, const src_type *src, int n_taps, int shift, int n) \
-{ \
-  int i; \
-  int k; \
-  dest_type sum1; \
-  dest_type sum2; \
-  dest_type sum3; \
-  dest_type sum4; \
-  const src_type *srcline; \
-  const tap_type *tapsline; \
-  int offset; \
-  if (_shift > 0) offset = (1<<_shift)>>1; \
-  else offset = 0; \
-  for (i = 0; i < n; i++) { \
-    srcline = src + 4*offsets[i]; \
-    tapsline = taps + i * _n_taps; \
-    sum1 = 0; \
-    sum2 = 0; \
-    sum3 = 0; \
-    sum4 = 0; \
-    for (k = 0; k < _n_taps; k++) { \
-      sum1 += srcline[k*4+0] * tapsline[k]; \
-      sum2 += srcline[k*4+1] * tapsline[k]; \
-      sum3 += srcline[k*4+2] * tapsline[k]; \
-      sum4 += srcline[k*4+3] * tapsline[k]; \
-    } \
-    dest[i*4+0] = (sum1 + offset) >> _shift; \
-    dest[i*4+1] = (sum2 + offset) >> _shift; \
-    dest[i*4+2] = (sum3 + offset) >> _shift; \
-    dest[i*4+3] = (sum4 + offset) >> _shift; \
-  } \
-}
-
-/* *INDENT-OFF* */
-RESAMPLE_HORIZ_FLOAT (resample_horiz_double_u8_generic, double, double,
-    guint8, n_taps)
-RESAMPLE_HORIZ_FLOAT (resample_horiz_float_u8_generic, float, float,
-    guint8, n_taps)
-RESAMPLE_HORIZ_AYUV_FLOAT (resample_horiz_double_ayuv_generic, double, double,
-    guint8, n_taps)
-RESAMPLE_HORIZ_AYUV_FLOAT (resample_horiz_float_ayuv_generic, float, float,
-    guint8, n_taps)
-
-RESAMPLE_HORIZ_AYUV_FLOAT (resample_horiz_double_ayuv_generic_s16, double, double,
-    guint16, n_taps)
-
-RESAMPLE_HORIZ (resample_horiz_int32_int32_u8_generic, gint32, gint32,
-    guint8, n_taps, shift)
-RESAMPLE_HORIZ (resample_horiz_int16_int16_u8_generic, gint16, gint16,
-    guint8, n_taps, shift)
-RESAMPLE_HORIZ_AYUV (resample_horiz_int32_int32_ayuv_generic, gint32, gint32,
-    guint8, n_taps, shift)
-RESAMPLE_HORIZ_AYUV (resample_horiz_int16_int16_ayuv_generic, gint16, gint16,
-    guint8, n_taps, shift)
-
-/* Candidates for orcification */
-RESAMPLE_HORIZ (resample_horiz_int32_int32_u8_taps16_shift0, gint32, gint32,
-    guint8, 16, 0)
-RESAMPLE_HORIZ (resample_horiz_int32_int32_u8_taps12_shift0, gint32, gint32,
-    guint8, 12, 0)
-RESAMPLE_HORIZ (resample_horiz_int32_int32_u8_taps8_shift0, gint32, gint32,
-    guint8, 8, 0)
-RESAMPLE_HORIZ (resample_horiz_int32_int32_u8_taps4_shift0, gint32, gint32,
-    guint8, 4, 0)
-RESAMPLE_HORIZ (resample_horiz_int16_int16_u8_taps16_shift0, gint16, gint16,
-    guint8, 16, 0)
-RESAMPLE_HORIZ (resample_horiz_int16_int16_u8_taps12_shift0, gint16, gint16,
-    guint8, 12, 0)
-RESAMPLE_HORIZ (resample_horiz_int16_int16_u8_taps8_shift0, gint16, gint16,
-    guint8, 8, 0)
-RESAMPLE_HORIZ (resample_horiz_int16_int16_u8_taps4_shift0, gint16, gint16,
-    guint8, 4, 0)
-
-RESAMPLE_HORIZ_AYUV (resample_horiz_int32_int32_ayuv_taps16_shift0, gint32, gint32,
-    guint8, 16, 0)
-RESAMPLE_HORIZ_AYUV (resample_horiz_int32_int32_ayuv_taps12_shift0, gint32, gint32,
-    guint8, 12, 0)
-RESAMPLE_HORIZ_AYUV (resample_horiz_int32_int32_ayuv_taps8_shift0, gint32, gint32,
-    guint8, 8, 0)
-RESAMPLE_HORIZ_AYUV (resample_horiz_int32_int32_ayuv_taps4_shift0, gint32, gint32,
-    guint8, 4, 0)
-RESAMPLE_HORIZ_AYUV (resample_horiz_int16_int16_ayuv_taps16_shift0, gint16, gint16,
-    guint8, 16, 0)
-RESAMPLE_HORIZ_AYUV (resample_horiz_int16_int16_ayuv_taps12_shift0, gint16, gint16,
-    guint8, 12, 0)
-RESAMPLE_HORIZ_AYUV (resample_horiz_int16_int16_ayuv_taps8_shift0, gint16, gint16,
-    guint8, 8, 0)
-RESAMPLE_HORIZ_AYUV (resample_horiz_int16_int16_ayuv_taps4_shift0, gint16, gint16,
-    guint8, 4, 0)
-/* *INDENT-ON* */
-
-#define RESAMPLE_VERT(function, tap_type, src_type, _n_taps, _shift) \
-static void \
-function (guint8 *dest, \
-    const tap_type *taps, const src_type *src, int stride, int n_taps, \
-    int shift, int n) \
-{ \
-  int i; \
-  int l; \
-  gint32 sum_y; \
-  gint32 offset = (1<<_shift) >> 1; \
-  for (i = 0; i < n; i++) { \
-    sum_y = 0; \
-    for (l = 0; l < n_taps; l++) { \
-      const src_type *line = PTR_OFFSET(src, stride * l); \
-      sum_y += line[i] * taps[l]; \
-    } \
-    dest[i] = CLAMP ((sum_y + offset) >> _shift, 0, 255); \
-  } \
-}
-
-#define RESAMPLE_VERT_DITHER(function, tap_type, src_type, _n_taps, _shift) \
-static void \
-function (guint8 *dest, \
-    const tap_type *taps, const src_type *src, int stride, int n_taps, \
-    int shift, int n) \
-{ \
-  int i; \
-  int l; \
-  gint32 sum_y; \
-  gint32 err_y = 0; \
-  gint32 mask = (1<<_shift) - 1; \
-  for (i = 0; i < n; i++) { \
-    sum_y = 0; \
-    for (l = 0; l < n_taps; l++) { \
-      const src_type *line = PTR_OFFSET(src, stride * l); \
-      sum_y += line[i] * taps[l]; \
-    } \
-    err_y += sum_y; \
-    dest[i] = CLAMP (err_y >> _shift, 0, 255); \
-    err_y &= mask; \
-  } \
-}
-
-/* *INDENT-OFF* */
-RESAMPLE_VERT (resample_vert_int32_generic, gint32, gint32, n_taps, shift)
-RESAMPLE_VERT_DITHER (resample_vert_dither_int32_generic, gint32, gint32,
-    n_taps, shift)
-RESAMPLE_VERT (resample_vert_int16_generic, gint16, gint16, n_taps, shift);
-RESAMPLE_VERT_DITHER (resample_vert_dither_int16_generic, gint16, gint16,
-    n_taps, shift)
-/* *INDENT-ON* */
-
-#define RESAMPLE_VERT_FLOAT(function, dest_type, clamp, tap_type, src_type, _n_taps, _shift) \
-static void \
-function (dest_type *dest, \
-    const tap_type *taps, const src_type *src, int stride, int n_taps, \
-    int shift, int n) \
-{ \
-  int i; \
-  int l; \
-  src_type sum_y; \
-  for (i = 0; i < n; i++) { \
-    sum_y = 0; \
-    for (l = 0; l < n_taps; l++) { \
-      const src_type *line = PTR_OFFSET(src, stride * l); \
-      sum_y += line[i] * taps[l]; \
-    } \
-    dest[i] = CLAMP (floor(0.5 + sum_y), 0, clamp); \
-  } \
-}
-
-#define RESAMPLE_VERT_FLOAT_DITHER(function, dest_type, clamp, tap_type, src_type, _n_taps, _shift) \
-static void \
-function (dest_type *dest, \
-    const tap_type *taps, const src_type *src, int stride, int n_taps, \
-    int shift, int n) \
-{ \
-  int i; \
-  int l; \
-  src_type sum_y; \
-  src_type err_y = 0; \
-  for (i = 0; i < n; i++) { \
-    sum_y = 0; \
-    for (l = 0; l < n_taps; l++) { \
-      const src_type *line = PTR_OFFSET(src, stride * l); \
-      sum_y += line[i] * taps[l]; \
-    } \
-    err_y += sum_y; \
-    dest[i] = CLAMP (floor (err_y), 0, clamp); \
-    err_y -= floor (err_y); \
-  } \
-}
-
-/* *INDENT-OFF* */
-RESAMPLE_VERT_FLOAT (resample_vert_double_generic, guint8, 255, double, double, n_taps,
-    shift)
-RESAMPLE_VERT_FLOAT_DITHER (resample_vert_dither_double_generic, guint8, 255, double, double,
-    n_taps, shift)
-
-RESAMPLE_VERT_FLOAT (resample_vert_double_generic_u16, guint16, 65535, double, double, n_taps,
-    shift)
-RESAMPLE_VERT_FLOAT_DITHER (resample_vert_dither_double_generic_u16, guint16, 65535, double, double,
-    n_taps, shift)
-
-RESAMPLE_VERT_FLOAT (resample_vert_float_generic, guint8, 255, float, float, n_taps, shift)
-RESAMPLE_VERT_FLOAT_DITHER (resample_vert_dither_float_generic, guint8, 255, float, float,
-    n_taps, shift)
-/* *INDENT-ON* */
-
-#define S16_SHIFT1 7
-#define S16_SHIFT2 7
-#define S16_MIDSHIFT 0
-#define S16_POSTSHIFT (S16_SHIFT1+S16_SHIFT2-S16_MIDSHIFT)
-
-static void
-vs_scale_lanczos_Y_int16 (Scale * scale)
-{
-  int j;
-  int yi;
-  int tmp_yi;
-
-  tmp_yi = 0;
-
-  for (j = 0; j < scale->dest->height; j++) {
-    guint8 *destline;
-    gint16 *taps;
-
-    destline = scale->dest->pixels + scale->dest->stride * j;
-
-    yi = scale->y_scale1d.offsets[j];
-
-    while (tmp_yi < yi + scale->y_scale1d.n_taps) {
-      scale->horiz_resample_func (TMP_LINE_S16 (tmp_yi),
-          scale->x_scale1d.offsets, scale->x_scale1d.taps, SRC_LINE (tmp_yi),
-          scale->x_scale1d.n_taps, S16_MIDSHIFT, scale->dest->width);
-      tmp_yi++;
-    }
-
-    taps = (gint16 *) scale->y_scale1d.taps + j * scale->y_scale1d.n_taps;
-    if (scale->dither) {
-      resample_vert_dither_int16_generic (destline,
-          taps, TMP_LINE_S16 (scale->y_scale1d.offsets[j]),
-          sizeof (gint16) * scale->dest->width, scale->y_scale1d.n_taps,
-          S16_POSTSHIFT, scale->dest->width);
-    } else {
-      resample_vert_int16_generic (destline,
-          taps, TMP_LINE_S16 (scale->y_scale1d.offsets[j]),
-          sizeof (gint16) * scale->dest->width, scale->y_scale1d.n_taps,
-          S16_POSTSHIFT, scale->dest->width);
-    }
-  }
-}
-
-void
-vs_image_scale_lanczos_Y_int16 (const VSImage * dest, const VSImage * src,
-    uint8_t * tmpbuf, double sharpness, gboolean dither, double a,
-    double sharpen)
-{
-  Scale s = { 0 };
-  Scale *scale = &s;
-  int n_taps;
-
-  scale->dest = dest;
-  scale->src = src;
-
-  n_taps = scale1d_get_n_taps (src->width, dest->width, a, sharpness);
-  n_taps = ROUND_UP_4 (n_taps);
-  scale1d_calculate_taps_int16 (&scale->x_scale1d,
-      src->width, dest->width, n_taps, a, sharpness, sharpen, S16_SHIFT1);
-
-  n_taps = scale1d_get_n_taps (src->height, dest->height, a, sharpness);
-  scale1d_calculate_taps_int16 (&scale->y_scale1d,
-      src->height, dest->height, n_taps, a, sharpness, sharpen, S16_SHIFT2);
-
-  scale->dither = dither;
-
-  switch (scale->x_scale1d.n_taps) {
-    case 4:
-      scale->horiz_resample_func =
-          (HorizResampleFunc) resample_horiz_int16_int16_u8_taps4_shift0;
-      break;
-    case 8:
-      scale->horiz_resample_func =
-          (HorizResampleFunc) resample_horiz_int16_int16_u8_taps8_shift0;
-      break;
-    case 12:
-      scale->horiz_resample_func =
-          (HorizResampleFunc) resample_horiz_int16_int16_u8_taps12_shift0;
-      break;
-    case 16:
-      scale->horiz_resample_func =
-          (HorizResampleFunc) resample_horiz_int16_int16_u8_taps16_shift0;
-      break;
-    default:
-      scale->horiz_resample_func =
-          (HorizResampleFunc) resample_horiz_int16_int16_u8_generic;
-      break;
-  }
-
-  scale->tmpdata =
-      g_malloc (sizeof (gint16) * scale->dest->width * scale->src->height);
-
-  vs_scale_lanczos_Y_int16 (scale);
-
-  scale1d_cleanup (&scale->x_scale1d);
-  scale1d_cleanup (&scale->y_scale1d);
-  g_free (scale->tmpdata);
-}
-
-
-#define S32_SHIFT1 11
-#define S32_SHIFT2 11
-#define S32_MIDSHIFT 0
-#define S32_POSTSHIFT (S32_SHIFT1+S32_SHIFT2-S32_MIDSHIFT)
-
-static void
-vs_scale_lanczos_Y_int32 (Scale * scale)
-{
-  int j;
-  int yi;
-  int tmp_yi;
-
-  tmp_yi = 0;
-
-  for (j = 0; j < scale->dest->height; j++) {
-    guint8 *destline;
-    gint32 *taps;
-
-    destline = scale->dest->pixels + scale->dest->stride * j;
-
-    yi = scale->y_scale1d.offsets[j];
-
-    while (tmp_yi < yi + scale->y_scale1d.n_taps) {
-      scale->horiz_resample_func (TMP_LINE_S32 (tmp_yi),
-          scale->x_scale1d.offsets, scale->x_scale1d.taps, SRC_LINE (tmp_yi),
-          scale->x_scale1d.n_taps, S32_MIDSHIFT, scale->dest->width);
-      tmp_yi++;
-    }
-
-    taps = (gint32 *) scale->y_scale1d.taps + j * scale->y_scale1d.n_taps;
-    if (scale->dither) {
-      resample_vert_dither_int32_generic (destline,
-          taps, TMP_LINE_S32 (scale->y_scale1d.offsets[j]),
-          sizeof (gint32) * scale->dest->width,
-          scale->y_scale1d.n_taps, S32_POSTSHIFT, scale->dest->width);
-    } else {
-      resample_vert_int32_generic (destline,
-          taps, TMP_LINE_S32 (scale->y_scale1d.offsets[j]),
-          sizeof (gint32) * scale->dest->width,
-          scale->y_scale1d.n_taps, S32_POSTSHIFT, scale->dest->width);
-    }
-  }
-}
-
-void
-vs_image_scale_lanczos_Y_int32 (const VSImage * dest, const VSImage * src,
-    uint8_t * tmpbuf, double sharpness, gboolean dither, double a,
-    double sharpen)
-{
-  Scale s = { 0 };
-  Scale *scale = &s;
-  int n_taps;
-
-  scale->dest = dest;
-  scale->src = src;
-
-  n_taps = scale1d_get_n_taps (src->width, dest->width, a, sharpness);
-  n_taps = ROUND_UP_4 (n_taps);
-  scale1d_calculate_taps_int32 (&scale->x_scale1d,
-      src->width, dest->width, n_taps, a, sharpness, sharpen, S32_SHIFT1);
-
-  n_taps = scale1d_get_n_taps (src->height, dest->height, a, sharpness);
-  scale1d_calculate_taps_int32 (&scale->y_scale1d,
-      src->height, dest->height, n_taps, a, sharpness, sharpen, S32_SHIFT2);
-
-  scale->dither = dither;
-
-  switch (scale->x_scale1d.n_taps) {
-    case 4:
-      scale->horiz_resample_func =
-          (HorizResampleFunc) resample_horiz_int32_int32_u8_taps4_shift0;
-      break;
-    case 8:
-      scale->horiz_resample_func =
-          (HorizResampleFunc) resample_horiz_int32_int32_u8_taps8_shift0;
-      break;
-    case 12:
-      scale->horiz_resample_func =
-          (HorizResampleFunc) resample_horiz_int32_int32_u8_taps12_shift0;
-      break;
-    case 16:
-      scale->horiz_resample_func =
-          (HorizResampleFunc) resample_horiz_int32_int32_u8_taps16_shift0;
-      break;
-    default:
-      scale->horiz_resample_func =
-          (HorizResampleFunc) resample_horiz_int32_int32_u8_generic;
-      break;
-  }
-
-  scale->tmpdata =
-      g_malloc (sizeof (int32_t) * scale->dest->width * scale->src->height);
-
-  vs_scale_lanczos_Y_int32 (scale);
-
-  scale1d_cleanup (&scale->x_scale1d);
-  scale1d_cleanup (&scale->y_scale1d);
-  g_free (scale->tmpdata);
-}
-
-static void
-vs_scale_lanczos_Y_double (Scale * scale)
-{
-  int j;
-  int yi;
-  int tmp_yi;
-
-  tmp_yi = 0;
-
-  for (j = 0; j < scale->dest->height; j++) {
-    guint8 *destline;
-    double *taps;
-
-    destline = scale->dest->pixels + scale->dest->stride * j;
-
-    yi = scale->y_scale1d.offsets[j];
-
-    while (tmp_yi < yi + scale->y_scale1d.n_taps) {
-      scale->horiz_resample_func (TMP_LINE_DOUBLE (tmp_yi),
-          scale->x_scale1d.offsets, scale->x_scale1d.taps, SRC_LINE (tmp_yi),
-          scale->x_scale1d.n_taps, 0, scale->dest->width);
-      tmp_yi++;
-    }
-
-    taps = (double *) scale->y_scale1d.taps + j * scale->y_scale1d.n_taps;
-    if (scale->dither) {
-      resample_vert_dither_double_generic (destline,
-          taps, TMP_LINE_DOUBLE (scale->y_scale1d.offsets[j]),
-          sizeof (double) * scale->dest->width,
-          scale->y_scale1d.n_taps, 0, scale->dest->width);
-    } else {
-      resample_vert_double_generic (destline,
-          taps, TMP_LINE_DOUBLE (scale->y_scale1d.offsets[j]),
-          sizeof (double) * scale->dest->width,
-          scale->y_scale1d.n_taps, 0, scale->dest->width);
-    }
-  }
-}
-
-void
-vs_image_scale_lanczos_Y_double (const VSImage * dest, const VSImage * src,
-    uint8_t * tmpbuf, double sharpness, gboolean dither, double a,
-    double sharpen)
-{
-  Scale s = { 0 };
-  Scale *scale = &s;
-  int n_taps;
-
-  scale->dest = dest;
-  scale->src = src;
-
-  n_taps = scale1d_get_n_taps (src->width, dest->width, a, sharpness);
-  scale1d_calculate_taps (&scale->x_scale1d,
-      src->width, dest->width, n_taps, a, sharpness, sharpen);
-
-  n_taps = scale1d_get_n_taps (src->height, dest->height, a, sharpness);
-  scale1d_calculate_taps (&scale->y_scale1d,
-      src->height, dest->height, n_taps, a, sharpness, sharpen);
-
-  scale->dither = dither;
-
-  scale->horiz_resample_func =
-      (HorizResampleFunc) resample_horiz_double_u8_generic;
-
-  scale->tmpdata =
-      g_malloc (sizeof (double) * scale->dest->width * scale->src->height);
-
-  vs_scale_lanczos_Y_double (scale);
-
-  scale1d_cleanup (&scale->x_scale1d);
-  scale1d_cleanup (&scale->y_scale1d);
-  g_free (scale->tmpdata);
-}
-
-static void
-vs_scale_lanczos_Y_float (Scale * scale)
-{
-  int j;
-  int yi;
-  int tmp_yi;
-
-  tmp_yi = 0;
-
-  for (j = 0; j < scale->dest->height; j++) {
-    guint8 *destline;
-    float *taps;
-
-    destline = scale->dest->pixels + scale->dest->stride * j;
-
-    yi = scale->y_scale1d.offsets[j];
-
-    while (tmp_yi < yi + scale->y_scale1d.n_taps) {
-      scale->horiz_resample_func (TMP_LINE_FLOAT (tmp_yi),
-          scale->x_scale1d.offsets, scale->x_scale1d.taps, SRC_LINE (tmp_yi),
-          scale->x_scale1d.n_taps, 0, scale->dest->width);
-      tmp_yi++;
-    }
-
-    taps = (float *) scale->y_scale1d.taps + j * scale->y_scale1d.n_taps;
-    if (scale->dither) {
-      resample_vert_dither_float_generic (destline,
-          taps, TMP_LINE_FLOAT (scale->y_scale1d.offsets[j]),
-          sizeof (float) * scale->dest->width,
-          scale->y_scale1d.n_taps, 0, scale->dest->width);
-    } else {
-      resample_vert_float_generic (destline,
-          taps, TMP_LINE_FLOAT (scale->y_scale1d.offsets[j]),
-          sizeof (float) * scale->dest->width,
-          scale->y_scale1d.n_taps, 0, scale->dest->width);
-    }
-  }
-}
-
-void
-vs_image_scale_lanczos_Y_float (const VSImage * dest, const VSImage * src,
-    uint8_t * tmpbuf, double sharpness, gboolean dither, double a,
-    double sharpen)
-{
-  Scale s = { 0 };
-  Scale *scale = &s;
-  int n_taps;
-
-  scale->dest = dest;
-  scale->src = src;
-
-  n_taps = scale1d_get_n_taps (src->width, dest->width, a, sharpness);
-  scale1d_calculate_taps_float (&scale->x_scale1d,
-      src->width, dest->width, n_taps, a, sharpness, sharpen);
-
-  n_taps = scale1d_get_n_taps (src->height, dest->height, a, sharpness);
-  scale1d_calculate_taps_float (&scale->y_scale1d,
-      src->height, dest->height, n_taps, a, sharpness, sharpen);
-
-  scale->dither = dither;
-
-  scale->horiz_resample_func =
-      (HorizResampleFunc) resample_horiz_float_u8_generic;
-
-  scale->tmpdata =
-      g_malloc (sizeof (float) * scale->dest->width * scale->src->height);
-
-  vs_scale_lanczos_Y_float (scale);
-
-  scale1d_cleanup (&scale->x_scale1d);
-  scale1d_cleanup (&scale->y_scale1d);
-  g_free (scale->tmpdata);
-}
-
-
-
-
-
-static void
-vs_scale_lanczos_AYUV_int16 (Scale * scale)
-{
-  int j;
-  int yi;
-  int tmp_yi;
-
-  tmp_yi = 0;
-
-  for (j = 0; j < scale->dest->height; j++) {
-    guint8 *destline;
-    gint16 *taps;
-
-    destline = scale->dest->pixels + scale->dest->stride * j;
-
-    yi = scale->y_scale1d.offsets[j];
-
-    while (tmp_yi < yi + scale->y_scale1d.n_taps) {
-      scale->horiz_resample_func (TMP_LINE_S16_AYUV (tmp_yi),
-          scale->x_scale1d.offsets, scale->x_scale1d.taps, SRC_LINE (tmp_yi),
-          scale->x_scale1d.n_taps, S16_MIDSHIFT, scale->dest->width);
-      tmp_yi++;
-    }
-
-    taps = (gint16 *) scale->y_scale1d.taps + j * scale->y_scale1d.n_taps;
-    if (scale->dither) {
-      resample_vert_dither_int16_generic (destline,
-          taps, TMP_LINE_S16_AYUV (scale->y_scale1d.offsets[j]),
-          sizeof (gint16) * 4 * scale->dest->width,
-          scale->y_scale1d.n_taps, S16_POSTSHIFT, scale->dest->width * 4);
-    } else {
-      resample_vert_int16_generic (destline,
-          taps, TMP_LINE_S16_AYUV (scale->y_scale1d.offsets[j]),
-          sizeof (gint16) * 4 * scale->dest->width,
-          scale->y_scale1d.n_taps, S16_POSTSHIFT, scale->dest->width * 4);
-    }
-  }
-}
-
-void
-vs_image_scale_lanczos_AYUV_int16 (const VSImage * dest, const VSImage * src,
-    uint8_t * tmpbuf, double sharpness, gboolean dither, double a,
-    double sharpen)
-{
-  Scale s = { 0 };
-  Scale *scale = &s;
-  int n_taps;
-
-  scale->dest = dest;
-  scale->src = src;
-
-  n_taps = scale1d_get_n_taps (src->width, dest->width, a, sharpness);
-  n_taps = ROUND_UP_4 (n_taps);
-  scale1d_calculate_taps_int16 (&scale->x_scale1d,
-      src->width, dest->width, n_taps, a, sharpness, sharpen, S16_SHIFT1);
-
-  n_taps = scale1d_get_n_taps (src->height, dest->height, a, sharpness);
-  scale1d_calculate_taps_int16 (&scale->y_scale1d,
-      src->height, dest->height, n_taps, a, sharpness, sharpen, S16_SHIFT2);
-
-  scale->dither = dither;
-
-  switch (scale->x_scale1d.n_taps) {
-    case 4:
-      scale->horiz_resample_func =
-          (HorizResampleFunc) resample_horiz_int16_int16_ayuv_taps4_shift0;
-      break;
-    case 8:
-      scale->horiz_resample_func =
-          (HorizResampleFunc) resample_horiz_int16_int16_ayuv_taps8_shift0;
-      break;
-    case 12:
-      scale->horiz_resample_func =
-          (HorizResampleFunc) resample_horiz_int16_int16_ayuv_taps12_shift0;
-      break;
-    case 16:
-      scale->horiz_resample_func =
-          (HorizResampleFunc) resample_horiz_int16_int16_ayuv_taps16_shift0;
-      break;
-    default:
-      scale->horiz_resample_func =
-          (HorizResampleFunc) resample_horiz_int16_int16_ayuv_generic;
-      break;
-  }
-
-  scale->tmpdata =
-      g_malloc (sizeof (gint16) * scale->dest->width * scale->src->height * 4);
-
-  vs_scale_lanczos_AYUV_int16 (scale);
-
-  scale1d_cleanup (&scale->x_scale1d);
-  scale1d_cleanup (&scale->y_scale1d);
-  g_free (scale->tmpdata);
-}
-
-
-static void
-vs_scale_lanczos_AYUV_int32 (Scale * scale)
-{
-  int j;
-  int yi;
-  int tmp_yi;
-
-  tmp_yi = 0;
-
-  for (j = 0; j < scale->dest->height; j++) {
-    guint8 *destline;
-    gint32 *taps;
-
-    destline = scale->dest->pixels + scale->dest->stride * j;
-
-    yi = scale->y_scale1d.offsets[j];
-
-    while (tmp_yi < yi + scale->y_scale1d.n_taps) {
-      scale->horiz_resample_func (TMP_LINE_S32_AYUV (tmp_yi),
-          scale->x_scale1d.offsets, scale->x_scale1d.taps, SRC_LINE (tmp_yi),
-          scale->x_scale1d.n_taps, S32_MIDSHIFT, scale->dest->width);
-      tmp_yi++;
-    }
-
-    taps = (gint32 *) scale->y_scale1d.taps + j * scale->y_scale1d.n_taps;
-    if (scale->dither) {
-      resample_vert_dither_int32_generic (destline,
-          taps, TMP_LINE_S32_AYUV (scale->y_scale1d.offsets[j]),
-          sizeof (gint32) * 4 * scale->dest->width, scale->y_scale1d.n_taps,
-          S32_POSTSHIFT, scale->dest->width * 4);
-    } else {
-      resample_vert_int32_generic (destline,
-          taps, TMP_LINE_S32_AYUV (scale->y_scale1d.offsets[j]),
-          sizeof (gint32) * 4 * scale->dest->width, scale->y_scale1d.n_taps,
-          S32_POSTSHIFT, scale->dest->width * 4);
-    }
-  }
-}
-
-void
-vs_image_scale_lanczos_AYUV_int32 (const VSImage * dest, const VSImage * src,
-    uint8_t * tmpbuf, double sharpness, gboolean dither, double a,
-    double sharpen)
-{
-  Scale s = { 0 };
-  Scale *scale = &s;
-  int n_taps;
-
-  scale->dest = dest;
-  scale->src = src;
-
-  n_taps = scale1d_get_n_taps (src->width, dest->width, a, sharpness);
-  n_taps = ROUND_UP_4 (n_taps);
-  scale1d_calculate_taps_int32 (&scale->x_scale1d,
-      src->width, dest->width, n_taps, a, sharpness, sharpen, S32_SHIFT1);
-
-  n_taps = scale1d_get_n_taps (src->height, dest->height, a, sharpness);
-  scale1d_calculate_taps_int32 (&scale->y_scale1d,
-      src->height, dest->height, n_taps, a, sharpness, sharpen, S32_SHIFT2);
-
-  scale->dither = dither;
-
-  switch (scale->x_scale1d.n_taps) {
-    case 4:
-      scale->horiz_resample_func =
-          (HorizResampleFunc) resample_horiz_int32_int32_ayuv_taps4_shift0;
-      break;
-    case 8:
-      scale->horiz_resample_func =
-          (HorizResampleFunc) resample_horiz_int32_int32_ayuv_taps8_shift0;
-      break;
-    case 12:
-      scale->horiz_resample_func =
-          (HorizResampleFunc) resample_horiz_int32_int32_ayuv_taps12_shift0;
-      break;
-    case 16:
-      scale->horiz_resample_func =
-          (HorizResampleFunc) resample_horiz_int32_int32_ayuv_taps16_shift0;
-      break;
-    default:
-      scale->horiz_resample_func =
-          (HorizResampleFunc) resample_horiz_int32_int32_ayuv_generic;
-      break;
-  }
-
-  scale->tmpdata =
-      g_malloc (sizeof (int32_t) * scale->dest->width * scale->src->height * 4);
-
-  vs_scale_lanczos_AYUV_int32 (scale);
-
-  scale1d_cleanup (&scale->x_scale1d);
-  scale1d_cleanup (&scale->y_scale1d);
-  g_free (scale->tmpdata);
-}
-
-static void
-vs_scale_lanczos_AYUV_double (Scale * scale)
-{
-  int j;
-  int yi;
-  int tmp_yi;
-
-  tmp_yi = 0;
-
-  for (j = 0; j < scale->dest->height; j++) {
-    guint8 *destline;
-    double *taps;
-
-    destline = scale->dest->pixels + scale->dest->stride * j;
-
-    yi = scale->y_scale1d.offsets[j];
-
-    while (tmp_yi < yi + scale->y_scale1d.n_taps) {
-      scale->horiz_resample_func (TMP_LINE_DOUBLE_AYUV (tmp_yi),
-          scale->x_scale1d.offsets, scale->x_scale1d.taps, SRC_LINE (tmp_yi),
-          scale->x_scale1d.n_taps, 0, scale->dest->width);
-      tmp_yi++;
-    }
-
-    taps = (double *) scale->y_scale1d.taps + j * scale->y_scale1d.n_taps;
-    if (scale->dither) {
-      resample_vert_dither_double_generic (destline,
-          taps, TMP_LINE_DOUBLE_AYUV (scale->y_scale1d.offsets[j]),
-          sizeof (double) * 4 * scale->dest->width,
-          scale->y_scale1d.n_taps, 0, scale->dest->width * 4);
-    } else {
-      resample_vert_double_generic (destline,
-          taps, TMP_LINE_DOUBLE_AYUV (scale->y_scale1d.offsets[j]),
-          sizeof (double) * 4 * scale->dest->width,
-          scale->y_scale1d.n_taps, 0, scale->dest->width * 4);
-    }
-  }
-}
-
-void
-vs_image_scale_lanczos_AYUV_double (const VSImage * dest, const VSImage * src,
-    uint8_t * tmpbuf, double sharpness, gboolean dither, double a,
-    double sharpen)
-{
-  Scale s = { 0 };
-  Scale *scale = &s;
-  int n_taps;
-
-  scale->dest = dest;
-  scale->src = src;
-
-  n_taps = scale1d_get_n_taps (src->width, dest->width, a, sharpness);
-  scale1d_calculate_taps (&scale->x_scale1d,
-      src->width, dest->width, n_taps, a, sharpness, sharpen);
-
-  n_taps = scale1d_get_n_taps (src->height, dest->height, a, sharpness);
-  scale1d_calculate_taps (&scale->y_scale1d,
-      src->height, dest->height, n_taps, a, sharpness, sharpen);
-
-  scale->dither = dither;
-
-  scale->horiz_resample_func =
-      (HorizResampleFunc) resample_horiz_double_ayuv_generic;
-
-  scale->tmpdata =
-      g_malloc (sizeof (double) * scale->dest->width * scale->src->height * 4);
-
-  vs_scale_lanczos_AYUV_double (scale);
-
-  scale1d_cleanup (&scale->x_scale1d);
-  scale1d_cleanup (&scale->y_scale1d);
-  g_free (scale->tmpdata);
-}
-
-static void
-vs_scale_lanczos_AYUV_float (Scale * scale)
-{
-  int j;
-  int yi;
-  int tmp_yi;
-
-  tmp_yi = 0;
-
-  for (j = 0; j < scale->dest->height; j++) {
-    guint8 *destline;
-    float *taps;
-
-    destline = scale->dest->pixels + scale->dest->stride * j;
-
-    yi = scale->y_scale1d.offsets[j];
-
-    while (tmp_yi < yi + scale->y_scale1d.n_taps) {
-      scale->horiz_resample_func (TMP_LINE_FLOAT_AYUV (tmp_yi),
-          scale->x_scale1d.offsets, scale->x_scale1d.taps, SRC_LINE (tmp_yi),
-          scale->x_scale1d.n_taps, 0, scale->dest->width);
-      tmp_yi++;
-    }
-
-    taps = (float *) scale->y_scale1d.taps + j * scale->y_scale1d.n_taps;
-    if (scale->dither) {
-      resample_vert_dither_float_generic (destline,
-          taps, TMP_LINE_FLOAT_AYUV (scale->y_scale1d.offsets[j]),
-          sizeof (float) * 4 * scale->dest->width, scale->y_scale1d.n_taps, 0,
-          scale->dest->width * 4);
-    } else {
-      resample_vert_float_generic (destline,
-          taps, TMP_LINE_FLOAT_AYUV (scale->y_scale1d.offsets[j]),
-          sizeof (float) * 4 * scale->dest->width, scale->y_scale1d.n_taps, 0,
-          scale->dest->width * 4);
-    }
-  }
-}
-
-void
-vs_image_scale_lanczos_AYUV_float (const VSImage * dest, const VSImage * src,
-    uint8_t * tmpbuf, double sharpness, gboolean dither, double a,
-    double sharpen)
-{
-  Scale s = { 0 };
-  Scale *scale = &s;
-  int n_taps;
-
-  scale->dest = dest;
-  scale->src = src;
-
-  n_taps = scale1d_get_n_taps (src->width, dest->width, a, sharpness);
-  scale1d_calculate_taps_float (&scale->x_scale1d,
-      src->width, dest->width, n_taps, a, sharpness, sharpen);
-
-  n_taps = scale1d_get_n_taps (src->height, dest->height, a, sharpness);
-  scale1d_calculate_taps_float (&scale->y_scale1d,
-      src->height, dest->height, n_taps, a, sharpness, sharpen);
-
-  scale->dither = dither;
-
-  scale->horiz_resample_func =
-      (HorizResampleFunc) resample_horiz_float_ayuv_generic;
-
-  scale->tmpdata =
-      g_malloc (sizeof (float) * scale->dest->width * scale->src->height * 4);
-
-  vs_scale_lanczos_AYUV_float (scale);
-
-  scale1d_cleanup (&scale->x_scale1d);
-  scale1d_cleanup (&scale->y_scale1d);
-  g_free (scale->tmpdata);
-}
-
-static void
-vs_scale_lanczos_AYUV64_double (Scale * scale)
-{
-  int j;
-  int yi;
-  int tmp_yi;
-
-  tmp_yi = 0;
-
-  for (j = 0; j < scale->dest->height; j++) {
-    guint16 *destline;
-    double *taps;
-
-    destline = (guint16 *) (scale->dest->pixels + scale->dest->stride * j);
-
-    yi = scale->y_scale1d.offsets[j];
-
-    while (tmp_yi < yi + scale->y_scale1d.n_taps) {
-      scale->horiz_resample_func (TMP_LINE_DOUBLE_AYUV (tmp_yi),
-          scale->x_scale1d.offsets, scale->x_scale1d.taps, SRC_LINE (tmp_yi),
-          scale->x_scale1d.n_taps, 0, scale->dest->width);
-      tmp_yi++;
-    }
-
-    taps = (double *) scale->y_scale1d.taps + j * scale->y_scale1d.n_taps;
-    if (scale->dither) {
-      resample_vert_dither_double_generic_u16 (destline,
-          taps, TMP_LINE_DOUBLE_AYUV (scale->y_scale1d.offsets[j]),
-          sizeof (double) * 4 * scale->dest->width,
-          scale->y_scale1d.n_taps, 0, scale->dest->width * 4);
-    } else {
-      resample_vert_double_generic_u16 (destline,
-          taps, TMP_LINE_DOUBLE_AYUV (scale->y_scale1d.offsets[j]),
-          sizeof (double) * 4 * scale->dest->width,
-          scale->y_scale1d.n_taps, 0, scale->dest->width * 4);
-    }
-  }
-}
-
-void
-vs_image_scale_lanczos_AYUV64_double (const VSImage * dest, const VSImage * src,
-    uint8_t * tmpbuf, double sharpness, gboolean dither, double a,
-    double sharpen)
-{
-  Scale s = { 0 };
-  Scale *scale = &s;
-  int n_taps;
-
-  scale->dest = dest;
-  scale->src = src;
-
-  n_taps = scale1d_get_n_taps (src->width, dest->width, a, sharpness);
-  scale1d_calculate_taps (&scale->x_scale1d,
-      src->width, dest->width, n_taps, a, sharpness, sharpen);
-
-  n_taps = scale1d_get_n_taps (src->height, dest->height, a, sharpness);
-  scale1d_calculate_taps (&scale->y_scale1d,
-      src->height, dest->height, n_taps, a, sharpness, sharpen);
-
-  scale->dither = dither;
-
-  scale->horiz_resample_func =
-      (HorizResampleFunc) resample_horiz_double_ayuv_generic_s16;
-
-  scale->tmpdata =
-      g_malloc (sizeof (double) * scale->dest->width * scale->src->height * 4);
-
-  vs_scale_lanczos_AYUV64_double (scale);
-
-  scale1d_cleanup (&scale->x_scale1d);
-  scale1d_cleanup (&scale->y_scale1d);
-  g_free (scale->tmpdata);
-}
diff --git a/gst/videoscale/vs_scanline.c b/gst/videoscale/vs_scanline.c
deleted file mode 100644
index d67ee5c..0000000
--- a/gst/videoscale/vs_scanline.c
+++ /dev/null
@@ -1,778 +0,0 @@
-/*
- * Image Scaling Functions
- * Copyright (c) 2005 David A. Schleef <ds@schleef.org>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include "vs_scanline.h"
-
-#include "gstvideoscaleorc.h"
-#include <gst/gst.h>
-
-#include <string.h>
-
-/* greyscale, i.e., single componenet */
-
-#define BLEND(a,b,x) (((a) * (65536 - (x)) + (b) * (x)) >> 16)
-#define BLEND15(a,b,x) (((a) * (32768 - (x)) + (b) * (x)) >> 15)
-
-void
-vs_scanline_downsample_Y (uint8_t * dest, uint8_t * src, int n)
-{
-  video_scale_orc_downsample_u8 (dest, src, n);
-}
-
-void
-vs_scanline_resample_nearest_Y (uint8_t * dest, uint8_t * src, int src_width,
-    int n, int *accumulator, int increment)
-{
-  video_scale_orc_resample_nearest_u8 (dest, src, *accumulator, increment, n);
-
-  *accumulator += n * increment;
-}
-
-#include <glib.h>
-void
-vs_scanline_resample_linear_Y (uint8_t * dest, uint8_t * src, int src_width,
-    int n, int *accumulator, int increment)
-{
-  video_scale_orc_resample_bilinear_u8 (dest, src, *accumulator, increment, n);
-
-  *accumulator += n * increment;
-}
-
-void
-vs_scanline_merge_linear_Y (uint8_t * dest, uint8_t * src1, uint8_t * src2,
-    int n, int x)
-{
-  uint32_t value = x >> 8;
-
-  if (value == 0) {
-    memcpy (dest, src1, n);
-  } else {
-    video_scale_orc_merge_linear_u8 (dest, src1, src2, value, n);
-  }
-}
-
-void
-vs_scanline_downsample_Y16 (uint8_t * dest, uint8_t * src, int n)
-{
-  video_scale_orc_downsample_u16 ((uint16_t *) dest, (uint16_t *) src, n);
-}
-
-void
-vs_scanline_resample_nearest_Y16 (uint8_t * dest, uint8_t * src, int src_width,
-    int n, int *accumulator, int increment)
-{
-  int acc = *accumulator;
-  int i, j;
-  uint16_t *d = (uint16_t *) dest, *s = (uint16_t *) src;
-
-  for (i = 0; i < n; i++) {
-    j = (acc + 0x8000) >> 16;
-    d[i] = s[j];
-
-    acc += increment;
-  }
-
-  *accumulator = acc;
-}
-
-void
-vs_scanline_resample_linear_Y16 (uint8_t * dest, uint8_t * src, int src_width,
-    int n, int *accumulator, int increment)
-{
-  int acc = *accumulator;
-  int i;
-  int j;
-  int x;
-  uint16_t *d = (uint16_t *) dest, *s = (uint16_t *) src;
-
-  for (i = 0; i < n; i++) {
-    j = acc >> 16;
-
-    if (j + 1 < src_width) {
-      x = acc & 0xffff;
-      d[i] = BLEND (s[j], s[j + 1], x);
-    } else
-      d[i] = s[j];
-
-    acc += increment;
-  }
-  *accumulator = acc;
-}
-
-void
-vs_scanline_merge_linear_Y16 (uint8_t * dest, uint8_t * src1, uint8_t * src2,
-    int n, int x)
-{
-  uint16_t *d = (uint16_t *) dest;
-  const uint16_t *s1 = (const uint16_t *) src1;
-  const uint16_t *s2 = (const uint16_t *) src2;
-
-  if (x == 0) {
-    memcpy (d, s1, n * 2);
-  } else {
-    video_scale_orc_merge_linear_u16 (d, s1, s2, 65536 - x, x, n);
-  }
-}
-
-/* RGBA */
-
-void
-vs_scanline_downsample_RGBA (uint8_t * dest, uint8_t * src, int n)
-{
-  video_scale_orc_downsample_u32 (dest, src, n);
-}
-
-void
-vs_scanline_resample_nearest_RGBA (uint8_t * dest, uint8_t * src, int src_width,
-    int n, int *accumulator, int increment)
-{
-  video_scale_orc_resample_nearest_u32 (dest, src, *accumulator, increment, n);
-
-  *accumulator += n * increment;
-}
-
-void
-vs_scanline_resample_linear_RGBA (uint8_t * dest, uint8_t * src, int src_width,
-    int n, int *accumulator, int increment)
-{
-  video_scale_orc_resample_bilinear_u32 (dest, src, *accumulator, increment, n);
-
-  *accumulator += n * increment;
-}
-
-void
-vs_scanline_merge_linear_RGBA (uint8_t * dest, uint8_t * src1, uint8_t * src2,
-    int n, int x)
-{
-  uint32_t value = x >> 8;
-
-  if (value == 0) {
-    memcpy (dest, src1, n * 4);
-  } else {
-    video_scale_orc_merge_linear_u8 (dest, src1, src2, value, n * 4);
-  }
-}
-
-
-/* RGB */
-
-void
-vs_scanline_downsample_RGB (uint8_t * dest, uint8_t * src, int n)
-{
-  int i;
-
-  for (i = 0; i < n; i++) {
-    dest[i * 3 + 0] = (src[i * 6 + 0] + src[i * 6 + 3]) / 2;
-    dest[i * 3 + 1] = (src[i * 6 + 1] + src[i * 6 + 4]) / 2;
-    dest[i * 3 + 2] = (src[i * 6 + 2] + src[i * 6 + 5]) / 2;
-  }
-}
-
-void
-vs_scanline_resample_nearest_RGB (uint8_t * dest, uint8_t * src, int src_width,
-    int n, int *accumulator, int increment)
-{
-  int acc = *accumulator;
-  int i;
-  int j;
-
-  for (i = 0; i < n; i++) {
-    j = (acc + 0x8000) >> 16;
-
-    dest[i * 3 + 0] = src[j * 3 + 0];
-    dest[i * 3 + 1] = src[j * 3 + 1];
-    dest[i * 3 + 2] = src[j * 3 + 2];
-
-    acc += increment;
-  }
-
-  *accumulator = acc;
-}
-
-void
-vs_scanline_resample_linear_RGB (uint8_t * dest, uint8_t * src, int src_width,
-    int n, int *accumulator, int increment)
-{
-  int acc = *accumulator;
-  int i;
-  int j;
-  int x;
-
-  for (i = 0; i < n; i++) {
-    j = acc >> 16;
-
-    if (j + 1 < src_width) {
-      x = acc & 0xffff;
-      dest[i * 3 + 0] = BLEND (src[j * 3 + 0], src[j * 3 + 3], x);
-      dest[i * 3 + 1] = BLEND (src[j * 3 + 1], src[j * 3 + 4], x);
-      dest[i * 3 + 2] = BLEND (src[j * 3 + 2], src[j * 3 + 5], x);
-    } else {
-      dest[i * 3 + 0] = src[j * 3 + 0];
-      dest[i * 3 + 1] = src[j * 3 + 1];
-      dest[i * 3 + 2] = src[j * 3 + 2];
-    }
-    acc += increment;
-  }
-
-  *accumulator = acc;
-}
-
-void
-vs_scanline_merge_linear_RGB (uint8_t * dest, uint8_t * src1, uint8_t * src2,
-    int n, int x)
-{
-  uint32_t value = x >> 8;
-
-  if (value == 0) {
-    memcpy (dest, src1, n * 3);
-  } else {
-    video_scale_orc_merge_linear_u8 (dest, src1, src2, value, n * 3);
-  }
-}
-
-
-/* YUYV */
-
-/* n is the number of pixels */
-/* increment is per Y pixel */
-
-void
-vs_scanline_downsample_YUYV (uint8_t * dest, uint8_t * src, int n)
-{
-  video_scale_orc_downsample_yuyv (dest, src, n);
-}
-
-void
-vs_scanline_resample_nearest_YUYV (uint8_t * dest, uint8_t * src, int src_width,
-    int n, int *accumulator, int increment)
-{
-  int acc = *accumulator;
-  int i, j;
-
-  for (i = 0; i < n; i += 2) {
-    j = (acc + 0x8000) >> 16;
-    dest[i * 2 + 0] = src[j * 2 + 0];
-
-    j >>= 1;
-    dest[i * 2 + 1] = src[j * 4 + 1];
-    dest[i * 2 + 3] = src[j * 4 + 3];
-
-    acc += increment;
-
-    if (i < n - 1) {
-      j = (acc + 0x8000) >> 16;
-      dest[i * 2 + 2] = src[j * 2 + 0];
-
-      acc += increment;
-    }
-  }
-
-  *accumulator = acc;
-}
-
-void
-vs_scanline_resample_linear_YUYV (uint8_t * dest, uint8_t * src, int src_width,
-    int n, int *accumulator, int increment)
-{
-  int acc = *accumulator;
-  int i, j, x;
-
-  for (i = 0; i < n; i += 2) {
-    j = acc >> 16;
-    x = acc & 0xffff;
-
-    if (j + 1 < src_width)
-      dest[i * 2 + 0] = BLEND (src[j * 2 + 0], src[j * 2 + 2], x);
-    else
-      dest[i * 2 + 0] = src[j * 2 + 0];
-
-    j >>= 1;
-    if (2 * (j + 1) < src_width) {
-      dest[i * 2 + 1] = BLEND (src[j * 4 + 1], src[j * 4 + 5], x);
-      dest[i * 2 + 3] = BLEND (src[j * 4 + 3], src[j * 4 + 7], x);
-    } else {
-      dest[i * 2 + 1] = src[j * 4 + 1];
-      dest[i * 2 + 3] = src[j * 4 + 3];
-    }
-
-    acc += increment;
-
-    if (i < n - 1) {
-      j = acc >> 16;
-
-      if (j + 1 < src_width) {
-        x = acc & 0xffff;
-        dest[i * 2 + 2] = BLEND (src[j * 2 + 0], src[j * 2 + 2], x);
-      } else
-        dest[i * 2 + 2] = src[j * 2 + 0];
-
-      acc += increment;
-    }
-  }
-  *accumulator = acc;
-}
-
-void
-vs_scanline_merge_linear_YUYV (uint8_t * dest, uint8_t * src1, uint8_t * src2,
-    int n, int x)
-{
-  int quads = (n + 1) / 2;
-  uint32_t value = x >> 8;
-
-  if (value == 0) {
-    memcpy (dest, src1, quads * 4);
-  } else {
-    video_scale_orc_merge_linear_u8 (dest, src1, src2, value, quads * 4);
-  }
-}
-
-
-/* UYVY */
-
-/* n is the number of bi-pixels */
-/* increment is per Y pixel */
-
-void
-vs_scanline_downsample_UYVY (uint8_t * dest, uint8_t * src, int n)
-{
-  int i;
-
-  for (i = 0; i < n; i++) {
-    dest[i * 4 + 0] = (src[i * 8 + 0] + src[i * 8 + 4]) / 2;
-    dest[i * 4 + 1] = (src[i * 8 + 1] + src[i * 8 + 3]) / 2;
-    dest[i * 4 + 2] = (src[i * 8 + 2] + src[i * 8 + 6]) / 2;
-    dest[i * 4 + 3] = (src[i * 8 + 5] + src[i * 8 + 7]) / 2;
-  }
-}
-
-void
-vs_scanline_resample_nearest_UYVY (uint8_t * dest, uint8_t * src, int src_width,
-    int n, int *accumulator, int increment)
-{
-  int acc = *accumulator;
-  int i, j;
-
-  for (i = 0; i < n; i += 2) {
-    j = (acc + 0x8000) >> 16;
-    dest[i * 2 + 1] = src[j * 2 + 1];
-
-    j >>= 1;
-    dest[i * 2 + 0] = src[j * 4 + 0];
-    dest[i * 2 + 2] = src[j * 4 + 2];
-
-    acc += increment;
-
-    if (i < n - 1) {
-      j = (acc + 0x8000) >> 16;
-      dest[i * 2 + 3] = src[j * 2 + 1];
-
-      acc += increment;
-    }
-  }
-
-  *accumulator = acc;
-}
-
-void
-vs_scanline_resample_linear_UYVY (uint8_t * dest, uint8_t * src, int src_width,
-    int n, int *accumulator, int increment)
-{
-  int acc = *accumulator;
-  int i, j, x;
-
-  for (i = 0; i < n; i += 2) {
-    j = acc >> 16;
-    x = acc & 0xffff;
-
-    if (j + 1 < src_width)
-      dest[i * 2 + 1] = BLEND (src[j * 2 + 1], src[j * 2 + 3], x);
-    else
-      dest[i * 2 + 1] = src[j * 2 + 1];
-
-    j >>= 1;
-    if (2 * (j + 1) < src_width) {
-      dest[i * 2 + 0] = BLEND (src[j * 4 + 0], src[j * 4 + 4], x);
-      dest[i * 2 + 2] = BLEND (src[j * 4 + 2], src[j * 4 + 6], x);
-    } else {
-      dest[i * 2 + 0] = src[j * 4 + 0];
-      dest[i * 2 + 2] = src[j * 4 + 2];
-    }
-
-    acc += increment;
-
-    if (i < n - 1) {
-      j = acc >> 16;
-
-      if (j + 1 < src_width) {
-        x = acc & 0xffff;
-        dest[i * 2 + 3] = BLEND (src[j * 2 + 1], src[j * 2 + 3], x);
-      } else
-        dest[i * 2 + 3] = src[j * 2 + 1];
-
-      acc += increment;
-    }
-  }
-}
-
-void
-vs_scanline_merge_linear_UYVY (uint8_t * dest, uint8_t * src1,
-    uint8_t * src2, int n, int x)
-{
-  int quads = (n + 1) / 2;
-  uint32_t value = x >> 8;
-
-  if (value == 0) {
-    memcpy (dest, src1, quads * 4);
-  } else {
-    video_scale_orc_merge_linear_u8 (dest, src1, src2, value, quads * 4);
-  }
-}
-
-
-/* NV12 */
-
-/* n is the number of bi-pixels */
-
-void
-vs_scanline_downsample_NV12 (uint8_t * dest, uint8_t * src, int n)
-{
-  int i;
-
-  for (i = 0; i < n; i++) {
-    dest[i * 2 + 0] = (src[i * 4 + 0] + src[i * 4 + 2]) / 2;
-    dest[i * 2 + 1] = (src[i * 4 + 1] + src[i * 4 + 3]) / 2;
-  }
-}
-
-void
-vs_scanline_resample_nearest_NV12 (uint8_t * dest, uint8_t * src, int src_width,
-    int n, int *accumulator, int increment)
-{
-  int acc = *accumulator;
-  int i, j;
-
-  for (i = 0; i < n; i++) {
-    j = (acc + 0x8000) >> 16;
-
-    dest[i * 2 + 0] = src[j * 2 + 0];
-    dest[i * 2 + 1] = src[j * 2 + 1];
-
-    acc += increment;
-  }
-
-  *accumulator = acc;
-}
-
-void
-vs_scanline_resample_linear_NV12 (uint8_t * dest, uint8_t * src, int src_width,
-    int n, int *accumulator, int increment)
-{
-  int acc = *accumulator;
-  int i;
-  int j;
-  int x;
-
-  for (i = 0; i < n; i++) {
-    j = acc >> 16;
-
-    if (j + 1 < src_width) {
-      x = acc & 0xffff;
-      dest[i * 2 + 0] = BLEND (src[j * 2 + 0], src[j * 2 + 2], x);
-      dest[i * 2 + 1] = BLEND (src[j * 2 + 1], src[j * 2 + 3], x);
-    } else {
-      dest[i * 2 + 0] = src[j * 2 + 0];
-      dest[i * 2 + 1] = src[j * 2 + 1];
-    }
-    acc += increment;
-  }
-  *accumulator = acc;
-}
-
-void
-vs_scanline_merge_linear_NV12 (uint8_t * dest, uint8_t * src1,
-    uint8_t * src2, int n, int x)
-{
-  uint32_t value = x >> 8;
-
-  if (value == 0) {
-    memcpy (dest, src1, n * 2);
-  } else {
-    video_scale_orc_merge_linear_u8 (dest, src1, src2, value, n * 2);
-  }
-}
-
-
-/* RGB565 */
-
-/* note that src and dest are uint16_t, and thus endian dependent */
-
-#define RGB565_R(x) (((x)&0xf800)>>8 | ((x)&0xf800)>>13)
-#define RGB565_G(x) (((x)&0x07e0)>>3 | ((x)&0x07e0)>>9)
-#define RGB565_B(x) (((x)&0x001f)<<3 | ((x)&0x001f)>>2)
-
-#define RGB565(r,g,b) \
-  ((((r)<<8)&0xf800) | (((g)<<3)&0x07e0) | (((b)>>3)&0x001f))
-
-
-void
-vs_scanline_downsample_RGB565 (uint8_t * dest_u8, uint8_t * src_u8, int n)
-{
-  uint16_t *dest = (uint16_t *) dest_u8;
-  uint16_t *src = (uint16_t *) src_u8;
-  int i;
-
-  for (i = 0; i < n; i++) {
-    dest[i] = RGB565 (
-        (RGB565_R (src[i * 2]) + RGB565_R (src[i * 2 + 1])) / 2,
-        (RGB565_G (src[i * 2]) + RGB565_G (src[i * 2 + 1])) / 2,
-        (RGB565_B (src[i * 2]) + RGB565_B (src[i * 2 + 1])) / 2);
-  }
-}
-
-void
-vs_scanline_resample_nearest_RGB565 (uint8_t * dest_u8, uint8_t * src_u8,
-    int src_width, int n, int *accumulator, int increment)
-{
-  uint16_t *dest = (uint16_t *) dest_u8;
-  uint16_t *src = (uint16_t *) src_u8;
-  int acc = *accumulator;
-  int i, j;
-
-  for (i = 0; i < n; i++) {
-    j = (acc + 0x8000) >> 16;
-    dest[i] = src[j];
-
-    acc += increment;
-  }
-
-  *accumulator = acc;
-}
-
-void
-vs_scanline_resample_linear_RGB565 (uint8_t * dest_u8, uint8_t * src_u8,
-    int src_width, int n, int *accumulator, int increment)
-{
-  uint16_t *dest = (uint16_t *) dest_u8;
-  uint16_t *src = (uint16_t *) src_u8;
-  int acc = *accumulator;
-  int i;
-  int j;
-  int x;
-
-  for (i = 0; i < n; i++) {
-    j = acc >> 16;
-
-    if (j + 1 < src_width) {
-      x = acc & 0xffff;
-      dest[i] = RGB565 (BLEND (RGB565_R (src[j]), RGB565_R (src[j + 1]), x),
-          BLEND (RGB565_G (src[j]), RGB565_G (src[j + 1]), x),
-          BLEND (RGB565_B (src[j]), RGB565_B (src[j + 1]), x));
-    } else {
-      dest[i] = RGB565 (RGB565_R (src[j]),
-          RGB565_G (src[j]), RGB565_B (src[j]));
-    }
-
-    acc += increment;
-  }
-
-  *accumulator = acc;
-}
-
-void
-vs_scanline_merge_linear_RGB565 (uint8_t * dest_u8, uint8_t * src1_u8,
-    uint8_t * src2_u8, int n, int x)
-{
-  uint16_t *dest = (uint16_t *) dest_u8;
-  uint16_t *src1 = (uint16_t *) src1_u8;
-  uint16_t *src2 = (uint16_t *) src2_u8;
-  int i;
-
-  if (x == 0) {
-    memcpy (dest, src1, n * 2);
-  } else {
-    for (i = 0; i < n; i++) {
-      dest[i] = RGB565 (BLEND (RGB565_R (src1[i]), RGB565_R (src2[i]), x),
-          BLEND (RGB565_G (src1[i]), RGB565_G (src2[i]), x),
-          BLEND (RGB565_B (src1[i]), RGB565_B (src2[i]), x));
-    }
-  }
-}
-
-
-/* RGB555 */
-
-/* note that src and dest are uint16_t, and thus endian dependent */
-
-#define RGB555_R(x) (((x)&0x7c00)>>7 | ((x)&0x7c00)>>12)
-#define RGB555_G(x) (((x)&0x03e0)>>2 | ((x)&0x03e0)>>7)
-#define RGB555_B(x) (((x)&0x001f)<<3 | ((x)&0x001f)>>2)
-
-#define RGB555(r,g,b) \
-  ((((r)<<7)&0x7c00) | (((g)<<2)&0x03e0) | (((b)>>3)&0x001f))
-
-void
-vs_scanline_downsample_RGB555 (uint8_t * dest_u8, uint8_t * src_u8, int n)
-{
-  uint16_t *dest = (uint16_t *) dest_u8;
-  uint16_t *src = (uint16_t *) src_u8;
-  int i;
-
-  for (i = 0; i < n; i++) {
-    dest[i] = RGB555 (
-        (RGB555_R (src[i * 2]) + RGB555_R (src[i * 2 + 1])) / 2,
-        (RGB555_G (src[i * 2]) + RGB555_G (src[i * 2 + 1])) / 2,
-        (RGB555_B (src[i * 2]) + RGB555_B (src[i * 2 + 1])) / 2);
-  }
-}
-
-void
-vs_scanline_resample_nearest_RGB555 (uint8_t * dest_u8, uint8_t * src_u8,
-    int src_width, int n, int *accumulator, int increment)
-{
-  uint16_t *dest = (uint16_t *) dest_u8;
-  uint16_t *src = (uint16_t *) src_u8;
-  int acc = *accumulator;
-  int i, j;
-
-  for (i = 0; i < n; i++) {
-    j = (acc + 0x8000) >> 16;
-
-    dest[i] = src[j];
-
-    acc += increment;
-  }
-
-  *accumulator = acc;
-}
-
-void
-vs_scanline_resample_linear_RGB555 (uint8_t * dest_u8, uint8_t * src_u8,
-    int src_width, int n, int *accumulator, int increment)
-{
-  uint16_t *dest = (uint16_t *) dest_u8;
-  uint16_t *src = (uint16_t *) src_u8;
-  int acc = *accumulator;
-  int i;
-  int j;
-  int x;
-
-  for (i = 0; i < n; i++) {
-    j = acc >> 16;
-
-    if (j + 1 < src_width) {
-      x = acc & 0xffff;
-      dest[i] = RGB555 (BLEND (RGB555_R (src[j]), RGB555_R (src[j + 1]), x),
-          BLEND (RGB555_G (src[j]), RGB555_G (src[j + 1]), x),
-          BLEND (RGB555_B (src[j]), RGB555_B (src[j + 1]), x));
-    } else {
-      dest[i] = RGB555 (RGB555_R (src[j]),
-          RGB555_G (src[j]), RGB555_B (src[j]));
-    }
-
-    acc += increment;
-  }
-
-  *accumulator = acc;
-}
-
-void
-vs_scanline_merge_linear_RGB555 (uint8_t * dest_u8, uint8_t * src1_u8,
-    uint8_t * src2_u8, int n, int x)
-{
-  uint16_t *dest = (uint16_t *) dest_u8;
-  uint16_t *src1 = (uint16_t *) src1_u8;
-  uint16_t *src2 = (uint16_t *) src2_u8;
-  int i;
-
-  if (x == 0) {
-    memcpy (dest, src1, n * 2);
-  } else {
-    for (i = 0; i < n; i++) {
-      dest[i] = RGB555 (BLEND (RGB555_R (src1[i]), RGB555_R (src2[i]), x),
-          BLEND (RGB555_G (src1[i]), RGB555_G (src2[i]), x),
-          BLEND (RGB555_B (src1[i]), RGB555_B (src2[i]), x));
-    }
-  }
-}
-
-void
-vs_scanline_resample_nearest_AYUV64 (uint8_t * dest8, uint8_t * src8,
-    int src_width, int n, int *accumulator, int increment)
-{
-  guint16 *dest = (guint16 *) dest8;
-  guint16 *src = (guint16 *) src8;
-  int acc = *accumulator;
-  int i, j;
-
-  for (i = 0; i < n; i++) {
-    j = (acc + 0x8000) >> 16;
-
-    dest[i * 4 + 0] = src[j * 4 + 0];
-    dest[i * 4 + 1] = src[j * 4 + 1];
-    dest[i * 4 + 2] = src[j * 4 + 2];
-    dest[i * 4 + 3] = src[j * 4 + 3];
-
-    acc += increment;
-  }
-
-  *accumulator = acc;
-}
-
-void
-vs_scanline_resample_linear_AYUV64 (uint8_t * dest8, uint8_t * src8,
-    int src_width, int n, int *accumulator, int increment)
-{
-  guint16 *dest = (guint16 *) dest8;
-  guint16 *src = (guint16 *) src8;
-  int acc = *accumulator;
-  int i;
-  int j;
-  int x;
-
-  for (i = 0; i < n; i++) {
-    j = acc >> 16;
-    x = (acc & 0xffff) >> 1;
-
-    if (j + 1 < src_width) {
-      dest[i * 4 + 0] = BLEND15 (src[j * 4 + 0], src[j * 4 + 4], x);
-      dest[i * 4 + 1] = BLEND15 (src[j * 4 + 1], src[j * 4 + 5], x);
-      dest[i * 4 + 2] = BLEND15 (src[j * 4 + 2], src[j * 4 + 6], x);
-      dest[i * 4 + 3] = BLEND15 (src[j * 4 + 3], src[j * 4 + 7], x);
-    } else {
-      dest[i * 4 + 0] = src[j * 4 + 0];
-      dest[i * 4 + 1] = src[j * 4 + 1];
-      dest[i * 4 + 2] = src[j * 4 + 2];
-      dest[i * 4 + 3] = src[j * 4 + 3];
-    }
-    acc += increment;
-  }
-
-  *accumulator = acc;
-}
diff --git a/gst/videoscale/vs_scanline.h b/gst/videoscale/vs_scanline.h
deleted file mode 100644
index b953e98..0000000
--- a/gst/videoscale/vs_scanline.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * Image Scaling Functions
- * Copyright (c) 2005 David A. Schleef <ds@schleef.org>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef __VS_SCANLINE_H__
-#define __VS_SCANLINE_H__
-
-#include <_stdint.h>
-#include <glib.h>
-
-G_GNUC_INTERNAL void vs_scanline_downsample_Y (uint8_t *dest, uint8_t *src, int n);
-G_GNUC_INTERNAL void vs_scanline_resample_nearest_Y (uint8_t *dest, uint8_t *src, int n, int src_width, int *accumulator, int increment);
-G_GNUC_INTERNAL void vs_scanline_resample_linear_Y (uint8_t *dest, uint8_t *src, int n, int src_width, int *accumulator, int increment);
-G_GNUC_INTERNAL void vs_scanline_merge_linear_Y (uint8_t *dest, uint8_t *src1, uint8_t *src2, int n, int x);
-
-G_GNUC_INTERNAL void vs_scanline_downsample_RGBA (uint8_t *dest, uint8_t *src, int n);
-G_GNUC_INTERNAL void vs_scanline_resample_nearest_RGBA (uint8_t *dest, uint8_t *src, int src_width, int n, int *accumulator, int increment);
-G_GNUC_INTERNAL void vs_scanline_resample_linear_RGBA (uint8_t *dest, uint8_t *src, int src_width, int n, int *accumulator, int increment);
-G_GNUC_INTERNAL void vs_scanline_merge_linear_RGBA (uint8_t *dest, uint8_t *src1, uint8_t *src2, int n, int x);
-
-G_GNUC_INTERNAL void vs_scanline_downsample_RGB (uint8_t *dest, uint8_t *src, int n);
-G_GNUC_INTERNAL void vs_scanline_resample_nearest_RGB (uint8_t *dest, uint8_t *src, int src_width, int n, int *accumulator, int increment);
-G_GNUC_INTERNAL void vs_scanline_resample_linear_RGB (uint8_t *dest, uint8_t *src, int src_width, int n, int *accumulator, int increment);
-G_GNUC_INTERNAL void vs_scanline_merge_linear_RGB (uint8_t *dest, uint8_t *src1, uint8_t *src2, int n, int x);
-
-G_GNUC_INTERNAL void vs_scanline_downsample_YUYV (uint8_t *dest, uint8_t *src, int n);
-G_GNUC_INTERNAL void vs_scanline_resample_nearest_YUYV (uint8_t *dest, uint8_t *src, int src_width, int n, int *accumulator, int increment);
-G_GNUC_INTERNAL void vs_scanline_resample_linear_YUYV (uint8_t *dest, uint8_t *src, int src_width, int n, int *accumulator, int increment);
-G_GNUC_INTERNAL void vs_scanline_merge_linear_YUYV (uint8_t *dest, uint8_t *src1, uint8_t *src2, int n, int x);
-
-G_GNUC_INTERNAL void vs_scanline_downsample_UYVY (uint8_t *dest, uint8_t *src, int n);
-G_GNUC_INTERNAL void vs_scanline_resample_nearest_UYVY (uint8_t *dest, uint8_t *src, int src_width, int n, int *accumulator, int increment);
-G_GNUC_INTERNAL void vs_scanline_resample_linear_UYVY (uint8_t *dest, uint8_t *src, int src_width, int n, int *accumulator, int increment);
-G_GNUC_INTERNAL void vs_scanline_merge_linear_UYVY (uint8_t *dest, uint8_t *src1, uint8_t *src2, int n, int x);
-
-G_GNUC_INTERNAL void vs_scanline_downsample_NV12 (uint8_t *dest, uint8_t *src, int n);
-G_GNUC_INTERNAL void vs_scanline_resample_nearest_NV12 (uint8_t *dest, uint8_t *src, int src_width, int n, int *accumulator, int increment);
-G_GNUC_INTERNAL void vs_scanline_resample_linear_NV12 (uint8_t *dest, uint8_t *src, int src_width, int n, int *accumulator, int increment);
-G_GNUC_INTERNAL void vs_scanline_merge_linear_NV12 (uint8_t *dest, uint8_t *src1, uint8_t *src2, int n, int x);
-
-G_GNUC_INTERNAL void vs_scanline_downsample_RGB565 (uint8_t *dest, uint8_t *src, int n);
-G_GNUC_INTERNAL void vs_scanline_resample_nearest_RGB565 (uint8_t *dest, uint8_t *src, int src_width, int n, int *accumulator, int increment);
-G_GNUC_INTERNAL void vs_scanline_resample_linear_RGB565 (uint8_t *dest, uint8_t *src, int src_width, int n, int *accumulator, int increment);
-G_GNUC_INTERNAL void vs_scanline_merge_linear_RGB565 (uint8_t *dest, uint8_t *src1, uint8_t *src2, int n, int x);
-
-G_GNUC_INTERNAL void vs_scanline_downsample_RGB555 (uint8_t *dest, uint8_t *src, int n);
-G_GNUC_INTERNAL void vs_scanline_resample_nearest_RGB555 (uint8_t *dest, uint8_t *src, int src_width, int n, int *accumulator, int increment);
-G_GNUC_INTERNAL void vs_scanline_resample_linear_RGB555 (uint8_t *dest, uint8_t *src, int src_width, int n, int *accumulator, int increment);
-G_GNUC_INTERNAL void vs_scanline_merge_linear_RGB555 (uint8_t *dest, uint8_t *src1, uint8_t *src2, int n, int x);
-
-G_GNUC_INTERNAL void vs_scanline_downsample_Y16 (uint8_t *dest, uint8_t *src, int n);
-G_GNUC_INTERNAL void vs_scanline_resample_nearest_Y16 (uint8_t *dest, uint8_t *src, int n, int src_width, int *accumulator, int increment);
-G_GNUC_INTERNAL void vs_scanline_resample_linear_Y16 (uint8_t *dest, uint8_t *src, int n, int src_width, int *accumulator, int increment);
-G_GNUC_INTERNAL void vs_scanline_merge_linear_Y16 (uint8_t *dest, uint8_t *src1, uint8_t *src2, int n, int x);
-
-G_GNUC_INTERNAL void vs_scanline_resample_nearest_AYUV64 (uint8_t * dest, uint8_t * src,
-    int src_width, int n, int *accumulator, int increment);
-G_GNUC_INTERNAL void vs_scanline_resample_linear_AYUV64 (uint8_t * dest, uint8_t * src,
-    int src_width, int n, int *accumulator, int increment);
-
-#endif
-
diff --git a/gst/videotestsrc/Makefile.in b/gst/videotestsrc/Makefile.in
index 4a1b0bc..0487c45 100644
--- a/gst/videotestsrc/Makefile.in
+++ b/gst/videotestsrc/Makefile.in
@@ -126,7 +126,6 @@
 	$(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-x11.m4 \
 	$(top_srcdir)/common/m4/gst.m4 \
 	$(top_srcdir)/common/m4/gtk-doc.m4 \
 	$(top_srcdir)/common/m4/introspection.m4 \
@@ -328,6 +327,8 @@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_2_0_CFLAGS = @GIO_UNIX_2_0_CFLAGS@
+GIO_UNIX_2_0_LIBS = @GIO_UNIX_2_0_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
@@ -357,6 +358,8 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
+GST_NET_CFLAGS = @GST_NET_CFLAGS@
+GST_NET_LIBS = @GST_NET_LIBS@
 GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
 GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
@@ -384,7 +387,6 @@
 GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
 GTK_X11_LIBS = @GTK_X11_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
-HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -488,13 +490,12 @@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-XMKMF = @XMKMF@
+XSHM_CFLAGS = @XSHM_CFLAGS@
 XSHM_LIBS = @XSHM_LIBS@
+XVIDEO_CFLAGS = @XVIDEO_CFLAGS@
 XVIDEO_LIBS = @XVIDEO_LIBS@
 X_CFLAGS = @X_CFLAGS@
-X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
-X_PRE_LIBS = @X_PRE_LIBS@
 ZLIB_CFLAGS = @ZLIB_CFLAGS@
 ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
diff --git a/gst/videotestsrc/gstvideotestsrc.c b/gst/videotestsrc/gstvideotestsrc.c
index 6951b3d..ce98cb4 100644
--- a/gst/videotestsrc/gstvideotestsrc.c
+++ b/gst/videotestsrc/gstvideotestsrc.c
@@ -151,6 +151,8 @@
     {GST_VIDEO_TEST_SRC_BAR, "Bar", "bar"},
     {GST_VIDEO_TEST_SRC_PINWHEEL, "Pinwheel", "pinwheel"},
     {GST_VIDEO_TEST_SRC_SPOKES, "Spokes", "spokes"},
+    {GST_VIDEO_TEST_SRC_GRADIENT, "Gradient", "gradient"},
+    {GST_VIDEO_TEST_SRC_COLORS, "Colors", "colors"},
     {0, NULL, NULL}
   };
 
@@ -183,8 +185,9 @@
           DEFAULT_PATTERN, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
   g_object_class_install_property (gobject_class, PROP_TIMESTAMP_OFFSET,
       g_param_spec_int64 ("timestamp-offset", "Timestamp offset",
-          "An offset added to timestamps set on buffers (in ns)", G_MININT64,
-          G_MAXINT64, 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+          "An offset added to timestamps set on buffers (in ns)", 0,
+          (G_MAXLONG == G_MAXINT64) ? G_MAXINT64 : (G_MAXLONG * GST_SECOND - 1),
+          0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
   g_object_class_install_property (gobject_class, PROP_IS_LIVE,
       g_param_spec_boolean ("is-live", "Is Live",
           "Whether to act as a live source", DEFAULT_IS_LIVE,
@@ -423,6 +426,12 @@
     case GST_VIDEO_TEST_SRC_SPOKES:
       videotestsrc->make_image = gst_video_test_src_spokes;
       break;
+    case GST_VIDEO_TEST_SRC_GRADIENT:
+      videotestsrc->make_image = gst_video_test_src_gradient;
+      break;
+    case GST_VIDEO_TEST_SRC_COLORS:
+      videotestsrc->make_image = gst_video_test_src_colors;
+      break;
     default:
       g_assert_not_reached ();
   }
@@ -776,7 +785,7 @@
 static gboolean
 gst_video_test_src_query (GstBaseSrc * bsrc, GstQuery * query)
 {
-  gboolean res;
+  gboolean res = FALSE;
   GstVideoTestSrc *src;
 
   src = GST_VIDEO_TEST_SRC (bsrc);
@@ -794,6 +803,23 @@
       gst_query_set_convert (query, src_fmt, src_val, dest_fmt, dest_val);
       break;
     }
+    case GST_QUERY_LATENCY:
+    {
+      if (src->info.fps_n > 0) {
+        GstClockTime latency;
+
+        latency =
+            gst_util_uint64_scale (GST_SECOND, src->info.fps_d,
+            src->info.fps_n);
+        gst_query_set_latency (query,
+            gst_base_src_is_live (GST_BASE_SRC_CAST (src)), latency,
+            GST_CLOCK_TIME_NONE);
+        GST_DEBUG_OBJECT (src, "Reporting latency of %" GST_TIME_FORMAT,
+            GST_TIME_ARGS (latency));
+        res = TRUE;
+      }
+      break;
+    }
     case GST_QUERY_DURATION:{
       if (bsrc->num_buffers != -1) {
         GstFormat format;
diff --git a/gst/videotestsrc/gstvideotestsrc.h b/gst/videotestsrc/gstvideotestsrc.h
index 468aad7..c0dfaa4 100644
--- a/gst/videotestsrc/gstvideotestsrc.h
+++ b/gst/videotestsrc/gstvideotestsrc.h
@@ -64,6 +64,8 @@
  * @GST_VIDEO_TEST_SRC_BAR: Bar with foreground color
  * @GST_VIDEO_TEST_SRC_PINWHEEL: Pinwheel
  * @GST_VIDEO_TEST_SRC_SPOKES: Spokes
+ * @GST_VIDEO_TEST_SRC_GRADIENT: Gradient
+ * @GST_VIDEO_TEST_SRC_COLORS: All colors
  *
  * The test pattern to produce.
  *
@@ -107,7 +109,9 @@
   GST_VIDEO_TEST_SRC_SMPTE100,
   GST_VIDEO_TEST_SRC_BAR,
   GST_VIDEO_TEST_SRC_PINWHEEL,
-  GST_VIDEO_TEST_SRC_SPOKES
+  GST_VIDEO_TEST_SRC_SPOKES,
+  GST_VIDEO_TEST_SRC_GRADIENT,
+  GST_VIDEO_TEST_SRC_COLORS
 } GstVideoTestSrcPattern;
 
 typedef struct _GstVideoTestSrc GstVideoTestSrc;
@@ -134,6 +138,7 @@
   gint y_invert;
 
   /* private */
+  /* FIXME 2.0: Change type to GstClockTime */
   gint64 timestamp_offset;              /* base offset */
 
   /* running time and frames for current caps */
diff --git a/gst/videotestsrc/gstvideotestsrcorc-dist.c b/gst/videotestsrc/gstvideotestsrcorc-dist.c
index c49a1ed..87c7beb 100644
--- a/gst/videotestsrc/gstvideotestsrcorc-dist.c
+++ b/gst/videotestsrc/gstvideotestsrcorc-dist.c
@@ -150,7 +150,6 @@
   int i;
   orc_union32 *ORC_RESTRICT ptr0;
   orc_union32 var32;
-  orc_union32 var33;
 
   ptr0 = (orc_union32 *) d1;
 
@@ -158,10 +157,8 @@
   var32.i = p1;
 
   for (i = 0; i < n; i++) {
-    /* 1: copyl */
-    var33.i = var32.i;
-    /* 2: storel */
-    ptr0[i] = var33;
+    /* 1: storel */
+    ptr0[i] = var32;
   }
 
 }
@@ -174,7 +171,6 @@
   int n = ex->n;
   orc_union32 *ORC_RESTRICT ptr0;
   orc_union32 var32;
-  orc_union32 var33;
 
   ptr0 = (orc_union32 *) ex->arrays[0];
 
@@ -182,10 +178,8 @@
   var32.i = ex->params[24];
 
   for (i = 0; i < n; i++) {
-    /* 1: copyl */
-    var33.i = var32.i;
-    /* 2: storel */
-    ptr0[i] = var33;
+    /* 1: storel */
+    ptr0[i] = var32;
   }
 
 }
@@ -207,7 +201,7 @@
       static const orc_uint8 bc[] = {
         1, 9, 28, 118, 105, 100, 101, 111, 95, 116, 101, 115, 116, 95, 115, 114,
         99, 95, 111, 114, 99, 95, 115, 112, 108, 97, 116, 95, 117, 51, 50, 11,
-        4, 4, 16, 4, 112, 0, 24, 2, 0,
+        4, 4, 16, 4, 128, 0, 24, 2, 0,
       };
       p = orc_program_new_from_static_bytecode (bc);
       orc_program_set_backup_function (p, _backup_video_test_src_orc_splat_u32);
@@ -218,7 +212,7 @@
       orc_program_add_destination (p, 4, "d1");
       orc_program_add_parameter (p, 4, "p1");
 
-      orc_program_append_2 (p, "copyl", 0, ORC_VAR_D1, ORC_VAR_P1, ORC_VAR_D1,
+      orc_program_append_2 (p, "storel", 0, ORC_VAR_D1, ORC_VAR_P1, ORC_VAR_D1,
           ORC_VAR_D1);
 #endif
 
diff --git a/gst/videotestsrc/gstvideotestsrcorc.orc b/gst/videotestsrc/gstvideotestsrcorc.orc
index a75f069..d0970b3 100644
--- a/gst/videotestsrc/gstvideotestsrcorc.orc
+++ b/gst/videotestsrc/gstvideotestsrcorc.orc
@@ -3,6 +3,6 @@
 .dest 4 d1 guint8
 .param 4 p1
 
-copyl d1, p1
+storel d1, p1
 
 
diff --git a/gst/videotestsrc/videotestsrc.c b/gst/videotestsrc/videotestsrc.c
index b4adf90..f082ed1 100644
--- a/gst/videotestsrc/videotestsrc.c
+++ b/gst/videotestsrc/videotestsrc.c
@@ -1336,3 +1336,55 @@
     videotestsrc_convert_tmpline (p, frame, j);
   }
 }
+
+void
+gst_video_test_src_gradient (GstVideoTestSrc * v, GstVideoFrame * frame)
+{
+  int i;
+  int j;
+  paintinfo pi = PAINT_INFO_INIT;
+  paintinfo *p = &pi;
+  struct vts_color_struct color;
+  int w = frame->info.width, h = frame->info.height;
+
+  videotestsrc_setup_paintinfo (v, p, w, h);
+
+  color = p->colors[COLOR_BLACK];
+  p->color = &color;
+
+  for (j = 0; j < h; j++) {
+    int y = j * 255.0 / h;
+    for (i = 0; i < w; i++) {
+      p->tmpline_u8[i] = y;
+    }
+    videotestsrc_blend_line (v, p->tmpline, p->tmpline_u8,
+        &p->foreground_color, &p->background_color, w);
+    videotestsrc_convert_tmpline (p, frame, j);
+  }
+}
+
+void
+gst_video_test_src_colors (GstVideoTestSrc * v, GstVideoFrame * frame)
+{
+  int i;
+  int j;
+  paintinfo pi = PAINT_INFO_INIT;
+  paintinfo *p = &pi;
+  struct vts_color_struct color;
+  int w = frame->info.width, h = frame->info.height;
+
+  videotestsrc_setup_paintinfo (v, p, w, h);
+
+  color = p->colors[COLOR_BLACK];
+  p->color = &color;
+
+  for (j = 0; j < h; j++) {
+    for (i = 0; i < w; i++) {
+      p->tmpline[i * 4 + 0] = 0xff;
+      p->tmpline[i * 4 + 1] = ((i * 4096) / w) % 256;
+      p->tmpline[i * 4 + 2] = (((j * 16) / h) << 4) | ((i * 16) / w);
+      p->tmpline[i * 4 + 3] = ((j * 4096) / h) % 256;
+    }
+    videotestsrc_convert_tmpline (p, frame, j);
+  }
+}
diff --git a/gst/videotestsrc/videotestsrc.h b/gst/videotestsrc/videotestsrc.h
index c1e5e1f..977e504 100644
--- a/gst/videotestsrc/videotestsrc.h
+++ b/gst/videotestsrc/videotestsrc.h
@@ -82,5 +82,7 @@
 void    gst_video_test_src_bar          (GstVideoTestSrc * v, GstVideoFrame *frame);
 void    gst_video_test_src_pinwheel     (GstVideoTestSrc * v, GstVideoFrame * frame);
 void    gst_video_test_src_spokes       (GstVideoTestSrc * v, GstVideoFrame * frame);
+void    gst_video_test_src_gradient     (GstVideoTestSrc * v, GstVideoFrame * frame);
+void    gst_video_test_src_colors       (GstVideoTestSrc * v, GstVideoFrame * frame);
 
 #endif
diff --git a/gst/volume/Makefile.in b/gst/volume/Makefile.in
index 38c9c7e..60de525 100644
--- a/gst/volume/Makefile.in
+++ b/gst/volume/Makefile.in
@@ -125,7 +125,6 @@
 	$(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-x11.m4 \
 	$(top_srcdir)/common/m4/gst.m4 \
 	$(top_srcdir)/common/m4/gtk-doc.m4 \
 	$(top_srcdir)/common/m4/introspection.m4 \
@@ -313,6 +312,8 @@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_2_0_CFLAGS = @GIO_UNIX_2_0_CFLAGS@
+GIO_UNIX_2_0_LIBS = @GIO_UNIX_2_0_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
@@ -342,6 +343,8 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
+GST_NET_CFLAGS = @GST_NET_CFLAGS@
+GST_NET_LIBS = @GST_NET_LIBS@
 GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
 GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
@@ -369,7 +372,6 @@
 GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
 GTK_X11_LIBS = @GTK_X11_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
-HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -473,13 +475,12 @@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-XMKMF = @XMKMF@
+XSHM_CFLAGS = @XSHM_CFLAGS@
 XSHM_LIBS = @XSHM_LIBS@
+XVIDEO_CFLAGS = @XVIDEO_CFLAGS@
 XVIDEO_LIBS = @XVIDEO_LIBS@
 X_CFLAGS = @X_CFLAGS@
-X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
-X_PRE_LIBS = @X_PRE_LIBS@
 ZLIB_CFLAGS = @ZLIB_CFLAGS@
 ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
diff --git a/gst/volume/gstvolume.c b/gst/volume/gstvolume.c
index 0f5b362..7612095 100644
--- a/gst/volume/gstvolume.c
+++ b/gst/volume/gstvolume.c
@@ -250,10 +250,14 @@
     self->current_mute = FALSE;
     self->current_volume = volume;
 
-    self->current_vol_i8 = volume * VOLUME_UNITY_INT8;
-    self->current_vol_i16 = volume * VOLUME_UNITY_INT16;
-    self->current_vol_i24 = volume * VOLUME_UNITY_INT24;
-    self->current_vol_i32 = volume * VOLUME_UNITY_INT32;
+    self->current_vol_i8 =
+        (gint) ((gdouble) volume * (gdouble) VOLUME_UNITY_INT8);
+    self->current_vol_i16 =
+        (gint) ((gdouble) volume * (gdouble) VOLUME_UNITY_INT16);
+    self->current_vol_i24 =
+        (gint) ((gdouble) volume * (gdouble) VOLUME_UNITY_INT24);
+    self->current_vol_i32 =
+        (gint) ((gdouble) volume * (gdouble) VOLUME_UNITY_INT32);
 
     passthrough = (self->current_vol_i16 == VOLUME_UNITY_INT16);
   }
@@ -337,7 +341,7 @@
 static void
 gst_volume_init (GstVolume * self)
 {
-  self->mute = DEFAULT_PROP_MUTE;;
+  self->mute = DEFAULT_PROP_MUTE;
   self->volume = DEFAULT_PROP_VOLUME;
 
   self->tracklist = NULL;
diff --git a/gst/volume/gstvolumeorc-dist.c b/gst/volume/gstvolumeorc-dist.c
index 4d37493..d4ccde8 100644
--- a/gst/volume/gstvolumeorc-dist.c
+++ b/gst/volume/gstvolumeorc-dist.c
@@ -258,7 +258,7 @@
       static const orc_uint8 bc[] = {
         1, 9, 32, 118, 111, 108, 117, 109, 101, 95, 111, 114, 99, 95, 115, 99,
         97, 108, 97, 114, 109, 117, 108, 116, 105, 112, 108, 121, 95, 102, 54,
-        52,
+            52,
         95, 110, 115, 11, 8, 8, 18, 8, 214, 0, 0, 24, 2, 0,
       };
       p = orc_program_new_from_static_bytecode (bc);
@@ -291,8 +291,8 @@
   {
     orc_union64 tmp;
     tmp.f = p1;
-    ex->params[ORC_VAR_P1] = tmp.x2[0];
-    ex->params[ORC_VAR_T1] = tmp.x2[1];
+    ex->params[ORC_VAR_P1] = ((orc_uint64) tmp.i) & 0xffffffff;
+    ex->params[ORC_VAR_T1] = ((orc_uint64) tmp.i) >> 32;
   }
 
   func = c->exec;
@@ -388,7 +388,7 @@
       static const orc_uint8 bc[] = {
         1, 9, 32, 118, 111, 108, 117, 109, 101, 95, 111, 114, 99, 95, 115, 99,
         97, 108, 97, 114, 109, 117, 108, 116, 105, 112, 108, 121, 95, 102, 51,
-        50,
+            50,
         95, 110, 115, 11, 4, 4, 17, 4, 202, 0, 0, 24, 2, 0,
       };
       p = orc_program_new_from_static_bytecode (bc);
@@ -512,9 +512,9 @@
 #if 1
       static const orc_uint8 bc[] = {
         1, 9, 24, 118, 111, 108, 117, 109, 101, 95, 111, 114, 99, 95, 112, 114,
-        111, 99, 101, 115, 115, 95, 105, 110, 116, 51, 50, 11, 4, 4, 14, 4,
-        27, 0, 0, 0, 16, 4, 20, 8, 178, 32, 0, 24, 147, 32, 32, 16,
-        169, 0, 32, 2, 0,
+        111, 99, 101, 115, 115, 95, 105, 110, 116, 51, 50, 11, 4, 4, 15, 8,
+        27, 0, 0, 0, 0, 0, 0, 0, 16, 4, 20, 8, 178, 32, 0, 24,
+        147, 32, 32, 16, 169, 0, 32, 2, 0,
       };
       p = orc_program_new_from_static_bytecode (bc);
       orc_program_set_backup_function (p, _backup_volume_orc_process_int32);
@@ -523,7 +523,7 @@
       orc_program_set_name (p, "volume_orc_process_int32");
       orc_program_set_backup_function (p, _backup_volume_orc_process_int32);
       orc_program_add_destination (p, 4, "d1");
-      orc_program_add_constant (p, 4, 0x0000001b, "c1");
+      orc_program_add_constant_int64 (p, 8, 0x000000000000001bULL, "c1");
       orc_program_add_parameter (p, 4, "p1");
       orc_program_add_temporary (p, 8, "t1");
 
@@ -638,8 +638,8 @@
       static const orc_uint8 bc[] = {
         1, 9, 30, 118, 111, 108, 117, 109, 101, 95, 111, 114, 99, 95, 112, 114,
         111, 99, 101, 115, 115, 95, 105, 110, 116, 51, 50, 95, 99, 108, 97, 109,
-        112, 11, 4, 4, 14, 4, 27, 0, 0, 0, 16, 4, 20, 8, 178, 32,
-        0, 24, 147, 32, 32, 16, 170, 0, 32, 2, 0,
+        112, 11, 4, 4, 15, 8, 27, 0, 0, 0, 0, 0, 0, 0, 16, 4,
+        20, 8, 178, 32, 0, 24, 147, 32, 32, 16, 170, 0, 32, 2, 0,
       };
       p = orc_program_new_from_static_bytecode (bc);
       orc_program_set_backup_function (p,
@@ -650,7 +650,7 @@
       orc_program_set_backup_function (p,
           _backup_volume_orc_process_int32_clamp);
       orc_program_add_destination (p, 4, "d1");
-      orc_program_add_constant (p, 4, 0x0000001b, "c1");
+      orc_program_add_constant_int64 (p, 8, 0x000000000000001bULL, "c1");
       orc_program_add_parameter (p, 4, "p1");
       orc_program_add_temporary (p, 8, "t1");
 
@@ -1016,7 +1016,7 @@
 #if 1
       static const orc_uint8 bc[] = {
         1, 9, 23, 118, 111, 108, 117, 109, 101, 95, 111, 114, 99, 95, 112, 114,
-        111, 99, 101, 115, 115, 95, 105, 110, 116, 56, 11, 1, 1, 14, 4, 3,
+        111, 99, 101, 115, 115, 95, 105, 110, 116, 56, 11, 1, 1, 14, 2, 3,
         0, 0, 0, 16, 1, 20, 2, 174, 32, 0, 24, 94, 32, 32, 16, 157,
         0, 32, 2, 0,
       };
@@ -1027,7 +1027,7 @@
       orc_program_set_name (p, "volume_orc_process_int8");
       orc_program_set_backup_function (p, _backup_volume_orc_process_int8);
       orc_program_add_destination (p, 1, "d1");
-      orc_program_add_constant (p, 4, 0x00000003, "c1");
+      orc_program_add_constant (p, 2, 0x00000003, "c1");
       orc_program_add_parameter (p, 1, "p1");
       orc_program_add_temporary (p, 2, "t1");
 
@@ -1142,8 +1142,8 @@
       static const orc_uint8 bc[] = {
         1, 9, 29, 118, 111, 108, 117, 109, 101, 95, 111, 114, 99, 95, 112, 114,
         111, 99, 101, 115, 115, 95, 105, 110, 116, 56, 95, 99, 108, 97, 109,
-        112,
-        11, 1, 1, 14, 4, 3, 0, 0, 0, 16, 1, 20, 2, 174, 32, 0,
+            112,
+        11, 1, 1, 14, 2, 3, 0, 0, 0, 16, 1, 20, 2, 174, 32, 0,
         24, 94, 32, 32, 16, 159, 0, 32, 2, 0,
       };
       p = orc_program_new_from_static_bytecode (bc);
@@ -1155,7 +1155,7 @@
       orc_program_set_backup_function (p,
           _backup_volume_orc_process_int8_clamp);
       orc_program_add_destination (p, 1, "d1");
-      orc_program_add_constant (p, 4, 0x00000003, "c1");
+      orc_program_add_constant (p, 2, 0x00000003, "c1");
       orc_program_add_parameter (p, 1, "p1");
       orc_program_add_temporary (p, 2, "t1");
 
@@ -1284,8 +1284,8 @@
   {
     orc_union64 tmp;
     tmp.f = p1;
-    ex->params[ORC_VAR_P1] = tmp.x2[0];
-    ex->params[ORC_VAR_T1] = tmp.x2[1];
+    ex->params[ORC_VAR_P1] = ((orc_uint64) tmp.i) & 0xffffffff;
+    ex->params[ORC_VAR_T1] = ((orc_uint64) tmp.i) >> 32;
   }
 
   func = c->exec;
@@ -1564,7 +1564,7 @@
       static const orc_uint8 bc[] = {
         1, 9, 37, 118, 111, 108, 117, 109, 101, 95, 111, 114, 99, 95, 112, 114,
         111, 99, 101, 115, 115, 95, 99, 111, 110, 116, 114, 111, 108, 108, 101,
-        100,
+            100,
         95, 102, 54, 52, 95, 49, 99, 104, 11, 8, 8, 12, 8, 8, 214, 0,
         0, 4, 2, 0,
       };
@@ -1714,7 +1714,7 @@
       static const orc_uint8 bc[] = {
         1, 9, 37, 118, 111, 108, 117, 109, 101, 95, 111, 114, 99, 95, 112, 114,
         111, 99, 101, 115, 115, 95, 99, 111, 110, 116, 114, 111, 108, 108, 101,
-        100,
+            100,
         95, 102, 51, 50, 95, 49, 99, 104, 11, 4, 4, 12, 8, 8, 20, 4,
         225, 32, 4, 202, 0, 0, 32, 2, 0,
       };
@@ -1901,7 +1901,7 @@
       static const orc_uint8 bc[] = {
         1, 9, 37, 118, 111, 108, 117, 109, 101, 95, 111, 114, 99, 95, 112, 114,
         111, 99, 101, 115, 115, 95, 99, 111, 110, 116, 114, 111, 108, 108, 101,
-        100,
+            100,
         95, 102, 51, 50, 95, 50, 99, 104, 11, 8, 8, 12, 8, 8, 20, 4,
         20, 8, 225, 32, 4, 194, 33, 32, 32, 21, 1, 202, 0, 0, 33, 2,
         0,
@@ -2064,7 +2064,7 @@
       static const orc_uint8 bc[] = {
         1, 9, 39, 118, 111, 108, 117, 109, 101, 95, 111, 114, 99, 95, 112, 114,
         111, 99, 101, 115, 115, 95, 99, 111, 110, 116, 114, 111, 108, 108, 101,
-        100,
+            100,
         95, 105, 110, 116, 51, 50, 95, 49, 99, 104, 11, 4, 4, 12, 8, 8,
         20, 8, 223, 32, 0, 214, 32, 32, 4, 222, 0, 32, 2, 0,
       };
@@ -2255,7 +2255,7 @@
       static const orc_uint8 bc[] = {
         1, 9, 39, 118, 111, 108, 117, 109, 101, 95, 111, 114, 99, 95, 112, 114,
         111, 99, 101, 115, 115, 95, 99, 111, 110, 116, 114, 111, 108, 108, 101,
-        100,
+            100,
         95, 105, 110, 116, 49, 54, 95, 49, 99, 104, 11, 2, 2, 12, 8, 8,
         20, 4, 20, 4, 153, 32, 0, 211, 32, 32, 225, 33, 4, 202, 32, 32,
         33, 210, 32, 32, 165, 0, 32, 2, 0,
@@ -2508,7 +2508,7 @@
       static const orc_uint8 bc[] = {
         1, 9, 39, 118, 111, 108, 117, 109, 101, 95, 111, 114, 99, 95, 112, 114,
         111, 99, 101, 115, 115, 95, 99, 111, 110, 116, 114, 111, 108, 108, 101,
-        100,
+            100,
         95, 105, 110, 116, 49, 54, 95, 50, 99, 104, 11, 4, 4, 12, 8, 8,
         20, 8, 20, 4, 20, 8, 21, 1, 153, 32, 0, 21, 1, 211, 32, 32,
         225, 33, 4, 194, 34, 33, 33, 21, 1, 202, 34, 34, 32, 21, 1, 210,
@@ -2723,7 +2723,7 @@
       static const orc_uint8 bc[] = {
         1, 9, 38, 118, 111, 108, 117, 109, 101, 95, 111, 114, 99, 95, 112, 114,
         111, 99, 101, 115, 115, 95, 99, 111, 110, 116, 114, 111, 108, 108, 101,
-        100,
+            100,
         95, 105, 110, 116, 56, 95, 49, 99, 104, 11, 1, 1, 12, 8, 8, 20,
         2, 20, 4, 20, 4, 149, 32, 0, 153, 33, 32, 211, 33, 33, 225, 34,
         4, 202, 33, 33, 34, 210, 33, 33, 163, 32, 33, 159, 0, 32, 2, 0,
@@ -2998,7 +2998,7 @@
       static const orc_uint8 bc[] = {
         1, 9, 38, 118, 111, 108, 117, 109, 101, 95, 111, 114, 99, 95, 112, 114,
         111, 99, 101, 115, 115, 95, 99, 111, 110, 116, 114, 111, 108, 108, 101,
-        100,
+            100,
         95, 105, 110, 116, 56, 95, 50, 99, 104, 11, 2, 2, 12, 8, 8, 20,
         4, 20, 8, 20, 8, 21, 1, 149, 32, 0, 21, 1, 153, 33, 32, 21,
         1, 211, 33, 33, 225, 32, 4, 194, 34, 32, 32, 21, 1, 202, 33, 33,
diff --git a/install-sh b/install-sh
index a9244eb..377bb86 100755
--- a/install-sh
+++ b/install-sh
@@ -1,7 +1,7 @@
 #!/bin/sh
 # install - install a program, script, or datafile
 
-scriptversion=2011-01-19.21; # UTC
+scriptversion=2011-11-20.07; # UTC
 
 # This originates from X11R5 (mit/util/scripts/install.sh), which was
 # later released in X11R6 (xc/config/util/install.sh) with the
@@ -35,7 +35,7 @@
 # FSF changes to this file are in the public domain.
 #
 # Calling this script install-sh is preferred over install.sh, to prevent
-# `make' implicit rules from creating a file called install from it
+# 'make' implicit rules from creating a file called install from it
 # when there is no Makefile.
 #
 # This script is compatible with the BSD install script, but was written
@@ -156,7 +156,7 @@
     -s) stripcmd=$stripprog;;
 
     -t) dst_arg=$2
-	# Protect names problematic for `test' and other utilities.
+	# Protect names problematic for 'test' and other utilities.
 	case $dst_arg in
 	  -* | [=\(\)!]) dst_arg=./$dst_arg;;
 	esac
@@ -190,7 +190,7 @@
     fi
     shift # arg
     dst_arg=$arg
-    # Protect names problematic for `test' and other utilities.
+    # Protect names problematic for 'test' and other utilities.
     case $dst_arg in
       -* | [=\(\)!]) dst_arg=./$dst_arg;;
     esac
@@ -202,7 +202,7 @@
     echo "$0: no input file specified." >&2
     exit 1
   fi
-  # It's OK to call `install-sh -d' without argument.
+  # It's OK to call 'install-sh -d' without argument.
   # This can happen when creating conditional directories.
   exit 0
 fi
@@ -240,7 +240,7 @@
 
 for src
 do
-  # Protect names problematic for `test' and other utilities.
+  # Protect names problematic for 'test' and other utilities.
   case $src in
     -* | [=\(\)!]) src=./$src;;
   esac
@@ -354,7 +354,7 @@
 	      if test -z "$dir_arg" || {
 		   # Check for POSIX incompatibilities with -m.
 		   # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
-		   # other-writeable bit of parent directory when it shouldn't.
+		   # other-writable bit of parent directory when it shouldn't.
 		   # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
 		   ls_ld_tmpdir=`ls -ld "$tmpdir"`
 		   case $ls_ld_tmpdir in
diff --git a/ltmain.sh b/ltmain.sh
index bb5fa02..bffda54 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.7
+#         $progname:	(GNU libtool) 2.4.2 Debian-2.4.2-1.11
 #         automake:	$automake_version
 #         autoconf:	$autoconf_version
 #
@@ -80,7 +80,7 @@
 
 PROGRAM=libtool
 PACKAGE=libtool
-VERSION="2.4.2 Debian-2.4.2-1.7"
+VERSION="2.4.2 Debian-2.4.2-1.11"
 TIMESTAMP=""
 package_revision=1.3337
 
diff --git a/m4/Makefile.in b/m4/Makefile.in
index 633477e..132f3ab 100644
--- a/m4/Makefile.in
+++ b/m4/Makefile.in
@@ -100,7 +100,6 @@
 	$(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-x11.m4 \
 	$(top_srcdir)/common/m4/gst.m4 \
 	$(top_srcdir)/common/m4/gtk-doc.m4 \
 	$(top_srcdir)/common/m4/introspection.m4 \
@@ -201,6 +200,8 @@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_2_0_CFLAGS = @GIO_UNIX_2_0_CFLAGS@
+GIO_UNIX_2_0_LIBS = @GIO_UNIX_2_0_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
@@ -230,6 +231,8 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
+GST_NET_CFLAGS = @GST_NET_CFLAGS@
+GST_NET_LIBS = @GST_NET_LIBS@
 GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
 GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
@@ -257,7 +260,6 @@
 GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
 GTK_X11_LIBS = @GTK_X11_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
-HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -361,13 +363,12 @@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-XMKMF = @XMKMF@
+XSHM_CFLAGS = @XSHM_CFLAGS@
 XSHM_LIBS = @XSHM_LIBS@
+XVIDEO_CFLAGS = @XVIDEO_CFLAGS@
 XVIDEO_LIBS = @XVIDEO_LIBS@
 X_CFLAGS = @X_CFLAGS@
-X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
-X_PRE_LIBS = @X_PRE_LIBS@
 ZLIB_CFLAGS = @ZLIB_CFLAGS@
 ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
diff --git a/missing b/missing
index 86a8fc3..db98974 100755
--- a/missing
+++ b/missing
@@ -1,11 +1,10 @@
 #! /bin/sh
-# Common stub for a few missing GNU programs while installing.
+# Common wrapper for a few potentially missing GNU programs.
 
-scriptversion=2012-01-06.13; # UTC
+scriptversion=2013-10-28.13; # UTC
 
-# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006,
-# 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
-# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
+# Copyright (C) 1996-2013 Free Software Foundation, Inc.
+# Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
 
 # 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
@@ -26,68 +25,40 @@
 # the same distribution terms that you use for the rest of that program.
 
 if test $# -eq 0; then
-  echo 1>&2 "Try \`$0 --help' for more information"
+  echo 1>&2 "Try '$0 --help' for more information"
   exit 1
 fi
 
-run=:
-sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p'
-sed_minuso='s/.* -o \([^ ]*\).*/\1/p'
-
-# In the cases where this matters, `missing' is being run in the
-# srcdir already.
-if test -f configure.ac; then
-  configure_ac=configure.ac
-else
-  configure_ac=configure.in
-fi
-
-msg="missing on your system"
-
 case $1 in
---run)
-  # Try to run requested program, and just exit if it succeeds.
-  run=
-  shift
-  "$@" && exit 0
-  # Exit code 63 means version mismatch.  This often happens
-  # when the user try to use an ancient version of a tool on
-  # a file that requires a minimum version.  In this case we
-  # we should proceed has if the program had been absent, or
-  # if --run hadn't been passed.
-  if test $? = 63; then
-    run=:
-    msg="probably too old"
-  fi
-  ;;
+
+  --is-lightweight)
+    # Used by our autoconf macros to check whether the available missing
+    # script is modern enough.
+    exit 0
+    ;;
+
+  --run)
+    # Back-compat with the calling convention used by older automake.
+    shift
+    ;;
 
   -h|--h|--he|--hel|--help)
     echo "\
 $0 [OPTION]... PROGRAM [ARGUMENT]...
 
-Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
-error status if there is no known handling for PROGRAM.
+Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due
+to PROGRAM being missing or too old.
 
 Options:
   -h, --help      display this help and exit
   -v, --version   output version information and exit
-  --run           try to run the given command, and emulate it if it fails
 
 Supported PROGRAM values:
-  aclocal      touch file \`aclocal.m4'
-  autoconf     touch file \`configure'
-  autoheader   touch file \`config.h.in'
-  autom4te     touch the output file, or create a stub one
-  automake     touch all \`Makefile.in' files
-  bison        create \`y.tab.[ch]', if possible, from existing .[ch]
-  flex         create \`lex.yy.c', if possible, from existing .c
-  help2man     touch the output file
-  lex          create \`lex.yy.c', if possible, from existing .c
-  makeinfo     touch the output file
-  yacc         create \`y.tab.[ch]', if possible, from existing .[ch]
+  aclocal   autoconf  autoheader   autom4te  automake  makeinfo
+  bison     yacc      flex         lex       help2man
 
-Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and
-\`g' are ignored when checking the name.
+Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and
+'g' are ignored when checking the name.
 
 Send bug reports to <bug-automake@gnu.org>."
     exit $?
@@ -99,228 +70,141 @@
     ;;
 
   -*)
-    echo 1>&2 "$0: Unknown \`$1' option"
-    echo 1>&2 "Try \`$0 --help' for more information"
+    echo 1>&2 "$0: unknown '$1' option"
+    echo 1>&2 "Try '$0 --help' for more information"
     exit 1
     ;;
 
 esac
 
-# normalize program name to check for.
-program=`echo "$1" | sed '
-  s/^gnu-//; t
-  s/^gnu//; t
-  s/^g//; t'`
+# Run the given program, remember its exit status.
+"$@"; st=$?
 
-# Now exit if we have it, but it failed.  Also exit now if we
-# don't have it and --version was passed (most likely to detect
-# the program).  This is about non-GNU programs, so use $1 not
-# $program.
-case $1 in
-  lex*|yacc*)
-    # Not GNU programs, they don't have --version.
+# If it succeeded, we are done.
+test $st -eq 0 && exit 0
+
+# Also exit now if we it failed (or wasn't found), and '--version' was
+# passed; such an option is passed most likely to detect whether the
+# program is present and works.
+case $2 in --version|--help) exit $st;; esac
+
+# Exit code 63 means version mismatch.  This often happens when the user
+# tries to use an ancient version of a tool on a file that requires a
+# minimum version.
+if test $st -eq 63; then
+  msg="probably too old"
+elif test $st -eq 127; then
+  # Program was missing.
+  msg="missing on your system"
+else
+  # Program was found and executed, but failed.  Give up.
+  exit $st
+fi
+
+perl_URL=http://www.perl.org/
+flex_URL=http://flex.sourceforge.net/
+gnu_software_URL=http://www.gnu.org/software
+
+program_details ()
+{
+  case $1 in
+    aclocal|automake)
+      echo "The '$1' program is part of the GNU Automake package:"
+      echo "<$gnu_software_URL/automake>"
+      echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:"
+      echo "<$gnu_software_URL/autoconf>"
+      echo "<$gnu_software_URL/m4/>"
+      echo "<$perl_URL>"
+      ;;
+    autoconf|autom4te|autoheader)
+      echo "The '$1' program is part of the GNU Autoconf package:"
+      echo "<$gnu_software_URL/autoconf/>"
+      echo "It also requires GNU m4 and Perl in order to run:"
+      echo "<$gnu_software_URL/m4/>"
+      echo "<$perl_URL>"
+      ;;
+  esac
+}
+
+give_advice ()
+{
+  # Normalize program name to check for.
+  normalized_program=`echo "$1" | sed '
+    s/^gnu-//; t
+    s/^gnu//; t
+    s/^g//; t'`
+
+  printf '%s\n' "'$1' is $msg."
+
+  configure_deps="'configure.ac' or m4 files included by 'configure.ac'"
+  case $normalized_program in
+    autoconf*)
+      echo "You should only need it if you modified 'configure.ac',"
+      echo "or m4 files included by it."
+      program_details 'autoconf'
+      ;;
+    autoheader*)
+      echo "You should only need it if you modified 'acconfig.h' or"
+      echo "$configure_deps."
+      program_details 'autoheader'
+      ;;
+    automake*)
+      echo "You should only need it if you modified 'Makefile.am' or"
+      echo "$configure_deps."
+      program_details 'automake'
+      ;;
+    aclocal*)
+      echo "You should only need it if you modified 'acinclude.m4' or"
+      echo "$configure_deps."
+      program_details 'aclocal'
+      ;;
+   autom4te*)
+      echo "You might have modified some maintainer files that require"
+      echo "the 'autom4te' program to be rebuilt."
+      program_details 'autom4te'
+      ;;
+    bison*|yacc*)
+      echo "You should only need it if you modified a '.y' file."
+      echo "You may want to install the GNU Bison package:"
+      echo "<$gnu_software_URL/bison/>"
+      ;;
+    lex*|flex*)
+      echo "You should only need it if you modified a '.l' file."
+      echo "You may want to install the Fast Lexical Analyzer package:"
+      echo "<$flex_URL>"
+      ;;
+    help2man*)
+      echo "You should only need it if you modified a dependency" \
+           "of a man page."
+      echo "You may want to install the GNU Help2man package:"
+      echo "<$gnu_software_URL/help2man/>"
     ;;
+    makeinfo*)
+      echo "You should only need it if you modified a '.texi' file, or"
+      echo "any other file indirectly affecting the aspect of the manual."
+      echo "You might want to install the Texinfo package:"
+      echo "<$gnu_software_URL/texinfo/>"
+      echo "The spurious makeinfo call might also be the consequence of"
+      echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might"
+      echo "want to install GNU make:"
+      echo "<$gnu_software_URL/make/>"
+      ;;
+    *)
+      echo "You might have modified some files without having the proper"
+      echo "tools for further handling them.  Check the 'README' file, it"
+      echo "often tells you about the needed prerequisites for installing"
+      echo "this package.  You may also peek at any GNU archive site, in"
+      echo "case some other package contains this missing '$1' program."
+      ;;
+  esac
+}
 
-  *)
-    if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
-       # We have it, but it failed.
-       exit 1
-    elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
-       # Could not run --version or --help.  This is probably someone
-       # running `$TOOL --version' or `$TOOL --help' to check whether
-       # $TOOL exists and not knowing $TOOL uses missing.
-       exit 1
-    fi
-    ;;
-esac
+give_advice "$1" | sed -e '1s/^/WARNING: /' \
+                       -e '2,$s/^/         /' >&2
 
-# If it does not exist, or fails to run (possibly an outdated version),
-# try to emulate it.
-case $program in
-  aclocal*)
-    echo 1>&2 "\
-WARNING: \`$1' is $msg.  You should only need it if
-         you modified \`acinclude.m4' or \`${configure_ac}'.  You might want
-         to install the \`Automake' and \`Perl' packages.  Grab them from
-         any GNU archive site."
-    touch aclocal.m4
-    ;;
-
-  autoconf*)
-    echo 1>&2 "\
-WARNING: \`$1' is $msg.  You should only need it if
-         you modified \`${configure_ac}'.  You might want to install the
-         \`Autoconf' and \`GNU m4' packages.  Grab them from any GNU
-         archive site."
-    touch configure
-    ;;
-
-  autoheader*)
-    echo 1>&2 "\
-WARNING: \`$1' is $msg.  You should only need it if
-         you modified \`acconfig.h' or \`${configure_ac}'.  You might want
-         to install the \`Autoconf' and \`GNU m4' packages.  Grab them
-         from any GNU archive site."
-    files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
-    test -z "$files" && files="config.h"
-    touch_files=
-    for f in $files; do
-      case $f in
-      *:*) touch_files="$touch_files "`echo "$f" |
-				       sed -e 's/^[^:]*://' -e 's/:.*//'`;;
-      *) touch_files="$touch_files $f.in";;
-      esac
-    done
-    touch $touch_files
-    ;;
-
-  automake*)
-    echo 1>&2 "\
-WARNING: \`$1' is $msg.  You should only need it if
-         you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
-         You might want to install the \`Automake' and \`Perl' packages.
-         Grab them from any GNU archive site."
-    find . -type f -name Makefile.am -print |
-	   sed 's/\.am$/.in/' |
-	   while read f; do touch "$f"; done
-    ;;
-
-  autom4te*)
-    echo 1>&2 "\
-WARNING: \`$1' is needed, but is $msg.
-         You might have modified some files without having the
-         proper tools for further handling them.
-         You can get \`$1' as part of \`Autoconf' from any GNU
-         archive site."
-
-    file=`echo "$*" | sed -n "$sed_output"`
-    test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
-    if test -f "$file"; then
-	touch $file
-    else
-	test -z "$file" || exec >$file
-	echo "#! /bin/sh"
-	echo "# Created by GNU Automake missing as a replacement of"
-	echo "#  $ $@"
-	echo "exit 0"
-	chmod +x $file
-	exit 1
-    fi
-    ;;
-
-  bison*|yacc*)
-    echo 1>&2 "\
-WARNING: \`$1' $msg.  You should only need it if
-         you modified a \`.y' file.  You may need the \`Bison' package
-         in order for those modifications to take effect.  You can get
-         \`Bison' from any GNU archive site."
-    rm -f y.tab.c y.tab.h
-    if test $# -ne 1; then
-        eval LASTARG=\${$#}
-	case $LASTARG in
-	*.y)
-	    SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
-	    if test -f "$SRCFILE"; then
-	         cp "$SRCFILE" y.tab.c
-	    fi
-	    SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
-	    if test -f "$SRCFILE"; then
-	         cp "$SRCFILE" y.tab.h
-	    fi
-	  ;;
-	esac
-    fi
-    if test ! -f y.tab.h; then
-	echo >y.tab.h
-    fi
-    if test ! -f y.tab.c; then
-	echo 'main() { return 0; }' >y.tab.c
-    fi
-    ;;
-
-  lex*|flex*)
-    echo 1>&2 "\
-WARNING: \`$1' is $msg.  You should only need it if
-         you modified a \`.l' file.  You may need the \`Flex' package
-         in order for those modifications to take effect.  You can get
-         \`Flex' from any GNU archive site."
-    rm -f lex.yy.c
-    if test $# -ne 1; then
-        eval LASTARG=\${$#}
-	case $LASTARG in
-	*.l)
-	    SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
-	    if test -f "$SRCFILE"; then
-	         cp "$SRCFILE" lex.yy.c
-	    fi
-	  ;;
-	esac
-    fi
-    if test ! -f lex.yy.c; then
-	echo 'main() { return 0; }' >lex.yy.c
-    fi
-    ;;
-
-  help2man*)
-    echo 1>&2 "\
-WARNING: \`$1' is $msg.  You should only need it if
-	 you modified a dependency of a manual page.  You may need the
-	 \`Help2man' package in order for those modifications to take
-	 effect.  You can get \`Help2man' from any GNU archive site."
-
-    file=`echo "$*" | sed -n "$sed_output"`
-    test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
-    if test -f "$file"; then
-	touch $file
-    else
-	test -z "$file" || exec >$file
-	echo ".ab help2man is required to generate this page"
-	exit $?
-    fi
-    ;;
-
-  makeinfo*)
-    echo 1>&2 "\
-WARNING: \`$1' is $msg.  You should only need it if
-         you modified a \`.texi' or \`.texinfo' file, or any other file
-         indirectly affecting the aspect of the manual.  The spurious
-         call might also be the consequence of using a buggy \`make' (AIX,
-         DU, IRIX).  You might want to install the \`Texinfo' package or
-         the \`GNU make' package.  Grab either from any GNU archive site."
-    # The file to touch is that specified with -o ...
-    file=`echo "$*" | sed -n "$sed_output"`
-    test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
-    if test -z "$file"; then
-      # ... or it is the one specified with @setfilename ...
-      infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
-      file=`sed -n '
-	/^@setfilename/{
-	  s/.* \([^ ]*\) *$/\1/
-	  p
-	  q
-	}' $infile`
-      # ... or it is derived from the source name (dir/f.texi becomes f.info)
-      test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
-    fi
-    # If the file does not exist, the user really needs makeinfo;
-    # let's fail without touching anything.
-    test -f $file || exit 1
-    touch $file
-    ;;
-
-  *)
-    echo 1>&2 "\
-WARNING: \`$1' is needed, and is $msg.
-         You might have modified some files without having the
-         proper tools for further handling them.  Check the \`README' file,
-         it often tells you about the needed prerequisites for installing
-         this package.  You may also peek at any GNU archive site, in case
-         some other package would contain this missing \`$1' program."
-    exit 1
-    ;;
-esac
-
-exit 0
+# Propagate the correct exit status (expected to be 127 for a program
+# not found, 63 for a program that failed due to version mismatch).
+exit $st
 
 # Local variables:
 # eval: (add-hook 'write-file-hooks 'time-stamp)
diff --git a/pkgconfig/Makefile.in b/pkgconfig/Makefile.in
index d007392..d7d1d92 100644
--- a/pkgconfig/Makefile.in
+++ b/pkgconfig/Makefile.in
@@ -125,7 +125,6 @@
 	$(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-x11.m4 \
 	$(top_srcdir)/common/m4/gst.m4 \
 	$(top_srcdir)/common/m4/gtk-doc.m4 \
 	$(top_srcdir)/common/m4/introspection.m4 \
@@ -267,6 +266,8 @@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_2_0_CFLAGS = @GIO_UNIX_2_0_CFLAGS@
+GIO_UNIX_2_0_LIBS = @GIO_UNIX_2_0_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
@@ -296,6 +297,8 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
+GST_NET_CFLAGS = @GST_NET_CFLAGS@
+GST_NET_LIBS = @GST_NET_LIBS@
 GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
 GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
@@ -323,7 +326,6 @@
 GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
 GTK_X11_LIBS = @GTK_X11_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
-HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -427,13 +429,12 @@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-XMKMF = @XMKMF@
+XSHM_CFLAGS = @XSHM_CFLAGS@
 XSHM_LIBS = @XSHM_LIBS@
+XVIDEO_CFLAGS = @XVIDEO_CFLAGS@
 XVIDEO_LIBS = @XVIDEO_LIBS@
 X_CFLAGS = @X_CFLAGS@
-X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
-X_PRE_LIBS = @X_PRE_LIBS@
 ZLIB_CFLAGS = @ZLIB_CFLAGS@
 ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 13f8255..ac00380 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -17,4 +17,5 @@
 gst-libs/gst/pbutils/missing-plugins.c
 gst-libs/gst/tag/gsttagdemux.c
 gst-libs/gst/tag/tags.c
+tools/gst-device-monitor.c
 tools/gst-play.c
diff --git a/po/af.gmo b/po/af.gmo
index c7133b1..63cb8ca 100644
--- a/po/af.gmo
+++ b/po/af.gmo
Binary files differ
diff --git a/po/af.po b/po/af.po
index 27f3bf0..ba24176 100644
--- a/po/af.po
+++ b/po/af.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins 0.7.6\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-06-22 17:22+0200\n"
+"POT-Creation-Date: 2015-03-16 19:31+0100\n"
 "PO-Revision-Date: 2004-03-18 14:16+0200\n"
 "Last-Translator: Petri Jooste <rkwjpj@puk.ac.za>\n"
 "Language-Team: Afrikaans <i18n@af.org.za>\n"
@@ -83,10 +83,6 @@
 msgid "Missing element '%s' - check your GStreamer installation."
 msgstr ""
 
-#, c-format
-msgid "A %s plugin is required to play this stream, but not installed."
-msgstr ""
-
 #, fuzzy
 msgid "Could not determine type of stream"
 msgstr "Kon nie skryf na lêer \"%s\" nie."
@@ -512,15 +508,20 @@
 msgid "Initial key in which the sound starts"
 msgstr ""
 
+msgid "Print version information and exit"
+msgstr ""
+
+msgid ""
+"Don't exit after showing the initial device list, but wait for devices to "
+"added/removed."
+msgstr ""
+
 msgid "Buffering..."
 msgstr ""
 
 msgid "Clock lost, selecting a new one\n"
 msgstr ""
 
-msgid "Print version information and exit"
-msgstr ""
-
 msgid "Video sink to use (default is autovideosink)"
 msgstr ""
 
@@ -542,6 +543,9 @@
 msgid "Playlist file containing input media files"
 msgstr ""
 
+msgid "Do not print any output (apart from errors)"
+msgstr ""
+
 #, c-format
 msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
 msgstr ""
diff --git a/po/az.gmo b/po/az.gmo
index 50e4e51..a84415f 100644
--- a/po/az.gmo
+++ b/po/az.gmo
Binary files differ
diff --git a/po/az.po b/po/az.po
index 681732c..4cd9df8 100644
--- a/po/az.po
+++ b/po/az.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-0.8.0\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-06-22 17:22+0200\n"
+"POT-Creation-Date: 2015-03-16 19:31+0100\n"
 "PO-Revision-Date: 2004-03-19 18:29+0200\n"
 "Last-Translator: Metin Amiroff <metin@karegen.com>\n"
 "Language-Team: Azerbaijani <translation-team-az@lists.sourceforge.net>\n"
@@ -84,10 +84,6 @@
 msgid "Missing element '%s' - check your GStreamer installation."
 msgstr ""
 
-#, c-format
-msgid "A %s plugin is required to play this stream, but not installed."
-msgstr ""
-
 #, fuzzy
 msgid "Could not determine type of stream"
 msgstr "\"%s\" faylına yazıla bilmədi."
@@ -513,15 +509,20 @@
 msgid "Initial key in which the sound starts"
 msgstr ""
 
+msgid "Print version information and exit"
+msgstr ""
+
+msgid ""
+"Don't exit after showing the initial device list, but wait for devices to "
+"added/removed."
+msgstr ""
+
 msgid "Buffering..."
 msgstr ""
 
 msgid "Clock lost, selecting a new one\n"
 msgstr ""
 
-msgid "Print version information and exit"
-msgstr ""
-
 msgid "Video sink to use (default is autovideosink)"
 msgstr ""
 
@@ -543,6 +544,9 @@
 msgid "Playlist file containing input media files"
 msgstr ""
 
+msgid "Do not print any output (apart from errors)"
+msgstr ""
+
 #, c-format
 msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
 msgstr ""
diff --git a/po/bg.gmo b/po/bg.gmo
index 172a485..f179392 100644
--- a/po/bg.gmo
+++ b/po/bg.gmo
Binary files differ
diff --git a/po/bg.po b/po/bg.po
index 8d15400..ea51195 100644
--- a/po/bg.po
+++ b/po/bg.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-06-22 17:22+0200\n"
+"POT-Creation-Date: 2015-03-16 19:31+0100\n"
 "PO-Revision-Date: 2011-04-26 22:31+0300\n"
 "Last-Translator: Alexander Shopov <ash@kambanaria.org>\n"
 "Language-Team: Bulgarian <dict@fsa-bg.org>\n"
@@ -80,12 +80,6 @@
 msgid "Missing element '%s' - check your GStreamer installation."
 msgstr "Елементът „%s“ липсва — проверете инсталацията на GStreamer."
 
-#, c-format
-msgid "A %s plugin is required to play this stream, but not installed."
-msgstr ""
-"За да пуснете този поток, се нуждаете от приставка за %s. Такава не е "
-"инсталирана."
-
 msgid "Could not determine type of stream"
 msgstr "Видът на потока не може да бъде определен"
 
@@ -516,15 +510,20 @@
 msgid "Initial key in which the sound starts"
 msgstr ""
 
+msgid "Print version information and exit"
+msgstr ""
+
+msgid ""
+"Don't exit after showing the initial device list, but wait for devices to "
+"added/removed."
+msgstr ""
+
 msgid "Buffering..."
 msgstr ""
 
 msgid "Clock lost, selecting a new one\n"
 msgstr ""
 
-msgid "Print version information and exit"
-msgstr ""
-
 msgid "Video sink to use (default is autovideosink)"
 msgstr ""
 
@@ -546,6 +545,9 @@
 msgid "Playlist file containing input media files"
 msgstr ""
 
+msgid "Do not print any output (apart from errors)"
+msgstr ""
+
 #, c-format
 msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
 msgstr ""
@@ -553,6 +555,11 @@
 msgid "You must provide at least one filename or URI to play."
 msgstr ""
 
+#~ msgid "A %s plugin is required to play this stream, but not installed."
+#~ msgstr ""
+#~ "За да пуснете този поток, се нуждаете от приставка за %s. Такава не е "
+#~ "инсталирана."
+
 #, fuzzy
 #~ msgid "Uncompressed %s YUV %s"
 #~ msgstr "Некомпресирано видео YUV"
diff --git a/po/ca.gmo b/po/ca.gmo
index a7d0fdf..06cf3c6 100644
--- a/po/ca.gmo
+++ b/po/ca.gmo
Binary files differ
diff --git a/po/ca.po b/po/ca.po
index 2b8e0a6..93db0dc 100644
--- a/po/ca.po
+++ b/po/ca.po
@@ -9,7 +9,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-06-22 17:22+0200\n"
+"POT-Creation-Date: 2015-03-16 19:31+0100\n"
 "PO-Revision-Date: 2012-01-01 14:19+0100\n"
 "Last-Translator: Gil Forcada <gforcada@gnome.org>\n"
 "Language-Team: Catalan <ca@dodds.net>\n"
@@ -85,12 +85,6 @@
 msgid "Missing element '%s' - check your GStreamer installation."
 msgstr "Manca l'element «%s» - comproveu la vostra instaŀlació del GStreamer."
 
-#, c-format
-msgid "A %s plugin is required to play this stream, but not installed."
-msgstr ""
-"Es requereix un connector %s per a reproduir aquest flux, però no és "
-"instaŀlat."
-
 msgid "Could not determine type of stream"
 msgstr "No s'ha pogut determinar el tipus de flux"
 
@@ -528,15 +522,20 @@
 msgid "Initial key in which the sound starts"
 msgstr ""
 
+msgid "Print version information and exit"
+msgstr ""
+
+msgid ""
+"Don't exit after showing the initial device list, but wait for devices to "
+"added/removed."
+msgstr ""
+
 msgid "Buffering..."
 msgstr ""
 
 msgid "Clock lost, selecting a new one\n"
 msgstr ""
 
-msgid "Print version information and exit"
-msgstr ""
-
 msgid "Video sink to use (default is autovideosink)"
 msgstr ""
 
@@ -558,6 +557,9 @@
 msgid "Playlist file containing input media files"
 msgstr ""
 
+msgid "Do not print any output (apart from errors)"
+msgstr ""
+
 #, c-format
 msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
 msgstr ""
@@ -565,6 +567,11 @@
 msgid "You must provide at least one filename or URI to play."
 msgstr ""
 
+#~ msgid "A %s plugin is required to play this stream, but not installed."
+#~ msgstr ""
+#~ "Es requereix un connector %s per a reproduir aquest flux, però no és "
+#~ "instaŀlat."
+
 #, fuzzy
 #~ msgid "Uncompressed %s YUV %s"
 #~ msgstr "YUV sense comprimir"
diff --git a/po/cs.gmo b/po/cs.gmo
index 9a041a2..fb87a12 100644
--- a/po/cs.gmo
+++ b/po/cs.gmo
Binary files differ
diff --git a/po/cs.po b/po/cs.po
index 19d61f3..6957c63 100644
--- a/po/cs.po
+++ b/po/cs.po
@@ -10,7 +10,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base-1.2.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-06-22 17:22+0200\n"
+"POT-Creation-Date: 2015-03-16 19:31+0100\n"
 "PO-Revision-Date: 2014-03-09 12:37+0100\n"
 "Last-Translator: Marek Černocký <marek@manet.cz>\n"
 "Language-Team: Czech <translation-team-cs@lists.sourceforge.net>\n"
@@ -83,12 +83,6 @@
 msgid "Missing element '%s' - check your GStreamer installation."
 msgstr "Schází prvek „%s“ – zkontrolujte prosím instalaci systému GStreamer."
 
-#, c-format
-msgid "A %s plugin is required to play this stream, but not installed."
-msgstr ""
-"K přehrání tohoto proudu je vyžadován zásuvný modul %s, ale není "
-"nainstalován."
-
 msgid "Could not determine type of stream"
 msgstr "Nezdařilo se určit typ proudu"
 
@@ -515,15 +509,20 @@
 msgid "Initial key in which the sound starts"
 msgstr "Počáteční klíčové místo, od kterého se má zvuk spouštět"
 
+msgid "Print version information and exit"
+msgstr "Vypsat informace o verzi a skončit"
+
+msgid ""
+"Don't exit after showing the initial device list, but wait for devices to "
+"added/removed."
+msgstr ""
+
 msgid "Buffering..."
 msgstr "Ukládá se do vyrovnávací paměti…"
 
 msgid "Clock lost, selecting a new one\n"
 msgstr ""
 
-msgid "Print version information and exit"
-msgstr "Vypsat informace o verzi a skončit"
-
 msgid "Video sink to use (default is autovideosink)"
 msgstr "Spotřebič videa, který se má použít (výchozí je autovideosink)"
 
@@ -545,9 +544,17 @@
 msgid "Playlist file containing input media files"
 msgstr ""
 
+msgid "Do not print any output (apart from errors)"
+msgstr ""
+
 #, c-format
 msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
 msgstr "Použítí: %s SOUBOR1|URI1 [SOUBOR2|URI2] [SOUBOR3|URI3] …"
 
 msgid "You must provide at least one filename or URI to play."
 msgstr "Musíte zadat minimálně jeden název souboru nebo adresu URI k přehrání."
+
+#~ msgid "A %s plugin is required to play this stream, but not installed."
+#~ msgstr ""
+#~ "K přehrání tohoto proudu je vyžadován zásuvný modul %s, ale není "
+#~ "nainstalován."
diff --git a/po/da.gmo b/po/da.gmo
index 32b1d1d..4e4a6d8 100644
--- a/po/da.gmo
+++ b/po/da.gmo
Binary files differ
diff --git a/po/da.po b/po/da.po
index 09a2200..e7be5bd 100644
--- a/po/da.po
+++ b/po/da.po
@@ -33,7 +33,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 1.3.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-06-22 17:22+0200\n"
+"POT-Creation-Date: 2015-03-16 19:31+0100\n"
 "PO-Revision-Date: 2014-05-24 16:38+0100\n"
 "Last-Translator: Joe Hansen <joedalton2@yahoo.dk>\n"
 "Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
@@ -103,12 +103,6 @@
 msgid "Missing element '%s' - check your GStreamer installation."
 msgstr "Elementet »%s« mangler - kontroller din GStreamer-installation."
 
-#, c-format
-msgid "A %s plugin is required to play this stream, but not installed."
-msgstr ""
-"Et %s plugin er nødvendigt ved afspilning af denne sekvens, men ikke "
-"installeret."
-
 msgid "Could not determine type of stream"
 msgstr "Kunne ikke afgøre strømtypen"
 
@@ -551,15 +545,20 @@
 msgid "Initial key in which the sound starts"
 msgstr "Oprindelig nøgle hvor musikken starter"
 
+msgid "Print version information and exit"
+msgstr "Vis versionsinformation og afslut"
+
+msgid ""
+"Don't exit after showing the initial device list, but wait for devices to "
+"added/removed."
+msgstr ""
+
 msgid "Buffering..."
 msgstr "Mellemlagrer ..."
 
 msgid "Clock lost, selecting a new one\n"
 msgstr "Ur tabt, vælger et nyt ur\n"
 
-msgid "Print version information and exit"
-msgstr "Vis versionsinformation og afslut"
-
 msgid "Video sink to use (default is autovideosink)"
 msgstr "Brug denne videokanal (standard er autovideosink)"
 
@@ -581,9 +580,17 @@
 msgid "Playlist file containing input media files"
 msgstr "Afspilningsfil der indeholder mediefiler"
 
+msgid "Do not print any output (apart from errors)"
+msgstr ""
+
 #, c-format
 msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
 msgstr "Brug: %s FIL1|URI1 [FIL2|URI2] [FIL3|URI3] ..."
 
 msgid "You must provide at least one filename or URI to play."
 msgstr "Du skal angive mindst et filnavn eller en adresse for at afspille."
+
+#~ msgid "A %s plugin is required to play this stream, but not installed."
+#~ msgstr ""
+#~ "Et %s plugin er nødvendigt ved afspilning af denne sekvens, men ikke "
+#~ "installeret."
diff --git a/po/de.gmo b/po/de.gmo
index b4e6e6e..b9acfc7 100644
--- a/po/de.gmo
+++ b/po/de.gmo
Binary files differ
diff --git a/po/de.po b/po/de.po
index de14823..cfa25f0 100644
--- a/po/de.po
+++ b/po/de.po
@@ -9,7 +9,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 1.3.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-06-22 17:22+0200\n"
+"POT-Creation-Date: 2015-03-16 19:31+0100\n"
 "PO-Revision-Date: 2014-05-22 20:43+0100\n"
 "Last-Translator: Christian Kirbach <christian.kirbach@gmail.com>\n"
 "Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
@@ -83,12 +83,6 @@
 msgstr ""
 "Das Element »%s« fehlt - überprüfen Sie Ihre Installation von GStreamer."
 
-#, c-format
-msgid "A %s plugin is required to play this stream, but not installed."
-msgstr ""
-"Ein Plugin »%s« wird zum Abspielen dieses Datenstroms benötigt, ist aber "
-"nicht installiert."
-
 msgid "Could not determine type of stream"
 msgstr "Der Typ des Datenstroms konnte nicht bestimmt werden"
 
@@ -518,15 +512,20 @@
 msgid "Initial key in which the sound starts"
 msgstr "Anfänglicher Schlüssel, in dem der Ton startet"
 
+msgid "Print version information and exit"
+msgstr "Versionsinformationen ausgeben und beenden"
+
+msgid ""
+"Don't exit after showing the initial device list, but wait for devices to "
+"added/removed."
+msgstr ""
+
 msgid "Buffering..."
 msgstr "Zwischenspeichern …"
 
 msgid "Clock lost, selecting a new one\n"
 msgstr "Uhrzeit verloren, es wird eine neue gewählt\n"
 
-msgid "Print version information and exit"
-msgstr "Versionsinformationen ausgeben und beenden"
-
 msgid "Video sink to use (default is autovideosink)"
 msgstr "Zu verwendende Video-Ziel (Voreinstellung ist »autovideosink«)"
 
@@ -548,6 +547,9 @@
 msgid "Playlist file containing input media files"
 msgstr "Datei mit Wiedergabeliste enthält Eingabe-Mediendateien"
 
+msgid "Do not print any output (apart from errors)"
+msgstr ""
+
 #, c-format
 msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
 msgstr "Aufruf: %s DATEI1|URI1 [DATEI2|URI2] [DATEI3|URI3] ..."
@@ -557,6 +559,11 @@
 "Sie müssen mindestens einen Dateinamen oder eine Adresse zur Wiedergabe "
 "angeben."
 
+#~ msgid "A %s plugin is required to play this stream, but not installed."
+#~ msgstr ""
+#~ "Ein Plugin »%s« wird zum Abspielen dieses Datenstroms benötigt, ist aber "
+#~ "nicht installiert."
+
 #~ msgid "Uncompressed %s YUV %s"
 #~ msgstr "Unkomprimiertes %s YUV %s"
 
diff --git a/po/el.gmo b/po/el.gmo
index d2a863b..048ddc2 100644
--- a/po/el.gmo
+++ b/po/el.gmo
Binary files differ
diff --git a/po/el.po b/po/el.po
index 399b303..a66f749 100644
--- a/po/el.po
+++ b/po/el.po
@@ -9,7 +9,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-06-22 17:22+0200\n"
+"POT-Creation-Date: 2015-03-16 19:31+0100\n"
 "PO-Revision-Date: 2012-05-05 19:13+0100\n"
 "Last-Translator: Savvas Radevic <vicedar@gmail.com>\n"
 "Language-Team: Greek <team@lists.gnome.gr>\n"
@@ -83,12 +83,6 @@
 msgid "Missing element '%s' - check your GStreamer installation."
 msgstr "Λείπει το στοιχείο '%s' - ελέγξτε την εγκατάσταση του GStreamer."
 
-#, c-format
-msgid "A %s plugin is required to play this stream, but not installed."
-msgstr ""
-"Απαιτείται μια πρόσθετη λειτουργία %s για την αναπαραγωγή αυτής της ροής, "
-"αλλά δεν έχει εγκατασταθεί."
-
 msgid "Could not determine type of stream"
 msgstr "Αδυναμία προσδιορισμού τύπου ροής"
 
@@ -534,15 +528,20 @@
 msgid "Initial key in which the sound starts"
 msgstr ""
 
+msgid "Print version information and exit"
+msgstr ""
+
+msgid ""
+"Don't exit after showing the initial device list, but wait for devices to "
+"added/removed."
+msgstr ""
+
 msgid "Buffering..."
 msgstr ""
 
 msgid "Clock lost, selecting a new one\n"
 msgstr ""
 
-msgid "Print version information and exit"
-msgstr ""
-
 msgid "Video sink to use (default is autovideosink)"
 msgstr ""
 
@@ -564,6 +563,9 @@
 msgid "Playlist file containing input media files"
 msgstr ""
 
+msgid "Do not print any output (apart from errors)"
+msgstr ""
+
 #, c-format
 msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
 msgstr ""
@@ -571,6 +573,11 @@
 msgid "You must provide at least one filename or URI to play."
 msgstr ""
 
+#~ msgid "A %s plugin is required to play this stream, but not installed."
+#~ msgstr ""
+#~ "Απαιτείται μια πρόσθετη λειτουργία %s για την αναπαραγωγή αυτής της ροής, "
+#~ "αλλά δεν έχει εγκατασταθεί."
+
 #, fuzzy
 #~ msgid "Uncompressed %s YUV %s"
 #~ msgstr "Ασυμπίεστο YUV"
diff --git a/po/en_GB.gmo b/po/en_GB.gmo
index 519333e..2baeee7 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 a8e5251..c5ea73c 100644
--- a/po/en_GB.po
+++ b/po/en_GB.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins 0.8.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-06-22 17:22+0200\n"
+"POT-Creation-Date: 2015-03-16 19:31+0100\n"
 "PO-Revision-Date: 2004-04-26 10:41-0400\n"
 "Last-Translator: Gareth Owen <gowen72@yahoo.com>\n"
 "Language-Team: English (British) <en_gb@li.org>\n"
@@ -82,10 +82,6 @@
 msgid "Missing element '%s' - check your GStreamer installation."
 msgstr ""
 
-#, c-format
-msgid "A %s plugin is required to play this stream, but not installed."
-msgstr ""
-
 #, fuzzy
 msgid "Could not determine type of stream"
 msgstr "Could not write to file \"%s\"."
@@ -511,15 +507,20 @@
 msgid "Initial key in which the sound starts"
 msgstr ""
 
+msgid "Print version information and exit"
+msgstr ""
+
+msgid ""
+"Don't exit after showing the initial device list, but wait for devices to "
+"added/removed."
+msgstr ""
+
 msgid "Buffering..."
 msgstr ""
 
 msgid "Clock lost, selecting a new one\n"
 msgstr ""
 
-msgid "Print version information and exit"
-msgstr ""
-
 msgid "Video sink to use (default is autovideosink)"
 msgstr ""
 
@@ -541,6 +542,9 @@
 msgid "Playlist file containing input media files"
 msgstr ""
 
+msgid "Do not print any output (apart from errors)"
+msgstr ""
+
 #, c-format
 msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
 msgstr ""
diff --git a/po/eo.gmo b/po/eo.gmo
index 81eb3cf..08687d0 100644
--- a/po/eo.gmo
+++ b/po/eo.gmo
Binary files differ
diff --git a/po/eo.po b/po/eo.po
index 4e2a998..7518599 100644
--- a/po/eo.po
+++ b/po/eo.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-06-22 17:22+0200\n"
+"POT-Creation-Date: 2015-03-16 19:31+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"
@@ -79,10 +79,6 @@
 msgid "Missing element '%s' - check your GStreamer installation."
 msgstr ""
 
-#, c-format
-msgid "A %s plugin is required to play this stream, but not installed."
-msgstr "%s-kromprogramo bezonatas, sed tia ne estas instalite."
-
 msgid "Could not determine type of stream"
 msgstr "Ne eblis rekoni la tipon de la fluo"
 
@@ -507,15 +503,20 @@
 msgid "Initial key in which the sound starts"
 msgstr ""
 
+msgid "Print version information and exit"
+msgstr ""
+
+msgid ""
+"Don't exit after showing the initial device list, but wait for devices to "
+"added/removed."
+msgstr ""
+
 msgid "Buffering..."
 msgstr ""
 
 msgid "Clock lost, selecting a new one\n"
 msgstr ""
 
-msgid "Print version information and exit"
-msgstr ""
-
 msgid "Video sink to use (default is autovideosink)"
 msgstr ""
 
@@ -537,6 +538,9 @@
 msgid "Playlist file containing input media files"
 msgstr ""
 
+msgid "Do not print any output (apart from errors)"
+msgstr ""
+
 #, c-format
 msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
 msgstr ""
@@ -544,6 +548,9 @@
 msgid "You must provide at least one filename or URI to play."
 msgstr ""
 
+#~ msgid "A %s plugin is required to play this stream, but not installed."
+#~ msgstr "%s-kromprogramo bezonatas, sed tia ne estas instalite."
+
 #~ msgid "Master"
 #~ msgstr "Ĉefa regilo"
 
diff --git a/po/es.gmo b/po/es.gmo
index ee200ff..07ce35c 100644
--- a/po/es.gmo
+++ b/po/es.gmo
Binary files differ
diff --git a/po/es.po b/po/es.po
index 7d159b1..ade8375 100644
--- a/po/es.po
+++ b/po/es.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-06-22 17:22+0200\n"
+"POT-Creation-Date: 2015-03-16 19:31+0100\n"
 "PO-Revision-Date: 2011-10-02 15:46+0200\n"
 "Last-Translator: Jorge González González <aloriel@gmail.com>\n"
 "Language-Team: Spanish <es@li.org>\n"
@@ -79,12 +79,6 @@
 msgid "Missing element '%s' - check your GStreamer installation."
 msgstr "Falta el elemento «%s»; compruebe su instalación de GStreamer."
 
-#, c-format
-msgid "A %s plugin is required to play this stream, but not installed."
-msgstr ""
-"Se requiere un complemento de %s para reproducir este medio, pero no está "
-"instalado."
-
 msgid "Could not determine type of stream"
 msgstr "No se pudo determinar el tipo de flujo"
 
@@ -517,15 +511,20 @@
 msgid "Initial key in which the sound starts"
 msgstr ""
 
+msgid "Print version information and exit"
+msgstr ""
+
+msgid ""
+"Don't exit after showing the initial device list, but wait for devices to "
+"added/removed."
+msgstr ""
+
 msgid "Buffering..."
 msgstr ""
 
 msgid "Clock lost, selecting a new one\n"
 msgstr ""
 
-msgid "Print version information and exit"
-msgstr ""
-
 msgid "Video sink to use (default is autovideosink)"
 msgstr ""
 
@@ -547,6 +546,9 @@
 msgid "Playlist file containing input media files"
 msgstr ""
 
+msgid "Do not print any output (apart from errors)"
+msgstr ""
+
 #, c-format
 msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
 msgstr ""
@@ -554,6 +556,11 @@
 msgid "You must provide at least one filename or URI to play."
 msgstr ""
 
+#~ msgid "A %s plugin is required to play this stream, but not installed."
+#~ msgstr ""
+#~ "Se requiere un complemento de %s para reproducir este medio, pero no está "
+#~ "instalado."
+
 #, fuzzy
 #~ msgid "Uncompressed %s YUV %s"
 #~ msgstr "YUV sin comprimir"
diff --git a/po/eu.gmo b/po/eu.gmo
index a2f893d..2f32d33 100644
--- a/po/eu.gmo
+++ b/po/eu.gmo
Binary files differ
diff --git a/po/eu.po b/po/eu.po
index ad089ca..340286f 100644
--- a/po/eu.po
+++ b/po/eu.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base-0.10.26.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-06-22 17:22+0200\n"
+"POT-Creation-Date: 2015-03-16 19:31+0100\n"
 "PO-Revision-Date: 2010-03-25 12:32+0100\n"
 "Last-Translator: Mikel Olasagasti Uranga <hey_neken@mundurat.net>\n"
 "Language-Team: Basque <translation-team-eu@lists.sourceforge.net>\n"
@@ -81,11 +81,6 @@
 msgid "Missing element '%s' - check your GStreamer installation."
 msgstr "'%s' elementua falta da. Begiratu GStreamer ondo instalatua dagoen."
 
-#, c-format
-msgid "A %s plugin is required to play this stream, but not installed."
-msgstr ""
-"%s plugina behar da korronte hori erreproduzitzeko, baina ez dago instalatua."
-
 msgid "Could not determine type of stream"
 msgstr "Ezin izan da korronte mota zehaztu"
 
@@ -518,15 +513,20 @@
 msgid "Initial key in which the sound starts"
 msgstr ""
 
+msgid "Print version information and exit"
+msgstr ""
+
+msgid ""
+"Don't exit after showing the initial device list, but wait for devices to "
+"added/removed."
+msgstr ""
+
 msgid "Buffering..."
 msgstr ""
 
 msgid "Clock lost, selecting a new one\n"
 msgstr ""
 
-msgid "Print version information and exit"
-msgstr ""
-
 msgid "Video sink to use (default is autovideosink)"
 msgstr ""
 
@@ -548,6 +548,9 @@
 msgid "Playlist file containing input media files"
 msgstr ""
 
+msgid "Do not print any output (apart from errors)"
+msgstr ""
+
 #, c-format
 msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
 msgstr ""
@@ -555,6 +558,11 @@
 msgid "You must provide at least one filename or URI to play."
 msgstr ""
 
+#~ msgid "A %s plugin is required to play this stream, but not installed."
+#~ msgstr ""
+#~ "%s plugina behar da korronte hori erreproduzitzeko, baina ez dago "
+#~ "instalatua."
+
 #, fuzzy
 #~ msgid "Uncompressed %s YUV %s"
 #~ msgstr "Konprimitu gabeko YUV"
diff --git a/po/fi.gmo b/po/fi.gmo
index a0538eb..aa11ea4 100644
--- a/po/fi.gmo
+++ b/po/fi.gmo
Binary files differ
diff --git a/po/fi.po b/po/fi.po
index a9efe05..fa62f7e 100644
--- a/po/fi.po
+++ b/po/fi.po
@@ -12,7 +12,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 0.10.30.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-06-22 17:22+0200\n"
+"POT-Creation-Date: 2015-03-16 19:31+0100\n"
 "PO-Revision-Date: 2010-12-31 23:21+0200\n"
 "Last-Translator: Tommi Vainikainen <Tommi.Vainikainen@iki.fi>\n"
 "Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>\n"
@@ -83,11 +83,6 @@
 msgid "Missing element '%s' - check your GStreamer installation."
 msgstr "Puuttuva elementti \"%s\" - tarkista GStreamer-asennuksesi."
 
-#, c-format
-msgid "A %s plugin is required to play this stream, but not installed."
-msgstr ""
-"Virran toistamiseen tarvitaan %s-liitännäinen, mutta se ei ole asennettu."
-
 msgid "Could not determine type of stream"
 msgstr "Virran tyyppiä ei voitu määrittää"
 
@@ -520,15 +515,20 @@
 msgid "Initial key in which the sound starts"
 msgstr ""
 
+msgid "Print version information and exit"
+msgstr ""
+
+msgid ""
+"Don't exit after showing the initial device list, but wait for devices to "
+"added/removed."
+msgstr ""
+
 msgid "Buffering..."
 msgstr ""
 
 msgid "Clock lost, selecting a new one\n"
 msgstr ""
 
-msgid "Print version information and exit"
-msgstr ""
-
 msgid "Video sink to use (default is autovideosink)"
 msgstr ""
 
@@ -550,6 +550,9 @@
 msgid "Playlist file containing input media files"
 msgstr ""
 
+msgid "Do not print any output (apart from errors)"
+msgstr ""
+
 #, c-format
 msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
 msgstr ""
@@ -557,6 +560,10 @@
 msgid "You must provide at least one filename or URI to play."
 msgstr ""
 
+#~ msgid "A %s plugin is required to play this stream, but not installed."
+#~ msgstr ""
+#~ "Virran toistamiseen tarvitaan %s-liitännäinen, mutta se ei ole asennettu."
+
 #, fuzzy
 #~ msgid "Uncompressed %s YUV %s"
 #~ msgstr "Pakkaamaton YUV"
diff --git a/po/fr.gmo b/po/fr.gmo
index a89a980..345555f 100644
--- a/po/fr.gmo
+++ b/po/fr.gmo
Binary files differ
diff --git a/po/fr.po b/po/fr.po
index 4ed595e..55e5292 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -9,7 +9,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-06-22 17:22+0200\n"
+"POT-Creation-Date: 2015-03-16 19:31+0100\n"
 "PO-Revision-Date: 2011-04-28 09:19+0200\n"
 "Last-Translator: Claude Paroz <claude@2xlibre.net>\n"
 "Language-Team: French <traduc@traduc.org>\n"
@@ -86,11 +86,6 @@
 msgid "Missing element '%s' - check your GStreamer installation."
 msgstr "Élément « %s » manquant, contrôlez votre installation de GStreamer."
 
-#, c-format
-msgid "A %s plugin is required to play this stream, but not installed."
-msgstr ""
-"Un greffon %s est requis pour lire ce flux, mais il n'est pas installé."
-
 msgid "Could not determine type of stream"
 msgstr "Impossible de déterminer le type de flux"
 
@@ -536,15 +531,20 @@
 msgid "Initial key in which the sound starts"
 msgstr ""
 
+msgid "Print version information and exit"
+msgstr ""
+
+msgid ""
+"Don't exit after showing the initial device list, but wait for devices to "
+"added/removed."
+msgstr ""
+
 msgid "Buffering..."
 msgstr ""
 
 msgid "Clock lost, selecting a new one\n"
 msgstr ""
 
-msgid "Print version information and exit"
-msgstr ""
-
 msgid "Video sink to use (default is autovideosink)"
 msgstr ""
 
@@ -566,6 +566,9 @@
 msgid "Playlist file containing input media files"
 msgstr ""
 
+msgid "Do not print any output (apart from errors)"
+msgstr ""
+
 #, c-format
 msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
 msgstr ""
@@ -573,6 +576,10 @@
 msgid "You must provide at least one filename or URI to play."
 msgstr ""
 
+#~ msgid "A %s plugin is required to play this stream, but not installed."
+#~ msgstr ""
+#~ "Un greffon %s est requis pour lire ce flux, mais il n'est pas installé."
+
 #, fuzzy
 #~ msgid "Uncompressed %s YUV %s"
 #~ msgstr "YUV non compressé"
diff --git a/po/gl.gmo b/po/gl.gmo
index 2ca550f..254871e 100644
--- a/po/gl.gmo
+++ b/po/gl.gmo
Binary files differ
diff --git a/po/gl.po b/po/gl.po
index 967185b..92047d0 100644
--- a/po/gl.po
+++ b/po/gl.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 1.0.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-06-22 17:22+0200\n"
+"POT-Creation-Date: 2015-03-16 19:31+0100\n"
 "PO-Revision-Date: 2012-12-15 03:40+0200\n"
 "Last-Translator: Fran Dieguez <frandieguez@ubuntu.com>\n"
 "Language-Team: Galician <proxecto@trasno.net>\n"
@@ -84,11 +84,6 @@
 msgid "Missing element '%s' - check your GStreamer installation."
 msgstr "Falta o elemento «%s» - comprobe a instalación do GStreamer."
 
-#, c-format
-msgid "A %s plugin is required to play this stream, but not installed."
-msgstr ""
-"Precísase un engadido %s que non está instalado para reproducir este fluxo."
-
 msgid "Could not determine type of stream"
 msgstr "Non foi posíbel determinar o tipo de fluxo."
 
@@ -515,15 +510,20 @@
 msgid "Initial key in which the sound starts"
 msgstr ""
 
+msgid "Print version information and exit"
+msgstr ""
+
+msgid ""
+"Don't exit after showing the initial device list, but wait for devices to "
+"added/removed."
+msgstr ""
+
 msgid "Buffering..."
 msgstr ""
 
 msgid "Clock lost, selecting a new one\n"
 msgstr ""
 
-msgid "Print version information and exit"
-msgstr ""
-
 msgid "Video sink to use (default is autovideosink)"
 msgstr ""
 
@@ -545,6 +545,9 @@
 msgid "Playlist file containing input media files"
 msgstr ""
 
+msgid "Do not print any output (apart from errors)"
+msgstr ""
+
 #, c-format
 msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
 msgstr ""
@@ -552,6 +555,11 @@
 msgid "You must provide at least one filename or URI to play."
 msgstr ""
 
+#~ msgid "A %s plugin is required to play this stream, but not installed."
+#~ msgstr ""
+#~ "Precísase un engadido %s que non está instalado para reproducir este "
+#~ "fluxo."
+
 #~ msgid "Uncompressed %s YUV %s"
 #~ msgstr "%s YUV %s sen comprimir"
 
diff --git a/po/gst-plugins-base-1.0.pot b/po/gst-plugins-base-1.0.pot
index 2143e37..e249380 100644
--- a/po/gst-plugins-base-1.0.pot
+++ b/po/gst-plugins-base-1.0.pot
@@ -5,9 +5,9 @@
 #, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-base 1.3.3\n"
+"Project-Id-Version: gst-plugins-base 1.5.0.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-06-22 17:22+0200\n"
+"POT-Creation-Date: 2015-03-16 19:31+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"
@@ -16,57 +16,57 @@
 "Content-Type: text/plain; charset=CHARSET\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: ext/alsa/gstalsasink.c:573
+#: ext/alsa/gstalsasink.c:577
 msgid "Could not open device for playback in mono mode."
 msgstr ""
 
-#: ext/alsa/gstalsasink.c:575
+#: ext/alsa/gstalsasink.c:579
 msgid "Could not open device for playback in stereo mode."
 msgstr ""
 
-#: ext/alsa/gstalsasink.c:579
+#: ext/alsa/gstalsasink.c:583
 #, c-format
 msgid "Could not open device for playback in %d-channel mode."
 msgstr ""
 
-#: ext/alsa/gstalsasink.c:852
+#: ext/alsa/gstalsasink.c:856
 msgid ""
 "Could not open audio device for playback. Device is being used by another "
 "application."
 msgstr ""
 
-#: ext/alsa/gstalsasink.c:857
+#: ext/alsa/gstalsasink.c:861
 msgid "Could not open audio device for playback."
 msgstr ""
 
-#: ext/alsa/gstalsasink.c:1074
+#: ext/alsa/gstalsasink.c:1078
 msgid "Error outputting to audio device. The device has been disconnected."
 msgstr ""
 
-#: ext/alsa/gstalsasrc.c:436
+#: ext/alsa/gstalsasrc.c:440
 msgid "Could not open device for recording in mono mode."
 msgstr ""
 
-#: ext/alsa/gstalsasrc.c:438
+#: ext/alsa/gstalsasrc.c:442
 msgid "Could not open device for recording in stereo mode."
 msgstr ""
 
-#: ext/alsa/gstalsasrc.c:442
+#: ext/alsa/gstalsasrc.c:446
 #, c-format
 msgid "Could not open device for recording in %d-channel mode"
 msgstr ""
 
-#: ext/alsa/gstalsasrc.c:734
+#: ext/alsa/gstalsasrc.c:737
 msgid ""
 "Could not open audio device for recording. Device is being used by another "
 "application."
 msgstr ""
 
-#: ext/alsa/gstalsasrc.c:739
+#: ext/alsa/gstalsasrc.c:742
 msgid "Could not open audio device for recording."
 msgstr ""
 
-#: ext/alsa/gstalsasrc.c:993
+#: ext/alsa/gstalsasrc.c:997
 msgid "Error recording from audio device. The device has been disconnected."
 msgstr ""
 
@@ -82,124 +82,120 @@
 msgid "Could not read CD."
 msgstr ""
 
-#: ext/ogg/gstoggdemux.c:4564
+#: ext/ogg/gstoggdemux.c:4758
 msgid "Internal data stream error."
 msgstr ""
 
-#: gst/encoding/gstencodebin.c:1487 gst/playback/gstplaybin2.c:3099
-#: gst/playback/gstplaysink.c:1479 gst/playback/gstplaysink.c:1496
-#: gst/playback/gstplaysink.c:1838 gst/playback/gstplaysink.c:2418
-#: gst/playback/gstplaysink.c:2467 gst/playback/gstplaysink.c:2482
-#: gst/playback/gstplaysink.c:2507 gst/playback/gstplaysink.c:2539
-#: gst/playback/gstplaysink.c:2691 gst/playback/gstplaysink.c:3082
-#: gst/playback/gstplaysink.c:3091 gst/playback/gstplaysink.c:3100
-#: gst/playback/gstplaysink.c:3109 gst/playback/gstplaysink.c:4315
+#: gst/encoding/gstencodebin.c:1563 gst/playback/gstplaybin2.c:3211
+#: gst/playback/gstplaysink.c:1483 gst/playback/gstplaysink.c:1500
+#: gst/playback/gstplaysink.c:1834 gst/playback/gstplaysink.c:1863
+#: gst/playback/gstplaysink.c:2443 gst/playback/gstplaysink.c:2492
+#: gst/playback/gstplaysink.c:2507 gst/playback/gstplaysink.c:2532
+#: gst/playback/gstplaysink.c:2564 gst/playback/gstplaysink.c:2709
+#: gst/playback/gstplaysink.c:2737 gst/playback/gstplaysink.c:3130
+#: gst/playback/gstplaysink.c:3139 gst/playback/gstplaysink.c:3148
+#: gst/playback/gstplaysink.c:3157 gst/playback/gstplaysink.c:4363
 #: gst/playback/gstplaysinkconvertbin.c:97
 #: gst/playback/gstplaysinkconvertbin.c:117
-#: gst/playback/gsturidecodebin.c:1479
+#: gst/playback/gsturidecodebin.c:1491
 #, c-format
 msgid "Missing element '%s' - check your GStreamer installation."
 msgstr ""
 
-#: gst/playback/gstdecodebin2.c:1810
-#, c-format
-msgid "A %s plugin is required to play this stream, but not installed."
-msgstr ""
-
-#: gst/playback/gstdecodebin2.c:1817
+#: gst/playback/gstdecodebin2.c:1843
 msgid "Could not determine type of stream"
 msgstr ""
 
-#: gst/playback/gstdecodebin2.c:2514
+#: gst/playback/gstdecodebin2.c:2761
 msgid "This appears to be a text file"
 msgstr ""
 
-#: gst/playback/gstplaybin2.c:5161
+#: gst/playback/gstplaybin2.c:5292
 msgid "Could not create \"uridecodebin\" element."
 msgstr ""
 
-#: gst/playback/gstplaysink.c:1937
+#: gst/playback/gstplaysink.c:1962
 #, c-format
 msgid "Both autovideosink and %s elements are missing."
 msgstr ""
 
-#: gst/playback/gstplaysink.c:1941
+#: gst/playback/gstplaysink.c:1966
 msgid "The autovideosink element is missing."
 msgstr ""
 
-#: gst/playback/gstplaysink.c:1946
+#: gst/playback/gstplaysink.c:1971
 #, c-format
 msgid "Configured videosink %s is not working."
 msgstr ""
 
-#: gst/playback/gstplaysink.c:1950
+#: gst/playback/gstplaysink.c:1975
 #, c-format
 msgid "Both autovideosink and %s elements are not working."
 msgstr ""
 
-#: gst/playback/gstplaysink.c:1954
+#: gst/playback/gstplaysink.c:1979
 msgid "The autovideosink element is not working."
 msgstr ""
 
-#: gst/playback/gstplaysink.c:2455
+#: gst/playback/gstplaysink.c:2480
 msgid "Custom text sink element is not usable."
 msgstr ""
 
-#: gst/playback/gstplaysink.c:2816
+#: gst/playback/gstplaysink.c:2862
 msgid "No volume control found"
 msgstr ""
 
-#: gst/playback/gstplaysink.c:2846
+#: gst/playback/gstplaysink.c:2892
 #, c-format
 msgid "Both autoaudiosink and %s elements are missing."
 msgstr ""
 
-#: gst/playback/gstplaysink.c:2850
+#: gst/playback/gstplaysink.c:2896
 msgid "The autoaudiosink element is missing."
 msgstr ""
 
-#: gst/playback/gstplaysink.c:2855
+#: gst/playback/gstplaysink.c:2901
 #, c-format
 msgid "Configured audiosink %s is not working."
 msgstr ""
 
-#: gst/playback/gstplaysink.c:2859
+#: gst/playback/gstplaysink.c:2905
 #, c-format
 msgid "Both autoaudiosink and %s elements are not working."
 msgstr ""
 
-#: gst/playback/gstplaysink.c:2863
+#: gst/playback/gstplaysink.c:2909
 msgid "The autoaudiosink element is not working."
 msgstr ""
 
-#: gst/playback/gstplaysink.c:3185 gst/playback/gstplaysink.c:3190
+#: gst/playback/gstplaysink.c:3233 gst/playback/gstplaysink.c:3238
 msgid "Can't play a text file without video or visualizations."
 msgstr ""
 
-#: gst/playback/gsturidecodebin.c:939
+#: gst/playback/gsturidecodebin.c:940
 #, c-format
 msgid "No decoder available for type '%s'."
 msgstr ""
 
-#: gst/playback/gsturidecodebin.c:1385
+#: gst/playback/gsturidecodebin.c:1397
 msgid "No URI specified to play from."
 msgstr ""
 
-#: gst/playback/gsturidecodebin.c:1391
+#: gst/playback/gsturidecodebin.c:1403
 #, c-format
 msgid "Invalid URI \"%s\"."
 msgstr ""
 
-#: gst/playback/gsturidecodebin.c:1398
+#: gst/playback/gsturidecodebin.c:1410
 msgid "This stream type cannot be played yet."
 msgstr ""
 
-#: gst/playback/gsturidecodebin.c:1416
+#: gst/playback/gsturidecodebin.c:1428
 #, c-format
 msgid "No URI handler implemented for \"%s\"."
 msgstr ""
 
-#: gst/playback/gsturidecodebin.c:2285
+#: gst/playback/gsturidecodebin.c:2301
 msgid "Source element is invalid."
 msgstr ""
 
@@ -208,11 +204,11 @@
 msgid "Error while sending data to \"%s:%d\"."
 msgstr ""
 
-#: gst-libs/gst/audio/gstaudiobasesrc.c:860
+#: gst-libs/gst/audio/gstaudiobasesrc.c:863
 msgid "Can't record audio fast enough"
 msgstr ""
 
-#: gst-libs/gst/audio/gstaudiocdsrc.c:1654
+#: gst-libs/gst/audio/gstaudiocdsrc.c:1655
 msgid "This CD has no audio tracks"
 msgstr ""
 
@@ -233,188 +229,188 @@
 msgid "Apple Lossless Audio (ALAC)"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:144
+#: gst-libs/gst/pbutils/descriptions.c:146
 msgid "Free Lossless Audio Codec (FLAC)"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:174
-#: gst-libs/gst/pbutils/descriptions.c:175
+#: gst-libs/gst/pbutils/descriptions.c:176
+#: gst-libs/gst/pbutils/descriptions.c:177
 msgid "Lossless True Audio (TTA)"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:183
+#: gst-libs/gst/pbutils/descriptions.c:185
 msgid "Windows Media Speech"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:198
+#: gst-libs/gst/pbutils/descriptions.c:200
 msgid "CYUV Lossless"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:203
+#: gst-libs/gst/pbutils/descriptions.c:204
 msgid "FFMpeg v1"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:217
+#: gst-libs/gst/pbutils/descriptions.c:218
 msgid "Lossless MSZH"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:228
+#: gst-libs/gst/pbutils/descriptions.c:229
 msgid "Run-length encoding"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:274
+#: gst-libs/gst/pbutils/descriptions.c:275
 msgid "Timed Text"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:278
+#: gst-libs/gst/pbutils/descriptions.c:279
 msgid "Subtitle"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:279
+#: gst-libs/gst/pbutils/descriptions.c:280
 msgid "MPL2 subtitle format"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:280
+#: gst-libs/gst/pbutils/descriptions.c:281
 msgid "DKS subtitle format"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:281
+#: gst-libs/gst/pbutils/descriptions.c:282
 msgid "QTtext subtitle format"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:282
+#: gst-libs/gst/pbutils/descriptions.c:283
 msgid "Sami subtitle format"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:283
+#: gst-libs/gst/pbutils/descriptions.c:284
 msgid "TMPlayer subtitle format"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:287
+#: gst-libs/gst/pbutils/descriptions.c:288
 msgid "Kate subtitle format"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:352
-#: gst-libs/gst/pbutils/descriptions.c:355
-#: gst-libs/gst/pbutils/descriptions.c:405
+#: gst-libs/gst/pbutils/descriptions.c:450
+#: gst-libs/gst/pbutils/descriptions.c:453
+#: gst-libs/gst/pbutils/descriptions.c:503
 msgid "Uncompressed video"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:360
+#: gst-libs/gst/pbutils/descriptions.c:458
 msgid "Uncompressed gray"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:383
+#: gst-libs/gst/pbutils/descriptions.c:481
 #, c-format
 msgid "Uncompressed packed YUV %s"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:385
+#: gst-libs/gst/pbutils/descriptions.c:483
 #, c-format
 msgid "Uncompressed semi-planar YUV %s"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:387
+#: gst-libs/gst/pbutils/descriptions.c:485
 #, c-format
 msgid "Uncompressed planar YUV %s"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:398
+#: gst-libs/gst/pbutils/descriptions.c:496
 #, c-format
 msgid "Uncompressed palettized %d-bit %s"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:401
+#: gst-libs/gst/pbutils/descriptions.c:499
 #, c-format
 msgid "Uncompressed %d-bit %s"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:458
+#: gst-libs/gst/pbutils/descriptions.c:581
 #, c-format
 msgid "DivX MPEG-4 Version %d"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:693
+#: gst-libs/gst/pbutils/descriptions.c:828
 msgid "Uncompressed audio"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:699
+#: gst-libs/gst/pbutils/descriptions.c:834
 #, c-format
 msgid "Raw %d-bit %s audio"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:799
+#: gst-libs/gst/pbutils/descriptions.c:934
 msgid "Audio CD source"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:802
+#: gst-libs/gst/pbutils/descriptions.c:937
 msgid "DVD source"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:805
+#: gst-libs/gst/pbutils/descriptions.c:940
 msgid "Real Time Streaming Protocol (RTSP) source"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:809
+#: gst-libs/gst/pbutils/descriptions.c:944
 msgid "Microsoft Media Server (MMS) protocol source"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:817
+#: gst-libs/gst/pbutils/descriptions.c:952
 #, c-format
 msgid "%s protocol source"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:889
+#: gst-libs/gst/pbutils/descriptions.c:1024
 #, c-format
 msgid "%s video RTP depayloader"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:891
+#: gst-libs/gst/pbutils/descriptions.c:1026
 #, c-format
 msgid "%s audio RTP depayloader"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:893
+#: gst-libs/gst/pbutils/descriptions.c:1028
 #, c-format
 msgid "%s RTP depayloader"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:900
+#: gst-libs/gst/pbutils/descriptions.c:1035
 #, c-format
 msgid "%s demuxer"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:902
+#: gst-libs/gst/pbutils/descriptions.c:1037
 #, c-format
 msgid "%s decoder"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:940
+#: gst-libs/gst/pbutils/descriptions.c:1075
 #, c-format
 msgid "%s video RTP payloader"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:942
+#: gst-libs/gst/pbutils/descriptions.c:1077
 #, c-format
 msgid "%s audio RTP payloader"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:944
+#: gst-libs/gst/pbutils/descriptions.c:1079
 #, c-format
 msgid "%s RTP payloader"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:951
+#: gst-libs/gst/pbutils/descriptions.c:1086
 #, c-format
 msgid "%s muxer"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:953
+#: gst-libs/gst/pbutils/descriptions.c:1088
 #, c-format
 msgid "%s encoder"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:985
+#: gst-libs/gst/pbutils/descriptions.c:1120
 #, c-format
 msgid "GStreamer element %s"
 msgstr ""
@@ -664,51 +660,61 @@
 msgid "Initial key in which the sound starts"
 msgstr ""
 
-#: tools/gst-play.c:218
-msgid "Buffering..."
-msgstr ""
-
-#: tools/gst-play.c:239
-msgid "Clock lost, selecting a new one\n"
-msgstr ""
-
-#: tools/gst-play.c:664
+#: tools/gst-device-monitor.c:123 tools/gst-play.c:867
 msgid "Print version information and exit"
 msgstr ""
 
-#: tools/gst-play.c:666
+#: tools/gst-device-monitor.c:125
+msgid ""
+"Don't exit after showing the initial device list, but wait for devices to "
+"added/removed."
+msgstr ""
+
+#: tools/gst-play.c:268
+msgid "Buffering..."
+msgstr ""
+
+#: tools/gst-play.c:289
+msgid "Clock lost, selecting a new one\n"
+msgstr ""
+
+#: tools/gst-play.c:869
 msgid "Video sink to use (default is autovideosink)"
 msgstr ""
 
-#: tools/gst-play.c:668
+#: tools/gst-play.c:871
 msgid "Audio sink to use (default is autoaudiosink)"
 msgstr ""
 
-#: tools/gst-play.c:670
+#: tools/gst-play.c:873
 msgid "Enable gapless playback"
 msgstr ""
 
-#: tools/gst-play.c:672
+#: tools/gst-play.c:875
 msgid "Shuffle playlist"
 msgstr ""
 
-#: tools/gst-play.c:674
+#: tools/gst-play.c:877
 msgid "Interactive control via keyboard"
 msgstr ""
 
-#: tools/gst-play.c:676
+#: tools/gst-play.c:879
 msgid "Volume"
 msgstr ""
 
-#: tools/gst-play.c:678
+#: tools/gst-play.c:881
 msgid "Playlist file containing input media files"
 msgstr ""
 
-#: tools/gst-play.c:747
+#: tools/gst-play.c:883
+msgid "Do not print any output (apart from errors)"
+msgstr ""
+
+#: tools/gst-play.c:952
 #, c-format
 msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
 msgstr ""
 
-#: tools/gst-play.c:751
+#: tools/gst-play.c:956
 msgid "You must provide at least one filename or URI to play."
 msgstr ""
diff --git a/po/hr.gmo b/po/hr.gmo
index 4265ffa..e8ea3d7 100644
--- a/po/hr.gmo
+++ b/po/hr.gmo
Binary files differ
diff --git a/po/hr.po b/po/hr.po
index 893a953..5a1bc54 100644
--- a/po/hr.po
+++ b/po/hr.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-06-22 17:22+0200\n"
+"POT-Creation-Date: 2015-03-16 19:31+0100\n"
 "PO-Revision-Date: 2012-04-16 04:19+0200\n"
 "Last-Translator: Tomislav Krznar <tomislav.krznar@gmail.com>\n"
 "Language-Team: Croatian <lokalizacija@linux.hr>\n"
@@ -79,11 +79,6 @@
 msgid "Missing element '%s' - check your GStreamer installation."
 msgstr "Nedostaje element „%s” - provjerite vašu GStreamer instalaciju."
 
-#, c-format
-msgid "A %s plugin is required to play this stream, but not installed."
-msgstr ""
-"Potreban je priključak %s za reprodukciju ovog niza, ali nije instaliran."
-
 msgid "Could not determine type of stream"
 msgstr "Ne mogu odrediti vrstu niza"
 
@@ -515,15 +510,20 @@
 msgid "Initial key in which the sound starts"
 msgstr ""
 
+msgid "Print version information and exit"
+msgstr ""
+
+msgid ""
+"Don't exit after showing the initial device list, but wait for devices to "
+"added/removed."
+msgstr ""
+
 msgid "Buffering..."
 msgstr ""
 
 msgid "Clock lost, selecting a new one\n"
 msgstr ""
 
-msgid "Print version information and exit"
-msgstr ""
-
 msgid "Video sink to use (default is autovideosink)"
 msgstr ""
 
@@ -545,6 +545,9 @@
 msgid "Playlist file containing input media files"
 msgstr ""
 
+msgid "Do not print any output (apart from errors)"
+msgstr ""
+
 #, c-format
 msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
 msgstr ""
@@ -552,6 +555,10 @@
 msgid "You must provide at least one filename or URI to play."
 msgstr ""
 
+#~ msgid "A %s plugin is required to play this stream, but not installed."
+#~ msgstr ""
+#~ "Potreban je priključak %s za reprodukciju ovog niza, ali nije instaliran."
+
 #, fuzzy
 #~ msgid "Uncompressed %s YUV %s"
 #~ msgstr "Nekomprimirani YUV"
diff --git a/po/hu.gmo b/po/hu.gmo
index 1a87574..6e4e5b3 100644
--- a/po/hu.gmo
+++ b/po/hu.gmo
Binary files differ
diff --git a/po/hu.po b/po/hu.po
index 3411987..5d2b42b 100644
--- a/po/hu.po
+++ b/po/hu.po
@@ -9,7 +9,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 1.3.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-06-22 17:22+0200\n"
+"POT-Creation-Date: 2015-03-16 19:31+0100\n"
 "PO-Revision-Date: 2014-05-23 20:48+0200\n"
 "Last-Translator: Balázs Úr <urbalazs@gmail.com>\n"
 "Language-Team: Hungarian <translation-team-hu@lists.sourceforge.net>\n"
@@ -83,12 +83,6 @@
 msgid "Missing element '%s' - check your GStreamer installation."
 msgstr "A(z) „%s” elem hiányzik - ellenőrizze a Gstreamer telepítését."
 
-#, c-format
-msgid "A %s plugin is required to play this stream, but not installed."
-msgstr ""
-"Az adatfolyam lejátszásához egy %s bővítmény szükséges, de az nincs "
-"telepítve."
-
 msgid "Could not determine type of stream"
 msgstr "Nem határozható meg az adatfolyam típusa"
 
@@ -512,15 +506,20 @@
 msgid "Initial key in which the sound starts"
 msgstr "Kezdeti kulcs, amelyben a hang indul"
 
+msgid "Print version information and exit"
+msgstr "Verzióinformációk kiírása és kilépés"
+
+msgid ""
+"Don't exit after showing the initial device list, but wait for devices to "
+"added/removed."
+msgstr ""
+
 msgid "Buffering..."
 msgstr "Pufferelés…"
 
 msgid "Clock lost, selecting a new one\n"
 msgstr "Óra elveszítve, egy új kiválasztása\n"
 
-msgid "Print version information and exit"
-msgstr "Verzióinformációk kiírása és kilépés"
-
 msgid "Video sink to use (default is autovideosink)"
 msgstr "Használandó videosüllyesztés (az alapértelmezett az autovideosink)"
 
@@ -542,6 +541,9 @@
 msgid "Playlist file containing input media files"
 msgstr "Bemeneti médiafájlokat tartalmazó lejátszólista fájl"
 
+msgid "Do not print any output (apart from errors)"
+msgstr ""
+
 #, c-format
 msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
 msgstr "Használat: %s FÁJL1|URI1 [FÁJL2|URI2] [FÁJL3|URI3] …"
@@ -549,6 +551,11 @@
 msgid "You must provide at least one filename or URI to play."
 msgstr "Meg kell adnia legalább egy fájlnevet vagy URI-t a lejátszáshoz."
 
+#~ msgid "A %s plugin is required to play this stream, but not installed."
+#~ msgstr ""
+#~ "Az adatfolyam lejátszásához egy %s bővítmény szükséges, de az nincs "
+#~ "telepítve."
+
 #~ msgid "Uncompressed %s YUV %s"
 #~ msgstr "Tömörítetlen %s YUV %s"
 
diff --git a/po/id.gmo b/po/id.gmo
index 2da1c27..e3b32b8 100644
--- a/po/id.gmo
+++ b/po/id.gmo
Binary files differ
diff --git a/po/id.po b/po/id.po
index a623e96..d452ce0 100644
--- a/po/id.po
+++ b/po/id.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 1.3.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-06-22 17:22+0200\n"
+"POT-Creation-Date: 2015-03-16 19:31+0100\n"
 "PO-Revision-Date: 2014-06-01 09:55+0700\n"
 "Last-Translator: Andhika Padmawan <andhika.padmawan@gmail.com>\n"
 "Language-Team: Indonesian <translation-team-id@lists.sourceforge.net>\n"
@@ -78,10 +78,6 @@
 msgid "Missing element '%s' - check your GStreamer installation."
 msgstr "Elemen '%s' hilang - cek instalasi GStreamer anda."
 
-#, c-format
-msgid "A %s plugin is required to play this stream, but not installed."
-msgstr "Plugin %s dibutuhkan untuk memutar arus ini, tapi tidak diinstal."
-
 msgid "Could not determine type of stream"
 msgstr "Tak dapat menentukan tipe arus"
 
@@ -507,15 +503,20 @@
 msgid "Initial key in which the sound starts"
 msgstr "Kunci awal dimana suara dimulai"
 
+msgid "Print version information and exit"
+msgstr "Cetak informasi versi lalu keluar"
+
+msgid ""
+"Don't exit after showing the initial device list, but wait for devices to "
+"added/removed."
+msgstr ""
+
 msgid "Buffering..."
 msgstr "Menyangga..."
 
 msgid "Clock lost, selecting a new one\n"
 msgstr "Jam hilang, pilih yang baru\n"
 
-msgid "Print version information and exit"
-msgstr "Cetak informasi versi lalu keluar"
-
 msgid "Video sink to use (default is autovideosink)"
 msgstr "Sink video yang digunakan (standar adalah autovideosink)"
 
@@ -537,6 +538,9 @@
 msgid "Playlist file containing input media files"
 msgstr "Berkas senarai putar berisi masukan berkas media"
 
+msgid "Do not print any output (apart from errors)"
+msgstr ""
+
 #, c-format
 msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
 msgstr "Penggunaan: %s BERKAS1|URI1 [BERKAS2|URI2] [BERKAS3|URI3] ..."
@@ -544,3 +548,6 @@
 msgid "You must provide at least one filename or URI to play."
 msgstr ""
 "Anda harus menyediakan setidaknya satu nama berkas atau URI untuk diputar."
+
+#~ msgid "A %s plugin is required to play this stream, but not installed."
+#~ msgstr "Plugin %s dibutuhkan untuk memutar arus ini, tapi tidak diinstal."
diff --git a/po/it.gmo b/po/it.gmo
index a3783bd..afcf907 100644
--- a/po/it.gmo
+++ b/po/it.gmo
Binary files differ
diff --git a/po/it.po b/po/it.po
index 8e9ec7c..0373ed7 100644
--- a/po/it.po
+++ b/po/it.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 0.10.28.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-06-22 17:22+0200\n"
+"POT-Creation-Date: 2015-03-16 19:31+0100\n"
 "PO-Revision-Date: 2010-04-28 14:27+0200\n"
 "Last-Translator: Luca Ferretti <elle.uca@infinito.it>\n"
 "Language-Team: Italian <tp@lists.linux.it>\n"
@@ -83,12 +83,6 @@
 "Risulta mancante l'elemento «%s» - verificare la propria installazione di "
 "GStreamer."
 
-#, c-format
-msgid "A %s plugin is required to play this stream, but not installed."
-msgstr ""
-"Per riprodurre questo stream è richiesto un plugin %s, che però non risulta "
-"installato. "
-
 msgid "Could not determine type of stream"
 msgstr "Impossibile determinare il tipo di stream"
 
@@ -548,15 +542,20 @@
 msgid "Initial key in which the sound starts"
 msgstr ""
 
+msgid "Print version information and exit"
+msgstr ""
+
+msgid ""
+"Don't exit after showing the initial device list, but wait for devices to "
+"added/removed."
+msgstr ""
+
 msgid "Buffering..."
 msgstr ""
 
 msgid "Clock lost, selecting a new one\n"
 msgstr ""
 
-msgid "Print version information and exit"
-msgstr ""
-
 msgid "Video sink to use (default is autovideosink)"
 msgstr ""
 
@@ -578,6 +577,9 @@
 msgid "Playlist file containing input media files"
 msgstr ""
 
+msgid "Do not print any output (apart from errors)"
+msgstr ""
+
 #, c-format
 msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
 msgstr ""
@@ -585,6 +587,11 @@
 msgid "You must provide at least one filename or URI to play."
 msgstr ""
 
+#~ msgid "A %s plugin is required to play this stream, but not installed."
+#~ msgstr ""
+#~ "Per riprodurre questo stream è richiesto un plugin %s, che però non "
+#~ "risulta installato. "
+
 #, fuzzy
 #~ msgid "Uncompressed %s YUV %s"
 #~ msgstr "YUV non compresso"
diff --git a/po/ja.gmo b/po/ja.gmo
index 58d8da47..157654b 100644
--- a/po/ja.gmo
+++ b/po/ja.gmo
Binary files differ
diff --git a/po/ja.po b/po/ja.po
index 67fd8b5..d9921eb 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 0.10.30.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-06-22 17:22+0200\n"
+"POT-Creation-Date: 2015-03-16 19:31+0100\n"
 "PO-Revision-Date: 2010-10-25 10:27+0900\n"
 "Last-Translator: Makoto Kato <makoto.kt@gmail.com>\n"
 "Language-Team: Japanese <translation-team-ja@lists.sourceforge.net>\n"
@@ -81,12 +81,6 @@
 "エレメント '%s' が見つかりません - GStreamer のインストールが失敗している可能"
 "性があります"
 
-#, c-format
-msgid "A %s plugin is required to play this stream, but not installed."
-msgstr ""
-"%s プラグインはこのストリームを再生するのに必要ですが、インストールされていま"
-"せん"
-
 msgid "Could not determine type of stream"
 msgstr "ストリームの種類を判別できませんでした"
 
@@ -519,15 +513,20 @@
 msgid "Initial key in which the sound starts"
 msgstr ""
 
+msgid "Print version information and exit"
+msgstr ""
+
+msgid ""
+"Don't exit after showing the initial device list, but wait for devices to "
+"added/removed."
+msgstr ""
+
 msgid "Buffering..."
 msgstr ""
 
 msgid "Clock lost, selecting a new one\n"
 msgstr ""
 
-msgid "Print version information and exit"
-msgstr ""
-
 msgid "Video sink to use (default is autovideosink)"
 msgstr ""
 
@@ -549,6 +548,9 @@
 msgid "Playlist file containing input media files"
 msgstr ""
 
+msgid "Do not print any output (apart from errors)"
+msgstr ""
+
 #, c-format
 msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
 msgstr ""
@@ -556,6 +558,11 @@
 msgid "You must provide at least one filename or URI to play."
 msgstr ""
 
+#~ msgid "A %s plugin is required to play this stream, but not installed."
+#~ msgstr ""
+#~ "%s プラグインはこのストリームを再生するのに必要ですが、インストールされて"
+#~ "いません"
+
 #, fuzzy
 #~ msgid "Uncompressed %s YUV %s"
 #~ msgstr "非圧縮 YUV"
diff --git a/po/lt.gmo b/po/lt.gmo
index 9ea62f3..75130ae 100644
--- a/po/lt.gmo
+++ b/po/lt.gmo
Binary files differ
diff --git a/po/lt.po b/po/lt.po
index 8141d4b..0bda9e9 100644
--- a/po/lt.po
+++ b/po/lt.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base-0.10.15.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-06-22 17:22+0200\n"
+"POT-Creation-Date: 2015-03-16 19:31+0100\n"
 "PO-Revision-Date: 2008-03-07 23:43+0200\n"
 "Last-Translator: Gintautas Miliauskas <gintas@akl.lt>\n"
 "Language-Team: Lithuanian <komp_lt@konferencijos.lt>\n"
@@ -81,10 +81,6 @@
 msgid "Missing element '%s' - check your GStreamer installation."
 msgstr "Trūksta elemento „%s“ - patikrinkite GStreamer įdiegimą."
 
-#, c-format
-msgid "A %s plugin is required to play this stream, but not installed."
-msgstr "Šiam srautui groti reikalingas %s įskiepis, bet jis nėra įdiegtas."
-
 #, fuzzy
 msgid "Could not determine type of stream"
 msgstr "Nepavyko sukurti „decodebin“ elemento."
@@ -521,15 +517,20 @@
 msgid "Initial key in which the sound starts"
 msgstr ""
 
+msgid "Print version information and exit"
+msgstr ""
+
+msgid ""
+"Don't exit after showing the initial device list, but wait for devices to "
+"added/removed."
+msgstr ""
+
 msgid "Buffering..."
 msgstr ""
 
 msgid "Clock lost, selecting a new one\n"
 msgstr ""
 
-msgid "Print version information and exit"
-msgstr ""
-
 msgid "Video sink to use (default is autovideosink)"
 msgstr ""
 
@@ -551,6 +552,9 @@
 msgid "Playlist file containing input media files"
 msgstr ""
 
+msgid "Do not print any output (apart from errors)"
+msgstr ""
+
 #, c-format
 msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
 msgstr ""
@@ -558,6 +562,9 @@
 msgid "You must provide at least one filename or URI to play."
 msgstr ""
 
+#~ msgid "A %s plugin is required to play this stream, but not installed."
+#~ msgstr "Šiam srautui groti reikalingas %s įskiepis, bet jis nėra įdiegtas."
+
 #, fuzzy
 #~ msgid "Uncompressed %s YUV %s"
 #~ msgstr "Nekompresuotas YUV"
diff --git a/po/lv.gmo b/po/lv.gmo
index 217a978..8d081dc 100644
--- a/po/lv.gmo
+++ b/po/lv.gmo
Binary files differ
diff --git a/po/lv.po b/po/lv.po
index 1255f96..91d4535 100644
--- a/po/lv.po
+++ b/po/lv.po
@@ -9,7 +9,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 1.2.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-06-22 17:22+0200\n"
+"POT-Creation-Date: 2015-03-16 19:31+0100\n"
 "PO-Revision-Date: 2014-04-20 16:15+0300\n"
 "Last-Translator: Rihards Prieditis <rprieditis@gmail.com>\n"
 "Language-Team: Latvian <translation-team-lv@lists.sourceforge.net>\n"
@@ -85,11 +85,6 @@
 msgid "Missing element '%s' - check your GStreamer installation."
 msgstr "Trūkst elements “%s” - pārbaudiet savu GStreamer instalāciju."
 
-#, c-format
-msgid "A %s plugin is required to play this stream, but not installed."
-msgstr ""
-"Nepieciešamas %s spraudnis, lai atskaņotu šo plūsmu, bet tas nav instalēts."
-
 msgid "Could not determine type of stream"
 msgstr "Nevarēja noteikt straumes tipu"
 
@@ -513,15 +508,20 @@
 msgid "Initial key in which the sound starts"
 msgstr "Sākotnējais kadrs, kurā sākas mūzika"
 
+msgid "Print version information and exit"
+msgstr "Parādīt informāciju par versiju un iziet"
+
+msgid ""
+"Don't exit after showing the initial device list, but wait for devices to "
+"added/removed."
+msgstr ""
+
 msgid "Buffering..."
 msgstr "Buferē..."
 
 msgid "Clock lost, selecting a new one\n"
 msgstr ""
 
-msgid "Print version information and exit"
-msgstr "Parādīt informāciju par versiju un iziet"
-
 msgid "Video sink to use (default is autovideosink)"
 msgstr "Izmantojamais video uztvērējs (pēc noklusējuma autovideosink)"
 
@@ -543,6 +543,9 @@
 msgid "Playlist file containing input media files"
 msgstr ""
 
+msgid "Do not print any output (apart from errors)"
+msgstr ""
+
 #, c-format
 msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
 msgstr "Lietojums: %s DATNE1|URI1 [DATNE2|URI2] [DATNE3|URI3] ..."
@@ -550,6 +553,11 @@
 msgid "You must provide at least one filename or URI to play."
 msgstr "Jums jānorāda vismaz viens datnes nosaukums vai atskaņojamais URI."
 
+#~ msgid "A %s plugin is required to play this stream, but not installed."
+#~ msgstr ""
+#~ "Nepieciešamas %s spraudnis, lai atskaņotu šo plūsmu, bet tas nav "
+#~ "instalēts."
+
 #~ msgid "Master"
 #~ msgstr "Galvenais"
 
diff --git a/po/nb.gmo b/po/nb.gmo
index b0d2714..c30131a 100644
--- a/po/nb.gmo
+++ b/po/nb.gmo
Binary files differ
diff --git a/po/nb.po b/po/nb.po
index 74de258..4a35835 100644
--- a/po/nb.po
+++ b/po/nb.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 1.2.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-06-22 17:22+0200\n"
+"POT-Creation-Date: 2015-03-16 19:31+0100\n"
 "PO-Revision-Date: 2014-01-22 17:42+0100\n"
 "Last-Translator: Johnny A. Solbu <johnny@solbu.net>\n"
 "Language-Team: Norwegian Bokmaal <i18n-nb@lister.ping.uio.no>\n"
@@ -80,12 +80,6 @@
 msgid "Missing element '%s' - check your GStreamer installation."
 msgstr "Mangler elementet «%s» - kontroller GStreamer-installasjonen."
 
-#, c-format
-msgid "A %s plugin is required to play this stream, but not installed."
-msgstr ""
-"Et %s-tillegg kreves for å spille av denne strømmen, men det er ikke "
-"installert."
-
 msgid "Could not determine type of stream"
 msgstr "Kunne ikke bestemme type strøm."
 
@@ -510,15 +504,20 @@
 msgid "Initial key in which the sound starts"
 msgstr "Innledende tast der lyden begynner"
 
+msgid "Print version information and exit"
+msgstr "Skriv ut versjonsinformasjon og avslutt"
+
+msgid ""
+"Don't exit after showing the initial device list, but wait for devices to "
+"added/removed."
+msgstr ""
+
 msgid "Buffering..."
 msgstr "Bufrer ..."
 
 msgid "Clock lost, selecting a new one\n"
 msgstr ""
 
-msgid "Print version information and exit"
-msgstr "Skriv ut versjonsinformasjon og avslutt"
-
 msgid "Video sink to use (default is autovideosink)"
 msgstr "Video-sink som skal brukes (standard er autovideosink)"
 
@@ -540,6 +539,9 @@
 msgid "Playlist file containing input media files"
 msgstr ""
 
+msgid "Do not print any output (apart from errors)"
+msgstr ""
+
 #, c-format
 msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
 msgstr "Bruk: %s FIL1|URI1 [FILE|URI2] [FILE|URI3] ..."
@@ -547,6 +549,11 @@
 msgid "You must provide at least one filename or URI to play."
 msgstr "Du må ha med minst ett filnavn eller nettadresse å spille."
 
+#~ msgid "A %s plugin is required to play this stream, but not installed."
+#~ msgstr ""
+#~ "Et %s-tillegg kreves for å spille av denne strømmen, men det er ikke "
+#~ "installert."
+
 #~ msgid "Uncompressed %s YUV %s"
 #~ msgstr "Ukomprimert %s YUV %s"
 
diff --git a/po/nl.gmo b/po/nl.gmo
index a6a5596..781c9d7 100644
--- a/po/nl.gmo
+++ b/po/nl.gmo
Binary files differ
diff --git a/po/nl.po b/po/nl.po
index 3bde54d..b960053 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 1.3.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-06-22 17:22+0200\n"
+"POT-Creation-Date: 2015-03-16 19:31+0100\n"
 "PO-Revision-Date: 2014-05-22 00:34+0200\n"
 "Last-Translator: Freek de Kruijf <f.de.kruijf@gmail.com>\n"
 "Language-Team: Dutch <vertaling@vrijschrift.org>\n"
@@ -81,12 +81,6 @@
 msgid "Missing element '%s' - check your GStreamer installation."
 msgstr "Ontbrekend element '%s' - controleer de instalatie van uw GStreamer."
 
-#, c-format
-msgid "A %s plugin is required to play this stream, but not installed."
-msgstr ""
-"Een %s plugin is vereist voor het afspelen van deze gegevens, echter deze is "
-"niet geïnstalleerd."
-
 msgid "Could not determine type of stream"
 msgstr "Kan het type stream niet bepalen"
 
@@ -519,15 +513,20 @@
 msgid "Initial key in which the sound starts"
 msgstr "Initiële sleutel waarin het geluid begint"
 
+msgid "Print version information and exit"
+msgstr "Versie-informatie afdrukken en sluiten"
+
+msgid ""
+"Don't exit after showing the initial device list, but wait for devices to "
+"added/removed."
+msgstr ""
+
 msgid "Buffering..."
 msgstr "In buffer opslaan..."
 
 msgid "Clock lost, selecting a new one\n"
 msgstr "Klok verloren, een nieuwe wordt geselecteerd\n"
 
-msgid "Print version information and exit"
-msgstr "Versie-informatie afdrukken en sluiten"
-
 msgid "Video sink to use (default is autovideosink)"
 msgstr "Te gebruiken video-sink (standaard is autovideosink)"
 
@@ -549,6 +548,9 @@
 msgid "Playlist file containing input media files"
 msgstr "Afspeellijstbestand met mediabestanden voor invoer"
 
+msgid "Do not print any output (apart from errors)"
+msgstr ""
+
 #, c-format
 msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
 msgstr "Gebruik: %s BESTAND1|URI1 [BESTAND2|URI2] [BESTAND3|URI3] ..."
@@ -556,6 +558,11 @@
 msgid "You must provide at least one filename or URI to play."
 msgstr "U moet minstens één bestandsnaam of URI leveren om af te spelen."
 
+#~ msgid "A %s plugin is required to play this stream, but not installed."
+#~ msgstr ""
+#~ "Een %s plugin is vereist voor het afspelen van deze gegevens, echter deze "
+#~ "is niet geïnstalleerd."
+
 #~ msgid "Uncompressed %s YUV %s"
 #~ msgstr "Niet-gecomprimeerd %s YUV %s"
 
diff --git a/po/or.gmo b/po/or.gmo
index 017b457..a269399 100644
--- a/po/or.gmo
+++ b/po/or.gmo
Binary files differ
diff --git a/po/or.po b/po/or.po
index b4f6c6e..2e73694 100644
--- a/po/or.po
+++ b/po/or.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-0.8.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-06-22 17:22+0200\n"
+"POT-Creation-Date: 2015-03-16 19:31+0100\n"
 "PO-Revision-Date: 2004-09-27 13:32+0530\n"
 "Last-Translator: Gora Mohanty <gora_mohanty@yahoo.co.in>\n"
 "Language-Team: Oriya <gora_mohanty@yahoo.co.in>\n"
@@ -84,10 +84,6 @@
 msgid "Missing element '%s' - check your GStreamer installation."
 msgstr ""
 
-#, c-format
-msgid "A %s plugin is required to play this stream, but not installed."
-msgstr ""
-
 #, fuzzy
 msgid "Could not determine type of stream"
 msgstr "\"%s\" ଫାଇଲ ଲେଖିହେଲା ନାହିଁ."
@@ -513,15 +509,20 @@
 msgid "Initial key in which the sound starts"
 msgstr ""
 
+msgid "Print version information and exit"
+msgstr ""
+
+msgid ""
+"Don't exit after showing the initial device list, but wait for devices to "
+"added/removed."
+msgstr ""
+
 msgid "Buffering..."
 msgstr ""
 
 msgid "Clock lost, selecting a new one\n"
 msgstr ""
 
-msgid "Print version information and exit"
-msgstr ""
-
 msgid "Video sink to use (default is autovideosink)"
 msgstr ""
 
@@ -543,6 +544,9 @@
 msgid "Playlist file containing input media files"
 msgstr ""
 
+msgid "Do not print any output (apart from errors)"
+msgstr ""
+
 #, c-format
 msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
 msgstr ""
diff --git a/po/pl.gmo b/po/pl.gmo
index 5dd815a..2bbbb25 100644
--- a/po/pl.gmo
+++ b/po/pl.gmo
Binary files differ
diff --git a/po/pl.po b/po/pl.po
index 5ca496a..2a5963e 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 1.3.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-06-22 17:22+0200\n"
+"POT-Creation-Date: 2015-03-16 19:31+0100\n"
 "PO-Revision-Date: 2014-05-22 18:36+0200\n"
 "Last-Translator: Jakub Bogusz <qboosh@pld-linux.org>\n"
 "Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
@@ -88,12 +88,6 @@
 msgid "Missing element '%s' - check your GStreamer installation."
 msgstr "Brak elementu '%s' - proszę sprawdzić instalację GStreamera."
 
-#, c-format
-msgid "A %s plugin is required to play this stream, but not installed."
-msgstr ""
-"Wtyczka %s jest wymagana do otworzenia tego strumienia, ale nie jest "
-"zainstalowana."
-
 msgid "Could not determine type of stream"
 msgstr "Nie udało się określić typu strumienia"
 
@@ -517,15 +511,20 @@
 msgid "Initial key in which the sound starts"
 msgstr "Początkowy klucz, w którym zaczyna się dźwięk"
 
+msgid "Print version information and exit"
+msgstr "Wypisanie informacji o wersji i zakończenie"
+
+msgid ""
+"Don't exit after showing the initial device list, but wait for devices to "
+"added/removed."
+msgstr ""
+
 msgid "Buffering..."
 msgstr "Buforowanie..."
 
 msgid "Clock lost, selecting a new one\n"
 msgstr "Utracono zegar, wybieranie nowego\n"
 
-msgid "Print version information and exit"
-msgstr "Wypisanie informacji o wersji i zakończenie"
-
 msgid "Video sink to use (default is autovideosink)"
 msgstr "Element pochłaniający obraz (domyślny to autovideosink)"
 
@@ -547,9 +546,17 @@
 msgid "Playlist file containing input media files"
 msgstr "Plik listy odtwarzania zawierający wejściowe pliki multimedialne"
 
+msgid "Do not print any output (apart from errors)"
+msgstr ""
+
 #, c-format
 msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
 msgstr "Składnia: %s PLIK1|URI1 [PLIK2|URI2] [PLIK3|URI3] ..."
 
 msgid "You must provide at least one filename or URI to play."
 msgstr "Trzeba podać przynajmniej jedną nazwę pliku lub URI do odtworzenia."
+
+#~ msgid "A %s plugin is required to play this stream, but not installed."
+#~ msgstr ""
+#~ "Wtyczka %s jest wymagana do otworzenia tego strumienia, ale nie jest "
+#~ "zainstalowana."
diff --git a/po/pt_BR.gmo b/po/pt_BR.gmo
index 91a4ee0..0cd0b41 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 17e6b7e..691f62c 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -11,7 +11,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base-1.2.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-06-22 17:22+0200\n"
+"POT-Creation-Date: 2015-03-16 19:31+0100\n"
 "PO-Revision-Date: 2013-12-29 17:33-0300\n"
 "Last-Translator: Fabrício Godoy <skarllot@gmail.com>\n"
 "Language-Team: Brazilian Portuguese <ldpbr-translation@lists.sourceforge."
@@ -87,11 +87,6 @@
 msgstr ""
 "O elemento \"%s\" está faltando, verifique a instalação do seu GStreamer."
 
-#, c-format
-msgid "A %s plugin is required to play this stream, but not installed."
-msgstr ""
-"O plug-in %s é necessário para reproduzir este fluxo, mas não está instalado."
-
 msgid "Could not determine type of stream"
 msgstr "Não foi possível determinar o tipo de fluxo"
 
@@ -523,15 +518,20 @@
 msgid "Initial key in which the sound starts"
 msgstr "Nota ou acorde inicial da música"
 
+msgid "Print version information and exit"
+msgstr "Exibe informações de versão e sai"
+
+msgid ""
+"Don't exit after showing the initial device list, but wait for devices to "
+"added/removed."
+msgstr ""
+
 msgid "Buffering..."
 msgstr "Preenchendo buffer..."
 
 msgid "Clock lost, selecting a new one\n"
 msgstr ""
 
-msgid "Print version information and exit"
-msgstr "Exibe informações de versão e sai"
-
 msgid "Video sink to use (default is autovideosink)"
 msgstr ""
 "Elemento consumidor de vídeo utilizado (predefinido para autovideosink)"
@@ -555,6 +555,9 @@
 msgid "Playlist file containing input media files"
 msgstr ""
 
+msgid "Do not print any output (apart from errors)"
+msgstr ""
+
 #, c-format
 msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
 msgstr "Uso: %s ARQ1|URI1 [ARQ2|URI2] [ARQ3|URI3] ..."
@@ -562,6 +565,11 @@
 msgid "You must provide at least one filename or URI to play."
 msgstr "Você deve fornecer ao menos um nome de arquivo ou URI para reproduzir."
 
+#~ msgid "A %s plugin is required to play this stream, but not installed."
+#~ msgstr ""
+#~ "O plug-in %s é necessário para reproduzir este fluxo, mas não está "
+#~ "instalado."
+
 #~ msgid "Uncompressed %s YUV %s"
 #~ msgstr "%2$s YUV %1$s sem compressão"
 
diff --git a/po/ro.gmo b/po/ro.gmo
index abb2fd3..b86001e 100644
--- a/po/ro.gmo
+++ b/po/ro.gmo
Binary files differ
diff --git a/po/ro.po b/po/ro.po
index 6f1ce6d..0cd56e7 100644
--- a/po/ro.po
+++ b/po/ro.po
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 0.10.29.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-06-22 17:22+0200\n"
+"POT-Creation-Date: 2015-03-16 19:31+0100\n"
 "PO-Revision-Date: 2010-08-16 01:21+0300\n"
 "Last-Translator: Lucian Adrian Grijincu <lucian.grijincu@gmail.com>\n"
 "Language-Team: Romanian <translation-team-ro@lists.sourceforge.net>\n"
@@ -80,12 +80,6 @@
 msgid "Missing element '%s' - check your GStreamer installation."
 msgstr "Element %s lipsă - verificați instalarea GStreamer."
 
-#, c-format
-msgid "A %s plugin is required to play this stream, but not installed."
-msgstr ""
-"Un modul de extensie %s este necesar pentru a reda acest flux, dar acesta nu "
-"este instalat."
-
 msgid "Could not determine type of stream"
 msgstr "Nu s-a putut determina tipul fluxului"
 
@@ -516,15 +510,20 @@
 msgid "Initial key in which the sound starts"
 msgstr ""
 
+msgid "Print version information and exit"
+msgstr ""
+
+msgid ""
+"Don't exit after showing the initial device list, but wait for devices to "
+"added/removed."
+msgstr ""
+
 msgid "Buffering..."
 msgstr ""
 
 msgid "Clock lost, selecting a new one\n"
 msgstr ""
 
-msgid "Print version information and exit"
-msgstr ""
-
 msgid "Video sink to use (default is autovideosink)"
 msgstr ""
 
@@ -546,6 +545,9 @@
 msgid "Playlist file containing input media files"
 msgstr ""
 
+msgid "Do not print any output (apart from errors)"
+msgstr ""
+
 #, c-format
 msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
 msgstr ""
@@ -553,6 +555,11 @@
 msgid "You must provide at least one filename or URI to play."
 msgstr ""
 
+#~ msgid "A %s plugin is required to play this stream, but not installed."
+#~ msgstr ""
+#~ "Un modul de extensie %s este necesar pentru a reda acest flux, dar acesta "
+#~ "nu este instalat."
+
 #, fuzzy
 #~ msgid "Uncompressed %s YUV %s"
 #~ msgstr "YUV necomprimat"
diff --git a/po/ru.gmo b/po/ru.gmo
index ba652da..f48b50e 100644
--- a/po/ru.gmo
+++ b/po/ru.gmo
Binary files differ
diff --git a/po/ru.po b/po/ru.po
index 26fa6cc..d3c39ea 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 1.3.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-06-22 17:22+0200\n"
+"POT-Creation-Date: 2015-03-16 19:31+0100\n"
 "PO-Revision-Date: 2014-05-22 20:01+0400\n"
 "Last-Translator: Yuri Kozlov <yuray@komyakino.ru>\n"
 "Language-Team: Russian <gnu@mx.ru>\n"
@@ -83,11 +83,6 @@
 msgid "Missing element '%s' - check your GStreamer installation."
 msgstr "Отсутствует элемент «%s» — проверьте правильность установки GStreamer."
 
-#, c-format
-msgid "A %s plugin is required to play this stream, but not installed."
-msgstr ""
-"Для воспроизведения этого потока требуется модуль %s, но он не установлен."
-
 msgid "Could not determine type of stream"
 msgstr "Не удалось определить тип потока"
 
@@ -514,15 +509,20 @@
 msgid "Initial key in which the sound starts"
 msgstr "Начальный ключ, с которого начинается звук"
 
+msgid "Print version information and exit"
+msgstr "Вывод информации о версии и выход из программы"
+
+msgid ""
+"Don't exit after showing the initial device list, but wait for devices to "
+"added/removed."
+msgstr ""
+
 msgid "Buffering..."
 msgstr "Буферизация…"
 
 msgid "Clock lost, selecting a new one\n"
 msgstr "Часы потеряны, выбираем новые\n"
 
-msgid "Print version information and exit"
-msgstr "Вывод информации о версии и выход из программы"
-
 msgid "Video sink to use (default is autovideosink)"
 msgstr "Используемый приёмник видео (по умолчанию autovideosink)"
 
@@ -544,6 +544,9 @@
 msgid "Playlist file containing input media files"
 msgstr "Файл списка воспроизведения с входными медиа-файлами"
 
+msgid "Do not print any output (apart from errors)"
+msgstr ""
+
 #, c-format
 msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
 msgstr "Использование: %s ФАЙЛ1|URI1 [ФАЙЛ2|URI2] [ФАЙЛ3|URI3] …"
@@ -551,6 +554,10 @@
 msgid "You must provide at least one filename or URI to play."
 msgstr "Вы должны указать не менее одного имени файла или URI."
 
+#~ msgid "A %s plugin is required to play this stream, but not installed."
+#~ msgstr ""
+#~ "Для воспроизведения этого потока требуется модуль %s, но он не установлен."
+
 #~ msgid "Uncompressed %s YUV %s"
 #~ msgstr "Несжатый %s YUV %s"
 
diff --git a/po/sk.gmo b/po/sk.gmo
index c79e460..b53de04 100644
--- a/po/sk.gmo
+++ b/po/sk.gmo
Binary files differ
diff --git a/po/sk.po b/po/sk.po
index 2640524..1697ce3 100644
--- a/po/sk.po
+++ b/po/sk.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 1.2.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-06-22 17:22+0200\n"
+"POT-Creation-Date: 2015-03-16 19:31+0100\n"
 "PO-Revision-Date: 2014-01-30 10:57+0100\n"
 "Last-Translator: Peter Tuharsky <tuharsky@misbb.sk>\n"
 "Language-Team: Slovak <sk-i18n@lists.linux.sk>\n"
@@ -82,12 +82,6 @@
 msgid "Missing element '%s' - check your GStreamer installation."
 msgstr "Chýa prvok '%s' - skontrolujte svoju inštaláciu GStreamer."
 
-#, c-format
-msgid "A %s plugin is required to play this stream, but not installed."
-msgstr ""
-"Na prehratie tohto prúdu údajov je vyžadovaný zásuvný modul %s, ktorý nie je "
-"nainštalovaný."
-
 msgid "Could not determine type of stream"
 msgstr "Nepodarilo sa zistiť typ prúdu údajov"
 
@@ -511,15 +505,20 @@
 msgid "Initial key in which the sound starts"
 msgstr "Úvodný kľúč v ktorom zvuk začína"
 
+msgid "Print version information and exit"
+msgstr "Zobraziť informáciu o verzii a skončiť"
+
+msgid ""
+"Don't exit after showing the initial device list, but wait for devices to "
+"added/removed."
+msgstr ""
+
 msgid "Buffering..."
 msgstr "Napĺňam vyrovnávaciu pamäť..."
 
 msgid "Clock lost, selecting a new one\n"
 msgstr ""
 
-msgid "Print version information and exit"
-msgstr "Zobraziť informáciu o verzii a skončiť"
-
 msgid "Video sink to use (default is autovideosink)"
 msgstr ""
 
@@ -541,6 +540,9 @@
 msgid "Playlist file containing input media files"
 msgstr ""
 
+msgid "Do not print any output (apart from errors)"
+msgstr ""
+
 #, c-format
 msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
 msgstr "Použitie: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
@@ -548,6 +550,11 @@
 msgid "You must provide at least one filename or URI to play."
 msgstr "Ak chcete prehrávať, musíte zadať aspoň jeden názov súboru alebo URI."
 
+#~ msgid "A %s plugin is required to play this stream, but not installed."
+#~ msgstr ""
+#~ "Na prehratie tohto prúdu údajov je vyžadovaný zásuvný modul %s, ktorý nie "
+#~ "je nainštalovaný."
+
 #~ msgid "Master"
 #~ msgstr "Hlavný"
 
diff --git a/po/sl.gmo b/po/sl.gmo
index 8b53523..f77a283 100644
--- a/po/sl.gmo
+++ b/po/sl.gmo
Binary files differ
diff --git a/po/sl.po b/po/sl.po
index 2abf617..1426367 100644
--- a/po/sl.po
+++ b/po/sl.po
@@ -10,7 +10,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base-1.0.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-06-22 17:22+0200\n"
+"POT-Creation-Date: 2015-03-16 19:31+0100\n"
 "PO-Revision-Date: 2013-01-05 10:10+0100\n"
 "Last-Translator: Klemen Košir <klemen913@gmail.com>\n"
 "Language-Team: Slovenian <translation-team-sl@lists.sourceforge.net>\n"
@@ -82,10 +82,6 @@
 msgid "Missing element '%s' - check your GStreamer installation."
 msgstr "Predmet '%s' manjka - preverite namestitev paketa GStreamer."
 
-#, c-format
-msgid "A %s plugin is required to play this stream, but not installed."
-msgstr "Za predvajanje tega pretoka je potreben vstavek %s, ki pa ni nameščen."
-
 msgid "Could not determine type of stream"
 msgstr "Vrste pretoka ni mogoče določiti."
 
@@ -510,15 +506,20 @@
 msgid "Initial key in which the sound starts"
 msgstr ""
 
+msgid "Print version information and exit"
+msgstr ""
+
+msgid ""
+"Don't exit after showing the initial device list, but wait for devices to "
+"added/removed."
+msgstr ""
+
 msgid "Buffering..."
 msgstr ""
 
 msgid "Clock lost, selecting a new one\n"
 msgstr ""
 
-msgid "Print version information and exit"
-msgstr ""
-
 msgid "Video sink to use (default is autovideosink)"
 msgstr ""
 
@@ -540,9 +541,16 @@
 msgid "Playlist file containing input media files"
 msgstr ""
 
+msgid "Do not print any output (apart from errors)"
+msgstr ""
+
 #, c-format
 msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
 msgstr ""
 
 msgid "You must provide at least one filename or URI to play."
 msgstr ""
+
+#~ msgid "A %s plugin is required to play this stream, but not installed."
+#~ msgstr ""
+#~ "Za predvajanje tega pretoka je potreben vstavek %s, ki pa ni nameščen."
diff --git a/po/sq.gmo b/po/sq.gmo
index 9092177..493353a 100644
--- a/po/sq.gmo
+++ b/po/sq.gmo
Binary files differ
diff --git a/po/sq.po b/po/sq.po
index 4ee95c2..5bbb595 100644
--- a/po/sq.po
+++ b/po/sq.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins 0.8.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-06-22 17:22+0200\n"
+"POT-Creation-Date: 2015-03-16 19:31+0100\n"
 "PO-Revision-Date: 2004-08-07 20:29+0200\n"
 "Last-Translator: Laurent Dhima <laurenti@alblinux.net>\n"
 "Language-Team: Albanian <begraj@hotmail.com>\n"
@@ -82,10 +82,6 @@
 msgid "Missing element '%s' - check your GStreamer installation."
 msgstr ""
 
-#, c-format
-msgid "A %s plugin is required to play this stream, but not installed."
-msgstr ""
-
 #, fuzzy
 msgid "Could not determine type of stream"
 msgstr "I pamundur shkrimi tek file \"%s\"."
@@ -511,15 +507,20 @@
 msgid "Initial key in which the sound starts"
 msgstr ""
 
+msgid "Print version information and exit"
+msgstr ""
+
+msgid ""
+"Don't exit after showing the initial device list, but wait for devices to "
+"added/removed."
+msgstr ""
+
 msgid "Buffering..."
 msgstr ""
 
 msgid "Clock lost, selecting a new one\n"
 msgstr ""
 
-msgid "Print version information and exit"
-msgstr ""
-
 msgid "Video sink to use (default is autovideosink)"
 msgstr ""
 
@@ -541,6 +542,9 @@
 msgid "Playlist file containing input media files"
 msgstr ""
 
+msgid "Do not print any output (apart from errors)"
+msgstr ""
+
 #, c-format
 msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
 msgstr ""
diff --git a/po/sr.gmo b/po/sr.gmo
index 6958199..1282771 100644
--- a/po/sr.gmo
+++ b/po/sr.gmo
Binary files differ
diff --git a/po/sr.po b/po/sr.po
index 396cc51..0e67485 100644
--- a/po/sr.po
+++ b/po/sr.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base-1.3.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-06-22 17:22+0200\n"
+"POT-Creation-Date: 2015-03-16 19:31+0100\n"
 "PO-Revision-Date: 2014-06-18 19:35+0200\n"
 "Last-Translator: Мирослав Николић <miroslavnikolic@rocketmail.com>\n"
 "Language-Team: Serbian <(nothing)>\n"
@@ -80,10 +80,6 @@
 msgid "Missing element '%s' - check your GStreamer installation."
 msgstr "Недостаје елемент „%s“ — проверите вашу инсталацију Гстримера."
 
-#, c-format
-msgid "A %s plugin is required to play this stream, but not installed."
-msgstr "За пуштање овог тока потребан је прикључак „%s“, али није инсталиран."
-
 msgid "Could not determine type of stream"
 msgstr "Не могу да утврдим врсту тока"
 
@@ -507,15 +503,20 @@
 msgid "Initial key in which the sound starts"
 msgstr "Почетни кључ у коме почиње звук"
 
+msgid "Print version information and exit"
+msgstr "Исписује податке о издању и излази"
+
+msgid ""
+"Don't exit after showing the initial device list, but wait for devices to "
+"added/removed."
+msgstr ""
+
 msgid "Buffering..."
 msgstr "Смештам у међумеморију..."
 
 msgid "Clock lost, selecting a new one\n"
 msgstr "Сат је изгубљен, бирам нови\n"
 
-msgid "Print version information and exit"
-msgstr "Исписује податке о издању и излази"
-
 msgid "Video sink to use (default is autovideosink)"
 msgstr "Усаглашавање снимка за коришћење (основно је „autovideosink“)"
 
@@ -537,6 +538,9 @@
 msgid "Playlist file containing input media files"
 msgstr "Датотека списка нумера садржи датотеке улазних медија"
 
+msgid "Do not print any output (apart from errors)"
+msgstr ""
+
 #, c-format
 msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
 msgstr ""
@@ -545,3 +549,7 @@
 msgid "You must provide at least one filename or URI to play."
 msgstr ""
 "Морате да доставите барем један назив датотеке или путању да бисте пустили."
+
+#~ msgid "A %s plugin is required to play this stream, but not installed."
+#~ msgstr ""
+#~ "За пуштање овог тока потребан је прикључак „%s“, али није инсталиран."
diff --git a/po/sv.gmo b/po/sv.gmo
index f63220c..b501042 100644
--- a/po/sv.gmo
+++ b/po/sv.gmo
Binary files differ
diff --git a/po/sv.po b/po/sv.po
index 5ece221..674d356 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -1,16 +1,17 @@
 # Swedish messages for gst-plugins-base.
-# Copyright (C) 2004, 2007, 2008, 2009 Free Software Foundation, Inc.
+# Copyright (C) 2004-2014 Free Software Foundation, Inc.
 # This file is distributed under the same license as the gst-plugins-base package.
 # Christian Rose <menthos@menthos.com>, 2004.
 # Daniel Nylander <po@danielnylander.se>, 2007, 2008, 2009.
+# Sebastian Rasmussen <sebras@gmail.com>, 2014.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-base 0.10.28.2\n"
+"Project-Id-Version: gst-plugins-base 1.3.90\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-06-22 17:22+0200\n"
-"PO-Revision-Date: 2010-06-07 18:17+0100\n"
-"Last-Translator: Daniel Nylander <po@danielnylander.se>\n"
+"POT-Creation-Date: 2015-03-16 19:31+0100\n"
+"PO-Revision-Date: 2014-07-11 02:52+0200\n"
+"Last-Translator: Sebastian Rasmussen <sebras@gmail.com>\n"
 "Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
 "Language: sv\n"
 "MIME-Version: 1.0\n"
@@ -38,7 +39,7 @@
 msgstr "Kunde inte öppna ljudenheten för uppspelning."
 
 msgid "Error outputting to audio device. The device has been disconnected."
-msgstr ""
+msgstr "Fel vid utmatning till ljudenhet. Enheten har kopplats loss."
 
 msgid "Could not open device for recording in mono mode."
 msgstr "Kunde inte öppna enheten för inspelning i monoläge."
@@ -61,7 +62,7 @@
 msgstr "Kunde inte öppna ljudenheten för inspelning."
 
 msgid "Error recording from audio device. The device has been disconnected."
-msgstr ""
+msgstr "Fel vid inspelning från ljudenhet. Enheten har kopplats loss."
 
 msgid "Could not open CD device for reading."
 msgstr "Kunde inte öppna cd-enheten för läsning."
@@ -73,27 +74,20 @@
 msgstr "Kunde inte läsa cd-skivan."
 
 msgid "Internal data stream error."
-msgstr "Internt dataströmfel."
+msgstr "Internt dataströmningsfel."
 
 #, c-format
 msgid "Missing element '%s' - check your GStreamer installation."
 msgstr "Saknar elementet \"%s\" - kontrollera din GStreamer-installation."
 
-#, c-format
-msgid "A %s plugin is required to play this stream, but not installed."
-msgstr ""
-"En %s-insticksmodul krävs för att spela upp den här strömmen men är inte "
-"installerad."
-
 msgid "Could not determine type of stream"
 msgstr "Kunde inte fastställa typ av ström"
 
 msgid "This appears to be a text file"
 msgstr "Den här ser ut att vara en textfil"
 
-#, fuzzy
 msgid "Could not create \"uridecodebin\" element."
-msgstr "Kunde inte skapa \"decodebin\"-element."
+msgstr "Kunde inte skapa \"uridecodebin\"-element."
 
 #, c-format
 msgid "Both autovideosink and %s elements are missing."
@@ -114,7 +108,7 @@
 msgstr "Elementet autovideosink fungerar inte."
 
 msgid "Custom text sink element is not usable."
-msgstr "Anpassat text sink-element är inte användbart."
+msgstr "Anpassat text utgångs-element är inte användbart."
 
 msgid "No volume control found"
 msgstr "Ingen volymkontroll hittades"
@@ -202,27 +196,22 @@
 msgstr "Förlustfri MSZH"
 
 msgid "Run-length encoding"
-msgstr "Körlängdskodning"
+msgstr "Skurlängdskodning"
 
-#, fuzzy
 msgid "Timed Text"
-msgstr "Tidslinje"
+msgstr "Textning"
 
-#, fuzzy
 msgid "Subtitle"
-msgstr "Titel"
+msgstr "Undertext"
 
-#, fuzzy
 msgid "MPL2 subtitle format"
-msgstr "Undertextformatet TMPlayer"
+msgstr "Undertextformatet MPL2"
 
-#, fuzzy
 msgid "DKS subtitle format"
-msgstr "Undertextformatet Sami"
+msgstr "Undertextformatet DKS"
 
-#, fuzzy
 msgid "QTtext subtitle format"
-msgstr "Undertextformatet Kate"
+msgstr "Undertextformatet QTtext"
 
 msgid "Sami subtitle format"
 msgstr "Undertextformatet Sami"
@@ -233,45 +222,42 @@
 msgid "Kate subtitle format"
 msgstr "Undertextformatet Kate"
 
-#, fuzzy
 msgid "Uncompressed video"
-msgstr "Okomprimerad YUV"
+msgstr "Okomprimerad video"
 
-#, fuzzy
 msgid "Uncompressed gray"
-msgstr "Okomprimerad gråskalebild"
+msgstr "Okomprimerad gråskala"
 
-#, fuzzy, c-format
+#, c-format
 msgid "Uncompressed packed YUV %s"
-msgstr "Okomprimerad paketerad YUV 4:2:2"
+msgstr "Okomprimerad paketerad YUV %s"
 
-#, fuzzy, c-format
+#, c-format
 msgid "Uncompressed semi-planar YUV %s"
-msgstr "Okomprimerad plan YUV 4:2:0"
+msgstr "Okomprimerad semi-planär YUV %s"
 
-#, fuzzy, c-format
+#, c-format
 msgid "Uncompressed planar YUV %s"
-msgstr "Okomprimerad plan YUV 4:2:0"
+msgstr "Okomprimerad planär YUV %s"
 
-#, fuzzy, c-format
+#, c-format
 msgid "Uncompressed palettized %d-bit %s"
 msgstr "Okomprimerad palettiserad %d-bitars %s"
 
-#, fuzzy, c-format
+#, c-format
 msgid "Uncompressed %d-bit %s"
-msgstr "Okomprimerad palettiserad %d-bitars %s"
+msgstr "Okomprimerad %d-bitars %s"
 
 #, c-format
 msgid "DivX MPEG-4 Version %d"
 msgstr "DivX MPEG-4 version %d"
 
-#, fuzzy
 msgid "Uncompressed audio"
-msgstr "Okomprimerad YUV"
+msgstr "Okomprimerad audio"
 
-#, fuzzy, c-format
+#, c-format
 msgid "Raw %d-bit %s audio"
-msgstr "Rått %d-bitars PCM-ljud"
+msgstr "Rått %d-bitars %s-ljud"
 
 msgid "Audio CD source"
 msgstr "Ljud-cd-källa"
@@ -334,10 +320,10 @@
 msgstr "GStreamer-elementet %s"
 
 msgid "Unknown source element"
-msgstr "Okänt source-element"
+msgstr "Okänt käll-element"
 
 msgid "Unknown sink element"
-msgstr "Okänt sink-element"
+msgstr "Okänt utgångs-element"
 
 msgid "Unknown element"
 msgstr "Okänt element"
@@ -355,28 +341,28 @@
 msgstr "Misslyckades med att läsa tagg: inte tillräckligt mycket data"
 
 msgid "track ID"
-msgstr "spår-id"
+msgstr "spår-ID"
 
 msgid "MusicBrainz track ID"
-msgstr "MusicBrainz spår-id"
+msgstr "MusicBrainz spår-ID"
 
 msgid "artist ID"
-msgstr "artist-id"
+msgstr "artist-ID"
 
 msgid "MusicBrainz artist ID"
-msgstr "MusicBrainz artist-id"
+msgstr "MusicBrainz artist-ID"
 
 msgid "album ID"
-msgstr "album-id"
+msgstr "album-ID"
 
 msgid "MusicBrainz album ID"
-msgstr "MusicBrainz album-id"
+msgstr "MusicBrainz album-ID"
 
 msgid "album artist ID"
-msgstr "albumartist-id"
+msgstr "albumartist-ID"
 
 msgid "MusicBrainz album artist ID"
-msgstr "MusicBrainz albumartist-id"
+msgstr "MusicBrainz albumartist-ID"
 
 msgid "track TRM ID"
 msgstr "spår TRM-ID"
@@ -385,1465 +371,184 @@
 msgstr "MusicBrainz TRM-ID"
 
 msgid "capturing shutter speed"
-msgstr ""
+msgstr "slutarhastighet"
 
 msgid "Shutter speed used when capturing an image, in seconds"
-msgstr ""
+msgstr "Slutarhastighet i sekunder som används när bild infångas"
 
 msgid "capturing focal ratio"
-msgstr ""
+msgstr "bländarvärde"
 
 msgid "Focal ratio (f-number) used when capturing the image"
-msgstr ""
+msgstr "Bländarvärde (f-tal) som används när bild infångas"
 
 msgid "capturing focal length"
-msgstr ""
+msgstr "brännvidd"
 
 msgid "Focal length of the lens used capturing the image, in mm"
-msgstr ""
+msgstr "Brännvidd för linsen i mm när bild infångas"
 
 msgid "capturing digital zoom ratio"
-msgstr ""
+msgstr "digitalt zoom-förhållande"
 
 msgid "Digital zoom ratio used when capturing an image"
-msgstr ""
+msgstr "Digitalt zoom-förhållande som används när bild infångas"
 
 msgid "capturing iso speed"
-msgstr ""
+msgstr "ISO-tal"
 
 msgid "The ISO speed used when capturing an image"
-msgstr ""
+msgstr "ISO-tal som används när bild infångas"
 
 msgid "capturing exposure program"
-msgstr ""
+msgstr "exponeringsprogram"
 
 msgid "The exposure program used when capturing an image"
-msgstr ""
+msgstr "Det exponeringsprogram som används när bild infångas"
 
 msgid "capturing exposure mode"
-msgstr ""
+msgstr "exponeringsläge"
 
 msgid "The exposure mode used when capturing an image"
-msgstr ""
+msgstr "Exponeringsläge som används när bild infångas"
 
 msgid "capturing exposure compensation"
-msgstr ""
+msgstr "exponeringskompensation"
 
 msgid "The exposure compensation used when capturing an image"
-msgstr ""
+msgstr "Exponeringskompensationen som används när bild infångas"
 
 msgid "capturing scene capture type"
-msgstr ""
+msgstr "scenläge"
 
 msgid "The scene capture mode used when capturing an image"
-msgstr ""
+msgstr "Scenläge som används när bild infångas"
 
 msgid "capturing gain adjustment"
-msgstr ""
+msgstr "förstärkningsjustering"
 
 msgid "The overall gain adjustment applied on an image"
-msgstr ""
+msgstr "Förstärkningsjustering som appliceras på en bild"
 
 msgid "capturing white balance"
-msgstr ""
+msgstr "vitbalans"
 
 msgid "The white balance mode set when capturing an image"
-msgstr ""
+msgstr "Vitbalansläge som sätts när bild infångas"
 
 msgid "capturing contrast"
-msgstr ""
+msgstr "kontrast"
 
 msgid "The direction of contrast processing applied when capturing an image"
-msgstr ""
+msgstr "Riktning för kontrastbehandling som appliceras när bild infångas"
 
 msgid "capturing saturation"
-msgstr ""
+msgstr "mättnad"
 
 msgid "The direction of saturation processing applied when capturing an image"
-msgstr ""
+msgstr "Riktning för mättnadsbehandling som appliceras när bild infångas"
 
 msgid "capturing sharpness"
-msgstr ""
+msgstr "skärpning"
 
 msgid "The direction of sharpness processing applied when capturing an image"
-msgstr ""
+msgstr "Riktningen på skärpningsbehandling som appliceras när bild infångas"
 
 msgid "capturing flash fired"
-msgstr ""
+msgstr "blixtavfyrning"
 
 msgid "If the flash fired while capturing an image"
-msgstr ""
+msgstr "Om blixten avfyrats när bild infångas"
 
 msgid "capturing flash mode"
-msgstr ""
+msgstr "blixtläge"
 
 msgid "The selected flash mode while capturing an image"
-msgstr ""
+msgstr "Det valda blixtläget när bild infångas"
 
 msgid "capturing metering mode"
-msgstr ""
+msgstr "ljusmätarläge"
 
 msgid ""
 "The metering mode used while determining exposure for capturing an image"
-msgstr ""
+msgstr "Ljusmätarläge som används då exponering bestäms när bild infångas"
 
 msgid "capturing source"
-msgstr ""
+msgstr "infångstkälla"
 
 msgid "The source or type of device used for the capture"
-msgstr ""
+msgstr "Källa eller typ av enhet som används för infångningen"
 
 msgid "image horizontal ppi"
-msgstr ""
+msgstr "bild horisontell ppi"
 
 msgid "Media (image/video) intended horizontal pixel density in ppi"
-msgstr ""
+msgstr "Media (bild/video) avsedd horisontell pixeldensitet i ppi"
 
 msgid "image vertical ppi"
-msgstr ""
+msgstr "bild vertikal ppi"
 
 msgid "Media (image/video) intended vertical pixel density in ppi"
-msgstr ""
+msgstr "Media (bild/video) avsedd vertikal pixeldensitet i ppi"
 
 msgid "ID3v2 frame"
-msgstr ""
+msgstr "ID3v2-ram"
 
 msgid "unparsed id3v2 tag frame"
-msgstr ""
+msgstr "otolkad id3v2-tagg-ram"
 
-#, fuzzy
 msgid "musical-key"
-msgstr "Musikal"
+msgstr "musikalisk tonart"
 
 msgid "Initial key in which the sound starts"
-msgstr ""
-
-#, fuzzy
-msgid "Buffering..."
-msgstr "Spelar in..."
-
-msgid "Clock lost, selecting a new one\n"
-msgstr ""
+msgstr "Inledande tonart med vilken ljudet börjar"
 
 msgid "Print version information and exit"
+msgstr "Skriv ut versionsinformation och avsluta"
+
+msgid ""
+"Don't exit after showing the initial device list, but wait for devices to "
+"added/removed."
 msgstr ""
 
+msgid "Buffering..."
+msgstr "Buffrar..."
+
+msgid "Clock lost, selecting a new one\n"
+msgstr "Klocka förlorad, väljer en ny\n"
+
 msgid "Video sink to use (default is autovideosink)"
-msgstr ""
+msgstr "Videoutgång som ska användas (standard är autovideosink)"
 
 msgid "Audio sink to use (default is autoaudiosink)"
-msgstr ""
+msgstr "Ljudutgång som ska användas (standard är autoaudiosink)"
 
 msgid "Enable gapless playback"
-msgstr ""
+msgstr "Aktivera mellanrumslös uppspelning"
 
 msgid "Shuffle playlist"
-msgstr ""
+msgstr "Blanda spellista"
 
 msgid "Interactive control via keyboard"
-msgstr ""
+msgstr "Interaktiv styrning via tangentbord"
 
 msgid "Volume"
 msgstr "Volym"
 
 msgid "Playlist file containing input media files"
+msgstr "Fil med spellista innehållandes inkommande mediafiler"
+
+msgid "Do not print any output (apart from errors)"
 msgstr ""
 
 #, c-format
 msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
-msgstr ""
+msgstr "Användning: %s FIL1|URI1 [FIL2|URI2] [FIL3|URI3] ..."
 
 msgid "You must provide at least one filename or URI to play."
-msgstr ""
+msgstr "Du måste ange åtminstone ett filnamn eller en URI att spela."
 
-#, fuzzy
-#~ msgid "Uncompressed %s YUV %s"
-#~ msgstr "Okomprimerad YUV"
-
-#~ msgid "Master"
-#~ msgstr "Övergripande"
-
-#~ msgid "Bass"
-#~ msgstr "Bas"
-
-#~ msgid "Treble"
-#~ msgstr "Diskant"
-
-#~ msgid "PCM"
-#~ msgstr "PCM"
-
-#~ msgid "Synth"
-#~ msgstr "Synt"
-
-#~ msgid "Line-in"
-#~ msgstr "Linje-in"
-
-#~ msgid "CD"
-#~ msgstr "Cd"
-
-#~ msgid "Microphone"
-#~ msgstr "Mikrofon"
-
-#~ msgid "PC Speaker"
-#~ msgstr "PC-högtalare"
-
-#~ msgid "Playback"
-#~ msgstr "Uppspelning"
-
-#~ msgid "Capture"
-#~ msgstr "Fångst"
-
-#~ msgid "Connection to %s:%d refused."
-#~ msgstr "Anslutningen till %s:%d nekades."
-
-#~ msgid "Uncompressed planar YVU 4:2:0"
-#~ msgstr "Okomprimerad plan YVU 4:2:0"
-
-#~ msgid "Uncompressed packed YUV 4:1:0"
-#~ msgstr "Okomprimerad paketerad YUV 4:1:0"
-
-#~ msgid "Uncompressed packed YVU 4:1:0"
-#~ msgstr "Okomprimerad paketerad YVU 4:1:0"
-
-#~ msgid "Uncompressed packed YUV 4:1:1"
-#~ msgstr "Okomprimerad paketerad YUV 4:1:1"
-
-#~ msgid "Uncompressed packed YUV 4:4:4"
-#~ msgstr "Okomprimerad paketerad YUV 4:4:4"
-
-#~ msgid "Uncompressed planar YUV 4:2:2"
-#~ msgstr "Okomprimerad plan YUV 4:2:2"
-
-#~ msgid "Uncompressed planar YUV 4:1:1"
-#~ msgstr "Okomprimerad plan YUV 4:1:1"
-
-#~ msgid "Uncompressed black and white Y-plane"
-#~ msgstr "Okomprimerad svartvitt y-plan"
-
-#~ msgid "Raw PCM audio"
-#~ msgstr "Rått PCM-ljud"
-
-#~ msgid "Raw %d-bit floating-point audio"
-#~ msgstr "Rått %d-bitars flyttalsljud"
-
-#~ msgid "Raw floating-point audio"
-#~ msgstr "Rått flyttalsljud"
-
-#~ msgid "Could not open vfs file \"%s\" for writing: %s."
-#~ msgstr "Kunde inte öppna vfs-filen \"%s\" för skrivning: %s."
-
-#~ msgid "No filename given"
-#~ msgstr "Inget filnamn angivet"
-
-#~ msgid "Could not close vfs file \"%s\"."
-#~ msgstr "Kunde inte stänga vfs-filen \"%s\"."
-
-#~ msgid "Error while writing to file \"%s\"."
-#~ msgstr "Fel vid skrivning till filen \"%s\"."
-
-#~ msgid "Invalid subtitle URI \"%s\", subtitles disabled."
-#~ msgstr "Ogiltig uri för undertext \"%s\", undertexter inaktiverade."
-
-#~ msgid "RTSP streams cannot be played yet."
-#~ msgstr "RTSP-strömmar kan inte spelas upp än."
-
-#~ msgid ""
-#~ "Only a subtitle stream was detected. Either you are loading a subtitle "
-#~ "file or some other type of text file, or the media file was not "
-#~ "recognized."
+#~ msgid "A %s plugin is required to play this stream, but not installed."
 #~ msgstr ""
-#~ "Endast en undertextström identifierades. Antingen läser du in en "
-#~ "undertextfil eller någon annan typ av textfil, eller så kändes inte "
-#~ "mediafilen igen."
-
-#~ msgid ""
-#~ "You do not have a decoder installed to handle this file. You might need "
-#~ "to install the necessary plugins."
-#~ msgstr ""
-#~ "Du har inte en installerad avkodare som kan hantera den här filen. Du "
-#~ "kanske behöver installera de nödvändiga insticksmodulerna."
-
-#~ msgid "This is not a media file"
-#~ msgstr "Det här är inte en mediafil"
-
-#~ msgid "A subtitle stream was detected, but no video stream."
-#~ msgstr "En undertextström identifierades men ingen videoström."
-
-#~ msgid "Both autovideosink and xvimagesink elements are missing."
-#~ msgstr "Både autovideosink- och xvimagesink-elementet saknas."
-
-#~ msgid "Both autoaudiosink and alsasink elements are missing."
-#~ msgstr "Både autoaudiosink- och alsasink-elementet saknas."
-
-#~ msgid "No device specified."
-#~ msgstr "Ingen enheten angiven."
-
-#~ msgid "Device \"%s\" does not exist."
-#~ msgstr "Enheten \"%s\" finns inte."
-
-#~ msgid "Device \"%s\" is already being used."
-#~ msgstr "Enheten \"%s\" används redan."
-
-#~ msgid "Could not open device \"%s\" for reading and writing."
-#~ msgstr "Kunde inte öppna enheten \"%s\" för läsning och skrivning."
-
-#~ msgid "Error while sending gdp header data to \"%s:%d\"."
-#~ msgstr "Fel vid sändning av gdp-huvuddata till \"%s:%d\"."
-
-#~ msgid "Error while sending gdp payload data to \"%s:%d\"."
-#~ msgstr "Fel vid sändning av gdp-paketdata till \"%s:%d\"."
-
-#~ msgid "Can't display both text subtitles and subpictures."
-#~ msgstr "Kan inte visa både undertexter och underbilder."
-
-#~ msgid "No Temp directory specified."
-#~ msgstr "Ingen temporärkatalog har angivits."
-
-#~ msgid "Could not create temp file \"%s\"."
-#~ msgstr "Kunde inte skapa temporärfilen \"%s\"."
-
-#~ msgid "Could not open file \"%s\" for reading."
-#~ msgstr "Kunde inte öppna filen \"%s\" för läsning."
-
-#~ msgid "Internal data flow error."
-#~ msgstr "Internt dataflödesfel."
-
-#~ msgid "Could not create \"decodebin2\" element."
-#~ msgstr "Kunde inte skapa \"decodebin2\"-element."
-
-#~ msgid "Could not create \"queue2\" element."
-#~ msgstr "Kunde inte skapa \"queue2\"-element."
-
-#~ msgid "Could not create \"typefind\" element."
-#~ msgstr "Kunde inte skapa \"typefind\"-element."
-
-#~ msgid "No file name specified."
-#~ msgstr "Inget filnamn angivet."
-
-#~ msgid "artist sortname"
-#~ msgstr "artistsorteringsnamn"
-
-#~ msgid "MusicBrainz artist sortname"
-#~ msgstr "MusicBrainz sorteringsnamn för artist"
-
-#~ msgid "discid"
-#~ msgstr "skiv-id"
-
-#~ msgid "Device is not open."
-#~ msgstr "Enheten är inte öppen."
-
-#~ msgid "Device is open."
-#~ msgstr "Enheten är öppen."
-
-#~ msgid "Could not open vfs file \"%s\" for reading."
-#~ msgstr "Kunde inte öppna vfs-filen \"%s\" för läsning."
-
-#~ msgid "No filename given."
-#~ msgstr "Inget filnamn angivet."
-
-#~ msgid "Could not open file \"%s\" for writing."
-#~ msgstr "Kunde inte öppna filen \"%s\" för skrivning."
-
-#~ msgid "No or invalid input audio, AVI stream will be corrupt."
-#~ msgstr "Inget eller ogiltigt inljud. AVI-flödet kommer att skadas."
-
-#~ msgid ""
-#~ "The %s element could not be found. This element is essential for "
-#~ "playback. Please install the right plug-in and verify that it works by "
-#~ "running 'gst-inspect %s'"
-#~ msgstr ""
-#~ "Elementet %s kunde inte hittas. Detta element är nödvändigt för "
-#~ "uppspelning. Installera rätt insticksmodul och verifiera att den fungerar "
-#~ "genom att köra \"gst-inspect %s\""
-
-#~ msgid ""
-#~ "No usable colorspace element could be found.\n"
-#~ "Please install one and restart."
-#~ msgstr ""
-#~ "Inget användbart namnrymdselement kunde hittas.\n"
-#~ "Installera ett och starta om."
-
-#~ msgid "Could not open audio device \"%s\" for writing."
-#~ msgstr "Kunde inte öppna ljudenheten \"%s\" för skrivning."
-
-#~ msgid "Could not open control device \"%s\" for writing."
-#~ msgstr "Kunde inte öppna styrenheten \"%s\" för skrivning."
-
-#~ msgid "Could not configure audio device \"%s\"."
-#~ msgstr "Kunde inte konfigurera ljudenheten \"%s\"."
-
-#~ msgid "Could not set audio device \"%s\" to %d Hz."
-#~ msgstr "Kan inte ställa in ljudenheten \"%s\" till %d Hz."
-
-#~ msgid "Could not close audio device \"%s\"."
-#~ msgstr "Kunde inte stänga ljudenheten \"%s\"."
-
-#~ msgid "Could not close control device \"%s\"."
-#~ msgstr "Kunde inte stänga styrenheten \"%s\"."
-
-#~ msgid "Could not open video device \"%s\" for writing."
-#~ msgstr "Kunde inte öppna videoenheten \"%s\" för skrivning."
-
-#~ msgid "Could not close video device \"%s\"."
-#~ msgstr "Kunde inte stänga vidoeenheten \"%s\"."
-
-#~ msgid "Could not write to device \"%s\"."
-#~ msgstr "Kunde inte skriva till enheten \"%s\"."
-
-#~ msgid "Could not access device \"%s\", check its permissions."
-#~ msgstr "Kunde inte komma åt enheten \"%s\". Kontrollera dess rättigheter."
-
-#~ msgid "Could not open device \"%s\" for writing."
-#~ msgstr "Kunde inte öppna enheten \"%s\" för skrivning."
-
-#~ msgid "Could not open device \"%s\" for reading."
-#~ msgstr "Kunde inte öppna enheten \"%s\" för läsning."
-
-#~ msgid "Your OSS device doesn't support mono or stereo."
-#~ msgstr "Din OSS-enhet saknar stöd för mono eller stereo."
-
-#~ msgid "Your OSS device could not be probed correctly"
-#~ msgstr "Din OSS-enhet kunde inte undersökas korrekt"
-
-#~ msgid "Speaker"
-#~ msgstr "Högtalare"
-
-#~ msgid "Mixer"
-#~ msgstr "Mixer"
-
-#~ msgid "PCM-2"
-#~ msgstr "PCM-2"
-
-#~ msgid "Record"
-#~ msgstr "Spela in"
-
-#~ msgid "In-gain"
-#~ msgstr "Införstärkning"
-
-#~ msgid "Out-gain"
-#~ msgstr "Utförstärkning"
-
-#~ msgid "Line-1"
-#~ msgstr "Linje-1"
-
-#~ msgid "Line-2"
-#~ msgstr "Linje-2"
-
-#~ msgid "Line-3"
-#~ msgstr "Linje-3"
-
-#~ msgid "Digital-1"
-#~ msgstr "Digital-1"
-
-#~ msgid "Digital-2"
-#~ msgstr "Digital-2"
-
-#~ msgid "Digital-3"
-#~ msgstr "Digital-3"
-
-#~ msgid "Phone-in"
-#~ msgstr "Tele-in"
-
-#~ msgid "Phone-out"
-#~ msgstr "Tele-ut"
-
-#~ msgid "Video"
-#~ msgstr "Video"
-
-#~ msgid "Radio"
-#~ msgstr "Radio"
-
-#~ msgid "Monitor"
-#~ msgstr "Monitor"
-
-#~ msgid "Device \"%s\" is not a capture device."
-#~ msgstr "Enheten \"%s\" är ingen fångstenhet."
-
-#~ msgid "Could not get buffers from device \"%s\"."
-#~ msgstr "Kunde inte få tag i buffertar från enheten \"%s\"."
-
-#~ msgid "Could not get enough buffers from device \"%s\"."
-#~ msgstr ""
-#~ "Kunde inte få tag i tillräckligt många buffertar från enheten \"%s\"."
-
-#~ msgid "Line"
-#~ msgstr "Linje"
-
-#~ msgid "Digital"
-#~ msgstr "Digital"
-
-#~ msgid "Phone in"
-#~ msgstr "Tele in"
-
-#~ msgid "Phone out"
-#~ msgstr "Tele ut"
-
-#~ msgid "Address of the server to contact for CD queries"
-#~ msgstr "Adress till servern som ska kontaktas för cd-frågor"
-
-#~ msgid "Information to send to server"
-#~ msgstr "Information att skicka till server"
-
-#~ msgid "Port"
-#~ msgstr "Port"
-
-#~ msgid "Server name"
-#~ msgstr "Servernamn"
-
-#~ msgid "Server type"
-#~ msgstr "Servertyp"
-
-#~ msgid "The hostname that will be sent with all queries"
-#~ msgstr "Värdnamnet som kommer att skickas med alla frågor"
-
-#~ msgid "The port that the server is running the database on"
-#~ msgstr "Porten som servern kör databasen på"
-
-#~ msgid ""
-#~ "There was an error displaying help: \n"
-#~ "%s"
-#~ msgstr ""
-#~ "Det uppstod ett fel vid visning av hjälp: \n"
-#~ "%s"
-
-#~ msgid "Login Information"
-#~ msgstr "Inloggningsinformation"
-
-#~ msgid "Sen_d no information"
-#~ msgstr "Ski_cka ingen information"
-
-#~ msgid "Send real _information"
-#~ msgstr "Skicka verklig _information"
-
-#~ msgid "Send _other information:"
-#~ msgstr "Skicka _annan information:"
-
-#~ msgid "_Name:"
-#~ msgstr "_Namn:"
-
-#~ msgid "Hostna_me:"
-#~ msgstr "Värdna_mn:"
-
-#~ msgid "Server"
-#~ msgstr "Server"
-
-#~ msgid "Location"
-#~ msgstr "Plats"
-
-#~ msgid "_Update Server List"
-#~ msgstr "_Uppdatera serverlistan"
-
-#~ msgid "Other _server:"
-#~ msgstr "Annan _server:"
-
-#~ msgid "Hos_tname:"
-#~ msgstr "Vä_rdnamn:"
-
-#~ msgid "_Port:"
-#~ msgstr "_Port:"
-
-#~ msgid "CD Database Preferences"
-#~ msgstr "Inställningar för cd-databas"
-
-#~ msgid "Unknown / Unknown"
-#~ msgstr "Okänd / Okänd"
-
-#~ msgid "Unknown"
-#~ msgstr "Okänd"
-
-#~ msgid "Multiple matches..."
-#~ msgstr "Flera träffar..."
-
-#~ msgid "Category"
-#~ msgstr "Kategori"
-
-#~ msgid "Artist and Title"
-#~ msgstr "Artist och titel"
-
-#~ msgid "Unknown track"
-#~ msgstr "Okänt spår"
-
-#~ msgid "CD Database"
-#~ msgstr "Cd-databas"
-
-#~ msgid "Modify your CD database preferences"
-#~ msgstr "Ändra dina inställningar för cd-databas"
-
-#~ msgid "Blues"
-#~ msgstr "Blues"
-
-#~ msgid "Classical Rock"
-#~ msgstr "Klassisk rock"
-
-#~ msgid "Country"
-#~ msgstr "Country"
-
-#~ msgid "Dance"
-#~ msgstr "Dance"
-
-#~ msgid "Disco"
-#~ msgstr "Disco"
-
-#~ msgid "Funk"
-#~ msgstr "Funk"
-
-#~ msgid "Grunge"
-#~ msgstr "Grunge"
-
-#~ msgid "Hip-Hop"
-#~ msgstr "Hip-Hop"
-
-#~ msgid "Jazz"
-#~ msgstr "Jazz"
-
-#~ msgid "Metal"
-#~ msgstr "Metal"
-
-#~ msgid "New Age"
-#~ msgstr "New Age"
-
-#~ msgid "Oldies"
-#~ msgstr "Gamla godingar"
-
-#~ msgid "Other"
-#~ msgstr "Annat"
-
-#~ msgid "Pop"
-#~ msgstr "Pop"
-
-#~ msgid "R&B"
-#~ msgstr "R&B"
-
-#~ msgid "Rap"
-#~ msgstr "Rap"
-
-#~ msgid "Reggae"
-#~ msgstr "Reggae"
-
-#~ msgid "Rock"
-#~ msgstr "Rock"
-
-#~ msgid "Techno"
-#~ msgstr "Techno"
-
-#~ msgid "Industrial"
-#~ msgstr "Industrial"
-
-#~ msgid "Alternative"
-#~ msgstr "Alternativmusik"
-
-#~ msgid "Ska"
-#~ msgstr "Ska"
-
-#~ msgid "Death Metal"
-#~ msgstr "Death Metal"
-
-#~ msgid "Pranks"
-#~ msgstr "Pranks"
-
-#~ msgid "Soundtrack"
-#~ msgstr "Filmmusik"
-
-#~ msgid "Euro-Techno"
-#~ msgstr "Euro-Techno"
-
-#~ msgid "Ambient"
-#~ msgstr "Ambient"
-
-#~ msgid "Trip-Hop"
-#~ msgstr "Trip-Hop"
-
-#~ msgid "Vocal"
-#~ msgstr "Vocal"
-
-#~ msgid "Jazz+Funk"
-#~ msgstr "Jazz+Funk"
-
-#~ msgid "Fusion"
-#~ msgstr "Fusion"
-
-#~ msgid "Trance"
-#~ msgstr "Trance"
-
-#~ msgid "Classical"
-#~ msgstr "Klassiskt"
-
-#~ msgid "Instrumental"
-#~ msgstr "Instrumentellt"
-
-#~ msgid "Acid"
-#~ msgstr "Acid"
-
-#~ msgid "House"
-#~ msgstr "House"
-
-#~ msgid "Game"
-#~ msgstr "Spel"
-
-#~ msgid "Sound Clip"
-#~ msgstr "Ljudklipp"
-
-#~ msgid "Gospel"
-#~ msgstr "Gospel"
-
-#~ msgid "Noise"
-#~ msgstr "Brus"
-
-#~ msgid "Alt"
-#~ msgstr "Alt"
-
-#~ msgid "Soul"
-#~ msgstr "Soul"
-
-#~ msgid "Punk"
-#~ msgstr "Punk"
-
-#~ msgid "Space"
-#~ msgstr "Space"
-
-#~ msgid "Meditative"
-#~ msgstr "Meditativt"
-
-#~ msgid "Instrumental Pop"
-#~ msgstr "Instrumentell pop"
-
-#~ msgid "Instrumental Rock"
-#~ msgstr "Instrumentell rock"
-
-#~ msgid "Ethnic"
-#~ msgstr "Folkmusik"
-
-#~ msgid "Gothic"
-#~ msgstr "Gotiskt"
-
-#~ msgid "Darkwave"
-#~ msgstr "Darkwave"
-
-#~ msgid "Techno-Industrial"
-#~ msgstr "Techno-Industrial"
-
-#~ msgid "Electronic"
-#~ msgstr "Electroniskt"
-
-#~ msgid "Pop-Folk"
-#~ msgstr "Pop-Folk"
-
-#~ msgid "Eurodance"
-#~ msgstr "Eurodance"
-
-#~ msgid "Dream"
-#~ msgstr "Dream"
-
-#~ msgid "Southern Rock"
-#~ msgstr "Southern Rock"
-
-#~ msgid "Comedy"
-#~ msgstr "Komedi"
-
-#~ msgid "Cult"
-#~ msgstr "Kult"
-
-#~ msgid "Gangsta Rap"
-#~ msgstr "Gangsta rap"
-
-#~ msgid "Top 40"
-#~ msgstr "Topp 40"
-
-#~ msgid "Christian Rap"
-#~ msgstr "Kristen rap"
-
-#~ msgid "Pop/Funk"
-#~ msgstr "Pop/Funk"
-
-#~ msgid "Jungle"
-#~ msgstr "Jungle"
-
-#~ msgid "Native American"
-#~ msgstr "Amerikansk folkmusik"
-
-#~ msgid "Cabaret"
-#~ msgstr "Kabaré"
-
-#~ msgid "New Wave"
-#~ msgstr "New Wave"
-
-#~ msgid "Psychedelic"
-#~ msgstr "Psykedeliskt"
-
-#~ msgid "Rave"
-#~ msgstr "Rave"
-
-#~ msgid "Showtunes"
-#~ msgstr "Showtunes"
-
-#~ msgid "Trailer"
-#~ msgstr "Trailer"
-
-#~ msgid "Lo-Fi"
-#~ msgstr "Lo-Fi"
-
-#~ msgid "Tribal"
-#~ msgstr "Tribal"
-
-#~ msgid "Acid Punk"
-#~ msgstr "Acid Punk"
-
-#~ msgid "Acid Jazz"
-#~ msgstr "Acid Jazz"
-
-#~ msgid "Polka"
-#~ msgstr "Polka"
-
-#~ msgid "Retro"
-#~ msgstr "Retro"
-
-#~ msgid "Rock & Roll"
-#~ msgstr "Rock & roll"
-
-#~ msgid "Hard Rock"
-#~ msgstr "Hårdrock"
-
-#~ msgid "Folk"
-#~ msgstr "Folk"
-
-#~ msgid "Folk/Rock"
-#~ msgstr "Folk/Rock"
-
-#~ msgid "National Folk"
-#~ msgstr "Nationell folkmusik"
-
-#~ msgid "Swing"
-#~ msgstr "Swing"
-
-#~ msgid "Fast-Fusion"
-#~ msgstr "Fast-Fusion"
-
-#~ msgid "Bebop"
-#~ msgstr "Bebop"
-
-#~ msgid "Latin"
-#~ msgstr "Latinskt"
-
-#~ msgid "Revival"
-#~ msgstr "Uppväckelse"
-
-#~ msgid "Celtic"
-#~ msgstr "Keltiskt"
-
-#~ msgid "Bluegrass"
-#~ msgstr "Bluegrass"
-
-#~ msgid "Avantgarde"
-#~ msgstr "Avantgarde"
-
-#~ msgid "Gothic Rock"
-#~ msgstr "Gotisk rock"
-
-#~ msgid "Progressive Rock"
-#~ msgstr "Progressiv rock"
-
-#~ msgid "Psychedelic Rock"
-#~ msgstr "Psykedelisk rock"
-
-#~ msgid "Symphonic Rock"
-#~ msgstr "Symfonisk rock"
-
-#~ msgid "Slow Rock"
-#~ msgstr "Slow Rock"
-
-#~ msgid "Big Band"
-#~ msgstr "Big Band"
-
-#~ msgid "Chorus"
-#~ msgstr "Kör"
-
-#~ msgid "Easy Listening"
-#~ msgstr "Lättlyssnat"
-
-#~ msgid "Acoustic"
-#~ msgstr "Akustiskt"
-
-#~ msgid "Humour"
-#~ msgstr "Humor"
-
-#~ msgid "Speech"
-#~ msgstr "Tal"
-
-#~ msgid "Chanson"
-#~ msgstr "Chanson"
-
-#~ msgid "Opera"
-#~ msgstr "Opera"
-
-#~ msgid "Chamber Music"
-#~ msgstr "Kammarmusik"
-
-#~ msgid "Sonata"
-#~ msgstr "Sonat"
-
-#~ msgid "Symphony"
-#~ msgstr "Symfoni"
-
-#~ msgid "Booty Bass"
-#~ msgstr "Booty Bass"
-
-#~ msgid "Primus"
-#~ msgstr "Primus"
-
-#~ msgid "Porn Groove"
-#~ msgstr "Porn Groove"
-
-#~ msgid "Slow Jam"
-#~ msgstr "Slow Jam"
-
-#~ msgid "Club"
-#~ msgstr "Klubb"
-
-#~ msgid "Tango"
-#~ msgstr "Tango"
-
-#~ msgid "Samba"
-#~ msgstr "Samba"
-
-#~ msgid "Folklore"
-#~ msgstr "Folklore"
-
-#~ msgid "Ballad"
-#~ msgstr "Ballad"
-
-#~ msgid "Power Ballad"
-#~ msgstr "Power Ballad"
-
-#~ msgid "Rhythmic Soul"
-#~ msgstr "Rhythmic Soul"
-
-#~ msgid "Freestyle"
-#~ msgstr "Freestyle"
-
-#~ msgid "Duet"
-#~ msgstr "Duett"
-
-#~ msgid "Punk Rock"
-#~ msgstr "Punkrock"
-
-#~ msgid "Drum Solo"
-#~ msgstr "Trumsolo"
-
-#~ msgid "A Cappella"
-#~ msgstr "A cappella"
-
-#~ msgid "Euro-House"
-#~ msgstr "Euro-House"
-
-#~ msgid "Dance Hall"
-#~ msgstr "Dance Hall"
-
-#~ msgid "Goa"
-#~ msgstr "Goa"
-
-#~ msgid "Drum & Bass"
-#~ msgstr "Drum & Bass"
-
-#~ msgid "Club-House"
-#~ msgstr "Club-House"
-
-#~ msgid "Hardcore"
-#~ msgstr "Hardcore"
-
-#~ msgid "Terror"
-#~ msgstr "Terror"
-
-#~ msgid "Indie"
-#~ msgstr "Indie"
-
-#~ msgid "BritPop"
-#~ msgstr "BritPop"
-
-#~ msgid "Negerpunk"
-#~ msgstr "Negerpunk"
-
-#~ msgid "Polsk Punk"
-#~ msgstr "Polsk punk"
-
-#~ msgid "Beat"
-#~ msgstr "Beat"
-
-#~ msgid "Christian Gangsta Rap"
-#~ msgstr "Kristen gangsta rap"
-
-#~ msgid "Heavy Metal"
-#~ msgstr "Heavy Metal"
-
-#~ msgid "Black Metal"
-#~ msgstr "Black Metal"
-
-#~ msgid "Crossover"
-#~ msgstr "Crossover"
-
-#~ msgid "Contemporary Christian"
-#~ msgstr "Modern kristen"
-
-#~ msgid "Christian Rock"
-#~ msgstr "Kristen rock"
-
-#~ msgid "Merengue"
-#~ msgstr "Merengue"
-
-#~ msgid "Salsa"
-#~ msgstr "Salsa"
-
-#~ msgid "Thrash Metal"
-#~ msgstr "Thrash Metal"
-
-#~ msgid "Anime"
-#~ msgstr "Anime"
-
-#~ msgid "JPop"
-#~ msgstr "JPop"
-
-#~ msgid "Synthpop"
-#~ msgstr "Synthpop"
-
-#~ msgid "Nu-Metal"
-#~ msgstr "Nu-Metal"
-
-#~ msgid "Art Rock"
-#~ msgstr "Art rock"
-
-#~ msgid "Editing Disc ID: %s"
-#~ msgstr "Redigerar skiv-id: %s"
-
-#~ msgid "Editing Disc ID: "
-#~ msgstr "Redigerar skiv-id: "
-
-#~ msgid "_Artist:"
-#~ msgstr "_Artist:"
-
-#~ msgid "Disc _Title:"
-#~ msgstr "Skiv_titel:"
-
-#~ msgid "Show advanced disc options"
-#~ msgstr "Visa avancerade skivalternativ"
-
-#~ msgid "Hide advanced disc options"
-#~ msgstr "Dölj avancerade skivalternativ"
-
-#~ msgid "_Disc comments:"
-#~ msgstr "_Skivkommentarer:"
-
-#~ msgid "_Genre:"
-#~ msgstr "_Genre:"
-
-#~ msgid "_Year:"
-#~ msgstr "_År:"
-
-#~ msgid "Length"
-#~ msgstr "Speltid"
-
-#~ msgid "Show advanced track options"
-#~ msgstr "Visa avancerade spåralternativ"
-
-#~ msgid "Hide advanced track options"
-#~ msgstr "Dölj avancerade spåralternativ"
-
-#~ msgid "_Extra track data:"
-#~ msgstr "_Extra spårdata:"
-
-#~ msgid "Line for displaying the time elapsed for the current track"
-#~ msgstr "Linje för visning av den tid som gått tid för aktuellt spår"
-
-#~ msgid "Info Line"
-#~ msgstr "Informationsrad"
-
-#~ msgid "Line for displaying information"
-#~ msgstr "Rad för visning av information"
-
-#~ msgid "Line for displaying the name of the artist"
-#~ msgstr "Rad för visning av namnet på artisten"
-
-#~ msgid "Album Line"
-#~ msgstr "Albumrad"
-
-#~ msgid "Line for displaying the name of the album"
-#~ msgstr "Rad för visning av namnet på albumet"
-
-#~ msgid "Pause"
-#~ msgstr "Paus"
-
-#~ msgid "Playing %s - %s"
-#~ msgstr "Spelar %s - %s"
-
-#~ msgid "Unknown Artist"
-#~ msgstr "Okänd artist"
-
-#~ msgid "Unknown Album"
-#~ msgstr "Okänt album"
-
-#~ msgid "Playing"
-#~ msgstr "Spelar"
-
-#~ msgid "Paused"
-#~ msgstr "Gör paus"
-
-#~ msgid "CD Player"
-#~ msgstr "Cd-spelare"
-
-#~ msgid "Stopped"
-#~ msgstr "Stoppad"
-
-#~ msgid "Disc error"
-#~ msgstr "Skivfel"
-
-#~ msgid "Data CD"
-#~ msgstr "Data-cd"
-
-#~ msgid "No Cdrom"
-#~ msgstr "Ingen cd-rom"
-
-#~ msgid "Drive Error"
-#~ msgstr "Enhetsfel"
-
-#~ msgid "You do not seem to have permission to access %s."
-#~ msgstr "Du verkar inte ha rättighet att komma åt %s."
-
-#~ msgid "Unknown artist"
-#~ msgstr "Okänd artist"
-
-#~ msgid "Unknown disc"
-#~ msgstr "Okänd skiva"
-
-#~ msgid "%d - Unknown"
-#~ msgstr "%d - okänd"
-
-#~ msgid "P_revious track"
-#~ msgstr "F_öregående spår"
-
-#~ msgid "_Stop"
-#~ msgstr "_Stopp"
-
-#~ msgid "_Play / Pause"
-#~ msgstr "S_pela/Paus"
-
-#~ msgid "_Next track"
-#~ msgstr "_Nästa spår"
-
-#~ msgid "_Eject disc"
-#~ msgstr "_Mata ut skiva"
-
-#~ msgid "_Help"
-#~ msgstr "_Hjälp"
-
-#~ msgid "_About CD player"
-#~ msgstr "_Om cd-spelare"
-
-#~ msgid "Set device"
-#~ msgstr "Ställ in enhet"
-
-#~ msgid "No CD device"
-#~ msgstr "Ingen cd-enhet"
-
-#~ msgid "_Details"
-#~ msgstr "_Detaljer"
-
-#~ msgid "_Set device"
-#~ msgstr "_Ställ in enhet"
-
-#~ msgid "Invalid CD device"
-#~ msgstr "Ogiltig cd-enhet"
-
-#~ msgid "Position"
-#~ msgstr "Position"
-
-#~ msgid "Open track editor"
-#~ msgstr "Öppna spårredigerare"
-
-#~ msgid "Track editor"
-#~ msgstr "Spårredigerare"
-
-#~ msgid "Open preferences"
-#~ msgstr "Öppna inställningar"
-
-#~ msgid "Preferences"
-#~ msgstr "Inställningar"
-
-#~ msgid "Track List"
-#~ msgstr "Spårlista"
-
-#~ msgid "Previous track"
-#~ msgstr "Föregående spår"
-
-#~ msgid "Previous"
-#~ msgstr "Föregående"
-
-#~ msgid "Rewind"
-#~ msgstr "Spola tillbaka"
-
-#~ msgid "Play / Pause"
-#~ msgstr "Spela/Paus"
-
-#~ msgid "Stop"
-#~ msgstr "Stopp"
-
-#~ msgid "Fast forward"
-#~ msgstr "Snabbspola"
-
-#~ msgid "Next track"
-#~ msgstr "Nästa spår"
-
-#~ msgid "Eject CD"
-#~ msgstr "Mata ut cd"
-
-#~ msgid "Eject"
-#~ msgstr "Mata ut"
-
-#~ msgid "CD device to use"
-#~ msgstr "Cd-enhet att använda"
-
-#~ msgid "Only start if there isn't already a CD player application running"
-#~ msgstr "Starta endast om det inte finns ett annat cd-spelarprogram som kör"
-
-#~ msgid "Play the CD on startup"
-#~ msgstr "Spela cd-skivan vid uppstart"
-
-#~ msgid "Cannot create player"
-#~ msgstr "Kan inte skapa spelare"
-
-#~ msgid "Play audio CDs"
-#~ msgstr "Spela ljud-cd"
-
-#~ msgid "CD player theme"
-#~ msgstr "Cd-spelartema"
-
-#~ msgid "Device path"
-#~ msgstr "Enhetssökväg"
-
-#~ msgid "Record sound clips"
-#~ msgstr "Spela in ljudklipp"
-
-#~ msgid "Sound Recorder"
-#~ msgstr "Ljudinspelare"
-
-#~ msgid "About"
-#~ msgstr "Om"
-
-#~ msgid "Close"
-#~ msgstr "Stäng"
-
-#~ msgid "Close this window"
-#~ msgstr "Stäng detta fönster"
-
-#~ msgid "Contents"
-#~ msgstr "Innehåll"
-
-#~ msgid "Create a new sample"
-#~ msgstr "Skapa ett nytt ljudklipp"
-
-#~ msgid "File Information"
-#~ msgstr "Filinformation"
-
-#~ msgid "File _Information"
-#~ msgstr "Fil_information"
-
-#~ msgid "Main toolbar"
-#~ msgstr "Huvudverktygsrad"
-
-#~ msgid "New"
-#~ msgstr "Nytt"
-
-#~ msgid "Open"
-#~ msgstr "Öppna"
-
-#~ msgid "Open a file"
-#~ msgstr "Öppna en fil"
-
-#~ msgid "Play sound"
-#~ msgstr "Spela ljud"
-
-#~ msgid "Quit"
-#~ msgstr "Avsluta"
-
-#~ msgid "Quit the application"
-#~ msgstr "Avsluta programmet"
-
-#~ msgid "Recent _Files"
-#~ msgstr "Senaste _filer"
-
-#~ msgid "Record sound"
-#~ msgstr "Spela in ljud"
-
-#~ msgid "Run Mixer"
-#~ msgstr "Kör mixer"
-
-#~ msgid "Run _Mixer"
-#~ msgstr "Kör _mixer"
-
-#~ msgid "Run the audio mixer"
-#~ msgstr "Kör ljudmixern"
-
-#~ msgid "Save"
-#~ msgstr "Spara"
-
-#~ msgid "Save As"
-#~ msgstr "Spara som"
-
-#~ msgid "Save _As..."
-#~ msgstr "Spara so_m..."
-
-#~ msgid "Save the current file"
-#~ msgstr "Spara den aktuella filen"
-
-#~ msgid "Save the current file with a different name"
-#~ msgstr "Spara den aktuella filen med ett annat namn"
-
-#~ msgid "Show information about the current file"
-#~ msgstr "Visa information om den aktuella filen"
-
-#~ msgid "Show information for Sound Recorder"
-#~ msgstr "Visa information för ljudinspelaren"
-
-#~ msgid "Stop sound"
-#~ msgstr "Stoppa ljud"
-
-#~ msgid "_About"
-#~ msgstr "_Om"
-
-#~ msgid "_Close Window"
-#~ msgstr "S_täng fönster"
-
-#~ msgid "_Contents"
-#~ msgstr "_Innehåll"
-
-#~ msgid "_Control"
-#~ msgstr "_Kontroll"
-
-#~ msgid "_File"
-#~ msgstr "_Fil"
-
-#~ msgid "_New"
-#~ msgstr "_Nytt"
-
-#~ msgid "_Open..."
-#~ msgstr "_Öppna..."
-
-#~ msgid "_Play"
-#~ msgstr "_Spela"
-
-#~ msgid "_Quit"
-#~ msgstr "_Avsluta"
-
-#~ msgid "_Record"
-#~ msgstr "Spela _in"
-
-#~ msgid "_Save"
-#~ msgstr "_Spara"
-
-#~ msgid "hours"
-#~ msgstr "timmar"
-
-#~ msgid "hour"
-#~ msgstr "timme"
-
-#~ msgid "minutes"
-#~ msgstr "minuter"
-
-#~ msgid "minute"
-#~ msgstr "minut"
-
-#~ msgid "seconds"
-#~ msgstr "sekunder"
-
-#~ msgid "second"
-#~ msgstr "sekund"
-
-#~ msgid "Ready"
-#~ msgstr "Klar"
-
-#~ msgid "Save file as"
-#~ msgstr "Spara fil som"
-
-#~ msgid "%s is not installed in the path."
-#~ msgstr "%s är inte installerad i sökvägen."
-
-#~ msgid "There was an error starting %s: %s"
-#~ msgstr "Det uppstod ett fel vid start av %s: %s"
-
-#~ msgid "%s (Has not been saved)"
-#~ msgstr "%s (Har inte sparats)"
-
-#~ msgid "Unknown size"
-#~ msgstr "Okänd storlek"
-
-#~ msgid "%.1f kHz"
-#~ msgstr "%.1f kHz"
-
-#~ msgid "%.0f kb/s"
-#~ msgstr "%.0f kb/s"
-
-#~ msgid "1 (mono)"
-#~ msgstr "1 (mono)"
-
-#~ msgid "2 (stereo)"
-#~ msgstr "2 (stereo)"
-
-#~ msgid "%s Information"
-#~ msgstr "Information om %s"
-
-#~ msgid "Folder:"
-#~ msgstr "Mapp:"
-
-#~ msgid "Filename:"
-#~ msgstr "Filnamn:"
-
-#~ msgid "File size:"
-#~ msgstr "Filstorlek:"
-
-#~ msgid "Audio Information"
-#~ msgstr "Ljudinformation"
-
-#~ msgid "Song length:"
-#~ msgstr "Låtlängd:"
-
-#~ msgid "Number of channels:"
-#~ msgstr "Antal kanaler:"
-
-#~ msgid "Sample rate:"
-#~ msgstr "Samplingsfrekvens:"
-
-#~ msgid "Bit rate:"
-#~ msgstr "Bitfrekvens:"
-
-#~ msgid "Playing..."
-#~ msgstr "Spelar upp..."
-
-#~ msgid "%s.%s - Sound Recorder"
-#~ msgstr "%s.%s - Ljudinspelare"
-
-#~ msgid "Record as"
-#~ msgstr "Spela in som"
-
-#~ msgid "File information"
-#~ msgstr "Filinformation"
-
-#~ msgid "<none>"
-#~ msgstr "<ingen>"
-
-#~ msgid "Length:"
-#~ msgstr "Längd:"
-
-#~ msgid "Adjust the volume level"
-#~ msgstr "Justera nivån på volymen"
-
-#~ msgid "Volume Control"
-#~ msgstr "Volymkontroll"
-
-#~ msgid "Channel %d of %s Slider"
-#~ msgstr "Kanal %d för %s-skjutreglage"
-
-#~ msgid "%s Slider %d"
-#~ msgstr "%s-skjutreglage %d"
-
-#~ msgid "Lock"
-#~ msgstr "Lås"
-
-#~ msgid "%s Lock"
-#~ msgstr "%s-lås"
+#~ "En %s-insticksmodul krävs för att spela upp den här strömmen men är inte "
+#~ "installerad."
diff --git a/po/tr.gmo b/po/tr.gmo
index 25e29ee..049c01f 100644
--- a/po/tr.gmo
+++ b/po/tr.gmo
Binary files differ
diff --git a/po/tr.po b/po/tr.po
index eebeaef..883bbab 100644
--- a/po/tr.po
+++ b/po/tr.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 1.0.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-06-22 17:22+0200\n"
+"POT-Creation-Date: 2015-03-16 19:31+0100\n"
 "PO-Revision-Date: 2013-03-10 12:46+0200\n"
 "Last-Translator: Server Acim <serveracim@gmail.com>\n"
 "Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n"
@@ -77,10 +77,6 @@
 msgid "Missing element '%s' - check your GStreamer installation."
 msgstr "Kayıp öğe '%s' - GStreamer kurulumunu denetleyin."
 
-#, c-format
-msgid "A %s plugin is required to play this stream, but not installed."
-msgstr "Bir %s eklenti bu akışı çalmak için gerekli, fakat kurulu değil."
-
 msgid "Could not determine type of stream"
 msgstr "Akışın türü belirlenemiyor"
 
@@ -505,15 +501,20 @@
 msgid "Initial key in which the sound starts"
 msgstr ""
 
+msgid "Print version information and exit"
+msgstr ""
+
+msgid ""
+"Don't exit after showing the initial device list, but wait for devices to "
+"added/removed."
+msgstr ""
+
 msgid "Buffering..."
 msgstr ""
 
 msgid "Clock lost, selecting a new one\n"
 msgstr ""
 
-msgid "Print version information and exit"
-msgstr ""
-
 msgid "Video sink to use (default is autovideosink)"
 msgstr ""
 
@@ -535,6 +536,9 @@
 msgid "Playlist file containing input media files"
 msgstr ""
 
+msgid "Do not print any output (apart from errors)"
+msgstr ""
+
 #, c-format
 msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
 msgstr ""
@@ -542,6 +546,9 @@
 msgid "You must provide at least one filename or URI to play."
 msgstr ""
 
+#~ msgid "A %s plugin is required to play this stream, but not installed."
+#~ msgstr "Bir %s eklenti bu akışı çalmak için gerekli, fakat kurulu değil."
+
 #~ msgid "Uncompressed %s YUV %s"
 #~ msgstr "Sıkıştırılmamış %s YUV %s"
 
diff --git a/po/uk.gmo b/po/uk.gmo
index 72ecc51..391c81e 100644
--- a/po/uk.gmo
+++ b/po/uk.gmo
Binary files differ
diff --git a/po/uk.po b/po/uk.po
index 1e0a33b..c81c16c 100644
--- a/po/uk.po
+++ b/po/uk.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 1.3.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-06-22 17:22+0200\n"
+"POT-Creation-Date: 2015-03-16 19:31+0100\n"
 "PO-Revision-Date: 2014-05-22 07:40+0300\n"
 "Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
 "Language-Team: Ukrainian <translation-team-uk@lists.sourceforge.net>\n"
@@ -86,10 +86,6 @@
 msgstr ""
 "Відсутній елемент «%s». Перевірте, чи встановлено GStreamer належним чином."
 
-#, c-format
-msgid "A %s plugin is required to play this stream, but not installed."
-msgstr "Для відтворення потоку потрібен модуль %s, але він не встановлений."
-
 msgid "Could not determine type of stream"
 msgstr "Не вдалося визначити тип даних потоку"
 
@@ -525,15 +521,20 @@
 msgid "Initial key in which the sound starts"
 msgstr "Початкова тональність, якою розпочинається звук"
 
+msgid "Print version information and exit"
+msgstr "Показати дані щодо версії і завершити роботу"
+
+msgid ""
+"Don't exit after showing the initial device list, but wait for devices to "
+"added/removed."
+msgstr ""
+
 msgid "Buffering..."
 msgstr "Буферизація…"
 
 msgid "Clock lost, selecting a new one\n"
 msgstr "Доступ до годинника втрачено, вибираємо новий\n"
 
-msgid "Print version information and exit"
-msgstr "Показати дані щодо версії і завершити роботу"
-
 msgid "Video sink to use (default is autovideosink)"
 msgstr "Приймач відеоданих, яким слід скористатися (типовим є autovideosink)"
 
@@ -555,6 +556,9 @@
 msgid "Playlist file containing input media files"
 msgstr "Файл списку відтворення, що містить мультимедійні файли вхідних даних"
 
+msgid "Do not print any output (apart from errors)"
+msgstr ""
+
 #, c-format
 msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
 msgstr "Користування: %s ФАЙЛ1|АДРЕСА1 [ФАЙЛ2|АДРЕСА2] [ФАЙЛ3|АДРЕСА3] ..."
@@ -563,6 +567,9 @@
 msgstr ""
 "Вам слід вказати принаймні одну назву файла або адресу для відтворення."
 
+#~ msgid "A %s plugin is required to play this stream, but not installed."
+#~ msgstr "Для відтворення потоку потрібен модуль %s, але він не встановлений."
+
 #~ msgid "Uncompressed %s YUV %s"
 #~ msgstr "Нестиснене %s, YUV %s"
 
diff --git a/po/vi.gmo b/po/vi.gmo
index a636df5..30d03e5 100644
--- a/po/vi.gmo
+++ b/po/vi.gmo
Binary files differ
diff --git a/po/vi.po b/po/vi.po
index ff9cd6c..fc16c99 100644
--- a/po/vi.po
+++ b/po/vi.po
@@ -1,16 +1,16 @@
 # Vietnamese Translation for GST Plugins Base.
 # Bản dịch tiếng Việt dành cho GST Plugins Base.
-# Copyright © 2013 Free Software Foundation, Inc.
+# Copyright © 2014 Free Software Foundation, Inc.
 # This file is distributed under the same license as the gst-plugins-base package.
 # Clytie Siddall <clytie@riverland.net.au>, 2005-2010.
-# Trần Ngọc Quân <vnwildman@gmail.com>, 2012-20013.
+# Trần Ngọc Quân <vnwildman@gmail.com>, 2012-2014.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-base-1.2.1\n"
+"Project-Id-Version: gst-plugins-base 1.3.90\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-06-22 17:22+0200\n"
-"PO-Revision-Date: 2013-12-11 07:50+0700\n"
+"POT-Creation-Date: 2015-03-16 19:31+0100\n"
+"PO-Revision-Date: 2014-06-30 09:27+0700\n"
 "Last-Translator: Trần Ngọc Quân <vnwildman@gmail.com>\n"
 "Language-Team: Vietnamese <translation-team-vi@lists.sourceforge.net>\n"
 "Language: vi\n"
@@ -38,7 +38,8 @@
 "Could not open audio device for playback. Device is being used by another "
 "application."
 msgstr ""
-"Không thể mở thiết bị âm thanh để phát lại, vì ứng dụng khác đang sử dụng nó."
+"Không thể mở thiết bị âm thanh để phát lại, vì có ứng dụng khác đang sử dụng "
+"nó."
 
 msgid "Could not open audio device for playback."
 msgstr "Không thể mở thiết bị âm thanh để phát lại."
@@ -84,10 +85,6 @@
 msgid "Missing element '%s' - check your GStreamer installation."
 msgstr "Thiếu phần tử “%s” — hãy kiểm tra lại phần cài đặt GStreamer."
 
-#, c-format
-msgid "A %s plugin is required to play this stream, but not installed."
-msgstr "Cần phần bổ sung %s để phát luồng này nhưng chưa cài đặt."
-
 msgid "Could not determine type of stream"
 msgstr "Không thể xác định kiểu của luồng dữ liệu"
 
@@ -391,7 +388,7 @@
 msgstr "Tốc độ màn chập sử dụng khi chụp ảnh, tính bằng giây"
 
 msgid "capturing focal ratio"
-msgstr "tỷ lệ tiêu điểm khi chụp"
+msgstr "tỷ lệ lấy nét khi chụp"
 
 msgid "Focal ratio (f-number) used when capturing the image"
 msgstr "Độ mở ống kính (số-f) được sử dụng khi chụp ảnh"
@@ -519,14 +516,19 @@
 msgid "Initial key in which the sound starts"
 msgstr "Khóa khởi tạo trong cái mà âm thanh khởi chạy"
 
+msgid "Print version information and exit"
+msgstr "In ra thông tin phiên bản và thoát"
+
+msgid ""
+"Don't exit after showing the initial device list, but wait for devices to "
+"added/removed."
+msgstr ""
+
 msgid "Buffering..."
 msgstr "Đang đệm..."
 
 msgid "Clock lost, selecting a new one\n"
-msgstr ""
-
-msgid "Print version information and exit"
-msgstr "In ra thông tin phiên bản và thoát"
+msgstr "Mất đồng hồ, chọn một cái mới\n"
 
 msgid "Video sink to use (default is autovideosink)"
 msgstr "Bộ chứa video được dùng (mặc định là autovideosink)"
@@ -538,15 +540,18 @@
 msgstr "Bật phát lại không khe"
 
 msgid "Shuffle playlist"
-msgstr ""
+msgstr "Xáo trộn danh sách phát"
 
 msgid "Interactive control via keyboard"
-msgstr ""
+msgstr "Điều khiển tương tác thông qua bàn phím"
 
 msgid "Volume"
-msgstr ""
+msgstr "Âm lượng"
 
 msgid "Playlist file containing input media files"
+msgstr "Tập tin danh sách phát có chứa các tập tin đa phương tiện đầu vào"
+
+msgid "Do not print any output (apart from errors)"
 msgstr ""
 
 #, c-format
@@ -556,6 +561,9 @@
 msgid "You must provide at least one filename or URI to play."
 msgstr "Bạn phải cung cấp ít nhất là một tên tập tin hay URI để phát."
 
+#~ msgid "A %s plugin is required to play this stream, but not installed."
+#~ msgstr "Cần phần bổ sung %s để phát luồng này nhưng chưa cài đặt."
+
 #~ msgid "Uncompressed %s YUV %s"
 #~ msgstr "%s YUV %s không nén"
 
diff --git a/po/zh_CN.gmo b/po/zh_CN.gmo
index 33341ba..040bc8f 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 cf93b9b..cb3aad9 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 0.10.21.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-06-22 17:22+0200\n"
+"POT-Creation-Date: 2015-03-16 19:31+0100\n"
 "PO-Revision-Date: 2009-01-14 12:41+0800\n"
 "Last-Translator: Ji ZhengYu <zhengyuji@gmail.com>\n"
 "Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
@@ -73,10 +73,6 @@
 msgid "Missing element '%s' - check your GStreamer installation."
 msgstr "未找到组件‘%s’-请检查您的 GStreamer 安装情况。"
 
-#, c-format
-msgid "A %s plugin is required to play this stream, but not installed."
-msgstr "播放此数据流需要 %s 插件,但它未安装。"
-
 #, fuzzy
 msgid "Could not determine type of stream"
 msgstr "无法创建“typefind”组件。"
@@ -513,15 +509,20 @@
 msgid "Initial key in which the sound starts"
 msgstr ""
 
+msgid "Print version information and exit"
+msgstr ""
+
+msgid ""
+"Don't exit after showing the initial device list, but wait for devices to "
+"added/removed."
+msgstr ""
+
 msgid "Buffering..."
 msgstr ""
 
 msgid "Clock lost, selecting a new one\n"
 msgstr ""
 
-msgid "Print version information and exit"
-msgstr ""
-
 msgid "Video sink to use (default is autovideosink)"
 msgstr ""
 
@@ -543,6 +544,9 @@
 msgid "Playlist file containing input media files"
 msgstr ""
 
+msgid "Do not print any output (apart from errors)"
+msgstr ""
+
 #, c-format
 msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
 msgstr ""
@@ -550,6 +554,9 @@
 msgid "You must provide at least one filename or URI to play."
 msgstr ""
 
+#~ msgid "A %s plugin is required to play this stream, but not installed."
+#~ msgstr "播放此数据流需要 %s 插件,但它未安装。"
+
 #~ msgid "Master"
 #~ msgstr "主音量"
 
diff --git a/sys/Makefile.in b/sys/Makefile.in
index 1ce622c..3a00c68 100644
--- a/sys/Makefile.in
+++ b/sys/Makefile.in
@@ -106,7 +106,6 @@
 	$(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-x11.m4 \
 	$(top_srcdir)/common/m4/gst.m4 \
 	$(top_srcdir)/common/m4/gtk-doc.m4 \
 	$(top_srcdir)/common/m4/introspection.m4 \
@@ -266,6 +265,8 @@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_2_0_CFLAGS = @GIO_UNIX_2_0_CFLAGS@
+GIO_UNIX_2_0_LIBS = @GIO_UNIX_2_0_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
@@ -295,6 +296,8 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
+GST_NET_CFLAGS = @GST_NET_CFLAGS@
+GST_NET_LIBS = @GST_NET_LIBS@
 GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
 GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
@@ -322,7 +325,6 @@
 GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
 GTK_X11_LIBS = @GTK_X11_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
-HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -426,13 +428,12 @@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-XMKMF = @XMKMF@
+XSHM_CFLAGS = @XSHM_CFLAGS@
 XSHM_LIBS = @XSHM_LIBS@
+XVIDEO_CFLAGS = @XVIDEO_CFLAGS@
 XVIDEO_LIBS = @XVIDEO_LIBS@
 X_CFLAGS = @X_CFLAGS@
-X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
-X_PRE_LIBS = @X_PRE_LIBS@
 ZLIB_CFLAGS = @ZLIB_CFLAGS@
 ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
diff --git a/sys/ximage/Makefile.in b/sys/ximage/Makefile.in
index 12c8b5a..e8f60c6 100644
--- a/sys/ximage/Makefile.in
+++ b/sys/ximage/Makefile.in
@@ -103,7 +103,6 @@
 	$(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-x11.m4 \
 	$(top_srcdir)/common/m4/gst.m4 \
 	$(top_srcdir)/common/m4/gtk-doc.m4 \
 	$(top_srcdir)/common/m4/introspection.m4 \
@@ -287,6 +286,8 @@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_2_0_CFLAGS = @GIO_UNIX_2_0_CFLAGS@
+GIO_UNIX_2_0_LIBS = @GIO_UNIX_2_0_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
@@ -316,6 +317,8 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
+GST_NET_CFLAGS = @GST_NET_CFLAGS@
+GST_NET_LIBS = @GST_NET_LIBS@
 GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
 GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
@@ -343,7 +346,6 @@
 GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
 GTK_X11_LIBS = @GTK_X11_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
-HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -447,13 +449,12 @@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-XMKMF = @XMKMF@
+XSHM_CFLAGS = @XSHM_CFLAGS@
 XSHM_LIBS = @XSHM_LIBS@
+XVIDEO_CFLAGS = @XVIDEO_CFLAGS@
 XVIDEO_LIBS = @XVIDEO_LIBS@
 X_CFLAGS = @X_CFLAGS@
-X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
-X_PRE_LIBS = @X_PRE_LIBS@
 ZLIB_CFLAGS = @ZLIB_CFLAGS@
 ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
diff --git a/sys/ximage/ximagepool.c b/sys/ximage/ximagepool.c
index 6cc2cfa..6a0d123 100644
--- a/sys/ximage/ximagepool.c
+++ b/sys/ximage/ximagepool.c
@@ -35,17 +35,6 @@
 GST_DEBUG_CATEGORY_EXTERN (gst_debug_ximagepool);
 #define GST_CAT_DEFAULT gst_debug_ximagepool
 
-struct _GstXImageBufferPoolPrivate
-{
-  GstCaps *caps;
-  GstVideoInfo info;
-  GstVideoAlignment align;
-  guint padded_width;
-  guint padded_height;
-  gboolean add_metavideo;
-  gboolean need_alignment;
-};
-
 /* X11 stuff */
 static gboolean error_caught = FALSE;
 
@@ -225,15 +214,13 @@
   gboolean success = FALSE;
   GstXContext *xcontext;
   gint width, height, align = 15, offset;
-  GstXImageBufferPoolPrivate *priv;
   GstXImageMemory *mem;
 
-  priv = xpool->priv;
   ximagesink = xpool->sink;
   xcontext = ximagesink->xcontext;
 
-  width = priv->padded_width;
-  height = priv->padded_height;
+  width = xpool->padded_width;
+  height = xpool->padded_height;
 
   mem = g_slice_new (GstXImageMemory);
 
@@ -241,10 +228,10 @@
   mem->SHMInfo.shmaddr = ((void *) -1);
   mem->SHMInfo.shmid = -1;
 #endif
-  mem->x = priv->align.padding_left;
-  mem->y = priv->align.padding_top;
-  mem->width = GST_VIDEO_INFO_WIDTH (&priv->info);
-  mem->height = GST_VIDEO_INFO_HEIGHT (&priv->info);
+  mem->x = xpool->align.padding_left;
+  mem->y = xpool->align.padding_top;
+  mem->width = GST_VIDEO_INFO_WIDTH (&xpool->info);
+  mem->height = GST_VIDEO_INFO_HEIGHT (&xpool->info);
   mem->sink = gst_object_ref (ximagesink);
 
   GST_DEBUG_OBJECT (ximagesink, "creating image %p (%dx%d)", mem,
@@ -535,9 +522,6 @@
 /* bufferpool */
 static void gst_ximage_buffer_pool_finalize (GObject * object);
 
-#define GST_XIMAGE_BUFFER_POOL_GET_PRIVATE(obj)  \
-   (G_TYPE_INSTANCE_GET_PRIVATE ((obj), GST_TYPE_XIMAGE_BUFFER_POOL, GstXImageBufferPoolPrivate))
-
 #define gst_ximage_buffer_pool_parent_class parent_class
 G_DEFINE_TYPE (GstXImageBufferPool, gst_ximage_buffer_pool,
     GST_TYPE_BUFFER_POOL);
@@ -556,11 +540,12 @@
 ximage_buffer_pool_set_config (GstBufferPool * pool, GstStructure * config)
 {
   GstXImageBufferPool *xpool = GST_XIMAGE_BUFFER_POOL_CAST (pool);
-  GstXImageBufferPoolPrivate *priv = xpool->priv;
   GstVideoInfo info;
   GstCaps *caps;
+  guint size, min_buffers, max_buffers;
 
-  if (!gst_buffer_pool_config_get_params (config, &caps, NULL, NULL, NULL))
+  if (!gst_buffer_pool_config_get_params (config, &caps, &size, &min_buffers,
+          &max_buffers))
     goto wrong_config;
 
   if (caps == NULL)
@@ -574,44 +559,49 @@
       caps);
 
   /* keep track of the width and height and caps */
-  if (priv->caps)
-    gst_caps_unref (priv->caps);
-  priv->caps = gst_caps_ref (caps);
+  if (xpool->caps)
+    gst_caps_unref (xpool->caps);
+  xpool->caps = gst_caps_ref (caps);
 
   /* check for the configured metadata */
-  priv->add_metavideo =
+  xpool->add_metavideo =
       gst_buffer_pool_config_has_option (config,
       GST_BUFFER_POOL_OPTION_VIDEO_META);
 
   /* parse extra alignment info */
-  priv->need_alignment = gst_buffer_pool_config_has_option (config,
+  xpool->need_alignment = gst_buffer_pool_config_has_option (config,
       GST_BUFFER_POOL_OPTION_VIDEO_ALIGNMENT);
 
-  if (priv->need_alignment) {
-    gst_buffer_pool_config_get_video_alignment (config, &priv->align);
+  if (xpool->need_alignment) {
+    gst_buffer_pool_config_get_video_alignment (config, &xpool->align);
 
-    GST_LOG_OBJECT (pool, "padding %u-%ux%u-%u", priv->align.padding_top,
-        priv->align.padding_left, priv->align.padding_left,
-        priv->align.padding_bottom);
+    GST_LOG_OBJECT (pool, "padding %u-%ux%u-%u", xpool->align.padding_top,
+        xpool->align.padding_left, xpool->align.padding_left,
+        xpool->align.padding_bottom);
 
     /* do padding and alignment */
-    gst_video_info_align (&info, &priv->align);
+    gst_video_info_align (&info, &xpool->align);
+
+    gst_buffer_pool_config_set_video_alignment (config, &xpool->align);
 
     /* we need the video metadata too now */
-    priv->add_metavideo = TRUE;
+    xpool->add_metavideo = TRUE;
   } else {
-    gst_video_alignment_reset (&priv->align);
+    gst_video_alignment_reset (&xpool->align);
   }
 
   /* add the padding */
-  priv->padded_width =
-      GST_VIDEO_INFO_WIDTH (&info) + priv->align.padding_left +
-      priv->align.padding_right;
-  priv->padded_height =
-      GST_VIDEO_INFO_HEIGHT (&info) + priv->align.padding_top +
-      priv->align.padding_bottom;
+  xpool->padded_width =
+      GST_VIDEO_INFO_WIDTH (&info) + xpool->align.padding_left +
+      xpool->align.padding_right;
+  xpool->padded_height =
+      GST_VIDEO_INFO_HEIGHT (&info) + xpool->align.padding_top +
+      xpool->align.padding_bottom;
 
-  priv->info = info;
+  xpool->info = info;
+
+  gst_buffer_pool_config_set_params (config, caps, info.size, min_buffers,
+      max_buffers);
 
   return GST_BUFFER_POOL_CLASS (parent_class)->set_config (pool, config);
 
@@ -640,12 +630,11 @@
     GstBufferPoolAcquireParams * params)
 {
   GstXImageBufferPool *xpool = GST_XIMAGE_BUFFER_POOL_CAST (pool);
-  GstXImageBufferPoolPrivate *priv = xpool->priv;
   GstVideoInfo *info;
   GstBuffer *ximage;
   GstMemory *mem;
 
-  info = &priv->info;
+  info = &xpool->info;
 
   ximage = gst_buffer_new ();
   mem = ximage_memory_alloc (xpool);
@@ -655,7 +644,7 @@
   }
   gst_buffer_append_memory (ximage, mem);
 
-  if (priv->add_metavideo) {
+  if (xpool->add_metavideo) {
     GST_DEBUG_OBJECT (pool, "adding GstVideoMeta");
     /* these are just the defaults for now */
     gst_buffer_add_video_meta_full (ximage, GST_VIDEO_FRAME_FLAG_NONE,
@@ -697,8 +686,6 @@
   GObjectClass *gobject_class = (GObjectClass *) klass;
   GstBufferPoolClass *gstbufferpool_class = (GstBufferPoolClass *) klass;
 
-  g_type_class_add_private (klass, sizeof (GstXImageBufferPoolPrivate));
-
   gobject_class->finalize = gst_ximage_buffer_pool_finalize;
 
   gstbufferpool_class->get_options = ximage_buffer_pool_get_options;
@@ -709,19 +696,18 @@
 static void
 gst_ximage_buffer_pool_init (GstXImageBufferPool * pool)
 {
-  pool->priv = GST_XIMAGE_BUFFER_POOL_GET_PRIVATE (pool);
+  /* nothing to do here */
 }
 
 static void
 gst_ximage_buffer_pool_finalize (GObject * object)
 {
   GstXImageBufferPool *pool = GST_XIMAGE_BUFFER_POOL_CAST (object);
-  GstXImageBufferPoolPrivate *priv = pool->priv;
 
   GST_LOG_OBJECT (pool, "finalize XImage buffer pool %p", pool);
 
-  if (priv->caps)
-    gst_caps_unref (priv->caps);
+  if (pool->caps)
+    gst_caps_unref (pool->caps);
   gst_object_unref (pool->sink);
   gst_object_unref (pool->allocator);
 
diff --git a/sys/ximage/ximagepool.h b/sys/ximage/ximagepool.h
index 8dfccf6..41c388c 100644
--- a/sys/ximage/ximagepool.h
+++ b/sys/ximage/ximagepool.h
@@ -43,7 +43,6 @@
 
 typedef struct _GstXImageBufferPool GstXImageBufferPool;
 typedef struct _GstXImageBufferPoolClass GstXImageBufferPoolClass;
-typedef struct _GstXImageBufferPoolPrivate GstXImageBufferPoolPrivate;
 
 #include "ximagesink.h"
 
@@ -88,7 +87,13 @@
   GstXImageSink *sink;
   GstAllocator *allocator;
 
-  GstXImageBufferPoolPrivate *priv;
+  GstCaps *caps;
+  GstVideoInfo info;
+  GstVideoAlignment align;
+  guint    padded_width;
+  guint    padded_height;
+  gboolean add_metavideo;
+  gboolean need_alignment;
 };
 
 struct _GstXImageBufferPoolClass
diff --git a/sys/ximage/ximagesink.c b/sys/ximage/ximagesink.c
index ff6a9d6..2a1f76b 100644
--- a/sys/ximage/ximagesink.c
+++ b/sys/ximage/ximagesink.c
@@ -230,7 +230,9 @@
 {
   GstXImageMemory *mem;
   GstVideoCropMeta *crop;
-  GstVideoRectangle src, dst, result;
+  GstVideoRectangle src = { 0, };
+  GstVideoRectangle dst = { 0, };
+  GstVideoRectangle result;
   gboolean draw_border = FALSE;
 
   /* We take the flow_lock. If expose is in there we don't want to run
diff --git a/sys/xvimage/Makefile.in b/sys/xvimage/Makefile.in
index 716af13..0d3659b 100644
--- a/sys/xvimage/Makefile.in
+++ b/sys/xvimage/Makefile.in
@@ -103,7 +103,6 @@
 	$(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-x11.m4 \
 	$(top_srcdir)/common/m4/gst.m4 \
 	$(top_srcdir)/common/m4/gtk-doc.m4 \
 	$(top_srcdir)/common/m4/introspection.m4 \
@@ -289,6 +288,8 @@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_2_0_CFLAGS = @GIO_UNIX_2_0_CFLAGS@
+GIO_UNIX_2_0_LIBS = @GIO_UNIX_2_0_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
@@ -318,6 +319,8 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
+GST_NET_CFLAGS = @GST_NET_CFLAGS@
+GST_NET_LIBS = @GST_NET_LIBS@
 GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
 GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
@@ -345,7 +348,6 @@
 GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
 GTK_X11_LIBS = @GTK_X11_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
-HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -449,13 +451,12 @@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-XMKMF = @XMKMF@
+XSHM_CFLAGS = @XSHM_CFLAGS@
 XSHM_LIBS = @XSHM_LIBS@
+XVIDEO_CFLAGS = @XVIDEO_CFLAGS@
 XVIDEO_LIBS = @XVIDEO_LIBS@
 X_CFLAGS = @X_CFLAGS@
-X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
-X_PRE_LIBS = @X_PRE_LIBS@
 ZLIB_CFLAGS = @ZLIB_CFLAGS@
 ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
diff --git a/sys/xvimage/xvcontext.c b/sys/xvimage/xvcontext.c
index 146e4a5..6d84e37 100644
--- a/sys/xvimage/xvcontext.c
+++ b/sys/xvimage/xvcontext.c
@@ -153,18 +153,20 @@
 
   /* Set XV_AUTOPAINT_COLORKEY and XV_DOUBLE_BUFFER and XV_COLORKEY */
   {
-    int count, todo = 3;
+    int count, todo = 4;
     XvAttribute *const attr = XvQueryPortAttributes (context->disp,
         context->xv_port_id, &count);
     static const char autopaint[] = "XV_AUTOPAINT_COLORKEY";
     static const char dbl_buffer[] = "XV_DOUBLE_BUFFER";
     static const char colorkey[] = "XV_COLORKEY";
+    static const char iturbt709[] = "XV_ITURBT_709";
 
     GST_DEBUG ("Checking %d Xv port attributes", count);
 
     context->have_autopaint_colorkey = FALSE;
     context->have_double_buffer = FALSE;
     context->have_colorkey = FALSE;
+    context->have_iturbt709 = FALSE;
 
     for (i = 0; ((i < count) && todo); i++) {
       GST_DEBUG ("Got attribute %s", attr[i].name);
@@ -230,6 +232,9 @@
         }
         todo--;
         context->have_colorkey = TRUE;
+      } else if (!strcmp (attr[i].name, iturbt709)) {
+        todo--;
+        context->have_iturbt709 = TRUE;
       }
     }
 
@@ -891,6 +896,9 @@
   Atom prop_atom;
   int xv_value;
 
+  if (!context->have_iturbt709)
+    return;
+
   switch (colorimetry->matrix) {
     case GST_VIDEO_COLOR_MATRIX_SMPTE240M:
     case GST_VIDEO_COLOR_MATRIX_BT709:
diff --git a/sys/xvimage/xvcontext.h b/sys/xvimage/xvcontext.h
index 1bd0d97..af67877 100644
--- a/sys/xvimage/xvcontext.h
+++ b/sys/xvimage/xvcontext.h
@@ -156,6 +156,7 @@
   gboolean have_autopaint_colorkey;
   gboolean have_colorkey;
   gboolean have_double_buffer;
+  gboolean have_iturbt709;
 
   GList *formats_list;
 
diff --git a/sys/xvimage/xvimageallocator.c b/sys/xvimage/xvimageallocator.c
index 3aa1a82..c14a165 100644
--- a/sys/xvimage/xvimageallocator.c
+++ b/sys/xvimage/xvimageallocator.c
@@ -625,9 +625,9 @@
   }
 #ifdef HAVE_XSHM
   if (context->use_xshm) {
-    GST_LOG ("XvShmPutImage with image %dx%d and window %dx%d, from xvimage %"
-        GST_PTR_FORMAT, src_crop->w, src_crop->h,
-        window->render_rect.w, window->render_rect.h, mem);
+    GST_LOG ("XvShmPutImage with image %dx%d and window %dx%d, from xvimage %p",
+        src_crop->w, src_crop->h, window->render_rect.w, window->render_rect.h,
+        mem);
 
     XvShmPutImage (context->disp,
         context->xv_port_id,
diff --git a/sys/xvimage/xvimagepool.c b/sys/xvimage/xvimagepool.c
index 244a51a..2e0d172 100644
--- a/sys/xvimage/xvimagepool.c
+++ b/sys/xvimage/xvimagepool.c
@@ -37,28 +37,9 @@
 GST_DEBUG_CATEGORY_EXTERN (gst_debug_xvimagepool);
 #define GST_CAT_DEFAULT gst_debug_xvimagepool
 
-
-struct _GstXvImageBufferPoolPrivate
-{
-  GstXvImageAllocator *allocator;
-
-  GstCaps *caps;
-  gint im_format;
-  GstVideoRectangle crop;
-  GstVideoInfo info;
-  GstVideoAlignment align;
-  guint padded_width;
-  guint padded_height;
-  gboolean add_metavideo;
-  gboolean need_alignment;
-};
-
 /* bufferpool */
 static void gst_xvimage_buffer_pool_finalize (GObject * object);
 
-#define GST_XVIMAGE_BUFFER_POOL_GET_PRIVATE(obj)  \
-   (G_TYPE_INSTANCE_GET_PRIVATE ((obj), GST_TYPE_XVIMAGE_BUFFER_POOL, GstXvImageBufferPoolPrivate))
-
 #define gst_xvimage_buffer_pool_parent_class parent_class
 G_DEFINE_TYPE (GstXvImageBufferPool, gst_xvimage_buffer_pool,
     GST_TYPE_BUFFER_POOL);
@@ -77,12 +58,13 @@
 xvimage_buffer_pool_set_config (GstBufferPool * pool, GstStructure * config)
 {
   GstXvImageBufferPool *xvpool = GST_XVIMAGE_BUFFER_POOL_CAST (pool);
-  GstXvImageBufferPoolPrivate *priv = xvpool->priv;
   GstVideoInfo info;
   GstCaps *caps;
+  guint size, min_buffers, max_buffers;
   GstXvContext *context;
 
-  if (!gst_buffer_pool_config_get_params (config, &caps, NULL, NULL, NULL))
+  if (!gst_buffer_pool_config_get_params (config, &caps, &size, &min_buffers,
+          &max_buffers))
     goto wrong_config;
 
   if (caps == NULL)
@@ -95,54 +77,59 @@
   GST_LOG_OBJECT (pool, "%dx%d, caps %" GST_PTR_FORMAT, info.width, info.height,
       caps);
 
-  context = gst_xvimage_allocator_peek_context (priv->allocator);
+  context = gst_xvimage_allocator_peek_context (xvpool->allocator);
 
-  priv->im_format = gst_xvcontext_get_format_from_info (context, &info);
-  if (priv->im_format == -1)
+  xvpool->im_format = gst_xvcontext_get_format_from_info (context, &info);
+  if (xvpool->im_format == -1)
     goto unknown_format;
 
-  if (priv->caps)
-    gst_caps_unref (priv->caps);
-  priv->caps = gst_caps_ref (caps);
+  if (xvpool->caps)
+    gst_caps_unref (xvpool->caps);
+  xvpool->caps = gst_caps_ref (caps);
 
   /* enable metadata based on config of the pool */
-  priv->add_metavideo =
+  xvpool->add_metavideo =
       gst_buffer_pool_config_has_option (config,
       GST_BUFFER_POOL_OPTION_VIDEO_META);
 
   /* parse extra alignment info */
-  priv->need_alignment = gst_buffer_pool_config_has_option (config,
+  xvpool->need_alignment = gst_buffer_pool_config_has_option (config,
       GST_BUFFER_POOL_OPTION_VIDEO_ALIGNMENT);
 
-  if (priv->need_alignment) {
-    gst_buffer_pool_config_get_video_alignment (config, &priv->align);
+  if (xvpool->need_alignment) {
+    gst_buffer_pool_config_get_video_alignment (config, &xvpool->align);
 
-    GST_LOG_OBJECT (pool, "padding %u-%ux%u-%u", priv->align.padding_top,
-        priv->align.padding_left, priv->align.padding_left,
-        priv->align.padding_bottom);
+    GST_LOG_OBJECT (pool, "padding %u-%ux%u-%u", xvpool->align.padding_top,
+        xvpool->align.padding_left, xvpool->align.padding_left,
+        xvpool->align.padding_bottom);
 
     /* do padding and alignment */
-    gst_video_info_align (&info, &priv->align);
+    gst_video_info_align (&info, &xvpool->align);
+
+    gst_buffer_pool_config_set_video_alignment (config, &xvpool->align);
 
     /* we need the video metadata too now */
-    priv->add_metavideo = TRUE;
+    xvpool->add_metavideo = TRUE;
   } else {
-    gst_video_alignment_reset (&priv->align);
+    gst_video_alignment_reset (&xvpool->align);
   }
 
   /* add the padding */
-  priv->padded_width =
-      GST_VIDEO_INFO_WIDTH (&info) + priv->align.padding_left +
-      priv->align.padding_right;
-  priv->padded_height =
-      GST_VIDEO_INFO_HEIGHT (&info) + priv->align.padding_top +
-      priv->align.padding_bottom;
+  xvpool->padded_width =
+      GST_VIDEO_INFO_WIDTH (&info) + xvpool->align.padding_left +
+      xvpool->align.padding_right;
+  xvpool->padded_height =
+      GST_VIDEO_INFO_HEIGHT (&info) + xvpool->align.padding_top +
+      xvpool->align.padding_bottom;
 
-  priv->info = info;
-  priv->crop.x = priv->align.padding_left;
-  priv->crop.y = priv->align.padding_top;
-  priv->crop.w = priv->info.width;
-  priv->crop.h = priv->info.height;
+  xvpool->info = info;
+  xvpool->crop.x = xvpool->align.padding_left;
+  xvpool->crop.y = xvpool->align.padding_top;
+  xvpool->crop.w = xvpool->info.width;
+  xvpool->crop.h = xvpool->info.height;
+
+  gst_buffer_pool_config_set_params (config, caps, info.size, min_buffers,
+      max_buffers);
 
   return GST_BUFFER_POOL_CLASS (parent_class)->set_config (pool, config);
 
@@ -167,7 +154,7 @@
   {
     GST_WARNING_OBJECT (pool, "failed to get format from caps %"
         GST_PTR_FORMAT, caps);
-    return FALSE;;
+    return FALSE;
   }
 }
 
@@ -177,17 +164,16 @@
     GstBufferPoolAcquireParams * params)
 {
   GstXvImageBufferPool *xvpool = GST_XVIMAGE_BUFFER_POOL_CAST (pool);
-  GstXvImageBufferPoolPrivate *priv = xvpool->priv;
   GstVideoInfo *info;
   GstBuffer *xvimage;
   GstMemory *mem;
 
-  info = &priv->info;
+  info = &xvpool->info;
 
   xvimage = gst_buffer_new ();
 
-  mem = gst_xvimage_allocator_alloc (priv->allocator, priv->im_format,
-      priv->padded_width, priv->padded_height, &priv->crop, NULL);
+  mem = gst_xvimage_allocator_alloc (xvpool->allocator, xvpool->im_format,
+      xvpool->padded_width, xvpool->padded_height, &xvpool->crop, NULL);
 
   if (mem == NULL) {
     gst_buffer_unref (xvimage);
@@ -195,7 +181,7 @@
   }
   gst_buffer_append_memory (xvimage, mem);
 
-  if (priv->add_metavideo) {
+  if (xvpool->add_metavideo) {
     GST_DEBUG_OBJECT (pool, "adding GstVideoMeta");
     gst_buffer_add_video_meta_full (xvimage, GST_VIDEO_FRAME_FLAG_NONE,
         GST_VIDEO_INFO_FORMAT (info), GST_VIDEO_INFO_WIDTH (info),
@@ -221,7 +207,7 @@
   GstXvImageBufferPool *pool;
 
   pool = g_object_new (GST_TYPE_XVIMAGE_BUFFER_POOL, NULL);
-  pool->priv->allocator = gst_object_ref (allocator);
+  pool->allocator = gst_object_ref (allocator);
 
   GST_LOG_OBJECT (pool, "new XvImage buffer pool %p", pool);
 
@@ -234,8 +220,6 @@
   GObjectClass *gobject_class = (GObjectClass *) klass;
   GstBufferPoolClass *gstbufferpool_class = (GstBufferPoolClass *) klass;
 
-  g_type_class_add_private (klass, sizeof (GstXvImageBufferPoolPrivate));
-
   gobject_class->finalize = gst_xvimage_buffer_pool_finalize;
 
   gstbufferpool_class->get_options = xvimage_buffer_pool_get_options;
@@ -246,21 +230,20 @@
 static void
 gst_xvimage_buffer_pool_init (GstXvImageBufferPool * pool)
 {
-  pool->priv = GST_XVIMAGE_BUFFER_POOL_GET_PRIVATE (pool);
+  /* nothing to do here */
 }
 
 static void
 gst_xvimage_buffer_pool_finalize (GObject * object)
 {
   GstXvImageBufferPool *pool = GST_XVIMAGE_BUFFER_POOL_CAST (object);
-  GstXvImageBufferPoolPrivate *priv = pool->priv;
 
   GST_LOG_OBJECT (pool, "finalize XvImage buffer pool %p", pool);
 
-  if (priv->caps)
-    gst_caps_unref (priv->caps);
-  if (priv->allocator)
-    gst_object_unref (priv->allocator);
+  if (pool->caps)
+    gst_caps_unref (pool->caps);
+  if (pool->allocator)
+    gst_object_unref (pool->allocator);
 
   G_OBJECT_CLASS (gst_xvimage_buffer_pool_parent_class)->finalize (object);
 }
diff --git a/sys/xvimage/xvimagepool.h b/sys/xvimage/xvimagepool.h
index 855c224..9c788d9 100644
--- a/sys/xvimage/xvimagepool.h
+++ b/sys/xvimage/xvimagepool.h
@@ -28,7 +28,6 @@
 
 typedef struct _GstXvImageBufferPool GstXvImageBufferPool;
 typedef struct _GstXvImageBufferPoolClass GstXvImageBufferPoolClass;
-typedef struct _GstXvImageBufferPoolPrivate GstXvImageBufferPoolPrivate;
 
 /* buffer pool functions */
 #define GST_TYPE_XVIMAGE_BUFFER_POOL      (gst_xvimage_buffer_pool_get_type())
@@ -40,7 +39,17 @@
 {
   GstBufferPool bufferpool;
 
-  GstXvImageBufferPoolPrivate *priv;
+  GstXvImageAllocator *allocator;
+
+  GstCaps *caps;
+  gint im_format;
+  GstVideoRectangle crop;
+  GstVideoInfo info;
+  GstVideoAlignment align;
+  guint padded_width;
+  guint padded_height;
+  gboolean add_metavideo;
+  gboolean need_alignment;
 };
 
 struct _GstXvImageBufferPoolClass
diff --git a/sys/xvimage/xvimagesink.c b/sys/xvimage/xvimagesink.c
index 30e7538..a0d62a0 100644
--- a/sys/xvimage/xvimagesink.c
+++ b/sys/xvimage/xvimagesink.c
@@ -229,7 +229,8 @@
   GstVideoCropMeta *crop;
   GstVideoRectangle result;
   gboolean draw_border = FALSE;
-  GstVideoRectangle src, dst;
+  GstVideoRectangle src = { 0, };
+  GstVideoRectangle dst = { 0, };
   GstVideoRectangle mem_crop;
   GstXWindow *xwindow;
 
@@ -1129,7 +1130,9 @@
 
   if ((peer = gst_pad_get_peer (GST_VIDEO_SINK_PAD (xvimagesink)))) {
     GstEvent *event;
-    GstVideoRectangle src, dst, result;
+    GstVideoRectangle src = { 0, };
+    GstVideoRectangle dst = { 0, };
+    GstVideoRectangle result;
     gdouble x, y, xscale = 1.0, yscale = 1.0;
     GstXWindow *xwindow;
 
@@ -1987,7 +1990,7 @@
    * unused parts of the video area.
    */
   g_object_class_install_property (gobject_class, PROP_DRAW_BORDERS,
-      g_param_spec_boolean ("draw-borders", "Colorkey",
+      g_param_spec_boolean ("draw-borders", "Draw Borders",
           "Draw black borders to fill unused area in force-aspect-ratio mode",
           TRUE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
diff --git a/test-driver b/test-driver
index 32bf39e..d306056 100755
--- a/test-driver
+++ b/test-driver
@@ -1,7 +1,7 @@
 #! /bin/sh
 # test-driver - basic testsuite driver script.
 
-scriptversion=2012-06-27.10; # UTC
+scriptversion=2013-07-13.22; # UTC
 
 # Copyright (C) 2011-2013 Free Software Foundation, Inc.
 #
@@ -44,13 +44,12 @@
 Usage:
   test-driver --test-name=NAME --log-file=PATH --trs-file=PATH
               [--expect-failure={yes|no}] [--color-tests={yes|no}]
-              [--enable-hard-errors={yes|no}] [--] TEST-SCRIPT
+              [--enable-hard-errors={yes|no}] [--]
+              TEST-SCRIPT [TEST-SCRIPT-ARGUMENTS]
 The '--test-name', '--log-file' and '--trs-file' options are mandatory.
 END
 }
 
-# TODO: better error handling in option parsing (in particular, ensure
-# TODO: $log_file, $trs_file and $test_name are defined).
 test_name= # Used for reporting.
 log_file=  # Where to save the output of the test script.
 trs_file=  # Where to save the metadata of the test run.
@@ -69,10 +68,23 @@
   --enable-hard-errors) enable_hard_errors=$2; shift;;
   --) shift; break;;
   -*) usage_error "invalid option: '$1'";;
+   *) break;;
   esac
   shift
 done
 
+missing_opts=
+test x"$test_name" = x && missing_opts="$missing_opts --test-name"
+test x"$log_file"  = x && missing_opts="$missing_opts --log-file"
+test x"$trs_file"  = x && missing_opts="$missing_opts --trs-file"
+if test x"$missing_opts" != x; then
+  usage_error "the following mandatory options are missing:$missing_opts"
+fi
+
+if test $# -eq 0; then
+  usage_error "missing argument"
+fi
+
 if test $color_tests = yes; then
   # Keep this in sync with 'lib/am/check.am:$(am__tty_colors)'.
   red='' # Red.
diff --git a/tests/Makefile.in b/tests/Makefile.in
index 6b41168..1222fcd 100644
--- a/tests/Makefile.in
+++ b/tests/Makefile.in
@@ -100,7 +100,6 @@
 	$(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-x11.m4 \
 	$(top_srcdir)/common/m4/gst.m4 \
 	$(top_srcdir)/common/m4/gtk-doc.m4 \
 	$(top_srcdir)/common/m4/introspection.m4 \
@@ -260,6 +259,8 @@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_2_0_CFLAGS = @GIO_UNIX_2_0_CFLAGS@
+GIO_UNIX_2_0_LIBS = @GIO_UNIX_2_0_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
@@ -289,6 +290,8 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
+GST_NET_CFLAGS = @GST_NET_CFLAGS@
+GST_NET_LIBS = @GST_NET_LIBS@
 GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
 GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
@@ -316,7 +319,6 @@
 GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
 GTK_X11_LIBS = @GTK_X11_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
-HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -420,13 +422,12 @@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-XMKMF = @XMKMF@
+XSHM_CFLAGS = @XSHM_CFLAGS@
 XSHM_LIBS = @XSHM_LIBS@
+XVIDEO_CFLAGS = @XVIDEO_CFLAGS@
 XVIDEO_LIBS = @XVIDEO_LIBS@
 X_CFLAGS = @X_CFLAGS@
-X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
-X_PRE_LIBS = @X_PRE_LIBS@
 ZLIB_CFLAGS = @ZLIB_CFLAGS@
 ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
diff --git a/tests/check/Makefile.am b/tests/check/Makefile.am
index 698bad4..55f33c9 100644
--- a/tests/check/Makefile.am
+++ b/tests/check/Makefile.am
@@ -140,7 +140,7 @@
 endif
 
 if HAVE_ORC
-check_orc = orc/video orc/audio orc/adder orc/audioconvert orc/volume orc/videoscale orc/videotestsrc
+check_orc = orc/video orc/audio orc/adder orc/audioconvert orc/volume orc/videotestsrc
 else
 check_orc =
 endif
@@ -164,7 +164,11 @@
 endif
 
 if USE_PLUGIN_TCP
+if USE_PLUGIN_APP
+check_tcp = elements/multifdsink elements/multisocketsink pipelines/tcp
+else
 check_tcp = elements/multifdsink elements/multisocketsink
+endif
 else
 check_tcp =
 endif
@@ -185,6 +189,7 @@
 	generic/clock-selection \
 	generic/states \
 	libs/libsabi \
+	libs/allocators \
 	libs/audio \
 	libs/audiocdsrc \
 	libs/audiodecoder \
@@ -209,6 +214,7 @@
 	pipelines/simple-launch-lines \
 	pipelines/basetime \
 	pipelines/capsfilter-renegotiation \
+	pipelines/streamsynchronizer \
 	$(check_adder) \
 	$(check_app) \
 	$(check_audioconvert) \
@@ -226,7 +232,6 @@
 	$(check_typefind) \
 	$(check_videoconvert) \
 	$(check_videorate) \
-	$(check_videoscale) \
 	$(check_videotestsrc) \
 	$(check_volume) \
 	$(check_vorbis) \
@@ -238,8 +243,7 @@
 
 # videoconvert takes too long, so disabled for now
 VALGRIND_TO_FIX = \
-	elements/videoconvert \
-	libs/video
+	$(check_orc)
 
 # these tests don't even pass
 noinst_PROGRAMS = $(check_libvisual)
@@ -248,6 +252,7 @@
 	libs/struct_arm.h     \
 	libs/struct_i386.h     \
 	libs/struct_i386_osx.h \
+	libs/struct_ppc32.h \
 	libs/struct_x86_64.h
 
 AM_CFLAGS = -I$(top_srcdir)/gst-libs -I$(top_builddir)/gst-libs \
@@ -282,6 +287,16 @@
 	$(GST_BASE_LIBS) \
 	$(LDADD)
 
+libs_allocators_CFLAGS = \
+	$(GST_PLUGINS_BASE_CFLAGS) \
+	$(GST_BASE_CFLAGS) \
+	$(AM_CFLAGS)
+
+libs_allocators_LDADD = \
+	$(top_builddir)/gst-libs/gst/allocators/libgstallocators-@GST_API_VERSION@.la \
+	$(GST_BASE_LIBS) \
+	$(LDADD)
+
 libs_audio_CFLAGS = \
 	$(GST_PLUGINS_BASE_CFLAGS) \
 	$(GST_BASE_CFLAGS) \
@@ -589,6 +604,14 @@
 elements_multisocketsink_CFLAGS = $(GIO_CFLAGS) $(AM_CFLAGS)
 elements_multisocketsink_LDADD = $(GIO_LIBS) $(LDADD)
 
+if USE_GIO_UNIX_2_0
+GIO_UNIX_2_0_DEFINED=-DHAVE_GIO_UNIX_2_0=1
+endif
+
+pipelines_tcp_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_NET_CFLAGS) $(GIO_CFLAGS) $(GIO_UNIX_2_0_CFLAGS) $(GIO_UNIX_2_0_DEFINED) $(AM_CFLAGS)
+pipelines_tcp_LDADD = $(GST_PLUGINS_BASE_LIBS) $(GST_NET_LIBS) $(GIO_LIBS) $(LDADD) \
+    $(GIO_UNIX_2_0_LIBS) $(top_builddir)/gst-libs/gst/app/libgstapp-@GST_API_VERSION@.la
+
 pipelines_gio_CFLAGS = $(GIO_CFLAGS) $(AM_CFLAGS)
 pipelines_gio_LDADD = $(GIO_LIBS) $(LDADD)
 
@@ -631,9 +654,6 @@
 orc_volume_CFLAGS = $(ORC_CFLAGS)
 orc_volume_LDADD = $(ORC_LIBS) -lorc-test-0.4
 nodist_orc_volume_SOURCES = orc/volume.c
-orc_videoscale_CFLAGS = $(ORC_CFLAGS)
-orc_videoscale_LDADD = $(ORC_LIBS) -lorc-test-0.4
-nodist_orc_videoscale_SOURCES = orc/videoscale.c
 orc_videotestsrc_CFLAGS = $(ORC_CFLAGS)
 orc_videotestsrc_LDADD = $(ORC_LIBS) -lorc-test-0.4
 nodist_orc_videotestsrc_SOURCES = orc/videotestsrc.c
@@ -658,10 +678,6 @@
 	$(MKDIR_P) orc/
 	$(ORCC) --test -o $@ $<
 
-orc/videoscale.c: $(top_srcdir)/gst/videoscale/gstvideoscaleorc.orc
-	$(MKDIR_P) orc/
-	$(ORCC) --test -o $@ $<
-
 orc/videotestsrc.c: $(top_srcdir)/gst/videotestsrc/gstvideotestsrcorc.orc
 	$(MKDIR_P) orc/
 	$(ORCC) --test -o $@ $<
diff --git a/tests/check/Makefile.in b/tests/check/Makefile.in
index 4b387ce..28e368a 100644
--- a/tests/check/Makefile.in
+++ b/tests/check/Makefile.in
@@ -85,27 +85,28 @@
 	$(top_srcdir)/test-driver
 check_PROGRAMS = generic/clock-selection$(EXEEXT) \
 	generic/states$(EXEEXT) libs/libsabi$(EXEEXT) \
-	libs/audio$(EXEEXT) libs/audiocdsrc$(EXEEXT) \
-	libs/audiodecoder$(EXEEXT) libs/audioencoder$(EXEEXT) \
-	libs/discoverer$(EXEEXT) libs/fft$(EXEEXT) \
-	libs/navigation$(EXEEXT) libs/pbutils$(EXEEXT) \
-	libs/profile$(EXEEXT) libs/mikey$(EXEEXT) libs/rtp$(EXEEXT) \
+	libs/allocators$(EXEEXT) libs/audio$(EXEEXT) \
+	libs/audiocdsrc$(EXEEXT) libs/audiodecoder$(EXEEXT) \
+	libs/audioencoder$(EXEEXT) libs/discoverer$(EXEEXT) \
+	libs/fft$(EXEEXT) libs/navigation$(EXEEXT) \
+	libs/pbutils$(EXEEXT) libs/profile$(EXEEXT) \
+	libs/mikey$(EXEEXT) libs/rtp$(EXEEXT) \
 	libs/rtpbasedepayload$(EXEEXT) libs/rtpbasepayload$(EXEEXT) \
 	libs/rtsp$(EXEEXT) libs/rtspconnection$(EXEEXT) \
 	libs/sdp$(EXEEXT) libs/tag$(EXEEXT) libs/video$(EXEEXT) \
 	libs/videodecoder$(EXEEXT) libs/videoencoder$(EXEEXT) \
 	libs/xmpwriter$(EXEEXT) pipelines/simple-launch-lines$(EXEEXT) \
 	pipelines/basetime$(EXEEXT) \
-	pipelines/capsfilter-renegotiation$(EXEEXT) $(am__EXEEXT_1) \
+	pipelines/capsfilter-renegotiation$(EXEEXT) \
+	pipelines/streamsynchronizer$(EXEEXT) $(am__EXEEXT_1) \
 	$(am__EXEEXT_2) $(am__EXEEXT_3) $(am__EXEEXT_4) \
 	$(am__EXEEXT_5) $(am__EXEEXT_6) $(am__EXEEXT_7) \
 	$(am__EXEEXT_8) $(am__EXEEXT_9) $(am__EXEEXT_10) \
 	$(am__EXEEXT_11) $(am__EXEEXT_12) $(am__EXEEXT_13) \
 	$(am__EXEEXT_14) $(am__EXEEXT_15) $(am__EXEEXT_16) \
 	$(am__EXEEXT_17) $(am__EXEEXT_18) $(am__EXEEXT_19) \
-	$(am__EXEEXT_20) $(am__EXEEXT_21) $(am__EXEEXT_22) \
-	$(am__EXEEXT_23)
-noinst_PROGRAMS = $(am__EXEEXT_24)
+	$(am__EXEEXT_20) $(am__EXEEXT_21) $(am__EXEEXT_22)
+noinst_PROGRAMS = $(am__EXEEXT_23)
 subdir = tests/check
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
@@ -127,7 +128,6 @@
 	$(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-x11.m4 \
 	$(top_srcdir)/common/m4/gst.m4 \
 	$(top_srcdir)/common/m4/gtk-doc.m4 \
 	$(top_srcdir)/common/m4/introspection.m4 \
@@ -167,8 +167,11 @@
 @USE_PLUGIN_PLAYBACK_TRUE@	elements/playbin-complex$(EXEEXT) \
 @USE_PLUGIN_PLAYBACK_TRUE@	elements/streamsynchronizer$(EXEEXT)
 @USE_PLUGIN_SUBPARSE_TRUE@am__EXEEXT_12 = elements/subparse$(EXEEXT)
-@USE_PLUGIN_TCP_TRUE@am__EXEEXT_13 = elements/multifdsink$(EXEEXT) \
-@USE_PLUGIN_TCP_TRUE@	elements/multisocketsink$(EXEEXT)
+@USE_PLUGIN_APP_FALSE@@USE_PLUGIN_TCP_TRUE@am__EXEEXT_13 = elements/multifdsink$(EXEEXT) \
+@USE_PLUGIN_APP_FALSE@@USE_PLUGIN_TCP_TRUE@	elements/multisocketsink$(EXEEXT)
+@USE_PLUGIN_APP_TRUE@@USE_PLUGIN_TCP_TRUE@am__EXEEXT_13 = elements/multifdsink$(EXEEXT) \
+@USE_PLUGIN_APP_TRUE@@USE_PLUGIN_TCP_TRUE@	elements/multisocketsink$(EXEEXT) \
+@USE_PLUGIN_APP_TRUE@@USE_PLUGIN_TCP_TRUE@	pipelines/tcp$(EXEEXT)
 @USE_THEORA_TRUE@am__EXEEXT_14 = pipelines/theoraenc$(EXEEXT)
 @USE_PLUGIN_TYPEFIND_TRUE@am__EXEEXT_15 =  \
 @USE_PLUGIN_TYPEFIND_TRUE@	gst/typefindfunctions$(EXEEXT)
@@ -176,21 +179,18 @@
 @USE_PLUGIN_VIDEOCONVERT_TRUE@	elements/videoconvert$(EXEEXT)
 @USE_PLUGIN_VIDEORATE_TRUE@am__EXEEXT_17 =  \
 @USE_PLUGIN_VIDEORATE_TRUE@	elements/videorate$(EXEEXT)
-@USE_PLUGIN_VIDEOSCALE_TRUE@am__EXEEXT_18 =  \
-@USE_PLUGIN_VIDEOSCALE_TRUE@	elements/videoscale$(EXEEXT)
-@USE_PLUGIN_VIDEOTESTSRC_TRUE@am__EXEEXT_19 =  \
+@USE_PLUGIN_VIDEOTESTSRC_TRUE@am__EXEEXT_18 =  \
 @USE_PLUGIN_VIDEOTESTSRC_TRUE@	elements/videotestsrc$(EXEEXT)
-@USE_PLUGIN_VOLUME_TRUE@am__EXEEXT_20 = elements/volume$(EXEEXT)
-@USE_VORBIS_TRUE@am__EXEEXT_21 = elements/vorbisdec$(EXEEXT) \
+@USE_PLUGIN_VOLUME_TRUE@am__EXEEXT_19 = elements/volume$(EXEEXT)
+@USE_VORBIS_TRUE@am__EXEEXT_20 = elements/vorbisdec$(EXEEXT) \
 @USE_VORBIS_TRUE@	pipelines/vorbisenc$(EXEEXT) \
 @USE_VORBIS_TRUE@	pipelines/vorbisdec$(EXEEXT) \
 @USE_VORBIS_TRUE@	elements/vorbistag$(EXEEXT)
-@HAVE_CXX_TRUE@am__EXEEXT_22 = libs/gstlibscpp$(EXEEXT)
-@HAVE_ORC_TRUE@am__EXEEXT_23 = orc/video$(EXEEXT) orc/audio$(EXEEXT) \
+@HAVE_CXX_TRUE@am__EXEEXT_21 = libs/gstlibscpp$(EXEEXT)
+@HAVE_ORC_TRUE@am__EXEEXT_22 = orc/video$(EXEEXT) orc/audio$(EXEEXT) \
 @HAVE_ORC_TRUE@	orc/adder$(EXEEXT) orc/audioconvert$(EXEEXT) \
-@HAVE_ORC_TRUE@	orc/volume$(EXEEXT) orc/videoscale$(EXEEXT) \
-@HAVE_ORC_TRUE@	orc/videotestsrc$(EXEEXT)
-@USE_LIBVISUAL_TRUE@am__EXEEXT_24 = elements/libvisual$(EXEEXT)
+@HAVE_ORC_TRUE@	orc/volume$(EXEEXT) orc/videotestsrc$(EXEEXT)
+@USE_LIBVISUAL_TRUE@am__EXEEXT_23 = elements/libvisual$(EXEEXT)
 PROGRAMS = $(noinst_PROGRAMS)
 elements_adder_SOURCES = elements/adder.c
 am__dirstamp = $(am__leading_dot)dirstamp
@@ -353,15 +353,6 @@
 elements_videorate_LDADD = $(LDADD)
 elements_videorate_DEPENDENCIES = $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1)
-elements_videoscale_SOURCES = elements/videoscale.c
-elements_videoscale_OBJECTS =  \
-	elements/elements_videoscale-videoscale.$(OBJEXT)
-elements_videoscale_DEPENDENCIES = $(top_builddir)/gst-libs/gst/video/libgstvideo-@GST_API_VERSION@.la \
-	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
-elements_videoscale_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
-	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
-	$(elements_videoscale_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
-	$(LDFLAGS) -o $@
 elements_videotestsrc_SOURCES = elements/videotestsrc.c
 elements_videotestsrc_OBJECTS = elements/videotestsrc.$(OBJEXT)
 elements_videotestsrc_LDADD = $(LDADD)
@@ -413,6 +404,14 @@
 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
 	$(gst_typefindfunctions_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
 	$(LDFLAGS) -o $@
+libs_allocators_SOURCES = libs/allocators.c
+libs_allocators_OBJECTS = libs/libs_allocators-allocators.$(OBJEXT)
+libs_allocators_DEPENDENCIES = $(top_builddir)/gst-libs/gst/allocators/libgstallocators-@GST_API_VERSION@.la \
+	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
+libs_allocators_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+	$(libs_allocators_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
+	-o $@
 libs_audio_SOURCES = libs/audio.c
 libs_audio_OBJECTS = libs/libs_audio-audio.$(OBJEXT)
 libs_audio_DEPENDENCIES = $(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_API_VERSION@.la \
@@ -626,14 +625,6 @@
 orc_video_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(orc_video_CFLAGS) \
 	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-nodist_orc_videoscale_OBJECTS =  \
-	orc/orc_videoscale-videoscale.$(OBJEXT)
-orc_videoscale_OBJECTS = $(nodist_orc_videoscale_OBJECTS)
-orc_videoscale_DEPENDENCIES = $(am__DEPENDENCIES_1)
-orc_videoscale_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
-	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
-	$(orc_videoscale_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o \
-	$@
 nodist_orc_videotestsrc_OBJECTS =  \
 	orc/orc_videotestsrc-videotestsrc.$(OBJEXT)
 orc_videotestsrc_OBJECTS = $(nodist_orc_videotestsrc_OBJECTS)
@@ -685,6 +676,21 @@
 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
 	$(pipelines_simple_launch_lines_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
+pipelines_streamsynchronizer_SOURCES = pipelines/streamsynchronizer.c
+pipelines_streamsynchronizer_OBJECTS =  \
+	pipelines/streamsynchronizer.$(OBJEXT)
+pipelines_streamsynchronizer_LDADD = $(LDADD)
+pipelines_streamsynchronizer_DEPENDENCIES = $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_1)
+pipelines_tcp_SOURCES = pipelines/tcp.c
+pipelines_tcp_OBJECTS = pipelines/pipelines_tcp-tcp.$(OBJEXT)
+pipelines_tcp_DEPENDENCIES = $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) \
+	$(am__DEPENDENCIES_1) \
+	$(top_builddir)/gst-libs/gst/app/libgstapp-@GST_API_VERSION@.la
+pipelines_tcp_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(pipelines_tcp_CFLAGS) \
+	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
 pipelines_theoraenc_SOURCES = pipelines/theoraenc.c
 pipelines_theoraenc_OBJECTS =  \
 	pipelines/pipelines_theoraenc-theoraenc.$(OBJEXT)
@@ -774,10 +780,10 @@
 	elements/playbin.c elements/playbin-complex.c \
 	elements/streamsynchronizer.c elements/subparse.c \
 	elements/textoverlay.c elements/videoconvert.c \
-	elements/videorate.c elements/videoscale.c \
-	elements/videotestsrc.c elements/volume.c elements/vorbisdec.c \
-	elements/vorbistag.c generic/clock-selection.c \
-	generic/states.c gst/typefindfunctions.c libs/audio.c \
+	elements/videorate.c elements/videotestsrc.c elements/volume.c \
+	elements/vorbisdec.c elements/vorbistag.c \
+	generic/clock-selection.c generic/states.c \
+	gst/typefindfunctions.c libs/allocators.c libs/audio.c \
 	libs/audiocdsrc.c libs/audiodecoder.c libs/audioencoder.c \
 	libs/discoverer.c libs/fft.c $(libs_gstlibscpp_SOURCES) \
 	libs/libsabi.c libs/mikey.c libs/navigation.c libs/pbutils.c \
@@ -787,11 +793,11 @@
 	libs/videoencoder.c libs/xmpwriter.c \
 	$(nodist_orc_adder_SOURCES) $(nodist_orc_audio_SOURCES) \
 	$(nodist_orc_audioconvert_SOURCES) $(nodist_orc_video_SOURCES) \
-	$(nodist_orc_videoscale_SOURCES) \
 	$(nodist_orc_videotestsrc_SOURCES) \
 	$(nodist_orc_volume_SOURCES) pipelines/basetime.c \
 	pipelines/capsfilter-renegotiation.c pipelines/gio.c \
 	pipelines/oggmux.c pipelines/simple-launch-lines.c \
+	pipelines/streamsynchronizer.c pipelines/tcp.c \
 	pipelines/theoraenc.c pipelines/vorbisdec.c \
 	pipelines/vorbisenc.c
 DIST_SOURCES = elements/adder.c elements/appsink.c elements/appsrc.c \
@@ -802,10 +808,10 @@
 	elements/playbin.c elements/playbin-complex.c \
 	elements/streamsynchronizer.c elements/subparse.c \
 	elements/textoverlay.c elements/videoconvert.c \
-	elements/videorate.c elements/videoscale.c \
-	elements/videotestsrc.c elements/volume.c elements/vorbisdec.c \
-	elements/vorbistag.c generic/clock-selection.c \
-	generic/states.c gst/typefindfunctions.c libs/audio.c \
+	elements/videorate.c elements/videotestsrc.c elements/volume.c \
+	elements/vorbisdec.c elements/vorbistag.c \
+	generic/clock-selection.c generic/states.c \
+	gst/typefindfunctions.c libs/allocators.c libs/audio.c \
 	libs/audiocdsrc.c libs/audiodecoder.c libs/audioencoder.c \
 	libs/discoverer.c libs/fft.c $(libs_gstlibscpp_SOURCES) \
 	libs/libsabi.c libs/mikey.c libs/navigation.c libs/pbutils.c \
@@ -815,6 +821,7 @@
 	libs/videoencoder.c libs/xmpwriter.c pipelines/basetime.c \
 	pipelines/capsfilter-renegotiation.c pipelines/gio.c \
 	pipelines/oggmux.c pipelines/simple-launch-lines.c \
+	pipelines/streamsynchronizer.c pipelines/tcp.c \
 	pipelines/theoraenc.c pipelines/vorbisdec.c \
 	pipelines/vorbisenc.c
 am__can_run_installinfo = \
@@ -1106,6 +1113,8 @@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_2_0_CFLAGS = @GIO_UNIX_2_0_CFLAGS@
+GIO_UNIX_2_0_LIBS = @GIO_UNIX_2_0_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
@@ -1135,6 +1144,8 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
+GST_NET_CFLAGS = @GST_NET_CFLAGS@
+GST_NET_LIBS = @GST_NET_LIBS@
 GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
 GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
@@ -1162,7 +1173,6 @@
 GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
 GTK_X11_LIBS = @GTK_X11_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
-HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -1266,13 +1276,12 @@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-XMKMF = @XMKMF@
+XSHM_CFLAGS = @XSHM_CFLAGS@
 XSHM_LIBS = @XSHM_LIBS@
+XVIDEO_CFLAGS = @XVIDEO_CFLAGS@
 XVIDEO_LIBS = @XVIDEO_LIBS@
 X_CFLAGS = @X_CFLAGS@
-X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
-X_PRE_LIBS = @X_PRE_LIBS@
 ZLIB_CFLAGS = @ZLIB_CFLAGS@
 ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
@@ -1401,15 +1410,16 @@
 @USE_PLUGIN_ADDER_FALSE@check_adder = 
 @USE_PLUGIN_ADDER_TRUE@check_adder = elements/adder
 @HAVE_ORC_FALSE@check_orc = 
-@HAVE_ORC_TRUE@check_orc = orc/video orc/audio orc/adder orc/audioconvert orc/volume orc/videoscale orc/videotestsrc
+@HAVE_ORC_TRUE@check_orc = orc/video orc/audio orc/adder orc/audioconvert orc/volume orc/videotestsrc
 @USE_PLUGIN_GIO_FALSE@check_gio = 
 @USE_PLUGIN_GIO_TRUE@check_gio = pipelines/gio
 @USE_PLUGIN_APP_FALSE@check_app = 
 @USE_PLUGIN_APP_TRUE@check_app = elements/appsink elements/appsrc
 @USE_PLUGIN_AUDIORATE_FALSE@check_audiorate = 
 @USE_PLUGIN_AUDIORATE_TRUE@check_audiorate = elements/audiorate
+@USE_PLUGIN_APP_FALSE@@USE_PLUGIN_TCP_TRUE@check_tcp = elements/multifdsink elements/multisocketsink
+@USE_PLUGIN_APP_TRUE@@USE_PLUGIN_TCP_TRUE@check_tcp = elements/multifdsink elements/multisocketsink pipelines/tcp
 @USE_PLUGIN_TCP_FALSE@check_tcp = 
-@USE_PLUGIN_TCP_TRUE@check_tcp = elements/multifdsink elements/multisocketsink
 @USE_PLUGIN_AUDIORESAMPLE_FALSE@check_audioresample = 
 @USE_PLUGIN_AUDIORESAMPLE_TRUE@check_audioresample = elements/audioresample
 @HAVE_CXX_FALSE@cxx_checks = 
@@ -1420,13 +1430,13 @@
 
 # videoconvert takes too long, so disabled for now
 VALGRIND_TO_FIX = \
-	elements/videoconvert \
-	libs/video
+	$(check_orc)
 
 noinst_HEADERS = \
 	libs/struct_arm.h     \
 	libs/struct_i386.h     \
 	libs/struct_i386_osx.h \
+	libs/struct_ppc32.h \
 	libs/struct_x86_64.h
 
 AM_CFLAGS = -I$(top_srcdir)/gst-libs -I$(top_builddir)/gst-libs \
@@ -1461,6 +1471,16 @@
 	$(GST_BASE_LIBS) \
 	$(LDADD)
 
+libs_allocators_CFLAGS = \
+	$(GST_PLUGINS_BASE_CFLAGS) \
+	$(GST_BASE_CFLAGS) \
+	$(AM_CFLAGS)
+
+libs_allocators_LDADD = \
+	$(top_builddir)/gst-libs/gst/allocators/libgstallocators-@GST_API_VERSION@.la \
+	$(GST_BASE_LIBS) \
+	$(LDADD)
+
 libs_audio_CFLAGS = \
 	$(GST_PLUGINS_BASE_CFLAGS) \
 	$(GST_BASE_CFLAGS) \
@@ -1769,6 +1789,11 @@
 
 elements_multisocketsink_CFLAGS = $(GIO_CFLAGS) $(AM_CFLAGS)
 elements_multisocketsink_LDADD = $(GIO_LIBS) $(LDADD)
+@USE_GIO_UNIX_2_0_TRUE@GIO_UNIX_2_0_DEFINED = -DHAVE_GIO_UNIX_2_0=1
+pipelines_tcp_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_NET_CFLAGS) $(GIO_CFLAGS) $(GIO_UNIX_2_0_CFLAGS) $(GIO_UNIX_2_0_DEFINED) $(AM_CFLAGS)
+pipelines_tcp_LDADD = $(GST_PLUGINS_BASE_LIBS) $(GST_NET_LIBS) $(GIO_LIBS) $(LDADD) \
+    $(GIO_UNIX_2_0_LIBS) $(top_builddir)/gst-libs/gst/app/libgstapp-@GST_API_VERSION@.la
+
 pipelines_gio_CFLAGS = $(GIO_CFLAGS) $(AM_CFLAGS)
 pipelines_gio_LDADD = $(GIO_LIBS) $(LDADD)
 pipelines_vorbisenc_CFLAGS = \
@@ -1808,9 +1833,6 @@
 orc_volume_CFLAGS = $(ORC_CFLAGS)
 orc_volume_LDADD = $(ORC_LIBS) -lorc-test-0.4
 nodist_orc_volume_SOURCES = orc/volume.c
-orc_videoscale_CFLAGS = $(ORC_CFLAGS)
-orc_videoscale_LDADD = $(ORC_LIBS) -lorc-test-0.4
-nodist_orc_videoscale_SOURCES = orc/videoscale.c
 orc_videotestsrc_CFLAGS = $(ORC_CFLAGS)
 orc_videotestsrc_LDADD = $(ORC_LIBS) -lorc-test-0.4
 nodist_orc_videotestsrc_SOURCES = orc/videotestsrc.c
@@ -1988,12 +2010,6 @@
 elements/videorate$(EXEEXT): $(elements_videorate_OBJECTS) $(elements_videorate_DEPENDENCIES) $(EXTRA_elements_videorate_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/videorate$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(elements_videorate_OBJECTS) $(elements_videorate_LDADD) $(LIBS)
-elements/elements_videoscale-videoscale.$(OBJEXT):  \
-	elements/$(am__dirstamp) elements/$(DEPDIR)/$(am__dirstamp)
-
-elements/videoscale$(EXEEXT): $(elements_videoscale_OBJECTS) $(elements_videoscale_DEPENDENCIES) $(EXTRA_elements_videoscale_DEPENDENCIES) elements/$(am__dirstamp)
-	@rm -f elements/videoscale$(EXEEXT)
-	$(AM_V_CCLD)$(elements_videoscale_LINK) $(elements_videoscale_OBJECTS) $(elements_videoscale_LDADD) $(LIBS)
 elements/videotestsrc.$(OBJEXT): elements/$(am__dirstamp) \
 	elements/$(DEPDIR)/$(am__dirstamp)
 
@@ -2054,6 +2070,12 @@
 libs/$(DEPDIR)/$(am__dirstamp):
 	@$(MKDIR_P) libs/$(DEPDIR)
 	@: > libs/$(DEPDIR)/$(am__dirstamp)
+libs/libs_allocators-allocators.$(OBJEXT): libs/$(am__dirstamp) \
+	libs/$(DEPDIR)/$(am__dirstamp)
+
+libs/allocators$(EXEEXT): $(libs_allocators_OBJECTS) $(libs_allocators_DEPENDENCIES) $(EXTRA_libs_allocators_DEPENDENCIES) libs/$(am__dirstamp)
+	@rm -f libs/allocators$(EXEEXT)
+	$(AM_V_CCLD)$(libs_allocators_LINK) $(libs_allocators_OBJECTS) $(libs_allocators_LDADD) $(LIBS)
 libs/libs_audio-audio.$(OBJEXT): libs/$(am__dirstamp) \
 	libs/$(DEPDIR)/$(am__dirstamp)
 
@@ -2222,12 +2244,6 @@
 orc/video$(EXEEXT): $(orc_video_OBJECTS) $(orc_video_DEPENDENCIES) $(EXTRA_orc_video_DEPENDENCIES) orc/$(am__dirstamp)
 	@rm -f orc/video$(EXEEXT)
 	$(AM_V_CCLD)$(orc_video_LINK) $(orc_video_OBJECTS) $(orc_video_LDADD) $(LIBS)
-orc/orc_videoscale-videoscale.$(OBJEXT): orc/$(am__dirstamp) \
-	orc/$(DEPDIR)/$(am__dirstamp)
-
-orc/videoscale$(EXEEXT): $(orc_videoscale_OBJECTS) $(orc_videoscale_DEPENDENCIES) $(EXTRA_orc_videoscale_DEPENDENCIES) orc/$(am__dirstamp)
-	@rm -f orc/videoscale$(EXEEXT)
-	$(AM_V_CCLD)$(orc_videoscale_LINK) $(orc_videoscale_OBJECTS) $(orc_videoscale_LDADD) $(LIBS)
 orc/orc_videotestsrc-videotestsrc.$(OBJEXT): orc/$(am__dirstamp) \
 	orc/$(DEPDIR)/$(am__dirstamp)
 
@@ -2276,6 +2292,18 @@
 pipelines/simple-launch-lines$(EXEEXT): $(pipelines_simple_launch_lines_OBJECTS) $(pipelines_simple_launch_lines_DEPENDENCIES) $(EXTRA_pipelines_simple_launch_lines_DEPENDENCIES) pipelines/$(am__dirstamp)
 	@rm -f pipelines/simple-launch-lines$(EXEEXT)
 	$(AM_V_CCLD)$(pipelines_simple_launch_lines_LINK) $(pipelines_simple_launch_lines_OBJECTS) $(pipelines_simple_launch_lines_LDADD) $(LIBS)
+pipelines/streamsynchronizer.$(OBJEXT): pipelines/$(am__dirstamp) \
+	pipelines/$(DEPDIR)/$(am__dirstamp)
+
+pipelines/streamsynchronizer$(EXEEXT): $(pipelines_streamsynchronizer_OBJECTS) $(pipelines_streamsynchronizer_DEPENDENCIES) $(EXTRA_pipelines_streamsynchronizer_DEPENDENCIES) pipelines/$(am__dirstamp)
+	@rm -f pipelines/streamsynchronizer$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(pipelines_streamsynchronizer_OBJECTS) $(pipelines_streamsynchronizer_LDADD) $(LIBS)
+pipelines/pipelines_tcp-tcp.$(OBJEXT): pipelines/$(am__dirstamp) \
+	pipelines/$(DEPDIR)/$(am__dirstamp)
+
+pipelines/tcp$(EXEEXT): $(pipelines_tcp_OBJECTS) $(pipelines_tcp_DEPENDENCIES) $(EXTRA_pipelines_tcp_DEPENDENCIES) pipelines/$(am__dirstamp)
+	@rm -f pipelines/tcp$(EXEEXT)
+	$(AM_V_CCLD)$(pipelines_tcp_LINK) $(pipelines_tcp_OBJECTS) $(pipelines_tcp_LDADD) $(LIBS)
 pipelines/pipelines_theoraenc-theoraenc.$(OBJEXT):  \
 	pipelines/$(am__dirstamp) pipelines/$(DEPDIR)/$(am__dirstamp)
 
@@ -2323,7 +2351,6 @@
 @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_subparse-subparse.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_textoverlay-textoverlay.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_videoconvert-videoconvert.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_videoscale-videoscale.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_volume-volume.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_vorbisdec-vorbisdec.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_vorbistag-vorbistag.Po@am__quote@
@@ -2335,6 +2362,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@generic/$(DEPDIR)/states.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@gst/$(DEPDIR)/gst_typefindfunctions-typefindfunctions.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@libs/$(DEPDIR)/gstlibscpp.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@libs/$(DEPDIR)/libs_allocators-allocators.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@libs/$(DEPDIR)/libs_audio-audio.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@libs/$(DEPDIR)/libs_audiocdsrc-audiocdsrc.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@libs/$(DEPDIR)/libs_audiodecoder-audiodecoder.Po@am__quote@
@@ -2361,7 +2389,6 @@
 @AMDEP_TRUE@@am__include@ @am__quote@orc/$(DEPDIR)/orc_audio-audio.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@orc/$(DEPDIR)/orc_audioconvert-audioconvert.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@orc/$(DEPDIR)/orc_video-video.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@orc/$(DEPDIR)/orc_videoscale-videoscale.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@orc/$(DEPDIR)/orc_videotestsrc-videotestsrc.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@orc/$(DEPDIR)/orc_volume-volume.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@pipelines/$(DEPDIR)/basetime.Po@am__quote@
@@ -2369,9 +2396,11 @@
 @AMDEP_TRUE@@am__include@ @am__quote@pipelines/$(DEPDIR)/pipelines_gio-gio.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@pipelines/$(DEPDIR)/pipelines_oggmux-oggmux.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@pipelines/$(DEPDIR)/pipelines_simple_launch_lines-simple-launch-lines.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@pipelines/$(DEPDIR)/pipelines_tcp-tcp.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@pipelines/$(DEPDIR)/pipelines_theoraenc-theoraenc.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@pipelines/$(DEPDIR)/pipelines_vorbisdec-vorbisdec.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@pipelines/$(DEPDIR)/pipelines_vorbisenc-vorbisenc.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@pipelines/$(DEPDIR)/streamsynchronizer.Po@am__quote@
 
 .c.o:
 @am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
@@ -2607,20 +2636,6 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_videoconvert_CFLAGS) $(CFLAGS) -c -o elements/elements_videoconvert-videoconvert.obj `if test -f 'elements/videoconvert.c'; then $(CYGPATH_W) 'elements/videoconvert.c'; else $(CYGPATH_W) '$(srcdir)/elements/videoconvert.c'; fi`
 
-elements/elements_videoscale-videoscale.o: elements/videoscale.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_videoscale_CFLAGS) $(CFLAGS) -MT elements/elements_videoscale-videoscale.o -MD -MP -MF elements/$(DEPDIR)/elements_videoscale-videoscale.Tpo -c -o elements/elements_videoscale-videoscale.o `test -f 'elements/videoscale.c' || echo '$(srcdir)/'`elements/videoscale.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_videoscale-videoscale.Tpo elements/$(DEPDIR)/elements_videoscale-videoscale.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/videoscale.c' object='elements/elements_videoscale-videoscale.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) $(elements_videoscale_CFLAGS) $(CFLAGS) -c -o elements/elements_videoscale-videoscale.o `test -f 'elements/videoscale.c' || echo '$(srcdir)/'`elements/videoscale.c
-
-elements/elements_videoscale-videoscale.obj: elements/videoscale.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_videoscale_CFLAGS) $(CFLAGS) -MT elements/elements_videoscale-videoscale.obj -MD -MP -MF elements/$(DEPDIR)/elements_videoscale-videoscale.Tpo -c -o elements/elements_videoscale-videoscale.obj `if test -f 'elements/videoscale.c'; then $(CYGPATH_W) 'elements/videoscale.c'; else $(CYGPATH_W) '$(srcdir)/elements/videoscale.c'; fi`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_videoscale-videoscale.Tpo elements/$(DEPDIR)/elements_videoscale-videoscale.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/videoscale.c' object='elements/elements_videoscale-videoscale.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) $(elements_videoscale_CFLAGS) $(CFLAGS) -c -o elements/elements_videoscale-videoscale.obj `if test -f 'elements/videoscale.c'; then $(CYGPATH_W) 'elements/videoscale.c'; else $(CYGPATH_W) '$(srcdir)/elements/videoscale.c'; fi`
-
 elements/elements_volume-volume.o: elements/volume.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_volume_CFLAGS) $(CFLAGS) -MT elements/elements_volume-volume.o -MD -MP -MF elements/$(DEPDIR)/elements_volume-volume.Tpo -c -o elements/elements_volume-volume.o `test -f 'elements/volume.c' || echo '$(srcdir)/'`elements/volume.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_volume-volume.Tpo elements/$(DEPDIR)/elements_volume-volume.Po
@@ -2677,6 +2692,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) $(gst_typefindfunctions_CFLAGS) $(CFLAGS) -c -o gst/gst_typefindfunctions-typefindfunctions.obj `if test -f 'gst/typefindfunctions.c'; then $(CYGPATH_W) 'gst/typefindfunctions.c'; else $(CYGPATH_W) '$(srcdir)/gst/typefindfunctions.c'; fi`
 
+libs/libs_allocators-allocators.o: libs/allocators.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_allocators_CFLAGS) $(CFLAGS) -MT libs/libs_allocators-allocators.o -MD -MP -MF libs/$(DEPDIR)/libs_allocators-allocators.Tpo -c -o libs/libs_allocators-allocators.o `test -f 'libs/allocators.c' || echo '$(srcdir)/'`libs/allocators.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) libs/$(DEPDIR)/libs_allocators-allocators.Tpo libs/$(DEPDIR)/libs_allocators-allocators.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/allocators.c' object='libs/libs_allocators-allocators.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_allocators_CFLAGS) $(CFLAGS) -c -o libs/libs_allocators-allocators.o `test -f 'libs/allocators.c' || echo '$(srcdir)/'`libs/allocators.c
+
+libs/libs_allocators-allocators.obj: libs/allocators.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_allocators_CFLAGS) $(CFLAGS) -MT libs/libs_allocators-allocators.obj -MD -MP -MF libs/$(DEPDIR)/libs_allocators-allocators.Tpo -c -o libs/libs_allocators-allocators.obj `if test -f 'libs/allocators.c'; then $(CYGPATH_W) 'libs/allocators.c'; else $(CYGPATH_W) '$(srcdir)/libs/allocators.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) libs/$(DEPDIR)/libs_allocators-allocators.Tpo libs/$(DEPDIR)/libs_allocators-allocators.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/allocators.c' object='libs/libs_allocators-allocators.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_allocators_CFLAGS) $(CFLAGS) -c -o libs/libs_allocators-allocators.obj `if test -f 'libs/allocators.c'; then $(CYGPATH_W) 'libs/allocators.c'; else $(CYGPATH_W) '$(srcdir)/libs/allocators.c'; fi`
+
 libs/libs_audio-audio.o: libs/audio.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_audio_CFLAGS) $(CFLAGS) -MT libs/libs_audio-audio.o -MD -MP -MF libs/$(DEPDIR)/libs_audio-audio.Tpo -c -o libs/libs_audio-audio.o `test -f 'libs/audio.c' || echo '$(srcdir)/'`libs/audio.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) libs/$(DEPDIR)/libs_audio-audio.Tpo libs/$(DEPDIR)/libs_audio-audio.Po
@@ -3041,20 +3070,6 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_video_CFLAGS) $(CFLAGS) -c -o orc/orc_video-video.obj `if test -f 'orc/video.c'; then $(CYGPATH_W) 'orc/video.c'; else $(CYGPATH_W) '$(srcdir)/orc/video.c'; fi`
 
-orc/orc_videoscale-videoscale.o: orc/videoscale.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_videoscale_CFLAGS) $(CFLAGS) -MT orc/orc_videoscale-videoscale.o -MD -MP -MF orc/$(DEPDIR)/orc_videoscale-videoscale.Tpo -c -o orc/orc_videoscale-videoscale.o `test -f 'orc/videoscale.c' || echo '$(srcdir)/'`orc/videoscale.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) orc/$(DEPDIR)/orc_videoscale-videoscale.Tpo orc/$(DEPDIR)/orc_videoscale-videoscale.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='orc/videoscale.c' object='orc/orc_videoscale-videoscale.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_videoscale_CFLAGS) $(CFLAGS) -c -o orc/orc_videoscale-videoscale.o `test -f 'orc/videoscale.c' || echo '$(srcdir)/'`orc/videoscale.c
-
-orc/orc_videoscale-videoscale.obj: orc/videoscale.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_videoscale_CFLAGS) $(CFLAGS) -MT orc/orc_videoscale-videoscale.obj -MD -MP -MF orc/$(DEPDIR)/orc_videoscale-videoscale.Tpo -c -o orc/orc_videoscale-videoscale.obj `if test -f 'orc/videoscale.c'; then $(CYGPATH_W) 'orc/videoscale.c'; else $(CYGPATH_W) '$(srcdir)/orc/videoscale.c'; fi`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) orc/$(DEPDIR)/orc_videoscale-videoscale.Tpo orc/$(DEPDIR)/orc_videoscale-videoscale.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='orc/videoscale.c' object='orc/orc_videoscale-videoscale.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_videoscale_CFLAGS) $(CFLAGS) -c -o orc/orc_videoscale-videoscale.obj `if test -f 'orc/videoscale.c'; then $(CYGPATH_W) 'orc/videoscale.c'; else $(CYGPATH_W) '$(srcdir)/orc/videoscale.c'; fi`
-
 orc/orc_videotestsrc-videotestsrc.o: orc/videotestsrc.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_videotestsrc_CFLAGS) $(CFLAGS) -MT orc/orc_videotestsrc-videotestsrc.o -MD -MP -MF orc/$(DEPDIR)/orc_videotestsrc-videotestsrc.Tpo -c -o orc/orc_videotestsrc-videotestsrc.o `test -f 'orc/videotestsrc.c' || echo '$(srcdir)/'`orc/videotestsrc.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) orc/$(DEPDIR)/orc_videotestsrc-videotestsrc.Tpo orc/$(DEPDIR)/orc_videotestsrc-videotestsrc.Po
@@ -3125,6 +3140,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) $(pipelines_simple_launch_lines_CFLAGS) $(CFLAGS) -c -o pipelines/pipelines_simple_launch_lines-simple-launch-lines.obj `if test -f 'pipelines/simple-launch-lines.c'; then $(CYGPATH_W) 'pipelines/simple-launch-lines.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/simple-launch-lines.c'; fi`
 
+pipelines/pipelines_tcp-tcp.o: pipelines/tcp.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_tcp_CFLAGS) $(CFLAGS) -MT pipelines/pipelines_tcp-tcp.o -MD -MP -MF pipelines/$(DEPDIR)/pipelines_tcp-tcp.Tpo -c -o pipelines/pipelines_tcp-tcp.o `test -f 'pipelines/tcp.c' || echo '$(srcdir)/'`pipelines/tcp.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) pipelines/$(DEPDIR)/pipelines_tcp-tcp.Tpo pipelines/$(DEPDIR)/pipelines_tcp-tcp.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='pipelines/tcp.c' object='pipelines/pipelines_tcp-tcp.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) $(pipelines_tcp_CFLAGS) $(CFLAGS) -c -o pipelines/pipelines_tcp-tcp.o `test -f 'pipelines/tcp.c' || echo '$(srcdir)/'`pipelines/tcp.c
+
+pipelines/pipelines_tcp-tcp.obj: pipelines/tcp.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_tcp_CFLAGS) $(CFLAGS) -MT pipelines/pipelines_tcp-tcp.obj -MD -MP -MF pipelines/$(DEPDIR)/pipelines_tcp-tcp.Tpo -c -o pipelines/pipelines_tcp-tcp.obj `if test -f 'pipelines/tcp.c'; then $(CYGPATH_W) 'pipelines/tcp.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/tcp.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) pipelines/$(DEPDIR)/pipelines_tcp-tcp.Tpo pipelines/$(DEPDIR)/pipelines_tcp-tcp.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='pipelines/tcp.c' object='pipelines/pipelines_tcp-tcp.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) $(pipelines_tcp_CFLAGS) $(CFLAGS) -c -o pipelines/pipelines_tcp-tcp.obj `if test -f 'pipelines/tcp.c'; then $(CYGPATH_W) 'pipelines/tcp.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/tcp.c'; fi`
+
 pipelines/pipelines_theoraenc-theoraenc.o: pipelines/theoraenc.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_theoraenc_CFLAGS) $(CFLAGS) -MT pipelines/pipelines_theoraenc-theoraenc.o -MD -MP -MF pipelines/$(DEPDIR)/pipelines_theoraenc-theoraenc.Tpo -c -o pipelines/pipelines_theoraenc-theoraenc.o `test -f 'pipelines/theoraenc.c' || echo '$(srcdir)/'`pipelines/theoraenc.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) pipelines/$(DEPDIR)/pipelines_theoraenc-theoraenc.Tpo pipelines/$(DEPDIR)/pipelines_theoraenc-theoraenc.Po
@@ -3417,6 +3446,13 @@
 	--log-file $$b.log --trs-file $$b.trs \
 	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
 	"$$tst" $(AM_TESTS_FD_REDIRECT)
+libs/allocators.log: libs/allocators$(EXEEXT)
+	@p='libs/allocators$(EXEEXT)'; \
+	b='libs/allocators'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
 libs/audio.log: libs/audio$(EXEEXT)
 	@p='libs/audio$(EXEEXT)'; \
 	b='libs/audio'; \
@@ -3585,6 +3621,13 @@
 	--log-file $$b.log --trs-file $$b.trs \
 	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
 	"$$tst" $(AM_TESTS_FD_REDIRECT)
+pipelines/streamsynchronizer.log: pipelines/streamsynchronizer$(EXEEXT)
+	@p='pipelines/streamsynchronizer$(EXEEXT)'; \
+	b='pipelines/streamsynchronizer'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
 elements/adder.log: elements/adder$(EXEEXT)
 	@p='elements/adder$(EXEEXT)'; \
 	b='elements/adder'; \
@@ -3711,6 +3754,13 @@
 	--log-file $$b.log --trs-file $$b.trs \
 	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
 	"$$tst" $(AM_TESTS_FD_REDIRECT)
+pipelines/tcp.log: pipelines/tcp$(EXEEXT)
+	@p='pipelines/tcp$(EXEEXT)'; \
+	b='pipelines/tcp'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
 pipelines/theoraenc.log: pipelines/theoraenc$(EXEEXT)
 	@p='pipelines/theoraenc$(EXEEXT)'; \
 	b='pipelines/theoraenc'; \
@@ -3739,13 +3789,6 @@
 	--log-file $$b.log --trs-file $$b.trs \
 	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
 	"$$tst" $(AM_TESTS_FD_REDIRECT)
-elements/videoscale.log: elements/videoscale$(EXEEXT)
-	@p='elements/videoscale$(EXEEXT)'; \
-	b='elements/videoscale'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
 elements/videotestsrc.log: elements/videotestsrc$(EXEEXT)
 	@p='elements/videotestsrc$(EXEEXT)'; \
 	b='elements/videotestsrc'; \
@@ -3830,13 +3873,6 @@
 	--log-file $$b.log --trs-file $$b.trs \
 	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
 	"$$tst" $(AM_TESTS_FD_REDIRECT)
-orc/videoscale.log: orc/videoscale$(EXEEXT)
-	@p='orc/videoscale$(EXEEXT)'; \
-	b='orc/videoscale'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
 orc/videotestsrc.log: orc/videotestsrc$(EXEEXT)
 	@p='orc/videotestsrc$(EXEEXT)'; \
 	b='orc/videotestsrc'; \
@@ -4075,7 +4111,8 @@
 
 # valgrind any given test by running make test.valgrind
 %.valgrind: %
-	@$(TESTS_ENVIRONMENT)					\
+	@valgrind_log=$(subst /,-,$*-valgrind.log);		\
+	$(TESTS_ENVIRONMENT)					\
 	CK_DEFAULT_TIMEOUT=360					\
 	G_SLICE=always-malloc					\
 	$(LIBTOOL) --mode=execute				\
@@ -4084,12 +4121,12 @@
 	--tool=memcheck --leak-check=full --trace-children=yes	\
 	--show-possibly-lost=no                                 \
 	--leak-resolution=high --num-callers=20			\
-	./$* 2>&1 | tee valgrind.log
-	@if grep "==" valgrind.log > /dev/null 2>&1; then	\
-	    rm valgrind.log;					\
+	./$* 2>&1 | tee $$valgrind_log ;			\
+	if grep "==" $$valgrind_log > /dev/null 2>&1; then	\
+	    rm $$valgrind_log;					\
 	    exit 1;						\
-	fi
-	@rm valgrind.log
+	fi ;							\
+	rm $$valgrind_log
 
 # valgrind any given test and generate suppressions for it
 %.valgrind.gen-suppressions: %
@@ -4176,19 +4213,13 @@
 # valgrind all tests
 valgrind: $(TESTS)
 	@echo "Valgrinding tests ..."
-	@failed=0;							\
+	@failed=0; valgrind_targets="";					\
 	for t in $(filter-out $(VALGRIND_TESTS_DISABLE),$(TESTS)); do	\
-		$(MAKE) $$t.valgrind;					\
-		if test "$$?" -ne 0; then                               \
-			echo "Valgrind error for test $$t";		\
-			failed=`expr $$failed + 1`;			\
-			whicht="$$whicht $$t";				\
-		fi;							\
+	  valgrind_targets="$$valgrind_targets $$t.valgrind";		\
 	done;								\
-	if test "$$failed" -ne 0; then					\
-		echo "$$failed tests had leaks or errors under valgrind:";	\
-		echo "$$whicht";					\
-		false;							\
+	if ! $(MAKE) $$valgrind_targets ; then				\
+	  echo "Some tests had leaks or errors under valgrind";		\
+	  false;							\
 	fi
 
 # valgrind all tests until failure
@@ -4238,6 +4269,9 @@
 	  do echo Inspecting $$e;					\
 	     $(GST_INSPECT) $$e > /dev/null 2>&1; done
 
+# build all tests
+build-checks: $(TESTS)
+
 help:
 	@echo
 	@echo "make check                         -- run all checks"
@@ -4260,6 +4294,7 @@
 	@echo "make (dir)/(test).valgrind.gen-suppressions -- generate suppressions"
 	@echo "                                               and save to suppressions.log"
 	@echo "make inspect                       -- inspect all plugin features"
+	@echo "make build-checks                  -- build all checks (but don't run them)"
 	@echo
 	@echo
 	@echo "Additionally, you can use the GST_CHECKS environment variable to"
@@ -4300,10 +4335,6 @@
 	$(MKDIR_P) orc/
 	$(ORCC) --test -o $@ $<
 
-orc/videoscale.c: $(top_srcdir)/gst/videoscale/gstvideoscaleorc.orc
-	$(MKDIR_P) orc/
-	$(ORCC) --test -o $@ $<
-
 orc/videotestsrc.c: $(top_srcdir)/gst/videotestsrc/gstvideotestsrcorc.orc
 	$(MKDIR_P) orc/
 	$(ORCC) --test -o $@ $<
diff --git a/tests/check/elements/adder.c b/tests/check/elements/adder.c
index 315bef4..3308a8e 100644
--- a/tests/check/elements/adder.c
+++ b/tests/check/elements/adder.c
@@ -33,6 +33,7 @@
 #include <gst/check/gstcheck.h>
 #include <gst/check/gstconsistencychecker.h>
 #include <gst/base/gstbasesrc.h>
+#include <gst/audio/audio.h>
 
 static GMainLoop *main_loop;
 
@@ -85,7 +86,7 @@
   GstPad *pad;
 
   filter_caps = gst_caps_new_simple ("audio/x-raw",
-      "format", G_TYPE_STRING, "F32LE",
+      "format", G_TYPE_STRING, GST_AUDIO_NE (F32),
       "layout", G_TYPE_STRING, "interleaved",
       "rate", G_TYPE_INT, 44100, "channels", G_TYPE_INT, 1, NULL);
 
@@ -417,7 +418,7 @@
   /* cleanup */
   g_main_loop_unref (main_loop);
   gst_consistency_checker_free (consist);
-  gst_event_ref (play_seek_event);
+  gst_event_unref (play_seek_event);
   gst_bus_remove_signal_watch (bus);
   gst_object_unref (bus);
   gst_object_unref (bin);
@@ -523,7 +524,7 @@
 
   /* cleanup */
   g_main_loop_unref (main_loop);
-  gst_event_ref (play_seek_event);
+  gst_event_unref (play_seek_event);
   gst_consistency_checker_free (consist);
   gst_bus_remove_signal_watch (bus);
   gst_object_unref (bus);
@@ -690,6 +691,7 @@
     g_main_loop_unref (main_loop);
   if (play_seek_event)
     gst_event_unref (play_seek_event);
+  gst_bus_remove_signal_watch (bus);
   gst_object_unref (bus);
   gst_object_unref (bin);
 }
diff --git a/tests/check/elements/appsrc.c b/tests/check/elements/appsrc.c
index c31ed4c..29371ba 100644
--- a/tests/check/elements/appsrc.c
+++ b/tests/check/elements/appsrc.c
@@ -150,6 +150,7 @@
       source = gst_bin_get_by_name (GST_BIN (data->sink), "testsource");
       fail_unless (gst_app_src_end_of_stream (GST_APP_SRC (source)) ==
           GST_FLOW_OK);
+      gst_object_unref (source);
       break;
     case GST_MESSAGE_ERROR:
       g_main_loop_quit (data->loop);
diff --git a/tests/check/elements/encodebin.c b/tests/check/elements/encodebin.c
index 3fdb586..0d9fe68 100644
--- a/tests/check/elements/encodebin.c
+++ b/tests/check/elements/encodebin.c
@@ -104,13 +104,19 @@
   return prof;
 }
 
+static GstCaps *
+create_unsupported_caps (void)
+{
+  return gst_caps_new_empty_simple ("audio/x-bogus");
+}
+
 static GstEncodingProfile *
 create_unsupported_profile (void)
 {
   GstEncodingProfile *prof;
   GstCaps *caps;
 
-  caps = gst_caps_new_empty_simple ("audio/x-bogus");
+  caps = create_unsupported_caps ();
   prof =
       (GstEncodingProfile *) gst_encoding_audio_profile_new (caps, NULL, NULL,
       0);
@@ -1042,14 +1048,28 @@
   GstBus *bus = gst_pipeline_get_bus ((GstPipeline *) pipeline);
   GstElement *ebin = gst_element_factory_make ("encodebin", NULL);
   GstMessage *message;
+  GstElement *audiotestsrc;
+  GstPad *sinkpad, *srcpad;
+
+  audiotestsrc = gst_element_factory_make ("audiotestsrc", NULL);
+  g_object_set (audiotestsrc, "num-buffers", 1, NULL);
+  gst_bin_add ((GstBin *) pipeline, audiotestsrc);
 
   /* first add to bin, then set profile */
   gst_bin_add ((GstBin *) pipeline, ebin);
   set_profile (ebin, create_unsupported_profile ());
 
-  gst_element_set_state (pipeline, GST_STATE_READY);
+  srcpad = gst_element_get_static_pad (audiotestsrc, "src");
+  sinkpad = gst_element_get_static_pad (ebin, "audio_0");
+  fail_unless (gst_pad_link (srcpad, sinkpad) == GST_PAD_LINK_OK);
+  gst_object_unref (srcpad);
+  gst_object_unref (sinkpad);
 
-  message = gst_bus_pop_filtered (bus, GST_MESSAGE_ELEMENT);
+  gst_element_set_state (pipeline, GST_STATE_PLAYING);
+
+  message =
+      gst_bus_timed_pop_filtered (bus, GST_CLOCK_TIME_NONE,
+      GST_MESSAGE_ELEMENT);
   fail_if (message == NULL);
   fail_if (!gst_is_missing_plugin_message (message));
   gst_message_unref (message);
diff --git a/tests/check/elements/multisocketsink.c b/tests/check/elements/multisocketsink.c
index a62e8d3..5d9d788 100644
--- a/tests/check/elements/multisocketsink.c
+++ b/tests/check/elements/multisocketsink.c
@@ -180,12 +180,15 @@
   gst_check_setup_events (mysrcpad, sink, caps, GST_FORMAT_BYTES);
   ASSERT_CAPS_REFCOUNT (caps, "caps", 3);
   gst_buffer_fill (buffer, 0, "dead", 4);
+  gst_buffer_append_memory (buffer,
+      gst_memory_new_wrapped (GST_MEMORY_FLAG_READONLY, (gpointer) " good", 5,
+          0, 5, NULL, NULL));
   fail_unless (gst_pad_push (mysrcpad, buffer) == GST_FLOW_OK);
 
   GST_DEBUG ("reading");
-  fail_if (read_handle (srcsocket, data, 4) < 4);
-  fail_unless (strncmp (data, "dead", 4) == 0);
-  wait_bytes_served (sink, 4);
+  fail_if (read_handle (srcsocket, data, 9) < 9);
+  fail_unless (strncmp (data, "dead good", 9) == 0);
+  wait_bytes_served (sink, 9);
 
   GST_DEBUG ("cleaning up multisocketsink");
   ASSERT_SET_STATE (sink, GST_STATE_NULL, GST_STATE_CHANGE_SUCCESS);
@@ -200,6 +203,78 @@
 
 GST_END_TEST;
 
+typedef struct
+{
+  GSocket *sinksocket, *srcsocket;
+  GstElement *sink;
+} TestSinkAndSocket;
+
+static void
+setup_sink_with_socket (TestSinkAndSocket * tsas)
+{
+  GstCaps *caps = NULL;
+
+  tsas->sink = setup_multisocketsink ();
+  fail_unless (setup_handles (&tsas->sinksocket, &tsas->srcsocket));
+
+  ASSERT_SET_STATE (tsas->sink, GST_STATE_PLAYING, GST_STATE_CHANGE_ASYNC);
+
+  /* add the client */
+  g_signal_emit_by_name (tsas->sink, "add", tsas->sinksocket);
+
+  caps = gst_caps_from_string ("application/x-gst-check");
+  gst_check_setup_events (mysrcpad, tsas->sink, caps, GST_FORMAT_BYTES);
+  gst_caps_unref (caps);
+}
+
+static void
+teardown_sink_with_socket (TestSinkAndSocket * tsas)
+{
+  if (tsas->sink != NULL) {
+    ASSERT_SET_STATE (tsas->sink, GST_STATE_NULL, GST_STATE_CHANGE_SUCCESS);
+    cleanup_multisocketsink (tsas->sink);
+    tsas->sink = 0;
+  }
+  if (tsas->sinksocket != NULL) {
+    g_object_unref (tsas->sinksocket);
+    tsas->sinksocket = 0;
+  }
+  if (tsas->srcsocket != NULL) {
+    g_object_unref (tsas->srcsocket);
+    tsas->srcsocket = 0;
+  }
+}
+
+GST_START_TEST (test_sending_buffers_with_9_gstmemorys)
+{
+  TestSinkAndSocket tsas = { 0 };
+  GstBuffer *buffer;
+  int i;
+  const char *numbers[9] = { "one", "two", "three", "four", "five", "six",
+    "seven", "eight", "nine"
+  };
+  const char numbers_concat[] = "onetwothreefourfivesixseveneightnine";
+  gchar data[sizeof (numbers_concat)];
+  int len = sizeof (numbers_concat) - 1;
+
+  setup_sink_with_socket (&tsas);
+
+  buffer = gst_buffer_new ();
+  for (i = 0; i < sizeof (numbers) / sizeof (*numbers); i++)
+    gst_buffer_append_memory (buffer,
+        gst_memory_new_wrapped (GST_MEMORY_FLAG_READONLY, (gpointer) numbers[i],
+            strlen (numbers[i]), 0, strlen (numbers[i]), NULL, NULL));
+  fail_unless (gst_pad_push (mysrcpad, buffer) == GST_FLOW_OK);
+
+  GST_DEBUG ("reading");
+  fail_if (read_handle (tsas.srcsocket, data, len) < len);
+  fail_unless (strncmp (data, numbers_concat, len) == 0);
+
+  teardown_sink_with_socket (&tsas);
+}
+
+GST_END_TEST;
+
 /* from the given two data buffers, create two streamheader buffers and
  * some caps that match it, and store them in the given pointers
  * returns  one ref to each of the buffers and the caps */
@@ -874,6 +949,7 @@
   suite_add_tcase (s, tc_chain);
   tcase_add_test (tc_chain, test_no_clients);
   tcase_add_test (tc_chain, test_add_client);
+  tcase_add_test (tc_chain, test_sending_buffers_with_9_gstmemorys);
   tcase_add_test (tc_chain, test_streamheader);
   tcase_add_test (tc_chain, test_change_streamheader);
   tcase_add_test (tc_chain, test_burst_client_bytes);
diff --git a/tests/check/elements/playbin-complex.c b/tests/check/elements/playbin-complex.c
index 706cb47..377bd83 100644
--- a/tests/check/elements/playbin-complex.c
+++ b/tests/check/elements/playbin-complex.c
@@ -26,7 +26,7 @@
 #include <gst/check/gstcheck.h>
 #include <gst/base/gstpushsrc.h>
 #include <gst/base/gstbasesink.h>
-#include <gst/audio/streamvolume.h>
+#include <gst/audio/audio.h>
 #include <gst/video/gstvideodecoder.h>
 
 #ifndef GST_DISABLE_REGISTRY
@@ -413,7 +413,7 @@
         " stream0 = (string)" STREAM_TYPES " ,"
         " stream1 = (string)" STREAM_TYPES)
     );
-static GstStaticPadTemplate cd_src_templ = GST_STATIC_PAD_TEMPLATE ("src_%d",
+static GstStaticPadTemplate cd_src_templ = GST_STATIC_PAD_TEMPLATE ("src_%u",
     GST_PAD_SRC, GST_PAD_SOMETIMES,
     GST_STATIC_CAPS ("audio/x-raw; audio/x-compressed; "
         "video/x-raw; video/x-compressed")
@@ -500,7 +500,7 @@
 
       templ =
           gst_element_class_get_pad_template (GST_ELEMENT_GET_CLASS (demux),
-          "src_%d");
+          "src_%u");
       if (pad == &demux->srcpad0)
         *pad = gst_pad_new_from_template (templ, "src_0");
       else
@@ -521,7 +521,7 @@
       caps = gst_caps_new_empty_simple ("video/x-compressed");
     } else if (g_str_equal (streaminfo, "raw-audio")) {
       caps = gst_caps_new_simple ("audio/x-raw",
-          "format", G_TYPE_STRING, "S16LE",
+          "format", G_TYPE_STRING, GST_AUDIO_NE (S16),
           "layout", G_TYPE_STRING, "interleaved",
           "rate", G_TYPE_INT, 48000, "channels", G_TYPE_INT, 2, NULL);
     } else {
@@ -1222,7 +1222,7 @@
   playbin =
       create_playbin
       ("caps:audio/x-raw,"
-      " format=(string)S16LE, " "layout=(string)interleaved, "
+      " format=(string)" GST_AUDIO_NE (S16) ", " "layout=(string)interleaved, "
       " rate=(int)48000, " " channels=(int)2", TRUE);
 
   fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_READY),
diff --git a/tests/check/elements/playbin.c b/tests/check/elements/playbin.c
index 369562a..cdc737e 100644
--- a/tests/check/elements/playbin.c
+++ b/tests/check/elements/playbin.c
@@ -333,8 +333,7 @@
 
   fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_READY),
       GST_STATE_CHANGE_SUCCESS);
-  fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_PAUSED),
-      GST_STATE_CHANGE_FAILURE);
+  gst_element_set_state (playbin, GST_STATE_PAUSED);
 
   /* there should be at least a missing-plugin message on the bus now and an
    * error message; the missing-plugin message should be first */
diff --git a/tests/check/elements/textoverlay.c b/tests/check/elements/textoverlay.c
index 7da26a4..359eca8 100644
--- a/tests/check/elements/textoverlay.c
+++ b/tests/check/elements/textoverlay.c
@@ -53,7 +53,8 @@
     "format = (string) I420"
 
 #define VIDEO_CAPS_TEMPLATE_WITH_FEATURE_STRING                              \
-    "video/x-raw(" GST_CAPS_FEATURE_META_GST_VIDEO_OVERLAY_COMPOSITION "), " \
+    "video/x-raw(" GST_CAPS_FEATURE_MEMORY_SYSTEM_MEMORY ", "                \
+    GST_CAPS_FEATURE_META_GST_VIDEO_OVERLAY_COMPOSITION "), "                \
     "format = (string) I420;"                                                \
     "video/x-raw, "                                                          \
     "format = (string) I420;"
@@ -108,6 +109,11 @@
     GST_STATIC_CAPS (UNSUPPORTED_VIDEO_CAPS_TEMPLATE_WITH_FEATURE_STRING)
     );
 
+static GstStaticPadTemplate sinktemplate_any = GST_STATIC_PAD_TEMPLATE ("sink",
+    GST_PAD_SINK,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS_ANY);
+
 static GstStaticPadTemplate unsupported_video_srctemplate =
 GST_STATIC_PAD_TEMPLATE ("src",
     GST_PAD_SRC,
@@ -355,6 +361,34 @@
   return buffer;
 }
 
+static gboolean
+_test_textoverlay_check_caps_has_feature (GstElement * textoverlay,
+    const gchar * padname, const gchar * feature)
+{
+  GstPad *pad;
+  GstCaps *caps;
+  GstCapsFeatures *f;
+  gboolean ret;
+
+  pad = gst_element_get_static_pad (textoverlay, padname);
+  fail_unless (pad != NULL);
+
+  caps = gst_pad_get_current_caps (pad);
+  fail_unless (caps != NULL);
+
+  gst_object_unref (pad);
+
+  f = gst_caps_get_features (caps, 0);
+  if (f != NULL) {
+    ret = gst_caps_features_contains (f, feature);
+  } else {
+    ret = FALSE;
+  }
+
+  gst_caps_unref (caps);
+  return ret;
+}
+
 static void
 cleanup_textoverlay (GstElement * textoverlay)
 {
@@ -648,6 +682,78 @@
 
 GST_END_TEST;
 
+
+GST_START_TEST (test_video_render_with_any_features_and_no_allocation_meta)
+{
+  GstElement *textoverlay;
+  GstBuffer *inbuffer, *outbuffer;
+  GstCaps *incaps, *outcaps;
+  GstVideoOverlayCompositionMeta *comp_meta;
+
+  textoverlay =
+      setup_textoverlay_with_templates (&video_srctemplate,
+      NULL, &sinktemplate_any, FALSE);
+
+  /* set static text to render */
+  g_object_set (textoverlay, "text", "XLX", NULL);
+
+  fail_unless (gst_element_set_state (textoverlay,
+          GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
+      "could not set to playing");
+
+  incaps = create_video_caps (VIDEO_CAPS_STRING);
+  gst_check_setup_events_textoverlay (myvideosrcpad, textoverlay, incaps,
+      GST_FORMAT_TIME, "video");
+  inbuffer = create_black_buffer (incaps);
+  gst_caps_unref (incaps);
+  ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
+
+  GST_BUFFER_TIMESTAMP (inbuffer) = 0;
+  GST_BUFFER_DURATION (inbuffer) = GST_SECOND / 10;
+
+  /* take additional ref to keep it alive */
+  gst_buffer_ref (inbuffer);
+  ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 2);
+
+  /* pushing gives away one of the two references we have ... */
+  fail_unless (gst_pad_push (myvideosrcpad, inbuffer) == GST_FLOW_OK);
+
+  /* should have been dropped in favour of a new writable buffer */
+  ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
+  fail_unless_equals_int (g_list_length (buffers), 1);
+  outbuffer = GST_BUFFER_CAST (buffers->data);
+  outcaps = gst_pad_get_current_caps (mysinkpad);
+  fail_unless (outbuffer != inbuffer);
+
+  /* output buffer should have rendered text */
+  fail_if (buffer_is_all_black (outbuffer, outcaps));
+  gst_caps_unref (outcaps);
+
+  /* output buffer should not have the composition meta */
+  comp_meta = gst_buffer_get_video_overlay_composition_meta (outbuffer);
+  fail_unless (comp_meta == NULL);
+
+  fail_unless (GST_BUFFER_TIMESTAMP (outbuffer) == 0);
+  fail_unless (GST_BUFFER_DURATION (outbuffer) == (GST_SECOND / 10));
+
+  /* output caps shouldn't have the composition meta */
+  fail_if (_test_textoverlay_check_caps_has_feature (textoverlay, "src",
+          GST_CAPS_FEATURE_META_GST_VIDEO_OVERLAY_COMPOSITION));
+
+  /* and clean up */
+  g_list_foreach (buffers, (GFunc) gst_mini_object_unref, NULL);
+  g_list_free (buffers);
+  buffers = NULL;
+  ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
+
+  /* cleanup */
+  cleanup_textoverlay (textoverlay);
+  gst_buffer_unref (inbuffer);
+}
+
+GST_END_TEST;
+
+
 GST_START_TEST (test_video_render_static_text)
 {
   GstElement *textoverlay;
@@ -1042,6 +1148,8 @@
   tcase_add_test (tc_chain, test_video_passthrough_with_feature);
   tcase_add_test (tc_chain,
       test_video_passthrough_with_feature_and_unsupported_caps);
+  tcase_add_test (tc_chain,
+      test_video_render_with_any_features_and_no_allocation_meta);
   tcase_add_test (tc_chain, test_video_render_static_text);
   tcase_add_test (tc_chain, test_render_continuity);
   tcase_add_test (tc_chain, test_video_waits_for_text);
diff --git a/tests/check/elements/videoscale.c b/tests/check/elements/videoscale.c
deleted file mode 100644
index 369df32..0000000
--- a/tests/check/elements/videoscale.c
+++ /dev/null
@@ -1,1046 +0,0 @@
-/* GStreamer
- *
- * unit test for videoscale
- *
- * Copyright (C) <2009,2010> Sebastian Dröge <sebastian.droege@collabora.co.uk>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#include <gst/video/video.h>
-#include <gst/base/gstbasesink.h>
-
-#include <gst/check/gstcheck.h>
-#include <string.h>
-
-/* kids, don't do this at home, skipping checks is *BAD* */
-#define LINK_CHECK_FLAGS GST_PAD_LINK_CHECK_NOTHING
-
-static guint
-get_num_formats (void)
-{
-  guint i = 2;
-
-  while (gst_video_format_to_string ((GstVideoFormat) i) != NULL)
-    ++i;
-
-  return i;
-}
-
-static void
-check_pad_template (GstPadTemplate * tmpl)
-{
-  const GValue *list_val, *fmt_val;
-  GstStructure *s;
-  gboolean *formats_supported;
-  GstCaps *caps;
-  guint i, num_formats;
-
-  num_formats = get_num_formats ();
-  formats_supported = g_new0 (gboolean, num_formats);
-
-  caps = gst_pad_template_get_caps (tmpl);
-
-  /* If this fails, we need to update this unit test */
-  fail_unless_equals_int (gst_caps_get_size (caps), 2);
-  /* Remove the ANY caps features structure */
-  caps = gst_caps_truncate (caps);
-  s = gst_caps_get_structure (caps, 0);
-
-  fail_unless (gst_structure_has_name (s, "video/x-raw"));
-
-  list_val = gst_structure_get_value (s, "format");
-  fail_unless (list_val != NULL);
-  /* If this fails, we need to update this unit test */
-  fail_unless (GST_VALUE_HOLDS_LIST (list_val));
-
-  for (i = 0; i < gst_value_list_get_size (list_val); ++i) {
-    GstVideoFormat fmt;
-    const gchar *fmt_str;
-
-    fmt_val = gst_value_list_get_value (list_val, i);
-    fail_unless (G_VALUE_HOLDS_STRING (fmt_val));
-    fmt_str = g_value_get_string (fmt_val);
-    GST_LOG ("format string: '%s'", fmt_str);
-    fmt = gst_video_format_from_string (fmt_str);
-    if (fmt == GST_VIDEO_FORMAT_UNKNOWN)
-      g_error ("Unknown raw format '%s' in pad template caps", fmt_str);
-    formats_supported[(guint) fmt] = TRUE;
-  }
-
-  gst_caps_unref (caps);
-
-  for (i = 2; i < num_formats; ++i) {
-    if (!formats_supported[i]) {
-      const gchar *fmt_str = gst_video_format_to_string ((GstVideoFormat) i);
-
-      switch (i) {
-        case GST_VIDEO_FORMAT_v210:
-        case GST_VIDEO_FORMAT_v216:
-        case GST_VIDEO_FORMAT_NV12:
-        case GST_VIDEO_FORMAT_NV16:
-        case GST_VIDEO_FORMAT_NV21:
-        case GST_VIDEO_FORMAT_NV24:
-        case GST_VIDEO_FORMAT_UYVP:
-        case GST_VIDEO_FORMAT_A420:
-        case GST_VIDEO_FORMAT_YUV9:
-        case GST_VIDEO_FORMAT_YVU9:
-        case GST_VIDEO_FORMAT_IYU1:
-        case GST_VIDEO_FORMAT_r210:{
-          static gboolean shown_fixme[100] = { FALSE, };
-
-          if (!shown_fixme[i]) {
-            GST_FIXME ("FIXME: add %s support to videoscale", fmt_str);
-            shown_fixme[i] = TRUE;
-          }
-          break;
-        }
-        case GST_VIDEO_FORMAT_BGR16:
-        case GST_VIDEO_FORMAT_BGR15:
-        case GST_VIDEO_FORMAT_RGB8P:
-        case GST_VIDEO_FORMAT_I420_10BE:
-        case GST_VIDEO_FORMAT_I420_10LE:
-        case GST_VIDEO_FORMAT_I422_10BE:
-        case GST_VIDEO_FORMAT_I422_10LE:
-        case GST_VIDEO_FORMAT_Y444_10BE:
-        case GST_VIDEO_FORMAT_Y444_10LE:
-        case GST_VIDEO_FORMAT_GBR:
-        case GST_VIDEO_FORMAT_GBR_10BE:
-        case GST_VIDEO_FORMAT_GBR_10LE:
-        case GST_VIDEO_FORMAT_NV12_64Z32:
-          GST_LOG ("Ignoring lack of support for format %s", fmt_str);
-          break;
-        default:
-          g_error ("videoscale doesn't support format '%s'", fmt_str);
-          break;
-      }
-    }
-  }
-
-  g_free (formats_supported);
-}
-
-GST_START_TEST (test_template_formats)
-{
-  GstElementFactory *f;
-  GstPadTemplate *t;
-  const GList *pad_templates;
-
-  f = gst_element_factory_find ("videoscale");
-  fail_unless (f != NULL);
-
-  pad_templates = gst_element_factory_get_static_pad_templates (f);
-  fail_unless_equals_int (g_list_length ((GList *) pad_templates), 2);
-
-  t = gst_static_pad_template_get (pad_templates->data);
-  check_pad_template (GST_PAD_TEMPLATE (t));
-  gst_object_unref (t);
-  t = gst_static_pad_template_get (pad_templates->next->data);
-  check_pad_template (GST_PAD_TEMPLATE (t));
-  gst_object_unref (t);
-
-  gst_object_unref (f);
-}
-
-GST_END_TEST;
-
-static GstCaps **
-videoscale_get_allowed_caps_for_method (int method)
-{
-  GstElement *scale;
-  GstCaps *caps, **ret;
-  GstPad *pad;
-  GstStructure *s;
-  gint i, n;
-
-  scale = gst_element_factory_make ("videoscale", "vscale");
-  g_object_set (scale, "method", method, NULL);
-  pad = gst_element_get_static_pad (scale, "sink");
-  caps = gst_pad_query_caps (pad, NULL);
-  gst_object_unref (pad);
-  gst_object_unref (scale);
-
-  caps = gst_caps_normalize (caps);
-  n = gst_caps_get_size (caps);
-  ret = g_new0 (GstCaps *, n + 1);
-
-  for (i = 0; i < n; i++) {
-    s = gst_caps_get_structure (caps, i);
-    ret[i] = gst_caps_new_empty ();
-    gst_caps_append_structure (ret[i], gst_structure_copy (s));
-    GST_LOG ("method %d supports: %" GST_PTR_FORMAT, method, s);
-  }
-
-  gst_caps_unref (caps);
-
-  return ret;
-}
-
-static void
-on_sink_handoff (GstElement * element, GstBuffer * buffer, GstPad * pad,
-    gpointer user_data)
-{
-  guint *n_buffers = user_data;
-
-  *n_buffers = *n_buffers + 1;
-}
-
-static gboolean
-videoconvert_supports_caps (const GstCaps * caps)
-{
-  GST_DEBUG ("have caps %" GST_PTR_FORMAT, caps);
-  return TRUE;
-}
-
-static void
-run_test (const GstCaps * caps, gint src_width, gint src_height,
-    gint dest_width, gint dest_height, gint method,
-    GCallback src_handoff, gpointer src_handoff_user_data,
-    GCallback sink_handoff, gpointer sink_handoff_user_data)
-{
-  GstElement *pipeline;
-  GstElement *src, *videoconvert, *capsfilter1, *identity, *scale,
-      *capsfilter2, *sink;
-  GstMessage *msg;
-  GstBus *bus;
-  GstCaps *copy;
-  guint n_buffers = 0;
-
-  /* skip formats that videoconvert can't handle */
-  if (!videoconvert_supports_caps (caps))
-    return;
-
-  pipeline = gst_element_factory_make ("pipeline", "pipeline");
-  fail_unless (pipeline != NULL);
-
-  src = gst_element_factory_make ("videotestsrc", "src");
-  fail_unless (src != NULL);
-  g_object_set (G_OBJECT (src), "num-buffers", 1, NULL);
-
-  videoconvert = gst_element_factory_make ("videoconvert", "csp");
-  fail_unless (videoconvert != NULL);
-
-  capsfilter1 = gst_element_factory_make ("capsfilter", "filter1");
-  fail_unless (capsfilter1 != NULL);
-  copy = gst_caps_copy (caps);
-  gst_caps_set_simple (copy, "width", G_TYPE_INT, src_width, "height",
-      G_TYPE_INT, src_height, "framerate", GST_TYPE_FRACTION, 30, 1, NULL);
-  g_object_set (G_OBJECT (capsfilter1), "caps", copy, NULL);
-  gst_caps_unref (copy);
-
-  identity = gst_element_factory_make ("identity", "identity");
-  fail_unless (identity != NULL);
-  if (src_handoff) {
-    g_object_set (G_OBJECT (identity), "signal-handoffs", TRUE, NULL);
-    g_signal_connect (identity, "handoff", G_CALLBACK (src_handoff),
-        src_handoff_user_data);
-  }
-
-  scale = gst_element_factory_make ("videoscale", "scale");
-  fail_unless (scale != NULL);
-  g_object_set (G_OBJECT (scale), "method", method, NULL);
-
-  capsfilter2 = gst_element_factory_make ("capsfilter", "filter2");
-  fail_unless (capsfilter2 != NULL);
-  copy = gst_caps_copy (caps);
-  gst_caps_set_simple (copy, "width", G_TYPE_INT, dest_width, "height",
-      G_TYPE_INT, dest_height, NULL);
-  g_object_set (G_OBJECT (capsfilter2), "caps", copy, NULL);
-  gst_caps_unref (copy);
-
-  sink = gst_element_factory_make ("fakesink", "sink");
-  fail_unless (sink != NULL);
-  g_object_set (G_OBJECT (sink), "signal-handoffs", TRUE, "async", FALSE, NULL);
-  g_signal_connect (sink, "handoff", G_CALLBACK (on_sink_handoff), &n_buffers);
-  if (sink_handoff) {
-    g_signal_connect (sink, "handoff", G_CALLBACK (sink_handoff),
-        sink_handoff_user_data);
-  }
-
-  gst_bin_add_many (GST_BIN (pipeline), src, videoconvert, capsfilter1,
-      identity, scale, capsfilter2, sink, NULL);
-
-  fail_unless (gst_element_link_pads_full (src, "src", videoconvert, "sink",
-          LINK_CHECK_FLAGS));
-  fail_unless (gst_element_link_pads_full (videoconvert, "src", capsfilter1,
-          "sink", LINK_CHECK_FLAGS));
-  fail_unless (gst_element_link_pads_full (capsfilter1, "src", identity, "sink",
-          LINK_CHECK_FLAGS));
-  fail_unless (gst_element_link_pads_full (identity, "src", scale, "sink",
-          LINK_CHECK_FLAGS));
-  fail_unless (gst_element_link_pads_full (scale, "src", capsfilter2, "sink",
-          LINK_CHECK_FLAGS));
-  fail_unless (gst_element_link_pads_full (capsfilter2, "src", sink, "sink",
-          LINK_CHECK_FLAGS));
-
-  bus = gst_element_get_bus (pipeline);
-  fail_unless (bus != NULL);
-
-  fail_unless (gst_element_set_state (pipeline,
-          GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS);
-
-  msg = gst_bus_timed_pop_filtered (bus, GST_CLOCK_TIME_NONE,
-      GST_MESSAGE_EOS | GST_MESSAGE_ERROR | GST_MESSAGE_WARNING);
-
-  fail_unless_equals_int (GST_MESSAGE_TYPE (msg), GST_MESSAGE_EOS);
-
-  fail_unless (gst_element_set_state (pipeline,
-          GST_STATE_NULL) == GST_STATE_CHANGE_SUCCESS);
-
-  fail_unless (n_buffers == 1);
-
-  gst_object_unref (pipeline);
-  gst_message_unref (msg);
-  gst_object_unref (bus);
-}
-
-static void
-on_sink_handoff_passthrough (GstElement * element, GstBuffer * buffer,
-    GstPad * pad, gpointer user_data)
-{
-  GList **list = user_data;
-
-  *list = g_list_prepend (*list, gst_buffer_ref (buffer));
-}
-
-static void
-on_src_handoff_passthrough (GstElement * element, GstBuffer * buffer,
-    gpointer user_data)
-{
-  GList **list = user_data;
-
-  *list = g_list_prepend (*list, gst_buffer_ref (buffer));
-}
-
-static void
-test_passthrough (int method)
-{
-  GList *l1, *l2, *src_buffers = NULL, *sink_buffers = NULL;
-  GstCaps **allowed_caps = NULL, **p;
-  static const gint src_width = 640, src_height = 480;
-  static const gint dest_width = 640, dest_height = 480;
-
-  p = allowed_caps = videoscale_get_allowed_caps_for_method (method);
-
-  while (*p) {
-    GstCaps *caps = *p;
-
-    /* skip formats that videoconvert can't handle */
-    if (!videoconvert_supports_caps (caps))
-      goto next;
-
-    GST_DEBUG ("Running test for caps '%" GST_PTR_FORMAT "'"
-        " from %dx%u to %dx%d with method %d", caps, src_width, src_height,
-        dest_width, dest_height, method);
-    run_test (caps, src_width, src_height,
-        dest_width, dest_height, method,
-        G_CALLBACK (on_src_handoff_passthrough), &src_buffers,
-        G_CALLBACK (on_sink_handoff_passthrough), &sink_buffers);
-
-    fail_unless (src_buffers && sink_buffers);
-    fail_unless_equals_int (g_list_length (src_buffers),
-        g_list_length (sink_buffers));
-
-    for (l1 = src_buffers, l2 = sink_buffers; l1 && l2;
-        l1 = l1->next, l2 = l2->next) {
-      GstBuffer *a = l1->data;
-      GstBuffer *b = l2->data;
-      GstMapInfo mapa, mapb;
-
-      gst_buffer_map (a, &mapa, GST_MAP_READ);
-      gst_buffer_map (b, &mapb, GST_MAP_READ);
-      fail_unless_equals_int (mapa.size, mapb.size);
-      fail_unless (mapa.data == mapb.data);
-      gst_buffer_unmap (b, &mapb);
-      gst_buffer_unmap (a, &mapa);
-
-      gst_buffer_unref (a);
-      gst_buffer_unref (b);
-    }
-    g_list_free (src_buffers);
-    src_buffers = NULL;
-    g_list_free (sink_buffers);
-    sink_buffers = NULL;
-
-  next:
-    gst_caps_unref (caps);
-    p++;
-  }
-  g_free (allowed_caps);
-}
-
-GST_START_TEST (test_passthrough_method_0)
-{
-  test_passthrough (0);
-}
-
-GST_END_TEST;
-
-GST_START_TEST (test_passthrough_method_1)
-{
-  test_passthrough (1);
-}
-
-GST_END_TEST;
-
-GST_START_TEST (test_passthrough_method_2)
-{
-  test_passthrough (2);
-}
-
-GST_END_TEST;
-
-GST_START_TEST (test_passthrough_method_3)
-{
-  test_passthrough (3);
-}
-
-GST_END_TEST;
-
-#define CREATE_TEST(name,method,src_width,src_height,dest_width,dest_height) \
-GST_START_TEST (name) \
-{ \
-  GstCaps **allowed_caps = NULL, **p; \
-  \
-  p = allowed_caps = videoscale_get_allowed_caps_for_method (method); \
-  \
-  while (*p) { \
-    GstCaps *caps = *p; \
-    \
-    GST_DEBUG ("Running test for caps '%" GST_PTR_FORMAT "'" \
-        " from %dx%u to %dx%d with method %d", caps, src_width, src_height, \
-        dest_width, dest_height, method); \
-    run_test (caps, src_width, src_height, \
-        dest_width, dest_height, method, \
-        NULL, NULL, NULL, NULL); \
-    gst_caps_unref (caps); \
-    p++; \
-  } \
-  g_free (allowed_caps); \
-} \
-\
-GST_END_TEST;
-
-CREATE_TEST (test_downscale_640x480_320x240_method_0, 0, 640, 480, 320, 240);
-CREATE_TEST (test_downscale_640x480_320x240_method_1, 1, 640, 480, 320, 240);
-CREATE_TEST (test_downscale_640x480_320x240_method_2, 2, 640, 480, 320, 240);
-CREATE_TEST (test_downscale_640x480_320x240_method_3, 3, 640, 480, 320, 240);
-CREATE_TEST (test_upscale_320x240_640x480_method_0, 0, 320, 240, 640, 480);
-CREATE_TEST (test_upscale_320x240_640x480_method_1, 1, 320, 240, 640, 480);
-CREATE_TEST (test_upscale_320x240_640x480_method_2, 2, 320, 240, 640, 480);
-CREATE_TEST (test_upscale_320x240_640x480_method_3, 3, 320, 240, 640, 480);
-CREATE_TEST (test_downscale_640x480_1x1_method_0, 0, 640, 480, 1, 1);
-CREATE_TEST (test_downscale_640x480_1x1_method_1, 1, 640, 480, 1, 1);
-CREATE_TEST (test_downscale_640x480_1x1_method_2, 2, 640, 480, 1, 1);
-CREATE_TEST (test_downscale_640x480_1x1_method_3, 3, 640, 480, 1, 1);
-CREATE_TEST (test_upscale_1x1_640x480_method_0, 0, 1, 1, 640, 480);
-CREATE_TEST (test_upscale_1x1_640x480_method_1, 1, 1, 1, 640, 480);
-CREATE_TEST (test_upscale_1x1_640x480_method_2, 2, 1, 1, 640, 480);
-CREATE_TEST (test_upscale_1x1_640x480_method_3, 3, 1, 1, 640, 480);
-CREATE_TEST (test_downscale_641x481_111x30_method_0, 0, 641, 481, 111, 30);
-CREATE_TEST (test_downscale_641x481_111x30_method_1, 1, 641, 481, 111, 30);
-CREATE_TEST (test_downscale_641x481_111x30_method_2, 2, 641, 481, 111, 30);
-CREATE_TEST (test_downscale_641x481_111x30_method_3, 3, 641, 481, 111, 30);
-CREATE_TEST (test_upscale_111x30_641x481_method_0, 0, 111, 30, 641, 481);
-CREATE_TEST (test_upscale_111x30_641x481_method_1, 1, 111, 30, 641, 481);
-CREATE_TEST (test_upscale_111x30_641x481_method_2, 2, 111, 30, 641, 481);
-CREATE_TEST (test_upscale_111x30_641x481_method_3, 2, 111, 30, 641, 481);
-CREATE_TEST (test_downscale_641x481_30x111_method_0, 0, 641, 481, 30, 111);
-CREATE_TEST (test_downscale_641x481_30x111_method_1, 1, 641, 481, 30, 111);
-CREATE_TEST (test_downscale_641x481_30x111_method_2, 2, 641, 481, 30, 111);
-CREATE_TEST (test_downscale_641x481_30x111_method_3, 3, 641, 481, 30, 111);
-CREATE_TEST (test_upscale_30x111_641x481_method_0, 0, 30, 111, 641, 481);
-CREATE_TEST (test_upscale_30x111_641x481_method_1, 1, 30, 111, 641, 481);
-CREATE_TEST (test_upscale_30x111_641x481_method_2, 2, 30, 111, 641, 481);
-CREATE_TEST (test_upscale_30x111_641x481_method_3, 3, 30, 111, 641, 481);
-CREATE_TEST (test_downscale_640x480_320x1_method_0, 0, 640, 480, 320, 1);
-CREATE_TEST (test_downscale_640x480_320x1_method_1, 1, 640, 480, 320, 1);
-CREATE_TEST (test_downscale_640x480_320x1_method_2, 2, 640, 480, 320, 1);
-CREATE_TEST (test_downscale_640x480_320x1_method_3, 3, 640, 480, 320, 1);
-CREATE_TEST (test_upscale_320x1_640x480_method_0, 0, 320, 1, 640, 480);
-CREATE_TEST (test_upscale_320x1_640x480_method_1, 1, 320, 1, 640, 480);
-CREATE_TEST (test_upscale_320x1_640x480_method_2, 2, 320, 1, 640, 480);
-CREATE_TEST (test_upscale_320x1_640x480_method_3, 3, 320, 1, 640, 480);
-CREATE_TEST (test_downscale_640x480_1x240_method_0, 0, 640, 480, 1, 240);
-CREATE_TEST (test_downscale_640x480_1x240_method_1, 1, 640, 480, 1, 240);
-CREATE_TEST (test_downscale_640x480_1x240_method_2, 2, 640, 480, 1, 240);
-CREATE_TEST (test_downscale_640x480_1x240_method_3, 3, 640, 480, 1, 240);
-CREATE_TEST (test_upscale_1x240_640x480_method_0, 0, 1, 240, 640, 480);
-CREATE_TEST (test_upscale_1x240_640x480_method_1, 1, 1, 240, 640, 480);
-CREATE_TEST (test_upscale_1x240_640x480_method_2, 2, 1, 240, 640, 480);
-CREATE_TEST (test_upscale_1x240_640x480_method_3, 3, 1, 240, 640, 480);
-
-typedef struct
-{
-  gint width, height;
-  gint par_n, par_d;
-  gboolean ok;
-  GMainLoop *loop;
-} TestNegotiationData;
-
-static void
-_test_negotiation_message (GstBus * bus, GstMessage * message,
-    TestNegotiationData * data)
-{
-  GError *err = NULL;
-  gchar *debug;
-
-  switch (GST_MESSAGE_TYPE (message)) {
-    case GST_MESSAGE_ERROR:
-      gst_message_parse_error (message, &err, &debug);
-      gst_object_default_error (GST_MESSAGE_SRC (message), err, debug);
-      g_error_free (err);
-      g_free (debug);
-      g_assert_not_reached ();
-      break;
-    case GST_MESSAGE_WARNING:
-      gst_message_parse_warning (message, &err, &debug);
-      gst_object_default_error (GST_MESSAGE_SRC (message), err, debug);
-      g_error_free (err);
-      g_free (debug);
-      g_assert_not_reached ();
-      break;
-    case GST_MESSAGE_EOS:
-      g_main_loop_quit (data->loop);
-      break;
-    default:
-      break;
-  }
-}
-
-static void
-_test_negotiation_notify_caps (GObject * src, GParamSpec * pspec,
-    TestNegotiationData * data)
-{
-  GstCaps *caps;
-  GstStructure *s;
-  gint width, height;
-  gint par_n = 0, par_d = 0;
-
-  g_object_get (src, "caps", &caps, NULL);
-  if (caps == NULL)
-    return;
-
-  s = gst_caps_get_structure (caps, 0);
-
-  fail_unless (gst_structure_get_int (s, "width", &width));
-  fail_unless (gst_structure_get_int (s, "height", &height));
-  fail_unless (gst_structure_get_fraction (s, "pixel-aspect-ratio", &par_n,
-          &par_d) || (data->par_n == 1 && data->par_d == 1));
-
-  gst_caps_unref (caps);
-
-  fail_unless_equals_int (width, data->width);
-  fail_unless_equals_int (height, data->height);
-  if (par_n != 0 || par_d != 0) {
-    fail_unless_equals_int (par_n, data->par_n);
-    fail_unless_equals_int (par_d, data->par_d);
-  }
-
-  data->ok = (width == data->width) && (height == data->height)
-      && (par_n == data->par_n) && (par_d == data->par_d);
-
-  g_main_loop_quit (data->loop);
-}
-
-static void
-_test_negotiation (const gchar * src_templ, const gchar * sink_templ,
-    gint width, gint height, gint par_n, gint par_d)
-{
-  GstElement *pipeline;
-  GstElement *src, *capsfilter1, *scale, *capsfilter2, *sink;
-  GstBus *bus;
-  GMainLoop *loop;
-  GstCaps *caps;
-  TestNegotiationData data = { 0, 0, 0, 0, FALSE, NULL };
-  GstPad *pad;
-
-  GST_DEBUG ("Running test for src templ caps '%s' and sink templ caps '%s'",
-      src_templ, sink_templ);
-
-  pipeline = gst_element_factory_make ("pipeline", "pipeline");
-  fail_unless (pipeline != NULL);
-
-  src = gst_element_factory_make ("videotestsrc", "src");
-  fail_unless (src != NULL);
-  g_object_set (G_OBJECT (src), "num-buffers", 1, NULL);
-
-  capsfilter1 = gst_element_factory_make ("capsfilter", "filter1");
-  fail_unless (capsfilter1 != NULL);
-  caps = gst_caps_from_string (src_templ);
-  fail_unless (caps != NULL);
-  g_object_set (G_OBJECT (capsfilter1), "caps", caps, NULL);
-  gst_caps_unref (caps);
-
-  scale = gst_element_factory_make ("videoscale", "scale");
-  fail_unless (scale != NULL);
-
-  capsfilter2 = gst_element_factory_make ("capsfilter", "filter2");
-  fail_unless (capsfilter2 != NULL);
-  caps = gst_caps_from_string (sink_templ);
-  fail_unless (caps != NULL);
-  g_object_set (G_OBJECT (capsfilter2), "caps", caps, NULL);
-  gst_caps_unref (caps);
-
-  pad = gst_element_get_static_pad (capsfilter2, "sink");
-  fail_unless (pad != NULL);
-  g_signal_connect (pad, "notify::caps",
-      G_CALLBACK (_test_negotiation_notify_caps), &data);
-  gst_object_unref (pad);
-
-  sink = gst_element_factory_make ("fakesink", "sink");
-  fail_unless (sink != NULL);
-  g_object_set (sink, "async", FALSE, NULL);
-
-  gst_bin_add_many (GST_BIN (pipeline), src, capsfilter1, scale, capsfilter2,
-      sink, NULL);
-
-  fail_unless (gst_element_link_pads_full (src, "src", capsfilter1, "sink",
-          LINK_CHECK_FLAGS));
-  fail_unless (gst_element_link_pads_full (capsfilter1, "src", scale, "sink",
-          LINK_CHECK_FLAGS));
-  fail_unless (gst_element_link_pads_full (scale, "src", capsfilter2, "sink",
-          LINK_CHECK_FLAGS));
-  fail_unless (gst_element_link_pads_full (capsfilter2, "src", sink, "sink",
-          LINK_CHECK_FLAGS));
-
-  loop = g_main_loop_new (NULL, FALSE);
-
-  bus = gst_element_get_bus (pipeline);
-  fail_unless (bus != NULL);
-  gst_bus_add_signal_watch (bus);
-
-  data.loop = loop;
-  data.width = width;
-  data.height = height;
-  data.par_n = par_n;
-  data.par_d = par_d;
-  data.ok = FALSE;
-
-  g_signal_connect (bus, "message", G_CALLBACK (_test_negotiation_message),
-      &data);
-
-  gst_object_unref (bus);
-
-  fail_unless (gst_element_set_state (pipeline,
-          GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS);
-
-  g_main_loop_run (loop);
-
-  fail_unless (data.ok == TRUE);
-
-  fail_unless (gst_element_set_state (pipeline,
-          GST_STATE_NULL) == GST_STATE_CHANGE_SUCCESS);
-
-  gst_object_unref (pipeline);
-  g_main_loop_unref (loop);
-}
-
-GST_START_TEST (test_negotiation)
-{
-  _test_negotiation
-      ("video/x-raw,format=(string)AYUV,width=720,height=576,pixel-aspect-ratio=16/15",
-      "video/x-raw,format=(string)AYUV,width=768,height=576", 768, 576, 1, 1);
-
-  _test_negotiation
-      ("video/x-raw,format=(string)AYUV,width=320,height=240",
-      "video/x-raw,format=(string)AYUV,width=640,height=320", 640, 320, 2, 3);
-
-  _test_negotiation
-      ("video/x-raw,format=(string)AYUV,width=320,height=240",
-      "video/x-raw,format=(string)AYUV,width=640,height=320,pixel-aspect-ratio=[0/1, 1/1]",
-      640, 320, 2, 3);
-
-  _test_negotiation
-      ("video/x-raw,format=(string)AYUV,width=1920,height=2560,pixel-aspect-ratio=1/1",
-      "video/x-raw,format=(string)AYUV,width=[1, 2048],height=[1, 2048],pixel-aspect-ratio=1/1",
-      1536, 2048, 1, 1);
-
-  _test_negotiation
-      ("video/x-raw,format=(string)AYUV,width=1920,height=2560,pixel-aspect-ratio=1/1",
-      "video/x-raw,format=(string)AYUV,width=[1, 2048],height=[1, 2048]",
-      1920, 2048, 4, 5);
-
-  _test_negotiation
-      ("video/x-raw,format=(string)AYUV,width=1920,height=2560",
-      "video/x-raw,format=(string)AYUV,width=[1, 2048],height=[1, 2048]",
-      1920, 2048, 4, 5);
-
-  _test_negotiation
-      ("video/x-raw,format=(string)AYUV,width=1920,height=2560",
-      "video/x-raw,format=(string)AYUV,width=1200,height=[1, 2048],pixel-aspect-ratio=1/1",
-      1200, 1600, 1, 1);
-
-  /* Doesn't keep DAR but must be possible! */
-  _test_negotiation
-      ("video/x-raw,format=(string)AYUV,width=320,height=240,pixel-aspect-ratio=1/1",
-      "video/x-raw,format=(string)AYUV,width=200,height=200,pixel-aspect-ratio=1/2",
-      200, 200, 1, 2);
-}
-
-GST_END_TEST;
-
-#define GST_TYPE_TEST_REVERSE_NEGOTIATION_SINK \
-  (gst_test_reverse_negotiation_sink_get_type())
-#define GST_TEST_REVERSE_NEGOTIATION_SINK(obj) \
-  (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_TEST_REVERSE_NEGOTIATION_SINK,GstTestReverseNegotiationSink))
-#define GST_TEST_REVERSE_NEGOTIATION_SINK_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_TEST_REVERSE_NEGOTIATION_SINK,GstTestReverseNegotiationSinkClass))
-#define GST_IS_TEST_REVERSE_NEGOTIATION_SINK(obj) \
-  (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_TEST_REVERSE_NEGOTIATION_SINK))
-#define GST_IS_TEST_REVERSE_NEGOTIATION_SINK_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_TEST_REVERSE_NEGOTIATION_SINK))
-#define GST_TEST_REVERSE_NEGOTIATION_SINK_CAST(obj) ((GstTestReverseNegotiationSink *)obj)
-
-typedef struct _GstTestReverseNegotiationSink GstTestReverseNegotiationSink;
-typedef struct _GstTestReverseNegotiationSinkClass
-    GstTestReverseNegotiationSinkClass;
-struct _GstTestReverseNegotiationSink
-{
-  GstBaseSink element;
-  gint nbuffers;
-};
-
-struct _GstTestReverseNegotiationSinkClass
-{
-  GstBaseSinkClass parent_class;
-};
-
-GType gst_test_reverse_negotiation_sink_get_type (void);
-
-G_DEFINE_TYPE (GstTestReverseNegotiationSink,
-    gst_test_reverse_negotiation_sink, GST_TYPE_BASE_SINK);
-
-static GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink",
-    GST_PAD_SINK,
-    GST_PAD_ALWAYS,
-    GST_STATIC_CAPS (GST_VIDEO_CAPS_MAKE ("xRGB")));
-
-#if 0
-static GstFlowReturn
-gst_test_reverse_negotiation_sink_buffer_alloc (GstBaseSink * bsink,
-    guint64 offset, guint size, GstCaps * caps, GstBuffer ** buf)
-{
-  GstTestReverseNegotiationSink *sink =
-      GST_TEST_REVERSE_NEGOTIATION_SINK (bsink);
-  GstVideoFormat fmt;
-  gint width, height;
-
-  fail_unless (gst_video_format_parse_caps (caps, &fmt, &width, &height));
-
-  if (sink->nbuffers < 2) {
-    *buf =
-        gst_buffer_new_and_alloc (gst_video_format_get_size (fmt, width,
-            height));
-    gst_buffer_set_caps (*buf, caps);
-  } else {
-    gint fps_n, fps_d;
-
-    fail_unless (gst_video_parse_caps_framerate (caps, &fps_n, &fps_d));
-
-    width = 512;
-    height = 128;
-    *buf =
-        gst_buffer_new_and_alloc (gst_video_format_get_size (fmt, width,
-            height));
-    caps = gst_video_format_new_caps (fmt, width, height, fps_n, fps_d, 1, 1);
-    gst_buffer_set_caps (*buf, caps);
-    gst_caps_unref (caps);
-  }
-
-  return GST_FLOW_OK;
-}
-#endif
-
-static GstFlowReturn
-gst_test_reverse_negotiation_sink_render (GstBaseSink * bsink,
-    GstBuffer * buffer)
-{
-  GstTestReverseNegotiationSink *sink =
-      GST_TEST_REVERSE_NEGOTIATION_SINK (bsink);
-  GstCaps *caps;
-  GstVideoInfo info;
-
-  caps = gst_pad_get_current_caps (GST_BASE_SINK_PAD (bsink));
-
-  fail_unless (caps != NULL);
-  fail_unless (gst_video_info_from_caps (&info, caps));
-
-  sink->nbuffers++;
-
-  /* The third buffer is still in the old size
-   * because the videoconverts can't convert
-   * the frame sizes
-   */
-  if (sink->nbuffers > 3) {
-    fail_unless_equals_int (GST_VIDEO_INFO_WIDTH (&info), 512);
-    fail_unless_equals_int (GST_VIDEO_INFO_HEIGHT (&info), 128);
-  }
-
-  gst_caps_unref (caps);
-
-  return GST_FLOW_OK;
-}
-
-static void
-gst_test_reverse_negotiation_sink_class_init (GstTestReverseNegotiationSinkClass
-    * klass)
-{
-  GstElementClass *gstelement_class;
-  GstBaseSinkClass *gstbase_sink_class;
-
-  gstelement_class = GST_ELEMENT_CLASS (klass);
-  gstbase_sink_class = GST_BASE_SINK_CLASS (klass);
-
-  gst_element_class_set_metadata (gstelement_class,
-      "Test Reverse Negotiation Sink",
-      "Sink",
-      "Some test sink", "Sebastian Dröge <sebastian.droege@collabora.co.uk>");
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sinktemplate));
-
-#if 0
-  gstbase_sink_class->buffer_alloc =
-      GST_DEBUG_FUNCPTR (gst_test_reverse_negotiation_sink_buffer_alloc);
-#endif
-  gstbase_sink_class->render =
-      GST_DEBUG_FUNCPTR (gst_test_reverse_negotiation_sink_render);
-}
-
-static void
-gst_test_reverse_negotiation_sink_init (GstTestReverseNegotiationSink * sink)
-{
-  sink->nbuffers = 0;
-}
-
-#if 0
-static void
-_test_reverse_negotiation_message (GstBus * bus, GstMessage * message,
-    GMainLoop * loop)
-{
-  GError *err = NULL;
-  gchar *debug;
-
-  switch (GST_MESSAGE_TYPE (message)) {
-    case GST_MESSAGE_ERROR:
-      gst_message_parse_error (message, &err, &debug);
-      gst_object_default_error (GST_MESSAGE_SRC (message), err, debug);
-      g_error_free (err);
-      g_free (debug);
-      g_assert_not_reached ();
-      break;
-    case GST_MESSAGE_WARNING:
-      gst_message_parse_warning (message, &err, &debug);
-      gst_object_default_error (GST_MESSAGE_SRC (message), err, debug);
-      g_error_free (err);
-      g_free (debug);
-      g_assert_not_reached ();
-      break;
-    case GST_MESSAGE_EOS:
-      g_main_loop_quit (loop);
-      break;
-    default:
-      break;
-  }
-}
-#endif
-
-#if 0
-GST_START_TEST (test_reverse_negotiation)
-{
-  GstElement *pipeline;
-  GstElement *src, *csp1, *scale, *csp2, *sink;
-  GstBus *bus;
-  GMainLoop *loop;
-
-  pipeline = gst_element_factory_make ("pipeline", "pipeline");
-  fail_unless (pipeline != NULL);
-
-  src = gst_element_factory_make ("videotestsrc", "src");
-  fail_unless (src != NULL);
-  g_object_set (G_OBJECT (src), "num-buffers", 8, NULL);
-
-  csp1 = gst_element_factory_make ("videoconvert", "csp1");
-  fail_unless (csp1 != NULL);
-
-  scale = gst_element_factory_make ("videoscale", "scale");
-  fail_unless (scale != NULL);
-
-  csp2 = gst_element_factory_make ("videoconvert", "csp2");
-  fail_unless (csp2 != NULL);
-
-  sink = g_object_new (GST_TYPE_TEST_REVERSE_NEGOTIATION_SINK, NULL);
-  fail_unless (sink != NULL);
-  g_object_set (sink, "async", FALSE, NULL);
-
-  gst_bin_add_many (GST_BIN (pipeline), src, csp1, scale, csp2, sink, NULL);
-
-  fail_unless (gst_element_link_pads_full (src, "src", csp1, "sink",
-          LINK_CHECK_FLAGS));
-  fail_unless (gst_element_link_pads_full (csp1, "src", scale, "sink",
-          LINK_CHECK_FLAGS));
-  fail_unless (gst_element_link_pads_full (scale, "src", csp2, "sink",
-          LINK_CHECK_FLAGS));
-  fail_unless (gst_element_link_pads_full (csp2, "src", sink, "sink",
-          LINK_CHECK_FLAGS));
-
-  loop = g_main_loop_new (NULL, FALSE);
-
-  bus = gst_element_get_bus (pipeline);
-  fail_unless (bus != NULL);
-  gst_bus_add_signal_watch (bus);
-
-  g_signal_connect (bus, "message",
-      G_CALLBACK (_test_reverse_negotiation_message), loop);
-
-  gst_object_unref (bus);
-
-  fail_unless (gst_element_set_state (pipeline,
-          GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS);
-
-  g_main_loop_run (loop);
-
-  fail_unless (gst_element_set_state (pipeline,
-          GST_STATE_NULL) == GST_STATE_CHANGE_SUCCESS);
-
-  gst_object_unref (pipeline);
-  g_main_loop_unref (loop);
-}
-
-GST_END_TEST;
-#endif
-
-GST_START_TEST (test_basetransform_negotiation)
-{
-  GstElement *pipeline, *src, *sink, *scale, *capsfilter1, *capsfilter2;
-  GstMessage *msg;
-  GstCaps *caps;
-
-  pipeline = gst_pipeline_new (NULL);
-  src = gst_element_factory_make ("videotestsrc", NULL);
-  capsfilter1 = gst_element_factory_make ("capsfilter", NULL);
-  scale = gst_element_factory_make ("videoscale", NULL);
-  capsfilter2 = gst_element_factory_make ("capsfilter", NULL);
-  sink = gst_element_factory_make ("fakesink", NULL);
-  fail_unless (pipeline && src && capsfilter1 && scale && capsfilter2 && sink);
-
-  g_object_set (src, "num-buffers", 3, NULL);
-
-  caps = gst_caps_new_simple ("video/x-raw", "format", G_TYPE_STRING,
-      "UYVY", "width", G_TYPE_INT, 352,
-      "height", G_TYPE_INT, 288, "framerate", GST_TYPE_FRACTION, 30, 1,
-      "pixel-aspect-ratio", GST_TYPE_FRACTION, 1, 1, NULL);
-  g_object_set (capsfilter1, "caps", caps, NULL);
-  gst_caps_unref (caps);
-
-  /* same caps, just different pixel-aspect-ratio */
-  caps = gst_caps_new_simple ("video/x-raw", "format", G_TYPE_STRING,
-      "UYVY", "width", G_TYPE_INT, 352,
-      "height", G_TYPE_INT, 288, "framerate", GST_TYPE_FRACTION, 30, 1,
-      "pixel-aspect-ratio", GST_TYPE_FRACTION, 12, 11, NULL);
-  g_object_set (capsfilter2, "caps", caps, NULL);
-  gst_caps_unref (caps);
-
-  gst_bin_add_many (GST_BIN (pipeline), src, capsfilter1, scale, capsfilter2,
-      sink, NULL);
-  fail_unless (gst_element_link_many (src, capsfilter1, scale, capsfilter2,
-          sink, NULL));
-
-  fail_unless_equals_int (gst_element_set_state (pipeline, GST_STATE_PLAYING),
-      GST_STATE_CHANGE_ASYNC);
-
-  msg = gst_bus_timed_pop_filtered (GST_ELEMENT_BUS (pipeline), -1,
-      GST_MESSAGE_EOS | GST_MESSAGE_ERROR);
-  fail_unless_equals_int (GST_MESSAGE_TYPE (msg), GST_MESSAGE_EOS);
-  gst_message_unref (msg);
-
-  gst_element_set_state (pipeline, GST_STATE_NULL);
-  gst_object_unref (pipeline);
-}
-
-GST_END_TEST;
-
-static Suite *
-videoscale_suite (void)
-{
-  Suite *s = suite_create ("videoscale");
-  TCase *tc_chain = tcase_create ("general");
-
-  suite_add_tcase (s, tc_chain);
-  tcase_set_timeout (tc_chain, 180);
-  tcase_add_test (tc_chain, test_template_formats);
-  tcase_add_test (tc_chain, test_passthrough_method_0);
-  tcase_add_test (tc_chain, test_passthrough_method_1);
-  tcase_add_test (tc_chain, test_passthrough_method_2);
-  tcase_add_test (tc_chain, test_passthrough_method_3);
-  tcase_add_test (tc_chain, test_downscale_640x480_320x240_method_0);
-  tcase_add_test (tc_chain, test_downscale_640x480_320x240_method_1);
-  tcase_add_test (tc_chain, test_downscale_640x480_320x240_method_2);
-  tcase_add_test (tc_chain, test_downscale_640x480_320x240_method_3);
-  tcase_add_test (tc_chain, test_upscale_320x240_640x480_method_0);
-  tcase_add_test (tc_chain, test_upscale_320x240_640x480_method_1);
-  tcase_add_test (tc_chain, test_upscale_320x240_640x480_method_2);
-  tcase_add_test (tc_chain, test_upscale_320x240_640x480_method_3);
-  tcase_add_test (tc_chain, test_downscale_640x480_1x1_method_0);
-  tcase_add_test (tc_chain, test_downscale_640x480_1x1_method_1);
-  tcase_add_test (tc_chain, test_downscale_640x480_1x1_method_2);
-  tcase_skip_broken_test (tc_chain, test_downscale_640x480_1x1_method_3);
-  tcase_add_test (tc_chain, test_upscale_1x1_640x480_method_0);
-  tcase_add_test (tc_chain, test_upscale_1x1_640x480_method_1);
-  tcase_add_test (tc_chain, test_upscale_1x1_640x480_method_2);
-  tcase_add_test (tc_chain, test_upscale_1x1_640x480_method_3);
-  tcase_add_test (tc_chain, test_downscale_641x481_111x30_method_0);
-  tcase_add_test (tc_chain, test_downscale_641x481_111x30_method_1);
-  tcase_add_test (tc_chain, test_downscale_641x481_111x30_method_2);
-  tcase_add_test (tc_chain, test_downscale_641x481_111x30_method_3);
-  tcase_add_test (tc_chain, test_upscale_111x30_641x481_method_0);
-  tcase_add_test (tc_chain, test_upscale_111x30_641x481_method_1);
-  tcase_add_test (tc_chain, test_upscale_111x30_641x481_method_2);
-  tcase_add_test (tc_chain, test_upscale_111x30_641x481_method_3);
-  tcase_add_test (tc_chain, test_downscale_641x481_30x111_method_0);
-  tcase_add_test (tc_chain, test_downscale_641x481_30x111_method_1);
-  tcase_add_test (tc_chain, test_downscale_641x481_30x111_method_2);
-  tcase_add_test (tc_chain, test_downscale_641x481_30x111_method_3);
-  tcase_add_test (tc_chain, test_upscale_30x111_641x481_method_0);
-  tcase_add_test (tc_chain, test_upscale_30x111_641x481_method_1);
-  tcase_add_test (tc_chain, test_upscale_30x111_641x481_method_2);
-  tcase_add_test (tc_chain, test_upscale_30x111_641x481_method_3);
-  tcase_add_test (tc_chain, test_downscale_640x480_320x1_method_0);
-  tcase_add_test (tc_chain, test_downscale_640x480_320x1_method_1);
-  tcase_add_test (tc_chain, test_downscale_640x480_320x1_method_2);
-  tcase_skip_broken_test (tc_chain, test_downscale_640x480_320x1_method_3);
-  tcase_add_test (tc_chain, test_upscale_320x1_640x480_method_0);
-  tcase_add_test (tc_chain, test_upscale_320x1_640x480_method_1);
-  tcase_add_test (tc_chain, test_upscale_320x1_640x480_method_2);
-  tcase_skip_broken_test (tc_chain, test_upscale_320x1_640x480_method_3);
-  tcase_add_test (tc_chain, test_downscale_640x480_1x240_method_0);
-  tcase_add_test (tc_chain, test_downscale_640x480_1x240_method_1);
-  tcase_add_test (tc_chain, test_downscale_640x480_1x240_method_2);
-  tcase_skip_broken_test (tc_chain, test_downscale_640x480_1x240_method_3);
-  tcase_add_test (tc_chain, test_upscale_1x240_640x480_method_0);
-  tcase_add_test (tc_chain, test_upscale_1x240_640x480_method_1);
-  tcase_add_test (tc_chain, test_upscale_1x240_640x480_method_2);
-  tcase_add_test (tc_chain, test_upscale_1x240_640x480_method_3);
-  tcase_add_test (tc_chain, test_negotiation);
-#if 0
-  tcase_add_test (tc_chain, test_reverse_negotiation);
-#endif
-  tcase_add_test (tc_chain, test_basetransform_negotiation);
-
-  return s;
-}
-
-GST_CHECK_MAIN (videoscale);
diff --git a/tests/check/libs/allocators.c b/tests/check/libs/allocators.c
new file mode 100644
index 0000000..f2b92c7
--- /dev/null
+++ b/tests/check/libs/allocators.c
@@ -0,0 +1,90 @@
+/* GStreamer unit tests for the RTSP support library
+ * Copyright (C) 2010 Andy Wingo <wingo@oblong.com>
+ * Copyright (C) 2015 Tim-Philipp Müller <tim@centricular.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <glib/gstdio.h>
+#include <gst/check/gstcheck.h>
+
+#include <gst/allocators/gstdmabuf.h>
+#include <string.h>
+
+#define FILE_SIZE 4096
+
+
+GST_START_TEST (test_dmabuf)
+{
+  char tmpfilename[] = "/tmp/dmabuf-test.XXXXXX";
+  int fd;
+  GstMemory *mem;
+  GstAllocator *alloc;
+  GstMapInfo info;
+
+  fd = mkstemp (tmpfilename);
+  fail_unless (fd > 0);
+  fail_unless (g_unlink (tmpfilename) == 0);
+
+  alloc = gst_dmabuf_allocator_new ();
+
+  mem = gst_dmabuf_allocator_alloc (alloc, fd, FILE_SIZE);
+
+  fail_unless (gst_memory_map (mem, &info, GST_MAP_READWRITE));
+  fail_unless (info.flags == GST_MAP_READWRITE);
+  fail_unless (info.data != NULL);
+  fail_unless (info.size == FILE_SIZE);
+  fail_unless (info.maxsize == FILE_SIZE);
+  gst_memory_unmap (mem, &info);
+
+  gst_memory_unref (mem);
+  g_object_unref (alloc);
+}
+
+GST_END_TEST;
+
+static Suite *
+allocators_suite (void)
+{
+  Suite *s = suite_create ("allocators");
+  TCase *tc_chain = tcase_create ("general");
+
+  suite_add_tcase (s, tc_chain);
+  tcase_add_test (tc_chain, test_dmabuf);
+
+  return s;
+}
+
+int
+main (int argc, char **argv)
+{
+  int nf;
+
+  Suite *s = allocators_suite ();
+  SRunner *sr = srunner_create (s);
+
+  gst_check_init (&argc, &argv);
+
+  srunner_run_all (sr, CK_NORMAL);
+  nf = srunner_ntests_failed (sr);
+  srunner_free (sr);
+
+  return nf;
+}
diff --git a/tests/check/libs/audiodecoder.c b/tests/check/libs/audiodecoder.c
index 8f77a18..bfcb333 100644
--- a/tests/check/libs/audiodecoder.c
+++ b/tests/check/libs/audiodecoder.c
@@ -33,6 +33,37 @@
 
 #define TEST_MSECS_PER_SAMPLE 44100
 
+#define RESTRICTED_CAPS_RATE 44100
+#define RESTRICTED_CAPS_CHANNELS 6
+static GstStaticPadTemplate sinktemplate_restricted =
+GST_STATIC_PAD_TEMPLATE ("sink",
+    GST_PAD_SINK,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS ("audio/x-raw, rate=(int)44100, channels=(int)6")
+    );
+
+static GstStaticPadTemplate sinktemplate_with_range =
+GST_STATIC_PAD_TEMPLATE ("sink",
+    GST_PAD_SINK,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS ("audio/x-raw, rate=(int)[1,44100], channels=(int)[1,6]")
+    );
+
+static GstStaticPadTemplate sinktemplate_default =
+GST_STATIC_PAD_TEMPLATE ("sink",
+    GST_PAD_SINK,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS ("audio/x-raw, format=(string)S32LE, "
+        "rate=(int)[1, 320000], channels=(int)[1, 32],"
+        "layout=(string)interleaved")
+    );
+static GstStaticPadTemplate srctemplate_default =
+GST_STATIC_PAD_TEMPLATE ("src",
+    GST_PAD_SRC,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS ("audio/x-test-custom")
+    );
+
 #define GST_AUDIO_DECODER_TESTER_TYPE gst_audio_decoder_tester_get_type()
 static GType gst_audio_decoder_tester_get_type (void);
 
@@ -77,7 +108,6 @@
 {
   GstAudioDecoderTester *tester = (GstAudioDecoderTester *) dec;
   GstAudioInfo info;
-  gst_caps_unref (caps);
 
   if (!tester->setoutputformat_on_decoding) {
     caps = gst_caps_new_simple ("audio/x-raw", "format", G_TYPE_STRING, "S32LE",
@@ -179,24 +209,17 @@
 }
 
 static void
-setup_audiodecodertester (void)
+setup_audiodecodertester (GstStaticPadTemplate * sinktemplate,
+    GstStaticPadTemplate * srctemplate)
 {
-  static GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink",
-      GST_PAD_SINK,
-      GST_PAD_ALWAYS,
-      GST_STATIC_CAPS ("audio/x-raw, format=(string)S32LE, "
-          "rate=(int)[1, 320000], channels=(int)[1, 32],"
-          "layout=(string)interleaved")
-      );
-  static GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src",
-      GST_PAD_SRC,
-      GST_PAD_ALWAYS,
-      GST_STATIC_CAPS ("audio/x-test-custom")
-      );
+  if (sinktemplate == NULL)
+    sinktemplate = &sinktemplate_default;
+  if (srctemplate == NULL)
+    srctemplate = &srctemplate_default;
 
   dec = g_object_new (GST_AUDIO_DECODER_TESTER_TYPE, NULL);
-  mysrcpad = gst_check_setup_src_pad (dec, &srctemplate);
-  mysinkpad = gst_check_setup_sink_pad (dec, &sinktemplate);
+  mysrcpad = gst_check_setup_src_pad (dec, srctemplate);
+  mysinkpad = gst_check_setup_sink_pad (dec, sinktemplate);
 
   gst_pad_set_event_function (mysinkpad, _mysinkpad_event);
 }
@@ -242,7 +265,7 @@
       gst_caps_new_simple ("audio/x-test-custom", "channels", G_TYPE_INT, 2,
       "rate", G_TYPE_INT, 44100, NULL);
   fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_caps (caps)));
-
+  gst_caps_unref (caps);
 }
 
 #define NUM_BUFFERS 1000
@@ -252,7 +275,7 @@
   GstBuffer *buffer;
   guint64 i;
 
-  setup_audiodecodertester ();
+  setup_audiodecodertester (NULL, NULL);
 
   gst_pad_set_active (mysrcpad, TRUE);
   gst_element_set_state (dec, GST_STATE_PLAYING);
@@ -336,7 +359,7 @@
   GstSegment segment;
   GstBuffer *buffer;
 
-  setup_audiodecodertester ();
+  setup_audiodecodertester (NULL, NULL);
 
   gst_pad_set_active (mysrcpad, TRUE);
   gst_element_set_state (dec, GST_STATE_PLAYING);
@@ -365,7 +388,7 @@
 {
   GstSegment segment;
 
-  setup_audiodecodertester ();
+  setup_audiodecodertester (NULL, NULL);
 
   gst_pad_set_active (mysrcpad, TRUE);
   gst_element_set_state (dec, GST_STATE_PLAYING);
@@ -394,7 +417,7 @@
 {
   GstSegment segment;
 
-  setup_audiodecodertester ();
+  setup_audiodecodertester (NULL, NULL);
 
   ((GstAudioDecoderTester *) dec)->setoutputformat_on_decoding = TRUE;
 
@@ -420,14 +443,16 @@
 
 GST_END_TEST;
 
-GST_START_TEST (audiodecoder_flush_events)
+static void
+_audiodecoder_flush_events (gboolean send_buffers)
 {
   GstSegment segment;
   GstBuffer *buffer;
-  guint64 i;
+  guint i;
   GList *events_iter;
+  GstMessage *msg;
 
-  setup_audiodecodertester ();
+  setup_audiodecodertester (NULL, NULL);
 
   gst_pad_set_active (mysrcpad, TRUE);
   gst_element_set_state (dec, GST_STATE_PLAYING);
@@ -439,20 +464,34 @@
   gst_segment_init (&segment, GST_FORMAT_TIME);
   fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment)));
 
-  /* push buffers, the data is actually a number so we can track them */
-  for (i = 0; i < NUM_BUFFERS; i++) {
-    if (i % 10 == 0) {
-      GstTagList *tags;
+  if (send_buffers) {
+    /* push buffers, the data is actually a number so we can track them */
+    for (i = 0; i < NUM_BUFFERS; i++) {
+      if (i % 10 == 0) {
+        GstTagList *tags;
 
-      tags = gst_tag_list_new (GST_TAG_TRACK_NUMBER, i, NULL);
-      fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_tag (tags)));
-    } else {
-      buffer = create_test_buffer (i);
+        tags = gst_tag_list_new (GST_TAG_TRACK_NUMBER, i, NULL);
+        fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_tag (tags)));
+      } else {
+        buffer = create_test_buffer (i);
 
-      fail_unless (gst_pad_push (mysrcpad, buffer) == GST_FLOW_OK);
+        fail_unless (gst_pad_push (mysrcpad, buffer) == GST_FLOW_OK);
+      }
     }
+  } else {
+    /* push sticky event */
+    GstTagList *tags;
+    tags = gst_tag_list_new (GST_TAG_TRACK_NUMBER, 0, NULL);
+    fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_tag (tags)));
   }
 
+  msg =
+      gst_message_new_element (GST_OBJECT (mysrcpad),
+      gst_structure_new_empty ("test"));
+  fail_unless (gst_pad_push_event (mysrcpad,
+          gst_event_new_sink_message ("test", msg)));
+  gst_message_unref (msg);
+
   fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_eos ()));
 
   events_iter = events;
@@ -462,14 +501,27 @@
     fail_unless (GST_EVENT_TYPE (sstart) == GST_EVENT_STREAM_START);
     events_iter = g_list_next (events_iter);
   }
-  {
-    GstEvent *caps_event = events_iter->data;
-    fail_unless (GST_EVENT_TYPE (caps_event) == GST_EVENT_CAPS);
-    events_iter = g_list_next (events_iter);
+  if (send_buffers) {
+    {
+      GstEvent *caps_event = events_iter->data;
+      fail_unless (GST_EVENT_TYPE (caps_event) == GST_EVENT_CAPS);
+      events_iter = g_list_next (events_iter);
+    }
+    {
+      GstEvent *segment_event = events_iter->data;
+      fail_unless (GST_EVENT_TYPE (segment_event) == GST_EVENT_SEGMENT);
+      events_iter = g_list_next (events_iter);
+    }
+    for (int i = 0; i < NUM_BUFFERS / 10; i++) {
+      GstEvent *tag_event = events_iter->data;
+      fail_unless (GST_EVENT_TYPE (tag_event) == GST_EVENT_TAG);
+      events_iter = g_list_next (events_iter);
+    }
   }
   {
-    GstEvent *segment_event = events_iter->data;
-    fail_unless (GST_EVENT_TYPE (segment_event) == GST_EVENT_SEGMENT);
+    GstEvent *eos_event = g_list_last (events_iter)->data;
+
+    fail_unless (GST_EVENT_TYPE (eos_event) == GST_EVENT_EOS);
     events_iter = g_list_next (events_iter);
   }
 
@@ -515,12 +567,58 @@
 
   }
 
+  g_list_free_full (events, (GDestroyNotify) gst_event_unref);
+  events = NULL;
+
   g_list_free_full (buffers, (GDestroyNotify) gst_buffer_unref);
   buffers = NULL;
 
+  gst_element_set_state (dec, GST_STATE_NULL);
   cleanup_audiodecodertest ();
 }
 
+/* An element should always push its segment before sending EOS */
+GST_START_TEST (audiodecoder_eos_events_no_buffers)
+{
+  GstSegment segment;
+  setup_audiodecodertester (NULL, NULL);
+
+  gst_pad_set_active (mysrcpad, TRUE);
+  gst_element_set_state (dec, GST_STATE_PLAYING);
+  gst_pad_set_active (mysinkpad, TRUE);
+  send_startup_events ();
+
+  gst_segment_init (&segment, GST_FORMAT_TIME);
+  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment)));
+  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_eos ()));
+
+  fail_unless (GST_PAD_IS_EOS (mysinkpad));
+
+  {
+    GstEvent *segment_event =
+        gst_pad_get_sticky_event (mysinkpad, GST_EVENT_SEGMENT, 0);
+    fail_unless (segment_event != NULL);
+    gst_event_unref (segment_event);
+  }
+
+  gst_element_set_state (dec, GST_STATE_NULL);
+  cleanup_audiodecodertest ();
+}
+
+GST_END_TEST;
+
+GST_START_TEST (audiodecoder_flush_events_no_buffers)
+{
+  _audiodecoder_flush_events (FALSE);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (audiodecoder_flush_events)
+{
+  _audiodecoder_flush_events (TRUE);
+}
+
 GST_END_TEST;
 
 
@@ -531,7 +629,7 @@
   guint64 i;
   GstClockTime pos;
 
-  setup_audiodecodertester ();
+  setup_audiodecodertester (NULL, NULL);
 
   gst_pad_set_active (mysrcpad, TRUE);
   gst_element_set_state (dec, GST_STATE_PLAYING);
@@ -594,7 +692,7 @@
   GstBuffer *buffer;
   guint64 i;
 
-  setup_audiodecodertester ();
+  setup_audiodecodertester (NULL, NULL);
 
   ((GstAudioDecoderTester *) dec)->output_too_many_frames = TRUE;
 
@@ -644,6 +742,149 @@
 
 GST_END_TEST;
 
+GST_START_TEST (audiodecoder_query_caps_with_fixed_caps_peer)
+{
+  GstCaps *caps;
+  GstCaps *filter;
+  GstStructure *structure;
+  gint rate, channels;
+
+  setup_audiodecodertester (&sinktemplate_restricted, NULL);
+
+  gst_pad_set_active (mysrcpad, TRUE);
+  gst_element_set_state (dec, GST_STATE_PLAYING);
+  gst_pad_set_active (mysinkpad, TRUE);
+
+  caps = gst_pad_peer_query_caps (mysrcpad, NULL);
+  fail_unless (caps != NULL);
+
+  structure = gst_caps_get_structure (caps, 0);
+  fail_unless (gst_structure_get_int (structure, "rate", &rate));
+  fail_unless (gst_structure_get_int (structure, "channels", &channels));
+
+  /* match our restricted caps values */
+  fail_unless (channels == RESTRICTED_CAPS_CHANNELS);
+  fail_unless (rate == RESTRICTED_CAPS_RATE);
+  gst_caps_unref (caps);
+
+  filter = gst_caps_new_simple ("audio/x-custom-test", "rate", G_TYPE_INT,
+      10000, "channels", G_TYPE_INT, 12, NULL);
+  caps = gst_pad_peer_query_caps (mysrcpad, filter);
+  fail_unless (caps != NULL);
+  fail_unless (gst_caps_is_empty (caps));
+  gst_caps_unref (caps);
+  gst_caps_unref (filter);
+
+  cleanup_audiodecodertest ();
+}
+
+GST_END_TEST;
+
+static void
+_get_int_range (GstStructure * s, const gchar * field, gint * min_v,
+    gint * max_v)
+{
+  const GValue *value;
+
+  value = gst_structure_get_value (s, field);
+  fail_unless (value != NULL);
+  fail_unless (GST_VALUE_HOLDS_INT_RANGE (value));
+
+  *min_v = gst_value_get_int_range_min (value);
+  *max_v = gst_value_get_int_range_max (value);
+}
+
+GST_START_TEST (audiodecoder_query_caps_with_range_caps_peer)
+{
+  GstCaps *caps;
+  GstCaps *filter;
+  GstStructure *structure;
+  gint rate, channels;
+  gint rate_min, channels_min;
+  gint rate_max, channels_max;
+
+  setup_audiodecodertester (&sinktemplate_with_range, NULL);
+
+  gst_pad_set_active (mysrcpad, TRUE);
+  gst_element_set_state (dec, GST_STATE_PLAYING);
+  gst_pad_set_active (mysinkpad, TRUE);
+
+  caps = gst_pad_peer_query_caps (mysrcpad, NULL);
+  fail_unless (caps != NULL);
+
+  structure = gst_caps_get_structure (caps, 0);
+  _get_int_range (structure, "rate", &rate_min, &rate_max);
+  _get_int_range (structure, "channels", &channels_min, &channels_max);
+  fail_unless (rate_min == 1);
+  fail_unless (rate_max == RESTRICTED_CAPS_RATE);
+  fail_unless (channels_min == 1);
+  fail_unless (channels_max == RESTRICTED_CAPS_CHANNELS);
+  gst_caps_unref (caps);
+
+  /* query with a fixed filter */
+  filter = gst_caps_new_simple ("audio/x-test-custom", "rate", G_TYPE_INT,
+      RESTRICTED_CAPS_RATE, "channels", G_TYPE_INT, RESTRICTED_CAPS_CHANNELS,
+      NULL);
+  caps = gst_pad_peer_query_caps (mysrcpad, filter);
+  fail_unless (caps != NULL);
+  structure = gst_caps_get_structure (caps, 0);
+  fail_unless (gst_structure_get_int (structure, "rate", &rate));
+  fail_unless (gst_structure_get_int (structure, "channels", &channels));
+  fail_unless (rate == RESTRICTED_CAPS_RATE);
+  fail_unless (channels == RESTRICTED_CAPS_CHANNELS);
+  gst_caps_unref (caps);
+  gst_caps_unref (filter);
+
+  /* query with a fixed filter that will lead to empty result */
+  filter = gst_caps_new_simple ("audio/x-test-custom", "rate", G_TYPE_INT,
+      10000, "channels", G_TYPE_INT, 12, NULL);
+  caps = gst_pad_peer_query_caps (mysrcpad, filter);
+  fail_unless (caps != NULL);
+  fail_unless (gst_caps_is_empty (caps));
+  gst_caps_unref (caps);
+  gst_caps_unref (filter);
+
+  cleanup_audiodecodertest ();
+}
+
+GST_END_TEST;
+
+#define GETCAPS_CAPS_STR "audio/x-test-custom, somefield=(string)getcaps"
+static GstCaps *
+_custom_audio_decoder_getcaps (GstAudioDecoder * dec, GstCaps * filter)
+{
+  return gst_caps_from_string (GETCAPS_CAPS_STR);
+}
+
+GST_START_TEST (audiodecoder_query_caps_with_custom_getcaps)
+{
+  GstCaps *caps;
+  GstAudioDecoderClass *klass;
+  GstCaps *expected_caps;
+
+  setup_audiodecodertester (&sinktemplate_restricted, NULL);
+
+  klass = GST_AUDIO_DECODER_CLASS (GST_AUDIO_DECODER_GET_CLASS (dec));
+  klass->getcaps = _custom_audio_decoder_getcaps;
+
+  gst_pad_set_active (mysrcpad, TRUE);
+  gst_element_set_state (dec, GST_STATE_PLAYING);
+  gst_pad_set_active (mysinkpad, TRUE);
+
+  caps = gst_pad_peer_query_caps (mysrcpad, NULL);
+  fail_unless (caps != NULL);
+
+  expected_caps = gst_caps_from_string (GETCAPS_CAPS_STR);
+  fail_unless (gst_caps_is_equal (expected_caps, caps));
+  gst_caps_unref (expected_caps);
+  gst_caps_unref (caps);
+
+  cleanup_audiodecodertest ();
+}
+
+GST_END_TEST;
+
+
 static Suite *
 gst_audiodecoder_suite (void)
 {
@@ -652,6 +893,8 @@
 
   suite_add_tcase (s, tc);
   tcase_add_test (tc, audiodecoder_playback);
+  tcase_add_test (tc, audiodecoder_flush_events_no_buffers);
+  tcase_add_test (tc, audiodecoder_eos_events_no_buffers);
   tcase_add_test (tc, audiodecoder_flush_events);
   tcase_add_test (tc, audiodecoder_negotiation_with_buffer);
   tcase_add_test (tc, audiodecoder_negotiation_with_gap_event);
@@ -659,6 +902,10 @@
   tcase_add_test (tc, audiodecoder_buffer_after_segment);
   tcase_add_test (tc, audiodecoder_output_too_many_frames);
 
+  tcase_add_test (tc, audiodecoder_query_caps_with_fixed_caps_peer);
+  tcase_add_test (tc, audiodecoder_query_caps_with_range_caps_peer);
+  tcase_add_test (tc, audiodecoder_query_caps_with_custom_getcaps);
+
   return s;
 }
 
diff --git a/tests/check/libs/audioencoder.c b/tests/check/libs/audioencoder.c
index bd65341..2ca9520 100644
--- a/tests/check/libs/audioencoder.c
+++ b/tests/check/libs/audioencoder.c
@@ -283,7 +283,7 @@
 {
   GstSegment segment;
   GstBuffer *buffer;
-  guint64 i;
+  guint i;
   GList *events_iter;
 
   setup_audioencodertester ();
diff --git a/tests/check/libs/mikey.c b/tests/check/libs/mikey.c
index 9ffd8d4..baf1cf0 100644
--- a/tests/check/libs/mikey.c
+++ b/tests/check/libs/mikey.c
@@ -106,7 +106,7 @@
   fail_unless (gst_mikey_message_remove_cs_srtp (msg, 0));
   fail_unless (gst_mikey_message_get_n_cs (msg) == 0);
 
-  gst_mikey_message_free (msg);
+  gst_mikey_message_unref (msg);
 }
 
 GST_END_TEST
@@ -176,7 +176,7 @@
   fail_unless (cp->type == GST_MIKEY_PT_KEMAC);
 
   bytes = gst_mikey_message_to_bytes (msg, NULL, NULL);
-  gst_mikey_message_free (msg);
+  gst_mikey_message_unref (msg);
 
   msg = gst_mikey_message_new_from_bytes (bytes, NULL, NULL);
   fail_unless (msg != NULL);
@@ -199,7 +199,7 @@
   fail_unless (pkd->kv_type == GST_MIKEY_KV_NULL);
 
 
-  gst_mikey_message_free (msg);
+  gst_mikey_message_unref (msg);
 }
 
 GST_END_TEST
diff --git a/tests/check/libs/pbutils.c b/tests/check/libs/pbutils.c
index 45a7ef5..dda8d78 100644
--- a/tests/check/libs/pbutils.c
+++ b/tests/check/libs/pbutils.c
@@ -266,7 +266,7 @@
   "audio/x-wms", "audio/x-voxware", "audio/x-xi", "video/sp5x", "video/vivo",
   "video/x-4xm", "video/x-apple-video", "video/x-camtasia",
   "video/x-cdxa", "video/x-cinepak", "video/x-cirrus-logic-accupak",
-  "video/x-compressed-yuv", "video/x-dirac", "subpicture/x-dvd",
+  "video/x-compressed-yuv", "subpicture/x-dvd",
   "video/x-ffv", "video/x-flash-screen", "video/x-flash-video",
   "video/x-h261", "video/x-huffyuv", "video/x-intel-h263", "video/x-jpeg",
   "video/x-mjpeg", "video/x-mjpeg-b", "video/mpegts", "video/x-mng",
@@ -310,6 +310,8 @@
   "video/mpeg, mpegversion=(int)4, systemstream=(boolean)FALSE",
   "video/mpeg, mpegversion=(int)99, systemstream=(boolean)TRUE",
   "video/mpeg, mpegversion=(int)99, systemstream=(boolean)FALSE",
+  "video/mpeg, mpegversion=(int)4, systemstream=(boolean)FALSE, profile=main",
+  "video/mpeg, mpegversion=(int)4, systemstream=(boolean)FALSE, profile=adsfad",
   "video/mpeg",
   "video/x-indeo, indeoversion=(int)3",
   "video/x-indeo, indeoversion=(int)5",
@@ -324,6 +326,12 @@
   "audio/x-wma, wmaversion=(int)3",
   "audio/x-wma, wmaversion=(int)99",
   "audio/x-wma",
+  "video/x-dirac",
+  "video/x-dirac, profile=(string)vc2-low-delay",
+  "video/x-dirac, profile=(string)vc2-simple",
+  "video/x-dirac, profile=(string)vc2-main",
+  "video/x-dirac, profile=(string)main",
+  "video/x-dirac, profile=(string)czvja",
   "video/x-divx, divxversion=(int)3",
   "video/x-divx, divxversion=(int)4",
   "video/x-divx, divxversion=(int)5",
@@ -333,10 +341,16 @@
   "video/x-svq, svqversion=(int)3",
   "video/x-svq, svqversion=(int)99",
   "video/x-svq",
+  "video/x-h265, profile=(string)main",
+  "video/x-h265, profile=(string)xafasdf",
+  "video/x-h265",
   "video/x-h264, variant=(string)itu",
   "video/x-h264, variant=(string)videosoft",
   "video/x-h264, variant=(string)foobar",
   "video/x-h264",
+  "video/x-h264, profile=(string)foobar",
+  "video/x-h264, profile=(string)high-4:4:4-intra",
+  "video/x-h264, profile=(string)high",
   "video/x-h263, variant=(string)itu",
   "video/x-h263, variant=(string)lead",
   "video/x-h263, variant=(string)microsoft",
@@ -406,14 +420,17 @@
     desc = gst_pb_utils_get_codec_description (caps);
     fail_unless (desc != NULL);
     GST_LOG (" - codec   : %s", desc);
+    fail_unless (g_utf8_validate (desc, -1, NULL));
     g_free (desc);
     desc = gst_pb_utils_get_decoder_description (caps);
     fail_unless (desc != NULL);
     GST_LOG (" - decoder : %s", desc);
+    fail_unless (g_utf8_validate (desc, -1, NULL));
     g_free (desc);
     desc = gst_pb_utils_get_encoder_description (caps);
     fail_unless (desc != NULL);
     GST_LOG (" - encoder : %s", desc);
+    fail_unless (g_utf8_validate (desc, -1, NULL));
     g_free (desc);
     gst_caps_unref (caps);
   }
diff --git a/tests/check/libs/rtpbasedepayload.c b/tests/check/libs/rtpbasedepayload.c
index 71a1d85..15fa511 100644
--- a/tests/check/libs/rtpbasedepayload.c
+++ b/tests/check/libs/rtpbasedepayload.c
@@ -20,8 +20,8 @@
 
 #include <gst/gst.h>
 #include <gst/check/gstcheck.h>
-#include <gst-libs/gst/rtp/gstrtpbuffer.h>
-#include <gst-libs/gst/rtp/gstrtpbasedepayload.h>
+#include <gst/rtp/gstrtpbuffer.h>
+#include <gst/rtp/gstrtpbasedepayload.h>
 
 #define DEFAULT_CLOCK_RATE (42)
 
@@ -59,8 +59,8 @@
 
 static GstBuffer *gst_rtp_dummy_depay_process (GstRTPBaseDepayload * depayload,
     GstBuffer * buf);
-static gboolean gst_rtp_dummy_depay_set_caps (GstRTPBaseDepayload *filter,
-    GstCaps *caps);
+static gboolean gst_rtp_dummy_depay_set_caps (GstRTPBaseDepayload * filter,
+    GstCaps * caps);
 
 static GstStaticPadTemplate gst_rtp_dummy_depay_sink_template =
 GST_STATIC_PAD_TEMPLATE ("sink",
@@ -113,8 +113,8 @@
   guint i;
 
   GST_LOG ("depayloading buffer pts=%" GST_TIME_FORMAT " offset=%"
-  G_GUINT64_FORMAT " memories=%d", GST_TIME_ARGS (GST_BUFFER_PTS(buf)),
-  GST_BUFFER_OFFSET(buf), gst_buffer_n_memory (buf));
+      G_GUINT64_FORMAT " memories=%d", GST_TIME_ARGS (GST_BUFFER_PTS (buf)),
+      GST_BUFFER_OFFSET (buf), gst_buffer_n_memory (buf));
 
   for (i = 0; i < gst_buffer_n_memory (buf); i++) {
     GstMemory *mem = gst_buffer_get_memory (buf, 0);
@@ -134,8 +134,8 @@
 
   GST_LOG ("depayloaded buffer pts=%" GST_TIME_FORMAT " offset=%"
       G_GUINT64_FORMAT " rtptime=%" G_GUINT32_FORMAT " memories=%d",
-      GST_TIME_ARGS (GST_BUFFER_PTS(outbuf)),
-      GST_BUFFER_OFFSET(outbuf), rtptime, gst_buffer_n_memory (buf));
+      GST_TIME_ARGS (GST_BUFFER_PTS (outbuf)),
+      GST_BUFFER_OFFSET (outbuf), rtptime, gst_buffer_n_memory (buf));
 
   for (i = 0; i < gst_buffer_n_memory (buf); i++) {
     GstMemory *mem = gst_buffer_get_memory (buf, 0);
@@ -149,7 +149,7 @@
 }
 
 static gboolean
-gst_rtp_dummy_depay_set_caps (GstRTPBaseDepayload *filter, GstCaps *caps)
+gst_rtp_dummy_depay_set_caps (GstRTPBaseDepayload * filter, GstCaps * caps)
 {
   GstEvent *event;
   event = gst_event_new_caps (caps);
@@ -171,7 +171,8 @@
 
 typedef struct State State;
 
-struct State {
+struct State
+{
   GstElement *element;
   GstPad *sinkpad;
   GstPad *srcpad;
@@ -186,7 +187,8 @@
   return gst_pad_event_default (pad, noparent, event);
 }
 
-static void drop_events (void)
+static void
+drop_events (void)
 {
   while (events != NULL) {
     gst_event_unref (GST_EVENT (events->data));
@@ -194,13 +196,14 @@
   }
 }
 
-static void validate_events_received (guint received)
+static void
+validate_events_received (guint received)
 {
   fail_unless_equals_int (g_list_length (events), received);
 }
 
-static void validate_event (guint index, const gchar *name,
-    const gchar *field, ...)
+static void
+validate_event (guint index, const gchar * name, const gchar * field, ...)
 {
   GstEvent *event;
   va_list var_args;
@@ -262,32 +265,32 @@
       GstCaps *caps;
       GstClockTime start;
       gst_event_parse_caps (event, &caps);
-      fail_unless (gst_structure_get_clock_time (
-            gst_caps_get_structure (caps, 0), "npt-start", &start));
+      fail_unless (gst_structure_get_clock_time (gst_caps_get_structure (caps,
+                  0), "npt-start", &start));
       fail_unless_equals_uint64 (start, expected);
     } else if (!g_strcmp0 (field, "npt-stop")) {
       GstClockTime expected = va_arg (var_args, GstClockTime);
       GstCaps *caps;
       GstClockTime stop;
       gst_event_parse_caps (event, &caps);
-      fail_unless (gst_structure_get_clock_time (
-            gst_caps_get_structure (caps, 0), "npt-stop", &stop));
+      fail_unless (gst_structure_get_clock_time (gst_caps_get_structure (caps,
+                  0), "npt-stop", &stop));
       fail_unless_equals_uint64 (stop, expected);
     } else if (!g_strcmp0 (field, "play-speed")) {
       gdouble expected = va_arg (var_args, gdouble);
       GstCaps *caps;
       gdouble speed;
       gst_event_parse_caps (event, &caps);
-      fail_unless (gst_structure_get_double (
-            gst_caps_get_structure (caps, 0), "play-speed", &speed));
+      fail_unless (gst_structure_get_double (gst_caps_get_structure (caps, 0),
+              "play-speed", &speed));
       fail_unless (speed == expected);
     } else if (!g_strcmp0 (field, "play-scale")) {
       gdouble expected = va_arg (var_args, gdouble);
       GstCaps *caps;
       gdouble scale;
       gst_event_parse_caps (event, &caps);
-      fail_unless (gst_structure_get_double (
-            gst_caps_get_structure (caps, 0), "play-scale", &scale));
+      fail_unless (gst_structure_get_double (gst_caps_get_structure (caps, 0),
+              "play-scale", &scale));
       fail_unless (scale == expected);
     } else {
       fail ("test cannot validate unknown event field '%s'", field);
@@ -302,8 +305,9 @@
 #define push_rtp_buffer_fails(state, error, field, ...) \
         push_rtp_buffer_full ((state), (error), (field), __VA_ARGS__)
 
-static void push_rtp_buffer_full (State *state, GstFlowReturn expected,
-    const gchar *field, ...)
+static void
+push_rtp_buffer_full (State * state, GstFlowReturn expected,
+    const gchar * field, ...)
 {
   GstBuffer *buf = gst_rtp_buffer_new_allocate (0, 0, 0);
   GstRTPBuffer rtp = { NULL };
@@ -331,7 +335,7 @@
         mapped = TRUE;
       }
       if (!g_strcmp0 (field, "rtptime")) {
-        guint32 rtptime = va_arg (var_args, guint32);
+        guint32 rtptime = va_arg (var_args, guint64);
         gst_rtp_buffer_set_timestamp (&rtp, rtptime);
       } else if (!g_strcmp0 (field, "payload-type")) {
         guint payload_type = va_arg (var_args, guint);
@@ -340,7 +344,7 @@
         guint seq = va_arg (var_args, guint);
         gst_rtp_buffer_set_seq (&rtp, seq);
       } else if (!g_strcmp0 (field, "ssrc")) {
-        guint32 ssrc = va_arg (var_args, guint32);
+        guint32 ssrc = va_arg (var_args, guint);
         gst_rtp_buffer_set_ssrc (&rtp, ssrc);
       } else {
         fail ("test cannot set unknown buffer field '%s'", field);
@@ -360,8 +364,9 @@
 #define push_buffer(state, field, ...) \
 	push_buffer_full ((state), GST_FLOW_OK, (field), __VA_ARGS__)
 
-static void push_buffer_full (State *state, GstFlowReturn expected,
-    const gchar *field, ...)
+static void
+push_buffer_full (State * state, GstFlowReturn expected,
+    const gchar * field, ...)
 {
   GstBuffer *buf = gst_buffer_new_allocate (0, 0, 0);
   va_list var_args;
@@ -391,12 +396,14 @@
   fail_unless_equals_int (gst_pad_push (state->srcpad, buf), expected);
 }
 
-static void validate_buffers_received (guint received)
+static void
+validate_buffers_received (guint received)
 {
   fail_unless_equals_int (g_list_length (buffers), received);
 }
 
-static void validate_buffer (guint index, const gchar *field, ...)
+static void
+validate_buffer (guint index, const gchar * field, ...)
 {
   GstBuffer *buf;
   va_list var_args;
@@ -414,7 +421,7 @@
       fail_unless_equals_uint64 (GST_BUFFER_PTS (buf), pts);
     } else if (!g_strcmp0 (field, "offset")) {
       guint64 offset = va_arg (var_args, guint64);
-      fail_unless_equals_uint64 (GST_BUFFER_OFFSET(buf), offset);
+      fail_unless_equals_uint64 (GST_BUFFER_OFFSET (buf), offset);
     } else if (!g_strcmp0 (field, "discont")) {
       gboolean discont = va_arg (var_args, gboolean);
       if (discont) {
@@ -430,8 +437,8 @@
   va_end (var_args);
 }
 
-static State *create_depayloader (const gchar *caps_str,
-    const gchar *property, ...)
+static State *
+create_depayloader (const gchar * caps_str, const gchar * property, ...)
 {
   va_list var_args;
   GstCaps *caps;
@@ -468,14 +475,15 @@
   return state;
 }
 
-static void set_state (State *state, GstState new_state)
+static void
+set_state (State * state, GstState new_state)
 {
   fail_unless_equals_int (gst_element_set_state (state->element, new_state),
       GST_STATE_CHANGE_SUCCESS);
 }
 
-static void packet_lost (State *state, GstClockTime timestamp,
-    GstClockTime duration)
+static void
+packet_lost (State * state, GstClockTime timestamp, GstClockTime duration)
 {
   GstEvent *event;
   guint seqnum = 0x4243;
@@ -483,18 +491,17 @@
   guint retries = 42;
 
   event = gst_event_new_custom (GST_EVENT_CUSTOM_DOWNSTREAM,
-    gst_structure_new ("GstRTPPacketLost",
-      "seqnum", G_TYPE_UINT, seqnum,
-      "timestamp", G_TYPE_UINT64, timestamp,
-      "duration", G_TYPE_UINT64, duration,
-      "late", G_TYPE_BOOLEAN, late,
-      "retry", G_TYPE_UINT, retries,
-      NULL));;
+      gst_structure_new ("GstRTPPacketLost",
+          "seqnum", G_TYPE_UINT, seqnum,
+          "timestamp", G_TYPE_UINT64, timestamp,
+          "duration", G_TYPE_UINT64, duration,
+          "late", G_TYPE_BOOLEAN, late, "retry", G_TYPE_UINT, retries, NULL));
 
   fail_unless (gst_pad_push_event (state->srcpad, event));
 }
 
-static void reconfigure_caps (State *state, const gchar *caps_str)
+static void
+reconfigure_caps (State * state, const gchar * caps_str)
 {
   GstCaps *newcaps;
   GstEvent *event;
@@ -504,7 +511,8 @@
   fail_unless (gst_pad_push_event (state->srcpad, event));
 }
 
-static void flush_pipeline (State *state)
+static void
+flush_pipeline (State * state)
 {
   GstEvent *event;
   GstSegment segment;
@@ -517,7 +525,8 @@
   fail_unless (gst_pad_push_event (state->srcpad, event));
 }
 
-static void destroy_depayloader (State *state)
+static void
+destroy_depayloader (State * state)
 {
   gst_check_teardown_sink_pad (state->element);
   gst_check_teardown_src_pad (state->element);
@@ -549,50 +558,35 @@
 
   push_rtp_buffer (state,
       "pts", 0 * GST_SECOND,
-      "rtptime", G_GUINT64_CONSTANT (0x1234),
-      "seq", 0x4242,
-      NULL);
+      "rtptime", G_GUINT64_CONSTANT (0x1234), "seq", 0x4242, NULL);
 
   push_rtp_buffer (state,
       "pts", 1 * GST_SECOND,
       "rtptime", G_GUINT64_CONSTANT (0x1234) + 1 * DEFAULT_CLOCK_RATE,
-      "seq", 0x4242 + 1,
-      NULL);
+      "seq", 0x4242 + 1, NULL);
 
   set_state (state, GST_STATE_NULL);
 
   validate_buffers_received (2);
 
-  validate_buffer (0,
-      "pts", 0 * GST_SECOND,
-      "discont", FALSE,
-      NULL);
+  validate_buffer (0, "pts", 0 * GST_SECOND, "discont", FALSE, NULL);
 
-  validate_buffer (1,
-      "pts", 1 * GST_SECOND,
-      "discont", FALSE,
-      NULL);
+  validate_buffer (1, "pts", 1 * GST_SECOND, "discont", FALSE, NULL);
 
   validate_events_received (3);
 
-  validate_event (0, "stream-start",
-      NULL);
+  validate_event (0, "stream-start", NULL);
 
-  validate_event (1, "caps",
-      "media-type", "application/x-rtp",
-      NULL);
+  validate_event (1, "caps", "media-type", "application/x-rtp", NULL);
 
   validate_event (2, "segment",
       "time", G_GUINT64_CONSTANT (0),
-      "start", G_GUINT64_CONSTANT (0),
-      "stop", G_MAXUINT64,
-      NULL);
+      "start", G_GUINT64_CONSTANT (0), "stop", G_MAXUINT64, NULL);
 
   destroy_depayloader (state);
 }
 
 GST_END_TEST
-
 /* the intent with this test is to provide the depayloader with a buffer that
  * does not contain an RTP header. this makes it impossible for the depayloader
  * to depayload the incoming RTP packet, yet the stream-start and caps events
@@ -607,9 +601,7 @@
   set_state (state, GST_STATE_PLAYING);
 
   push_buffer (state,
-      "pts", 0 * GST_SECOND,
-      "offset", GST_BUFFER_OFFSET_NONE,
-      NULL);
+      "pts", 0 * GST_SECOND, "offset", GST_BUFFER_OFFSET_NONE, NULL);
 
   set_state (state, GST_STATE_NULL);
 
@@ -617,18 +609,14 @@
 
   validate_events_received (2);
 
-  validate_event (0, "stream-start",
-      NULL);
+  validate_event (0, "stream-start", NULL);
 
-  validate_event (1, "caps",
-      "media-type", "application/x-rtp",
-      NULL);
+  validate_event (1, "caps", "media-type", "application/x-rtp", NULL);
 
   destroy_depayloader (state);
 }
 
 GST_END_TEST
-
 /* validate what happens when a depayloader is provided with two RTP packets
  * sent after each other that do not have sequential sequence numbers. in this
  * case the depayloader should be able to depayload both first and the second
@@ -647,50 +635,35 @@
 
   push_rtp_buffer (state,
       "pts", 0 * GST_SECOND,
-      "rtptime", G_GUINT64_CONSTANT (0x43214321),
-      "seq", 0x4242,
-      NULL);
+      "rtptime", G_GUINT64_CONSTANT (0x43214321), "seq", 0x4242, NULL);
 
   push_rtp_buffer (state,
       "pts", 1 * GST_SECOND,
       "rtptime", G_GUINT64_CONSTANT (0x43214321) + 1 * DEFAULT_CLOCK_RATE,
-      "seq", 0x4242 + 2,
-      NULL);
+      "seq", 0x4242 + 2, NULL);
 
   set_state (state, GST_STATE_NULL);
 
   validate_buffers_received (2);
 
-  validate_buffer (0,
-      "pts", 0 * GST_SECOND,
-      "discont", FALSE,
-      NULL);
+  validate_buffer (0, "pts", 0 * GST_SECOND, "discont", FALSE, NULL);
 
-  validate_buffer (1,
-      "pts", 1 * GST_SECOND,
-      "discont", TRUE,
-      NULL);
+  validate_buffer (1, "pts", 1 * GST_SECOND, "discont", TRUE, NULL);
 
   validate_events_received (3);
 
-  validate_event (0, "stream-start",
-      NULL);
+  validate_event (0, "stream-start", NULL);
 
-  validate_event (1, "caps",
-      "media-type", "application/x-rtp",
-      NULL);
+  validate_event (1, "caps", "media-type", "application/x-rtp", NULL);
 
   validate_event (2, "segment",
       "time", G_GUINT64_CONSTANT (0),
-      "start", G_GUINT64_CONSTANT (0),
-      "stop", G_MAXUINT64,
-      NULL);
+      "start", G_GUINT64_CONSTANT (0), "stop", G_MAXUINT64, NULL);
 
   destroy_depayloader (state);
 }
 
 GST_END_TEST
-
 /* two RTP packets are pushed in this test, and while the sequence numbers are
  * sequential they are reversed. the expectation is that the depayloader will be
  * able to depayload the first RTP packet, but once the second RTP packet
@@ -707,45 +680,33 @@
 
   push_rtp_buffer (state,
       "pts", 0 * GST_SECOND,
-      "rtptime", G_GUINT64_CONSTANT (0x43214321),
-      "seq", 0x4242,
-      NULL);
+      "rtptime", G_GUINT64_CONSTANT (0x43214321), "seq", 0x4242, NULL);
 
   push_rtp_buffer (state,
       "pts", 1 * GST_SECOND,
       "rtptime", G_GUINT64_CONSTANT (0x43214321) + 1 * DEFAULT_CLOCK_RATE,
-      "seq", 0x4242 - 1,
-      NULL);
+      "seq", 0x4242 - 1, NULL);
 
   set_state (state, GST_STATE_NULL);
 
   validate_buffers_received (1);
 
-  validate_buffer (0,
-      "pts", 0 * GST_SECOND,
-      "discont", FALSE,
-      NULL);
+  validate_buffer (0, "pts", 0 * GST_SECOND, "discont", FALSE, NULL);
 
   validate_events_received (3);
 
-  validate_event (0, "stream-start",
-      NULL);
+  validate_event (0, "stream-start", NULL);
 
-  validate_event (1, "caps",
-      "media-type", "application/x-rtp",
-      NULL);
+  validate_event (1, "caps", "media-type", "application/x-rtp", NULL);
 
   validate_event (2, "segment",
       "time", G_GUINT64_CONSTANT (0),
-      "start", G_GUINT64_CONSTANT (0),
-      "stop", G_MAXUINT64,
-      NULL);
+      "start", G_GUINT64_CONSTANT (0), "stop", G_MAXUINT64, NULL);
 
   destroy_depayloader (state);
 }
 
 GST_END_TEST
-
 /* the intent of this test is to push two RTP packets that have reverse sequence
  * numbers that differ significantly. the depayloader will consider RTP packets
  * where the sequence numbers differ by more than 1000 to indicate that the
@@ -764,50 +725,35 @@
 
   push_rtp_buffer (state,
       "pts", 0 * GST_SECOND,
-      "rtptime", G_GUINT64_CONSTANT (0x43214321),
-      "seq", 0x4242,
-      NULL);
+      "rtptime", G_GUINT64_CONSTANT (0x43214321), "seq", 0x4242, NULL);
 
   push_rtp_buffer (state,
       "pts", 1 * GST_SECOND,
       "rtptime", G_GUINT64_CONSTANT (0x43214321) + 1 * DEFAULT_CLOCK_RATE,
-      "seq", 0x4242 - 1000,
-      NULL);
+      "seq", 0x4242 - 1000, NULL);
 
   set_state (state, GST_STATE_NULL);
 
   validate_buffers_received (2);
 
-  validate_buffer (0,
-      "pts", 0 * GST_SECOND,
-      "discont", FALSE,
-      NULL);
+  validate_buffer (0, "pts", 0 * GST_SECOND, "discont", FALSE, NULL);
 
-  validate_buffer (1,
-      "pts", 1 * GST_SECOND,
-      "discont", TRUE,
-      NULL);
+  validate_buffer (1, "pts", 1 * GST_SECOND, "discont", TRUE, NULL);
 
   validate_events_received (3);
 
-  validate_event (0, "stream-start",
-      NULL);
+  validate_event (0, "stream-start", NULL);
 
-  validate_event (1, "caps",
-      "media-type", "application/x-rtp",
-      NULL);
+  validate_event (1, "caps", "media-type", "application/x-rtp", NULL);
 
   validate_event (2, "segment",
       "time", G_GUINT64_CONSTANT (0),
-      "start", G_GUINT64_CONSTANT (0),
-      "stop", G_MAXUINT64,
-      NULL);
+      "start", G_GUINT64_CONSTANT (0), "stop", G_MAXUINT64, NULL);
 
   destroy_depayloader (state);
 }
 
 GST_END_TEST
-
 /* a depayloader that has not received any caps event will not be able to
  * process any incoming RTP packet. instead pushing an RTP packet should result
  * in the expected error.
@@ -822,9 +768,7 @@
 
   push_rtp_buffer_fails (state, GST_FLOW_NOT_NEGOTIATED,
       "pts", 0 * GST_SECOND,
-      "rtptime", G_GUINT64_CONSTANT (0x1234),
-      "seq", 0x4242,
-      NULL);
+      "rtptime", G_GUINT64_CONSTANT (0x1234), "seq", 0x4242, NULL);
 
   set_state (state, GST_STATE_NULL);
 
@@ -832,14 +776,12 @@
 
   validate_events_received (1);
 
-  validate_event (0, "stream-start",
-      NULL);
+  validate_event (0, "stream-start", NULL);
 
   destroy_depayloader (state);
 }
 
 GST_END_TEST
-
 /* a depayloader that receives the downstream event GstRTPPacketLost should
  * respond by emitting a gap event with the corresponding timestamp and
  * duration. the initial events are unaffected, but are succeeded by the added
@@ -855,57 +797,40 @@
 
   push_rtp_buffer (state,
       "pts", 0 * GST_SECOND,
-      "rtptime", G_GUINT64_CONSTANT (0x1234),
-      "seq", 0x4242,
-      NULL);
+      "rtptime", G_GUINT64_CONSTANT (0x1234), "seq", 0x4242, NULL);
 
   packet_lost (state, 1 * GST_SECOND, GST_SECOND);
 
   push_rtp_buffer (state,
       "pts", 2 * GST_SECOND,
       "rtptime", G_GUINT64_CONSTANT (0x1234) + 2 * DEFAULT_CLOCK_RATE,
-      "seq", 0x4242 + 2,
-      NULL);
+      "seq", 0x4242 + 2, NULL);
 
   set_state (state, GST_STATE_NULL);
 
   validate_buffers_received (2);
 
-  validate_buffer (0,
-      "pts", 0 * GST_SECOND,
-      "discont", FALSE,
-      NULL);
+  validate_buffer (0, "pts", 0 * GST_SECOND, "discont", FALSE, NULL);
 
-  validate_buffer (1,
-      "pts", 2 * GST_SECOND,
-      "discont", TRUE,
-      NULL);
+  validate_buffer (1, "pts", 2 * GST_SECOND, "discont", TRUE, NULL);
 
   validate_events_received (4);
 
-  validate_event (0, "stream-start",
-      NULL);
+  validate_event (0, "stream-start", NULL);
 
-  validate_event (1, "caps",
-      "media-type", "application/x-rtp",
-      NULL);
+  validate_event (1, "caps", "media-type", "application/x-rtp", NULL);
 
   validate_event (2, "segment",
       "time", G_GUINT64_CONSTANT (0),
-      "start", G_GUINT64_CONSTANT (0),
-      "stop", G_MAXUINT64,
-      NULL);
+      "start", G_GUINT64_CONSTANT (0), "stop", G_MAXUINT64, NULL);
 
   validate_event (3, "gap",
-      "timestamp", 1 * GST_SECOND,
-      "duration", GST_SECOND,
-      NULL);
+      "timestamp", 1 * GST_SECOND, "duration", GST_SECOND, NULL);
 
   destroy_depayloader (state);
 }
 
 GST_END_TEST
-
 /* a depayloader that receives identical caps events simply ignores the latter
  * events without propagating them downstream.
  */
@@ -919,46 +844,32 @@
 
   push_rtp_buffer (state,
       "pts", 0 * GST_SECOND,
-      "rtptime", G_GUINT64_CONSTANT (0x1234),
-      "seq", 0x4242,
-      NULL);
+      "rtptime", G_GUINT64_CONSTANT (0x1234), "seq", 0x4242, NULL);
 
   reconfigure_caps (state, "application/x-rtp");
 
   push_rtp_buffer (state,
       "pts", 1 * GST_SECOND,
       "rtptime", G_GUINT64_CONSTANT (0x1234) + 1 * DEFAULT_CLOCK_RATE,
-      "seq", 0x4242 + 1,
-      NULL);
+      "seq", 0x4242 + 1, NULL);
 
   set_state (state, GST_STATE_NULL);
 
   validate_buffers_received (2);
 
-  validate_buffer (0,
-      "pts", 0 * GST_SECOND,
-      "discont", FALSE,
-      NULL);
+  validate_buffer (0, "pts", 0 * GST_SECOND, "discont", FALSE, NULL);
 
-  validate_buffer (1,
-      "pts", 1 * GST_SECOND,
-      "discont", FALSE,
-      NULL);
+  validate_buffer (1, "pts", 1 * GST_SECOND, "discont", FALSE, NULL);
 
   validate_events_received (3);
 
-  validate_event (0, "stream-start",
-      NULL);
+  validate_event (0, "stream-start", NULL);
 
-  validate_event (1, "caps",
-      "media-type", "application/x-rtp",
-      NULL);
+  validate_event (1, "caps", "media-type", "application/x-rtp", NULL);
 
   validate_event (2, "segment",
       "time", G_GUINT64_CONSTANT (0),
-      "start", G_GUINT64_CONSTANT (0),
-      "stop", G_MAXUINT64,
-      NULL);
+      "start", G_GUINT64_CONSTANT (0), "stop", G_MAXUINT64, NULL);
 
   destroy_depayloader (state);
 }
@@ -981,9 +892,7 @@
 
   push_rtp_buffer (state,
       "pts", 0 * GST_SECOND,
-      "rtptime", G_GUINT64_CONSTANT (0x1234),
-      "seq", 0x4242,
-      NULL);
+      "rtptime", G_GUINT64_CONSTANT (0x1234), "seq", 0x4242, NULL);
 
   reconfigure_caps (state,
       "application/x-rtp, npt-start=(guint64)1234, npt-stop=(guint64)4321");
@@ -993,61 +902,44 @@
   push_rtp_buffer (state,
       "pts", 1 * GST_SECOND,
       "rtptime", G_GUINT64_CONSTANT (0x1234) + 1 * DEFAULT_CLOCK_RATE,
-      "seq", 0x4242 + 1,
-      NULL);
+      "seq", 0x4242 + 1, NULL);
 
   set_state (state, GST_STATE_NULL);
 
   validate_buffers_received (2);
 
-  validate_buffer (0,
-      "pts", 0 * GST_SECOND,
-      "discont", FALSE,
-      NULL);
+  validate_buffer (0, "pts", 0 * GST_SECOND, "discont", FALSE, NULL);
 
-  validate_buffer (1,
-      "pts", 1 * GST_SECOND,
-      "discont", FALSE,
-      NULL);
+  validate_buffer (1, "pts", 1 * GST_SECOND, "discont", FALSE, NULL);
 
   validate_events_received (7);
 
-  validate_event (0, "stream-start",
-      NULL);
+  validate_event (0, "stream-start", NULL);
 
-  validate_event (1, "caps",
-      "media-type", "application/x-rtp",
-      NULL);
+  validate_event (1, "caps", "media-type", "application/x-rtp", NULL);
 
   validate_event (2, "segment",
       "time", G_GUINT64_CONSTANT (0),
-      "start", G_GUINT64_CONSTANT (0),
-      "stop", G_MAXUINT64,
-      NULL);
+      "start", G_GUINT64_CONSTANT (0), "stop", G_MAXUINT64, NULL);
 
   validate_event (3, "caps",
       "media-type", "application/x-rtp",
       "npt-start", G_GUINT64_CONSTANT (1234),
-      "npt-stop", G_GUINT64_CONSTANT (4321),
-      NULL);
+      "npt-stop", G_GUINT64_CONSTANT (4321), NULL);
 
-  validate_event (4, "flush-start",
-      NULL);
+  validate_event (4, "flush-start", NULL);
 
-  validate_event (5, "flush-stop",
-      NULL);
+  validate_event (5, "flush-stop", NULL);
 
   validate_event (6, "segment",
       "time", G_GUINT64_CONSTANT (1234),
       "start", G_GUINT64_CONSTANT (0),
-      "stop", G_GUINT64_CONSTANT (4321 - 1234),
-      NULL);
+      "stop", G_GUINT64_CONSTANT (4321 - 1234), NULL);
 
   destroy_depayloader (state);
 }
 
 GST_END_TEST
-
 /* when a depayloader receives a new caps event with play-scale it should save
  * this rate as it should affect the next segment event being pushed by the
  * depayloader. a new segment event is not pushed by the depayloader until a
@@ -1064,74 +956,51 @@
 
   push_rtp_buffer (state,
       "pts", 0 * GST_SECOND,
-      "rtptime", G_GUINT64_CONSTANT (0x1234),
-      "seq", 0x4242,
-      NULL);
+      "rtptime", G_GUINT64_CONSTANT (0x1234), "seq", 0x4242, NULL);
 
-  reconfigure_caps (state,
-      "application/x-rtp, play-scale=(double)2.0");
+  reconfigure_caps (state, "application/x-rtp, play-scale=(double)2.0");
 
   flush_pipeline (state);
 
   push_rtp_buffer (state,
       "pts", 1 * GST_SECOND,
       "rtptime", G_GUINT64_CONSTANT (0x1234) + 1 * DEFAULT_CLOCK_RATE,
-      "seq", 0x4242 + 1,
-      NULL);
+      "seq", 0x4242 + 1, NULL);
 
   set_state (state, GST_STATE_NULL);
 
   validate_buffers_received (2);
 
-  validate_buffer (0,
-      "pts", 0 * GST_SECOND,
-      "discont", FALSE,
-      NULL);
+  validate_buffer (0, "pts", 0 * GST_SECOND, "discont", FALSE, NULL);
 
-  validate_buffer (1,
-      "pts", 1 * GST_SECOND,
-      "discont", FALSE,
-      NULL);
+  validate_buffer (1, "pts", 1 * GST_SECOND, "discont", FALSE, NULL);
 
   validate_events_received (7);
 
-  validate_event (0, "stream-start",
-      NULL);
+  validate_event (0, "stream-start", NULL);
 
-  validate_event (1, "caps",
-      "media-type", "application/x-rtp",
-      NULL);
+  validate_event (1, "caps", "media-type", "application/x-rtp", NULL);
 
   validate_event (2, "segment",
       "time", G_GUINT64_CONSTANT (0),
-      "start", G_GUINT64_CONSTANT (0),
-      "stop", G_MAXUINT64,
-      NULL);
+      "start", G_GUINT64_CONSTANT (0), "stop", G_MAXUINT64, NULL);
 
   validate_event (3, "caps",
-      "media-type", "application/x-rtp",
-      "play-scale", 2.0,
-      NULL);
+      "media-type", "application/x-rtp", "play-scale", 2.0, NULL);
 
-  validate_event (4, "flush-start",
-      NULL);
+  validate_event (4, "flush-start", NULL);
 
-  validate_event (5, "flush-stop",
-      NULL);
+  validate_event (5, "flush-stop", NULL);
 
   validate_event (6, "segment",
       "time", G_GUINT64_CONSTANT (0),
       "start", G_GUINT64_CONSTANT (0),
-      "stop", G_MAXUINT64,
-      "rate", 1.0,
-      "applied-rate", 2.0,
-      NULL);
+      "stop", G_MAXUINT64, "rate", 1.0, "applied-rate", 2.0, NULL);
 
   destroy_depayloader (state);
 }
 
 GST_END_TEST
-
 /* when a depayloader receives a new caps event with play-speed it should save
  * this rate as it should affect the next segment event being pushed by the
  * depayloader. a new segment event is not pushed by the depayloader until a
@@ -1148,75 +1017,51 @@
 
   push_rtp_buffer (state,
       "pts", 0 * GST_SECOND,
-      "rtptime", G_GUINT64_CONSTANT (0x1234),
-      "seq", 0x4242,
-      NULL);
+      "rtptime", G_GUINT64_CONSTANT (0x1234), "seq", 0x4242, NULL);
 
-  reconfigure_caps (state,
-      "application/x-rtp, play-speed=(double)2.0");
+  reconfigure_caps (state, "application/x-rtp, play-speed=(double)2.0");
 
   flush_pipeline (state);
 
   push_rtp_buffer (state,
       "pts", 1 * GST_SECOND,
       "rtptime", G_GUINT64_CONSTANT (0x1234) + 1 * DEFAULT_CLOCK_RATE,
-      "seq", 0x4242 + 1,
-      NULL);
+      "seq", 0x4242 + 1, NULL);
 
   set_state (state, GST_STATE_NULL);
 
   validate_buffers_received (2);
 
-  validate_buffer (0,
-      "pts", 0 * GST_SECOND,
-      "discont", FALSE,
-      NULL);
+  validate_buffer (0, "pts", 0 * GST_SECOND, "discont", FALSE, NULL);
 
-  validate_buffer (1,
-      "pts", 1 * GST_SECOND,
-      "discont", FALSE,
-      NULL);
+  validate_buffer (1, "pts", 1 * GST_SECOND, "discont", FALSE, NULL);
 
   validate_events_received (7);
 
-  validate_event (0, "stream-start",
-      NULL);
+  validate_event (0, "stream-start", NULL);
 
-  validate_event (1, "caps",
-      "media-type", "application/x-rtp",
-      NULL);
+  validate_event (1, "caps", "media-type", "application/x-rtp", NULL);
 
   validate_event (2, "segment",
       "time", G_GUINT64_CONSTANT (0),
-      "start", G_GUINT64_CONSTANT (0),
-      "stop", G_MAXUINT64,
-      NULL);
+      "start", G_GUINT64_CONSTANT (0), "stop", G_MAXUINT64, NULL);
 
   validate_event (3, "caps",
-      "media-type", "application/x-rtp",
-      "play-speed", 2.0,
-      NULL);
+      "media-type", "application/x-rtp", "play-speed", 2.0, NULL);
 
-  validate_event (4, "flush-start",
-      NULL);
+  validate_event (4, "flush-start", NULL);
 
-  validate_event (5, "flush-stop",
-      NULL);
+  validate_event (5, "flush-stop", NULL);
 
   validate_event (6, "segment",
       "time", G_GUINT64_CONSTANT (0),
       "start", G_GUINT64_CONSTANT (0),
-      "stop", G_MAXUINT64,
-      "rate", 2.0,
-      "applied-rate", 1.0,
-      NULL);
+      "stop", G_MAXUINT64, "rate", 2.0, "applied-rate", 1.0, NULL);
 
   destroy_depayloader (state);
 }
 
-GST_END_TEST
-
-static Suite *
+GST_END_TEST static Suite *
 rtp_basepayloading_suite (void)
 {
   Suite *s = suite_create ("rtp_base_depayloading_test");
diff --git a/tests/check/libs/rtpbasepayload.c b/tests/check/libs/rtpbasepayload.c
index 4bc25d5..900b0b9 100644
--- a/tests/check/libs/rtpbasepayload.c
+++ b/tests/check/libs/rtpbasepayload.c
@@ -20,8 +20,8 @@
 
 #include <gst/gst.h>
 #include <gst/check/gstcheck.h>
-#include <gst-libs/gst/rtp/gstrtpbuffer.h>
-#include <gst-libs/gst/rtp/gstrtpbasepayload.h>
+#include <gst/rtp/gstrtpbuffer.h>
+#include <gst/rtp/gstrtpbasepayload.h>
 
 #define DEFAULT_CLOCK_RATE (42)
 #define BUFFER_BEFORE_LIST (10)
@@ -342,7 +342,7 @@
         mapped = TRUE;
       }
       if (!g_strcmp0 (field, "rtptime")) {
-        guint32 rtptime = va_arg (var_args, guint32);
+        guint32 rtptime = va_arg (var_args, guint);
         gst_rtp_buffer_set_timestamp (&rtp, rtptime);
       } else if (!g_strcmp0 (field, "payload-type")) {
         guint payload_type = va_arg (var_args, guint);
@@ -351,7 +351,7 @@
         guint seq = va_arg (var_args, guint);
         gst_rtp_buffer_set_seq (&rtp, seq);
       } else if (!g_strcmp0 (field, "ssrc")) {
-        guint32 ssrc = va_arg (var_args, guint32);
+        guint32 ssrc = va_arg (var_args, guint);
         gst_rtp_buffer_set_ssrc (&rtp, ssrc);
       } else {
         fail ("test cannot set unknown buffer field '%s'", field);
@@ -398,7 +398,7 @@
         mapped = TRUE;
       }
       if (!g_strcmp0 (field, "rtptime")) {
-        guint32 rtptime = va_arg (var_args, guint32);
+        guint32 rtptime = va_arg (var_args, guint);
         gst_rtp_buffer_set_timestamp (&rtp, rtptime);
       } else if (!g_strcmp0 (field, "payload-type")) {
         guint payload_type = va_arg (var_args, guint);
@@ -407,7 +407,7 @@
         guint seq = va_arg (var_args, guint);
         gst_rtp_buffer_set_seq (&rtp, seq);
       } else if (!g_strcmp0 (field, "ssrc")) {
-        guint32 ssrc = va_arg (var_args, guint32);
+        guint32 ssrc = va_arg (var_args, guint);
         gst_rtp_buffer_set_ssrc (&rtp, ssrc);
       } else {
         fail ("test cannot set unknown buffer field '%s'", field);
@@ -467,7 +467,7 @@
         mapped = TRUE;
       }
       if (!g_strcmp0 (field, "rtptime")) {
-        guint32 rtptime = va_arg (var_args, guint32);
+        guint32 rtptime = va_arg (var_args, guint);
         fail_unless_equals_int (gst_rtp_buffer_get_timestamp (&rtp), rtptime);
       } else if (!g_strcmp0 (field, "payload-type")) {
         guint pt = va_arg (var_args, guint);
@@ -476,7 +476,7 @@
         guint seq = va_arg (var_args, guint);
         fail_unless_equals_int (gst_rtp_buffer_get_seq (&rtp), seq);
       } else if (!g_strcmp0 (field, "ssrc")) {
-        guint32 ssrc = va_arg (var_args, guint32);
+        guint32 ssrc = va_arg (var_args, guint);
         fail_unless_equals_int (gst_rtp_buffer_get_ssrc (&rtp), ssrc);
       } else {
         fail ("test cannot validate unknown buffer field '%s'", field);
@@ -802,19 +802,23 @@
 
   set_state (state, GST_STATE_PLAYING);
 
-  push_buffer (state, "pts", 0 * GST_SECOND, "offset", 0, NULL);
+  push_buffer (state, "pts", 0 * GST_SECOND, "offset", G_GINT64_CONSTANT (0),
+      NULL);
 
-  push_buffer (state, "pts", GST_CLOCK_TIME_NONE, "offset", 21, NULL);
+  push_buffer (state, "pts", GST_CLOCK_TIME_NONE, "offset",
+      G_GINT64_CONSTANT (21), NULL);
 
   set_state (state, GST_STATE_NULL);
 
   validate_buffers_received (2);
 
-  validate_buffer (0, "pts", 0 * GST_SECOND, "offset", 0, NULL);
+  validate_buffer (0, "pts", 0 * GST_SECOND, "offset", G_GINT64_CONSTANT (0),
+      NULL);
   get_buffer_field (0, "rtptime", &rtptime, NULL);
 
   validate_buffer (1,
-      "pts", GST_CLOCK_TIME_NONE, "offset", 21, "rtptime", rtptime + 21, NULL);
+      "pts", GST_CLOCK_TIME_NONE, "offset", G_GINT64_CONSTANT (21), "rtptime",
+      rtptime + 21, NULL);
 
   validate_events_received (3);
 
@@ -1605,37 +1609,43 @@
   g_object_get (state->element, "perfect-rtptime", &perfect, NULL);
   fail_unless (!perfect);
 
-  push_buffer (state, "pts", 0 * GST_SECOND, "offset", 0, NULL);
+  push_buffer (state, "pts", 0 * GST_SECOND, "offset", G_GINT64_CONSTANT (0),
+      NULL);
 
-  push_buffer (state, "pts", 1 * GST_SECOND, "offset", 17, NULL);
+  push_buffer (state, "pts", 1 * GST_SECOND, "offset", G_GINT64_CONSTANT (17),
+      NULL);
 
   g_object_set (state->element, "perfect-rtptime", TRUE, NULL);
   g_object_get (state->element, "perfect-rtptime", &perfect, NULL);
   fail_unless (perfect);
 
-  push_buffer (state, "pts", 2 * GST_SECOND, "offset", 31, NULL);
+  push_buffer (state, "pts", 2 * GST_SECOND, "offset", G_GINT64_CONSTANT (31),
+      NULL);
 
-  push_buffer (state, "pts", 3 * GST_SECOND, "offset", 67, NULL);
+  push_buffer (state, "pts", 3 * GST_SECOND, "offset", G_GINT64_CONSTANT (67),
+      NULL);
 
   set_state (state, GST_STATE_NULL);
 
   validate_buffers_received (4);
 
   validate_buffer (0,
-      "pts", 0 * GST_SECOND, "offset", 0, "rtptime", timestamp_base, NULL);
+      "pts", 0 * GST_SECOND, "offset", G_GINT64_CONSTANT (0), "rtptime",
+      timestamp_base, NULL);
 
   validate_buffer (1,
       "pts", 1 * GST_SECOND,
-      "offset", 17, "rtptime", timestamp_base + 1 * DEFAULT_CLOCK_RATE, NULL);
+      "offset", G_GINT64_CONSTANT (17), "rtptime",
+      timestamp_base + 1 * DEFAULT_CLOCK_RATE, NULL);
 
   validate_buffer (2,
       "pts", 2 * GST_SECOND,
-      "offset", 31,
+      "offset", G_GINT64_CONSTANT (31),
       "rtptime", timestamp_base + 1 * DEFAULT_CLOCK_RATE + (31 - 17), NULL);
 
   validate_buffer (3,
       "pts", 3 * GST_SECOND,
-      "offset", 67,
+      "offset", G_GINT64_CONSTANT (67),
       "rtptime", timestamp_base + 1 * DEFAULT_CLOCK_RATE + (67 - 17), NULL);
 
   validate_events_received (3);
@@ -1663,11 +1673,11 @@
   g_object_get (state->element, "ptime-multiple", &multiple, NULL);
   fail_unless_equals_int64 (multiple, 0);
 
-  g_object_set (state->element, "ptime-multiple", 42, NULL);
+  g_object_set (state->element, "ptime-multiple", G_GINT64_CONSTANT (42), NULL);
   g_object_get (state->element, "ptime-multiple", &multiple, NULL);
   fail_unless_equals_int64 (multiple, 42);
 
-  g_object_set (state->element, "ptime-multiple", 0, NULL);
+  g_object_set (state->element, "ptime-multiple", G_GINT64_CONSTANT (0), NULL);
   g_object_get (state->element, "ptime-multiple", &multiple, NULL);
   fail_unless_equals_int64 (multiple, 0);
 
diff --git a/tests/check/libs/rtsp.c b/tests/check/libs/rtsp.c
index c817c3f..0730a31 100644
--- a/tests/check/libs/rtsp.c
+++ b/tests/check/libs/rtsp.c
@@ -1,6 +1,6 @@
 /* GStreamer unit tests for the RTSP support library
- *
  * Copyright (C) 2010 Andy Wingo <wingo@oblong.com>
+ * Copyright (C) 2015 Tim-Philipp Müller <tim@centricular.com>
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -24,8 +24,7 @@
 
 #include <gst/check/gstcheck.h>
 
-#include <gst/rtsp/gstrtspurl.h>
-#include <gst/rtsp/gstrtsprange.h>
+#include <gst/rtsp/rtsp.h>
 #include <string.h>
 
 GST_START_TEST (test_rtsp_url_basic)
@@ -539,6 +538,120 @@
 
 GST_END_TEST;
 
+GST_START_TEST (test_rtsp_message)
+{
+  GstRTSPMessage *msg;
+  GstRTSPResult res;
+  gchar *val = NULL;
+
+  res = gst_rtsp_message_new_request (&msg, GST_RTSP_PLAY,
+      "rtsp://foo.bar:8554/test");
+  fail_unless_equals_int (res, GST_RTSP_OK);
+
+  res = gst_rtsp_message_add_header (msg, GST_RTSP_HDR_CSEQ, "3");
+  fail_unless_equals_int (res, GST_RTSP_OK);
+  res = gst_rtsp_message_add_header (msg, GST_RTSP_HDR_SERVER, "GStreamer");
+  fail_unless_equals_int (res, GST_RTSP_OK);
+  res = gst_rtsp_message_add_header (msg, GST_RTSP_HDR_TRANSPORT,
+      "RTP/AVP/TCP;unicast;interleaved=0-1");
+  fail_unless_equals_int (res, GST_RTSP_OK);
+  res = gst_rtsp_message_add_header (msg, GST_RTSP_HDR_SESSION, "xnb_NpaKEc");
+  fail_unless_equals_int (res, GST_RTSP_OK);
+
+  res = gst_rtsp_message_add_header_by_name (msg, "FOO99-Version", "bar.0");
+  fail_unless_equals_int (res, GST_RTSP_OK);
+  res = gst_rtsp_message_add_header_by_name (msg, "Custom", "value");
+  fail_unless_equals_int (res, GST_RTSP_OK);
+  res = gst_rtsp_message_add_header_by_name (msg, "FOO99-Version", "bar.1");
+  fail_unless_equals_int (res, GST_RTSP_OK);
+  res = gst_rtsp_message_add_header_by_name (msg, "FOO99-Version", "bar.2");
+  fail_unless_equals_int (res, GST_RTSP_OK);
+
+  /* make sure fields added via enum work as well */
+  res = gst_rtsp_message_get_header_by_name (msg, "CSeq", &val, 0);
+  fail_unless_equals_int (res, GST_RTSP_OK);
+  fail_unless_equals_string (val, "3");
+  res = gst_rtsp_message_get_header_by_name (msg, "CSeq", &val, 1);
+  fail_unless_equals_int (res, GST_RTSP_ENOTIMPL);
+
+  res = gst_rtsp_message_get_header (msg, GST_RTSP_HDR_CSEQ, &val, 0);
+  fail_unless_equals_int (res, GST_RTSP_OK);
+  fail_unless_equals_string (val, "3");
+  res = gst_rtsp_message_get_header (msg, GST_RTSP_HDR_CSEQ, &val, 1);
+  fail_unless_equals_int (res, GST_RTSP_ENOTIMPL);
+
+  res = gst_rtsp_message_get_header_by_name (msg, "DoesNotExist", &val, 0);
+  fail_unless_equals_int (res, GST_RTSP_ENOTIMPL);
+
+  res = gst_rtsp_message_get_header_by_name (msg, "Custom", &val, 1);
+  fail_unless_equals_int (res, GST_RTSP_ENOTIMPL);
+  res = gst_rtsp_message_get_header_by_name (msg, "Custom", &val, 0);
+  fail_unless_equals_int (res, GST_RTSP_OK);
+  fail_unless_equals_string (val, "value");
+
+  res = gst_rtsp_message_get_header_by_name (msg, "FOO99-Version", &val, 3);
+  fail_unless_equals_int (res, GST_RTSP_ENOTIMPL);
+  res = gst_rtsp_message_get_header_by_name (msg, "FOO99-Version", &val, 1);
+  fail_unless_equals_int (res, GST_RTSP_OK);
+  fail_unless_equals_string (val, "bar.1");
+  res = gst_rtsp_message_get_header_by_name (msg, "FOO99-Version", &val, 2);
+  fail_unless_equals_int (res, GST_RTSP_OK);
+  fail_unless_equals_string (val, "bar.2");
+  res = gst_rtsp_message_get_header_by_name (msg, "FOO99-Version", &val, 0);
+  fail_unless_equals_int (res, GST_RTSP_OK);
+  fail_unless_equals_string (val, "bar.0");
+
+  res = gst_rtsp_message_remove_header_by_name (msg, "FOO99-Version", 3);
+  fail_unless_equals_int (res, GST_RTSP_ENOTIMPL);
+  res = gst_rtsp_message_remove_header_by_name (msg, "FOO99-Version", 1);
+  fail_unless_equals_int (res, GST_RTSP_OK);
+
+  res = gst_rtsp_message_get_header_by_name (msg, "FOO99-Version", &val, 2);
+  fail_unless_equals_int (res, GST_RTSP_ENOTIMPL);
+
+  /* 2 shifted to position 1 */
+  res = gst_rtsp_message_get_header_by_name (msg, "FOO99-Version", &val, 1);
+  fail_unless_equals_int (res, GST_RTSP_OK);
+  fail_unless_equals_string (val, "bar.2");
+  res = gst_rtsp_message_get_header_by_name (msg, "FOO99-Version", &val, 0);
+  fail_unless_equals_int (res, GST_RTSP_OK);
+  fail_unless_equals_string (val, "bar.0");
+
+  /* remove all headers for a name */
+  res = gst_rtsp_message_remove_header_by_name (msg, "FOO99-Version", -1);
+  fail_unless_equals_int (res, GST_RTSP_OK);
+  res = gst_rtsp_message_get_header_by_name (msg, "FOO99-Version", &val, 0);
+  fail_unless_equals_int (res, GST_RTSP_ENOTIMPL);
+
+  /* gst_rtsp_message_dump (msg); */
+
+  res = gst_rtsp_message_free (msg);
+  fail_unless_equals_int (res, GST_RTSP_OK);
+
+  /* === */
+
+  res = gst_rtsp_message_new_request (&msg, GST_RTSP_PLAY,
+      "rtsp://foo.bar:8554/test");
+  fail_unless_equals_int (res, GST_RTSP_OK);
+
+  res = gst_rtsp_message_add_header_by_name (msg, "CSeq", "3");
+  fail_unless_equals_int (res, GST_RTSP_OK);
+
+  res = gst_rtsp_message_get_header (msg, GST_RTSP_HDR_CSEQ, &val, 0);
+  fail_unless_equals_int (res, GST_RTSP_OK);
+  fail_unless_equals_string (val, "3");
+
+  val = NULL;
+  res = gst_rtsp_message_get_header_by_name (msg, "cseq", &val, 0);
+  fail_unless_equals_int (res, GST_RTSP_OK);
+  fail_unless_equals_string (val, "3");
+
+  res = gst_rtsp_message_free (msg);
+  fail_unless_equals_int (res, GST_RTSP_OK);
+}
+
+GST_END_TEST;
+
 static Suite *
 rtsp_suite (void)
 {
@@ -554,6 +667,7 @@
   tcase_add_test (tc_chain, test_rtsp_range_smpte);
   tcase_add_test (tc_chain, test_rtsp_range_clock);
   tcase_add_test (tc_chain, test_rtsp_range_convert);
+  tcase_add_test (tc_chain, test_rtsp_message);
 
   return s;
 }
diff --git a/tests/check/libs/rtspconnection.c b/tests/check/libs/rtspconnection.c
index 2110c82..3fc77ca 100644
--- a/tests/check/libs/rtspconnection.c
+++ b/tests/check/libs/rtspconnection.c
@@ -41,8 +41,8 @@
     "Content-Length: 0\r\n"
     "Content-Type: application/x-rtsp-tunnelled\r\n\r\n";
 
-static guint tunnel_start_count;
-static guint tunnel_complete_count;
+static guint tunnel_get_count;
+static guint tunnel_post_count;
 static guint tunnel_lost_count;
 static guint closed_count;
 static guint message_sent_count;
@@ -149,16 +149,16 @@
 }
 
 static GstRTSPStatusCode
-tunnel_start (GstRTSPWatch * watch, gpointer user_data)
+tunnel_get (GstRTSPWatch * watch, gpointer user_data)
 {
-  tunnel_start_count++;
+  tunnel_get_count++;
   return GST_RTSP_STS_OK;
 }
 
 static GstRTSPResult
-tunnel_complete (GstRTSPWatch * watch, gpointer user_data)
+tunnel_post (GstRTSPWatch * watch, gpointer user_data)
 {
-  tunnel_complete_count++;
+  tunnel_post_count++;
   return GST_RTSP_OK;
 }
 
@@ -188,8 +188,8 @@
   message_sent,
   closed,
   NULL,
-  tunnel_start,
-  tunnel_complete,
+  tunnel_get,
+  tunnel_post,
   NULL,
   tunnel_lost
 };
@@ -241,8 +241,8 @@
   fail_unless (size == strlen (get_msg));
 
   while (!g_main_context_iteration (NULL, TRUE));
-  fail_unless (tunnel_start_count == 1);
-  fail_unless (tunnel_complete_count == 0);
+  fail_unless (tunnel_get_count == 1);
+  fail_unless (tunnel_post_count == 0);
   fail_unless (tunnel_lost_count == 0);
   fail_unless (closed_count == 0);
 
@@ -276,8 +276,8 @@
   fail_unless (size == strlen (post_msg));
 
   while (!g_main_context_iteration (NULL, TRUE));
-  fail_unless (tunnel_start_count == 1);
-  fail_unless (tunnel_complete_count == 1);
+  fail_unless (tunnel_get_count == 1);
+  fail_unless (tunnel_post_count == 1);
   fail_unless (tunnel_lost_count == 0);
   fail_unless (closed_count == 0);
 
@@ -292,8 +292,8 @@
   /* it must be possible to reconnect the POST channel */
   g_object_unref (client_post);
   while (!g_main_context_iteration (NULL, TRUE));
-  fail_unless (tunnel_start_count == 1);
-  fail_unless (tunnel_complete_count == 1);
+  fail_unless (tunnel_get_count == 1);
+  fail_unless (tunnel_post_count == 1);
   fail_unless (tunnel_lost_count == 1);
   fail_unless (closed_count == 0);
   g_object_unref (server_post);
@@ -325,8 +325,8 @@
   fail_unless (size == strlen (post_msg));
 
   while (!g_main_context_iteration (NULL, TRUE));
-  fail_unless (tunnel_start_count == 1);
-  fail_unless (tunnel_complete_count == 2);
+  fail_unless (tunnel_get_count == 1);
+  fail_unless (tunnel_post_count == 2);
   fail_unless (tunnel_lost_count == 1);
   fail_unless (closed_count == 0);
 
@@ -341,8 +341,172 @@
   /* check if rtspconnection can detect close of the get channel */
   g_object_unref (client_get);
   while (!g_main_context_iteration (NULL, TRUE));
-  fail_unless (tunnel_start_count == 1);
-  fail_unless (tunnel_complete_count == 2);
+  fail_unless (tunnel_get_count == 1);
+  fail_unless (tunnel_post_count == 2);
+  fail_unless (tunnel_lost_count == 1);
+  fail_unless (closed_count == 1);
+
+  fail_unless (gst_rtsp_connection_close (rtsp_conn1) == GST_RTSP_OK);
+  fail_unless (gst_rtsp_connection_free (rtsp_conn1) == GST_RTSP_OK);
+
+  g_object_unref (client_post);
+  g_object_unref (server_post);
+  g_object_unref (server_get);
+}
+
+GST_END_TEST;
+
+/* setts up a new tunnel, starting with the read channel,
+ * then disconnects the read connection and creates it again
+ * ideally this test should be merged with test_rtspconnection_tunnel_setup but
+ * but it became quite messy */
+GST_START_TEST (test_rtspconnection_tunnel_setup_post_first)
+{
+  GstRTSPConnection *rtsp_conn1 = NULL;
+  GstRTSPConnection *rtsp_conn2 = NULL;
+  GstRTSPWatch *watch1;
+  GstRTSPWatch *watch2;
+  GstRTSPResult res;
+  GSocketConnection *client_get = NULL;
+  GSocketConnection *server_get = NULL;
+  GSocketConnection *client_post = NULL;
+  GSocketConnection *server_post = NULL;
+  GSocket *server_sock;
+  GOutputStream *ostream_get;
+  GInputStream *istream_get;
+  GOutputStream *ostream_post;
+  gsize size = 0;
+  gchar buffer[1024];
+
+  /* create POST channel */
+  create_connection (&client_post, &server_post);
+  server_sock = g_socket_connection_get_socket (server_post);
+  fail_unless (server_sock != NULL);
+
+  res = gst_rtsp_connection_create_from_socket (server_sock, "127.0.0.1", 4444,
+      NULL, &rtsp_conn1);
+  fail_unless (res == GST_RTSP_OK);
+  fail_unless (rtsp_conn1 != NULL);
+
+  watch1 = gst_rtsp_watch_new (rtsp_conn1, &watch_funcs, NULL, NULL);
+  fail_unless (watch1 != NULL);
+  fail_unless (gst_rtsp_watch_attach (watch1, NULL) > 0);
+  g_source_unref ((GSource *) watch1);
+
+  ostream_post = g_io_stream_get_output_stream (G_IO_STREAM (client_post));
+  fail_unless (ostream_post != NULL);
+
+  /* initiate the tunnel by sending HTTP POST */
+  fail_unless (g_output_stream_write_all (ostream_post, post_msg,
+          strlen (post_msg), &size, NULL, NULL));
+  fail_unless (size == strlen (post_msg));
+
+  while (!g_main_context_iteration (NULL, TRUE));
+  fail_unless (tunnel_get_count == 0);
+  fail_unless (tunnel_post_count == 1);
+  fail_unless (tunnel_lost_count == 0);
+  fail_unless (closed_count == 0);
+
+  /* create GET connection */
+  create_connection (&client_get, &server_get);
+  server_sock = g_socket_connection_get_socket (server_get);
+  fail_unless (server_sock != NULL);
+
+  res = gst_rtsp_connection_create_from_socket (server_sock, "127.0.0.1", 4444,
+      NULL, &rtsp_conn2);
+  fail_unless (res == GST_RTSP_OK);
+  fail_unless (rtsp_conn2 != NULL);
+
+  watch2 = gst_rtsp_watch_new (rtsp_conn2, &watch_funcs, NULL, NULL);
+  fail_unless (watch2 != NULL);
+  fail_unless (gst_rtsp_watch_attach (watch2, NULL) > 0);
+  g_source_unref ((GSource *) watch2);
+
+  ostream_get = g_io_stream_get_output_stream (G_IO_STREAM (client_get));
+  fail_unless (ostream_get != NULL);
+
+  istream_get = g_io_stream_get_input_stream (G_IO_STREAM (client_get));
+  fail_unless (istream_get != NULL);
+
+  /* complete the tunnel by sending HTTP GET */
+  fail_unless (g_output_stream_write_all (ostream_get, get_msg,
+          strlen (get_msg), &size, NULL, NULL));
+  fail_unless (size == strlen (get_msg));
+
+  while (!g_main_context_iteration (NULL, TRUE));
+  fail_unless (tunnel_get_count == 1);
+  fail_unless (tunnel_post_count == 1);
+  fail_unless (tunnel_lost_count == 0);
+  fail_unless (closed_count == 0);
+
+  /* read the HTTP GET response */
+  size = g_input_stream_read (istream_get, buffer, 1024, NULL, NULL);
+  fail_unless (size > 0);
+  buffer[size] = 0;
+  fail_unless (g_strrstr (buffer, "HTTP/1.0 200 OK") != NULL);
+
+  /* merge the two connections together */
+  fail_unless (gst_rtsp_connection_do_tunnel (rtsp_conn1, rtsp_conn2) ==
+      GST_RTSP_OK);
+  gst_rtsp_watch_reset (watch1);
+  g_source_destroy ((GSource *) watch2);
+  gst_rtsp_connection_free (rtsp_conn2);
+  rtsp_conn2 = NULL;
+
+  /* it must be possible to reconnect the POST channel */
+  g_object_unref (client_post);
+  while (!g_main_context_iteration (NULL, TRUE));
+  fail_unless (tunnel_get_count == 1);
+  fail_unless (tunnel_post_count == 1);
+  fail_unless (tunnel_lost_count == 1);
+  fail_unless (closed_count == 0);
+  g_object_unref (server_post);
+
+  /* no other source should get dispatched */
+  fail_if (g_main_context_iteration (NULL, FALSE));
+
+  /* create new POST connection */
+  create_connection (&client_post, &server_post);
+  server_sock = g_socket_connection_get_socket (server_post);
+  fail_unless (server_sock != NULL);
+
+  res = gst_rtsp_connection_create_from_socket (server_sock, "127.0.0.1", 4444,
+      NULL, &rtsp_conn2);
+  fail_unless (res == GST_RTSP_OK);
+  fail_unless (rtsp_conn2 != NULL);
+
+  watch2 = gst_rtsp_watch_new (rtsp_conn2, &watch_funcs, NULL, NULL);
+  fail_unless (watch2 != NULL);
+  fail_unless (gst_rtsp_watch_attach (watch2, NULL) > 0);
+  g_source_unref ((GSource *) watch2);
+
+  ostream_post = g_io_stream_get_output_stream (G_IO_STREAM (client_post));
+  fail_unless (ostream_post != NULL);
+
+  /* complete the tunnel by sending HTTP POST */
+  fail_unless (g_output_stream_write_all (ostream_post, post_msg,
+          strlen (post_msg), &size, NULL, NULL));
+  fail_unless (size == strlen (post_msg));
+
+  while (!g_main_context_iteration (NULL, TRUE));
+  fail_unless (tunnel_get_count == 1);
+  fail_unless (tunnel_post_count == 2);
+  fail_unless (tunnel_lost_count == 1);
+  fail_unless (closed_count == 0);
+
+  /* merge the two connections together */
+  fail_unless (gst_rtsp_connection_do_tunnel (rtsp_conn1, rtsp_conn2) ==
+      GST_RTSP_OK);
+  gst_rtsp_watch_reset (watch1);
+  g_source_destroy ((GSource *) watch2);
+  gst_rtsp_connection_free (rtsp_conn2);
+  rtsp_conn2 = NULL;
+
+  /* check if rtspconnection can detect close of the get channel */
+  g_object_unref (client_get);
+  while (!g_main_context_iteration (NULL, TRUE));
+  fail_unless (tunnel_get_count == 1);
+  fail_unless (tunnel_post_count == 2);
   fail_unless (tunnel_lost_count == 1);
   fail_unless (closed_count == 1);
 
@@ -643,6 +807,7 @@
 
   suite_add_tcase (s, tc_chain);
   tcase_add_test (tc_chain, test_rtspconnection_tunnel_setup);
+  tcase_add_test (tc_chain, test_rtspconnection_tunnel_setup_post_first);
   tcase_add_test (tc_chain, test_rtspconnection_send_receive);
   tcase_add_test (tc_chain, test_rtspconnection_connect);
   tcase_add_test (tc_chain, test_rtspconnection_poll);
diff --git a/tests/check/libs/struct_ppc32.h b/tests/check/libs/struct_ppc32.h
new file mode 100644
index 0000000..6f2a5e0
--- /dev/null
+++ b/tests/check/libs/struct_ppc32.h
@@ -0,0 +1,80 @@
+
+GstCheckABIStruct list[] = {
+  {"GstAppSinkCallbacks", sizeof (GstAppSinkCallbacks), 28},
+  {"GstAppSinkClass", sizeof (GstAppSinkClass), 436},
+  {"GstAppSink", sizeof (GstAppSink), 488},
+  {"GstAppSrcCallbacks", sizeof (GstAppSrcCallbacks), 28},
+  {"GstAppSrcClass", sizeof (GstAppSrcClass), 440},
+  {"GstAppSrc", sizeof (GstAppSrc), 472},
+  {"GstAudioCdSrcClass", sizeof (GstAudioCdSrcClass), 524},
+  {"GstAudioCdSrc", sizeof (GstAudioCdSrc), 488},
+  {"GstAudioCdSrcTrack", sizeof (GstAudioCdSrcTrack), 36},
+  {"GstAudioClockClass", sizeof (GstAudioClockClass), 164},
+  {"GstAudioClock", sizeof (GstAudioClock), 160},
+  {"GstAudioFilterClass", sizeof (GstAudioFilterClass), 436},
+  {"GstAudioFilter", sizeof (GstAudioFilter), 704},
+  {"GstAudioSinkClass", sizeof (GstAudioSinkClass), 468},
+  {"GstAudioSink", sizeof (GstAudioSink), 552},
+  {"GstAudioSrcClass", sizeof (GstAudioSrcClass), 496},
+  {"GstAudioSrc", sizeof (GstAudioSrc), 544},
+  {"GstAudioBaseSinkClass", sizeof (GstAudioBaseSinkClass), 424},
+  {"GstAudioBaseSink", sizeof (GstAudioBaseSink), 528},
+  {"GstAudioBaseSrcClass", sizeof (GstAudioBaseSrcClass), 452},
+  {"GstAudioBaseSrc", sizeof (GstAudioBaseSrc), 520},
+  {"GstRTPBaseAudioPayloadClass", sizeof (GstRTPBaseAudioPayloadClass), 304},
+  {"GstRTPBaseAudioPayload", sizeof (GstRTPBaseAudioPayload), 456},
+  {"GstRTPBaseDepayloadClass", sizeof (GstRTPBaseDepayloadClass), 280},
+  {"GstRTPBaseDepayload", sizeof (GstRTPBaseDepayload), 328},
+  {"GstRTPBasePayloadClass", sizeof (GstRTPBasePayloadClass), 288},
+  {"GstRTPBasePayload", sizeof (GstRTPBasePayload), 408},
+  {"GstColorBalanceChannelClass", sizeof (GstColorBalanceChannelClass), 88},
+  {"GstColorBalanceChannel", sizeof (GstColorBalanceChannel), 40},
+  {"GstColorBalanceInterface", sizeof (GstColorBalanceInterface), 44},
+  {"GstDiscovererClass", sizeof (GstDiscovererClass), 100},
+  {"GstDiscoverer", sizeof (GstDiscoverer), 32},
+  {"GstFFTF32Complex", sizeof (GstFFTF32Complex), 8},
+  {"GstFFTF64Complex", sizeof (GstFFTF64Complex), 16},
+  {"GstFFTS16Complex", sizeof (GstFFTS16Complex), 4},
+  {"GstFFTS32Complex", sizeof (GstFFTS32Complex), 8},
+  {"GstNavigationInterface", sizeof (GstNavigationInterface), 12},
+  {"gst_riff_acid", sizeof (gst_riff_acid), 24},
+  {"gst_riff_dmlh", sizeof (gst_riff_dmlh), 4},
+  {"gst_riff_index_entry", sizeof (gst_riff_index_entry), 16},
+  {"gst_riff_strf_auds", sizeof (gst_riff_strf_auds), 16},
+  {"gst_riff_strf_iavs", sizeof (gst_riff_strf_iavs), 32},
+  {"gst_riff_strf_vids", sizeof (gst_riff_strf_vids), 40},
+  {"gst_riff_strh", sizeof (gst_riff_strh), 48},
+  {"GstAudioRingBufferClass", sizeof (GstAudioRingBufferClass), 156},
+  {"GstAudioRingBuffer", sizeof (GstAudioRingBuffer), 768},
+  {"GstAudioRingBufferSpec", sizeof (GstAudioRingBufferSpec), 352},
+  {"GstRTCPPacket", sizeof (GstRTCPPacket), 36},
+  {"GstRTPPayloadInfo", sizeof (GstRTPPayloadInfo), 40},
+  {"GstRTSPExtensionInterface", sizeof (GstRTSPExtensionInterface), 64},
+  {"GstRTSPMessage", sizeof (GstRTSPMessage), 44},
+  {"GstRTSPRange", sizeof (GstRTSPRange), 8},
+  {"GstRTSPTime", sizeof (GstRTSPTime), 16},
+  {"GstRTSPTimeRange", sizeof (GstRTSPTimeRange), 88},
+  {"GstRTSPTransport", sizeof (GstRTSPTransport), 92},
+  {"GstRTSPUrl", sizeof (GstRTSPUrl), 32},
+  {"GstRTSPWatchFuncs", sizeof (GstRTSPWatchFuncs), 48},
+  {"GstSDPAttribute", sizeof (GstSDPAttribute), 8},
+  {"GstSDPBandwidth", sizeof (GstSDPBandwidth), 8},
+  {"GstSDPConnection", sizeof (GstSDPConnection), 20},
+  {"GstSDPKey", sizeof (GstSDPKey), 8},
+  {"GstSDPMedia", sizeof (GstSDPMedia), 44},
+  {"GstSDPMessage", sizeof (GstSDPMessage), 96},
+  {"GstSDPOrigin", sizeof (GstSDPOrigin), 24},
+  {"GstSDPTime", sizeof (GstSDPTime), 12},
+  {"GstSDPZone", sizeof (GstSDPZone), 8},
+  {"GstStreamVolumeInterface", sizeof (GstStreamVolumeInterface), 8},
+  {"GstTagDemuxClass", sizeof (GstTagDemuxClass), 284},
+  {"GstTagDemux", sizeof (GstTagDemux), 208},
+  {"GstVideoFilterClass", sizeof (GstVideoFilterClass), 444},
+  {"GstVideoFilter", sizeof (GstVideoFilter), 640},
+  {"GstVideoOrientationInterface", sizeof (GstVideoOrientationInterface), 40},
+  {"GstVideoRectangle", sizeof (GstVideoRectangle), 16},
+  {"GstVideoSinkClass", sizeof (GstVideoSinkClass), 420},
+  {"GstVideoSink", sizeof (GstVideoSink), 496},
+  {"GstVideoOverlayInterface", sizeof (GstVideoOverlayInterface), 24},
+  {NULL, 0, 0}
+};
diff --git a/tests/check/libs/video.c b/tests/check/libs/video.c
index d7cac06..0f13f30 100644
--- a/tests/check/libs/video.c
+++ b/tests/check/libs/video.c
@@ -365,6 +365,17 @@
   return FALSE;
 }
 
+static gint
+get_num_formats (void)
+{
+  gint num_formats = 100;
+  fail_unless (gst_video_format_to_string (num_formats) == NULL);
+  while (gst_video_format_to_string (num_formats) == NULL)
+    --num_formats;
+  GST_INFO ("number of known video formats: %d", num_formats);
+  return num_formats + 1;
+}
+
 GST_START_TEST (test_video_formats_all)
 {
   GstStructure *s;
@@ -372,11 +383,7 @@
   GstCaps *caps;
   guint num, n, num_formats;
 
-  num_formats = 100;
-  fail_unless (gst_video_format_to_string (num_formats) == NULL);
-  while (gst_video_format_to_string (num_formats) == NULL)
-    --num_formats;
-  GST_INFO ("number of known video formats: %d", num_formats);
+  num_formats = get_num_formats ();
 
   caps = gst_caps_from_string ("video/x-raw, format=" GST_VIDEO_FORMATS_ALL);
   s = gst_caps_get_structure (caps, 0);
@@ -395,8 +402,8 @@
     fail_if (gst_video_format_from_string (fmt_str) ==
         GST_VIDEO_FORMAT_UNKNOWN);
   }
-  /* Take into account GST_VIDEO_FORMAT_ENCODED */
-  fail_unless_equals_int (num, num_formats - 1);
+  /* Take into account GST_VIDEO_FORMAT_ENCODED and UNKNOWN */
+  fail_unless_equals_int (num, num_formats - 2);
 
   gst_caps_unref (caps);
 }
@@ -405,16 +412,11 @@
 
 #define WIDTH 77
 #define HEIGHT 20
-
 GST_START_TEST (test_video_formats_pack_unpack)
 {
   guint n, num_formats;
 
-  num_formats = 100;
-  fail_unless (gst_video_format_to_string (num_formats) == NULL);
-  while (gst_video_format_to_string (num_formats) == NULL)
-    --num_formats;
-  GST_INFO ("number of known video formats: %d", num_formats);
+  num_formats = get_num_formats ();
 
   for (n = GST_VIDEO_FORMAT_ENCODED + 1; n < num_formats; ++n) {
     const GstVideoFormatInfo *vfinfo, *unpackinfo;
@@ -476,6 +478,8 @@
 }
 
 GST_END_TEST;
+#undef WIDTH
+#undef HEIGHT
 
 GST_START_TEST (test_video_formats)
 {
@@ -1693,12 +1697,877 @@
 
 GST_END_TEST;
 
+static guint8 *
+make_pixels (gint depth, gint width, gint height)
+{
+  guint32 color = 0xff000000;
+  gint i, j;
+
+  if (depth == 8) {
+    guint8 *pixels = g_malloc (width * height * 4);
+    for (i = 0; i < height; i++) {
+      for (j = 0; j < width; j++) {
+        pixels[(i * width + j) * 4 + 0] = ((color >> 24) & 0xff);
+        pixels[(i * width + j) * 4 + 1] = ((color >> 16) & 0xff);
+        pixels[(i * width + j) * 4 + 2] = ((color >> 8) & 0xff);
+        pixels[(i * width + j) * 4 + 3] = (color & 0xff);
+        color++;
+      }
+    }
+    return pixels;
+  } else {
+#define TO16(a) (((a)<<8)|(a))
+    guint16 *pixels = g_malloc (width * height * 8);
+    for (i = 0; i < height; i++) {
+      for (j = 0; j < width; j++) {
+        pixels[(i * width + j) * 4 + 0] = TO16 ((color >> 24) & 0xff);
+        pixels[(i * width + j) * 4 + 1] = TO16 ((color >> 16) & 0xff);
+        pixels[(i * width + j) * 4 + 2] = TO16 ((color >> 8) & 0xff);
+        pixels[(i * width + j) * 4 + 3] = TO16 (color & 0xff);
+        color++;
+      }
+    }
+#undef TO16
+    return (guint8 *) pixels;
+  }
+}
+
+#define HS(x,o) ((x)&hs[o])
+#define WS(x,o) ((x)&ws[o])
+#define IN(i,j,o) (in[(HS(i, o)*width + WS(j,o))*4+(o)] & mask[o])
+#define OUT(i,j,o) (out[((i)*width + (j))*4+o] & mask[o])
+static gint
+compare_frame (const GstVideoFormatInfo * finfo, gint depth, guint8 * outpixels,
+    guint8 * pixels, gint width, gint height)
+{
+  gint diff, i, j, k;
+  guint ws[4], hs[4], mask[4];
+
+  for (k = 0; k < 4; k++) {
+    hs[k] = G_MAXUINT << finfo->h_sub[(3 + k) % 4];
+    ws[k] = G_MAXUINT << finfo->w_sub[(3 + k) % 4];
+    mask[k] = G_MAXUINT << (depth - finfo->depth[(3 + k) % 4]);
+  }
+  diff = 0;
+  if (depth == 8) {
+    guint8 *in = pixels;
+    guint8 *out = outpixels;
+
+    for (i = 0; i < height; i++) {
+      for (j = 0; j < width; j++) {
+        for (k = 0; k < 4; k++) {
+          diff += IN (i, j, k) != OUT (i, j, k);
+        }
+      }
+    }
+  } else {
+    guint16 *in = (guint16 *) pixels;
+    guint16 *out = (guint16 *) outpixels;
+
+    for (i = 0; i < height; i++) {
+      for (j = 0; j < width; j++) {
+        for (k = 0; k < 4; k++) {
+          diff += IN (i, j, k) != OUT (i, j, k);
+        }
+      }
+    }
+  }
+  return diff;
+}
+
+#undef WS
+#undef HS
+#undef IN
+#undef OUT
+
+typedef struct
+{
+  GstVideoFormat infmt;
+  GstVideoFormat outfmt;
+  gint method;
+  gdouble convert_sec;
+} ConvertResult;
+
+#define SIGN(a,b) ((a) < (b) ? -1 : (a) > (b) ? 1 : 0)
+
+static gint
+compare_result (gconstpointer a, gconstpointer b)
+{
+  const ConvertResult *ap = a;
+  const ConvertResult *bp = b;
+
+  return SIGN (ap->convert_sec, bp->convert_sec);
+}
+
+#define UNPACK_FRAME(frame,dest,line,x,width)            \
+  (frame)->info.finfo->unpack_func ((frame)->info.finfo, \
+      (GST_VIDEO_FRAME_IS_INTERLACED (frame) ?           \
+        GST_VIDEO_PACK_FLAG_INTERLACED :                 \
+        GST_VIDEO_PACK_FLAG_NONE),                       \
+      dest, (frame)->data, (frame)->info.stride, x,      \
+      line, width)
+#define PACK_FRAME(frame,src,line,width)               \
+  (frame)->info.finfo->pack_func ((frame)->info.finfo, \
+      (GST_VIDEO_FRAME_IS_INTERLACED (frame) ?         \
+        GST_VIDEO_PACK_FLAG_INTERLACED :               \
+        GST_VIDEO_PACK_FLAG_NONE),                     \
+      src, 0, (frame)->data, (frame)->info.stride,     \
+      (frame)->info.chroma_site, line, width);
+
+GST_START_TEST (test_video_pack_unpack2)
+{
+  GstVideoFormat format;
+  GTimer *timer;
+  gint num_formats, i;
+  GArray *packarray, *unpackarray;
+
+#define WIDTH 320
+#define HEIGHT 240
+/* set to something larger to do benchmarks */
+#define TIME 0.01
+
+  timer = g_timer_new ();
+  packarray = g_array_new (FALSE, FALSE, sizeof (ConvertResult));
+  unpackarray = g_array_new (FALSE, FALSE, sizeof (ConvertResult));
+
+  num_formats = get_num_formats ();
+
+  GST_DEBUG ("pack/sec\t unpack/sec \tpack GB/sec\tunpack GB/sec\tformat");
+
+  for (format = GST_VIDEO_FORMAT_I420; format < num_formats; format++) {
+    GstVideoInfo info;
+    const GstVideoFormatInfo *finfo, *fuinfo;
+    GstBuffer *buffer;
+    GstVideoFrame frame;
+    gint k, stride, count, diff, depth;
+    guint8 *pixels, *outpixels;
+    gdouble elapsed;
+    gdouble unpack_sec, pack_sec;
+    ConvertResult res;
+
+    finfo = gst_video_format_get_info (format);
+    fail_unless (finfo != NULL);
+
+    if (GST_VIDEO_FORMAT_INFO_HAS_PALETTE (finfo))
+      continue;
+
+    fuinfo = gst_video_format_get_info (finfo->unpack_format);
+    fail_unless (fuinfo != NULL);
+
+    depth = GST_VIDEO_FORMAT_INFO_BITS (fuinfo);
+    fail_unless (depth == 8 || depth == 16);
+
+    pixels = make_pixels (depth, WIDTH, HEIGHT);
+    stride = WIDTH * (depth >> 1);
+
+    gst_video_info_set_format (&info, format, WIDTH, HEIGHT);
+    buffer = gst_buffer_new_and_alloc (info.size);
+    gst_video_frame_map (&frame, &info, buffer, GST_MAP_READWRITE);
+
+    /* pack the frame into the target format */
+    /* warmup */
+    PACK_FRAME (&frame, pixels, 0, WIDTH);
+
+    count = 0;
+    g_timer_start (timer);
+    while (TRUE) {
+      for (k = 0; k < HEIGHT; k += finfo->pack_lines) {
+        PACK_FRAME (&frame, pixels + k * stride, k, WIDTH);
+      }
+      count++;
+      elapsed = g_timer_elapsed (timer, NULL);
+      if (elapsed >= TIME)
+        break;
+    }
+    unpack_sec = count / elapsed;
+
+    res.infmt = format;
+    res.outfmt = finfo->unpack_format;
+    res.convert_sec = unpack_sec;
+    g_array_append_val (unpackarray, res);
+
+    outpixels = g_malloc0 (HEIGHT * stride);
+
+    /* unpack the frame */
+    /* warmup */
+    UNPACK_FRAME (&frame, outpixels, 0, 0, WIDTH);
+
+    count = 0;
+    g_timer_start (timer);
+    while (TRUE) {
+      for (k = 0; k < HEIGHT; k += finfo->pack_lines) {
+        UNPACK_FRAME (&frame, outpixels + k * stride, k, 0, WIDTH);
+      }
+      count++;
+      elapsed = g_timer_elapsed (timer, NULL);
+      if (elapsed >= TIME)
+        break;
+    }
+    pack_sec = count / elapsed;
+
+    res.outfmt = format;
+    res.infmt = finfo->unpack_format;
+    res.convert_sec = pack_sec;
+    g_array_append_val (packarray, res);
+
+    /* compare the frame */
+    diff = compare_frame (finfo, depth, outpixels, pixels, WIDTH, HEIGHT);
+
+    GST_DEBUG ("%f \t %f \t %f \t %f \t %s %d/%f", pack_sec, unpack_sec,
+        info.size * pack_sec, info.size * unpack_sec, finfo->name, count,
+        elapsed);
+
+    if (diff != 0) {
+      gst_util_dump_mem (outpixels, 128);
+      gst_util_dump_mem (pixels, 128);
+      fail_if (diff != 0);
+    }
+    gst_video_frame_unmap (&frame);
+    gst_buffer_unref (buffer);
+    g_free (pixels);
+    g_free (outpixels);
+  }
+
+  g_array_sort (packarray, compare_result);
+  for (i = 0; i < packarray->len; i++) {
+    ConvertResult *res = &g_array_index (packarray, ConvertResult, i);
+
+    GST_DEBUG ("%f pack/sec %s->%s", res->convert_sec,
+        gst_video_format_to_string (res->infmt),
+        gst_video_format_to_string (res->outfmt));
+  }
+
+  g_array_sort (unpackarray, compare_result);
+  for (i = 0; i < unpackarray->len; i++) {
+    ConvertResult *res = &g_array_index (unpackarray, ConvertResult, i);
+
+    GST_DEBUG ("%f unpack/sec %s->%s", res->convert_sec,
+        gst_video_format_to_string (res->infmt),
+        gst_video_format_to_string (res->outfmt));
+  }
+
+  g_timer_destroy (timer);
+  g_array_free (packarray, TRUE);
+  g_array_free (unpackarray, TRUE);
+}
+
+GST_END_TEST;
+#undef WIDTH
+#undef HEIGHT
+#undef TIME
+
+#define WIDTH 320
+#define HEIGHT 240
+#define TIME 0.1
+#define GET_LINE(l) (pixels + CLAMP (l, 0, HEIGHT-1) * WIDTH * 4)
+GST_START_TEST (test_video_chroma)
+{
+  guint8 *pixels;
+  guint n_lines;
+  gint i, j, k, offset, count;
+  gpointer lines[10];
+  GTimer *timer;
+  gdouble elapsed, subsample_sec;
+  GstVideoChromaSite sites[] = {
+    GST_VIDEO_CHROMA_SITE_NONE,
+    GST_VIDEO_CHROMA_SITE_H_COSITED,
+  };
+
+  timer = g_timer_new ();
+  pixels = make_pixels (8, WIDTH, HEIGHT);
+
+  for (k = 0; k < G_N_ELEMENTS (sites); k++) {
+    GstVideoChromaResample *resample;
+
+    resample = gst_video_chroma_resample_new (GST_VIDEO_CHROMA_METHOD_LINEAR,
+        sites[k], GST_VIDEO_CHROMA_FLAG_NONE, GST_VIDEO_FORMAT_AYUV, -1, -1);
+
+    gst_video_chroma_resample_get_info (resample, &n_lines, &offset);
+    fail_unless (n_lines < 10);
+
+    /* warmup */
+    for (j = 0; j < n_lines; j++)
+      lines[j] = GET_LINE (offset + j);
+    gst_video_chroma_resample (resample, lines, WIDTH);
+
+    count = 0;
+    g_timer_start (timer);
+    while (TRUE) {
+      for (i = 0; i < HEIGHT; i += n_lines) {
+        for (j = 0; j < n_lines; j++)
+          lines[j] = GET_LINE (i + offset + j);
+
+        gst_video_chroma_resample (resample, lines, WIDTH);
+      }
+      count++;
+      elapsed = g_timer_elapsed (timer, NULL);
+      if (elapsed >= TIME)
+        break;
+    }
+    subsample_sec = count / elapsed;
+    GST_DEBUG ("%f downsamples/sec  %d/%f", subsample_sec, count, elapsed);
+    gst_video_chroma_resample_free (resample);
+
+    resample = gst_video_chroma_resample_new (GST_VIDEO_CHROMA_METHOD_LINEAR,
+        sites[k], GST_VIDEO_CHROMA_FLAG_NONE, GST_VIDEO_FORMAT_AYUV, 1, 1);
+
+    gst_video_chroma_resample_get_info (resample, &n_lines, &offset);
+    fail_unless (n_lines < 10);
+
+    /* warmup */
+    for (j = 0; j < n_lines; j++)
+      lines[j] = GET_LINE (offset + j);
+    gst_video_chroma_resample (resample, lines, WIDTH);
+
+    count = 0;
+    g_timer_start (timer);
+    while (TRUE) {
+      for (i = 0; i < HEIGHT; i += n_lines) {
+        for (j = 0; j < n_lines; j++)
+          lines[j] = GET_LINE (i + offset + j);
+
+        gst_video_chroma_resample (resample, lines, WIDTH);
+      }
+      count++;
+      elapsed = g_timer_elapsed (timer, NULL);
+      if (elapsed >= TIME)
+        break;
+    }
+    subsample_sec = count / elapsed;
+    GST_DEBUG ("%f upsamples/sec  %d/%f", subsample_sec, count, elapsed);
+    gst_video_chroma_resample_free (resample);
+  }
+
+  g_free (pixels);
+  g_timer_destroy (timer);
+}
+
+GST_END_TEST;
+#undef WIDTH
+#undef HEIGHT
+#undef TIME
+
+GST_START_TEST (test_video_scaler)
+{
+  GstVideoScaler *scale;
+
+  scale = gst_video_scaler_new (GST_VIDEO_RESAMPLER_METHOD_LINEAR,
+      GST_VIDEO_SCALER_FLAG_NONE, 2, 10, 5, NULL);
+  gst_video_scaler_free (scale);
+
+  scale = gst_video_scaler_new (GST_VIDEO_RESAMPLER_METHOD_LINEAR,
+      GST_VIDEO_SCALER_FLAG_NONE, 2, 15, 5, NULL);
+  gst_video_scaler_free (scale);
+}
+
+GST_END_TEST;
+
+#define WIDTH 320
+#define HEIGHT 240
+#define TIME 0.01
+
+GST_START_TEST (test_video_color_convert)
+{
+  GstVideoFormat infmt, outfmt;
+  GTimer *timer;
+  gint num_formats, i;
+  GArray *array;
+
+  array = g_array_new (FALSE, FALSE, sizeof (ConvertResult));
+
+  timer = g_timer_new ();
+
+  num_formats = get_num_formats ();
+
+  for (infmt = GST_VIDEO_FORMAT_I420; infmt < num_formats; infmt++) {
+    GstVideoInfo ininfo;
+    GstVideoFrame inframe;
+    GstBuffer *inbuffer;
+
+    gst_video_info_set_format (&ininfo, infmt, WIDTH, HEIGHT);
+    inbuffer = gst_buffer_new_and_alloc (ininfo.size);
+    gst_buffer_memset (inbuffer, 0, 0, -1);
+    gst_video_frame_map (&inframe, &ininfo, inbuffer, GST_MAP_READ);
+
+    for (outfmt = GST_VIDEO_FORMAT_I420; outfmt < num_formats; outfmt++) {
+      GstVideoInfo outinfo;
+      GstVideoFrame outframe;
+      GstBuffer *outbuffer;
+      GstVideoConverter *convert;
+      gdouble elapsed;
+      gint count;
+      ConvertResult res;
+
+      gst_video_info_set_format (&outinfo, outfmt, WIDTH, HEIGHT);
+      outbuffer = gst_buffer_new_and_alloc (outinfo.size);
+      gst_video_frame_map (&outframe, &outinfo, outbuffer, GST_MAP_WRITE);
+
+      convert = gst_video_converter_new (&ininfo, &outinfo, NULL);
+      /* warmup */
+      gst_video_converter_frame (convert, &inframe, &outframe);
+
+      count = 0;
+      g_timer_start (timer);
+      while (TRUE) {
+        gst_video_converter_frame (convert, &inframe, &outframe);
+
+        count++;
+        elapsed = g_timer_elapsed (timer, NULL);
+        if (elapsed >= TIME)
+          break;
+      }
+
+      res.infmt = infmt;
+      res.outfmt = outfmt;
+      res.convert_sec = count / elapsed;
+
+      GST_DEBUG ("%f conversions/sec %s->%s, %d/%f", res.convert_sec,
+          gst_video_format_to_string (infmt),
+          gst_video_format_to_string (outfmt), count, elapsed);
+
+      g_array_append_val (array, res);
+
+      gst_video_converter_free (convert);
+
+      gst_video_frame_unmap (&outframe);
+      gst_buffer_unref (outbuffer);
+    }
+    gst_video_frame_unmap (&inframe);
+    gst_buffer_unref (inbuffer);
+  }
+
+  g_array_sort (array, compare_result);
+
+  for (i = 0; i < array->len; i++) {
+    ConvertResult *res = &g_array_index (array, ConvertResult, i);
+
+    GST_DEBUG ("%f conversions/sec %s->%s", res->convert_sec,
+        gst_video_format_to_string (res->infmt),
+        gst_video_format_to_string (res->outfmt));
+  }
+
+  g_array_free (array, TRUE);
+
+  g_timer_destroy (timer);
+}
+
+GST_END_TEST;
+#undef WIDTH
+#undef HEIGHT
+
+#define WIDTH_IN 320
+#define HEIGHT_IN 240
+#define WIDTH_OUT 400
+#define HEIGHT_OUT 300
+#define TIME 0.01
+
+GST_START_TEST (test_video_size_convert)
+{
+  GstVideoFormat infmt, outfmt;
+  GTimer *timer;
+  gint num_formats, i;
+  GArray *array;
+
+  array = g_array_new (FALSE, FALSE, sizeof (ConvertResult));
+
+  timer = g_timer_new ();
+
+  num_formats = get_num_formats ();
+
+  for (infmt = GST_VIDEO_FORMAT_I420; infmt < num_formats; infmt++) {
+    GstVideoInfo ininfo, outinfo;
+    GstVideoFrame inframe, outframe;
+    GstBuffer *inbuffer, *outbuffer;
+    GstVideoConverter *convert;
+    gdouble elapsed;
+    gint count, method;
+    ConvertResult res;
+
+    gst_video_info_set_format (&ininfo, infmt, WIDTH_IN, HEIGHT_IN);
+    inbuffer = gst_buffer_new_and_alloc (ininfo.size);
+    gst_buffer_memset (inbuffer, 0, 0, -1);
+    gst_video_frame_map (&inframe, &ininfo, inbuffer, GST_MAP_READ);
+
+    outfmt = infmt;
+    gst_video_info_set_format (&outinfo, outfmt, WIDTH_OUT, HEIGHT_OUT);
+    outbuffer = gst_buffer_new_and_alloc (outinfo.size);
+    gst_video_frame_map (&outframe, &outinfo, outbuffer, GST_MAP_WRITE);
+
+    for (method = 0; method < 4; method++) {
+      convert = gst_video_converter_new (&ininfo, &outinfo,
+          gst_structure_new ("options",
+              GST_VIDEO_CONVERTER_OPT_RESAMPLER_METHOD,
+              GST_TYPE_VIDEO_RESAMPLER_METHOD, method, NULL));
+
+      /* warmup */
+      gst_video_converter_frame (convert, &inframe, &outframe);
+
+      count = 0;
+      g_timer_start (timer);
+      while (TRUE) {
+        gst_video_converter_frame (convert, &inframe, &outframe);
+
+        count++;
+        elapsed = g_timer_elapsed (timer, NULL);
+        if (elapsed >= TIME)
+          break;
+      }
+
+      res.infmt = infmt;
+      res.outfmt = outfmt;
+      res.method = method;
+      res.convert_sec = count / elapsed;
+
+      GST_DEBUG ("%f resize/sec %s->%s, %d, %d/%f", res.convert_sec,
+          gst_video_format_to_string (infmt),
+          gst_video_format_to_string (outfmt), method, count, elapsed);
+
+      g_array_append_val (array, res);
+
+      gst_video_converter_free (convert);
+    }
+    gst_video_frame_unmap (&outframe);
+    gst_buffer_unref (outbuffer);
+    gst_video_frame_unmap (&inframe);
+    gst_buffer_unref (inbuffer);
+  }
+
+  g_array_sort (array, compare_result);
+
+  for (i = 0; i < array->len; i++) {
+    ConvertResult *res = &g_array_index (array, ConvertResult, i);
+
+    GST_DEBUG ("%f method %d, resize/sec %s->%s", res->convert_sec, res->method,
+        gst_video_format_to_string (res->infmt),
+        gst_video_format_to_string (res->outfmt));
+  }
+
+  g_array_free (array, TRUE);
+
+  g_timer_destroy (timer);
+}
+
+GST_END_TEST;
+#undef WIDTH
+#undef HEIGHT
+
+GST_START_TEST (test_video_convert)
+{
+  GstVideoInfo ininfo, outinfo;
+  GstVideoFrame inframe, outframe;
+  GstBuffer *inbuffer, *outbuffer;
+  GstVideoConverter *convert;
+
+  gst_video_info_set_format (&ininfo, GST_VIDEO_FORMAT_ARGB, 320, 240);
+  inbuffer = gst_buffer_new_and_alloc (ininfo.size);
+  gst_buffer_memset (inbuffer, 0, 0, -1);
+  gst_video_frame_map (&inframe, &ininfo, inbuffer, GST_MAP_READ);
+
+  gst_video_info_set_format (&outinfo, GST_VIDEO_FORMAT_BGRx, 400, 300);
+  outbuffer = gst_buffer_new_and_alloc (outinfo.size);
+  gst_video_frame_map (&outframe, &outinfo, outbuffer, GST_MAP_WRITE);
+
+  /* see that we don't reuse the source line directly because we need
+   * to add borders to it */
+  convert = gst_video_converter_new (&ininfo, &outinfo,
+      gst_structure_new ("options",
+          GST_VIDEO_CONVERTER_OPT_RESAMPLER_METHOD,
+          GST_TYPE_VIDEO_RESAMPLER_METHOD, 3,
+          GST_VIDEO_CONVERTER_OPT_SRC_X, G_TYPE_INT, 10,
+          GST_VIDEO_CONVERTER_OPT_SRC_Y, G_TYPE_INT, 0,
+          GST_VIDEO_CONVERTER_OPT_SRC_WIDTH, G_TYPE_INT, 300,
+          GST_VIDEO_CONVERTER_OPT_SRC_HEIGHT, G_TYPE_INT, 220,
+          GST_VIDEO_CONVERTER_OPT_DEST_X, G_TYPE_INT, 80,
+          GST_VIDEO_CONVERTER_OPT_DEST_Y, G_TYPE_INT, 60,
+          GST_VIDEO_CONVERTER_OPT_DEST_WIDTH, G_TYPE_INT, 300,
+          GST_VIDEO_CONVERTER_OPT_DEST_HEIGHT, G_TYPE_INT, 220, NULL));
+
+  gst_video_converter_frame (convert, &inframe, &outframe);
+  gst_video_converter_free (convert);
+
+  /* see that we reuse the source line directly because we need to scale
+   * it first */
+  convert = gst_video_converter_new (&ininfo, &outinfo,
+      gst_structure_new ("options",
+          GST_VIDEO_CONVERTER_OPT_RESAMPLER_METHOD,
+          GST_TYPE_VIDEO_RESAMPLER_METHOD, 3,
+          GST_VIDEO_CONVERTER_OPT_SRC_X, G_TYPE_INT, 10,
+          GST_VIDEO_CONVERTER_OPT_SRC_Y, G_TYPE_INT, 0,
+          GST_VIDEO_CONVERTER_OPT_SRC_WIDTH, G_TYPE_INT, 300,
+          GST_VIDEO_CONVERTER_OPT_SRC_HEIGHT, G_TYPE_INT, 220,
+          GST_VIDEO_CONVERTER_OPT_DEST_X, G_TYPE_INT, 80,
+          GST_VIDEO_CONVERTER_OPT_DEST_Y, G_TYPE_INT, 60,
+          GST_VIDEO_CONVERTER_OPT_DEST_WIDTH, G_TYPE_INT, 310,
+          GST_VIDEO_CONVERTER_OPT_DEST_HEIGHT, G_TYPE_INT, 230, NULL));
+
+  gst_video_converter_frame (convert, &inframe, &outframe);
+  gst_video_converter_free (convert);
+
+  gst_video_frame_unmap (&outframe);
+  gst_buffer_unref (outbuffer);
+  gst_video_frame_unmap (&inframe);
+  gst_buffer_unref (inbuffer);
+
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_video_transfer)
+{
+  gint i, j;
+
+  for (j = GST_VIDEO_TRANSFER_GAMMA10; j <= GST_VIDEO_TRANSFER_LOG316; j++) {
+    for (i = 0; i < 256; i++) {
+      gdouble val1, val2;
+
+      val1 = gst_video_color_transfer_encode (j, i / 255.0);
+      fail_if (val1 < 0.0 || val1 > 1.0);
+
+      val2 = gst_video_color_transfer_decode (j, val1);
+      fail_if (val2 < 0.0 || val2 > 1.0);
+
+      GST_DEBUG ("%d: %d %f->%f->%f %d", j, i, i / 255.0, val1, val2,
+          (int) lrint (val2 * 255.0));
+      if (val1 == 0.0)
+        fail_if (val2 != 0.0);
+      else
+        fail_if (lrint (val2 * 255.0) != i);
+    }
+  }
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_video_center_rect)
+{
+  GstVideoRectangle src, dest, result, expected;
+
+#define NEW_RECT(x,y,w,h) ((GstVideoRectangle) {x,y,w,h})
+#define CHECK_RECT(res, exp)			\
+  fail_unless_equals_int(exp.x, res.x);\
+  fail_unless_equals_int(exp.y, res.y);\
+  fail_unless_equals_int(exp.w, res.w);\
+  fail_unless_equals_int(exp.h, res.h);
+
+  /* 1:1 Aspect Ratio */
+  src = NEW_RECT (0, 0, 100, 100);
+  dest = NEW_RECT (0, 0, 100, 100);
+  expected = NEW_RECT (0, 0, 100, 100);
+  gst_video_sink_center_rect (src, dest, &result, TRUE);
+  CHECK_RECT (result, expected);
+
+  src = NEW_RECT (0, 0, 100, 100);
+  dest = NEW_RECT (0, 0, 50, 50);
+  expected = NEW_RECT (0, 0, 50, 50);
+  gst_video_sink_center_rect (src, dest, &result, TRUE);
+  CHECK_RECT (result, expected);
+
+  src = NEW_RECT (0, 0, 100, 100);
+  dest = NEW_RECT (50, 50, 100, 100);
+  expected = NEW_RECT (50, 50, 100, 100);
+  gst_video_sink_center_rect (src, dest, &result, TRUE);
+  CHECK_RECT (result, expected);
+
+  /* Aspect ratio scaling (tall) */
+  src = NEW_RECT (0, 0, 50, 100);
+  dest = NEW_RECT (0, 0, 50, 50);
+  expected = NEW_RECT (12, 0, 25, 50);
+  gst_video_sink_center_rect (src, dest, &result, TRUE);
+  CHECK_RECT (result, expected);
+
+  src = NEW_RECT (0, 0, 50, 100);
+  dest = NEW_RECT (50, 50, 50, 50);
+  expected = NEW_RECT (62, 50, 25, 50);
+  gst_video_sink_center_rect (src, dest, &result, TRUE);
+  CHECK_RECT (result, expected);
+
+  /* Aspect ratio scaling (wide) */
+  src = NEW_RECT (0, 0, 100, 50);
+  dest = NEW_RECT (0, 0, 50, 50);
+  expected = NEW_RECT (0, 12, 50, 25);
+  gst_video_sink_center_rect (src, dest, &result, TRUE);
+  CHECK_RECT (result, expected);
+
+  src = NEW_RECT (0, 0, 100, 50);
+  dest = NEW_RECT (50, 50, 50, 50);
+  expected = NEW_RECT (50, 62, 50, 25);
+  gst_video_sink_center_rect (src, dest, &result, TRUE);
+  CHECK_RECT (result, expected);
+}
+
+GST_END_TEST;
+
+void test_overlay_blend_rect (gint x, gint y, gint width, gint height,
+    GstVideoFrame * video_frame);
+void test_overlay_blend_rect_verify (gint x, gint y, gint width,
+    gint height, GstVideoFrame * video_frame);
+#define VIDEO_WIDTH 320
+#define VIDEO_HEIGHT 240
+
+void
+test_overlay_blend_rect_verify (gint x, gint y, gint width, gint height,
+    GstVideoFrame * video_frame)
+{
+  guint8 *data;
+  gint i = 0, prev_i = 0;
+  gint size = 0;
+  gint temp_width = 0, temp_height = 0;
+
+  data = GST_VIDEO_FRAME_PLANE_DATA (video_frame, 0);
+  size = GST_VIDEO_FRAME_SIZE (video_frame);
+
+  if (x + width < 0 || y + height < 0 || x >= VIDEO_WIDTH || y >= VIDEO_HEIGHT)
+    return;
+  if (x <= 0)
+    temp_width = width + x;
+  else if (x > 0 && (x + width) <= VIDEO_WIDTH)
+    temp_width = width;
+  else
+    temp_width = VIDEO_WIDTH - x;
+  if (y <= 0)
+    temp_height = height + y;
+  else if (y > 0 && (y + height) <= VIDEO_HEIGHT)
+    temp_height = height;
+  else
+    temp_height = VIDEO_HEIGHT - y;
+
+  if (x <= 0 && y <= 0)
+    i = 0;
+  else
+    i = (((x <= 0) ? 0 : x) + (((y <= 0) ? 0 : y) * VIDEO_WIDTH)) * 4;
+  prev_i = i;
+
+  for (; i < size - 4; i += 4) {
+#if G_BYTE_ORDER == G_LITTLE_ENDIAN
+    /* B - G - R - A */
+    fail_unless_equals_int (data[i], 0x40);
+    fail_unless_equals_int (data[i + 1], 0x40);
+    fail_unless_equals_int (data[i + 2], 0x40);
+    fail_unless_equals_int (data[i + 3], 0x00);
+#else
+    /* A - R - G - B */
+    fail_unless_equals_int (data[i], 0x00);
+    fail_unless_equals_int (data[i + 1], 0x40);
+    fail_unless_equals_int (data[i + 2], 0x40);
+    fail_unless_equals_int (data[i + 3], 0x40);
+#endif
+    if ((i + 4) == (4 * (((((y > 0) ? (y + temp_height) : temp_height) -
+                        1) * VIDEO_WIDTH) + ((x >
+                        0) ? (x + temp_width) : temp_width))))
+      break;
+    if ((i + 4 - prev_i) == ((temp_width) * 4)) {
+      i += ((VIDEO_WIDTH - (temp_width)) * 4);
+      prev_i = i + 4;
+    }
+
+  }
+}
+
+void
+test_overlay_blend_rect (gint x, gint y, gint width, gint height,
+    GstVideoFrame * video_frame)
+{
+  GstVideoOverlayComposition *comp1;
+  GstVideoOverlayRectangle *rect1;
+  GstBuffer *pix, *pix1;
+  GstVideoInfo vinfo;
+
+  memset (video_frame, 0, sizeof (GstVideoFrame));
+  pix =
+      gst_buffer_new_and_alloc (VIDEO_WIDTH * VIDEO_HEIGHT * sizeof (guint32));
+  gst_buffer_memset (pix, 0, 0, gst_buffer_get_size (pix));
+  gst_video_info_init (&vinfo);
+  gst_video_info_set_format (&vinfo, GST_VIDEO_OVERLAY_COMPOSITION_FORMAT_RGB,
+      VIDEO_WIDTH, VIDEO_HEIGHT);
+  gst_video_frame_map (video_frame, &vinfo, pix, GST_MAP_READWRITE);
+  gst_buffer_unref (pix);
+  pix = NULL;
+
+  pix1 = gst_buffer_new_and_alloc (width * height * sizeof (guint32));
+  gst_buffer_memset (pix1, 0, 0x80, gst_buffer_get_size (pix1));
+  gst_buffer_add_video_meta (pix1, GST_VIDEO_FRAME_FLAG_NONE,
+      GST_VIDEO_OVERLAY_COMPOSITION_FORMAT_RGB, width, height);
+  rect1 = gst_video_overlay_rectangle_new_raw (pix1,
+      x, y, width, height, GST_VIDEO_OVERLAY_FORMAT_FLAG_NONE);
+  gst_buffer_unref (pix1);
+  pix1 = NULL;
+
+  comp1 = gst_video_overlay_composition_new (rect1);
+  fail_unless (gst_video_overlay_composition_blend (comp1, video_frame));
+  gst_video_overlay_composition_unref (comp1);
+  gst_video_overlay_rectangle_unref (rect1);
+
+  test_overlay_blend_rect_verify (x, y, width, height, video_frame);
+  gst_video_frame_unmap (video_frame);
+}
+
+GST_START_TEST (test_overlay_blend)
+{
+  GstVideoFrame video_frame;
+
+  /* Overlay width & height smaller than video width & height */
+  /* Overlay rendered completely left of video surface
+   * x + overlay_width <= 0 */
+  test_overlay_blend_rect (-60, 50, 50, 50, &video_frame);
+  /* Overlay rendered completely right of video surface
+   * x >= video_width */
+  test_overlay_blend_rect (330, 50, 50, 50, &video_frame);
+  /* Overlay rendered completely top of video surface
+   * y + overlay_height <= 0 */
+  test_overlay_blend_rect (50, -60, 50, 50, &video_frame);
+  /* Overlay rendered completely bottom of video surface
+   * y >= video_height */
+  test_overlay_blend_rect (50, 250, 50, 50, &video_frame);
+  /* Overlay rendered partially left of video surface
+   * x < 0 && -x < overlay_width */
+  test_overlay_blend_rect (-40, 50, 50, 50, &video_frame);
+  /* Overlay rendered partially right of video surface
+   * x < video_width && (overlay_width + x) > video_width */
+  test_overlay_blend_rect (300, 50, 50, 50, &video_frame);
+  /* Overlay rendered partially top of video surface
+   * y < 0 && -y < overlay_height */
+  test_overlay_blend_rect (50, -40, 50, 50, &video_frame);
+  /* Overlay rendered partially bottom of video surface
+   * y < video_height && (overlay_height + y) > video_height */
+  test_overlay_blend_rect (50, 220, 50, 50, &video_frame);
+
+  /* Overlay width & height bigger than video width & height */
+  /* Overlay rendered completely left of video surface
+   * x + overlay_width <= 0 */
+  test_overlay_blend_rect (-360, 50, 350, 250, &video_frame);
+  /* Overlay rendered completely right of video surface
+   * x >= video_width */
+  test_overlay_blend_rect (330, 50, 350, 250, &video_frame);
+  /* Overlay rendered completely top of video surface
+   * y + overlay_height <= 0 */
+  test_overlay_blend_rect (50, -260, 350, 250, &video_frame);
+  /* Overlay rendered completely bottom of video surface
+   * y >= video_height */
+  test_overlay_blend_rect (50, 250, 350, 250, &video_frame);
+  /* Overlay rendered partially left of video surface
+   * x < 0 && -x < overlay_width */
+  test_overlay_blend_rect (-40, 50, 350, 250, &video_frame);
+  /* Overlay rendered partially right of video surface
+   * x < video_width && (overlay_width + x) > video_width */
+  test_overlay_blend_rect (300, 50, 350, 250, &video_frame);
+  /* Overlay rendered partially top of video surface
+   * y < 0 && -y < overlay_height */
+  test_overlay_blend_rect (50, -40, 350, 250, &video_frame);
+  /* Overlay rendered partially bottom of video surface
+   * y < video_height && (overlay_height + y) > video_height */
+  test_overlay_blend_rect (50, 220, 350, 250, &video_frame);
+}
+
+GST_END_TEST;
+
 static Suite *
 video_suite (void)
 {
   Suite *s = suite_create ("video support library");
   TCase *tc_chain = tcase_create ("general");
 
+  tcase_set_timeout (tc_chain, 60 * 60);
+
   suite_add_tcase (s, tc_chain);
   tcase_add_test (tc_chain, test_video_formats);
   tcase_add_test (tc_chain, test_video_formats_rgb);
@@ -1714,6 +2583,15 @@
   tcase_add_test (tc_chain, test_overlay_composition);
   tcase_add_test (tc_chain, test_overlay_composition_premultiplied_alpha);
   tcase_add_test (tc_chain, test_overlay_composition_global_alpha);
+  tcase_add_test (tc_chain, test_video_pack_unpack2);
+  tcase_add_test (tc_chain, test_video_chroma);
+  tcase_add_test (tc_chain, test_video_scaler);
+  tcase_add_test (tc_chain, test_video_color_convert);
+  tcase_add_test (tc_chain, test_video_size_convert);
+  tcase_add_test (tc_chain, test_video_convert);
+  tcase_add_test (tc_chain, test_video_transfer);
+  tcase_add_test (tc_chain, test_overlay_blend);
+  tcase_add_test (tc_chain, test_video_center_rect);
 
   return s;
 }
diff --git a/tests/check/libs/videodecoder.c b/tests/check/libs/videodecoder.c
index 5e9f2c9..bd3531f 100644
--- a/tests/check/libs/videodecoder.c
+++ b/tests/check/libs/videodecoder.c
@@ -27,6 +27,38 @@
 #include <gst/video/video.h>
 #include <gst/app/app.h>
 
+static GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink",
+    GST_PAD_SINK,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS ("video/x-raw")
+    );
+
+#define RESTRICTED_CAPS_WIDTH 800
+#define RESTRICTED_CAPS_HEIGHT 600
+#define RESTRICTED_CAPS_FPS_N 30
+#define RESTRICTED_CAPS_FPS_D 1
+static GstStaticPadTemplate sinktemplate_restricted =
+GST_STATIC_PAD_TEMPLATE ("sink",
+    GST_PAD_SINK,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS ("video/x-raw, width=(int)800, height=(int)600,"
+        " framerate=(fraction)30/1")
+    );
+
+static GstStaticPadTemplate sinktemplate_with_range =
+GST_STATIC_PAD_TEMPLATE ("sink",
+    GST_PAD_SINK,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS ("video/x-raw, width=(int)[1,800], height=(int)[1,600],"
+        " framerate=(fraction)[1/1, 30/1]")
+    );
+
+static GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src",
+    GST_PAD_SRC,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS ("video/x-test-custom")
+    );
+
 static GstPad *mysrcpad, *mysinkpad;
 static GstElement *dec;
 static GList *events = NULL;
@@ -181,22 +213,17 @@
 }
 
 static void
-setup_videodecodertester (void)
+setup_videodecodertester (GstStaticPadTemplate * sinktmpl,
+    GstStaticPadTemplate * srctmpl)
 {
-  static GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink",
-      GST_PAD_SINK,
-      GST_PAD_ALWAYS,
-      GST_STATIC_CAPS ("video/x-raw")
-      );
-  static GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src",
-      GST_PAD_SRC,
-      GST_PAD_ALWAYS,
-      GST_STATIC_CAPS ("video/x-test-custom")
-      );
+  if (sinktmpl == NULL)
+    sinktmpl = &sinktemplate;
+  if (srctmpl == NULL)
+    srctmpl = &srctemplate;
 
   dec = g_object_new (GST_VIDEO_DECODER_TESTER_TYPE, NULL);
-  mysrcpad = gst_check_setup_src_pad (dec, &srctemplate);
-  mysinkpad = gst_check_setup_sink_pad (dec, &sinktemplate);
+  mysrcpad = gst_check_setup_src_pad (dec, srctmpl);
+  mysinkpad = gst_check_setup_sink_pad (dec, sinktmpl);
 
   gst_pad_set_event_function (mysinkpad, _mysinkpad_event);
 }
@@ -259,7 +286,7 @@
   guint64 i;
   GList *iter;
 
-  setup_videodecodertester ();
+  setup_videodecodertester (NULL, NULL);
 
   gst_pad_set_active (mysrcpad, TRUE);
   gst_element_set_state (dec, GST_STATE_PLAYING);
@@ -317,11 +344,11 @@
 {
   GstSegment segment;
   GstBuffer *buffer;
-  guint64 i;
+  guint i;
   GList *iter;
   GList *events_iter;
 
-  setup_videodecodertester ();
+  setup_videodecodertester (NULL, NULL);
 
   gst_pad_set_active (mysrcpad, TRUE);
   gst_element_set_state (dec, GST_STATE_PLAYING);
@@ -426,10 +453,10 @@
 {
   GstSegment segment;
   GstBuffer *buffer;
-  guint64 i;
+  guint i;
   GList *events_iter;
 
-  setup_videodecodertester ();
+  setup_videodecodertester (NULL, NULL);
 
   gst_pad_set_active (mysrcpad, TRUE);
   gst_element_set_state (dec, GST_STATE_PLAYING);
@@ -533,7 +560,7 @@
   GstBuffer *buffer;
   guint64 i = 0;
 
-  setup_videodecodertester ();
+  setup_videodecodertester (NULL, NULL);
 
   gst_pad_set_active (mysrcpad, TRUE);
   gst_element_set_state (dec, GST_STATE_PLAYING);
@@ -592,7 +619,7 @@
   GstClockTime pos;
   GList *iter;
 
-  setup_videodecodertester ();
+  setup_videodecodertester (NULL, NULL);
 
   gst_pad_set_active (mysrcpad, TRUE);
   gst_element_set_state (dec, GST_STATE_PLAYING);
@@ -661,7 +688,7 @@
   guint64 i;
   GList *iter;
 
-  setup_videodecodertester ();
+  setup_videodecodertester (NULL, NULL);
 
   gst_pad_set_active (mysrcpad, TRUE);
   gst_element_set_state (dec, GST_STATE_PLAYING);
@@ -744,7 +771,7 @@
   guint64 i;
   GstClockTime pos;
 
-  setup_videodecodertester ();
+  setup_videodecodertester (NULL, NULL);
 
   gst_pad_set_active (mysrcpad, TRUE);
   gst_element_set_state (dec, GST_STATE_PLAYING);
@@ -817,6 +844,187 @@
 GST_END_TEST;
 
 
+GST_START_TEST (videodecoder_query_caps_with_fixed_caps_peer)
+{
+  GstCaps *caps;
+  GstCaps *filter;
+  GstStructure *structure;
+  gint width, height, fps_n, fps_d;
+
+  setup_videodecodertester (&sinktemplate_restricted, NULL);
+
+  gst_pad_set_active (mysrcpad, TRUE);
+  gst_element_set_state (dec, GST_STATE_PLAYING);
+  gst_pad_set_active (mysinkpad, TRUE);
+
+  caps = gst_pad_peer_query_caps (mysrcpad, NULL);
+  fail_unless (caps != NULL);
+
+  structure = gst_caps_get_structure (caps, 0);
+  fail_unless (gst_structure_get_int (structure, "width", &width));
+  fail_unless (gst_structure_get_int (structure, "height", &height));
+  fail_unless (gst_structure_get_fraction (structure, "framerate", &fps_n,
+          &fps_d));
+  /* match our restricted caps values */
+  fail_unless (width == RESTRICTED_CAPS_WIDTH);
+  fail_unless (height == RESTRICTED_CAPS_HEIGHT);
+  fail_unless (fps_n == RESTRICTED_CAPS_FPS_N);
+  fail_unless (fps_d == RESTRICTED_CAPS_FPS_D);
+  gst_caps_unref (caps);
+
+  filter = gst_caps_new_simple ("video/x-custom-test", "width", G_TYPE_INT,
+      1000, "height", G_TYPE_INT, 1000, "framerate", GST_TYPE_FRACTION,
+      1000, 1, NULL);
+  caps = gst_pad_peer_query_caps (mysrcpad, filter);
+  fail_unless (caps != NULL);
+  fail_unless (gst_caps_is_empty (caps));
+  gst_caps_unref (caps);
+  gst_caps_unref (filter);
+
+  cleanup_videodecodertest ();
+}
+
+GST_END_TEST;
+
+static void
+_get_int_range (GstStructure * s, const gchar * field, gint * min_v,
+    gint * max_v)
+{
+  const GValue *value;
+
+  value = gst_structure_get_value (s, field);
+  fail_unless (value != NULL);
+  fail_unless (GST_VALUE_HOLDS_INT_RANGE (value));
+
+  *min_v = gst_value_get_int_range_min (value);
+  *max_v = gst_value_get_int_range_max (value);
+}
+
+static void
+_get_fraction_range (GstStructure * s, const gchar * field, gint * fps_n_min,
+    gint * fps_d_min, gint * fps_n_max, gint * fps_d_max)
+{
+  const GValue *value;
+  const GValue *min_v, *max_v;
+
+  value = gst_structure_get_value (s, field);
+  fail_unless (value != NULL);
+  fail_unless (GST_VALUE_HOLDS_FRACTION_RANGE (value));
+
+  min_v = gst_value_get_fraction_range_min (value);
+  fail_unless (GST_VALUE_HOLDS_FRACTION (min_v));
+  *fps_n_min = gst_value_get_fraction_numerator (min_v);
+  *fps_d_min = gst_value_get_fraction_denominator (min_v);
+
+  max_v = gst_value_get_fraction_range_max (value);
+  fail_unless (GST_VALUE_HOLDS_FRACTION (max_v));
+  *fps_n_max = gst_value_get_fraction_numerator (max_v);
+  *fps_d_max = gst_value_get_fraction_denominator (max_v);
+}
+
+GST_START_TEST (videodecoder_query_caps_with_range_caps_peer)
+{
+  GstCaps *caps;
+  GstCaps *filter;
+  GstStructure *structure;
+  gint width, height, fps_n, fps_d;
+  gint width_min, height_min, fps_n_min, fps_d_min;
+  gint width_max, height_max, fps_n_max, fps_d_max;
+
+  setup_videodecodertester (&sinktemplate_with_range, NULL);
+
+  gst_pad_set_active (mysrcpad, TRUE);
+  gst_element_set_state (dec, GST_STATE_PLAYING);
+  gst_pad_set_active (mysinkpad, TRUE);
+
+  caps = gst_pad_peer_query_caps (mysrcpad, NULL);
+  fail_unless (caps != NULL);
+
+  structure = gst_caps_get_structure (caps, 0);
+  _get_int_range (structure, "width", &width_min, &width_max);
+  _get_int_range (structure, "height", &height_min, &height_max);
+  _get_fraction_range (structure, "framerate", &fps_n_min, &fps_d_min,
+      &fps_n_max, &fps_d_max);
+  fail_unless (width_min == 1);
+  fail_unless (width_max == RESTRICTED_CAPS_WIDTH);
+  fail_unless (height_min == 1);
+  fail_unless (height_max == RESTRICTED_CAPS_HEIGHT);
+  fail_unless (fps_n_min == 1);
+  fail_unless (fps_d_min == 1);
+  fail_unless (fps_n_max == RESTRICTED_CAPS_FPS_N);
+  fail_unless (fps_d_max == RESTRICTED_CAPS_FPS_D);
+  gst_caps_unref (caps);
+
+  /* query with a fixed filter */
+  filter = gst_caps_new_simple ("video/x-test-custom", "width", G_TYPE_INT,
+      RESTRICTED_CAPS_WIDTH, "height", G_TYPE_INT, RESTRICTED_CAPS_HEIGHT,
+      "framerate", GST_TYPE_FRACTION, RESTRICTED_CAPS_FPS_N,
+      RESTRICTED_CAPS_FPS_D, NULL);
+  caps = gst_pad_peer_query_caps (mysrcpad, filter);
+  fail_unless (caps != NULL);
+  structure = gst_caps_get_structure (caps, 0);
+  fail_unless (gst_structure_get_int (structure, "width", &width));
+  fail_unless (gst_structure_get_int (structure, "height", &height));
+  fail_unless (gst_structure_get_fraction (structure, "framerate", &fps_n,
+          &fps_d));
+  fail_unless (width == RESTRICTED_CAPS_WIDTH);
+  fail_unless (height == RESTRICTED_CAPS_HEIGHT);
+  fail_unless (fps_n == RESTRICTED_CAPS_FPS_N);
+  fail_unless (fps_d == RESTRICTED_CAPS_FPS_D);
+  gst_caps_unref (caps);
+  gst_caps_unref (filter);
+
+  /* query with a fixed filter that will lead to empty result */
+  filter = gst_caps_new_simple ("video/x-test-custom", "width", G_TYPE_INT,
+      1000, "height", G_TYPE_INT, 1000, "framerate", GST_TYPE_FRACTION,
+      1000, 1, NULL);
+  caps = gst_pad_peer_query_caps (mysrcpad, filter);
+  fail_unless (caps != NULL);
+  fail_unless (gst_caps_is_empty (caps));
+  gst_caps_unref (caps);
+  gst_caps_unref (filter);
+
+  cleanup_videodecodertest ();
+}
+
+GST_END_TEST;
+
+#define GETCAPS_CAPS_STR "video/x-test-custom, somefield=(string)getcaps"
+static GstCaps *
+_custom_video_decoder_getcaps (GstVideoDecoder * dec, GstCaps * filter)
+{
+  return gst_caps_from_string (GETCAPS_CAPS_STR);
+}
+
+GST_START_TEST (videodecoder_query_caps_with_custom_getcaps)
+{
+  GstCaps *caps;
+  GstVideoDecoderClass *klass;
+  GstCaps *expected_caps;
+
+  setup_videodecodertester (&sinktemplate_restricted, NULL);
+
+  klass = GST_VIDEO_DECODER_CLASS (GST_VIDEO_DECODER_GET_CLASS (dec));
+  klass->getcaps = _custom_video_decoder_getcaps;
+
+  gst_pad_set_active (mysrcpad, TRUE);
+  gst_element_set_state (dec, GST_STATE_PLAYING);
+  gst_pad_set_active (mysinkpad, TRUE);
+
+  caps = gst_pad_peer_query_caps (mysrcpad, NULL);
+  fail_unless (caps != NULL);
+
+  expected_caps = gst_caps_from_string (GETCAPS_CAPS_STR);
+  fail_unless (gst_caps_is_equal (expected_caps, caps));
+  gst_caps_unref (expected_caps);
+  gst_caps_unref (caps);
+
+  cleanup_videodecodertest ();
+}
+
+GST_END_TEST;
+
+
 static Suite *
 gst_videodecoder_suite (void)
 {
@@ -824,6 +1032,11 @@
   TCase *tc = tcase_create ("general");
 
   suite_add_tcase (s, tc);
+
+  tcase_add_test (tc, videodecoder_query_caps_with_fixed_caps_peer);
+  tcase_add_test (tc, videodecoder_query_caps_with_range_caps_peer);
+  tcase_add_test (tc, videodecoder_query_caps_with_custom_getcaps);
+
   tcase_add_test (tc, videodecoder_playback);
   tcase_add_test (tc, videodecoder_playback_with_events);
   tcase_add_test (tc, videodecoder_playback_first_frames_not_decoded);
diff --git a/tests/check/libs/videoencoder.c b/tests/check/libs/videoencoder.c
index e310f82..af7e06c 100644
--- a/tests/check/libs/videoencoder.c
+++ b/tests/check/libs/videoencoder.c
@@ -396,7 +396,7 @@
 {
   GstSegment segment;
   GstBuffer *buffer;
-  guint64 i;
+  guint i;
   GList *events_iter;
 
   setup_videoencodertester ();
diff --git a/tests/check/pipelines/capsfilter-renegotiation.c b/tests/check/pipelines/capsfilter-renegotiation.c
index 0ade9a2..7270936 100644
--- a/tests/check/pipelines/capsfilter-renegotiation.c
+++ b/tests/check/pipelines/capsfilter-renegotiation.c
@@ -104,13 +104,13 @@
   current_caps = NULL;
 
   pipeline = gst_parse_launch (launch_line, NULL);
-  g_assert (pipeline);
+  fail_unless (pipeline != NULL);
 
   capsfilter = gst_bin_get_by_name (GST_BIN (pipeline), "cf");
-  g_assert (capsfilter);
+  fail_unless (capsfilter != NULL);
 
   sink = gst_bin_get_by_name (GST_BIN (pipeline), "sink");
-  g_assert (sink);
+  fail_unless (sink != NULL);
 
   pad = gst_element_get_static_pad (sink, "sink");
   gst_pad_add_probe (pad, GST_PAD_PROBE_TYPE_BUFFER, buffer_probe, capsfilter,
@@ -125,8 +125,8 @@
   msg = gst_bus_timed_pop_filtered (bus, GST_CLOCK_TIME_NONE,
       GST_MESSAGE_EOS | GST_MESSAGE_ERROR);
 
-  g_assert (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_EOS);
-  g_assert (caps_change == 4);
+  fail_unless_equals_int (GST_MESSAGE_TYPE (msg), GST_MESSAGE_EOS);
+  fail_unless_equals_int (caps_change, 4);
 
   gst_element_set_state (pipeline, GST_STATE_NULL);
 
diff --git a/tests/check/pipelines/streamsynchronizer.c b/tests/check/pipelines/streamsynchronizer.c
new file mode 100644
index 0000000..59cfb7b
--- /dev/null
+++ b/tests/check/pipelines/streamsynchronizer.c
@@ -0,0 +1,166 @@
+/* GStreamer
+ * Copyright (C) 2014 Song Bing <b06498@freescale.com>
+ *
+ * streamsynchronizer.c: Unit test for streamsynchronizer
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#include <gst/check/gstcheck.h>
+
+static gboolean have_group_id = FALSE;
+static guint group_id_pre;
+static GMutex test_mutex;
+
+static GstPadProbeReturn
+event_probe (GstPad * pad, GstPadProbeInfo * info, gpointer udata)
+{
+  GstPadProbeReturn ret = GST_PAD_PROBE_OK;
+  GstEvent *event = GST_PAD_PROBE_INFO_DATA (info);
+
+  switch (GST_EVENT_TYPE (event)) {
+    case GST_EVENT_STREAM_START:{
+      guint group_id;
+
+      g_mutex_lock (&test_mutex);
+      fail_unless (gst_event_parse_group_id (event, &group_id));
+
+      if (have_group_id) {
+        if (group_id_pre != group_id) {
+          event = gst_event_copy (event);
+          gst_event_set_group_id (event, group_id_pre);
+          gst_event_replace ((GstEvent **) & info->data, event);
+          gst_event_unref (event);
+        }
+      } else {
+        group_id_pre = group_id;
+        have_group_id = TRUE;
+      }
+      g_mutex_unlock (&test_mutex);
+      break;
+    }
+    default:
+      break;
+  }
+
+  return ret;
+}
+
+static void
+run_streamsynchronizer_handle_eos (const gchar * launch_line)
+{
+  GstElement *pipeline;
+  GstElement *audiosrc;
+  GstElement *videosrc;
+  GstMessage *msg;
+  GstPad *pad;
+  GstBus *bus;
+
+  pipeline = gst_parse_launch (launch_line, NULL);
+  fail_unless (pipeline != NULL);
+
+  videosrc = gst_bin_get_by_name (GST_BIN (pipeline), "videosrc");
+  fail_unless (videosrc != NULL);
+
+  pad = gst_element_get_static_pad (videosrc, "src");
+  gst_pad_add_probe (pad, GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM, event_probe,
+      videosrc, NULL);
+  gst_object_unref (pad);
+  gst_object_unref (videosrc);
+
+  audiosrc = gst_bin_get_by_name (GST_BIN (pipeline), "audiosrc");
+  fail_unless (audiosrc != NULL);
+
+  pad = gst_element_get_static_pad (audiosrc, "src");
+  gst_pad_add_probe (pad, GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM, event_probe,
+      audiosrc, NULL);
+  gst_object_unref (pad);
+  gst_object_unref (audiosrc);
+
+  bus = gst_pipeline_get_bus (GST_PIPELINE (pipeline));
+
+  fail_unless (gst_element_set_state (pipeline, GST_STATE_PLAYING) !=
+      GST_STATE_CHANGE_FAILURE);
+
+  msg = gst_bus_timed_pop_filtered (bus, GST_CLOCK_TIME_NONE,
+      GST_MESSAGE_ASYNC_DONE | GST_MESSAGE_ERROR);
+
+  fail_unless_equals_int (GST_MESSAGE_TYPE (msg), GST_MESSAGE_ASYNC_DONE);
+  gst_message_unref (msg);
+
+  fail_unless_equals_int (gst_element_get_state (pipeline, NULL, NULL,
+          GST_CLOCK_TIME_NONE), GST_STATE_CHANGE_SUCCESS);
+
+  fail_unless (gst_element_set_state (pipeline, GST_STATE_PAUSED) !=
+      GST_STATE_CHANGE_FAILURE);
+
+  /* can't ensure can received async-done message when call state change very quickly. */
+  fail_unless_equals_int (gst_element_get_state (pipeline, NULL, NULL,
+          GST_CLOCK_TIME_NONE), GST_STATE_CHANGE_SUCCESS);
+
+  fail_unless (gst_element_set_state (pipeline, GST_STATE_PLAYING) !=
+      GST_STATE_CHANGE_FAILURE);
+
+  fail_unless_equals_int (gst_element_get_state (pipeline, NULL, NULL,
+          GST_CLOCK_TIME_NONE), GST_STATE_CHANGE_SUCCESS);
+
+  gst_element_set_state (pipeline, GST_STATE_NULL);
+
+  gst_object_unref (bus);
+  gst_object_unref (pipeline);
+}
+
+GST_START_TEST (test_streamsynchronizer_normal)
+{
+  run_streamsynchronizer_handle_eos ("videotestsrc name=videosrc ! "
+      "streamsynchronizer name=streamsync audiotestsrc name=audiosrc ! "
+      "streamsync. streamsync. ! fakesink sync=true streamsync. ! fakesink sync=true");
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_streamsynchronizer_track_with_less_data)
+{
+  run_streamsynchronizer_handle_eos ("videotestsrc name=videosrc ! "
+      "streamsynchronizer name=streamsync audiotestsrc name=audiosrc num-buffers=1 ! "
+      "streamsync. streamsync. ! fakesink sync=true streamsync. ! fakesink sync=true");
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_streamsynchronizer_track_without_data)
+{
+  run_streamsynchronizer_handle_eos ("videotestsrc name=videosrc ! "
+      "streamsynchronizer name=streamsync audiotestsrc name=audiosrc num-buffers=0 ! "
+      "streamsync. streamsync. ! fakesink sync=true streamsync. ! fakesink sync=true");
+}
+
+GST_END_TEST;
+
+static Suite *
+streamsynchronizer_handle_eos_suite (void)
+{
+  Suite *s = suite_create ("streamsynchronizer");
+  TCase *tc_chain = tcase_create ("general");
+
+  suite_add_tcase (s, tc_chain);
+  tcase_add_test (tc_chain, test_streamsynchronizer_normal);
+  tcase_add_test (tc_chain, test_streamsynchronizer_track_with_less_data);
+  tcase_add_test (tc_chain, test_streamsynchronizer_track_without_data);
+  return s;
+}
+
+GST_CHECK_MAIN (streamsynchronizer_handle_eos);
diff --git a/tests/check/pipelines/tcp.c b/tests/check/pipelines/tcp.c
new file mode 100644
index 0000000..08733b9
--- /dev/null
+++ b/tests/check/pipelines/tcp.c
@@ -0,0 +1,379 @@
+/* GStreamer
+ *
+ * Copyright (C) 2014 William Manley <will@williammanley.net>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#include <unistd.h>
+#include <sys/socket.h>
+
+#include <gio/gio.h>
+#include <gst/check/gstcheck.h>
+#include <gst/app/gstappsink.h>
+#include <gst/app/gstappsrc.h>
+#include <gst/net/gstnetcontrolmessagemeta.h>
+
+#ifdef HAVE_GIO_UNIX_2_0
+#include <gio/gunixfdmessage.h>
+#endif /*  HAVE_GIO_UNIX_2_0 */
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>
+
+static gboolean
+g_socketpair (GSocketFamily family, GSocketType type, GSocketProtocol protocol,
+    GSocket * gsv[2], GError ** error);
+
+typedef struct
+{
+  GstElement *sink;
+  GstElement *src;
+
+  GstPipeline *sink_pipeline;
+  GstPipeline *src_pipeline;
+  GstAppSrc *sink_src;
+  GstAppSink *src_sink;
+} SymmetryTest;
+
+static void
+symmetry_test_setup (SymmetryTest * st, GstElement * sink, GstElement * src)
+{
+  GstCaps *caps;
+  st->sink = sink;
+  g_object_set (sink, "sync", FALSE, NULL);
+  st->src = src;
+
+  st->sink_pipeline = GST_PIPELINE (gst_pipeline_new (NULL));
+  st->src_pipeline = GST_PIPELINE (gst_pipeline_new (NULL));
+
+  st->sink_src = GST_APP_SRC (gst_element_factory_make ("appsrc", NULL));
+  fail_unless (st->sink_src != NULL);
+  caps = gst_caps_from_string ("application/x-gst-check");
+  gst_app_src_set_caps (st->sink_src, caps);
+  gst_caps_unref (caps);
+
+  gst_bin_add_many (GST_BIN (st->sink_pipeline), GST_ELEMENT (st->sink_src),
+      st->sink, NULL);
+  fail_unless (gst_element_link_many (GST_ELEMENT (st->sink_src), st->sink,
+          NULL));
+
+  st->src_sink = GST_APP_SINK (gst_element_factory_make ("appsink", NULL));
+  fail_unless (st->src_sink != NULL);
+  gst_bin_add_many (GST_BIN (st->src_pipeline), st->src,
+      GST_ELEMENT (st->src_sink), NULL);
+  fail_unless (gst_element_link_many (st->src, GST_ELEMENT (st->src_sink),
+          NULL));
+
+  gst_element_set_state (GST_ELEMENT (st->sink_pipeline), GST_STATE_PLAYING);
+  gst_element_set_state (GST_ELEMENT (st->src_pipeline), GST_STATE_PLAYING);
+}
+
+static void
+symmetry_test_teardown (SymmetryTest * st)
+{
+  fail_unless (gst_element_set_state (GST_ELEMENT (st->sink_pipeline),
+          GST_STATE_NULL) != GST_STATE_CHANGE_FAILURE);
+  fail_unless (gst_element_set_state (GST_ELEMENT (st->src_pipeline),
+          GST_STATE_NULL) != GST_STATE_CHANGE_FAILURE);
+
+  gst_object_unref (st->sink_pipeline);
+  gst_object_unref (st->src_pipeline);
+
+  memset (st, 0, sizeof (*st));
+}
+
+static void
+symmetry_test_assert_passthrough (SymmetryTest * st, GstBuffer * in)
+{
+  gpointer copy;
+  gsize data_size;
+  GstSample *out;
+
+  gst_buffer_extract_dup (in, 0, -1, &copy, &data_size);
+
+  fail_unless (gst_app_src_push_buffer (st->sink_src, in) == GST_FLOW_OK);
+  in = NULL;
+  out = gst_app_sink_pull_sample (st->src_sink);
+  fail_unless (out != NULL);
+
+  fail_unless (gst_buffer_get_size (gst_sample_get_buffer (out)) == data_size);
+  fail_unless (gst_buffer_memcmp (gst_sample_get_buffer (out), 0, copy,
+          data_size) == 0);
+  g_free (copy);
+  gst_sample_unref (out);
+}
+
+static gboolean
+g_socketpair (GSocketFamily family, GSocketType type, GSocketProtocol protocol,
+    GSocket * gsv[2], GError ** error)
+{
+  int ret;
+  int sv[2];
+
+  ret = socketpair (family, type, protocol, sv);
+  if (ret != 0) {
+    g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED, "socketpair failed: %s",
+        g_strerror (errno));
+    return FALSE;
+  }
+
+  gsv[0] = g_socket_new_from_fd (sv[0], error);
+  if (gsv[0] == NULL) {
+    close (sv[0]);
+    close (sv[1]);
+    return FALSE;
+  }
+  gsv[1] = g_socket_new_from_fd (sv[1], error);
+  if (gsv[1] == NULL) {
+    g_object_unref (gsv[0]);
+    gsv[0] = NULL;
+    close (sv[1]);
+    return FALSE;
+  }
+  return TRUE;
+}
+
+static void
+setup_multisocketsink_and_socketsrc (SymmetryTest * st)
+{
+  GSocket *sockets[2] = { NULL, NULL };
+  GError *err = NULL;
+
+  st->sink = gst_check_setup_element ("multisocketsink");
+  st->src = gst_check_setup_element ("socketsrc");
+
+  fail_unless (g_socketpair (G_SOCKET_FAMILY_UNIX,
+          G_SOCKET_TYPE_STREAM | SOCK_CLOEXEC, G_SOCKET_PROTOCOL_DEFAULT,
+          sockets, &err));
+
+  g_object_set (st->src, "socket", sockets[0], NULL);
+  g_object_unref (sockets[0]);
+  sockets[0] = NULL;
+
+  symmetry_test_setup (st, st->sink, st->src);
+
+  g_signal_emit_by_name (st->sink, "add", sockets[1], NULL);
+  g_object_unref (sockets[1]);
+  sockets[1] = NULL;
+}
+
+GST_START_TEST (test_that_socketsrc_and_multisocketsink_are_symmetrical)
+{
+  SymmetryTest st = { 0 };
+  setup_multisocketsink_and_socketsrc (&st);
+  symmetry_test_assert_passthrough (&st,
+      gst_buffer_new_wrapped (g_strdup ("hello"), 5));
+  symmetry_test_teardown (&st);
+}
+
+GST_END_TEST;
+
+
+GST_START_TEST (test_that_tcpclientsink_and_tcpserversrc_are_symmetrical)
+{
+  SymmetryTest st = { 0 };
+  GstElement *serversrc = gst_check_setup_element ("tcpserversrc");
+
+  gst_element_set_state (serversrc, GST_STATE_PAUSED);
+  symmetry_test_setup (&st, gst_check_setup_element ("tcpclientsink"),
+      serversrc);
+
+  symmetry_test_assert_passthrough (&st,
+      gst_buffer_new_wrapped (g_strdup ("hello"), 5));
+
+  symmetry_test_teardown (&st);
+}
+
+GST_END_TEST;
+
+
+GST_START_TEST (test_that_tcpserversink_and_tcpclientsrc_are_symmetrical)
+{
+  SymmetryTest st = { 0 };
+
+  symmetry_test_setup (&st, gst_check_setup_element ("tcpserversink"),
+      gst_check_setup_element ("tcpclientsrc"));
+
+  symmetry_test_assert_passthrough (&st,
+      gst_buffer_new_wrapped (g_strdup ("hello"), 5));
+  symmetry_test_teardown (&st);
+}
+
+GST_END_TEST;
+
+static void
+on_connection_closed (GstElement * socketsrc, gpointer user_data)
+{
+  GSocket *socket = (GSocket *) user_data;
+
+  g_object_set (socketsrc, "socket", socket, NULL);
+}
+
+GST_START_TEST (test_that_we_can_provide_new_socketsrc_sockets_during_signal)
+{
+  GSocket *sockets[4] = { NULL, NULL };
+
+  GstPipeline *pipeline = NULL;
+  GstAppSink *appsink = NULL;
+  GstElement *socketsrc = NULL;
+  GstSample *sample = NULL;
+
+  socketsrc = gst_check_setup_element ("socketsrc");
+
+  fail_unless (g_socketpair (G_SOCKET_FAMILY_UNIX,
+          G_SOCKET_TYPE_STREAM | SOCK_CLOEXEC, G_SOCKET_PROTOCOL_DEFAULT,
+          &sockets[0], NULL));
+
+  fail_unless (g_socket_send (sockets[0], "hello", 5, NULL, NULL) == 5);
+  fail_unless (g_socket_shutdown (sockets[0], FALSE, TRUE, NULL));
+
+  fail_unless (g_socketpair (G_SOCKET_FAMILY_UNIX,
+          G_SOCKET_TYPE_STREAM | SOCK_CLOEXEC, G_SOCKET_PROTOCOL_DEFAULT,
+          &sockets[2], NULL));
+  fail_unless (g_socket_send (sockets[2], "goodbye", 7, NULL, NULL) == 7);
+  fail_unless (g_socket_shutdown (sockets[2], FALSE, TRUE, NULL));
+
+  g_object_set (socketsrc, "socket", sockets[1], NULL);
+
+  g_signal_connect (socketsrc, "connection-closed-by-peer",
+      G_CALLBACK (on_connection_closed), sockets[3]);
+
+  pipeline = (GstPipeline *) gst_pipeline_new (NULL);
+  appsink = GST_APP_SINK (gst_check_setup_element ("appsink"));
+  gst_bin_add_many (GST_BIN (pipeline), socketsrc, GST_ELEMENT (appsink), NULL);
+  fail_unless (gst_element_link_many (socketsrc, GST_ELEMENT (appsink), NULL));
+
+  gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_PLAYING);
+
+  fail_unless ((sample = gst_app_sink_pull_sample (appsink)) != NULL);
+  gst_buffer_memcmp (gst_sample_get_buffer (sample), 0, "hello", 5);
+  gst_sample_unref (sample);
+
+  fail_unless ((sample = gst_app_sink_pull_sample (appsink)) != NULL);
+  gst_buffer_memcmp (gst_sample_get_buffer (sample), 0, "goodbye", 7);
+  gst_sample_unref (sample);
+
+  fail_unless (NULL == gst_app_sink_pull_sample (appsink));
+  fail_unless (gst_app_sink_is_eos (appsink));
+
+  gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_NULL);
+  g_clear_object (&sockets[0]);
+  g_clear_object (&sockets[1]);
+  g_clear_object (&sockets[2]);
+  g_clear_object (&sockets[3]);
+  gst_object_unref (pipeline);
+}
+
+GST_END_TEST
+
+#ifdef HAVE_GIO_UNIX_2_0
+static GSocketControlMessage *
+get_control_message_meta (GstBuffer * buf)
+{
+  GstMeta *meta;
+  gpointer iter_state = NULL;
+
+  while ((meta = gst_buffer_iterate_meta (buf, &iter_state)) != NULL) {
+    if (meta->info->api == GST_NET_CONTROL_MESSAGE_META_API_TYPE)
+      return ((GstNetControlMessageMeta *) meta)->message;
+  }
+  fail ("Expected GSocketControlMessage attached to buffer");
+  return NULL;
+}
+
+
+GST_START_TEST (test_that_multisocketsink_and_socketsrc_preserve_meta)
+{
+  GstBuffer *buf;
+  GSocketControlMessage *msg;
+  SymmetryTest st = { 0 };
+  char tmpfilename[] = "/tmp/tcp-test.XXXXXX";
+  GstSample *out;
+  int orig_fd, *new_fds, new_fds_len;
+  struct stat orig_stat, new_stat;
+
+  setup_multisocketsink_and_socketsrc (&st);
+
+  orig_fd = mkstemp (tmpfilename);
+  fail_unless (orig_fd > 0);
+  fail_unless (unlink (tmpfilename) == 0);
+  fstat (orig_fd, &orig_stat);
+
+  msg = g_unix_fd_message_new ();
+  fail_unless (g_unix_fd_message_append_fd ((GUnixFDMessage *) msg, orig_fd,
+          NULL));
+  close (orig_fd);
+  orig_fd = -1;
+
+  buf = gst_buffer_new_wrapped (g_strdup ("hello"), 5);
+  gst_buffer_add_net_control_message_meta (buf, msg);
+  g_clear_object (&msg);
+
+  fail_unless (gst_app_src_push_buffer (st.sink_src, buf) == GST_FLOW_OK);
+  buf = NULL;
+
+  out = gst_app_sink_pull_sample (st.src_sink);
+  fail_unless (out != NULL);
+
+  fail_unless (gst_buffer_get_size (gst_sample_get_buffer (out)) == 5);
+  fail_unless (gst_buffer_memcmp (gst_sample_get_buffer (out), 0, "hello",
+          5) == 0);
+
+  msg = get_control_message_meta (gst_sample_get_buffer (out));
+  fail_unless (g_socket_control_message_get_msg_type (msg) == SCM_RIGHTS);
+  new_fds = g_unix_fd_message_steal_fds ((GUnixFDMessage *) msg, &new_fds_len);
+  fail_unless (new_fds_len == 1);
+
+  fstat (new_fds[0], &new_stat);
+  fail_unless (orig_stat.st_ino, new_stat.st_ino);
+
+  close (new_fds[0]);
+  g_free (new_fds);
+
+  gst_sample_unref (out);
+
+  symmetry_test_teardown (&st);
+}
+
+GST_END_TEST;
+#endif /* HAVE_GIO_UNIX_2_0 */
+
+static Suite *
+socketintegrationtest_suite (void)
+{
+  Suite *s = suite_create ("socketintegrationtest");
+  TCase *tc_chain = tcase_create ("general");
+
+  suite_add_tcase (s, tc_chain);
+  tcase_add_test (tc_chain,
+      test_that_socketsrc_and_multisocketsink_are_symmetrical);
+  tcase_add_test (tc_chain,
+      test_that_tcpclientsink_and_tcpserversrc_are_symmetrical);
+  tcase_add_test (tc_chain,
+      test_that_tcpserversink_and_tcpclientsrc_are_symmetrical);
+  tcase_add_test (tc_chain,
+      test_that_we_can_provide_new_socketsrc_sockets_during_signal);
+#ifdef HAVE_GIO_UNIX_2_0
+  tcase_add_test (tc_chain,
+      test_that_multisocketsink_and_socketsrc_preserve_meta);
+#endif /* HAVE_GIO_UNIX_2_0 */
+
+  return s;
+}
+
+GST_CHECK_MAIN (socketintegrationtest);
diff --git a/tests/examples/Makefile.in b/tests/examples/Makefile.in
index 1a686ff..e6ce9b5 100644
--- a/tests/examples/Makefile.in
+++ b/tests/examples/Makefile.in
@@ -106,7 +106,6 @@
 	$(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-x11.m4 \
 	$(top_srcdir)/common/m4/gst.m4 \
 	$(top_srcdir)/common/m4/gtk-doc.m4 \
 	$(top_srcdir)/common/m4/introspection.m4 \
@@ -266,6 +265,8 @@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_2_0_CFLAGS = @GIO_UNIX_2_0_CFLAGS@
+GIO_UNIX_2_0_LIBS = @GIO_UNIX_2_0_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
@@ -295,6 +296,8 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
+GST_NET_CFLAGS = @GST_NET_CFLAGS@
+GST_NET_LIBS = @GST_NET_LIBS@
 GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
 GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
@@ -322,7 +325,6 @@
 GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
 GTK_X11_LIBS = @GTK_X11_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
-HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -426,13 +428,12 @@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-XMKMF = @XMKMF@
+XSHM_CFLAGS = @XSHM_CFLAGS@
 XSHM_LIBS = @XSHM_LIBS@
+XVIDEO_CFLAGS = @XVIDEO_CFLAGS@
 XVIDEO_LIBS = @XVIDEO_LIBS@
 X_CFLAGS = @X_CFLAGS@
-X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
-X_PRE_LIBS = @X_PRE_LIBS@
 ZLIB_CFLAGS = @ZLIB_CFLAGS@
 ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
diff --git a/tests/examples/app/Makefile.am b/tests/examples/app/Makefile.am
index 3679e28..689ee2f 100644
--- a/tests/examples/app/Makefile.am
+++ b/tests/examples/app/Makefile.am
@@ -1,6 +1,6 @@
 
 noinst_PROGRAMS = appsrc_ex appsrc-stream appsrc-stream2 appsrc-ra \
-		  appsrc-seekable appsink-src
+		  appsrc-seekable appsink-src appsink-src2
 
 appsrc_ex_SOURCES = appsrc_ex.c
 appsrc_ex_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS)
@@ -30,3 +30,8 @@
     $(top_builddir)/gst-libs/gst/app/libgstapp-@GST_API_VERSION@.la \
     $(GST_BASE_LIBS) $(GST_LIBS)
 
+appsink_src2_SOURCES = appsink-src2.c
+appsink_src2_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS)
+appsink_src2_LDADD = \
+    $(top_builddir)/gst-libs/gst/app/libgstapp-@GST_API_VERSION@.la \
+    $(GST_BASE_LIBS) $(GST_LIBS)
diff --git a/tests/examples/app/Makefile.in b/tests/examples/app/Makefile.in
index be519d0..d9238c1 100644
--- a/tests/examples/app/Makefile.in
+++ b/tests/examples/app/Makefile.in
@@ -81,7 +81,8 @@
 target_triplet = @target@
 noinst_PROGRAMS = appsrc_ex$(EXEEXT) appsrc-stream$(EXEEXT) \
 	appsrc-stream2$(EXEEXT) appsrc-ra$(EXEEXT) \
-	appsrc-seekable$(EXEEXT) appsink-src$(EXEEXT)
+	appsrc-seekable$(EXEEXT) appsink-src$(EXEEXT) \
+	appsink-src2$(EXEEXT)
 subdir = tests/examples/app
 DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
 	$(top_srcdir)/depcomp
@@ -105,7 +106,6 @@
 	$(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-x11.m4 \
 	$(top_srcdir)/common/m4/gst.m4 \
 	$(top_srcdir)/common/m4/gtk-doc.m4 \
 	$(top_srcdir)/common/m4/introspection.m4 \
@@ -139,6 +139,13 @@
 appsink_src_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(appsink_src_CFLAGS) \
 	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+am_appsink_src2_OBJECTS = appsink_src2-appsink-src2.$(OBJEXT)
+appsink_src2_OBJECTS = $(am_appsink_src2_OBJECTS)
+appsink_src2_DEPENDENCIES = $(top_builddir)/gst-libs/gst/app/libgstapp-@GST_API_VERSION@.la \
+	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+appsink_src2_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(appsink_src2_CFLAGS) \
+	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
 am_appsrc_ra_OBJECTS = appsrc_ra-appsrc-ra.$(OBJEXT)
 appsrc_ra_OBJECTS = $(am_appsrc_ra_OBJECTS)
 appsrc_ra_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
@@ -210,12 +217,14 @@
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD    " $@;
 am__v_CCLD_1 = 
-SOURCES = $(appsink_src_SOURCES) $(appsrc_ra_SOURCES) \
-	$(appsrc_seekable_SOURCES) $(appsrc_stream_SOURCES) \
-	$(appsrc_stream2_SOURCES) $(appsrc_ex_SOURCES)
-DIST_SOURCES = $(appsink_src_SOURCES) $(appsrc_ra_SOURCES) \
-	$(appsrc_seekable_SOURCES) $(appsrc_stream_SOURCES) \
-	$(appsrc_stream2_SOURCES) $(appsrc_ex_SOURCES)
+SOURCES = $(appsink_src_SOURCES) $(appsink_src2_SOURCES) \
+	$(appsrc_ra_SOURCES) $(appsrc_seekable_SOURCES) \
+	$(appsrc_stream_SOURCES) $(appsrc_stream2_SOURCES) \
+	$(appsrc_ex_SOURCES)
+DIST_SOURCES = $(appsink_src_SOURCES) $(appsink_src2_SOURCES) \
+	$(appsrc_ra_SOURCES) $(appsrc_seekable_SOURCES) \
+	$(appsrc_stream_SOURCES) $(appsrc_stream2_SOURCES) \
+	$(appsrc_ex_SOURCES)
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
     n|no|NO) false;; \
@@ -300,6 +309,8 @@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_2_0_CFLAGS = @GIO_UNIX_2_0_CFLAGS@
+GIO_UNIX_2_0_LIBS = @GIO_UNIX_2_0_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
@@ -329,6 +340,8 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
+GST_NET_CFLAGS = @GST_NET_CFLAGS@
+GST_NET_LIBS = @GST_NET_LIBS@
 GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
 GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
@@ -356,7 +369,6 @@
 GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
 GTK_X11_LIBS = @GTK_X11_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
-HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -460,13 +472,12 @@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-XMKMF = @XMKMF@
+XSHM_CFLAGS = @XSHM_CFLAGS@
 XSHM_LIBS = @XSHM_LIBS@
+XVIDEO_CFLAGS = @XVIDEO_CFLAGS@
 XVIDEO_LIBS = @XVIDEO_LIBS@
 X_CFLAGS = @X_CFLAGS@
-X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
-X_PRE_LIBS = @X_PRE_LIBS@
 ZLIB_CFLAGS = @ZLIB_CFLAGS@
 ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
@@ -555,6 +566,12 @@
     $(top_builddir)/gst-libs/gst/app/libgstapp-@GST_API_VERSION@.la \
     $(GST_BASE_LIBS) $(GST_LIBS)
 
+appsink_src2_SOURCES = appsink-src2.c
+appsink_src2_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS)
+appsink_src2_LDADD = \
+    $(top_builddir)/gst-libs/gst/app/libgstapp-@GST_API_VERSION@.la \
+    $(GST_BASE_LIBS) $(GST_LIBS)
+
 all: all-am
 
 .SUFFIXES:
@@ -603,6 +620,10 @@
 	@rm -f appsink-src$(EXEEXT)
 	$(AM_V_CCLD)$(appsink_src_LINK) $(appsink_src_OBJECTS) $(appsink_src_LDADD) $(LIBS)
 
+appsink-src2$(EXEEXT): $(appsink_src2_OBJECTS) $(appsink_src2_DEPENDENCIES) $(EXTRA_appsink_src2_DEPENDENCIES) 
+	@rm -f appsink-src2$(EXEEXT)
+	$(AM_V_CCLD)$(appsink_src2_LINK) $(appsink_src2_OBJECTS) $(appsink_src2_LDADD) $(LIBS)
+
 appsrc-ra$(EXEEXT): $(appsrc_ra_OBJECTS) $(appsrc_ra_DEPENDENCIES) $(EXTRA_appsrc_ra_DEPENDENCIES) 
 	@rm -f appsrc-ra$(EXEEXT)
 	$(AM_V_CCLD)$(appsrc_ra_LINK) $(appsrc_ra_OBJECTS) $(appsrc_ra_LDADD) $(LIBS)
@@ -630,6 +651,7 @@
 	-rm -f *.tab.c
 
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/appsink_src-appsink-src.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/appsink_src2-appsink-src2.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/appsrc_ex-appsrc_ex.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/appsrc_ra-appsrc-ra.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/appsrc_seekable-appsrc-seekable.Po@am__quote@
@@ -674,6 +696,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) $(appsink_src_CFLAGS) $(CFLAGS) -c -o appsink_src-appsink-src.obj `if test -f 'appsink-src.c'; then $(CYGPATH_W) 'appsink-src.c'; else $(CYGPATH_W) '$(srcdir)/appsink-src.c'; fi`
 
+appsink_src2-appsink-src2.o: appsink-src2.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(appsink_src2_CFLAGS) $(CFLAGS) -MT appsink_src2-appsink-src2.o -MD -MP -MF $(DEPDIR)/appsink_src2-appsink-src2.Tpo -c -o appsink_src2-appsink-src2.o `test -f 'appsink-src2.c' || echo '$(srcdir)/'`appsink-src2.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/appsink_src2-appsink-src2.Tpo $(DEPDIR)/appsink_src2-appsink-src2.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='appsink-src2.c' object='appsink_src2-appsink-src2.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) $(appsink_src2_CFLAGS) $(CFLAGS) -c -o appsink_src2-appsink-src2.o `test -f 'appsink-src2.c' || echo '$(srcdir)/'`appsink-src2.c
+
+appsink_src2-appsink-src2.obj: appsink-src2.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(appsink_src2_CFLAGS) $(CFLAGS) -MT appsink_src2-appsink-src2.obj -MD -MP -MF $(DEPDIR)/appsink_src2-appsink-src2.Tpo -c -o appsink_src2-appsink-src2.obj `if test -f 'appsink-src2.c'; then $(CYGPATH_W) 'appsink-src2.c'; else $(CYGPATH_W) '$(srcdir)/appsink-src2.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/appsink_src2-appsink-src2.Tpo $(DEPDIR)/appsink_src2-appsink-src2.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='appsink-src2.c' object='appsink_src2-appsink-src2.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) $(appsink_src2_CFLAGS) $(CFLAGS) -c -o appsink_src2-appsink-src2.obj `if test -f 'appsink-src2.c'; then $(CYGPATH_W) 'appsink-src2.c'; else $(CYGPATH_W) '$(srcdir)/appsink-src2.c'; fi`
+
 appsrc_ra-appsrc-ra.o: appsrc-ra.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(appsrc_ra_CFLAGS) $(CFLAGS) -MT appsrc_ra-appsrc-ra.o -MD -MP -MF $(DEPDIR)/appsrc_ra-appsrc-ra.Tpo -c -o appsrc_ra-appsrc-ra.o `test -f 'appsrc-ra.c' || echo '$(srcdir)/'`appsrc-ra.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/appsrc_ra-appsrc-ra.Tpo $(DEPDIR)/appsrc_ra-appsrc-ra.Po
diff --git a/tests/examples/app/appsink-src.c b/tests/examples/app/appsink-src.c
index ecf7f05..0c31c4a 100644
--- a/tests/examples/app/appsink-src.c
+++ b/tests/examples/app/appsink-src.c
@@ -24,6 +24,7 @@
   GstSample *sample;
   GstBuffer *app_buffer, *buffer;
   GstElement *source;
+  GstFlowReturn ret;
 
   /* get the sample from appsink */
   sample = gst_app_sink_pull_sample (GST_APP_SINK (elt));
@@ -37,7 +38,10 @@
 
   /* get source an push new buffer */
   source = gst_bin_get_by_name (GST_BIN (data->sink), "testsource");
-  return gst_app_src_push_buffer (GST_APP_SRC (source), app_buffer);
+  ret = gst_app_src_push_buffer (GST_APP_SRC (source), app_buffer);
+  gst_object_unref (source);
+
+  return ret;
 }
 
 /* called when we get a GstMessage from the source pipeline when we get EOS, we
@@ -52,6 +56,7 @@
       g_print ("The source got dry\n");
       source = gst_bin_get_by_name (GST_BIN (data->sink), "testsource");
       gst_app_src_end_of_stream (GST_APP_SRC (source));
+      gst_object_unref (source);
       break;
     case GST_MESSAGE_ERROR:
       g_print ("Received error\n");
diff --git a/tests/examples/app/appsink-src2.c b/tests/examples/app/appsink-src2.c
new file mode 100644
index 0000000..77ea4d4
--- /dev/null
+++ b/tests/examples/app/appsink-src2.c
@@ -0,0 +1,177 @@
+#include <gst/gst.h>
+
+#include <string.h>
+
+#include <gst/app/gstappsrc.h>
+#include <gst/app/gstappsink.h>
+
+/*
+ * In this sample we show the usage of gst_app_src_push_sample in push 
+ * mode, this method set the appsrc caps based on the caps from the sample 
+ *
+ */
+
+typedef struct
+{
+  GMainLoop *loop;
+  GstElement *source;
+  GstElement *sink;
+} ProgramData;
+
+/* called when the appsink notifies us that there is a new buffer ready for
+ * processing */
+
+static GstFlowReturn
+on_new_sample_from_sink (GstElement * elt, ProgramData * data)
+{
+  GstSample *sample;
+  GstElement *source;
+  GstFlowReturn ret;
+
+  /* get the sample from appsink */
+  sample = gst_app_sink_pull_sample (GST_APP_SINK (elt));
+
+  /* get source an push new sample */
+  source = gst_bin_get_by_name (GST_BIN (data->sink), "testsource");
+  ret = gst_app_src_push_sample (GST_APP_SRC (source), sample);
+  gst_object_unref (source);
+
+  /* we don't need the appsink sample anymore */
+  gst_sample_unref (sample);
+
+  return ret;
+}
+
+/* called when we get a GstMessage from the source pipeline when we get EOS, we
+ * notify the appsrc of it. */
+static gboolean
+on_source_message (GstBus * bus, GstMessage * message, ProgramData * data)
+{
+  GstElement *source;
+
+  switch (GST_MESSAGE_TYPE (message)) {
+    case GST_MESSAGE_EOS:
+      g_print ("The source got dry\n");
+      source = gst_bin_get_by_name (GST_BIN (data->sink), "testsource");
+      gst_app_src_end_of_stream (GST_APP_SRC (source));
+      gst_object_unref (source);
+      break;
+    case GST_MESSAGE_ERROR:
+      g_print ("Received error\n");
+      g_main_loop_quit (data->loop);
+      break;
+    default:
+      break;
+  }
+  return TRUE;
+}
+
+/* called when we get a GstMessage from the sink pipeline when we get EOS, we
+ * exit the mainloop and this testapp. */
+static gboolean
+on_sink_message (GstBus * bus, GstMessage * message, ProgramData * data)
+{
+  /* nil */
+  switch (GST_MESSAGE_TYPE (message)) {
+    case GST_MESSAGE_EOS:
+      g_print ("Finished playback\n");
+      g_main_loop_quit (data->loop);
+      break;
+    case GST_MESSAGE_ERROR:
+      g_print ("Received error\n");
+      g_main_loop_quit (data->loop);
+      break;
+    default:
+      break;
+  }
+  return TRUE;
+}
+
+int
+main (int argc, char *argv[])
+{
+  gchar *filename = NULL;
+  ProgramData *data = NULL;
+  gchar *string = NULL;
+  GstBus *bus = NULL;
+  GstElement *testsink = NULL;
+  GstElement *testsource = NULL;
+
+  gst_init (&argc, &argv);
+
+  data = g_new0 (ProgramData, 1);
+
+  data->loop = g_main_loop_new (NULL, FALSE);
+
+  /* setting up source pipeline, we read from a file and convert to our desired
+   * caps. */
+  string =
+      g_strdup_printf
+      ("audiotestsrc num-buffers=200 ! wavenc ! wavparse ! appsink name=testsink");
+  g_free (filename);
+  data->source = gst_parse_launch (string, NULL);
+  g_free (string);
+
+  if (data->source == NULL) {
+    g_print ("Bad source\n");
+    return -1;
+  }
+
+  /* to be notified of messages from this pipeline, mostly EOS */
+  bus = gst_element_get_bus (data->source);
+  gst_bus_add_watch (bus, (GstBusFunc) on_source_message, data);
+  gst_object_unref (bus);
+
+  /* we use appsink in push mode, it sends us a signal when data is available
+   * and we pull out the data in the signal callback. We want the appsink to
+   * push as fast as it can, hence the sync=false */
+  testsink = gst_bin_get_by_name (GST_BIN (data->source), "testsink");
+  g_object_set (G_OBJECT (testsink), "emit-signals", TRUE, "sync", FALSE, NULL);
+  g_signal_connect (testsink, "new-sample",
+      G_CALLBACK (on_new_sample_from_sink), data);
+  gst_object_unref (testsink);
+
+  /* setting up sink pipeline, we push audio data into this pipeline that will
+   * then play it back using the default audio sink. */
+  string =
+      g_strdup_printf
+      ("appsrc name=testsource ! audioconvert ! audioresample ! autoaudiosink");
+  data->sink = gst_parse_launch (string, NULL);
+  g_free (string);
+
+  if (data->sink == NULL) {
+    g_print ("Bad sink\n");
+    return -1;
+  }
+
+  testsource = gst_bin_get_by_name (GST_BIN (data->sink), "testsource");
+  /* configure for time-based format */
+  g_object_set (testsource, "format", GST_FORMAT_TIME, NULL);
+  /* uncomment the next line to block when appsrc has buffered enough */
+  /* g_object_set (testsource, "block", TRUE, NULL); */
+  gst_object_unref (testsource);
+
+  bus = gst_element_get_bus (data->sink);
+  gst_bus_add_watch (bus, (GstBusFunc) on_sink_message, data);
+  gst_object_unref (bus);
+
+  /* launching things */
+  gst_element_set_state (data->sink, GST_STATE_PLAYING);
+  gst_element_set_state (data->source, GST_STATE_PLAYING);
+
+  /* let's run !, this loop will quit when the sink pipeline goes EOS or when an
+   * error occurs in the source or sink pipelines. */
+  g_print ("Let's run!\n");
+  g_main_loop_run (data->loop);
+  g_print ("Going out\n");
+
+  gst_element_set_state (data->source, GST_STATE_NULL);
+  gst_element_set_state (data->sink, GST_STATE_NULL);
+
+  gst_object_unref (data->source);
+  gst_object_unref (data->sink);
+  g_main_loop_unref (data->loop);
+  g_free (data);
+
+  return 0;
+}
diff --git a/tests/examples/audio/Makefile.in b/tests/examples/audio/Makefile.in
index 0918816..d246a15 100644
--- a/tests/examples/audio/Makefile.in
+++ b/tests/examples/audio/Makefile.in
@@ -103,7 +103,6 @@
 	$(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-x11.m4 \
 	$(top_srcdir)/common/m4/gst.m4 \
 	$(top_srcdir)/common/m4/gtk-doc.m4 \
 	$(top_srcdir)/common/m4/introspection.m4 \
@@ -267,6 +266,8 @@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_2_0_CFLAGS = @GIO_UNIX_2_0_CFLAGS@
+GIO_UNIX_2_0_LIBS = @GIO_UNIX_2_0_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
@@ -296,6 +297,8 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
+GST_NET_CFLAGS = @GST_NET_CFLAGS@
+GST_NET_LIBS = @GST_NET_LIBS@
 GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
 GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
@@ -323,7 +326,6 @@
 GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
 GTK_X11_LIBS = @GTK_X11_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
-HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -427,13 +429,12 @@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-XMKMF = @XMKMF@
+XSHM_CFLAGS = @XSHM_CFLAGS@
 XSHM_LIBS = @XSHM_LIBS@
+XVIDEO_CFLAGS = @XVIDEO_CFLAGS@
 XVIDEO_LIBS = @XVIDEO_LIBS@
 X_CFLAGS = @X_CFLAGS@
-X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
-X_PRE_LIBS = @X_PRE_LIBS@
 ZLIB_CFLAGS = @ZLIB_CFLAGS@
 ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
diff --git a/tests/examples/audio/audiomix.c b/tests/examples/audio/audiomix.c
index dfe95c8..2b87f39 100644
--- a/tests/examples/audio/audiomix.c
+++ b/tests/examples/audio/audiomix.c
@@ -206,6 +206,7 @@
   gtk_main ();
   gst_element_set_state (pipeline, GST_STATE_NULL);
   gst_object_unref (pipeline);
+  gst_object_unref (bus);
 
   return 0;
 }
diff --git a/tests/examples/audio/volume.c b/tests/examples/audio/volume.c
index 5e0d5ef..26d6bb1 100644
--- a/tests/examples/audio/volume.c
+++ b/tests/examples/audio/volume.c
@@ -170,6 +170,7 @@
   gtk_main ();
   gst_element_set_state (pipeline, GST_STATE_NULL);
   gst_object_unref (pipeline);
+  gst_object_unref (bus);
 
   return 0;
 }
diff --git a/tests/examples/dynamic/Makefile.in b/tests/examples/dynamic/Makefile.in
index ee591f0..9e6077a 100644
--- a/tests/examples/dynamic/Makefile.in
+++ b/tests/examples/dynamic/Makefile.in
@@ -104,7 +104,6 @@
 	$(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-x11.m4 \
 	$(top_srcdir)/common/m4/gst.m4 \
 	$(top_srcdir)/common/m4/gtk-doc.m4 \
 	$(top_srcdir)/common/m4/introspection.m4 \
@@ -283,6 +282,8 @@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_2_0_CFLAGS = @GIO_UNIX_2_0_CFLAGS@
+GIO_UNIX_2_0_LIBS = @GIO_UNIX_2_0_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
@@ -312,6 +313,8 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
+GST_NET_CFLAGS = @GST_NET_CFLAGS@
+GST_NET_LIBS = @GST_NET_LIBS@
 GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
 GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
@@ -339,7 +342,6 @@
 GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
 GTK_X11_LIBS = @GTK_X11_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
-HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -443,13 +445,12 @@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-XMKMF = @XMKMF@
+XSHM_CFLAGS = @XSHM_CFLAGS@
 XSHM_LIBS = @XSHM_LIBS@
+XVIDEO_CFLAGS = @XVIDEO_CFLAGS@
 XVIDEO_LIBS = @XVIDEO_LIBS@
 X_CFLAGS = @X_CFLAGS@
-X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
-X_PRE_LIBS = @X_PRE_LIBS@
 ZLIB_CFLAGS = @ZLIB_CFLAGS@
 ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
diff --git a/tests/examples/dynamic/codec-select.c b/tests/examples/dynamic/codec-select.c
index 48d5c83..b01d554 100644
--- a/tests/examples/dynamic/codec-select.c
+++ b/tests/examples/dynamic/codec-select.c
@@ -214,6 +214,7 @@
 
   /* set the active pad */
   g_object_set (select, "active-pad", pad, NULL);
+  gst_object_unref (select);
 
   return TRUE;
 }
@@ -222,10 +223,11 @@
 my_bus_callback (GstBus * bus, GstMessage * message, gpointer data)
 {
   GstElement *sender = (GstElement *) GST_MESSAGE_SRC (message);
-  const gchar *name = gst_element_get_name (sender);
+  gchar *name = gst_element_get_name (sender);
   GMainLoop *loop = (GMainLoop *) data;
 
   g_print ("Got %s message from %s\n", GST_MESSAGE_TYPE_NAME (message), name);
+  g_free (name);
 
   switch (GST_MESSAGE_TYPE (message)) {
 
diff --git a/tests/examples/encoding/Makefile.in b/tests/examples/encoding/Makefile.in
index 9250fb9..25db26d 100644
--- a/tests/examples/encoding/Makefile.in
+++ b/tests/examples/encoding/Makefile.in
@@ -103,7 +103,6 @@
 	$(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-x11.m4 \
 	$(top_srcdir)/common/m4/gst.m4 \
 	$(top_srcdir)/common/m4/gtk-doc.m4 \
 	$(top_srcdir)/common/m4/introspection.m4 \
@@ -259,6 +258,8 @@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_2_0_CFLAGS = @GIO_UNIX_2_0_CFLAGS@
+GIO_UNIX_2_0_LIBS = @GIO_UNIX_2_0_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
@@ -288,6 +289,8 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
+GST_NET_CFLAGS = @GST_NET_CFLAGS@
+GST_NET_LIBS = @GST_NET_LIBS@
 GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
 GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
@@ -315,7 +318,6 @@
 GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
 GTK_X11_LIBS = @GTK_X11_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
-HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -419,13 +421,12 @@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-XMKMF = @XMKMF@
+XSHM_CFLAGS = @XSHM_CFLAGS@
 XSHM_LIBS = @XSHM_LIBS@
+XVIDEO_CFLAGS = @XVIDEO_CFLAGS@
 XVIDEO_LIBS = @XVIDEO_LIBS@
 X_CFLAGS = @X_CFLAGS@
-X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
-X_PRE_LIBS = @X_PRE_LIBS@
 ZLIB_CFLAGS = @ZLIB_CFLAGS@
 ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
diff --git a/tests/examples/fft/Makefile.in b/tests/examples/fft/Makefile.in
index 4a0f7e4..9ce5134 100644
--- a/tests/examples/fft/Makefile.in
+++ b/tests/examples/fft/Makefile.in
@@ -103,7 +103,6 @@
 	$(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-x11.m4 \
 	$(top_srcdir)/common/m4/gst.m4 \
 	$(top_srcdir)/common/m4/gtk-doc.m4 \
 	$(top_srcdir)/common/m4/introspection.m4 \
@@ -257,6 +256,8 @@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_2_0_CFLAGS = @GIO_UNIX_2_0_CFLAGS@
+GIO_UNIX_2_0_LIBS = @GIO_UNIX_2_0_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
@@ -286,6 +287,8 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
+GST_NET_CFLAGS = @GST_NET_CFLAGS@
+GST_NET_LIBS = @GST_NET_LIBS@
 GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
 GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
@@ -313,7 +316,6 @@
 GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
 GTK_X11_LIBS = @GTK_X11_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
-HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -417,13 +419,12 @@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-XMKMF = @XMKMF@
+XSHM_CFLAGS = @XSHM_CFLAGS@
 XSHM_LIBS = @XSHM_LIBS@
+XVIDEO_CFLAGS = @XVIDEO_CFLAGS@
 XVIDEO_LIBS = @XVIDEO_LIBS@
 X_CFLAGS = @X_CFLAGS@
-X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
-X_PRE_LIBS = @X_PRE_LIBS@
 ZLIB_CFLAGS = @ZLIB_CFLAGS@
 ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
diff --git a/tests/examples/gio/Makefile.in b/tests/examples/gio/Makefile.in
index 58d8da40..53e58a2 100644
--- a/tests/examples/gio/Makefile.in
+++ b/tests/examples/gio/Makefile.in
@@ -103,7 +103,6 @@
 	$(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-x11.m4 \
 	$(top_srcdir)/common/m4/gst.m4 \
 	$(top_srcdir)/common/m4/gtk-doc.m4 \
 	$(top_srcdir)/common/m4/introspection.m4 \
@@ -260,6 +259,8 @@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_2_0_CFLAGS = @GIO_UNIX_2_0_CFLAGS@
+GIO_UNIX_2_0_LIBS = @GIO_UNIX_2_0_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
@@ -289,6 +290,8 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
+GST_NET_CFLAGS = @GST_NET_CFLAGS@
+GST_NET_LIBS = @GST_NET_LIBS@
 GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
 GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
@@ -316,7 +319,6 @@
 GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
 GTK_X11_LIBS = @GTK_X11_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
-HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -420,13 +422,12 @@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-XMKMF = @XMKMF@
+XSHM_CFLAGS = @XSHM_CFLAGS@
 XSHM_LIBS = @XSHM_LIBS@
+XVIDEO_CFLAGS = @XVIDEO_CFLAGS@
 XVIDEO_LIBS = @XVIDEO_LIBS@
 X_CFLAGS = @X_CFLAGS@
-X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
-X_PRE_LIBS = @X_PRE_LIBS@
 ZLIB_CFLAGS = @ZLIB_CFLAGS@
 ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
diff --git a/tests/examples/overlay/Makefile.in b/tests/examples/overlay/Makefile.in
index 3bc4f6a..293128e 100644
--- a/tests/examples/overlay/Makefile.in
+++ b/tests/examples/overlay/Makefile.in
@@ -106,7 +106,6 @@
 	$(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-x11.m4 \
 	$(top_srcdir)/common/m4/gst.m4 \
 	$(top_srcdir)/common/m4/gtk-doc.m4 \
 	$(top_srcdir)/common/m4/introspection.m4 \
@@ -320,6 +319,8 @@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_2_0_CFLAGS = @GIO_UNIX_2_0_CFLAGS@
+GIO_UNIX_2_0_LIBS = @GIO_UNIX_2_0_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
@@ -349,6 +350,8 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
+GST_NET_CFLAGS = @GST_NET_CFLAGS@
+GST_NET_LIBS = @GST_NET_LIBS@
 GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
 GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
@@ -376,7 +379,6 @@
 GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
 GTK_X11_LIBS = @GTK_X11_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
-HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -480,13 +482,12 @@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-XMKMF = @XMKMF@
+XSHM_CFLAGS = @XSHM_CFLAGS@
 XSHM_LIBS = @XSHM_LIBS@
+XVIDEO_CFLAGS = @XVIDEO_CFLAGS@
 XVIDEO_LIBS = @XVIDEO_LIBS@
 X_CFLAGS = @X_CFLAGS@
-X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
-X_PRE_LIBS = @X_PRE_LIBS@
 ZLIB_CFLAGS = @ZLIB_CFLAGS@
 ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
diff --git a/tests/examples/overlay/gtk-videooverlay.c b/tests/examples/overlay/gtk-videooverlay.c
index f99baa8..76eac7c 100644
--- a/tests/examples/overlay/gtk-videooverlay.c
+++ b/tests/examples/overlay/gtk-videooverlay.c
@@ -23,6 +23,8 @@
 #include "config.h"
 #endif
 
+#define GDK_VERSION_MIN_REQUIRED (GDK_VERSION_3_0)
+
 #include <glib.h>
 #include <gdk/gdkx.h>
 #include <gtk/gtk.h>
diff --git a/tests/examples/playback/Makefile.in b/tests/examples/playback/Makefile.in
index f38d67b..e06f257 100644
--- a/tests/examples/playback/Makefile.in
+++ b/tests/examples/playback/Makefile.in
@@ -103,7 +103,6 @@
 	$(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-x11.m4 \
 	$(top_srcdir)/common/m4/gst.m4 \
 	$(top_srcdir)/common/m4/gtk-doc.m4 \
 	$(top_srcdir)/common/m4/introspection.m4 \
@@ -256,6 +255,8 @@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_2_0_CFLAGS = @GIO_UNIX_2_0_CFLAGS@
+GIO_UNIX_2_0_LIBS = @GIO_UNIX_2_0_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
@@ -285,6 +286,8 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
+GST_NET_CFLAGS = @GST_NET_CFLAGS@
+GST_NET_LIBS = @GST_NET_LIBS@
 GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
 GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
@@ -312,7 +315,6 @@
 GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
 GTK_X11_LIBS = @GTK_X11_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
-HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -416,13 +418,12 @@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-XMKMF = @XMKMF@
+XSHM_CFLAGS = @XSHM_CFLAGS@
 XSHM_LIBS = @XSHM_LIBS@
+XVIDEO_CFLAGS = @XVIDEO_CFLAGS@
 XVIDEO_LIBS = @XVIDEO_LIBS@
 X_CFLAGS = @X_CFLAGS@
-X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
-X_PRE_LIBS = @X_PRE_LIBS@
 ZLIB_CFLAGS = @ZLIB_CFLAGS@
 ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
diff --git a/tests/examples/playback/playback-test.c b/tests/examples/playback/playback-test.c
index 81d2824..717a286 100644
--- a/tests/examples/playback/playback-test.c
+++ b/tests/examples/playback/playback-test.c
@@ -77,6 +77,7 @@
 //#define UPDATE_INTERVAL 500
 //#define UPDATE_INTERVAL 100
 #define UPDATE_INTERVAL 40
+#define SLOW_UPDATE_INTERVAL 500
 
 /* number of milliseconds to play for after a seek */
 #define SCRUB_TIME 100
@@ -118,6 +119,7 @@
   GtkWidget *subtitle_fontdesc_button;
 
   GtkWidget *seek_format_combo, *seek_position_label, *seek_duration_label;
+  GtkWidget *seek_start_label, *seek_stop_label;
   GtkWidget *seek_entry;
 
   GtkWidget *seek_scale, *statusbar;
@@ -151,6 +153,8 @@
   gboolean scrub;
   gboolean play_scrub;
   gboolean skip_seek;
+  gboolean skip_seek_key_only;
+  gboolean skip_seek_no_audio;
   gdouble rate;
   gboolean snap_before;
   gboolean snap_after;
@@ -174,6 +178,7 @@
   gint64 buffering_left;
   GstState state;
   guint update_id;
+  guint slow_update_id;
   guint seek_timeout_id;        /* Used for scrubbing in paused */
   gulong changed_id;
   guint fill_id;
@@ -293,13 +298,14 @@
 {
   const gchar *name;
   void (*func) (PlaybackApp * app, const gchar * location);
+  const gchar *help;
 }
 Pipeline;
 
 static const Pipeline pipelines[] = {
-  {"playbin", make_playbin_pipeline},
+  {"playbin", make_playbin_pipeline, "[URLS|FILENAMES]"},
 #ifndef GST_DISABLE_PARSE
-  {"parse-launch", make_parselaunch_pipeline},
+  {"parse-launch", make_parselaunch_pipeline, "[PARSE-LAUNCH-LINE]"},
 #endif
 };
 
@@ -427,6 +433,37 @@
 }
 
 static gboolean
+update_seek_range (PlaybackApp * app)
+{
+  GstFormat format = GST_FORMAT_TIME;
+  gint64 seek_start, seek_stop;
+  gboolean seekable;
+  GstQuery *query;
+
+  query = gst_query_new_seeking (format);
+  if (gst_element_query (app->pipeline, query)) {
+    gchar *str;
+
+    gst_query_parse_seeking (query, &format, &seekable, &seek_start,
+        &seek_stop);
+    if (!seekable) {
+      seek_start = seek_stop = -1;
+    }
+
+    str = g_strdup_printf ("%" G_GINT64_FORMAT, seek_start);
+    gtk_label_set_text (GTK_LABEL (app->seek_start_label), str);
+    g_free (str);
+
+    str = g_strdup_printf ("%" G_GINT64_FORMAT, seek_stop);
+    gtk_label_set_text (GTK_LABEL (app->seek_stop_label), str);
+    g_free (str);
+  }
+  gst_query_unref (query);
+
+  return TRUE;
+}
+
+static gboolean
 update_scale (PlaybackApp * app)
 {
   GstFormat format = GST_FORMAT_TIME;
@@ -508,7 +545,11 @@
   if (app->loop_seek)
     flags |= GST_SEEK_FLAG_SEGMENT;
   if (app->skip_seek)
-    flags |= GST_SEEK_FLAG_SKIP;
+    flags |= GST_SEEK_FLAG_TRICKMODE;
+  if (app->skip_seek_key_only)
+    flags |= GST_SEEK_FLAG_TRICKMODE_KEY_UNITS;
+  if (app->skip_seek_no_audio)
+    flags |= GST_SEEK_FLAG_TRICKMODE_NO_AUDIO;
   if (app->snap_before)
     flags |= GST_SEEK_FLAG_SNAP_BEFORE;
   if (app->snap_after)
@@ -619,11 +660,20 @@
       app->update_id =
           g_timeout_add (UPDATE_INTERVAL, (GSourceFunc) update_scale, app);
     }
+    if (app->slow_update_id == 0) {
+      app->slow_update_id =
+          g_timeout_add (SLOW_UPDATE_INTERVAL, (GSourceFunc) update_seek_range,
+          app);
+    }
   } else {
     if (app->update_id) {
       g_source_remove (app->update_id);
       app->update_id = 0;
     }
+    if (app->slow_update_id) {
+      g_source_remove (app->slow_update_id);
+      app->slow_update_id = 0;
+    }
   }
 }
 
@@ -878,9 +928,9 @@
 }
 
 static void
-skip_toggle_cb (GtkToggleButton * button, PlaybackApp * app)
+skip_toggle_common (gboolean * v, GtkToggleButton * button, PlaybackApp * app)
 {
-  app->skip_seek = gtk_toggle_button_get_active (button);
+  *v = gtk_toggle_button_get_active (button);
   if (app->state == GST_STATE_PLAYING) {
     gint64 real;
 
@@ -892,6 +942,24 @@
 }
 
 static void
+skip_toggle_cb (GtkToggleButton * button, PlaybackApp * app)
+{
+  skip_toggle_common (&app->skip_seek, button, app);
+}
+
+static void
+skip_key_toggle_cb (GtkToggleButton * button, PlaybackApp * app)
+{
+  skip_toggle_common (&app->skip_seek_key_only, button, app);
+}
+
+static void
+skip_audio_toggle_cb (GtkToggleButton * button, PlaybackApp * app)
+{
+  skip_toggle_common (&app->skip_seek_no_audio, button, app);
+}
+
+static void
 rate_spinbutton_changed_cb (GtkSpinButton * button, PlaybackApp * app)
 {
   gboolean res = FALSE;
@@ -912,7 +980,11 @@
   if (app->keyframe_seek)
     flags |= GST_SEEK_FLAG_KEY_UNIT;
   if (app->skip_seek)
-    flags |= GST_SEEK_FLAG_SKIP;
+    flags |= GST_SEEK_FLAG_TRICKMODE;
+  if (app->skip_seek_key_only)
+    flags |= GST_SEEK_FLAG_TRICKMODE_KEY_UNITS;
+  if (app->skip_seek_no_audio)
+    flags |= GST_SEEK_FLAG_TRICKMODE_NO_AUDIO;
 
   if (app->rate >= 0.0) {
     s_event = gst_event_new_seek (app->rate,
@@ -1827,7 +1899,11 @@
   if (app->loop_seek)
     flags |= GST_SEEK_FLAG_SEGMENT;
   if (app->skip_seek)
-    flags |= GST_SEEK_FLAG_SKIP;
+    flags |= GST_SEEK_FLAG_TRICKMODE;
+  if (app->skip_seek_key_only)
+    flags |= GST_SEEK_FLAG_TRICKMODE_KEY_UNITS;
+  if (app->skip_seek_no_audio)
+    flags |= GST_SEEK_FLAG_TRICKMODE_NO_AUDIO;
 
   s_event = gst_event_new_seek (app->rate,
       GST_FORMAT_TIME, flags, GST_SEEK_TYPE_SET, G_GINT64_CONSTANT (0),
@@ -1869,7 +1945,7 @@
     }
   } else {
     /* buffering busy */
-    if (app->buffering == FALSE && app->state == GST_STATE_PLAYING) {
+    if (!app->buffering && app->state == GST_STATE_PLAYING) {
       /* we were not buffering but PLAYING, PAUSE  the pipeline. */
       if (!app->is_live) {
         fprintf (stderr, "Buffering, setting pipeline to PAUSED ...\n");
@@ -2519,11 +2595,11 @@
 {
   gint i;
 
-  g_print ("usage: %s <type> <filename>\n", argv[0]);
+  g_print ("Usage: %s <type> <argument>\n", argv[0]);
   g_print ("   possible types:\n");
 
   for (i = 0; i < G_N_ELEMENTS (pipelines); i++) {
-    g_print ("     %d = %s\n", i, pipelines[i].name);
+    g_print ("     %d = %s %s\n", i, pipelines[i].name, pipelines[i].help);
   }
 }
 
@@ -2575,9 +2651,11 @@
     GtkWidget *accurate_checkbox, *key_checkbox, *loop_checkbox,
         *flush_checkbox, *snap_before_checkbox, *snap_after_checkbox;
     GtkWidget *scrub_checkbox, *play_scrub_checkbox, *rate_label;
-    GtkWidget *skip_checkbox, *rate_spinbutton;
+    GtkWidget *skip_checkbox, *skip_key_checkbox, *skip_audio_checkbox,
+        *rate_spinbutton;
     GtkWidget *flagtable, *advanced_seek, *advanced_seek_grid;
     GtkWidget *duration_label, *position_label, *seek_button;
+    GtkWidget *start_label, *stop_label;
 
     seek = gtk_expander_new ("seek options");
     flagtable = gtk_grid_new ();
@@ -2592,7 +2670,11 @@
     flush_checkbox = gtk_check_button_new_with_label ("Flush");
     scrub_checkbox = gtk_check_button_new_with_label ("Scrub");
     play_scrub_checkbox = gtk_check_button_new_with_label ("Play Scrub");
-    skip_checkbox = gtk_check_button_new_with_label ("Play Skip");
+    skip_checkbox = gtk_check_button_new_with_label ("Trickmode Play");
+    skip_key_checkbox =
+        gtk_check_button_new_with_label ("Trickmode - Keyframes Only");
+    skip_audio_checkbox =
+        gtk_check_button_new_with_label ("Trickmode - No Audio");
     snap_before_checkbox = gtk_check_button_new_with_label ("Snap before");
     snap_after_checkbox = gtk_check_button_new_with_label ("Snap after");
     rate_spinbutton = gtk_spin_button_new_with_range (-100, 100, 0.1);
@@ -2613,6 +2695,10 @@
         "play video while seeking");
     gtk_widget_set_tooltip_text (skip_checkbox,
         "Skip frames while playing at high frame rates");
+    gtk_widget_set_tooltip_text (skip_key_checkbox,
+        "Skip everything except keyframes while playing at high frame rates");
+    gtk_widget_set_tooltip_text (skip_audio_checkbox,
+        "Do not decode audio during trick mode playback");
     gtk_widget_set_tooltip_text (snap_before_checkbox,
         "Favor snapping to the frame before the seek target");
     gtk_widget_set_tooltip_text (snap_after_checkbox,
@@ -2637,6 +2723,10 @@
         G_CALLBACK (play_scrub_toggle_cb), app);
     g_signal_connect (G_OBJECT (skip_checkbox), "toggled",
         G_CALLBACK (skip_toggle_cb), app);
+    g_signal_connect (G_OBJECT (skip_key_checkbox), "toggled",
+        G_CALLBACK (skip_key_toggle_cb), app);
+    g_signal_connect (G_OBJECT (skip_audio_checkbox), "toggled",
+        G_CALLBACK (skip_audio_toggle_cb), app);
     g_signal_connect (G_OBJECT (rate_spinbutton), "value-changed",
         G_CALLBACK (rate_spinbutton_changed_cb), app);
     g_signal_connect (G_OBJECT (snap_before_checkbox), "toggled",
@@ -2651,6 +2741,8 @@
     gtk_grid_attach (GTK_GRID (flagtable), scrub_checkbox, 1, 1, 1, 1);
     gtk_grid_attach (GTK_GRID (flagtable), play_scrub_checkbox, 2, 1, 1, 1);
     gtk_grid_attach (GTK_GRID (flagtable), skip_checkbox, 3, 0, 1, 1);
+    gtk_grid_attach (GTK_GRID (flagtable), skip_key_checkbox, 3, 1, 1, 1);
+    gtk_grid_attach (GTK_GRID (flagtable), skip_audio_checkbox, 3, 2, 1, 1);
     gtk_grid_attach (GTK_GRID (flagtable), rate_label, 4, 0, 1, 1);
     gtk_grid_attach (GTK_GRID (flagtable), rate_spinbutton, 4, 1, 1, 1);
     gtk_grid_attach (GTK_GRID (flagtable), snap_before_checkbox, 0, 2, 1, 1);
@@ -2691,6 +2783,18 @@
     gtk_grid_attach (GTK_GRID (advanced_seek_grid), app->seek_duration_label, 3,
         1, 1, 1);
 
+    start_label = gtk_label_new ("Seek start:");
+    gtk_grid_attach (GTK_GRID (advanced_seek_grid), start_label, 4, 0, 1, 1);
+    stop_label = gtk_label_new ("Seek stop:");
+    gtk_grid_attach (GTK_GRID (advanced_seek_grid), stop_label, 4, 1, 1, 1);
+
+    app->seek_start_label = gtk_label_new ("-1");
+    gtk_grid_attach (GTK_GRID (advanced_seek_grid), app->seek_start_label, 5,
+        0, 1, 1);
+    app->seek_stop_label = gtk_label_new ("-1");
+    gtk_grid_attach (GTK_GRID (advanced_seek_grid), app->seek_stop_label, 5,
+        1, 1, 1);
+
     gtk_container_add (GTK_CONTAINER (advanced_seek), advanced_seek_grid);
     gtk_grid_attach (GTK_GRID (flagtable), advanced_seek, 0, 3, 3, 2);
     gtk_container_add (GTK_CONTAINER (seek), flagtable);
@@ -3311,7 +3415,19 @@
     exit (-1);
   }
 
-  app.pipeline_type = atoi (argv[1]);
+  app.pipeline_type = -1;
+  if (g_ascii_isdigit (argv[1][0])) {
+    app.pipeline_type = atoi (argv[1]);
+  } else {
+    gint i;
+
+    for (i = 0; i < G_N_ELEMENTS (pipelines); ++i) {
+      if (strcmp (pipelines[i].name, argv[1]) == 0) {
+        app.pipeline_type = i;
+        break;
+      }
+    }
+  }
 
   if (app.pipeline_type < 0 || app.pipeline_type >= G_N_ELEMENTS (pipelines)) {
     print_usage (argc, argv);
diff --git a/tests/examples/playrec/Makefile.in b/tests/examples/playrec/Makefile.in
index c87df66..1140c06 100644
--- a/tests/examples/playrec/Makefile.in
+++ b/tests/examples/playrec/Makefile.in
@@ -103,7 +103,6 @@
 	$(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-x11.m4 \
 	$(top_srcdir)/common/m4/gst.m4 \
 	$(top_srcdir)/common/m4/gtk-doc.m4 \
 	$(top_srcdir)/common/m4/introspection.m4 \
@@ -256,6 +255,8 @@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_2_0_CFLAGS = @GIO_UNIX_2_0_CFLAGS@
+GIO_UNIX_2_0_LIBS = @GIO_UNIX_2_0_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
@@ -285,6 +286,8 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
+GST_NET_CFLAGS = @GST_NET_CFLAGS@
+GST_NET_LIBS = @GST_NET_LIBS@
 GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
 GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
@@ -312,7 +315,6 @@
 GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
 GTK_X11_LIBS = @GTK_X11_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
-HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -416,13 +418,12 @@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-XMKMF = @XMKMF@
+XSHM_CFLAGS = @XSHM_CFLAGS@
 XSHM_LIBS = @XSHM_LIBS@
+XVIDEO_CFLAGS = @XVIDEO_CFLAGS@
 XVIDEO_LIBS = @XVIDEO_LIBS@
 X_CFLAGS = @X_CFLAGS@
-X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
-X_PRE_LIBS = @X_PRE_LIBS@
 ZLIB_CFLAGS = @ZLIB_CFLAGS@
 ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
diff --git a/tests/examples/seek/Makefile.in b/tests/examples/seek/Makefile.in
index 99a87a7..ef61790 100644
--- a/tests/examples/seek/Makefile.in
+++ b/tests/examples/seek/Makefile.in
@@ -103,7 +103,6 @@
 	$(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-x11.m4 \
 	$(top_srcdir)/common/m4/gst.m4 \
 	$(top_srcdir)/common/m4/gtk-doc.m4 \
 	$(top_srcdir)/common/m4/introspection.m4 \
@@ -278,6 +277,8 @@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_2_0_CFLAGS = @GIO_UNIX_2_0_CFLAGS@
+GIO_UNIX_2_0_LIBS = @GIO_UNIX_2_0_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
@@ -307,6 +308,8 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
+GST_NET_CFLAGS = @GST_NET_CFLAGS@
+GST_NET_LIBS = @GST_NET_LIBS@
 GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
 GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
@@ -334,7 +337,6 @@
 GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
 GTK_X11_LIBS = @GTK_X11_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
-HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -438,13 +440,12 @@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-XMKMF = @XMKMF@
+XSHM_CFLAGS = @XSHM_CFLAGS@
 XSHM_LIBS = @XSHM_LIBS@
+XVIDEO_CFLAGS = @XVIDEO_CFLAGS@
 XVIDEO_LIBS = @XVIDEO_LIBS@
 X_CFLAGS = @X_CFLAGS@
-X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
-X_PRE_LIBS = @X_PRE_LIBS@
 ZLIB_CFLAGS = @ZLIB_CFLAGS@
 ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
diff --git a/tests/examples/seek/jsseek.c b/tests/examples/seek/jsseek.c
index 7d8bd29..bd1a5b9 100644
--- a/tests/examples/seek/jsseek.c
+++ b/tests/examples/seek/jsseek.c
@@ -2352,7 +2352,7 @@
     }
   } else {
     /* buffering busy */
-    if (buffering == FALSE && state == GST_STATE_PLAYING) {
+    if (!buffering && state == GST_STATE_PLAYING) {
       /* we were not buffering but PLAYING, PAUSE  the pipeline. */
       if (!is_live) {
         fprintf (stderr, "Buffering, setting pipeline to PAUSED ...\n");
diff --git a/tests/examples/seek/scrubby.c b/tests/examples/seek/scrubby.c
index ac5b2b4..7ba3600 100644
--- a/tests/examples/seek/scrubby.c
+++ b/tests/examples/seek/scrubby.c
@@ -559,6 +559,8 @@
   g_print ("NULL pipeline\n");
   gst_element_set_state (pipeline, GST_STATE_NULL);
 
+  gst_object_unref (bus);
+
   g_print ("free pipeline\n");
   gst_object_unref (pipeline);
 
diff --git a/tests/examples/snapshot/Makefile.in b/tests/examples/snapshot/Makefile.in
index b6e8a58..f5c626c 100644
--- a/tests/examples/snapshot/Makefile.in
+++ b/tests/examples/snapshot/Makefile.in
@@ -103,7 +103,6 @@
 	$(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-x11.m4 \
 	$(top_srcdir)/common/m4/gst.m4 \
 	$(top_srcdir)/common/m4/gtk-doc.m4 \
 	$(top_srcdir)/common/m4/introspection.m4 \
@@ -254,6 +253,8 @@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_2_0_CFLAGS = @GIO_UNIX_2_0_CFLAGS@
+GIO_UNIX_2_0_LIBS = @GIO_UNIX_2_0_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
@@ -283,6 +284,8 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
+GST_NET_CFLAGS = @GST_NET_CFLAGS@
+GST_NET_LIBS = @GST_NET_LIBS@
 GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
 GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
@@ -310,7 +313,6 @@
 GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
 GTK_X11_LIBS = @GTK_X11_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
-HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -414,13 +416,12 @@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-XMKMF = @XMKMF@
+XSHM_CFLAGS = @XSHM_CFLAGS@
 XSHM_LIBS = @XSHM_LIBS@
+XVIDEO_CFLAGS = @XVIDEO_CFLAGS@
 XVIDEO_LIBS = @XVIDEO_LIBS@
 X_CFLAGS = @X_CFLAGS@
-X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
-X_PRE_LIBS = @X_PRE_LIBS@
 ZLIB_CFLAGS = @ZLIB_CFLAGS@
 ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
diff --git a/tests/examples/snapshot/snapshot.c b/tests/examples/snapshot/snapshot.c
index 4ddad45..3ebdc15 100644
--- a/tests/examples/snapshot/snapshot.c
+++ b/tests/examples/snapshot/snapshot.c
@@ -104,6 +104,7 @@
   /* get the preroll buffer from appsink, this block untils appsink really
    * prerolls */
   g_signal_emit_by_name (sink, "pull-preroll", &sample, NULL);
+  gst_object_unref (sink);
 
   /* if we have a buffer now, convert it to a pixbuf. It's possible that we
    * don't have a buffer because we went EOS right away or had an error. */
diff --git a/tests/files/Makefile.in b/tests/files/Makefile.in
index 2eaadd9..3636182 100644
--- a/tests/files/Makefile.in
+++ b/tests/files/Makefile.in
@@ -100,7 +100,6 @@
 	$(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-x11.m4 \
 	$(top_srcdir)/common/m4/gst.m4 \
 	$(top_srcdir)/common/m4/gtk-doc.m4 \
 	$(top_srcdir)/common/m4/introspection.m4 \
@@ -201,6 +200,8 @@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_2_0_CFLAGS = @GIO_UNIX_2_0_CFLAGS@
+GIO_UNIX_2_0_LIBS = @GIO_UNIX_2_0_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
@@ -230,6 +231,8 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
+GST_NET_CFLAGS = @GST_NET_CFLAGS@
+GST_NET_LIBS = @GST_NET_LIBS@
 GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
 GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
@@ -257,7 +260,6 @@
 GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
 GTK_X11_LIBS = @GTK_X11_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
-HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -361,13 +363,12 @@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-XMKMF = @XMKMF@
+XSHM_CFLAGS = @XSHM_CFLAGS@
 XSHM_LIBS = @XSHM_LIBS@
+XVIDEO_CFLAGS = @XVIDEO_CFLAGS@
 XVIDEO_LIBS = @XVIDEO_LIBS@
 X_CFLAGS = @X_CFLAGS@
-X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
-X_PRE_LIBS = @X_PRE_LIBS@
 ZLIB_CFLAGS = @ZLIB_CFLAGS@
 ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
diff --git a/tests/icles/Makefile.am b/tests/icles/Makefile.am
index 7b76da9..f479bb7 100644
--- a/tests/icles/Makefile.am
+++ b/tests/icles/Makefile.am
@@ -76,6 +76,14 @@
 test_effect_switch_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS)
 test_effect_switch_LDADD = $(GST_LIBS)
 
+test_overlay_blending_SOURCES = test-overlay-blending.c
+test_overlay_blending_CFLAGS = \
+	$(GST_PLUGINS_BASE_CFLAGS) \
+	$(GST_CFLAGS) $(GIO_CFLAGS)
+test_overlay_blending_LDADD = \
+	$(top_builddir)/gst-libs/gst/video/libgstvideo-$(GST_API_VERSION).la \
+	$(GST_LIBS) $(GIO_LIBS) $(LIBM)
+
 test_scale_SOURCES = test-scale.c
 test_scale_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS)
 test_scale_LDADD = $(GST_LIBS) $(LIBM)
@@ -84,6 +92,10 @@
 test_box_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS)
 test_box_LDADD = $(GST_LIBS) $(LIBM)
 
+test_reverseplay_SOURCES = test-reverseplay.c
+test_reverseplay_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS)
+test_reverseplay_LDADD = $(GST_LIBS) $(LIBM)
+
 noinst_PROGRAMS = $(X_TESTS) $(PANGO_TESTS) \
 	audio-trickplay playbin-text position-formats stress-playbin \
-	test-scale test-box test-effect-switch
+	test-scale test-box test-effect-switch test-overlay-blending test-reverseplay
diff --git a/tests/icles/Makefile.in b/tests/icles/Makefile.in
index ed47283..1e59912 100644
--- a/tests/icles/Makefile.in
+++ b/tests/icles/Makefile.in
@@ -84,7 +84,8 @@
 	audio-trickplay$(EXEEXT) playbin-text$(EXEEXT) \
 	position-formats$(EXEEXT) stress-playbin$(EXEEXT) \
 	test-scale$(EXEEXT) test-box$(EXEEXT) \
-	test-effect-switch$(EXEEXT)
+	test-effect-switch$(EXEEXT) test-overlay-blending$(EXEEXT) \
+	test-reverseplay$(EXEEXT)
 subdir = tests/icles
 DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
 	$(top_srcdir)/depcomp
@@ -108,7 +109,6 @@
 	$(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-x11.m4 \
 	$(top_srcdir)/common/m4/gst.m4 \
 	$(top_srcdir)/common/m4/gtk-doc.m4 \
 	$(top_srcdir)/common/m4/introspection.m4 \
@@ -227,6 +227,25 @@
 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
 	$(test_effect_switch_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
 	$(LDFLAGS) -o $@
+am_test_overlay_blending_OBJECTS =  \
+	test_overlay_blending-test-overlay-blending.$(OBJEXT)
+test_overlay_blending_OBJECTS = $(am_test_overlay_blending_OBJECTS)
+test_overlay_blending_DEPENDENCIES = $(top_builddir)/gst-libs/gst/video/libgstvideo-$(GST_API_VERSION).la \
+	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_1)
+test_overlay_blending_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+	$(test_overlay_blending_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+	$(LDFLAGS) -o $@
+am_test_reverseplay_OBJECTS =  \
+	test_reverseplay-test-reverseplay.$(OBJEXT)
+test_reverseplay_OBJECTS = $(am_test_reverseplay_OBJECTS)
+test_reverseplay_DEPENDENCIES = $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_1)
+test_reverseplay_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+	$(test_reverseplay_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
+	-o $@
 am_test_scale_OBJECTS = test_scale-test-scale.$(OBJEXT)
 test_scale_OBJECTS = $(am_test_scale_OBJECTS)
 test_scale_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
@@ -294,6 +313,7 @@
 	$(position_formats_SOURCES) $(stress_playbin_SOURCES) \
 	$(stress_videooverlay_SOURCES) $(test_box_SOURCES) \
 	$(test_colorkey_SOURCES) $(test_effect_switch_SOURCES) \
+	$(test_overlay_blending_SOURCES) $(test_reverseplay_SOURCES) \
 	$(test_scale_SOURCES) $(test_textoverlay_SOURCES) \
 	$(test_videooverlay_SOURCES)
 DIST_SOURCES = $(audio_trickplay_SOURCES) \
@@ -303,7 +323,8 @@
 	$(stress_playbin_SOURCES) \
 	$(am__stress_videooverlay_SOURCES_DIST) $(test_box_SOURCES) \
 	$(am__test_colorkey_SOURCES_DIST) \
-	$(test_effect_switch_SOURCES) $(test_scale_SOURCES) \
+	$(test_effect_switch_SOURCES) $(test_overlay_blending_SOURCES) \
+	$(test_reverseplay_SOURCES) $(test_scale_SOURCES) \
 	$(am__test_textoverlay_SOURCES_DIST) \
 	$(am__test_videooverlay_SOURCES_DIST)
 RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
@@ -431,6 +452,8 @@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_2_0_CFLAGS = @GIO_UNIX_2_0_CFLAGS@
+GIO_UNIX_2_0_LIBS = @GIO_UNIX_2_0_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
@@ -460,6 +483,8 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
+GST_NET_CFLAGS = @GST_NET_CFLAGS@
+GST_NET_LIBS = @GST_NET_LIBS@
 GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
 GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
@@ -487,7 +512,6 @@
 GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
 GTK_X11_LIBS = @GTK_X11_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
-HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -591,13 +615,12 @@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-XMKMF = @XMKMF@
+XSHM_CFLAGS = @XSHM_CFLAGS@
 XSHM_LIBS = @XSHM_LIBS@
+XVIDEO_CFLAGS = @XVIDEO_CFLAGS@
 XVIDEO_LIBS = @XVIDEO_LIBS@
 X_CFLAGS = @X_CFLAGS@
-X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
-X_PRE_LIBS = @X_PRE_LIBS@
 ZLIB_CFLAGS = @ZLIB_CFLAGS@
 ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
@@ -719,12 +742,24 @@
 test_effect_switch_SOURCES = test-effect-switch.c
 test_effect_switch_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS)
 test_effect_switch_LDADD = $(GST_LIBS)
+test_overlay_blending_SOURCES = test-overlay-blending.c
+test_overlay_blending_CFLAGS = \
+	$(GST_PLUGINS_BASE_CFLAGS) \
+	$(GST_CFLAGS) $(GIO_CFLAGS)
+
+test_overlay_blending_LDADD = \
+	$(top_builddir)/gst-libs/gst/video/libgstvideo-$(GST_API_VERSION).la \
+	$(GST_LIBS) $(GIO_LIBS) $(LIBM)
+
 test_scale_SOURCES = test-scale.c
 test_scale_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS)
 test_scale_LDADD = $(GST_LIBS) $(LIBM)
 test_box_SOURCES = test-box.c
 test_box_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS)
 test_box_LDADD = $(GST_LIBS) $(LIBM)
+test_reverseplay_SOURCES = test-reverseplay.c
+test_reverseplay_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS)
+test_reverseplay_LDADD = $(GST_LIBS) $(LIBM)
 all: all-recursive
 
 .SUFFIXES:
@@ -809,6 +844,14 @@
 	@rm -f test-effect-switch$(EXEEXT)
 	$(AM_V_CCLD)$(test_effect_switch_LINK) $(test_effect_switch_OBJECTS) $(test_effect_switch_LDADD) $(LIBS)
 
+test-overlay-blending$(EXEEXT): $(test_overlay_blending_OBJECTS) $(test_overlay_blending_DEPENDENCIES) $(EXTRA_test_overlay_blending_DEPENDENCIES) 
+	@rm -f test-overlay-blending$(EXEEXT)
+	$(AM_V_CCLD)$(test_overlay_blending_LINK) $(test_overlay_blending_OBJECTS) $(test_overlay_blending_LDADD) $(LIBS)
+
+test-reverseplay$(EXEEXT): $(test_reverseplay_OBJECTS) $(test_reverseplay_DEPENDENCIES) $(EXTRA_test_reverseplay_DEPENDENCIES) 
+	@rm -f test-reverseplay$(EXEEXT)
+	$(AM_V_CCLD)$(test_reverseplay_LINK) $(test_reverseplay_OBJECTS) $(test_reverseplay_LDADD) $(LIBS)
+
 test-scale$(EXEEXT): $(test_scale_OBJECTS) $(test_scale_DEPENDENCIES) $(EXTRA_test_scale_DEPENDENCIES) 
 	@rm -f test-scale$(EXEEXT)
 	$(AM_V_CCLD)$(test_scale_LINK) $(test_scale_OBJECTS) $(test_scale_LDADD) $(LIBS)
@@ -837,6 +880,8 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_box-test-box.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_colorkey-test-colorkey.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_effect_switch-test-effect-switch.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_overlay_blending-test-overlay-blending.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_reverseplay-test-reverseplay.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_scale-test-scale.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_textoverlay-test-textoverlay.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_videooverlay-test-videooverlay.Po@am__quote@
@@ -1005,6 +1050,34 @@
 @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) $(test_effect_switch_CFLAGS) $(CFLAGS) -c -o test_effect_switch-test-effect-switch.obj `if test -f 'test-effect-switch.c'; then $(CYGPATH_W) 'test-effect-switch.c'; else $(CYGPATH_W) '$(srcdir)/test-effect-switch.c'; fi`
 
+test_overlay_blending-test-overlay-blending.o: test-overlay-blending.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_overlay_blending_CFLAGS) $(CFLAGS) -MT test_overlay_blending-test-overlay-blending.o -MD -MP -MF $(DEPDIR)/test_overlay_blending-test-overlay-blending.Tpo -c -o test_overlay_blending-test-overlay-blending.o `test -f 'test-overlay-blending.c' || echo '$(srcdir)/'`test-overlay-blending.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/test_overlay_blending-test-overlay-blending.Tpo $(DEPDIR)/test_overlay_blending-test-overlay-blending.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='test-overlay-blending.c' object='test_overlay_blending-test-overlay-blending.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) $(test_overlay_blending_CFLAGS) $(CFLAGS) -c -o test_overlay_blending-test-overlay-blending.o `test -f 'test-overlay-blending.c' || echo '$(srcdir)/'`test-overlay-blending.c
+
+test_overlay_blending-test-overlay-blending.obj: test-overlay-blending.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_overlay_blending_CFLAGS) $(CFLAGS) -MT test_overlay_blending-test-overlay-blending.obj -MD -MP -MF $(DEPDIR)/test_overlay_blending-test-overlay-blending.Tpo -c -o test_overlay_blending-test-overlay-blending.obj `if test -f 'test-overlay-blending.c'; then $(CYGPATH_W) 'test-overlay-blending.c'; else $(CYGPATH_W) '$(srcdir)/test-overlay-blending.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/test_overlay_blending-test-overlay-blending.Tpo $(DEPDIR)/test_overlay_blending-test-overlay-blending.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='test-overlay-blending.c' object='test_overlay_blending-test-overlay-blending.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) $(test_overlay_blending_CFLAGS) $(CFLAGS) -c -o test_overlay_blending-test-overlay-blending.obj `if test -f 'test-overlay-blending.c'; then $(CYGPATH_W) 'test-overlay-blending.c'; else $(CYGPATH_W) '$(srcdir)/test-overlay-blending.c'; fi`
+
+test_reverseplay-test-reverseplay.o: test-reverseplay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_reverseplay_CFLAGS) $(CFLAGS) -MT test_reverseplay-test-reverseplay.o -MD -MP -MF $(DEPDIR)/test_reverseplay-test-reverseplay.Tpo -c -o test_reverseplay-test-reverseplay.o `test -f 'test-reverseplay.c' || echo '$(srcdir)/'`test-reverseplay.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/test_reverseplay-test-reverseplay.Tpo $(DEPDIR)/test_reverseplay-test-reverseplay.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='test-reverseplay.c' object='test_reverseplay-test-reverseplay.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) $(test_reverseplay_CFLAGS) $(CFLAGS) -c -o test_reverseplay-test-reverseplay.o `test -f 'test-reverseplay.c' || echo '$(srcdir)/'`test-reverseplay.c
+
+test_reverseplay-test-reverseplay.obj: test-reverseplay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_reverseplay_CFLAGS) $(CFLAGS) -MT test_reverseplay-test-reverseplay.obj -MD -MP -MF $(DEPDIR)/test_reverseplay-test-reverseplay.Tpo -c -o test_reverseplay-test-reverseplay.obj `if test -f 'test-reverseplay.c'; then $(CYGPATH_W) 'test-reverseplay.c'; else $(CYGPATH_W) '$(srcdir)/test-reverseplay.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/test_reverseplay-test-reverseplay.Tpo $(DEPDIR)/test_reverseplay-test-reverseplay.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='test-reverseplay.c' object='test_reverseplay-test-reverseplay.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) $(test_reverseplay_CFLAGS) $(CFLAGS) -c -o test_reverseplay-test-reverseplay.obj `if test -f 'test-reverseplay.c'; then $(CYGPATH_W) 'test-reverseplay.c'; else $(CYGPATH_W) '$(srcdir)/test-reverseplay.c'; fi`
+
 test_scale-test-scale.o: test-scale.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_scale_CFLAGS) $(CFLAGS) -MT test_scale-test-scale.o -MD -MP -MF $(DEPDIR)/test_scale-test-scale.Tpo -c -o test_scale-test-scale.o `test -f 'test-scale.c' || echo '$(srcdir)/'`test-scale.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/test_scale-test-scale.Tpo $(DEPDIR)/test_scale-test-scale.Po
diff --git a/tests/icles/playback/Makefile.in b/tests/icles/playback/Makefile.in
index da25f29..4141856 100644
--- a/tests/icles/playback/Makefile.in
+++ b/tests/icles/playback/Makefile.in
@@ -105,7 +105,6 @@
 	$(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-x11.m4 \
 	$(top_srcdir)/common/m4/gst.m4 \
 	$(top_srcdir)/common/m4/gtk-doc.m4 \
 	$(top_srcdir)/common/m4/introspection.m4 \
@@ -302,6 +301,8 @@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_2_0_CFLAGS = @GIO_UNIX_2_0_CFLAGS@
+GIO_UNIX_2_0_LIBS = @GIO_UNIX_2_0_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
@@ -331,6 +332,8 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
+GST_NET_CFLAGS = @GST_NET_CFLAGS@
+GST_NET_LIBS = @GST_NET_LIBS@
 GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
 GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
@@ -358,7 +361,6 @@
 GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
 GTK_X11_LIBS = @GTK_X11_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
-HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -462,13 +464,12 @@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-XMKMF = @XMKMF@
+XSHM_CFLAGS = @XSHM_CFLAGS@
 XSHM_LIBS = @XSHM_LIBS@
+XVIDEO_CFLAGS = @XVIDEO_CFLAGS@
 XVIDEO_LIBS = @XVIDEO_LIBS@
 X_CFLAGS = @X_CFLAGS@
-X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
-X_PRE_LIBS = @X_PRE_LIBS@
 ZLIB_CFLAGS = @ZLIB_CFLAGS@
 ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
diff --git a/tests/icles/playback/decodetest.c b/tests/icles/playback/decodetest.c
index 7511fc5..c471dbf 100644
--- a/tests/icles/playback/decodetest.c
+++ b/tests/icles/playback/decodetest.c
@@ -71,8 +71,7 @@
 }
 
 static void
-new_decoded_pad_cb (GstElement * decodebin, GstPad * pad, gboolean last,
-    GstElement * pipeline)
+pad_added_cb (GstElement * decodebin, GstPad * pad, GstElement * pipeline)
 {
   GstPadLinkReturn ret;
   GstElement *fakesink;
@@ -149,8 +148,7 @@
 
   gst_element_link_pads (source, "src", decoder, "sink");
 
-  g_signal_connect (decoder, "new-decoded-pad",
-      G_CALLBACK (new_decoded_pad_cb), pipeline);
+  g_signal_connect (decoder, "pad-added", G_CALLBACK (pad_added_cb), pipeline);
 
   res = gst_element_set_state (pipeline, GST_STATE_PLAYING);
   if (res == GST_STATE_CHANGE_FAILURE) {
diff --git a/tests/icles/playback/test.c b/tests/icles/playback/test.c
index bbb28af..6a8026f 100644
--- a/tests/icles/playback/test.c
+++ b/tests/icles/playback/test.c
@@ -37,6 +37,7 @@
   element = gst_bin_new ("vbin");
   conv = gst_element_factory_make ("videoconvert", "conv");
   sink = gst_element_factory_make (DEFAULT_VIDEOSINK, "sink");
+  g_assert (sink);
 
   gst_bin_add (GST_BIN (element), conv);
   gst_bin_add (GST_BIN (element), sink);
@@ -60,6 +61,7 @@
   element = gst_bin_new ("abin");
   conv = gst_element_factory_make ("audioconvert", "conv");
   sink = gst_element_factory_make (DEFAULT_AUDIOSINK, "sink");
+  g_assert (sink);
 
   gst_bin_add (GST_BIN (element), conv);
   gst_bin_add (GST_BIN (element), sink);
@@ -73,7 +75,7 @@
 }
 
 static void
-cb_newpad (GstElement * decodebin, GstPad * pad, gboolean last, gpointer data)
+pad_added_cb (GstElement * decodebin, GstPad * pad, gpointer data)
 {
   GstCaps *caps;
   GstStructure *str;
@@ -137,11 +139,18 @@
   }
 }
 
+static void
+error_eos_cb (GstBus * bus, GstMessage * msg, GMainLoop * main_loop)
+{
+  g_main_loop_quit (main_loop);
+}
+
 gint
 main (gint argc, gchar * argv[])
 {
   GstElement *pipeline, *filesrc, *decodebin;
   GstStateChangeReturn res;
+  GstBus *bus;
 
   gst_init (&argc, &argv);
 
@@ -152,8 +161,15 @@
   decodebin = gst_element_factory_make ("decodebin", "decodebin");
   g_assert (decodebin);
 
-  g_signal_connect (G_OBJECT (decodebin), "new-decoded-pad",
-      G_CALLBACK (cb_newpad), pipeline);
+  loop = g_main_loop_new (NULL, TRUE);
+  bus = gst_pipeline_get_bus (GST_PIPELINE (pipeline));
+  gst_bus_add_signal_watch (bus);
+
+  g_signal_connect (bus, "message::eos", G_CALLBACK (error_eos_cb), loop);
+  g_signal_connect (bus, "message::error", G_CALLBACK (error_eos_cb), loop);
+
+  g_signal_connect (G_OBJECT (decodebin), "pad-added",
+      G_CALLBACK (pad_added_cb), pipeline);
 
   gst_bin_add_many (GST_BIN (pipeline), filesrc, decodebin, NULL);
   gst_element_link (filesrc, decodebin);
@@ -162,7 +178,12 @@
     g_print ("usage: %s <uri>\n", argv[0]);
     exit (-1);
   }
-  g_object_set (G_OBJECT (filesrc), "location", argv[1], NULL);
+
+  if (!g_str_has_prefix (argv[1], "file://")) {
+    g_object_set (G_OBJECT (filesrc), "location", argv[1], NULL);
+  } else {
+    g_object_set (G_OBJECT (filesrc), "location", argv[1] + 7, NULL);
+  }
 
   /* set to paused, decodebin will autoplug and signal new_pad callbacks */
   res = gst_element_set_state (pipeline, GST_STATE_PAUSED);
@@ -186,7 +207,6 @@
   }
 
   /* go in the mainloop now */
-  loop = g_main_loop_new (NULL, TRUE);
   g_main_loop_run (loop);
 
   return 0;
diff --git a/tests/icles/playback/test2.c b/tests/icles/playback/test2.c
index 28f62e5..5cf0d7e 100644
--- a/tests/icles/playback/test2.c
+++ b/tests/icles/playback/test2.c
@@ -18,11 +18,20 @@
  */
 #include <gst/gst.h>
 
+static GMainLoop *loop;
+
+static void
+error_eos_cb (GstBus * bus, GstMessage * msg, GMainLoop * main_loop)
+{
+  g_main_loop_quit (main_loop);
+}
+
 gint
 main (gint argc, gchar * argv[])
 {
   GstElement *player;
   GstStateChangeReturn res;
+  GstBus *bus;
 
   gst_init (&argc, &argv);
 
@@ -31,13 +40,20 @@
 
   g_object_set (G_OBJECT (player), "uri", argv[1], NULL);
 
+  loop = g_main_loop_new (NULL, TRUE);
+  bus = gst_pipeline_get_bus (GST_PIPELINE (player));
+  gst_bus_add_signal_watch (bus);
+
+  g_signal_connect (bus, "message::eos", G_CALLBACK (error_eos_cb), loop);
+  g_signal_connect (bus, "message::error", G_CALLBACK (error_eos_cb), loop);
+
   res = gst_element_set_state (player, GST_STATE_PLAYING);
-  if (res != GST_STATE_CHANGE_SUCCESS) {
+  if (res == GST_STATE_CHANGE_FAILURE) {
     g_print ("could not play\n");
     return -1;
   }
 
-  g_main_loop_run (g_main_loop_new (NULL, TRUE));
+  g_main_loop_run (loop);
 
   return 0;
 }
diff --git a/tests/icles/playback/test4.c b/tests/icles/playback/test4.c
index 8fdeb3f..d036d7f 100644
--- a/tests/icles/playback/test4.c
+++ b/tests/icles/playback/test4.c
@@ -28,11 +28,20 @@
 
 #include <gst/gst.h>
 
+static GMainLoop *loop;
+
+static void
+error_eos_cb (GstBus * bus, GstMessage * msg, GMainLoop * main_loop)
+{
+  g_main_loop_quit (main_loop);
+}
+
 gint
 main (gint argc, gchar * argv[])
 {
   GstElement *player;
   GstStateChangeReturn res;
+  GstBus *bus;
 
   gst_init (&argc, &argv);
 
@@ -44,11 +53,18 @@
     exit (-1);
   }
 
+  loop = g_main_loop_new (NULL, TRUE);
+  bus = gst_pipeline_get_bus (GST_PIPELINE (player));
+  gst_bus_add_signal_watch (bus);
+
+  g_signal_connect (bus, "message::eos", G_CALLBACK (error_eos_cb), loop);
+  g_signal_connect (bus, "message::error", G_CALLBACK (error_eos_cb), loop);
+
   g_object_set (G_OBJECT (player), "uri", argv[1], NULL);
 
   g_print ("play...\n");
   res = gst_element_set_state (player, GST_STATE_PLAYING);
-  if (res != GST_STATE_CHANGE_SUCCESS) {
+  if (res == GST_STATE_CHANGE_FAILURE) {
     g_print ("could not play\n");
     return -1;
   }
@@ -58,8 +74,8 @@
 
   g_print ("pause...\n");
   res = gst_element_set_state (player, GST_STATE_PAUSED);
-  if (res != GST_STATE_CHANGE_SUCCESS) {
-    g_print ("could not play\n");
+  if (res == GST_STATE_CHANGE_FAILURE) {
+    g_print ("could not pause\n");
     return -1;
   }
 
@@ -68,7 +84,7 @@
 
   g_print ("play...\n");
   res = gst_element_set_state (player, GST_STATE_PLAYING);
-  if (res != GST_STATE_CHANGE_SUCCESS) {
+  if (res == GST_STATE_CHANGE_FAILURE) {
     g_print ("could not play\n");
     return -1;
   }
@@ -88,12 +104,12 @@
 
   g_print ("play...\n");
   res = gst_element_set_state (player, GST_STATE_PLAYING);
-  if (res != GST_STATE_CHANGE_SUCCESS) {
+  if (res == GST_STATE_CHANGE_FAILURE) {
     g_print ("could not play\n");
     return -1;
   }
 
-  g_main_loop_run (g_main_loop_new (NULL, TRUE));
+  g_main_loop_run (loop);
 
   return 0;
 }
diff --git a/tests/icles/playback/test5.c b/tests/icles/playback/test5.c
index 3be15a1..b841116 100644
--- a/tests/icles/playback/test5.c
+++ b/tests/icles/playback/test5.c
@@ -30,7 +30,7 @@
 static GMainLoop *loop;
 
 static void
-new_pad (GstElement * element, GstPad * pad, gboolean last, GstElement * sink)
+pad_added_cb (GstElement * element, GstPad * pad, GstElement * sink)
 {
   g_print ("New pad...\n");
 }
@@ -108,8 +108,8 @@
   decodebin = gst_element_factory_make ("decodebin", "decodebin");
   g_assert (decodebin);
 
-  g_signal_connect (G_OBJECT (decodebin), "new-decoded-pad",
-      G_CALLBACK (new_pad), NULL);
+  g_signal_connect (G_OBJECT (decodebin), "pad-added",
+      G_CALLBACK (pad_added_cb), NULL);
   g_signal_connect (G_OBJECT (decodebin), "no-more-pads",
       G_CALLBACK (no_more_pads), NULL);
 
@@ -120,7 +120,12 @@
     g_print ("usage: %s <uri>\n", argv[0]);
     exit (-1);
   }
-  g_object_set (G_OBJECT (filesrc), "location", argv[1], NULL);
+
+  if (!g_str_has_prefix (argv[1], "file://")) {
+    g_object_set (G_OBJECT (filesrc), "location", argv[1], NULL);
+  } else {
+    g_object_set (G_OBJECT (filesrc), "location", argv[1] + 7, NULL);
+  }
 
   /* event based programming approach */
   loop = g_main_loop_new (NULL, TRUE);
diff --git a/tests/icles/stress-videooverlay.c b/tests/icles/stress-videooverlay.c
index 433aca2..c7e127c 100644
--- a/tests/icles/stress-videooverlay.c
+++ b/tests/icles/stress-videooverlay.c
@@ -242,5 +242,7 @@
 
   g_main_loop_unref (loop);
 
+  gst_object_unref (bus);
+
   return 0;
 }
diff --git a/tests/icles/test-overlay-blending.c b/tests/icles/test-overlay-blending.c
new file mode 100644
index 0000000..d79b2b9
--- /dev/null
+++ b/tests/icles/test-overlay-blending.c
@@ -0,0 +1,288 @@
+/* GStreamer video overlay composition blending test app
+ * Copyright (C) 2014 Tim-Philipp Müller <tim centricular com>
+
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <gio/gio.h>
+#include <gst/gst.h>
+#include <gst/video/video.h>
+
+#include <math.h>
+
+#define VIDEO_WIDTH 720
+#define VIDEO_HEIGHT 480
+#define VIDEO_FPS 50
+
+/* GdkPixbuf RGBA C-Source image dump from gdk-pixbuf-csource --raw,
+ * gzipped and then base64 encoded */
+const gchar gzipped_pixdata_base64[] =
+    "H4sICPX/Z1QAA2xvZ28ucGl4AO2dsZHrNhCG+ewK2II64ClyrhmnTtSBh4kLUOLQAUuwEhSgFtiA"
+    "A7agwA2wBT5AXJ5w4P5LgKLEO97ezDf2SCAIAftjFwuQ7/c///ojy/77+8eP7Jcs+/WfLMv+t/zW"
+    "dV32pSmK3HK6sXZbFOXV9PZfWipLbWksHdHQZxVpZP+Ee7u62/d7rt0fivIqimJnOX+w/zhauq68"
+    "aWjevfdUR1h3vXq/KMqzufueFN1J1FE+stf8KfCzobZ3q/ePojyT3v8gDSyB09GFND7g/N014rpl"
+    "41xF+Wz0/i817nwFjepP+Rb0PnDwOUOehePyQq1eurlrSkXZOkVx7OblbGK43upf+zcqyldhOT22"
+    "5GvV9ynKXIriQDpKye242Ldcve2KskX6deaRWVeebnpdu32Koryc4t/iaKksmm9Vvg3W3neWk+Vs"
+    "qS2tpSOu9NmZtLG4f7R15paS7jXct1q7XxTl2ZDd157dp1A/6q9I+1Wg+QH1g8pmcb7M0szUHseV"
+    "/KTTtJg39XyudH/NASmbhfzOUtqTNHmhew1cglhT9ad8O16kv7m4eFT3/pVNQ77IX8shLgW/RnsW"
+    "Li7V5y4UJaDo9wnOT9Sjq1fzn4oSQXHft4tZ00Vpr5jI3yiKwmO1sy/63GZKzNpS+dVyLsaYneVk"
+    "Ud+rbIqi32M/kC7DtaXzn6vt9Vm95ZbS0lg64rx2nynKdyHQ3oC+A06ZxdtbkztWundpqS1fKo5j"
+    "9OfQ8+jKJNbW987eye47QGO5WE6u/BPakJP2rt4927X7JhanNaBBzQUpEMbmU2hJk66O2ftt7lrS"
+    "f8vc4yl+0P7llspyWapOl3th9Hdde4yVz4m17eMD2pP8ZBXjI0l3J7oG1Rf1DlH7dyBOpKuB2+dB"
+    "2ZzKXS3ugw9+lnKZB49oH2bL1owGH9K4vX5P7Yg+0+O1/Uj/XSRm8ep9Ws6LclrRfe+N1+xYIxjz"
+    "49Jrh6D+m68inSypPeQja7pXRZp3/z1P6M7XM+xX+7eznElHc3E63Hv2xWmoo89H4yLEnpDg+orq"
+    "DsnJFq7oWqYtLhd7sbTg3i3dL2VO2Xlt5Oo7DzY1Uc8VtOng9eMZtP0ctpnmJa787Tcm/jbUtmHc"
+    "xfmG+p0bwz0R9t1hYr33WTgj/ZEfe1R7HfnJ3NNCjIbKoP8f1SBn2w2Nq3htYI9o7uBopnRI9nmO"
+    "rM/ZveijhWulee+DFrx2xZSHe0Gmn99ix5sd96A+1E97w88pB8bX1ABubfYK4DxG+msYPbWWksqU"
+    "gu5a0u/O68PQ3t99hWF8kW9vC2gQaWTyWtD2sB5UVzOhGeRLJR2y/pB0k9RHgCqxXaP2kP5Qn9TU"
+    "n+He7rumwO/j5oSr0FanQZf/jIp33+650qXXjSj2FP2+y58AbYVrPs5PjuyOxsTvq5H+yYb8Mofg"
+    "u8rgmKb2vq/C+lPtMLj2KOjBbyPSqTS3N9T2Y/D5SbAtdt1r4uapoZ9ife+VroHzlQn2ZCf0dw7K"
+    "7rk2Cn2VMo6z15pP1KPzt5N72LT+4/Q36hv7d+R8INN/oR2zdunZEcyvANuEPj3SNlkNmvHcIY6x"
+    "4eeHWbkiSfugvBT3jeLYifKdCdaHggbC+Q7Vi+YOriznW5PG8BENAj3G5FYQTsslWvcxuqqABke6"
+    "oXzoqGyEfcC1kunnXRRvcfOm2N9mOo4szX1df/DnB4P9BbsOMmANNXf8F9TgaB1p5LlppBehfr+/"
+    "0PiwuhJ+Y+hbpXpbGsNbLtTcc66LPzP31u+rDznPesJPDnnS5Ny2oMGRnSdoEOVERjpE2qTvTmAc"
+    "pGuQ7Yg5EyP7QDY3gjQozREzNIhiNXTv1Ni1BeOCyvvxOJqzUJtzUD6MWaX1wKd4P9HbgmfdhFwL"
+    "p0FOr9x6EOngmtKHpt8TGNUxcQ2yTXGeNLL/lHz4Qxo09/0tNN8gH4zainIcyK7ZuF7Q4D6iDal1"
+    "1kE5ZD+bfD+DsB48BuXy7L7//mEvgulrKWd3iyUi7ZPzS+J6C1wz+XyFkfMWB0D02tHrl2FfMDYX"
+    "yfUvitXg2QvBrlHMyM4JEW3oqC+5/orymwbEUWtr5ck65PKidVCGy4leh71AZgwlv9JN6VDQsZSP"
+    "QddM+iUw7nM5BHWn7jWKbRf6VsrJcjEFtGug2dr7HvntOYQa5OanTT8jY//2tMcXauxCuVBOo+9n"
+    "YYRxnNIhvN7g2AnGI+iamD4w6bnwqN810QctaUM6V8LlDJFPk9a7qfllzmdVEW2Yg18vmkc/xTrw"
+    "yTqU9uDD/fgK+b9EHcK1nTDGcF0Hrok6Gyu00c33KBZlifztYY6fPbcG2poUqwl2LeWXuXv4OVEp"
+    "95XUX/6Yoj5bWx8v0F8OfN3g72rS3TFWewk6RHuHXOwkjoXhfVnsOcdFc5xUJ/Jto7gKlEX5xUlN"
+    "x/T/RNvFvhA0GDXnCfedPY9+ZUhjvu4Wfy5P0CHKoXGaEMci1TYj7sfqJbI+uBfwSNuFelPPXkp+"
+    "k823BGXQWuGh3AmYRzf9zpKMOfvyYB8uEiuC8ZXO00zuZ020G83rs8Y/xU8gmwcaRPVKa+uk/LLh"
+    "8y1NUEbKfc+aww3eP/xS73xIBez5XbKPzwuW3H4h6Ec3j6E9ba6PkR9MGgvBNmPbLeXa58TfKRqM"
+    "brtJPJuTom/vGm4dwJ2lQXmsWe/cM4l7mFtBOCcjPR+B9iMGW4LnGWLHa4bdzNqbj6wj2QYEXYX+"
+    "JPWMKlcOvpdEaIcUu0blUA1eX7Bnbx7os02/N4iLRSMY7QuacWwSc24YjhXQgxQ/sT4s0QbQs2kO"
+    "dl1o+hiYs09p/8x/7kPaqw/3GZGfkPbmka9C5wiQ30RzJdp3R2cTh3MKozk6ta1bgfYGUzU42sMX"
+    "xsP1q4ttuLxfci7Ps18/RwfPI6f2x4QOG087/m8arRlN2vN9yP+G5yiTcpETbUBxCpo7kGZzof3D"
+    "OwGG56ca7/NwDkdrwc1qUNiXT4Hrx9hn1WLOj0n7wDF7Vcka9Gw39lyL9Gz51P78ebAv1G9BfWiv"
+    "A2kQ+mKhzbP2aEz8s8DsmWGDfbxjc/+OENDfib4b3uNUejmZqGd8g/5EY3k1CWt2cz9nONR380XM"
+    "+HPvHlnivU/ce19aA96FA/TsP2984q6jcpeg/f75kTyoxwfFiSW6ZkJLHDHvt8np93Hv3xliCLT2"
+    "OIEx3OTeILMf2EztCYKYNcYG2fMQivKdYbQUpY1s/M6ZTcbpivJMMv5Zpdhn7mdpV1GUO1l/NjTU"
+    "Usx7Z8Iz3ZuM0xXlFWT8s4CsDkmzJZPD0ThUUWaSye8THZ6RqOj/uf2L1f79T0XZCpn8vJJ0Pkb9"
+    "n6IsCOVoBp/HvS+moe83+T4dRVEUZRmyn2F9swl9yAAA";
+
+static GstBuffer *logo_buf;
+
+static GMainLoop *main_loop;
+static gint count;
+
+static GstBuffer *
+create_overlay_buffer (void)
+{
+  GZlibDecompressor *decompress;
+  GConverterResult decomp_res;
+  guchar *gzipped_pixdata, *pixdata;
+  gsize gzipped_size, bytes_read, pixdata_size;
+  GstBuffer *logo_pixels;
+  guint w, h, stride;
+
+  gzipped_pixdata = g_base64_decode (gzipped_pixdata_base64, &gzipped_size);
+  g_assert (gzipped_pixdata != NULL);
+
+  pixdata = g_malloc (64 * 1024);
+
+  decompress = g_zlib_decompressor_new (G_ZLIB_COMPRESSOR_FORMAT_GZIP);
+  decomp_res = g_converter_convert (G_CONVERTER (decompress),
+      gzipped_pixdata, gzipped_size, pixdata, 64 * 1024,
+      G_CONVERTER_INPUT_AT_END, &bytes_read, &pixdata_size, NULL);
+  g_assert (decomp_res == G_CONVERTER_FINISHED);
+  g_assert (bytes_read == gzipped_size);
+  g_free (gzipped_pixdata);
+  g_object_unref (decompress);
+
+  /* 0: Pixbuf magic (0x47646b50) */
+  g_assert (GST_READ_UINT32_BE (pixdata) == 0x47646b50);
+
+  /* 4: length incl. header */
+  /* 8: pixdata_type */
+  /* 12: rowstride (900) */
+  stride = GST_READ_UINT32_BE (pixdata + 12);
+  /* 16: width (225) */
+  w = GST_READ_UINT32_BE (pixdata + 16);
+  /* 20: height (57) */
+  h = GST_READ_UINT32_BE (pixdata + 20);
+  /* 24: pixel_data */
+  GST_LOG ("%dx%d @ %d", w, h, stride);
+  /* we assume that the last line also has padding at the end */
+  g_assert (pixdata_size - 24 >= h * stride);
+
+  logo_pixels = gst_buffer_new_and_alloc (h * stride);
+  gst_buffer_fill (logo_pixels, 0, pixdata + 24, h * stride);
+  gst_buffer_add_video_meta (logo_pixels, GST_VIDEO_FRAME_FLAG_NONE,
+      GST_VIDEO_OVERLAY_COMPOSITION_FORMAT_RGB, w, h);
+
+  g_free (pixdata);
+
+  return logo_pixels;
+}
+
+static gboolean
+bus_cb (GstBus * bus, GstMessage * msg, gpointer user_data)
+{
+  GMainLoop *loop = user_data;
+
+  switch (GST_MESSAGE_TYPE (msg)) {
+    case GST_MESSAGE_ERROR:{
+      GError *err = NULL;
+      gchar *dbg;
+
+      gst_message_parse_error (msg, &err, &dbg);
+      gst_object_default_error (msg->src, err, dbg);
+      g_error_free (err);
+      g_free (dbg);
+      g_main_loop_quit (loop);
+      break;
+    }
+    default:
+      break;
+  }
+  return TRUE;
+}
+
+#define SPEED_SCALE_FACTOR (VIDEO_FPS * 4)
+
+/* nicked from videotestsrc's ball pattern renderer */
+static void
+calculate_position (gint * x, gint * y, guint logo_w, guint logo_h, guint n)
+{
+  guint r_x = logo_w / 2;
+  guint r_y = logo_h / 2;
+  guint w = VIDEO_WIDTH + logo_w;
+  guint h = VIDEO_HEIGHT + logo_h;
+
+  *x = r_x + (0.5 + 0.5 * sin (2 * G_PI * n / SPEED_SCALE_FACTOR))
+      * (w - 2 * r_x);
+  *y = r_y + (0.5 + 0.5 * sin (2 * G_PI * sqrt (2) * n / SPEED_SCALE_FACTOR))
+      * (h - 2 * r_y);
+
+  *x -= logo_w;
+  *y -= logo_h;
+}
+
+static GstPadProbeReturn
+buffer_cb (GstPad * pad, GstPadProbeInfo * info, gpointer user_data)
+{
+  GstVideoOverlayRectangle *rect;
+  GstVideoOverlayComposition *comp;
+  GstVideoFrame frame;
+  GstVideoMeta *vmeta;
+  GstVideoInfo vinfo;
+  GstCaps *caps;
+  gint x, y;
+
+  caps = gst_pad_get_current_caps (pad);
+  gst_video_info_from_caps (&vinfo, caps);
+  gst_caps_unref (caps);
+
+  info->data = gst_buffer_make_writable (info->data);
+
+  vmeta = gst_buffer_get_video_meta (logo_buf);
+
+  calculate_position (&x, &y, vmeta->width, vmeta->height, ++count);
+
+  GST_LOG ("%3d, %3d", x, y);
+
+  rect = gst_video_overlay_rectangle_new_raw (logo_buf, x, y,
+      vmeta->width, vmeta->height, GST_VIDEO_OVERLAY_FORMAT_FLAG_NONE);
+  comp = gst_video_overlay_composition_new (rect);
+  gst_video_overlay_rectangle_unref (rect);
+
+  gst_video_frame_map (&frame, &vinfo, info->data, GST_MAP_READWRITE);
+
+  if (!gst_video_overlay_composition_blend (comp, &frame))
+    g_warning ("Error blending overlay at position (%d,%d)", x, y);
+
+  gst_video_frame_unmap (&frame);
+
+  gst_video_overlay_composition_unref (comp);
+
+  return GST_PAD_PROBE_OK;
+}
+
+int
+main (int argc, char **argv)
+{
+  GOptionEntry options[] = {
+    {NULL}
+  };
+  GOptionContext *ctx;
+  GError *err = NULL;
+  GstElement *src, *q, *capsfilter, *sink;
+  GstElement *pipeline;
+  GstPad *src_pad;
+  GstCaps *filter_caps;
+
+  ctx = g_option_context_new ("");
+  g_option_context_add_main_entries (ctx, options, GETTEXT_PACKAGE);
+  g_option_context_add_group (ctx, gst_init_get_option_group ());
+  if (!g_option_context_parse (ctx, &argc, &argv, &err)) {
+    g_print ("Error initializing: %s\n", err->message);
+    return 1;
+  }
+  g_option_context_free (ctx);
+
+  logo_buf = create_overlay_buffer ();
+
+  main_loop = g_main_loop_new (NULL, FALSE);
+
+  pipeline = gst_pipeline_new ("pipeline");
+
+  src = gst_element_factory_make ("videotestsrc", NULL);
+  gst_util_set_object_arg (G_OBJECT (src), "pattern", "white");
+
+  src_pad = gst_element_get_static_pad (src, "src");
+  gst_pad_add_probe (src_pad, GST_PAD_PROBE_TYPE_BUFFER, buffer_cb,
+      main_loop, NULL);
+  gst_object_unref (src_pad);
+
+  q = gst_element_factory_make ("queue", NULL);
+
+  capsfilter = gst_element_factory_make ("capsfilter", NULL);
+  filter_caps = gst_caps_from_string ("video/x-raw, format = "
+      GST_VIDEO_OVERLAY_COMPOSITION_BLEND_FORMATS);
+  gst_caps_set_simple (filter_caps,
+      "width", G_TYPE_INT, VIDEO_WIDTH,
+      "height", G_TYPE_INT, VIDEO_HEIGHT,
+      "framerate", GST_TYPE_FRACTION, VIDEO_FPS, 1, NULL);
+  g_object_set (capsfilter, "caps", filter_caps, NULL);
+  gst_caps_unref (filter_caps);
+
+  sink = gst_element_factory_make ("ximagesink", NULL);
+
+  gst_bin_add_many (GST_BIN (pipeline), src, q, capsfilter, sink, NULL);
+
+  gst_element_link_many (src, q, capsfilter, sink, NULL);
+
+  count = 0;
+
+  gst_element_set_state (pipeline, GST_STATE_PLAYING);
+
+  gst_bus_add_watch (GST_ELEMENT_BUS (pipeline), bus_cb, main_loop);
+
+  g_main_loop_run (main_loop);
+
+  gst_element_set_state (pipeline, GST_STATE_NULL);
+  gst_object_unref (pipeline);
+  gst_buffer_unref (logo_buf);
+
+  return 0;
+}
diff --git a/tests/icles/test-reverseplay.c b/tests/icles/test-reverseplay.c
new file mode 100644
index 0000000..e562a04
--- /dev/null
+++ b/tests/icles/test-reverseplay.c
@@ -0,0 +1,373 @@
+/* Test example which plays a given file forward, then
+ * at EOS, plays the entire file in reverse
+ * and checks that reverse playback generates the same
+ * output as forward playback but reversed
+ */
+/* GStreamer
+ * Copyright (C) <1999> Erik Walthinsen <omega@cse.ogi.edu>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+#include <gst/gst.h>
+#include <string.h>
+
+typedef struct _PlayState PlayState;
+
+typedef struct _StreamTSRange
+{
+  GstClockTime start;
+  GstClockTime end;
+} StreamTSRange;
+
+typedef struct _StreamInfo
+{
+  PlayState *state;
+  GstPad *pad;
+
+  GstSegment seg;
+
+  GArray *fwd_times;
+  GArray *bkwd_times;
+} StreamInfo;
+
+struct _PlayState
+{
+  GstElement *pipe;
+  GMainLoop *loop;
+  gboolean fwd_play;
+  gint n_sinks;
+
+  GMutex output_lock;
+};
+
+static void
+warning_cb (GstBus * bus, GstMessage * msg, gpointer foo)
+{
+  GError *err = NULL;
+  gchar *dbg = NULL;
+
+  gst_message_parse_warning (msg, &err, &dbg);
+
+  g_printerr ("WARNING: %s (%s)\n", err->message, (dbg) ? dbg : "no details");
+
+  g_error_free (err);
+  g_free (dbg);
+}
+
+static void
+error_cb (GstBus * bus, GstMessage * msg, PlayState * state)
+{
+  GError *err = NULL;
+  gchar *dbg = NULL;
+
+  gst_message_parse_error (msg, &err, &dbg);
+
+  g_printerr ("ERROR: %s (%s)\n", err->message, (dbg) ? dbg : "no details");
+
+  g_main_loop_quit (state->loop);
+
+  g_error_free (err);
+  g_free (dbg);
+}
+
+static void
+eos_cb (GstBus * bus, GstMessage * msg, PlayState * state)
+{
+  if (state->fwd_play) {
+    g_print ("EOS - finished forward play. Starting reverse\n");
+    state->fwd_play = FALSE;
+    gst_element_seek (state->pipe, -1.0, GST_FORMAT_TIME,
+        GST_SEEK_FLAG_ACCURATE | GST_SEEK_FLAG_FLUSH,
+        GST_SEEK_TYPE_SET, 0, GST_SEEK_TYPE_END, 0);
+
+    return;
+  }
+  g_print ("EOS - exiting\n");
+  g_main_loop_quit (state->loop);
+}
+
+static void
+state_cb (GstBus * bus, GstMessage * msg, PlayState * state)
+{
+  if (msg->src == GST_OBJECT (state->pipe)) {
+    GstState old_state, new_state, pending_state;
+
+    gst_message_parse_state_changed (msg, &old_state, &new_state,
+        &pending_state);
+    if (new_state == GST_STATE_PLAYING)
+      g_print ("Decoding ...\n");
+  }
+}
+
+static void
+_destroy_stream_info (StreamInfo * si)
+{
+  g_array_free (si->fwd_times, TRUE);
+  g_array_free (si->bkwd_times, TRUE);
+  g_object_unref (si->pad);
+  g_free (si);
+}
+
+static void
+extend_times (StreamInfo * si, GstClockTime start, GstClockTime end)
+{
+  PlayState *state = si->state;
+  StreamTSRange *ts = NULL;
+  StreamTSRange tsn;
+  GArray *a;
+  guint i, n;
+
+  /* Set up new entry, in case we need it */
+  tsn.start = start;
+  tsn.end = end;
+
+  if (state->fwd_play) {
+    a = si->fwd_times;
+    n = a->len;
+    /* if playing forward, see if this new time extends the last entry */
+    i = n - 1;
+  } else {
+    a = si->bkwd_times;
+    n = a->len;
+    /* if playing backward, see if this new time extends the earliest entry */
+    i = 0;
+  }
+
+  if (n > 0) {
+    ts = &g_array_index (a, StreamTSRange, i);
+    if (start > ts->start) {
+      /* This entry is after the most recent entry */
+      /* Tolerance of 1 millisecond allowed for imprecision */
+      if (ts->end + GST_MSECOND >= start) {
+        GST_LOG ("%p extending entry %d to %" GST_TIME_FORMAT,
+            si, i, GST_TIME_ARGS (end));
+        ts->end = end;
+        return;
+      }
+
+      /* new start > ts->end, so this new entry goes after the first one */
+      GST_LOG ("%p inserting new entry %d %" GST_TIME_FORMAT
+          " to %" GST_TIME_FORMAT, si, i + 1, GST_TIME_ARGS (start),
+          GST_TIME_ARGS (end));
+      g_array_insert_val (a, i + 1, tsn);
+      return;
+    } else if (end + GST_MSECOND > ts->start) {
+      /* This entry precedes the current one, but overlaps it */
+      GST_LOG ("%p pre-extending entry %d to %" GST_TIME_FORMAT,
+          si, i, GST_TIME_ARGS (start));
+      ts->start = start;
+      return;
+    }
+  } else {
+    i = 0;
+  }
+
+  /* otherwise insert a new entry before/at the start */
+  GST_LOG ("%p New entry %d - %" GST_TIME_FORMAT " to %" GST_TIME_FORMAT,
+      si, i, GST_TIME_ARGS (start), GST_TIME_ARGS (end));
+  g_array_insert_val (a, i, tsn);
+}
+
+static void
+dump_times (StreamInfo * si)
+{
+  PlayState *state = si->state;
+  guint i;
+  GArray *a;
+
+  g_mutex_lock (&state->output_lock);
+  if (state->fwd_play)
+    a = si->fwd_times;
+  else
+    a = si->bkwd_times;
+
+  g_print ("Pad %s times:\n", GST_PAD_NAME (si->pad));
+  for (i = 0; i < a->len; i++) {
+    StreamTSRange *ts = &g_array_index (a, StreamTSRange, i);
+
+    g_print ("  %u %" GST_TIME_FORMAT " to %" GST_TIME_FORMAT "\n",
+        i, GST_TIME_ARGS (ts->start), GST_TIME_ARGS (ts->end));
+  }
+  g_mutex_unlock (&state->output_lock);
+}
+
+static GstPadProbeReturn
+handle_output (GstPad * pad, GstPadProbeInfo * info, StreamInfo * si)
+{
+  GstClockTime start, end;
+  GstBuffer *buf;
+
+  GST_LOG_OBJECT (pad, "Fired probe type 0x%x\n", info->type);
+
+  if (info->type & GST_PAD_PROBE_TYPE_BUFFER_LIST) {
+    g_warning ("Buffer list handling not implemented");
+    return GST_PAD_PROBE_DROP;
+  }
+
+  if (info->type & GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) {
+    GstEvent *event = gst_pad_probe_info_get_event (info);
+    switch (GST_EVENT_TYPE (event)) {
+      case GST_EVENT_SEGMENT:
+        gst_event_copy_segment (event, &si->seg);
+        break;
+      case GST_EVENT_EOS:
+        dump_times (si);
+        break;
+      default:
+        break;
+    }
+    return GST_PAD_PROBE_PASS;
+  }
+
+  buf = gst_pad_probe_info_get_buffer (info);
+  if (!GST_BUFFER_PTS_IS_VALID (buf))
+    goto done;
+  end = start = GST_BUFFER_PTS (buf);
+
+  if (GST_BUFFER_DURATION_IS_VALID (buf))
+    end += GST_BUFFER_DURATION (buf);
+
+  gst_segment_clip (&si->seg, GST_FORMAT_TIME, start, end, &start, &end);
+  start = gst_segment_to_stream_time (&si->seg, GST_FORMAT_TIME, start);
+  end = gst_segment_to_stream_time (&si->seg, GST_FORMAT_TIME, end);
+
+  GST_DEBUG_OBJECT (pad, "new buffer %" GST_TIME_FORMAT
+      " to %" GST_TIME_FORMAT, GST_TIME_ARGS (start), GST_TIME_ARGS (end));
+
+  /* Now extend measured time range to include new times */
+  extend_times (si, start, end);
+
+done:
+  return GST_PAD_PROBE_PASS;
+}
+
+static void
+pad_added_cb (GstElement * decodebin, GstPad * pad, PlayState * state)
+{
+  GstPadLinkReturn ret;
+  GstElement *fakesink;
+  GstPad *fakesink_pad;
+  StreamInfo *si;
+
+  fakesink = gst_element_factory_make ("fakesink", NULL);
+#if 0
+  if (state->n_sinks == 1)
+    g_object_set (fakesink, "silent", FALSE, NULL);
+#endif
+
+  si = g_new0 (StreamInfo, 1);
+  si->pad = g_object_ref (pad);
+  si->state = state;
+  si->fwd_times = g_array_new (FALSE, TRUE, sizeof (StreamTSRange));
+  si->bkwd_times = g_array_new (FALSE, TRUE, sizeof (StreamTSRange));
+
+  gst_pad_add_probe (pad, GST_PAD_PROBE_TYPE_DATA_DOWNSTREAM,
+      (GstPadProbeCallback) handle_output, si, (GDestroyNotify)
+      _destroy_stream_info);
+
+  state->n_sinks++;
+  gst_bin_add (GST_BIN (state->pipe), fakesink);
+
+  gst_element_sync_state_with_parent (fakesink);
+
+  fakesink_pad = gst_element_get_static_pad (fakesink, "sink");
+
+  ret = gst_pad_link (pad, fakesink_pad);
+  if (!GST_PAD_LINK_SUCCESSFUL (ret)) {
+    g_printerr ("Failed to link %s:%s to %s:%s (ret = %d)\n",
+        GST_DEBUG_PAD_NAME (pad), GST_DEBUG_PAD_NAME (fakesink_pad), ret);
+  } else {
+    GstCaps *caps = gst_pad_get_current_caps (pad);
+    gchar *s = gst_caps_to_string (caps);
+
+    g_print ("Linked %s:%s to %s:%s caps %s\n", GST_DEBUG_PAD_NAME (pad),
+        GST_DEBUG_PAD_NAME (fakesink_pad), s);
+    gst_caps_unref (caps);
+    g_free (s);
+  }
+
+  gst_object_unref (fakesink_pad);
+}
+
+gint
+main (gint argc, gchar * argv[])
+{
+  PlayState state;
+  GstElement *decoder;
+  GstStateChangeReturn res;
+  GstBus *bus;
+
+  gst_init (&argc, &argv);
+
+  if (argc != 2) {
+    g_printerr ("Decode file from start to end.\n");
+    g_printerr ("Usage: %s URI\n\n", argv[0]);
+    return 1;
+  }
+  /* Start with zeroed-state */
+  memset (&state, 0, sizeof (PlayState));
+
+  state.loop = g_main_loop_new (NULL, TRUE);
+  state.pipe = gst_pipeline_new ("pipeline");
+  state.fwd_play = TRUE;
+  g_mutex_init (&state.output_lock);
+
+  bus = gst_pipeline_get_bus (GST_PIPELINE (state.pipe));
+  gst_bus_add_signal_watch (bus);
+
+  g_signal_connect (bus, "message::eos", G_CALLBACK (eos_cb), &state);
+  g_signal_connect (bus, "message::error", G_CALLBACK (error_cb), &state);
+  g_signal_connect (bus, "message::warning", G_CALLBACK (warning_cb), NULL);
+  g_signal_connect (bus, "message::state-changed", G_CALLBACK (state_cb),
+      &state);
+
+#if 0
+  g_signal_connect (state.pipe, "deep-notify",
+      G_CALLBACK (gst_object_default_deep_notify), NULL);
+#endif
+
+  decoder = gst_element_factory_make ("uridecodebin", "decoder");
+  g_assert (decoder);
+  gst_bin_add (GST_BIN (state.pipe), decoder);
+
+  if (argv[1] && strstr (argv[1], "://") != NULL) {
+    g_object_set (G_OBJECT (decoder), "uri", argv[1], NULL);
+  } else if (argv[1]) {
+    gchar *uri = g_strdup_printf ("file://%s", argv[1]);
+    g_object_set (G_OBJECT (decoder), "uri", uri, NULL);
+    g_free (uri);
+  } else {
+    g_print ("Usage: %s <filename|uri>\n", argv[0]);
+    return -1;
+  }
+
+  g_signal_connect (decoder, "pad-added", G_CALLBACK (pad_added_cb), &state);
+
+  res = gst_element_set_state (state.pipe, GST_STATE_PLAYING);
+  if (res == GST_STATE_CHANGE_FAILURE) {
+    g_print ("could not play\n");
+    return -1;
+  }
+
+  g_main_loop_run (state.loop);
+
+  /* tidy up */
+  gst_element_set_state (state.pipe, GST_STATE_NULL);
+  gst_object_unref (state.pipe);
+  gst_object_unref (bus);
+
+  return 0;
+}
diff --git a/tests/icles/test-textoverlay.c b/tests/icles/test-textoverlay.c
index c1c59d5..13a2b3f 100644
--- a/tests/icles/test-textoverlay.c
+++ b/tests/icles/test-textoverlay.c
@@ -106,6 +106,7 @@
     }
   }
 
+  gst_object_unref (toverlay);
   g_free (pstr);
 }
 
diff --git a/tools/Makefile.am b/tools/Makefile.am
index 8d4d633..74d11ca 100644
--- a/tools/Makefile.am
+++ b/tools/Makefile.am
@@ -1,11 +1,15 @@
 man_MANS = \
+	gst-device-monitor-@GST_API_VERSION@.1 \
 	gst-discoverer-@GST_API_VERSION@.1 \
 	gst-play-@GST_API_VERSION@.1	
 
 bin_PROGRAMS = \
+	gst-device-monitor-@GST_API_VERSION@ \
 	gst-discoverer-@GST_API_VERSION@ \
 	gst-play-@GST_API_VERSION@
 
+gst_device_monitor_@GST_API_VERSION@_SOURCES = gst-device-monitor.c
+
 gst_discoverer_@GST_API_VERSION@_SOURCES = gst-discoverer.c
 
 gst_play_@GST_API_VERSION@_SOURCES = gst-play.c gst-play-kb.c gst-play-kb.h
diff --git a/tools/Makefile.in b/tools/Makefile.in
index dd2ff33..2b515db 100644
--- a/tools/Makefile.in
+++ b/tools/Makefile.in
@@ -80,7 +80,8 @@
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
-bin_PROGRAMS = gst-discoverer-@GST_API_VERSION@$(EXEEXT) \
+bin_PROGRAMS = gst-device-monitor-@GST_API_VERSION@$(EXEEXT) \
+	gst-discoverer-@GST_API_VERSION@$(EXEEXT) \
 	gst-play-@GST_API_VERSION@$(EXEEXT)
 subdir = tools
 DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
@@ -105,7 +106,6 @@
 	$(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-x11.m4 \
 	$(top_srcdir)/common/m4/gst.m4 \
 	$(top_srcdir)/common/m4/gtk-doc.m4 \
 	$(top_srcdir)/common/m4/introspection.m4 \
@@ -128,13 +128,13 @@
 CONFIG_CLEAN_VPATH_FILES =
 am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"
 PROGRAMS = $(bin_PROGRAMS)
-am_gst_discoverer_@GST_API_VERSION@_OBJECTS =  \
-	gst-discoverer.$(OBJEXT)
-gst_discoverer_@GST_API_VERSION@_OBJECTS =  \
-	$(am_gst_discoverer_@GST_API_VERSION@_OBJECTS)
-gst_discoverer_@GST_API_VERSION@_LDADD = $(LDADD)
+am_gst_device_monitor_@GST_API_VERSION@_OBJECTS =  \
+	gst-device-monitor.$(OBJEXT)
+gst_device_monitor_@GST_API_VERSION@_OBJECTS =  \
+	$(am_gst_device_monitor_@GST_API_VERSION@_OBJECTS)
+gst_device_monitor_@GST_API_VERSION@_LDADD = $(LDADD)
 am__DEPENDENCIES_1 =
-gst_discoverer_@GST_API_VERSION@_DEPENDENCIES = $(top_builddir)/gst-libs/gst/pbutils/libgstpbutils-@GST_API_VERSION@.la \
+gst_device_monitor_@GST_API_VERSION@_DEPENDENCIES = $(top_builddir)/gst-libs/gst/pbutils/libgstpbutils-@GST_API_VERSION@.la \
 	$(top_builddir)/gst-libs/gst/tag/libgsttag-@GST_API_VERSION@.la \
 	$(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_API_VERSION@.la \
 	$(top_builddir)/gst-libs/gst/video/libgstvideo-@GST_API_VERSION@.la \
@@ -144,6 +144,17 @@
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
 am__v_lt_1 = 
+am_gst_discoverer_@GST_API_VERSION@_OBJECTS =  \
+	gst-discoverer.$(OBJEXT)
+gst_discoverer_@GST_API_VERSION@_OBJECTS =  \
+	$(am_gst_discoverer_@GST_API_VERSION@_OBJECTS)
+gst_discoverer_@GST_API_VERSION@_LDADD = $(LDADD)
+gst_discoverer_@GST_API_VERSION@_DEPENDENCIES = $(top_builddir)/gst-libs/gst/pbutils/libgstpbutils-@GST_API_VERSION@.la \
+	$(top_builddir)/gst-libs/gst/tag/libgsttag-@GST_API_VERSION@.la \
+	$(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_API_VERSION@.la \
+	$(top_builddir)/gst-libs/gst/video/libgstvideo-@GST_API_VERSION@.la \
+	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_1)
 am_gst_play_@GST_API_VERSION@_OBJECTS = gst-play.$(OBJEXT) \
 	gst-play-kb.$(OBJEXT)
 gst_play_@GST_API_VERSION@_OBJECTS =  \
@@ -189,9 +200,11 @@
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD    " $@;
 am__v_CCLD_1 = 
-SOURCES = $(gst_discoverer_@GST_API_VERSION@_SOURCES) \
+SOURCES = $(gst_device_monitor_@GST_API_VERSION@_SOURCES) \
+	$(gst_discoverer_@GST_API_VERSION@_SOURCES) \
 	$(gst_play_@GST_API_VERSION@_SOURCES)
-DIST_SOURCES = $(gst_discoverer_@GST_API_VERSION@_SOURCES) \
+DIST_SOURCES = $(gst_device_monitor_@GST_API_VERSION@_SOURCES) \
+	$(gst_discoverer_@GST_API_VERSION@_SOURCES) \
 	$(gst_play_@GST_API_VERSION@_SOURCES)
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
@@ -308,6 +321,8 @@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_2_0_CFLAGS = @GIO_UNIX_2_0_CFLAGS@
+GIO_UNIX_2_0_LIBS = @GIO_UNIX_2_0_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
@@ -337,6 +352,8 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
+GST_NET_CFLAGS = @GST_NET_CFLAGS@
+GST_NET_LIBS = @GST_NET_LIBS@
 GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
 GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
@@ -364,7 +381,6 @@
 GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
 GTK_X11_LIBS = @GTK_X11_LIBS@
 HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
-HAVE_X = @HAVE_X@
 HAVE_XSHM = @HAVE_XSHM@
 HAVE_ZLIB = @HAVE_ZLIB@
 HTML_DIR = @HTML_DIR@
@@ -468,13 +484,12 @@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-XMKMF = @XMKMF@
+XSHM_CFLAGS = @XSHM_CFLAGS@
 XSHM_LIBS = @XSHM_LIBS@
+XVIDEO_CFLAGS = @XVIDEO_CFLAGS@
 XVIDEO_LIBS = @XVIDEO_LIBS@
 X_CFLAGS = @X_CFLAGS@
-X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
-X_PRE_LIBS = @X_PRE_LIBS@
 ZLIB_CFLAGS = @ZLIB_CFLAGS@
 ZLIB_LIBS = @ZLIB_LIBS@
 abs_builddir = @abs_builddir@
@@ -540,9 +555,11 @@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 man_MANS = \
+	gst-device-monitor-@GST_API_VERSION@.1 \
 	gst-discoverer-@GST_API_VERSION@.1 \
 	gst-play-@GST_API_VERSION@.1	
 
+gst_device_monitor_@GST_API_VERSION@_SOURCES = gst-device-monitor.c
 gst_discoverer_@GST_API_VERSION@_SOURCES = gst-discoverer.c
 gst_play_@GST_API_VERSION@_SOURCES = gst-play.c gst-play-kb.c gst-play-kb.h
 noinst_HEADERS = gst-play-kb.h
@@ -639,6 +656,10 @@
 	echo " rm -f" $$list; \
 	rm -f $$list
 
+gst-device-monitor-@GST_API_VERSION@$(EXEEXT): $(gst_device_monitor_@GST_API_VERSION@_OBJECTS) $(gst_device_monitor_@GST_API_VERSION@_DEPENDENCIES) $(EXTRA_gst_device_monitor_@GST_API_VERSION@_DEPENDENCIES) 
+	@rm -f gst-device-monitor-@GST_API_VERSION@$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(gst_device_monitor_@GST_API_VERSION@_OBJECTS) $(gst_device_monitor_@GST_API_VERSION@_LDADD) $(LIBS)
+
 gst-discoverer-@GST_API_VERSION@$(EXEEXT): $(gst_discoverer_@GST_API_VERSION@_OBJECTS) $(gst_discoverer_@GST_API_VERSION@_DEPENDENCIES) $(EXTRA_gst_discoverer_@GST_API_VERSION@_DEPENDENCIES) 
 	@rm -f gst-discoverer-@GST_API_VERSION@$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(gst_discoverer_@GST_API_VERSION@_OBJECTS) $(gst_discoverer_@GST_API_VERSION@_LDADD) $(LIBS)
@@ -653,6 +674,7 @@
 distclean-compile:
 	-rm -f *.tab.c
 
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gst-device-monitor.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gst-discoverer.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gst-play-kb.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gst-play.Po@am__quote@
diff --git a/tools/gst-device-monitor-1.0.1 b/tools/gst-device-monitor-1.0.1
new file mode 100644
index 0000000..ba1b14a
--- /dev/null
+++ b/tools/gst-device-monitor-1.0.1
@@ -0,0 +1,43 @@
+.TH "GStreamer" "1" "June 2014" "" ""
+.SH "NAME"
+gst\-device\-monitor\-1.0 \- Simple command line testing tool for GStreamer device monitors
+.SH "SYNOPSIS"
+\fBgst\-device\-monitor\-1.0\fR \fI[DEVICE_CLASSES[:FILTER_CAPS]] [DEVICE_CLASSES[:FILTER_CAPS]]\fR
+.SH "DESCRIPTION"
+.LP
+\fIgst\-device\-monitor\-1.0\fP is a command line tool that can be used to test
+GStreamer's device monitoring functionality. By default it will just print a
+list of all devices found and exit, but you can also make it wait around for
+more devices by passing the \-\-follow option. You can also pass it one or
+more filter arguments to filter the kind of devices you are interested in.
+
+.SH "OPTIONS"
+.l
+\fIgst\-device\-monitor\-1.0\fP accepts the following options:
+.TP 8
+.B  \-\-help
+Print help synopsis and available command line options
+.TP 8
+.B  \-\-version
+Print version and exit
+.TP 8
+.B  \-f, \-\-follow
+Don't exit after showing the initial device list, but wait for devices to be added or removed
+
+.SH "EXAMPLES"
+.l
+.B  gst\-device\-monitor\-1.0
+.TP 8
+.B  gst\-device\-monitor\-1.0 --follow
+.TP 8
+.B  gst\-device\-monitor\-1.0 Audio/Source
+.TP 8
+.B  gst\-device\-monitor\-1.0 Video/Source:video/x-raw
+
+.SH "SEE ALSO"
+.BR gst\-inspect\-1.0 (1),
+.BR gst\-launch\-1.0 (1),
+.BR gst\-discoverer\-1.0 (1),
+.BR gst\-play\-1.0 (1),
+.SH "AUTHOR"
+The GStreamer team at http://gstreamer.freedesktop.org/
diff --git a/tools/gst-device-monitor.c b/tools/gst-device-monitor.c
new file mode 100644
index 0000000..3388d95
--- /dev/null
+++ b/tools/gst-device-monitor.c
@@ -0,0 +1,232 @@
+/* GStreamer command line device monitor testing utility
+ * Copyright (C) 2014 Tim-Philipp Müller <tim@centricular.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <locale.h>
+
+#include <gst/gst.h>
+#include <gst/gst-i18n-app.h>
+#include <gst/math-compat.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+GST_DEBUG_CATEGORY (devmon_debug);
+#define GST_CAT_DEFAULT devmon_debug
+
+typedef struct
+{
+  GMainLoop *loop;
+  GstDeviceMonitor *monitor;
+  guint bus_watch_id;
+} DevMonApp;
+
+static gboolean bus_msg_handler (GstBus * bus, GstMessage * msg, gpointer data);
+
+static void
+device_added (GstDevice * device)
+{
+  gchar *device_class, *caps_str, *name;
+  GstCaps *caps;
+  guint i, size = 0;
+
+  caps = gst_device_get_caps (device);
+  if (caps != NULL)
+    size = gst_caps_get_size (caps);
+
+  name = gst_device_get_display_name (device);
+  device_class = gst_device_get_device_class (device);
+
+  g_print ("\nDevice found:\n\n");
+  g_print ("\tname  : %s\n", name);
+  g_print ("\tclass : %s\n", device_class);
+  for (i = 0; i < size; ++i) {
+    GstStructure *s = gst_caps_get_structure (caps, i);
+    caps_str = gst_structure_to_string (s);
+    g_print ("\t%s %s\n", (i == 0) ? "caps  :" : "       ", caps_str);
+    g_free (caps_str);
+  }
+
+  g_print ("\n");
+
+  g_free (name);
+  g_free (device_class);
+
+  if (caps != NULL)
+    gst_caps_unref (caps);
+}
+
+static void
+device_removed (GstDevice * device)
+{
+  gchar *name;
+
+  name = gst_device_get_display_name (device);
+
+  g_print ("Device removed:\n");
+  g_print ("\tname  : %s\n", name);
+
+  g_free (name);
+}
+
+static gboolean
+bus_msg_handler (GstBus * bus, GstMessage * msg, gpointer user_data)
+{
+  GstDevice *device;
+
+  switch (GST_MESSAGE_TYPE (msg)) {
+    case GST_MESSAGE_DEVICE_ADDED:
+      gst_message_parse_device_added (msg, &device);
+      device_added (device);
+      break;
+    case GST_MESSAGE_DEVICE_REMOVED:
+      gst_message_parse_device_removed (msg, &device);
+      device_removed (device);
+      break;
+    default:
+      g_print ("%s message\n", GST_MESSAGE_TYPE_NAME (msg));
+      break;
+  }
+
+  return TRUE;
+}
+
+int
+main (int argc, char **argv)
+{
+  gboolean print_version = FALSE;
+  GError *err = NULL;
+  gchar **arg, **args = NULL;
+  gboolean follow = FALSE;
+  GOptionContext *ctx;
+  GOptionEntry options[] = {
+    {"version", 0, 0, G_OPTION_ARG_NONE, &print_version,
+        N_("Print version information and exit"), NULL},
+    {"follow", 'f', 0, G_OPTION_ARG_NONE, &follow,
+        N_("Don't exit after showing the initial device list, but wait "
+              "for devices to added/removed."), NULL},
+    {G_OPTION_REMAINING, 0, 0, G_OPTION_ARG_STRING_ARRAY, &args, NULL},
+    {NULL}
+  };
+  GTimer *timer;
+  DevMonApp app;
+  GstBus *bus;
+  GList *devices;
+
+  setlocale (LC_ALL, "");
+
+#ifdef ENABLE_NLS
+  bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR);
+  bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
+  textdomain (GETTEXT_PACKAGE);
+#endif
+
+  g_set_prgname ("gst-device-monitor-" GST_API_VERSION);
+
+  ctx = g_option_context_new ("[DEVICE_CLASSES[:FILTER_CAPS]] "
+      "[DEVICE_CLASSES[:FILTER_CAPS]] …");
+  g_option_context_add_main_entries (ctx, options, GETTEXT_PACKAGE);
+  g_option_context_add_group (ctx, gst_init_get_option_group ());
+  if (!g_option_context_parse (ctx, &argc, &argv, &err)) {
+    g_print ("Error initializing: %s\n", GST_STR_NULL (err->message));
+    return 1;
+  }
+  g_option_context_free (ctx);
+
+  GST_DEBUG_CATEGORY_INIT (devmon_debug, "device-monitor", 0,
+      "gst-device-monitor");
+
+  if (print_version) {
+    gchar *version_str;
+
+    version_str = gst_version_string ();
+    g_print ("%s version %s\n", g_get_prgname (), PACKAGE_VERSION);
+    g_print ("%s\n", version_str);
+    g_print ("%s\n", GST_PACKAGE_ORIGIN);
+    g_free (version_str);
+
+    return 0;
+  }
+
+  app.loop = g_main_loop_new (NULL, FALSE);
+  app.monitor = gst_device_monitor_new ();
+
+  bus = gst_device_monitor_get_bus (app.monitor);
+  app.bus_watch_id = gst_bus_add_watch (bus, bus_msg_handler, &app);
+  gst_object_unref (bus);
+
+  /* process optional remaining arguments in the form
+   * DEVICE_CLASSES or DEVICE_CLASSES:FILTER_CAPS */
+  for (arg = args; arg != NULL && *arg != NULL; ++arg) {
+    gchar **filters = g_strsplit (*arg, ":", -1);
+    if (filters != NULL && filters[0] != NULL) {
+      GstCaps *caps = NULL;
+
+      if (filters[1] != NULL) {
+        caps = gst_caps_from_string (filters[1]);
+        if (caps == NULL)
+          g_warning ("Couldn't parse device filter caps '%s'", filters[1]);
+      }
+      gst_device_monitor_add_filter (app.monitor, filters[0], caps);
+      if (caps)
+        gst_caps_unref (caps);
+      g_strfreev (filters);
+    }
+  }
+
+  g_print ("Probing devices...\n\n");
+
+  timer = g_timer_new ();
+
+  if (!gst_device_monitor_start (app.monitor))
+    g_error ("Failed to start device monitor!");
+
+  GST_INFO ("Took %.2f seconds", g_timer_elapsed (timer, NULL));
+
+  devices = gst_device_monitor_get_devices (app.monitor);
+  if (devices != NULL) {
+    while (devices != NULL) {
+      GstDevice *device = devices->data;
+
+      device_added (device);
+      gst_object_unref (device);
+      devices = g_list_remove_link (devices, devices);
+    }
+  } else {
+    g_print ("No devices found!\n");
+  }
+
+  if (follow) {
+    g_print ("Monitoring devices, waiting for devices to be removed or "
+        "new devices to be added...\n");
+    g_main_loop_run (app.loop);
+  }
+
+  gst_device_monitor_stop (app.monitor);
+  gst_object_unref (app.monitor);
+
+  g_source_remove (app.bus_watch_id);
+  g_main_loop_unref (app.loop);
+  g_timer_destroy (timer);
+
+  return 0;
+}
diff --git a/tools/gst-discoverer.c b/tools/gst-discoverer.c
index db351b3..045332d 100644
--- a/tools/gst-discoverer.c
+++ b/tools/gst-discoverer.c
@@ -28,6 +28,8 @@
 #include <gst/gst.h>
 #include <gst/pbutils/pbutils.h>
 
+#define MAX_INDENT 40
+
 /* *INDENT-OFF* */
 static void my_g_string_append_printf (GString * str, int depth, const gchar * format, ...) G_GNUC_PRINTF (3, 4);
 /* *INDENT-ON* */
@@ -59,7 +61,7 @@
 
 static void
 gst_stream_information_to_string (GstDiscovererStreamInfo * info, GString * s,
-    gint depth)
+    guint depth)
 {
   gchar *tmp;
   GstCaps *caps;
@@ -85,13 +87,69 @@
       gst_discoverer_stream_info_get_stream_id (info));
 }
 
+static void
+print_tag_foreach (const GstTagList * tags, const gchar * tag,
+    gpointer user_data)
+{
+  GValue val = { 0, };
+  gchar *str;
+  guint depth = GPOINTER_TO_UINT (user_data);
+
+  if (!gst_tag_list_copy_value (&val, tags, tag))
+    return;
+
+  if (G_VALUE_HOLDS_STRING (&val)) {
+    str = g_value_dup_string (&val);
+  } else if (G_VALUE_TYPE (&val) == GST_TYPE_SAMPLE) {
+    GstSample *sample = gst_value_get_sample (&val);
+    GstBuffer *img = gst_sample_get_buffer (sample);
+    GstCaps *caps = gst_sample_get_caps (sample);
+
+    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 {
+    str = gst_value_serialize (&val);
+  }
+
+  g_print ("%*s%s: %s\n", 2 * depth, " ", gst_tag_get_nick (tag), str);
+  g_free (str);
+
+  g_value_unset (&val);
+}
+
+static void
+print_tags_topology (guint depth, const GstTagList * tags)
+{
+  g_print ("%*sTags:\n", 2 * depth, " ");
+  if (tags) {
+    gst_tag_list_foreach (tags, print_tag_foreach,
+        GUINT_TO_POINTER (depth + 1));
+  } else {
+    g_print ("%*sNone\n", 2 * (depth + 1), " ");
+  }
+  if (verbose)
+    g_print ("%*s\n", 2 * depth, " ");
+}
+
 static gchar *
 gst_stream_audio_information_to_string (GstDiscovererStreamInfo * info,
-    gint depth)
+    guint depth)
 {
   GstDiscovererAudioInfo *audio_info;
   GString *s;
-  gchar *tmp;
   const gchar *ctmp;
   int len = 400;
   const GstTagList *tags;
@@ -118,28 +176,18 @@
   my_g_string_append_printf (s, depth, "Max bitrate: %u\n",
       gst_discoverer_audio_info_get_max_bitrate (audio_info));
 
-  my_g_string_append_printf (s, depth, "Tags:\n");
   tags = gst_discoverer_stream_info_get_tags (info);
-  if (tags) {
-    tmp = gst_tag_list_to_string (tags);
-    my_g_string_append_printf (s, depth, "  %s\n", tmp);
-    g_free (tmp);
-  } else {
-    my_g_string_append_printf (s, depth, "  None\n");
-  }
-  if (verbose)
-    my_g_string_append_printf (s, depth, "\n");
+  print_tags_topology (depth, tags);
 
   return g_string_free (s, FALSE);
 }
 
 static gchar *
 gst_stream_video_information_to_string (GstDiscovererStreamInfo * info,
-    gint depth)
+    guint depth)
 {
   GstDiscovererVideoInfo *video_info;
   GString *s;
-  gchar *tmp;
   int len = 500;
   const GstTagList *tags;
 
@@ -173,28 +221,18 @@
   my_g_string_append_printf (s, depth, "Max bitrate: %u\n",
       gst_discoverer_video_info_get_max_bitrate (video_info));
 
-  my_g_string_append_printf (s, depth, "Tags:\n");
   tags = gst_discoverer_stream_info_get_tags (info);
-  if (tags) {
-    tmp = gst_tag_list_to_string (tags);
-    my_g_string_append_printf (s, depth, "  %s\n", tmp);
-    g_free (tmp);
-  } else {
-    my_g_string_append_printf (s, depth, "  None\n");
-  }
-  if (verbose)
-    my_g_string_append_printf (s, depth, "\n");
+  print_tags_topology (depth, tags);
 
   return g_string_free (s, FALSE);
 }
 
 static gchar *
 gst_stream_subtitle_information_to_string (GstDiscovererStreamInfo * info,
-    gint depth)
+    guint depth)
 {
   GstDiscovererSubtitleInfo *subtitle_info;
   GString *s;
-  gchar *tmp;
   const gchar *ctmp;
   int len = 400;
   const GstTagList *tags;
@@ -210,17 +248,8 @@
   my_g_string_append_printf (s, depth, "Language: %s\n",
       ctmp ? ctmp : "<unknown>");
 
-  my_g_string_append_printf (s, depth, "Tags:\n");
   tags = gst_discoverer_stream_info_get_tags (info);
-  if (tags) {
-    tmp = gst_tag_list_to_string (tags);
-    my_g_string_append_printf (s, depth, "  %s\n", tmp);
-    g_free (tmp);
-  } else {
-    my_g_string_append_printf (s, depth, "  None\n");
-  }
-  if (verbose)
-    my_g_string_append_printf (s, depth, "\n");
+  print_tags_topology (depth, tags);
 
   return g_string_free (s, FALSE);
 }
@@ -270,7 +299,7 @@
 }
 
 static void
-print_topology (GstDiscovererStreamInfo * info, gint depth)
+print_topology (GstDiscovererStreamInfo * info, guint depth)
 {
   GstDiscovererStreamInfo *next;
 
@@ -298,33 +327,10 @@
 }
 
 static void
-print_tag_foreach (const GstTagList * tags, const gchar * tag,
-    gpointer user_data)
-{
-  GValue val = { 0, };
-  gchar *str;
-  gint depth = GPOINTER_TO_INT (user_data);
-
-  gst_tag_list_copy_value (&val, tags, tag);
-
-  if (G_VALUE_HOLDS_STRING (&val))
-    str = g_value_dup_string (&val);
-  else
-    str = gst_value_serialize (&val);
-
-  g_print ("%*s%s: %s\n", 2 * depth, " ", gst_tag_get_nick (tag), str);
-  g_free (str);
-
-  g_value_unset (&val);
-}
-
-#define MAX_INDENT 40
-
-static void
 print_toc_entry (gpointer data, gpointer user_data)
 {
   GstTocEntry *entry = (GstTocEntry *) data;
-  gint depth = GPOINTER_TO_INT (user_data);
+  guint depth = GPOINTER_TO_UINT (user_data);
   guint indent = MIN (GPOINTER_TO_UINT (user_data), MAX_INDENT);
   GstTagList *tags;
   GList *subentries;
@@ -481,7 +487,7 @@
     uri = g_strdup (filename);
   }
 
-  if (async == FALSE) {
+  if (!async) {
     g_print ("Analyzing %s\n", uri);
     info = gst_discoverer_discover_uri (dc, uri, &err);
     print_info (info, err);
@@ -565,7 +571,7 @@
     exit (1);
   }
 
-  if (async == FALSE) {
+  if (!async) {
     gint i;
     for (i = 1; i < argc; i++)
       process_file (dc, argv[i]);
diff --git a/tools/gst-play-1.0.1 b/tools/gst-play-1.0.1
index 8c16e2f..436b0fd 100644
--- a/tools/gst-play-1.0.1
+++ b/tools/gst-play-1.0.1
@@ -50,6 +50,15 @@
 .B  ARROW LEFT/RIGHT
 Seek back/forward
 .TP 8
+.B  +/-
+Increase/decrease playback rate
+.TP 8
+.B  d
+Reverse playback direction
+.TP 8
+.B  t
+Cycle through trick modes
+.TP 8
 .B  >
 Skip to next item in playlist
 .TP 8
diff --git a/tools/gst-play.c b/tools/gst-play.c
index c467439..860e451 100644
--- a/tools/gst-play.c
+++ b/tools/gst-play.c
@@ -2,6 +2,7 @@
  *
  * Copyright (C) 2013-2014 Tim-Philipp Müller <tim centricular net>
  * Copyright (C) 2013 Collabora Ltd.
+ * Copyright (C) 2015 Centricular Ltd
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -34,6 +35,8 @@
 #include <stdio.h>
 #include <string.h>
 
+#include <glib/gprintf.h>
+
 #include "gst-play-kb.h"
 
 #define VOLUME_STEPS 20
@@ -41,6 +44,16 @@
 GST_DEBUG_CATEGORY (play_debug);
 #define GST_CAT_DEFAULT play_debug
 
+typedef enum
+{
+  GST_PLAY_TRICK_MODE_NONE = 0,
+  GST_PLAY_TRICK_MODE_DEFAULT,
+  GST_PLAY_TRICK_MODE_DEFAULT_NO_AUDIO,
+  GST_PLAY_TRICK_MODE_KEY_UNITS,
+  GST_PLAY_TRICK_MODE_KEY_UNITS_NO_AUDIO,
+  GST_PLAY_TRICK_MODE_LAST
+} GstPlayTrickMode;
+
 typedef struct
 {
   gchar **uris;
@@ -63,8 +76,13 @@
 
   /* configuration */
   gboolean gapless;
+
+  GstPlayTrickMode trick_mode;
+  gdouble rate;
 } GstPlay;
 
+static gboolean quiet = FALSE;
+
 static gboolean play_bus_msg (GstBus * bus, GstMessage * msg, gpointer data);
 static gboolean play_next (GstPlay * play);
 static gboolean play_prev (GstPlay * play);
@@ -73,6 +91,34 @@
 static void play_reset (GstPlay * play);
 static void play_set_relative_volume (GstPlay * play, gdouble volume_step);
 
+/* *INDENT-OFF* */
+static void gst_play_printf (const gchar * format, ...) G_GNUC_PRINTF (1, 2);
+/* *INDENT-ON* */
+
+static void
+gst_play_printf (const gchar * format, ...)
+{
+  gchar *str = NULL;
+  va_list args;
+  int len;
+
+  if (quiet)
+    return;
+
+  va_start (args, format);
+
+  len = g_vasprintf (&str, format, args);
+
+  va_end (args);
+
+  if (len > 0 && str != NULL)
+    g_print ("%s", str);
+
+  g_free (str);
+}
+
+#define g_print gst_play_printf
+
 static GstPlay *
 play_new (gchar ** uris, const gchar * audio_sink, const gchar * video_sink,
     gboolean gapless, gdouble initial_volume)
@@ -131,7 +177,11 @@
         G_CALLBACK (play_about_to_finish), play);
   }
 
-  play_set_relative_volume (play, initial_volume - 1.0);
+  if (initial_volume != -1)
+    play_set_relative_volume (play, initial_volume - 1.0);
+
+  play->rate = 1.0;
+  play->trick_mode = GST_PLAY_TRICK_MODE_NONE;
 
   return play;
 }
@@ -595,6 +645,133 @@
   }
 }
 
+static gboolean
+play_set_rate_and_trick_mode (GstPlay * play, gdouble rate,
+    GstPlayTrickMode mode)
+{
+  GstSeekFlags seek_flags;
+  GstQuery *query;
+  GstEvent *seek;
+  gboolean seekable = FALSE;
+  gint64 pos = -1;
+
+  g_return_val_if_fail (rate != 0, FALSE);
+
+  if (!gst_element_query_position (play->playbin, GST_FORMAT_TIME, &pos))
+    return FALSE;
+
+  query = gst_query_new_seeking (GST_FORMAT_TIME);
+  if (!gst_element_query (play->playbin, query)) {
+    gst_query_unref (query);
+    return FALSE;
+  }
+
+  gst_query_parse_seeking (query, NULL, &seekable, NULL, NULL);
+  gst_query_unref (query);
+
+  if (!seekable)
+    return FALSE;
+
+  seek_flags = GST_SEEK_FLAG_FLUSH;
+
+  switch (mode) {
+    case GST_PLAY_TRICK_MODE_DEFAULT:
+      seek_flags |= GST_SEEK_FLAG_TRICKMODE;
+      break;
+    case GST_PLAY_TRICK_MODE_DEFAULT_NO_AUDIO:
+      seek_flags |= GST_SEEK_FLAG_TRICKMODE | GST_SEEK_FLAG_TRICKMODE_NO_AUDIO;
+      break;
+    case GST_PLAY_TRICK_MODE_KEY_UNITS:
+      seek_flags |= GST_SEEK_FLAG_TRICKMODE_KEY_UNITS;
+      break;
+    case GST_PLAY_TRICK_MODE_KEY_UNITS_NO_AUDIO:
+      seek_flags |=
+          GST_SEEK_FLAG_TRICKMODE_KEY_UNITS | GST_SEEK_FLAG_TRICKMODE_NO_AUDIO;
+      break;
+    case GST_PLAY_TRICK_MODE_NONE:
+    default:
+      break;
+  }
+
+  if (rate > 0)
+    seek = gst_event_new_seek (rate, GST_FORMAT_TIME,
+        seek_flags | GST_SEEK_FLAG_KEY_UNIT,
+        /* start */ GST_SEEK_TYPE_SET, pos,
+        /* stop */ GST_SEEK_TYPE_NONE, 0);
+  else
+    seek = gst_event_new_seek (rate, GST_FORMAT_TIME,
+        seek_flags | GST_SEEK_FLAG_ACCURATE,
+        /* start */ GST_SEEK_TYPE_SET, 0,
+        /* stop */ GST_SEEK_TYPE_SET, pos);
+
+  if (!gst_element_send_event (play->playbin, seek))
+    return FALSE;
+
+  play->rate = rate;
+  play->trick_mode = mode;
+  return TRUE;
+}
+
+static void
+play_set_playback_rate (GstPlay * play, gdouble rate)
+{
+  if (play_set_rate_and_trick_mode (play, rate, play->trick_mode)) {
+    g_print ("Rate: %.2f                               \n", rate);
+  } else {
+    g_print ("\nCould not change playback rate to %.2f.\n", rate);
+  }
+}
+
+static void
+play_set_relative_playback_rate (GstPlay * play, gdouble rate_step,
+    gboolean reverse_direction)
+{
+  gdouble new_rate = play->rate + rate_step;
+
+  if (reverse_direction)
+    new_rate *= -1.0;
+
+  play_set_playback_rate (play, new_rate);
+}
+
+static const gchar *
+trick_mode_get_description (GstPlayTrickMode mode)
+{
+  switch (mode) {
+    case GST_PLAY_TRICK_MODE_NONE:
+      return "normal playback, trick modes disabled";
+    case GST_PLAY_TRICK_MODE_DEFAULT:
+      return "trick mode: default";
+    case GST_PLAY_TRICK_MODE_DEFAULT_NO_AUDIO:
+      return "trick mode: default, no audio";
+    case GST_PLAY_TRICK_MODE_KEY_UNITS:
+      return "trick mode: key frames only";
+    case GST_PLAY_TRICK_MODE_KEY_UNITS_NO_AUDIO:
+      return "trick mode: key frames only, no audio";
+    default:
+      break;
+  }
+  return "unknown trick mode";
+}
+
+static void
+play_switch_trick_mode (GstPlay * play)
+{
+  GstPlayTrickMode new_mode = ++play->trick_mode;
+  const gchar *mode_desc;
+
+  if (new_mode == GST_PLAY_TRICK_MODE_LAST)
+    new_mode = GST_PLAY_TRICK_MODE_NONE;
+
+  mode_desc = trick_mode_get_description (new_mode);
+
+  if (play_set_rate_and_trick_mode (play, play->rate, new_mode)) {
+    g_print ("Rate: %.2f (%s)                      \n", play->rate, mode_desc);
+  } else {
+    g_print ("\nCould not change trick mode to %s.\n", mode_desc);
+  }
+}
+
 static void
 keyboard_cb (const gchar * key_input, gpointer user_data)
 {
@@ -617,6 +794,32 @@
     case '<':
       play_prev (play);
       break;
+    case '+':
+      if (play->rate > -0.2 && play->rate < 0.0)
+        play_set_relative_playback_rate (play, 0.0, TRUE);
+      else if (ABS (play->rate) < 2.0)
+        play_set_relative_playback_rate (play, 0.1, FALSE);
+      else if (ABS (play->rate) < 4.0)
+        play_set_relative_playback_rate (play, 0.5, FALSE);
+      else
+        play_set_relative_playback_rate (play, 1.0, FALSE);
+      break;
+    case '-':
+      if (play->rate > 0.0 && play->rate < 0.20)
+        play_set_relative_playback_rate (play, 0.0, TRUE);
+      else if (ABS (play->rate) <= 2.0)
+        play_set_relative_playback_rate (play, -0.1, FALSE);
+      else if (ABS (play->rate) <= 4.0)
+        play_set_relative_playback_rate (play, -0.5, FALSE);
+      else
+        play_set_relative_playback_rate (play, -1.0, FALSE);
+      break;
+    case 'd':
+      play_set_relative_playback_rate (play, 0.0, TRUE);
+      break;
+    case 't':
+      play_switch_trick_mode (play);
+      break;
     case 27:                   /* ESC */
       if (key_input[1] == '\0') {
         g_main_loop_quit (play->loop);
@@ -650,7 +853,7 @@
   gboolean interactive = FALSE; /* FIXME: maybe enable by default? */
   gboolean gapless = FALSE;
   gboolean shuffle = FALSE;
-  gdouble volume = 1.0;
+  gdouble volume = -1;
   gchar **filenames = NULL;
   gchar *audio_sink = NULL;
   gchar *video_sink = NULL;
@@ -676,6 +879,8 @@
         N_("Volume"), NULL},
     {"playlist", 0, 0, G_OPTION_ARG_FILENAME, &playlist_file,
         N_("Playlist file containing input media files"), NULL},
+    {"quiet", 'q', 0, G_OPTION_ARG_NONE, &quiet,
+        N_("Do not print any output (apart from errors)"), NULL},
     {G_OPTION_REMAINING, 0, 0, G_OPTION_ARG_FILENAME_ARRAY, &filenames, NULL},
     {NULL}
   };
diff --git a/win32/common/_stdint.h b/win32/common/_stdint.h
index 0d7745c..a68e048 100644
--- a/win32/common/_stdint.h
+++ b/win32/common/_stdint.h
@@ -1,8 +1,8 @@
 #ifndef _GST_PLUGINS_BASE__STDINT_H
 #define _GST_PLUGINS_BASE__STDINT_H 1
 #ifndef _GENERATED_STDINT_H
-#define _GENERATED_STDINT_H "gst-plugins-base 1.3.3"
-/* generated using gnu compiler Debian clang version 3.5.0-2 (trunk) (based on LLVM 3.5.0) */
+#define _GENERATED_STDINT_H "gst-plugins-base 1.4.0"
+/* generated using gnu compiler Debian clang version 3.5.0-1 (trunk) (based on LLVM 3.5.0) */
 #define _STDINT_HAVE_STDINT_H 1
 #include <stdint.h>
 #endif
diff --git a/win32/common/config.h b/win32/common/config.h
index 03a480c..2db8fac 100644
--- a/win32/common/config.h
+++ b/win32/common/config.h
@@ -84,7 +84,7 @@
 #define GST_PACKAGE_ORIGIN "Unknown package origin"
 
 /* GStreamer package release date/time for plugins as YYYY-MM-DD */
-#define GST_PACKAGE_RELEASE_DATETIME "2014-06-22"
+#define GST_PACKAGE_RELEASE_DATETIME "2014-07-19"
 
 /* Define if static plugins should be built */
 #undef GST_PLUGIN_BUILD_STATIC
@@ -325,7 +325,7 @@
 #define PACKAGE_NAME "GStreamer Base Plug-ins"
 
 /* Define to the full name and version of this package. */
-#define PACKAGE_STRING "GStreamer Base Plug-ins 1.3.3"
+#define PACKAGE_STRING "GStreamer Base Plug-ins 1.4.0"
 
 /* Define to the one symbol short name of this package. */
 #define PACKAGE_TARNAME "gst-plugins-base"
@@ -334,7 +334,7 @@
 #undef PACKAGE_URL
 
 /* Define to the version of this package. */
-#define PACKAGE_VERSION "1.3.3"
+#define PACKAGE_VERSION "1.4.0"
 
 /* directory where plugins are located */
 #ifdef _DEBUG
@@ -368,7 +368,7 @@
 #undef USE_TREMOLO
 
 /* Version number of package */
-#define VERSION "1.3.3"
+#define VERSION "1.4.0"
 
 /* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
    significant byte first (like Motorola and SPARC, unlike Intel). */
diff --git a/win32/common/libgstapp.def b/win32/common/libgstapp.def
index 32b3cd1..550ca3f 100644
--- a/win32/common/libgstapp.def
+++ b/win32/common/libgstapp.def
@@ -22,6 +22,7 @@
 	gst_app_src_get_stream_type
 	gst_app_src_get_type
 	gst_app_src_push_buffer
+	gst_app_src_push_sample
 	gst_app_src_set_callbacks
 	gst_app_src_set_caps
 	gst_app_src_set_emit_signals
diff --git a/win32/common/libgstaudio.def b/win32/common/libgstaudio.def
index be4d23a..2144723 100644
--- a/win32/common/libgstaudio.def
+++ b/win32/common/libgstaudio.def
@@ -54,6 +54,7 @@
 	gst_audio_decoder_get_type
 	gst_audio_decoder_merge_tags
 	gst_audio_decoder_negotiate
+	gst_audio_decoder_proxy_getcaps
 	gst_audio_decoder_set_drainable
 	gst_audio_decoder_set_estimate_rate
 	gst_audio_decoder_set_latency
diff --git a/win32/common/libgstpbutils.def b/win32/common/libgstpbutils.def
index d7f365e..771371e 100644
--- a/win32/common/libgstpbutils.def
+++ b/win32/common/libgstpbutils.def
@@ -84,6 +84,7 @@
 	gst_encoding_list_available_categories
 	gst_encoding_profile_find
 	gst_encoding_profile_from_discoverer
+	gst_encoding_profile_get_allow_dynamic_output
 	gst_encoding_profile_get_description
 	gst_encoding_profile_get_file_extension
 	gst_encoding_profile_get_format
@@ -96,6 +97,7 @@
 	gst_encoding_profile_get_type
 	gst_encoding_profile_get_type_nick
 	gst_encoding_profile_is_equal
+	gst_encoding_profile_set_allow_dynamic_output
 	gst_encoding_profile_set_description
 	gst_encoding_profile_set_format
 	gst_encoding_profile_set_name
@@ -125,6 +127,9 @@
 	gst_install_plugins_context_free
 	gst_install_plugins_context_get_type
 	gst_install_plugins_context_new
+	gst_install_plugins_context_set_confirm_search
+	gst_install_plugins_context_set_desktop_id
+	gst_install_plugins_context_set_startup_notification_id
 	gst_install_plugins_context_set_xid
 	gst_install_plugins_installation_in_progress
 	gst_install_plugins_return_get_name
diff --git a/win32/common/libgstrtsp.def b/win32/common/libgstrtsp.def
index 3fab6de..9b38cb2 100644
--- a/win32/common/libgstrtsp.def
+++ b/win32/common/libgstrtsp.def
@@ -56,11 +56,13 @@
 	gst_rtsp_header_field_get_type
 	gst_rtsp_lower_trans_get_type
 	gst_rtsp_message_add_header
+	gst_rtsp_message_add_header_by_name
 	gst_rtsp_message_append_headers
 	gst_rtsp_message_dump
 	gst_rtsp_message_free
 	gst_rtsp_message_get_body
 	gst_rtsp_message_get_header
+	gst_rtsp_message_get_header_by_name
 	gst_rtsp_message_get_type
 	gst_rtsp_message_init
 	gst_rtsp_message_init_data
@@ -74,10 +76,12 @@
 	gst_rtsp_message_parse_request
 	gst_rtsp_message_parse_response
 	gst_rtsp_message_remove_header
+	gst_rtsp_message_remove_header_by_name
 	gst_rtsp_message_set_body
 	gst_rtsp_message_steal_body
 	gst_rtsp_message_take_body
 	gst_rtsp_message_take_header
+	gst_rtsp_message_take_header_by_name
 	gst_rtsp_message_unset
 	gst_rtsp_method_as_text
 	gst_rtsp_method_get_type
diff --git a/win32/common/libgstsdp.def b/win32/common/libgstsdp.def
index d5e605a..6ff1e6b 100644
--- a/win32/common/libgstsdp.def
+++ b/win32/common/libgstsdp.def
@@ -7,11 +7,11 @@
 	gst_mikey_message_add_t
 	gst_mikey_message_add_t_now_ntp_utc
 	gst_mikey_message_find_payload
-	gst_mikey_message_free
 	gst_mikey_message_get_cs_srtp
 	gst_mikey_message_get_n_cs
 	gst_mikey_message_get_n_payloads
 	gst_mikey_message_get_payload
+	gst_mikey_message_get_type
 	gst_mikey_message_insert_cs_srtp
 	gst_mikey_message_insert_payload
 	gst_mikey_message_new
@@ -23,8 +23,7 @@
 	gst_mikey_message_replace_payload
 	gst_mikey_message_set_info
 	gst_mikey_message_to_bytes
-	gst_mikey_payload_copy
-	gst_mikey_payload_free
+	gst_mikey_payload_get_type
 	gst_mikey_payload_kemac_add_sub
 	gst_mikey_payload_kemac_get_n_sub
 	gst_mikey_payload_kemac_get_sub
diff --git a/win32/common/libgstvideo.def b/win32/common/libgstvideo.def
index cdb6e9f..fcf7194 100644
--- a/win32/common/libgstvideo.def
+++ b/win32/common/libgstvideo.def
@@ -71,15 +71,24 @@
 	gst_video_codec_state_get_type
 	gst_video_codec_state_ref
 	gst_video_codec_state_unref
+	gst_video_color_matrix_get_Kr_Kb
 	gst_video_color_matrix_get_type
+	gst_video_color_primaries_get_info
 	gst_video_color_primaries_get_type
 	gst_video_color_range_get_type
 	gst_video_color_range_offsets
+	gst_video_color_transfer_decode
+	gst_video_color_transfer_encode
 	gst_video_colorimetry_from_string
 	gst_video_colorimetry_matches
 	gst_video_colorimetry_to_string
 	gst_video_convert_sample
 	gst_video_convert_sample_async
+	gst_video_converter_frame
+	gst_video_converter_free
+	gst_video_converter_get_config
+	gst_video_converter_new
+	gst_video_converter_set_config
 	gst_video_crop_meta_api_get_type
 	gst_video_crop_meta_get_info
 	gst_video_decoder_add_to_frame
@@ -105,6 +114,7 @@
 	gst_video_decoder_have_frame
 	gst_video_decoder_merge_tags
 	gst_video_decoder_negotiate
+	gst_video_decoder_proxy_getcaps
 	gst_video_decoder_release_frame
 	gst_video_decoder_set_estimate_rate
 	gst_video_decoder_set_latency
@@ -112,6 +122,11 @@
 	gst_video_decoder_set_needs_format
 	gst_video_decoder_set_output_state
 	gst_video_decoder_set_packetized
+	gst_video_dither_flags_get_type
+	gst_video_dither_free
+	gst_video_dither_line
+	gst_video_dither_method_get_type
+	gst_video_dither_new
 	gst_video_encoder_allocate_output_buffer
 	gst_video_encoder_allocate_output_frame
 	gst_video_encoder_finish_frame
@@ -154,6 +169,7 @@
 	gst_video_gl_texture_upload_meta_api_get_type
 	gst_video_gl_texture_upload_meta_get_info
 	gst_video_gl_texture_upload_meta_upload
+	gst_video_guess_framerate
 	gst_video_info_align
 	gst_video_info_convert
 	gst_video_info_from_caps
@@ -212,6 +228,17 @@
 	gst_video_pack_flags_get_type
 	gst_video_region_of_interest_meta_api_get_type
 	gst_video_region_of_interest_meta_get_info
+	gst_video_resampler_clear
+	gst_video_resampler_flags_get_type
+	gst_video_resampler_init
+	gst_video_resampler_method_get_type
+	gst_video_scaler_2d
+	gst_video_scaler_combine_packed_YUV
+	gst_video_scaler_free
+	gst_video_scaler_get_coeff
+	gst_video_scaler_horizontal
+	gst_video_scaler_new
+	gst_video_scaler_vertical
 	gst_video_sink_center_rect
 	gst_video_sink_get_type
 	gst_video_tile_get_index
diff --git a/win32/vs8/libgsttcp.vcproj b/win32/vs8/libgsttcp.vcproj
index 6600730..3f59b33 100644
--- a/win32/vs8/libgsttcp.vcproj
+++ b/win32/vs8/libgsttcp.vcproj
@@ -190,6 +190,10 @@
 				>
 			</File>
 			<File
+				RelativePath="..\..\gst\tcp\gstsocketsrc.c"
+				>
+			</File>
+			<File
 				RelativePath="..\..\gst\tcp\gsttcp.c"
 				>
 			</File>