Merge tag 'upstream/1.5.90' into debian-experimental

Upstream version 1.5.90
diff --git a/ChangeLog b/ChangeLog
index ddee7d7..4fd6ee1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,9 +1,3039 @@
-=== release 1.5.2 ===
+=== release 1.5.90 ===
 
-2015-06-24  Sebastian Dröge <slomo@coaxion.net>
+2015-08-19  Sebastian Dröge <slomo@coaxion.net>
 
 	* configure.ac:
-	  releasing 1.5.2
+	  releasing 1.5.90
+
+2015-08-19 11:36:13 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* po/ky.po:
+	* po/nb.po:
+	* po/sv.po:
+	  po: Update translations
+
+2015-08-18 13:56:59 +0200  Guillaume Marquebielle <guillaume.marquebielle@parrot.com>
+
+	* gst/liveadder/liveadder.c:
+	  liveadder: fix assertion when copying buffer region
+	  In gst_live_adder_chain() function, calls to gst_buffer_copy_region() can lead
+	  to assertion as 'offset + size <= bufsize' is not respected.
+	  Indeed 'offset' and 'size' parameters are calculated through calling gst_live_adder_length_from_duration(),
+	  and thus gst_util_uint64_scale_int_round().
+	  Depending on the nearest integers, rounded values 'offset' and 'size' can then trigger the assertion.
+	  This case mainly occurs when 'skip' value is > 0 in chain function process.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=753759
+
+2015-08-17 18:06:30 +0200  Vanessa Chipirrás Navalón <vchipirras6@gmail.com>
+
+	* ext/opencv/gsthanddetect.c:
+	* ext/opencv/gsthanddetect.h:
+	  handdetect: remove unnecessary variable.
+	  Memory is reserved for this variable and then released without making any
+	  use of it.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=752528
+
+2015-08-17 18:02:28 +0200  Vanessa Chipirrás Navalón <vchipirras6@gmail.com>
+
+	* ext/opencv/gsthanddetect.c:
+	  handdetect: check CvHaarClassifierCascade is release before being modified.
+	  Make sure a previous cascade, if it exists, is released before loading a
+	  new XML file onto it.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=752528
+
+2015-08-17 17:47:42 +0200  Vanessa Chipirrás Navalón <vchipirras6@gmail.com>
+
+	* ext/opencv/gsthanddetect.c:
+	  handdetect: code refactoring of gst_handdetect_load_profile.
+	  Change gst_handdetect_load_profile() so it can be used generically.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=752528
+
+2015-08-18 11:54:33 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* ext/daala/gstdaalaenc.c:
+	  daalaenc: Fix build
+	  And also only generate the supported caps once, not on every CAPS/ACCEPT_CAPS
+	  query. It's not that cheap.
+
+2015-08-17 23:44:42 +0100  Luis de Bethencourt <luis@debethencourt.com>
+
+	* tests/examples/opencv/gstfacedetect_test.c:
+	  examples: facedetect: add silent option
+	  By default the example floods the screen with the detected face values.
+	  Add an option to avoid this for frail terminals.
+
+2015-08-17 14:38:52 -0300  Thiago Santos <thiagoss@osg.samsung.com>
+
+	* ext/x265/gstx265enc.c:
+	  x265enc: add accept-caps handling
+	  Ovewrite default handling to avoid doing a caps query. Check
+	  the received caps against the possible formats supported by
+	  the x265 library.
+
+2015-08-17 14:32:56 -0300  Thiago Santos <thiagoss@osg.samsung.com>
+
+	* ext/daala/gstdaalaenc.c:
+	  daalaenc: add accept-caps handling
+	  Ovewrite default handling to avoid doing a caps query. Check
+	  the received caps against the possible formats supported by
+	  the daala library.
+
+2015-08-16 07:06:44 -0300  Thiago Santos <thiagoss@osg.samsung.com>
+
+	* ext/openjpeg/gstopenjpegenc.c:
+	* ext/schroedinger/gstschroenc.c:
+	* ext/webp/gstwebpenc.c:
+	* gst/pnm/gstpnmenc.c:
+	  videoencoders: use template subset check for accept-caps
+	  It is faster than doing a query that propagates downstream and
+	  should be enough
+	  Elements: openjpegenc, schroenc, webpenc, pnmenc
+
+2015-08-17 17:38:15 +0100  Luis de Bethencourt <luis@debethencourt.com>
+
+	* configure.ac:
+	* ext/opencv/gstfaceblur.c:
+	* ext/opencv/gstfacedetect.cpp:
+	  opencv: support alternative path convention
+	  Some distributions store OpenCV files in /usr/share/opencv and some others
+	  (and default when building from source) install them in
+	  /usr/share/OpenCV. Support both to find cascade files.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=753651
+
+2015-08-16 21:18:50 +0200  Rico Tzschichholz <ricotz@ubuntu.com>
+
+	* ext/dash/Makefile.am:
+	  dashdemux: link against gio for g_resolver and g_inet_address_from_string
+	  Add missing gio-2.0 CFLAGS/LIBS to fix linker failure
+
+2015-08-16 07:18:34 -0300  Thiago Santos <thiagoss@osg.samsung.com>
+
+	* ext/faac/gstfaac.c:
+	* ext/gsm/gstgsmenc.c:
+	* ext/opus/gstopusenc.c:
+	* ext/sbc/gstsbcenc.c:
+	* ext/voaacenc/gstvoaacenc.c:
+	* ext/voamrwbenc/gstvoamrwbenc.c:
+	* gst/adpcmenc/adpcmenc.c:
+	* gst/siren/gstsirenenc.c:
+	  audioencoders: use template subset check for accept-caps
+	  It is faster than doing a query that propagates downstream and
+	  should be enough
+	  Elements: faac, gsmenc, opusenc, sbcenc, voamrwbenc, adpcmenc, sirenenc
+
+2015-08-17 07:55:03 -0300  Thiago Santos <thiagoss@osg.samsung.com>
+
+	* ext/voaacenc/gstvoaacenc.c:
+	  voaacenc: Remove custom getcaps and just use the template
+	  We know from the beginning the caps that are acceptable, no need
+	  for custom getcaps or manually generating caps.
+
+2015-08-17 07:54:36 -0300  Thiago Santos <thiagoss@osg.samsung.com>
+
+	* ext/voaacenc/gstvoaacenc.c:
+	  voaacenc: add version to gst-launch string on documentation
+	  gst-launch will call the 0.10 version, we want 1.0
+
+2015-08-17 07:15:00 -0300  Thiago Santos <thiagoss@osg.samsung.com>
+
+	* ext/faac/gstfaac.c:
+	  faac: make template pad caps more accurate and remove custom getcaps
+	  Allows reusing baseclass caps query handling and simplifying negotiation
+	  code.
+
+2015-08-17 11:50:28 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* ext/mpg123/gstmpg123audiodec.c:
+	  mpg123: still reset pending audio info on hard flush
+	  Follow-up to previous commit.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=752431
+
+2015-07-15 10:44:02 -0600  Jason Litzinger <jlitzinger@control4.com>
+
+	* ext/mpg123/gstmpg123audiodec.c:
+	  mpg123: fix handling of sample rate change during playback
+	  If the sample rate of the media changes, the resulting flush will
+	  clear the has_next_audioinfo flag, and the caps won't be sent
+	  downstream.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=752431
+
+2015-03-17 17:55:26 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+	* gst/videoparsers/gstdiracparse.c:
+	* gst/videoparsers/gsth263parse.c:
+	* gst/videoparsers/gsth264parse.c:
+	* gst/videoparsers/gsth265parse.c:
+	* gst/videoparsers/gstmpeg4videoparse.c:
+	* gst/videoparsers/gstmpegvideoparse.c:
+	* gst/videoparsers/gstpngparse.c:
+	* gst/videoparsers/gstvc1parse.c:
+	  videoparsers: Use gst_base_parse_merge_tags()
+	  Instead of squashing all upstream tags
+	  https://bugzilla.gnome.org/show_bug.cgi?id=679768
+
+2015-08-16 18:13:12 +0200  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* gst-libs/gst/gl/gstglupload.c:
+	  glupload: Recalculate offset and size in raw upload
+	  As we only expose the mapped portion of the frame into the GL
+	  memory object (and not the original padding) we need to
+	  re-calculate the size and offset.
+
+2015-08-16 08:49:35 -0300  Thiago Santos <thiagoss@osg.samsung.com>
+
+	* ext/dash/gstdashdemux.c:
+	  dashdemux: fix off by one seeking issue
+	  When seeking to the last second of a mpd it would reject the seek
+	  because the comparison was < instead of <=
+	  This fails the important use case of seeking to the end of a file
+	  to play it back in reverse from the end
+
+2015-08-16 12:55:57 +0200  Edward Hervey <bilboed@bilboed.com>
+
+	* gst/mpegtsdemux/mpegtsbase.c:
+	  mpegtsdemux: Fix illogical comparision
+	  A variable can't be two values at once. We want to stop if it's not the
+	  actual ts *AND* not the other ts
+	  CID #1316475
+
+2015-08-16 12:52:09 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* ext/dash/gstmpdparser.c:
+	  mpdparser: Free UTCTiming struct if there are no values associated with it
+	  CID 1316479
+
+2015-08-15 23:36:01 +0200  Edward Hervey <bilboed@bilboed.com>
+
+	* tests/check/Makefile.am:
+	  check: Link against GModule for tests using g_module_*
+
+2015-08-15 19:04:27 +0200  Edward Hervey <bilboed@bilboed.com>
+
+	* gst-libs/gst/adaptivedemux/gstadaptivedemux.c:
+	  adaptivedemux: Demote debugging level
+
+2015-08-15 19:01:00 +0200  Edward Hervey <bilboed@bilboed.com>
+
+	* gst-libs/gst/adaptivedemux/gstadaptivedemux.c:
+	  adaptivedemux: Actually wait for playlist update when requested
+	  There are several cases where a HLS server could temporarily have wrong
+	  fragments, or reconfigure the playlist. In those cases, when we get
+	  fragment download failures, we *really* want to wait a bit (for the next
+	  playlist update) before retrying to get fragments.
+	  Previously this method was first checking to see if there was next fragments
+	  (according to the previous manifest update) before waiting for the next update.
+	  The problem was that if that if there is a temporary failure on the server,
+	  that's uncorrelated to whether the manifest contains next fragments or not.
+
+2015-08-14 12:25:19 +0200  Edward Hervey <bilboed@bilboed.com>
+
+	* tests/check/elements/glimagesink.c:
+	* tests/check/generic/states.c:
+	  checks: Ensure thread-safe libX11/GL when running tests
+
+2015-08-15 12:58:40 -0300  Thiago Santos <thiagoss@osg.samsung.com>
+
+	* ext/dts/gstdtsdec.c:
+	* ext/faad/gstfaad.c:
+	* ext/gsm/gstgsmdec.c:
+	* ext/mpg123/gstmpg123audiodec.c:
+	* ext/opus/gstopusdec.c:
+	* ext/sbc/gstsbcdec.c:
+	* gst/adpcmdec/adpcmdec.c:
+	* gst/siren/gstsirendec.c:
+	  audiodecoders: use default pad accept-caps handling
+	  Avoids useless check of downstream caps when handling an
+	  accept-caps query
+	  Elements: dtsdec, faad, gsmdec, mpg123audiodec, opusdec,
+	  sbcdec, adpcmdec, sirendec
+
+2015-08-15 12:55:49 -0300  Thiago Santos <thiagoss@osg.samsung.com>
+
+	* ext/daala/gstdaaladec.c:
+	* ext/libde265/libde265-dec.c:
+	* ext/openexr/gstopenexrdec.cpp:
+	* ext/openjpeg/gstopenjpegdec.c:
+	* ext/rsvg/gstrsvgdec.c:
+	* ext/schroedinger/gstschrodec.c:
+	* ext/webp/gstwebpdec.c:
+	* gst/pnm/gstpnmdec.c:
+	* gst/vmnc/vmncdec.c:
+	  videodecoders: use default pad accept-caps handling
+	  Avoids useless check of downstream caps when handling an
+	  accept-caps query
+	  Elements: daaladec, libde265dec, openjpegdec, rsvgdec, schrodec,
+	  webpdec, pnmdec, vmncdec, openexrdec
+
+2015-08-15 16:22:20 +0100  Luis de Bethencourt <luis@debethencourt.com>
+
+	* gst/rtp/gstrtph265depay.c:
+	  rtph265depay: make sure we call handle_nal for each NAL
+	  Call handle_nal for each NAL in the STAP-A RTP packet. This makes sure
+	  we correctly extract the SPS and PPS.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=730999
+
+2015-08-15 15:02:33 +0200  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* gst-libs/gst/gl/gstgloverlaycompositor.c:
+	  gloverlaycompositor: Also disable the blend when done
+
+2015-08-15 14:31:15 +0200  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* ext/gl/gstglimagesink.c:
+	* ext/gtk/gstgtkglsink.c:
+	* gst-libs/gst/gl/gstglupload.c:
+	  glsink: Enable sync meta on pools we offer
+	  As the upload is asynchronous, we need to enable the sync meta to
+	  gain correct rendering. The buffer pool receiver don't know about
+	  that.
+
+2015-08-15 15:12:27 +0200  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* ext/gtk/gstgtkglsink.c:
+	* ext/gtk/gstgtkglsink.h:
+	* ext/gtk/gtkgstglwidget.c:
+	  gtkglsink: Add overlay composition support
+	  Rendering composition overlay in GL with additional high resolution
+	  overlay being added.
+
+2015-08-15 15:08:11 +0200  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* ext/gtk/gtkgstbasewidget.c:
+	* ext/gtk/gtkgstbasewidget.h:
+	* ext/gtk/gtkgstglwidget.c:
+	* ext/gtk/gtkgstwidget.c:
+	  gtkglsink: Fix unsafe handling of buffer life time
+	  We need to keep the active buffer (the one we have retreive a
+	  texture id from) otherwise it's racy and upstream may upload
+	  new content before we have rendered or during later redisplay.
+
+2015-08-14 18:07:15 +0200  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* ext/gtk/gtkgstbasewidget.c:
+	* ext/gtk/gtkgstbasewidget.h:
+	* ext/gtk/gtkgstglwidget.c:
+	  gtkglsink: Remove reset path
+	  The reset path is bogus and there is no reason to get rid of these
+	  things during resize.
+
+2015-08-14 17:36:48 +0200  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* ext/gl/gstglimagesink.c:
+	  glimagesink: Move overlay rendering after video rendering
+	  This is mostly cosmetic, but heoretically it reduces the amount of
+	  required object in the context at one point. It also avoids potential
+	  conflicts.
+
+2015-08-15 14:45:34 +0100  Luis de Bethencourt <luis@debethencourt.com>
+
+	* gst/rtp/gstrtph265pay.c:
+	  rtph265pay: Copy metadata in the payloader, but only the relevant ones
+	  The payloader didn't copy anything so far, the depayloader copied every
+	  possible meta. Let's make it consistent and just copy all metas without
+	  tags or with only the video tag.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=751774
+
+2015-08-15 11:41:40 +0100  Luis de Bethencourt <luis@debethencourt.com>
+
+	* gst/rtp/gstrtph265pay.c:
+	  rtph265pay: Use GST_WARNING_OBJECT() instead of GST_WARNING()
+	  https://bugzilla.gnome.org/show_bug.cgi?id=753228
+
+2015-08-15 11:30:36 +0100  Luis de Bethencourt <luis@debethencourt.com>
+
+	* gst/rtp/gstrtph265pay.c:
+	  rtph265pay: fix potential crash when shutting down
+	  A race condition in the state change function may cause buffers to be
+	  unreffed while they are still used by the streaming thread in
+	  gst_rtp_h265_pay_send_vps_sps_pps() resulting in a crash. Chain up to the
+	  parent class first in the state change function to make sure streaming
+	  has stopped and only then free those buffers.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=741381
+
+2015-08-15 10:03:07 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst-libs/gst/gl/glprototypes/opengl.h:
+	  opengl: Change GLclampd to double
+	  GLclampd does not exist on GLES, only desktop GL.
+
+2015-08-14 10:32:14 -0700  Martin Kelly <martin@surround.io>
+
+	* gst-libs/gst/gl/glprototypes/opengl.h:
+	  opengl: add missing ClearDepth prototype
+	  The ClearDepth call is missing.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=753639
+
+2015-08-06 14:33:54 +1000  Jan Schmidt <jan@centricular.com>
+
+	* gst-libs/gst/codecparsers/gsth264parser.c:
+	* gst/videoparsers/gsth264parse.c:
+	  h264parse: Clear SPS info after processing.
+	  The SPS struct might be filled out by a call to
+	  gst_h264_parser_parse_subset_sps, which fills out
+	  dynamically allocated data and requires a call
+	  to gst_h264_sps_clear() to free it. Also make sure
+	  to clear out any allocated SPS data when returning
+	  an error.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=753306
+
+2015-08-12 00:20:26 +0200  Vanessa Chipirrás Navalón <vchipirras6@gmail.com>
+
+	* ext/opencv/gstfacedetect.cpp:
+	  facedetect: Refactor the code
+	  Some lines of code are repeated several times, therefore
+	  this lines are simplified with a inline function, that this is
+	  proper style of C++.
+
+2015-08-14 11:43:57 -0300  Thiago Santos <thiagoss@osg.samsung.com>
+
+	* gst/videoparsers/gstpngparse.c:
+	  pngparse: enable accept-intersect and accept-template flags on sinkpad
+	  Do a quick check with the pad template caps as it is enough. Users
+	  should have figured the appropriate full caps on a previous caps query
+	  https://bugzilla.gnome.org/show_bug.cgi?id=753623
+
+2015-08-14 11:43:18 -0300  Thiago Santos <thiagoss@osg.samsung.com>
+
+	* gst/videoparsers/gstdiracparse.c:
+	* gst/videoparsers/gsth263parse.c:
+	* gst/videoparsers/gsth264parse.c:
+	* gst/videoparsers/gsth265parse.c:
+	* gst/videoparsers/gstmpeg4videoparse.c:
+	* gst/videoparsers/gstmpegvideoparse.c:
+	* gst/videoparsers/gstvc1parse.c:
+	  videoparsers: enable accept-template flag
+	  Do a quick check with the pad template caps as it is enough. Users
+	  should have figured the appropriate full caps on a previous caps query
+	  https://bugzilla.gnome.org/show_bug.cgi?id=753623
+
+2015-08-14 15:08:08 +0100  Luis de Bethencourt <luis@debethencourt.com>
+
+	* gst/rtp/gstrtph265pay.c:
+	  rtph265pay: fix buffer leak when using SPS/PPS
+	  Fixes a buffer leak that would occur if the pipeline was shutdown while a
+	  SPS/PPS header was being created.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=741271
+
+2015-08-14 11:49:51 +0100  Luis de Bethencourt <luis@debethencourt.com>
+
+	* gst/rtp/gstrtph265depay.c:
+	* gst/rtp/gstrtph265depay.h:
+	  rtph265depay: copy metadata in the depayloader, but only the relevant ones
+	  The payloader didn't copy anything so far, the depayloader copied every
+	  possible meta. Let's make it consistent and just copy all metas without
+	  tags or with only the video tag.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=751774
+
+2015-08-14 09:44:24 +0100  Alex Ashley <bugzilla@ashley-family.net>
+
+	* ext/dash/gstdashdemux.c:
+	* gst-libs/gst/uridownloader/gstfragment.c:
+	* gst-libs/gst/uridownloader/gstfragment.h:
+	* gst-libs/gst/uridownloader/gsturidownloader.c:
+	  dashdemux: add support for HTTP HEAD method of time sync
+	  The urn:mpeg:dash:utc:http-head:2014 method of time synchronisation
+	  uses an HTTP HEAD request to a specified URL and then parses the
+	  Date: HTTP response header.
+	  This commit adds support to dashdemux for this method of time
+	  synchronisation by making a HEAD request and then parsing the Date:
+	  response.
+	  This commit adds support to gstfragment to return the HTTP headers
+	  and to uridownloader to support HEAD requests. To avoid creating a
+	  new API, the RANGE get function is re-used (abused?) with start=-1
+	  and end=-1 to indicate a HEAD request.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=752413
+
+2015-08-13 18:21:29 +0100  Alex Ashley <bugzilla@ashley-family.net>
+
+	* ext/dash/gstdashdemux.c:
+	  dashdemux: post-review fixup of UTCTiming element
+	  This commit addresses the following items from the code review:
+	  use a portable way to define NTP_TO_UNIX_EPOCH,
+	  fix memory leak on error, and
+	  add documentation to UTCTiming parse functions
+	  Using LL is not portable, so the G_GUINT64_CONSTANT needs to be instead.
+	  If an error occurs during DNS resolution, the GError was not being
+	  released, causing a memory leak.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=752413
+
+2015-07-15 11:56:13 +0100  Alex Ashley <bugzilla@ashley-family.net>
+
+	* ext/dash/Makefile.am:
+	* ext/dash/gstdashdemux.c:
+	* ext/dash/gstdashdemux.h:
+	* ext/dash/gstmpdparser.c:
+	* ext/dash/gstmpdparser.h:
+	* tests/check/elements/dash_mpd.c:
+	  dashdemux: add support for UTCTiming elements for clock drift compensation
+	  Unless the DASH client can compensate for the difference between its
+	  clock and the clock used by the server, the client might request
+	  fragments that either not yet on the server or fragments that have
+	  already been expired from the server. This is an issue because these
+	  requests can propagate all the way back to the origin
+	  ISO/IEC 23009-1:2014/Amd 1 [PDAM1] defines a new UTCTiming element to allow
+	  a DASH client to track the clock used by the server generating the
+	  DASH stream. Multiple UTCTiming elements might be present, to indicate
+	  support for multiple methods of UTC time gathering. Each element can
+	  contain a white space separated list of URLs that can be contacted
+	  to discover the UTC time from the server's perspective.
+	  This commit provides parsing of UTCTiming elements, unit tests of this
+	  parsing and a function to poll a time server. This function
+	  supports the following methods:
+	  urn:mpeg:dash:utc:ntp:2014
+	  urn:mpeg:dash:utc:http-xsdate:2014
+	  urn:mpeg:dash:utc:http-iso:2014
+	  urn:mpeg:dash:utc:http-ntp:2014
+	  The manifest update task is used to poll the clock time server,
+	  to save having to create a new thread.
+	  When choosing the starting fragment number and when waiting for a
+	  fragment to become available, the difference between the server's idea
+	  of UTC and the client's idea of UTC is taken into account. For example,
+	  if the server's time is behind the client's idea of UTC, we wait for
+	  longer before requesting a fragment
+	  [PDAM1]: http://www.iso.org/iso/home/store/catalogue_tc/catalogue_detail.htm?csnumber=66068
+	  dashdemux: support NTP time servers in UTCTiming elements
+	  Use the gst_ntp_clock to support the use of an NTP server.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=752413
+
+2015-08-14 11:13:51 +0200  Edward Hervey <bilboed@bilboed.com>
+
+	* tests/check/generic/states.c:
+	  check: Rename states unit test
+	  Makes it easier to differentiate from other modules states unit test
+
+2015-08-13 10:31:20 +0900  Vineeth TM <vineeth.tm@samsung.com>
+
+	* gst/dvdspu/gstspu-pgs.c:
+	  spu-pgs: fix buffer and event leak
+	  When playing mts files with embedded subtitles, the buffer is mapped,
+	  but not unmapped at the end resulting in a memory leak.
+	  Also unref event in handle_dvd_event as it takes ownership of the event.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=753539
+
+2015-08-13 10:25:52 +0900  Vineeth TM <vineeth.tm@samsung.com>
+
+	* gst/dvdspu/gstdvdspu.c:
+	  dvdspu: Fix event leaks
+	  When playing mts files with embedded subtitles, there are few event leaks.
+	  Events are supposed to be transfer full. So if not forwarding the event,
+	  they need to be freed.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=753539
+
+2015-08-13 12:38:41 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* ext/srtp/gstsrtpdec.c:
+	  Revert "srtpdec: Add support for buffer list"
+	  This reverts commit ff11a1a8a0c685d2edd0e06c0071cbb94f2cb663.
+	  It can't be assumed that all buffers in a buffer list have the same SSRC or
+	  are RTP or RTCP only. It has to be checked for every single buffer, and one
+	  basically has to do the processing that is done by the default chain_list
+	  implementation.
+
+2015-08-12 17:54:52 +0100  Luis de Bethencourt <luis@debethencourt.com>
+
+	* gst/rtp/gstrtph265depay.c:
+	  rtph265depay: checking if depay has sps/pps nals before insertion
+	  Related to: https://bugzilla.gnome.org/show_bug.cgi?id=753430
+	  https://bugzilla.gnome.org/show_bug.cgi?id=753228
+
+2015-08-12 17:22:42 +0100  Luis de Bethencourt <luis@debethencourt.com>
+
+	* gst/rtp/gstrtph265depay.c:
+	  rtph265depay: only update the srcpad caps if something else than the codec_data changed
+	  h264parse and gstrtph264depay do the same, let's keep the behaviour
+	  consistent. As we now include the codec_data inside the stream, this causes
+	  less caps renegotiation.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=753228
+
+2015-08-12 16:43:48 +0100  Luis de Bethencourt <luis@debethencourt.com>
+
+	* gst/rtp/gstrtph265depay.c:
+	  rtph265depay: PPS replaces old PPS if it has the same id
+	  https://bugzilla.gnome.org/show_bug.cgi?id=753228
+
+2015-08-12 16:11:00 +0100  Luis de Bethencourt <luis@debethencourt.com>
+
+	* gst/rtp/gstrtph265depay.c:
+	  rtph265depay: Insert SPS/PPS NALs into the stream
+	  rtph264depay does the same and this fixes decoding of some streams with 32
+	  SPS (or 256 PPS). It is allowed to have SPS ID 0 to 31 (or PPS ID 0 to 255),
+	  but the field in the codec_data for the number of SPS or PPS is only 5
+	  (or 8) bit. As such, 32 SPS (or 256 PPS) are interpreted as 0 everywhere.
+	  This looks like a mistake in the part of the spect about the codec_data.
+
+2015-08-12 15:49:50 +0100  Luis de Bethencourt <luis@debethencourt.com>
+
+	* gst/rtp/gstrtph265depay.c:
+	  rtph265depay: implement process_rtp_packet() vfunc
+	  For more optimised RTP packet handling: means we don't need to map the
+	  input buffer again but can just re-use the mapping the base class has
+	  already done.
+	  Based on: https://bugzilla.gnome.org/show_bug.cgi?id=750235
+	  https://bugzilla.gnome.org/show_bug.cgi?id=753228
+
+2015-08-12 15:14:50 +0100  Luis de Bethencourt <luis@debethencourt.com>
+
+	* gst/rtp/gstrtph265depay.c:
+	  rtph265depay: Use GST_BUFFER_PTS() instead of GST_BUFFER_TIMESTAMP()
+	  Switching to GST_BUFFER_TIMESTAMP() to be consistent with other rtp code.
+
+2015-08-12 14:59:53 +0100  Luis de Bethencourt <luis@debethencourt.com>
+
+	* gst/rtp/gstrtph265depay.c:
+	  rtph265depay: prevent trying to get 0 bytes from adapter
+	  This causes an assertion and would lead to getting a NULL instead
+	  of a buffer. Without proper checking this would easily lead to a
+	  segfault.
+	  Related to rpth264depay: https://bugzilla.gnome.org/show_bug.cgi?id=737199
+
+2015-08-12 07:58:09 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+	* gst-libs/gst/codecparsers/gsth265parser.c:
+	  codecparsers: h265: Fix the range of delta_chroma_log2_weight_denom
+	  ChromaLog2WeightDenom = luma_log2_weight_denom + delta_chroma_log2_weight_denom
+	  The value of ChromaLog2WeightDenom should be in the range of 0 to 7 and
+	  the value luma_log2_weight_denom  should be also in the range of 0 to 7.
+	  Which means , delta_chroma_log2_weight_denom can have values in the range
+	  between -7 and 7.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=753552
+
+2015-08-12 05:11:27 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+	* gst-libs/gst/codecparsers/gsth265parser.c:
+	  codecparsers: h265: Fix the parsing of ref_pic_lists_modification
+	  https://bugzilla.gnome.org/show_bug.cgi?id=753552
+
+2015-08-12 00:20:10 +0200  Matthew Waters <matthew@centricular.com>
+
+	* ext/gl/gstglimagesink.c:
+	  glimagesink: take into account non 1/1 par for navigation
+	  The current code was ignoring the par/dar aspect when transforming
+	  from window coordinates to stream coordinates resulting in incorrect
+	  coordinates being sent upstream in the navigation events.
+
+2015-08-12 00:18:20 +0200  Matthew Waters <matthew@centricular.com>
+
+	* ext/gtk/gtkgstbasewidget.c:
+	  gtk: fix motion event name
+	  s/motion/mouse/
+	  Fixes hover interaction with DVD menus
+
+2015-08-12 00:14:14 +0200  Matthew Waters <matthew@centricular.com>
+
+	* ext/gtk/gtkgstbasewidget.c:
+	  gtk: correct navigation events for window scaling
+	  i.e. take into account the possiblity of scaling in the sink
+	  or through GDK_SCALE.
+	  Fixes DVD Menus with a scaled gtkwidget
+
+2015-08-11 15:02:25 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* gst/frei0r/gstfrei0r.c:
+	  frei0r: Fix setting string parameters
+	  String parameters are expected to be passed as (f0r_param_string *),
+	  which actually map to char**. In the filters this is evaluated as
+	  (*(char**)param) which currently lead to crash when passing char*.
+	  Remove the special case for string, all types, including char* as
+	  passed as a reference.
+	  https://phabricator.freedesktop.org/T83
+
+2015-08-11 13:34:59 +0200  Matthew Waters <matthew@centricular.com>
+
+	* ext/gtk/gstgtkbasesink.c:
+	* ext/gtk/gtkgstbasewidget.c:
+	* ext/gtk/gtkgstbasewidget.h:
+	  gtk: implement GstNavigation interface
+	  Now we can push key/mouse input into the pipeline for DVD use cases.
+
+2015-06-30 13:51:33 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* ext/opus/gstrtpopusdepay.c:
+	* ext/opus/gstrtpopuspay.c:
+	  opus: Copy metadata in the (de)payloader, but only the relevant ones
+	  The payloader didn't copy anything so far, the depayloader copied every
+	  possible meta. Let's make it consistent and just copy all metas without tags or
+	  with only the audio tag.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=751774
+
+2015-08-11 04:14:19 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+	* gst/videoparsers/gsth265parse.c:
+	  videoparsers: h265: Fix the frame start detection code
+	  Check slice headers in between GST_H265_NAL_SLICE_TRAIL_N
+	  and GST_H265_NAL_SLICE_RASL_R for frame start detection.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=753497
+
+2015-08-11 03:47:42 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+	* gst/videoparsers/gsth265parse.c:
+	  videoparsers: h265: Avoid skipping of EOS and EOB nals
+	  EndOfSequence and EndOfBitstream nal units have size of 2 bytes.
+	  Don't consider them as broken nals.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=753497
+
+2015-08-10 23:02:12 +0200  Vanessa Chipi <vchipirras6@gmail.com>
+
+	* ext/opencv/gstfacedetect.cpp:
+	  facedetect: wrong form to write the delete operator
+	  The delete operator is written this way: delete (cascade). This way is
+	  misspelled, it is an operator, not a function. Delete the parentheses.
+
+2015-08-10 19:13:11 +0200  vanechipi <vchipirras6@gmail.com>
+
+	* ext/opencv/gstfacedetect.cpp:
+	  facedetect: simplify repeated code.
+	  Store the value of r.height / 2 instead of repeating the operation line
+	  three times.
+
+2015-08-10 19:02:10 +0200  vanechipi <vchipirras6@gmail.com>
+
+	* ext/opencv/gstfacedetect.cpp:
+	  facedetect: Redundancy exists in code.
+	  Checking the vector is not empty and checking the vector size is greater
+	  than zero are the same thing, this is a redundancy in the code. Only
+	  checking the vector is not empty is sufficient, therefore removing the
+	  other check.
+
+2015-08-10 14:48:58 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* gst-libs/gst/gl/Makefile.am:
+	  gl: Add opengl_version.h to the list of sources
+	  Adding this private header to the list of sources. We don't want to make
+	  this header public, but we need it in the list of sources otherwise it
+	  won't be included in the tarball. This fixes make distcheck.
+	  This regression was introduced by commit 1a6fe3db
+
+2015-08-10 19:06:16 +0100  Luis de Bethencourt <luis@debethencourt.com>
+
+	* tests/examples/opencv/gstfacedetect_test.c:
+	  examples: facedetect: only create variables when needed
+	  The variables to store face values are only needed if they will be used to
+	  control the volume. Which isn't the default to avoid potentially being very
+	  loud accidentally. Only create variables when needed.
+
+2015-08-10 16:51:17 +0100  Luis de Bethencourt <luis@debethencourt.com>
+
+	* tests/examples/opencv/gstfacedetect_test.c:
+	  examples: facedetect: make volume control optional
+
+2015-08-10 16:38:32 +0200  Matthew Waters <matthew@centricular.com>
+
+	* ext/gl/effects/gstgleffectblur.c:
+	* ext/gl/effects/gstgleffectbulge.c:
+	* ext/gl/effects/gstgleffectfisheye.c:
+	* ext/gl/effects/gstgleffectglow.c:
+	* ext/gl/effects/gstgleffectidentity.c:
+	* ext/gl/effects/gstgleffectlaplacian.c:
+	* ext/gl/effects/gstgleffectlumatocurve.c:
+	* ext/gl/effects/gstgleffectmirror.c:
+	* ext/gl/effects/gstgleffectrgbtocurve.c:
+	* ext/gl/effects/gstgleffectsin.c:
+	* ext/gl/effects/gstgleffectsobel.c:
+	* ext/gl/effects/gstgleffectsquare.c:
+	* ext/gl/effects/gstgleffectsqueeze.c:
+	* ext/gl/effects/gstgleffectssources.c:
+	* ext/gl/effects/gstgleffectssources.h:
+	* ext/gl/effects/gstgleffectstretch.c:
+	* ext/gl/effects/gstgleffecttunnel.c:
+	* ext/gl/effects/gstgleffecttwirl.c:
+	* ext/gl/effects/gstgleffectxray.c:
+	* ext/gl/gstgldifferencematte.c:
+	* ext/gl/gstgleffects.c:
+	* ext/gl/gstgleffects.h:
+	* gst-libs/gst/gl/gstglfilter.c:
+	  gl: use gles2 shaders everywhere
+	  This effectively limits a glfilter subclass to be > GL(ES) 2.0.
+	  rather than a possible GL 1.4.
+
+2015-08-10 15:44:54 +0200  Matthew Waters <matthew@centricular.com>
+
+	* gst-libs/gst/gl/utils/opengl_versions.h:
+	* gst-libs/gst/gl/win32/gstglcontext_wgl.c:
+	* gst-libs/gst/gl/win32/gstglcontext_wgl.h:
+	* gst-libs/gst/gl/x11/gstglcontext_glx.c:
+	  glcontext/wgl: implement gl3 core profile context selection
+
+2015-02-28 01:07:44 +0100  Lubosz Sarnecki <lubosz.sarnecki@collabora.co.uk>
+
+	* ext/gl/gstgltransformation.c:
+	* ext/gl/gstgltransformation.h:
+	  gltransformation: implement pivot point for rotation and scale
+	  https://bugzilla.gnome.org/show_bug.cgi?id=744763
+	  Add a pivot vector for setting the origin of rotations and scales.
+	  With the pivot point the rotation and scale operations can have
+	  different origins. This adds the ability to rotate around different points.
+	  Currently the default (0, 0) pivot point is possible,
+	  a rotation around the center, and zooming into and out of the center.
+	  With an pivot point this is optional.
+	  I defined the following image coordinates for the pivot point:
+	  (-1,1) ------------------------- (1,1)
+	  |			|
+	  |			|
+	  |			|
+	  |	  (0,0)		|
+	  |			|
+	  |			|
+	  |			|
+	  (-1,-1) ------------------------- (1,-1)
+	  Example:
+	  Rotate the video at the bottom left corner
+	  gst-launch-1.0 videotestsrc \
+	  ! gltransformation \
+	  scale-x=0.5 \
+	  scale-y=0.5 \
+	  rotation-z=25.0 \
+	  pivot-x=-1.0 \
+	  pivot-y=-1.0 \
+	  ! glimagesink
+	  The pivot-z option defines the pivot point in 3D space.
+	  This only affects rotation, since we have no Z data to scale.
+	  With this option a video can be rotated around a point in 3D space.
+	  Example:
+	  Rotate around point behind the video:
+	  gst-launch-1.0 videotestsrc \
+	  ! gltransformation \
+	  rotation-x=10.0 \
+	  pivot-z=-4.0 \
+	  ! glimagesink
+
+2015-08-08 14:45:42 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
+
+	* gst-libs/gst/gl/gstgloverlaycompositor.c:
+	  gloverlaycompositor: Add shader to convert BGRA/ARGB -> RGBA
+	  Depending on the bytes order we will get BGRA (little) and ARGB (big)
+	  from the composition overlay buffer while our GL code expects RGBA. Add
+	  a fragment shader that do this conversion.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=752842
+
+2015-08-08 17:28:03 +0200  Matthew Waters <matthew@centricular.com>
+
+	* ext/qt/gstqsgtexture.cc:
+	* ext/qt/gstqsgtexture.h:
+	* ext/qt/qtitem.cc:
+	  qml: implement the required multiple GL context synchonisation
+	  From GStreamer's GL context into the QML context
+
+2015-08-08 17:22:05 +0200  Matthew Waters <matthew@centricular.com>
+
+	* gst-libs/gst/gl/gstglsyncmeta.c:
+	  gl/syncmeta: implement synchronisation without glFenceSync
+	  Uses glFinish as that's the best we have for lesser OpenGL versions.
+
+2015-08-08 15:45:59 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* gst/asfmux/gstasfmux.c:
+	  asfmux: output TIME segment if we output a stream and won't seek back later
+	  Check if downstream is seekable via a SEEKING query and output a
+	  BYTE segment if we want to seek back to fix up the headers later,
+	  but if we're streaming send a TIME segment instead (which goes
+	  down better with e.g. asfmux ! rtpasfpay).
+	  https://bugzilla.gnome.org/show_bug.cgi?id=719553
+
+2015-08-08 15:30:43 +0200  Matthew Waters <matthew@centricular.com>
+
+	* tests/check/libs/gstglcontext.c:
+	  tests/glcontext: fix INVALID_ENUM GL error in test
+
+2015-08-08 15:21:03 +0200  Matthew Waters <matthew@centricular.com>
+
+	* gst-libs/gst/gl/x11/gstglcontext_glx.c:
+	  context/glx: only use glXCreateContextAttribs for OpenGL 3 contexts
+	  mesa for example when creating a GL 3.1 compatibility context
+	  overrides our context profile selection to create a core context.
+
+2015-08-08 13:19:41 +0100  Luis de Bethencourt <luis@debethencourt.com>
+
+	* tests/examples/opencv/gstfacedetect_test.c:
+	  examples: facedetect: only set to playing when it's not already
+
+2015-08-08 12:52:36 +0100  Luis de Bethencourt <luis@debethencourt.com>
+
+	* tests/examples/opencv/gstfacedetect_test.c:
+	* tests/examples/opencv/gsthanddetect_test.c:
+	  examples: opencv: remove unnecessary setting of a property
+	  "/dev/video0" is the default device of v4l2src, setting it to this is
+	  redundant.
+
+2015-08-07 15:43:53 +0100  Luis de Bethencourt <luis@debethencourt.com>
+
+	* ext/opencv/gstfacedetect.cpp:
+	  facedetect: fix profile loading check
+	  Since the profile gchar depends on DEFAULT_FACE_PROFILE, it should never be
+	  NULL. Furthermore CascadeClassifier accepts any input, even
+	  an empty one, but if the profile fails to load it returns an empty cascade.
+	  Check for this instead, and inform the user if there was an Error.
+
+2015-08-06 11:30:04 -0300  Thiago Santos <thiagoss@osg.samsung.com>
+
+	* ext/hls/m3u8.c:
+	  hlsdemux: don't warn about duration if it is not known
+	  And also print the values in case of warning
+
+2015-08-07 13:16:56 +0100  Luis de Bethencourt <luis@debethencourt.com>
+
+	* .gitignore:
+	  gitignore: add new example file
+	  Commit 02b9daafdf64ab205ed725f5496dfa5ce860eacc added a new example file
+	  tests/examples/opencv/gstfacedetect_test, adding it to .gitignore
+
+2015-08-07 13:08:17 +0100  Luis de Bethencourt <luis@debethencourt.com>
+
+	* configure.ac:
+	* ext/opencv/gstfaceblur.c:
+	* ext/opencv/gstfaceblur.h:
+	* ext/opencv/gstfacedetect.cpp:
+	* ext/opencv/gstfacedetect.h:
+	* ext/opencv/gsthanddetect.c:
+	* ext/opencv/gsthanddetect.h:
+	  configure: update OpenCV requirements to 2.3.0
+	  With facedetect ported to C++ the minimum version of OpenCV
+	  supported is 2.3.0
+	  https://bugzilla.gnome.org/show_bug.cgi?id=748377
+
+2015-08-07 05:58:22 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+	* gst/videoparsers/gsth265parse.c:
+	  h265parse: expose compatible profiles to downstream
+	  Some video bitstreams report a too restrictive set of profiles. If a video
+	  decoder was to strictly follow the indicated profile, it wouldn't support that
+	  stream, whereas it could in theory and in practice. So we should relax the
+	  profile restriction for allowing the decoder to get connected with parser.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=747613
+
+2015-08-06 18:12:07 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* gst/bayer/gstrgb2bayer.c:
+	  rgb2bayer: Use mapped frame stride
+
+2015-08-06 18:11:53 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* gst/bayer/gstrgb2bayer.c:
+	  rgb2bayer: Protect against failing map
+
+2015-08-06 18:04:58 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* gst/bayer/gstbayer2rgb.c:
+	  bayer2rgb: Read stride from the video info
+
+2015-08-06 18:04:41 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* gst/bayer/gstbayer2rgb.c:
+	  bayer2rgb: Protect against failing map
+
+2015-08-06 19:23:49 +0300  Ilya Averyanov <i.averyanov@geoscan.aero>
+
+	* tools/element-templates/videoencoder:
+	  element-template: Fix wrong pad in videoencoder
+	  https://bugzilla.gnome.org/show_bug.cgi?id=753326
+
+2015-08-03 16:57:31 +0100  Florin Apostol <florin.apostol@oregan.net>
+
+	* ext/dash/gstdashdemux.c:
+	  dashdemux: Fix leak in gst_dash_demux_stream_update_fragment_info()
+	  The gst_dash_demux_stream_update_fragment_info function could call
+	  gst_dash_demux_stream_update_headers_info function twice. The
+	  gst_dash_demux_stream_update_headers_info function will set header_uri and
+	  index_uri to some newly allocated strings. The values set by the first call of
+	  gst_dash_demux_stream_update_headers_info will leak when the function is
+	  called for a second time.
+	  The solution is to call gst_adaptive_demux_stream_fragment_clear before the
+	  second call of gst_dash_demux_stream_update_headers_info
+	  https://bugzilla.gnome.org/show_bug.cgi?id=753188
+
+2015-08-05 14:52:12 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* gst/pcapparse/gstpcapparse.c:
+	  pcapparse: Segment should start at base ts
+	  Instead we would use cur_ts which matches the last TS store
+	  in the buffer list.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=753037
+
+2015-08-05 12:56:57 +0200  Anders Jonsson <anders.jonsson@norsjovallen.se>
+
+	* gst/camerabin2/gstwrappercamerabinsrc.c:
+	  camerabin2: Fix string typo
+	  https://bugzilla.gnome.org/show_bug.cgi?id=753241
+
+2015-08-05 11:56:32 +0100  Luis de Bethencourt <luis@debethencourt.com>
+
+	* ext/opencv/gstfacedetect.cpp:
+	  opencv: facedetect: free IplImage with cvReleaseImage
+	  Using delete() with IplImage will fail to free some of the structure's
+	  contents. cvReleaseImage() is the proper way of freeing the memory.
+
+2015-08-05 11:39:01 +0100  Luis de Bethencourt <luis@debethencourt.com>
+
+	* ext/opencv/gstfacedetect.cpp:
+	  opencv: facedetect: check pointer before using it
+	  Check if profile is NULL before dereferencing it with new. Also, new will
+	  never return NULL; if allocation fails, a std::bad_alloc exception will be
+	  thrown instead. Remove check for a NULL return.
+	  CID #1315258
+
+2015-08-05 11:14:49 +0100  Luis de Bethencourt <luis@debethencourt.com>
+
+	* ext/x265/gstx265enc.c:
+	  x265enc: remove dead code
+	  level_ok is only used in a check that will never be true, removing it.
+	  CID #1315255
+
+2015-08-05 11:11:11 +0100  Luis de Bethencourt <luis@debethencourt.com>
+
+	* ext/x265/gstx265enc.c:
+	  x265enc: fix memory leak
+	  Free vps_nal before returning.
+	  CID #1315257
+
+2015-08-04 23:15:36 +0200  Carlos Garnacho <carlosg@gnome.org>
+
+	* ext/rsvg/gstrsvgdec.c:
+	  rsvg: Don't leak a GstVideoCodecState
+	  There's already the output_state variable with it, no need to
+	  call gst_video_decoder_get_output_state() and get a new ref.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=753262
+
+2015-08-04 21:32:53 +0900  Jimmy Ohn <yongjin.ohn@lge.com>
+
+	* gst/rawparse/gstrawparse.c:
+	  rawparse: fix duplicated format in handle_seek_pull
+	  GstFormat variable are duplicated in handle_seek_pull function.
+	  So we need to move this variable in condition statement.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=753243
+
+2015-08-04 14:30:17 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* ext/opencv/gstfacedetect.cpp:
+	  opencv: facedetect: fix crashes in finalize
+	  Fixes gst-inspect-1.0 -a crashing.
+
+2015-08-03 19:42:56 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* sys/winscreencap/gstdx9screencapsrc.c:
+	* sys/winscreencap/gstdx9screencapsrc.h:
+	* sys/winscreencap/gstgdiscreencapsrc.c:
+	* sys/winscreencap/gstgdiscreencapsrc.h:
+	  winscreencap: Properly timestamp buffers with the current clock running time instead of doing magic
+	  Also implement framerate handling correctly by borrowing the code from
+	  ximagesrc. GstBaseSrc::get_times() can't be used for that, we have to
+	  implement proper waiting ourselves.
+
+2015-08-04 00:20:27 +1000  Jan Schmidt <thaytan@noraisin.net>
+
+	* ext/opencv/gstfacedetect.cpp:
+	  opencv: Fix 32-bit build / format strings.
+	  Use G_GSIZE_FORMAT for format strings where relevant
+
+2015-08-03 19:48:16 +1000  Matthew Waters <matthew@centricular.com>
+
+	* ext/gl/gstglvideomixer.c:
+	  glvideomixer: swap control binding proxy
+	  The ref_object and object parameters were the wrong way around.
+	  For the typical use case where an application is setting a
+	  GstControlBinding on the returned ghost pad:
+	  1. our control binding would be removed when the new one was set
+	  2. sync_values calls were not being forwarded from the internal
+	  pad to the ghost pad.
+	  If an application attempts to perform other control binding
+	  operations (get_* family of functions) on the internal pad, they
+	  will also be forwarded to the ghost pad where a possible
+	  GstControlBinding will provide the necessary values.
+
+2015-08-01 15:52:28 -0300  Thiago Santos <thiagoss@osg.samsung.com>
+
+	* ext/dash/gstmpdparser.c:
+	  dash: mpdparser: plug leak in segmenttemplate parsing
+	  Only copy the values from the parent if the current node doesn't
+	  have that value, they were being copied from the parent and
+	  then overwriten by the child node, leaking the parent's copy
+
+2015-08-01 15:51:50 -0300  Thiago Santos <thiagoss@osg.samsung.com>
+
+	* tests/check/elements/dash_mpd.c:
+	  tests: dash_mpd: add check for segmenttemplate inheritance
+	  Checks if the values are properly inherited and overwriten
+
+2015-08-01 15:09:19 -0300  Thiago Santos <thiagoss@osg.samsung.com>
+
+	* tests/check/elements/dash_mpd.c:
+	  tests: dash_mpd: add one more baseURL test
+	  This other type of baseURL test was replaced by a more complex one,
+	  better have both to keep both options working
+	  Also adds another 2 variations of how baseURL can be generated
+	  https://bugzilla.gnome.org/show_bug.cgi?id=752776
+
+2015-07-23 10:54:36 +0100  Florin Apostol <florin.apostol@oregan.net>
+
+	* tests/check/elements/dash_mpd.c:
+	  dashdemux: tests: added duration format test
+	  https://bugzilla.gnome.org/show_bug.cgi?id=752776
+
+2015-07-22 11:42:23 +0100  Florin Apostol <florin.apostol@oregan.net>
+
+	* tests/check/elements/dash_mpd.c:
+	  dashdemux: tests: update unit test for baseURL
+	  Update the unit test for baseURL to test that it is properly
+	  resolved taking into account parent baseURL elements.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=752776
+
+2015-08-01 11:51:22 -0300  Thiago Santos <thiagoss@osg.samsung.com>
+
+	* ext/opencv/gsttemplatematch.c:
+	  templatematch: revert rename of property
+	  The property doesn't need to have its name changed because of C++,
+	  just the instance variables.
+
+2015-07-31 17:31:15 +0100  Vanessa Chipirrás <vchipirras6@gmail.com>
+
+	* tests/examples/opencv/Makefile.am:
+	* tests/examples/opencv/gstfacedetect_test.c:
+	  facedetect: Add unit test
+	  I created four utilities of the detected features:
+	  1- If you hide your mouth, the volume of video is low.
+	  2- If you hide the nose, the volume of the video is up.
+	  3- If you hide the full face, the video stops.
+	  You can see proof of this here:
+	  https://www.youtube.com/watch?v=pxzejNKV_WQ
+	  https://bugzilla.gnome.org/show_bug.cgi?id=748377
+
+2015-07-31 16:40:07 +0100  Luis de Bethencourt <luis@debethencourt.com>
+
+	* ext/opencv/gsttemplatematch.c:
+	* ext/opencv/gsttemplatematch.h:
+	  templatematch: rename conflicting variable
+	  With the switch of gstopencv.c to C++, all OpenCV elements are built with
+	  g++. The template variable clashes with C++'s feature of the same name.
+	  Rename template to templ to avoid any clash.
+
+2015-07-31 13:45:43 +0100  Vanessa Chipirrás <vchipirras6@gmail.com>
+
+	* ext/opencv/Makefile.am:
+	* ext/opencv/gstfacedetect.c:
+	* ext/opencv/gstfacedetect.cpp:
+	* ext/opencv/gstfacedetect.h:
+	* ext/opencv/gstopencv.c:
+	* ext/opencv/gstopencv.cpp:
+	  facedetect: need to migrate to C++
+	  The cascade classifier changes its structure on new version of OpenCV.
+	  The need to migrate to C++ to utilize the new load method of OpenCV which
+	  allows to load the new classifiers.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=748377
+
+2015-07-31 10:47:27 +0900  Vineeth TM <vineeth.tm@samsung.com>
+
+	* ext/dts/gstdtsdec.c:
+	  dtsdec: fix taglist leak
+	  taglist merge doesnt take ownership. So should free the tags after use
+	  https://bugzilla.gnome.org/show_bug.cgi?id=753086
+
+2015-07-30 23:31:21 +0200  Heinrich Fink <hfink@toolsonair.com>
+
+	* sys/applemedia/avsamplevideosink.m:
+	  applemedia/avsample: Fix racy cleanup of CA layer
+	  The block that is dispatched async to the main thread assumed the
+	  wrapping GstAvSampleVideoSink to be alive. However, at the time of
+	  the block execution the GstObject instance that is deferenced to access
+	  the CA layer might already be freed, which caused occasional crashes.
+	  Instead, we now only pass the CoreAnimation layer that needs to be
+	  released to the block. We use __block to make sure the block is not
+	  increasing the refcount of the CA layer again on its own.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=753081
+
+2015-07-02 19:34:43 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+	* tests/check/libs/aggregator.c:
+	  tests: Add test for seeking live pipelines
+	  https://bugzilla.gnome.org/show_bug.cgi?id=745768
+
+2015-07-02 19:19:33 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+	* tests/check/libs/aggregator.c:
+	  tests: Make source live to re-enable aggregator timeout tests
+	  The live mode is only enabled if one of the sources if live.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=745768
+
+2015-07-02 18:37:28 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+	* tests/check/elements/audiointerleave.c:
+	  tests: Add audiointerleave test to show that queuing works
+	  This tests fails without the queuing patch because incoming buffers are
+	  not delivered before they are needed.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=745768
+
+2015-07-02 18:33:43 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+	* gst/audiomixer/gstaudiointerleave.c:
+	  audiointerleave: Avoid caps processing if not yet negotiated
+	  https://bugzilla.gnome.org/show_bug.cgi?id=745768
+
+2015-03-16 17:06:46 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+	* gst/audiomixer/gstaudioaggregator.c:
+	  audioaggregator: On timeout, resync pads with not enough data
+	  https://bugzilla.gnome.org/show_bug.cgi?id=745768
+
+2015-03-06 19:50:08 -0500  Olivier Crête <olivier.crete@collabora.com>
+
+	* gst-libs/gst/base/gstaggregator.c:
+	* gst-libs/gst/base/gstaggregator.h:
+	* gst/audiomixer/gstaudioaggregator.c:
+	  aggregator: Queue "latency" buffers at each sink pad.
+	  In the case where you have a source giving the GstAggregator smaller
+	  buffers than it uses, when it reaches a timeout, it will consume the
+	  first buffer, then try to read another buffer for the pad. If the
+	  previous element is not fast enough, it may get the next buffer even
+	  though it may be queued just before. To prevent that race, the easiest
+	  solution is to move the queue inside the GstAggregatorPad itself. It
+	  also means that there is no need for strange code cause by increasing
+	  the min latency without increasing the max latency proportionally.
+	  This also means queuing the synchronized events and possibly acting
+	  on them on the src task.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=745768
+
+2015-03-06 21:32:04 -0500  Olivier Crête <olivier.crete@collabora.com>
+
+	* gst-libs/gst/video/gstvideoaggregator.c:
+	  videoaggregator: Remove broken _clip vfunc
+	  It never does anything.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=745768
+
+2015-07-30 08:58:48 +0900  Vineeth TM <vineeth.tm@samsung.com>
+
+	* gst/videoparsers/gsth265parse.c:
+	  h265parse: Avoid checking for Non Mandatory VPS NAL
+	  VPS is not mandatory, and need not check for its presence before setting
+	  the caps. Because of the check, in streams which don't have VPS,
+	  sticky event mishandling happens.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=752807
+
+2015-07-30 15:33:46 +0900  Vineeth TM <vineeth.tm@samsung.com>
+
+	* gst/sdp/gstsdpdemux.c:
+	  sdpdemux: assertion error due to wrong condition check
+	  In media to caps function, reserved_keys array is being used for variable i,
+	  leading to GLib-CRITICAL **: g_ascii_strcasecmp: assertion 's1 != NULL' failed
+	  changed it to variable j
+	  https://bugzilla.gnome.org/show_bug.cgi?id=753009
+
+2015-07-30 11:12:21 +0100  Luis de Bethencourt <luis@debethencourt.com>
+
+	* ext/gl/gstglfilterbin.c:
+	  gstglfilterbin: remove unused variable
+	  res is set multiple times but never used or returned. Removing it.
+
+2015-07-29 20:07:09 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+	* gst-libs/gst/base/gstaggregator.c:
+	  aggregator: Default to "zero" start time selection mode as documented
+
+2015-07-29 20:06:11 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+	* gst-libs/gst/base/gstaggregator.c:
+	  aggregator: Ignore the "first" mode if the segment not a time segment
+
+2015-07-29 19:10:57 +0100  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst-libs/gst/gl/gstglupload.c:
+	  glupload: Remove debug output from gst_gl_upload_transform_caps()
+	  We can't know if the GstGLUpload type is initialized at this point already,
+	  and thus our debug category might not be initialized yet... and cause an
+	  assertion here.
+	  As we don't print debug output for any of the other transform functions, let's
+	  defer this problem for now.
+
+2015-07-29 17:48:58 +0100  Luis de Bethencourt <luis@debethencourt.com>
+
+	* ext/gl/gstglstereomix.c:
+	  glstereomix: remove redundant initialization
+	  v is initialized in the for loop init, no need to do it twice. Removing
+	  first initialization.
+
+2015-07-29 17:29:28 +0100  Luis de Bethencourt <luis@debethencourt.com>
+
+	* gst/rtp/gstrtph265pay.c:
+	  rtp: remove dead assignment
+	  Value set to ret will be overwritten at least once at the end of the while
+	  loop, removing assignment.
+
+2015-07-29 17:29:29 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* gst/mpegtsmux/mpegtsmux.c:
+	* gst/mpegtsmux/mpegtsmux.h:
+	  mpegtsmux: use GQueue instead of GList prepend/reverse
+
+2015-07-29 17:17:16 +0100  Luis de Bethencourt <luis@debethencourt.com>
+
+	* gst/sdp/gstsdpdemux.c:
+	  sdpdemux: remove redundant assignment
+	  Value of p is already set below just before being used. Removing this
+	  first assignment that will be ignored.
+
+2015-07-29 16:51:48 +0100  Luis de Bethencourt <luis@debethencourt.com>
+
+	* gst/mpegtsdemux/mpegtsbase.c:
+	  mpegtsbase: remove redundant check
+	  No need to check if done is True since break will already terminate the for
+	  loop.
+
+2015-07-29 13:09:05 +0100  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/sdp/gstsdpdemux.c:
+	  sdpdemux: Don't assert in GstAdapter if no data was received before EOS
+
+2015-07-28 22:30:09 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* tests/check/elements/compositor.c:
+	  compositor: Add unit tests for the new aggregator start-time-selection property
+	  https://bugzilla.gnome.org/show_bug.cgi?id=749966
+
+2015-06-15 18:30:20 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst-libs/gst/base/gstaggregator.c:
+	* gst-libs/gst/video/gstvideoaggregator.c:
+	  aggregator: Add property to select how to decide on a start time
+	  Before aggregator based elements always started at running time 0,
+	  now it's possible to select the first input buffer running time or
+	  explicitly set a start-time value.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=749966
+
+2015-07-29 11:25:24 +0100  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/sdp/gstsdpdemux.c:
+	  sdpdemux: Strip keys from the fmtp that we use internally in our caps
+	  Skip keys from the fmtp, which we already use ourselves for the
+	  caps. Some software is adding random things like clock-rate into
+	  the fmtp, and we would otherwise here set a string-typed clock-rate
+	  in the caps... and thus fail to create valid RTP caps
+	  https://bugzilla.gnome.org/show_bug.cgi?id=753009
+
+2015-07-29 22:59:56 +1000  Jan Schmidt <jan@centricular.com>
+
+	* gst-libs/gst/codecparsers/gsth264parser.h:
+	* gst/videoparsers/gsth264parse.c:
+	  h264parse: Add more NAL types for debugging output.
+	  Register more NAL unit types so that they are dumped
+	  by name in the debug output instead of being labelled
+	  'Invalid'
+
+2015-07-29 22:57:44 +1000  Jan Schmidt <jan@centricular.com>
+
+	* gst/mpegtsmux/mpegtsmux.c:
+	  mpegtsmux: Don't clear the PID on reset.
+	  The PID on a pad shouldn't change on a state change, only
+	  if the pad is freed and a new one created. Clearing the PID
+	  prevented mpegtsmux from being reused, because all packets
+	  would end up muxed in PID 0
+	  https://bugzilla.gnome.org/show_bug.cgi?id=752999
+
+2015-07-29 22:56:28 +1000  Jan Schmidt <jan@centricular.com>
+
+	* gst/mpegtsmux/mpegtsmux.c:
+	  mpegtsmux: Accumulate streamheaders in reverse
+	  Accumulate streamheader packets in reverse into the
+	  GList for efficiency, and reverse the list once when
+	  processing.
+	  Improves muxing speed when there are a lot of
+	  streamheaders.
+
+2015-07-29 10:12:43 +0100  Sebastian Dröge <sebastian@centricular.com>
+
+	* sys/androidmedia/gstamcvideoenc.c:
+	  amcvideoenc: Always set i-frame-interval setting
+	  Most encoders fail to initialize if we don't set it at all.
+
+2015-07-29 12:56:54 +0900  Vineeth TM <vineeth.tm@samsung.com>
+
+	* gst/videoparsers/gsth263parse.c:
+	  h263parse: fix caps memory leak
+	  https://bugzilla.gnome.org/show_bug.cgi?id=752991
+
+2015-07-28 21:15:43 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst-libs/gst/base/gstaggregator.c:
+	  aggregator: Query the peer latency again on the next opportunity after a pad was added or removed
+	  Adding a pad will add a new upstream that might have a bigger minimum latency,
+	  so we might have to wait longer. Or it might be the first live upstream, in
+	  which case we will have to start deadline based aggregation.
+	  Removing a pad will remove a new upstream that might have had the biggest
+	  latency, so we can now stop waiting a bit earlier. Or it might be the last
+	  live upstream, in which case we can stop deadline based aggregation.
+
+2015-07-28 11:20:40 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
+
+	* tests/check/libs/gstglcolorconvert.c:
+	  glcolorconvert-test: Test notify function for setup_wrapped
+	  gst_gl_memory_setup_wrapped() now takes a destroy notify function. This
+	  destroy notify is called to track the memory life time, hence will
+	  notify each time a memory get destroyed. This test check that the
+	  callback count is correct.
+
+2015-07-28 11:06:43 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
+
+	* tests/check/libs/gstglcolorconvert.c:
+	  glcolorconvert-test: Fix build
+
+2015-07-28 08:59:24 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
+
+	* gst-libs/gst/gl/gstglupload.c:
+	  glupload: Add fixme about using bufferpool for raw
+	  http://bugzilla.gnome.org/show_bug.cgi?id=752937
+
+2015-07-27 16:58:22 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* gst-libs/gst/gl/gstglmemory.c:
+	* gst-libs/gst/gl/gstglmemory.h:
+	* gst-libs/gst/gl/gstglupload.c:
+	  glupload: Keep input frame mapped as long as needed
+	  When performing a raw upload, we need to keep the raw data mapped as
+	  long as needed.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=752937
+
+2015-07-27 15:58:10 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* gst-libs/gst/gl/gstglupload.c:
+	  Revert "glupload: memcpy on raw data upload"
+	  This reverts commit 82c0189b2842e8729e82a4e73491dffc977bc7c2.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=752937
+
+2015-07-15 16:21:00 +0100  Florin Apostol <florin.apostol@oregan.net>
+
+	* ext/dash/gstmpdparser.c:
+	  dashdemux: gst_mpdparser_get_xml_prop_duration sets default value in case of parsing errors
+	  The gst_mpdparser_get_xml_prop_duration function will set the
+	  property_value to the default_value in case the parsing fails.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=752426
+
+2015-07-27 18:39:13 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+	* ext/opus/gstopuscommon.c:
+	  opuscommon: Use GString instead of snprintf for concating
+	  Safer, easier to understand, and more portable. Also, skip
+	  all this if the log level is too low.
+
+2015-07-27 21:54:27 +1000  Matthew Waters <matthew@centricular.com>
+
+	* gst-libs/gst/gl/win32/gstglcontext_wgl.c:
+	* gst-libs/gst/gl/win32/gstglcontext_wgl.h:
+	  glcontext/wgl: fix defenition of gst_gl_context_wgl_new
+	  gstglcontext_wgl.c: In function 'gst_gl_context_wgl_new':
+	  gstglcontext_wgl.c:83:40: error: 'display' undeclared (first use in this function)
+
+2015-07-27 20:03:05 +1000  Matthew Waters <matthew@centricular.com>
+
+	* gst-libs/gst/gl/cocoa/gstglcontext_cocoa.h:
+	  gl/cocoa: fix definition of gst_gl_context_new
+	  gstglcontext_cocoa.m:75:1: error: conflicting types for 'gst_gl_context_cocoa_new'
+
+2015-07-27 20:00:47 +1000  Matthew Waters <matthew@centricular.com>
+
+	* gst-libs/gst/gl/win32/gstglwindow_win32.c:
+	  gl/win32: fix definition of gst_gl_window_win32_new
+
+2015-07-27 18:21:19 +1000  Matthew Waters <matthew@centricular.com>
+
+	* gst-libs/gst/gl/wayland/gstglwindow_wayland_egl.c:
+	  wayland: fail window open if the display is the correct type
+	  Errors out cleanly if a wayland compositor is not running
+
+2015-07-24 17:00:27 +1000  Matthew Waters <matthew@centricular.com>
+
+	* gst-libs/gst/gl/android/gstglwindow_android_egl.c:
+	* gst-libs/gst/gl/android/gstglwindow_android_egl.h:
+	* gst-libs/gst/gl/cocoa/gstglwindow_cocoa.h:
+	* gst-libs/gst/gl/cocoa/gstglwindow_cocoa.m:
+	* gst-libs/gst/gl/dispmanx/gstglwindow_dispmanx_egl.c:
+	* gst-libs/gst/gl/dispmanx/gstglwindow_dispmanx_egl.h:
+	* gst-libs/gst/gl/eagl/gstglwindow_eagl.h:
+	* gst-libs/gst/gl/eagl/gstglwindow_eagl.m:
+	* gst-libs/gst/gl/gstglwindow.c:
+	* gst-libs/gst/gl/wayland/gstglwindow_wayland_egl.c:
+	* gst-libs/gst/gl/wayland/gstglwindow_wayland_egl.h:
+	* gst-libs/gst/gl/win32/gstglwindow_win32.c:
+	* gst-libs/gst/gl/win32/gstglwindow_win32.h:
+	* gst-libs/gst/gl/x11/gstglwindow_x11.c:
+	  glwindow: pass display to implementation's _new()
+	  So they have to opportunity to fail if they cannot handle the
+	  display connection.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=752743
+
+2015-07-24 16:11:38 +1000  Matthew Waters <matthew@centricular.com>
+
+	* gst-libs/gst/gl/cocoa/gstglcontext_cocoa.m:
+	* gst-libs/gst/gl/eagl/gstglcontext_eagl.h:
+	* gst-libs/gst/gl/eagl/gstglcontext_eagl.m:
+	* gst-libs/gst/gl/egl/gstglcontext_egl.c:
+	* gst-libs/gst/gl/egl/gstglcontext_egl.h:
+	* gst-libs/gst/gl/gstglcontext.c:
+	* gst-libs/gst/gl/win32/gstglcontext_wgl.c:
+	* gst-libs/gst/gl/x11/gstglcontext_glx.c:
+	* gst-libs/gst/gl/x11/gstglcontext_glx.h:
+	  glcontext: pass display to implentation's _new()
+	  This allows the context to fail creation based on incompatible
+	  display type's. e.g. glx context with an wayland display handle.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=752743
+
+2015-07-06 00:52:06 +0100  Julien Isorce <julien.isorce@gmail.com>
+
+	* configure.ac:
+	* gst-libs/gst/gl/egl/gstglcontext_egl.c:
+	* gst-libs/gst/gl/gstglapi.h:
+	  gl: support cgl, egl and glx within a same build
+	  On osx, with the same build,
+	  gst-launch-1.0 videotestsrc ! glimagesink works with:
+	  GST_GL_PLATFORM=egl GST_GL_WINDOW=x11 GST_GL_API=gles2
+	  GST_GL_PLATFORM=egl GST_GL_WINDOW=x11 GST_GL_API=opengl
+	  GST_GL_PLATFORM=glx GST_GL_WINDOW=x11 GST_GL_API=opengl
+	  GST_GL_PLATFORM=cgl GST_GL_WINDOW=cocoa GST_GL_API=opengl
+	  GST_GL_PLATFORM=cgl GST_GL_WINDOW=cocoa GST_GL_API=opengl3
+	  https://bugzilla.gnome.org/show_bug.cgi?id=752743
+
+2015-07-27 16:36:40 +1000  Jan Schmidt <jan@centricular.com>
+
+	* gst-libs/gst/gl/gstglupload.c:
+	  glupload: Check that caps contain desired caps features
+	  Use 'contains' checks instead of equality checks on caps features
+	  to allow for uploading when caps also contain GstVideoOverlayComposition
+	  meta.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=752912
+
+2015-07-25 09:03:27 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
+
+	* sys/bluez/Makefile.am:
+	  bluez: Add built sources to CLEANFILES
+
+2015-07-20 10:50:44 +0100  Florin Apostol <florin.apostol@oregan.net>
+
+	* ext/dash/gstmpdparser.c:
+	  dahdemux: avoid overflows in computation of segment start time and duration
+	  Used gst_util_uint64_scale to avoid overflows when segment start time
+	  or duration is computed.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=752620
+
+2015-07-13 15:37:26 -0300  Thiago Santos <thiagoss@osg.samsung.com>
+
+	* ext/hls/m3u8.c:
+	  hlsdemux: demote error to warning
+	  It is not fatal and can be quite normal when the network is
+	  too slow
+
+2015-07-24 09:42:53 +0200  Miguel París Díaz <mparisdiaz@gmail.com>
+
+	* ext/srtp/gstsrtpenc.c:
+	  srtpenc: do not check input buffers
+	  With this we avoid an unnecessary and considerable overhead.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=752774
+
+2015-07-06 00:45:45 +0100  Julien Isorce <julien.isorce@gmail.com>
+
+	* gst-libs/gst/gl/gstglcontext.c:
+	  gl: move GL_NUM_EXTENSIONS definition after gl.h
+	  https://bugzilla.gnome.org/show_bug.cgi?id=752743
+
+2015-07-23 23:59:22 +0100  Julien Isorce <julien.isorce@gmail.com>
+
+	* ext/gl/caopengllayersink.m:
+	  caopengllayersink: remove unused label context_creation_error
+	  Build error introduced by commit
+	  5457e55f255518d679b59a170951e299ecd8c5f6
+	  https://bugzilla.gnome.org/show_bug.cgi?id=750310
+
+2015-07-24 02:46:21 +1000  Jan Schmidt <jan@centricular.com>
+
+	* gst/videoparsers/gsth264parse.c:
+	  h264parse: Don't discard first AU delimiter
+	  Don't throw away AU delimiter(s) that precede the SPS/PPS. Should
+	  fix MPEG-TS playback on iOS/Quicktime when muxing streams that
+	  already have AU delimiters.
+	  See https://bugzilla.gnome.org/show_bug.cgi?id=736213 for getting
+	  h264parse to insert AU delimiters when they don't already
+	  exist.
+
+2015-07-23 11:18:47 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* ext/gl/gstglimagesink.c:
+	  glimagesink: fix allocation meta structure leak
+	  gst_query_add_allocation_meta() does not take ownership
+	  of the structure, for some reason.
+	  CID 1312135
+
+2015-07-23 10:57:26 +0100  Luis de Bethencourt <luis@debethencourt.com>
+
+	* gst-libs/gst/gl/gstglupload.c:
+	  glupload: fix memory leak
+	  GstCapsFeatures need to be freed with gst_caps_features_free() after use.
+	  CID #1312136, CID #1312136
+
+2015-07-02 20:10:50 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+	* ext/gl/gstglvideomixer.c:
+	  glvideomixer: Add GstControlBinding proxy
+	  This is used to proxy GstControlBinding to the pad on the
+	  parent object. This avoid having to sync the values in the proxy pad,
+	  this is too early if you have a queue between the pad and the actual
+	  aggregation operation.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=734060
+
+2015-07-22 19:27:19 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+	* gst/audiomixer/gstaudioaggregator.c:
+	  audioaggregator: Register function name
+	  Otherwise, it sometimes segfaults with debugging enabled
+
+2015-07-22 19:26:42 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+	* gst/audiomixer/gstaudioaggregator.c:
+	  audioaggregator: Use 1.0 style buffer allocation
+
+2015-07-22 16:58:12 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* ext/gl/gstgluploadelement.c:
+	  glupload: Forward composition meta even without params
+	  When the sink does not know the window size (e.g not created yet)
+	  it will not add any param to the the composition meta. This is no
+	  reason not to forward this meta API. Fixes issue where it could not
+	  attach until we resize the window.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=745107
+
+2015-07-22 15:56:34 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* gst-libs/gst/gl/gstgloverlaycompositor.c:
+	  gloverlaycompositor: Keep memory pointer alive
+	  Keep the composition memory pointer alive while it's being
+	  wrapped inside a GstGLMemory object.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=745107
+
+2015-07-22 14:17:42 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* gst-libs/gst/gl/gstgloverlaycompositor.c:
+	  gloverlaycompositor: Pass buffer stride
+	  The overlay pixel buffer stride was not given back
+	  to the GL image.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=745107
+
+2015-05-19 16:08:08 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+	* gst/audiomixer/gstaudioaggregator.c:
+	* tests/check/Makefile.am:
+	* tests/check/elements/audiomixer.c:
+	  audioaggregator: Sync pad values before aggregating
+	  We need to sync the pad values before taking the aggregator and pad locks
+	  otherwise the element will just deadlock if there's any property changes
+	  scheduled using GstController since that involves taking the aggregator and pad
+	  locks.
+	  Also add a test for this.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=749574
+
+2015-07-22 14:05:34 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* gst-libs/gst/gl/Makefile.am:
+	* gst-libs/gst/gl/gstgl_fwd.h:
+	* gst-libs/gst/gl/gstglcompositionoverlay.c:
+	* gst-libs/gst/gl/gstglcompositionoverlay.h:
+	* gst-libs/gst/gl/gstgloverlaycompositor.c:
+	* gst-libs/gst/gl/gstgloverlaycompositor.h:
+	  gloverlaycompositor: Hide GstCompsitionOverlay object
+	  This object is only used inside the compositor and does not
+	  need to be expose in libgstgl API.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=745107
+
+2015-07-22 13:33:12 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* gst-libs/gst/gl/Makefile.am:
+	  libgstgl: Makefile style fix
+
+2015-07-21 23:48:25 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
+
+	* ext/gl/gstglimagesink.c:
+	* gst-libs/gst/gl/gstglcompositionoverlay.c:
+	* gst-libs/gst/gl/gstglcompositionoverlay.h:
+	* gst-libs/gst/gl/gstgloverlaycompositor.c:
+	* gst-libs/gst/gl/gstgloverlaycompositor.h:
+	  composition-overlay: Positions are relative to texture
+	  The coordinate are relative to the texture dimension and not
+	  the window dimension now. There is no need to pass the window
+	  dimension or to update the overlay if the dimension changes.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=745107
+
+2015-07-21 21:27:45 -0400  Lubosz Sarnecki <lubosz.sarnecki@collabora.co.uk>
+
+	* ext/gl/gstglimagesink.c:
+	* gst-libs/gst/gl/gstgloverlaycompositor.c:
+	* gst-libs/gst/gl/gstgloverlaycompositor.h:
+	  gloverlaycompositor: Create own shader object
+	  Make gloverlaycompositor independent of the shader used in the sink.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=745107
+
+2015-07-21 18:47:56 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* ext/gl/gstglimagesink.c:
+	  glimagesink: Properly handle compsositor life time
+	  Should be created in READY_TO_PAUSED, not PAUSED_TO_PLAYING.
+	  Should be cleared in PAUSED_TO_READY.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=745107
+
+2015-07-22 16:10:35 +0100  Luis de Bethencourt <luis@debethencourt.com>
+
+	* gst/liveadder/liveadder.c:
+	  liveadder: remove unneeded variable
+	  ret is declared just to initialize to TRUE and overwrite with the value of
+	  vret. We can return the value of vret directly. vret is TRUE unless the
+	  forward_event_func sets it to FALSE.
+
+2015-07-22 15:13:48 +0200  Edward Hervey <edward@centricular.com>
+
+	* ext/qt/Makefile.am:
+	  qt: Don't dist files that might not exist
+	  We only require moc building at build time.
+
+2015-07-22 15:50:26 +0900  Young Han Lee <y.lee@lge.com>
+
+	* configure.ac:
+	  configure: require libxml2 >= 2.8 for DASH plugin
+	  The DASH plugin uses xmlBufferDetach now in the code
+	  that handles ContentProtection elements.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=752703
+
+2015-07-22 08:05:04 +0200  Edward Hervey <bilboed@bilboed.com>
+
+	* ext/qt/Makefile.am:
+	  qt: Tidy up makefile a bit more
+	  Separate generated files, from disted files
+
+2015-07-21 20:52:23 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+	* gst/audiomixer/gstaudioaggregator.c:
+	  audioaggregator: Read output buffer duration with lock held
+
+2015-07-21 11:23:21 +0100  Julien Isorce <j.isorce@samsung.com>
+
+	* ext/gtk/gtkgstglwidget.c:
+	  gstglwidget: use gst_gl_display_create_context
+	  Also handle the failure case.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=750310
+
+2015-07-21 11:28:08 +0100  Julien Isorce <j.isorce@samsung.com>
+
+	* ext/gl/caopengllayersink.m:
+	  caopengllayersink: use gst_gl_display_create_context
+	  https://bugzilla.gnome.org/show_bug.cgi?id=750310
+
+2015-07-21 11:21:27 +0100  Julien Isorce <j.isorce@samsung.com>
+
+	* ext/gl/gstglstereosplit.c:
+	  glstereosplit: use gst_gl_display_create_context
+	  Also unlock the lock on error.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=750310
+
+2015-07-21 14:10:57 +0100  Luis de Bethencourt <luis@debethencourt.com>
+
+	* gst/liveadder/liveadder.c:
+	  liveadder: return false if event couldn't be pushed
+	  Make the gst pad's event function return false if the event couldn't be
+	  pushed to the pad.
+
+2015-07-21 13:11:17 +0100  Luis de Bethencourt <luis@debethencourt.com>
+
+	* gst-libs/gst/gl/gstgloverlaycompositor.c:
+	  gloverlaycompositor: for loop initial declarations are only allowed in C99 mode
+	  Fixes compiler warnings
+
+2015-06-19 11:57:06 +0100  Julien Isorce <j.isorce@samsung.com>
+
+	* ext/gl/gstglbasemixer.c:
+	* ext/gl/gstgltestsrc.c:
+	* gst-libs/gst/gl/gstglbasefilter.c:
+	  gl: use gst_gl_display_create_context in more elements.
+	  glbasefilter, glbasemixer and gltestsrc.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=750310
+
+2015-07-21 17:34:27 +1000  Matthew Waters <matthew@centricular.com>
+
+	* gst-libs/gst/gl/Makefile.am:
+	  gl/build: fix typo in _HEADERS resulting in installing the wrong file
+	  /usr/include/gstreamer-1.0/gst/gl/gl.h:51:43: fatal error:
+	  gst/gl/gstgloverlaycompositor.h: No such file or directory
+
+2015-07-21 15:39:35 +1000  Matthew Waters <matthew@centricular.com>
+
+	* gst-libs/gst/gl/gstglcolorconvert.c:
+	  glcolorconvert: add RGB to NV12/NV21 conversion
+
+2015-07-01 14:01:45 +0200  Lubosz Sarnecki <lubosz.sarnecki@collabora.co.uk>
+
+	* ext/gl/gstglimagesink.c:
+	  glimagesink: Send reconfigure event when window size changes
+	  https://bugzilla.gnome.org/show_bug.cgi?id=745107
+
+2015-07-20 14:24:22 -0400  Lubosz Sarnecki <lubosz.sarnecki@collabora.co.uk>
+
+	* ext/gl/gstglimagesink.c:
+	* ext/gl/gstgluploadelement.c:
+	  glimagesinkbin: Add allocation query for GstVideoOverlayComposition
+	  Adds an GST_VIDEO_OVERLAY_COMPOSITION_META_API_TYPE query to glupload
+	  and glimagesink.  Detects the query from the downstream elements, so
+	  it is executed only when downstream supports the overlay API.
+	  This makes pipelines with textoverlay ! glupload ! gldownload ! xvimagesink possible.
+	  Uses allocation meta struct for passing the window size upstream.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=745107
+
+2015-04-20 13:17:09 +0200  Lubosz Sarnecki <lubosz.sarnecki@collabora.co.uk>
+
+	* gst-libs/gst/gl/gstglcolorconvert.c:
+	  glcolorconvert: Apply GstVideoOverlayCompositionMeta buffer to converted buffer
+	  Since glcolorconvert creates a new GstBuffer,
+	  without the GstVideoOverlayCompositionMeta data,
+	  it needs to be copied to not be dropped.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=745107
+
+2015-06-18 13:34:58 +0200  Lubosz Sarnecki <lubosz.sarnecki@collabora.co.uk>
+
+	* gst-libs/gst/gl/gstglupload.c:
+	  glupload: Detect overlay meta buffers correctly
+	  https://bugzilla.gnome.org/show_bug.cgi?id=745107
+
+2015-06-18 05:43:50 +0200  Lubosz Sarnecki <lubosz.sarnecki@collabora.co.uk>
+
+	* ext/gl/gstglcolorconvertelement.c:
+	* ext/gl/gstglimagesink.c:
+	* gst-libs/gst/gl/gstglcolorconvert.c:
+	* gst-libs/gst/gl/gstglcolorconvert.h:
+	* gst-libs/gst/gl/gstglupload.c:
+	  glimagesinkbin: Add GstVideoOverlayCompositionMeta caps features
+	  https://bugzilla.gnome.org/show_bug.cgi?id=745107
+
+2015-06-18 06:04:37 +0200  Lubosz Sarnecki <lubosz.sarnecki@collabora.co.uk>
+
+	* ext/gl/gstglimagesink.c:
+	* ext/gl/gstglimagesink.h:
+	  glimagesink: Upload and draw overlays with GstGLOverlayCompositor
+	  Receives the GstOverlayComposition buffer in the glimagesink and draws them.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=745107
+
+2015-06-30 17:59:12 +0200  Lubosz Sarnecki <lubosz.sarnecki@collabora.co.uk>
+
+	* gst-libs/gst/gl/Makefile.am:
+	* gst-libs/gst/gl/gl.h:
+	* gst-libs/gst/gl/gstgl_fwd.h:
+	* gst-libs/gst/gl/gstgloverlaycompositor.c:
+	* gst-libs/gst/gl/gstgloverlaycompositor.h:
+	  gloverlaycompositor: Add GstGLOverlayCompositor class
+	  Manages the GstGLCompositionOverlay objects,
+	  caches already uploaded overlays and draws them.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=745107
+
+2015-06-18 14:15:01 +0200  Lubosz Sarnecki <lubosz.sarnecki@collabora.co.uk>
+
+	* gst-libs/gst/gl/gstglcompositionoverlay.c:
+	  glcompositionoverlay: Add compatibility for GL contexts without glGenVertexArrays
+	  https://bugzilla.gnome.org/show_bug.cgi?id=745107
+
+2015-06-13 15:35:47 +0200  Lubosz Sarnecki <lubosz.sarnecki@collabora.co.uk>
+
+	* gst-libs/gst/gl/Makefile.am:
+	* gst-libs/gst/gl/gstgl_fwd.h:
+	* gst-libs/gst/gl/gstglcompositionoverlay.c:
+	* gst-libs/gst/gl/gstglcompositionoverlay.h:
+	  glcompositionoverlay: Add class for managing GstVideoOverlayCompositionOverlay buffers
+	  Add a class to store and manage the OpenGL texture,
+	  vertex buffer and GstVideoOverlayRectangle.
+	  Transforms overlay coordinate space to vertex buffer space with aspect ratios in mind.
+	  = Example Pipelines =
+	  Simple pipeline
+	  gst-launch-1.0 videotestsrc ! \
+	  textoverlay text="Hello World" font-desc="sans bold 30" ! \
+	  glimagesink
+	  Display 3 static overlays at different positions
+	  gst-launch-1.0 videotestsrc ! \
+	  textoverlay text="text1" valignment="top" font-desc="sans bold 30" ! \
+	  textoverlay text="text2" halignment="right" font-desc="sans bold 30" ! \
+	  textoverlay text="text3" halignment="left" font-desc="sans bold 30" ! \
+	  glimagesink
+	  Display subtitle file over testsrc
+	  gst-launch-1.0 videotestsrc ! \
+	  textoverlay name=foo filesrc location=foo.srt ! subparse ! queue ! foo. foo. ! \
+	  glimagesink
+	  https://bugzilla.gnome.org/show_bug.cgi?id=745107
+
+2015-06-18 11:33:29 +0200  Lubosz Sarnecki <lubosz.sarnecki@collabora.co.uk>
+
+	* gst-libs/gst/gl/gstglupload.c:
+	  glupload: Move debug init to top of the file
+	  https://bugzilla.gnome.org/show_bug.cgi?id=745107
+
+2015-04-20 15:04:56 +0200  Carlos Rafael Giani <dv@pseudoterminal.org>
+
+	* ext/opus/gstopusdec.c:
+	* ext/opus/gstopusdec.h:
+	  opusdec: Fix PLC frame size calculations
+	  Previously, PLC frames always had a length of 120ms, which caused audio
+	  quality degradation and synchronization errors. Fix this by calculating an
+	  appropriate length for the PLC frame.
+	  The length must be a multiple of 2.5ms. Calculate a multiple of 2.5ms that
+	  is nearest to the current PLC length. Any leftover PLC length that didn't
+	  make it into this frame is accumulated for the next PLC frame.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=725167
+
+2015-07-18 21:18:23 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* gst-libs/gst/adaptivedemux/gstadaptivedemux.c:
+	  adaptivedemux: minor clean-up
+	  No need for a foreach callback function that's just a few
+	  lines of code and is only used once, just do the event
+	  pushing inline.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=705991
+
+2015-02-06 13:22:14 +0000  Alex Ashley <bugzilla@ashley-family.net>
+
+	* ext/dash/gstdashdemux.c:
+	* ext/dash/gstmpdparser.c:
+	* gst-libs/gst/adaptivedemux/gstadaptivedemux.c:
+	* gst-libs/gst/adaptivedemux/gstadaptivedemux.h:
+	  dashdemux: add support for generating Protection events from ContentProtection elements
+	  If a ContentProtection element is present in an AdaptationSet element,
+	  send Protection events on the source pad, so that qtdemux can use this
+	  information to correctly generate its source caps for DASH CENC
+	  encrypted streams.
+	  This allows qtdemux to support CENC encrypted DASH streams where the
+	  content protection specific information is carried in the MPD file
+	  rather than in pssh boxes in the initialisation segments.
+	  This commit adds a new function to the adaptivedemux base class to allow
+	  a GstEvent to be queued for a stream. The queue of events are sent the
+	  next time a buffer is pushed for that stream.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=705991
+
+2015-07-20 12:40:28 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* ext/voaacenc/gstvoaacenc.c:
+	  voaacenc: fix output caps for stream-format=ADTS
+	  Should have framed=true in caps. Fixes voaacenc ! mpegtsmux.
+
+2015-07-20 12:38:28 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* gst/mpegtsmux/mpegtsmux.c:
+	  mpegtsmux: fix aac caps in pad template for raw aac
+	  Raw aac doesn't need framed=true.
+	  Fixes not-negotiated error with voaacenc ! mpegtsmux.
+
+2015-07-20 11:09:20 +0200  Thibault Saunier <tsaunier@gnome.org>
+
+	* ext/gtk/gtkgstglwidget.c:
+	  gtk: Log GDK GL error when failling creating GdkGLContext
+
+2015-07-20 18:19:02 +1000  Matthew Waters <matthew@centricular.com>
+
+	* gst-libs/gst/gl/gstglmemory.c:
+	  glmemory: check for pbo availability before attempting pbo download
+	  https://bugzilla.gnome.org/show_bug.cgi?id=751165
+
+2015-07-18 17:19:18 +1000  Matthew Waters <matthew@centricular.com>
+
+	* ext/gtk/gtkgstglwidget.c:
+	* ext/qt/qtitem.cc:
+	* gst-libs/gst/gl/cocoa/gstglcaopengllayer.m:
+	* gst-libs/gst/gl/gstglcontext.c:
+	* gst-libs/gst/gl/gstglcontext.h:
+	* tests/check/libs/gstglcontext.c:
+	  glcontext: fix get_current_gl_api on x11/nvidia drivers
+	  They require to get_proc_address some functions through the
+	  platform specific {glX,egl}GetProcAddress rather than the default
+	  GL library symbol lookup.
+
+2015-07-18 17:08:36 +1000  Matthew Waters <matthew@centricular.com>
+
+	* gst-libs/gst/gl/egl/gstglcontext_egl.c:
+	* gst-libs/gst/gl/egl/gstglcontext_egl.h:
+	* gst-libs/gst/gl/gstglcontext.c:
+	* gst-libs/gst/gl/gstglcontext.h:
+	* gst-libs/gst/gl/win32/gstglcontext_wgl.c:
+	* gst-libs/gst/gl/win32/gstglcontext_wgl.h:
+	* gst-libs/gst/gl/x11/gstglcontext_glx.c:
+	* gst-libs/gst/gl/x11/gstglcontext_glx.h:
+	  glcontext: consolidate get_proc_address function definition
+	  Pass the GstGLAPI directly.
+
+2015-07-17 17:47:37 +1000  Matthew Waters <matthew@centricular.com>
+
+	* ext/gl/gstglcolorconvertelement.c:
+	  glcolorconvertelement: propagate failure to convert buffer upstream
+	  Rather than just silently continuing
+
+2015-07-17 13:48:00 +1000  Matthew Waters <matthew@centricular.com>
+
+	* gst-libs/gst/gl/x11/gstglcontext_glx.c:
+	  glcontext/glx: try creating a context with the highest version
+	  nvidia drivers return the exact version in glGstString (GL_VERSION)
+	  we request on creation so start with the highest known version and
+	  work our way down.
+
+2015-07-16 00:37:58 +1000  Matthew Waters <matthew@centricular.com>
+
+	* gst-libs/gst/gl/gstglcontext.c:
+	* tests/check/libs/gstglcontext.c:
+	  glcontext: track sharedness with a cookie
+	  The previous approach of traversing the other_context weak ref tree was
+	  1. Less performant
+	  2. Incorrect for context destruction removing a link in the tree
+	  Example of 2:
+	  c1 = context_create (NULL)
+	  c2 = context_create (c1)
+	  c3 = context_create (c2)
+	  context_can_share (c1, c3) == TRUE
+	  context_destroy (c2)
+	  unref (c2)
+	  context_can_share (c1, c3) returns FALSE when it should be TRUE!
+	  This does not remove the restriction that context sharedness can only
+	  be tracked between GstGLContext's.
+
+2015-07-16 00:33:17 +1000  Matthew Waters <matthew@centricular.com>
+
+	* gst-libs/gst/gl/gstglcontext.c:
+	  glcontext: use the debug object variant for completeness
+
+2015-07-17 16:00:01 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* ext/gtk/gtkgstglwidget.c:
+	  gtkgstglwidget: Cleanup unused private member
+	  new_buffer has been moved to base class. Also cleanup
+	  the properties comment, which are also all moved into
+	  the base class.
+
+2015-07-17 15:57:37 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* ext/gtk/gstgtkbasesink.c:
+	  gtksink: "widget" must be access from main thread
+	  Document that "widget" property must be accessed from the
+	  main thread (where GTK is running). This is the same for
+	  state transition on these elements. It is very natural to
+	  do so un GTK applications.
+
+2015-07-17 15:08:53 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* ext/gtk/gtkgstglwidget.c:
+	  gtkglsink: Don't leak vertex array and buffers
+	  This is now possible since reset is always called from the
+	  main thread.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=752441
+
+2015-07-17 14:36:56 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* ext/gtk/gtkgstbasewidget.c:
+	* ext/gtk/gtkgstbasewidget.h:
+	  gtkgstbasewidget: Fix black frame on resize
+	  This is solved by only applying the new format when the next
+	  buffer is to be rendered and on the GTK thread.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=752441
+
+2015-07-17 13:05:05 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* ext/gtk/gstgtkbasesink.c:
+	* ext/gtk/gtkgstbasewidget.c:
+	* ext/gtk/gtkgstbasewidget.h:
+	  gtkgstbasewidget: Pass already parsed VideoInfo
+	  As the base sink already parse the caps into VideoInfo it
+	  makes sense to pass in VideoInfo to the widget instead.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=752441
+
+2015-07-16 16:49:32 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* ext/gtk/gstgtkglsink.c:
+	* ext/gtk/gstgtkglsink.h:
+	  gtkglsink: Port to GstGtkBaseSink base class
+	  https://bugzilla.gnome.org/show_bug.cgi?id=752441
+
+2015-07-16 16:00:37 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* ext/gtk/gstgtksink.c:
+	* ext/gtk/gstgtksink.h:
+	  gtksink: Port to GstGtkBaseSink
+	  https://bugzilla.gnome.org/show_bug.cgi?id=752441
+
+2015-07-16 15:59:59 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* ext/gtk/Makefile.am:
+	* ext/gtk/gstgtkbasesink.c:
+	* ext/gtk/gstgtkbasesink.h:
+	  gtkbasesink: Create a base class
+	  This contains all the common code between the gtkglsink and
+	  gtksink.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=752441
+
+2015-07-16 14:30:42 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* ext/gtk/gstgtkglsink.c:
+	* ext/gtk/gstgtkglsink.h:
+	* ext/gtk/gtkgstglwidget.c:
+	* ext/gtk/gtkgstglwidget.h:
+	  gtkglsink: Port to GtkGstBaseWidget
+	  https://bugzilla.gnome.org/show_bug.cgi?id=752441
+
+2015-07-16 12:55:11 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* ext/gtk/gstgtksink.c:
+	* ext/gtk/gstgtksink.h:
+	* ext/gtk/gtkgstwidget.c:
+	* ext/gtk/gtkgstwidget.h:
+	  gtksink: Port to GtkGstBaseWidget
+	  https://bugzilla.gnome.org/show_bug.cgi?id=752441
+
+2015-07-16 12:51:34 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* ext/gtk/Makefile.am:
+	* ext/gtk/gtkgstbasewidget.c:
+	* ext/gtk/gtkgstbasewidget.h:
+	  gtk: Add GtkGstBaseWidget
+	  This is a "pseudo" base class. Basically it's a shared instance
+	  and class structure and a shared set of function between the
+	  two widget. It cannot have it's own type like normal base class
+	  since the one instance will implement GtkGLArea while the other
+	  implements GtkDrawingAreay. To workaround this, the parent instance
+	  and class is a union of both.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=752441
+
+2015-07-16 16:47:05 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* ext/gl/gstgluploadelement.c:
+	  uploadelement: Protect against NULL pointer
+	  I notice that if you stop the pipeline during a renegotiation
+	  the upload may be NULL while an allocation query is being run.
+	  In that scenario, returning FALSE to the allocation query is the
+	  best thing.
+
+2015-07-15 17:35:22 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* ext/gtk/gtkgstglwidget.c:
+	  gtkgstglwidget: Remove unused gl_caps
+
+2015-07-15 16:56:33 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* ext/gtk/gstgtksink.c:
+	  gtksink: Create a window if the widget is unparented
+	  The same way as it's now done with the gtkglsink, create a top
+	  level window if the widget is not parented.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=751104
+
+2015-07-15 14:35:02 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* ext/gtk/gstgtksink.c:
+	  gtksink: Ensure the copy pasted code remains the same
+	  Move back the default property at the same place they are in the
+	  other sink. This helps when using a diff viewer to synchronized
+	  this unfortunate copy paste.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=751104
+
+2015-07-15 14:32:42 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* ext/gtk/gstgtkglsink.c:
+	* ext/gtk/gstgtkglsink.h:
+	* ext/gtk/gstgtksink.c:
+	* ext/gtk/gtkgstglwidget.c:
+	* ext/gtk/gtkgstwidget.c:
+	  gtk: Fix race between queue_draw and destroy
+	  In GTK dispose can be called before the last ref is reached. This
+	  happens when you close the container window. The dispose will be
+	  explicitly called, and destroyed notify will be fired. This patch
+	  fixes this race by properly tracking the widget state.
+	  In the sink, we now set the widget pointer to NULL, so the widget
+	  will properly get created again if you set your pipeline to NULL
+	  state after the widget was destroy, and set it back to PLAYING.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=751104
+
+2015-07-16 21:28:28 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* ext/dash/gstplugin.c:
+	  dashdemux: remove typefinder, move it to typefindfunctions in -base
+	  Otherwise this plugin will be loaded pretty much whenever
+	  there's anything to typefind. And the code was pretty much
+	  copy'n'paste from -base anyway.
+
+2015-07-15 13:02:54 +0100  Florin Apostol <florin.apostol@oregan.net>
+
+	* ext/dash/gstmpdparser.c:
+	  dashdemux: default timescale is 1
+	  default timescale value should be 1, not 0.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=752414
+
+2015-07-15 13:41:37 +0100  Florin Apostol <florin.apostol@oregan.net>
+
+	* ext/dash/gstmpdparser.c:
+	  dashdemux: free prop_string only after it's no longer needed
+	  https://bugzilla.gnome.org/show_bug.cgi?id=752419
+
+2015-07-16 17:21:51 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* gst-plugins-bad.doap:
+	  Update mailing list address from sourceforge to freedesktop
+
+2015-07-15 11:47:51 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* ext/gtk/gtkgstwidget.c:
+	  gtkgstwidget: Add missing break in get_property
+
+2015-07-15 11:44:30 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* ext/gtk/gstgtkglsink.h:
+	* ext/gtk/gstgtksink.h:
+	  gtksinks: Remove undefined private structure
+	  The classes contains a private structure which are not defined,
+	  hence unused.
+
+2015-07-14 17:40:32 +1000  Matthew Waters <matthew@centricular.com>
+
+	* gst-libs/gst/gl/gstglupload.c:
+	  glupload: memcpy on raw data upload
+	  Anything else requires keeping track of the GstVideoFrame mapping
+	  across possible multiple buffers to ensure correct data pointer
+	  usage.
+
+2015-07-14 17:39:59 +1000  Matthew Waters <matthew@centricular.com>
+
+	* gst-libs/gst/gl/gstglbasebuffer.c:
+	  glbasebuffer: add some debug and zero the data pointers on init
+
+2015-07-10 01:00:15 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* gst/mpegtsmux/mpegtsmux.c:
+	  mpegtsmux: don't wait for data on sparse inputs like metadata or subtitle streams
+
+2014-11-09 19:16:29 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+	* gst/mpegtsmux/mpegtsmux.c:
+	* gst/mpegtsmux/tsmux/tsmuxstream.c:
+	* gst/mpegtsmux/tsmux/tsmuxstream.h:
+	  mpegtsmux: add basic support for asynchronous KLV metadata streams
+	  This is defined in SMPTE Rp 217. In this case the
+	  metadata PES packets carry no timestamps of their
+	  own and no Metadata Access Unit Wrappers are used.
+
+2015-06-29 02:42:06 +0300  Ilya Konstantinov <ilya.konstantinov@gmail.com>
+
+	* sys/applemedia/vtdec.c:
+	  vtdec: handle non-consecutive GstBuffer input without copying
+	  CMBlockBuffer offers a model similar to GstBuffer, as it can
+	  consist of multiple non-consecutive memory blocks.
+	  Prior to this change, what we were doing was:
+	  1) Incorrect:
+	  CMBlockBufferCreateWithMemoryBlock does not copy the data,
+	  but we gst_buffer_unmap'd right away.
+	  2) Inefficient:
+	  If the GstBuffer consisted of non-contiguous memory blocks,
+	  gst_buffer_map resulted in malloc / memcpy.
+	  With this change, we construct a CMBlockBuffer out of individual mapped
+	  GstMemory objects. CMBlockBuffer is made to retain the GstMemory
+	  objects (through the use of CMBlockBufferCustomBlockSource), so the
+	  original GstBuffer can be unref'd.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=751241
+
+2015-07-13 23:22:00 +1000  Matthew Waters <matthew@centricular.com>
+
+	* sys/applemedia/avsamplevideosink.m:
+	  applemedia/avsample: fix unconditional use of OSX 10.10 API
+	  We can just not use the error/status properties
+	  https://bugzilla.gnome.org/show_bug.cgi?id=746631
+
+2015-07-10 19:05:41 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* configure.ac:
+	  configure: try harder to find the right Qt5 build tools
+	  First check for Qt build tools in the host_bins directory
+	  from the Qt5Core pkg-config file. This fixes the situation
+	  where both Qt4 and Qt5 are installed but the global moc/uic/etc.
+	  are the Qt4 version, which would result in build failures.
+
+2015-07-10 14:01:43 +0200  Edward Hervey <edward@centricular.com>
+
+	* configure.ac:
+	* ext/qt/qtitem.cc:
+	  configure/qt: Fix build without Qt5X11Extras
+
+2015-07-10 13:26:51 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* ext/dash/gstmpdparser.c:
+	  mpdparse: g_slice_new() can't return NULL
+	  It will abort() if allocation fails.
+
+2015-07-10 13:19:40 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* ext/dash/gstmpdparser.c:
+	  mpdparser: Don't allow network access when reading the XML data
+
+2015-07-10 19:22:08 +1000  Matthew Waters <matthew@centricular.com>
+
+	* configure.ac:
+	  qt: don't error out if Qt X11 could not be found
+	  PCK_CHECK_MODULES default error-if-not-found implementation errors
+	  so override it with a simple notice that we couldn't find the library.
+
+2015-07-06 23:10:51 +1000  Matthew Waters <matthew@centricular.com>
+
+	* configure.ac:
+	* ext/Makefile.am:
+	* ext/qt/.gitignore:
+	* ext/qt/Makefile.am:
+	* ext/qt/gstplugin.cc:
+	* ext/qt/gstqsgtexture.cc:
+	* ext/qt/gstqsgtexture.h:
+	* ext/qt/gstqtsink.cc:
+	* ext/qt/gstqtsink.h:
+	* ext/qt/qtitem.cc:
+	* ext/qt/qtitem.h:
+	* tests/examples/qt/qml/.gitignore:
+	* tests/examples/qt/qml/main.cpp:
+	* tests/examples/qt/qml/main.qml:
+	* tests/examples/qt/qml/play.pro:
+	* tests/examples/qt/qml/qml.qrc:
+	  new qt5 qml GL video sink
+	  Very much in the same spirit as the Gtk GL sink
+	  Two things are provided
+	  1. A QQuickItem subclass that renders out RGBA filled GstGLMemory
+	  buffers that is instantiated from qml.
+	  2. A sink element that will push buffers into (1)
+	  To use
+	  1. Declare the GstGLVideoItem in qml with an appropriate
+	  objectName property set.
+	  2. Get the aforementioned GstGLVideoItem from qml using something like
+	  QQmlApplicationEngine engine;
+	  engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
+	  QObject *rootObject = engine.rootObjects().first();
+	  QQuickItem *videoItem = rootObject->findChild<QQuickItem *> ("videoItem");
+	  3. Set the videoItem on the sink
+	  https://bugzilla.gnome.org/show_bug.cgi?id=752185
+
+2015-07-08 17:17:18 +0200  Rico Tzschichholz <ricotz@ubuntu.com>
+
+	* sys/bluez/Makefile.am:
+	  bluez: Fix make dist while bluez >= 5 is not available
+
+2015-07-09 18:31:34 +0200  Edward Hervey <edward@centricular.com>
+
+	* gst/mpegtsdemux/mpegtsbase.c:
+	  mpegtsbase: Fix previous commit
+	  We only want to do a hard reset of the observations if we're working
+	  with TIME segments in push mode. For BYTE segment we want to keep
+	  the observations (in order to do seeks in push-mode).
+
+2015-07-09 16:59:16 +0200  Edward Hervey <bilboed@bilboed.com>
+
+	* gst/mpegtsdemux/mpegtsbase.c:
+	  mpegtsbase: Flush more on DISCONT buffers in push mode
+	  When in push mode, we want to discard all previous observations from the
+	  mpegtspacketizer when we get a DISCONT buffer.
+	  This avoids trying to calculate bogus timestamps (estimating them using old
+	  PCR observations).
+	  We only do a hard reset in push-mode. In pull-mode we still need the observations
+	  (in order to seek properly)
+
+2015-07-09 11:07:29 +0200  Edward Hervey <bilboed@bilboed.com>
+
+	* .gitignore:
+	  gitignore: Add new generated files
+
+2015-07-09 11:05:10 +0200  Edward Hervey <bilboed@bilboed.com>
+
+	* sys/bluez/Makefile.am:
+	  bluez: Include new file in dist'ed files
+	  Fixes make distcheck and tarball generation
+
+2015-07-09 13:03:23 +1000  Matthew Waters <matthew@centricular.com>
+
+	* ext/gtk/gtkgstglwidget.c:
+	* ext/gtk/gtkgstwidget.c:
+	* tests/check/Makefile.am:
+	  gtk: add to the generic/states test
+
+2015-06-17 09:36:57 -0400  Xavier Claessens <xavier.claessens@collabora.com>
+
+	* ext/gtk/gstgtkglsink.c:
+	  GstGtkGLSink: Ensure widget has a toplevel parent
+	  Checking for a parent is not enough, it must have a toplevel one.
+	  If widget has no toplevel parent then add it in a GtkWindow, that
+	  make it usable from gst-launch-1.0.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=751104
+
+2015-06-17 09:36:40 -0400  Xavier Claessens <xavier.claessens@collabora.com>
+
+	* ext/gtk/gstgtkglsink.c:
+	* ext/gtk/gstgtkglsink.h:
+	  GstGtkGLSink: Post error if widget gets destroyed
+	  https://bugzilla.gnome.org/show_bug.cgi?id=751104
+
+2015-06-16 16:21:26 -0400  Xavier Claessens <xavier.claessens@collabora.com>
+
+	* ext/gtk/gstgtkglsink.c:
+	  GstGtkGLSink: fix possible warning in finalize
+	  If the element is finalized before going in READY state
+	  the widget could still be NULL.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=751104
+
+2015-07-08 23:14:13 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* ext/dash/gstmpdparser.c:
+	* tests/check/elements/dash_mpd.c:
+	  mpdparser: Fix some memory leaks in the MPD parser and unit test
+
+2015-07-07 16:59:52 +0100  Florin Apostol <florin.apostol@oregan.net>
+
+	* tests/check/elements/dash_mpd.c:
+	  dashdemux: tests: added unit tests to test all functions
+	  Added unit tests for all functions. Code coverage:
+	  Overall coverage rate:
+	  lines......: 83.8% (1941 of 2316 lines)
+	  functions..: 100.0% (141 of 141 functions)
+
+2015-07-08 17:08:56 +0300  Roman Donchenko <roman.donchenko@itseez.com>
+
+	* gst/videoparsers/gstpngparse.c:
+	  pngparse: fix a GstCaps object leak
+	  https://bugzilla.gnome.org//show_bug.cgi?id=752127
+
+2015-03-26 11:34:10 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+	* gst/mpegtsdemux/pesparse.c:
+	  tsdemux: remove unnecessary check
+	  This is not public API, use g_assert() instead of
+	  g_return_if_fail(), so that it's compiled out in
+	  releases. It's only called from our code, with &foo.
+
+2014-06-30 13:20:12 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* gst/mpegtsdemux/gstmpegdesc.h:
+	* gst/mpegtsdemux/tsdemux.c:
+	  tsdemux: add support for KLV metadata streams
+	  There's no timestamps for these streams though, we
+	  might want to make some up based on the last/next
+	  video PTS or so.
+
+2015-07-08 16:31:48 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* ext/dash/gstmpdparser.c:
+	  Revert "Revert "dashdemux: fixed gst_mpd_client_advance_segment to return GST_FLOW_EOS""
+	  This reverts commit 4875ddf5855a26f349df7b385b68eb692e314bfa.
+	  This was based on a misunderstanding of the code.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=752085
+
+2015-07-06 13:28:05 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst-libs/gst/gl/eagl/gstglcontext_eagl.m:
+	  gl/eagl: Don't call anything synchronously from the main thread
+	  This will deadlock if the main thread is the one who creates the GstGLContext.
+	  All things we call from the main thread should be possible from any thread.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=751101
+
+2015-07-08 12:16:35 +0100  Luis de Bethencourt <luis@debethencourt.com>
+
+	* sys/bluez/gstavdtpsrc.c:
+	  bluez: remove unnecessary goto
+	  All goto fail happen before ret is set. ret must be NULL, and the only
+	  thing the fail statement block does is return NULL. Replacing the jumps to
+	  do this return directly.
+	  CID #1311329
+
+2015-07-08 11:32:58 +0100  Luis de Bethencourt <luis@debethencourt.com>
+
+	* ext/dash/gstdashdemux.c:
+	  dashdemux: remove redundant else statement
+	  Else statement is redundant when the if block finishes with an return.
+
+2015-07-08 11:42:48 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* sys/androidmedia/gstamc-constants.h:
+	* sys/androidmedia/gstamc.c:
+	* sys/androidmedia/gstamc.h:
+	* sys/androidmedia/gstamcvideodec.c:
+	* sys/androidmedia/gstamcvideoenc.c:
+	  androidmedia: Add support for H265/HEVC
+
+2015-06-29 12:40:55 +0300  Ilya Konstantinov <ilya.konstantinov@gmail.com>
+
+	* sys/applemedia/vtdec.c:
+	  vtdec: fix refcount error in error handling
+	  https://bugzilla.gnome.org/show_bug.cgi?id=751641
+
+2015-07-07 19:48:23 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst-libs/gst/adaptivedemux/gstadaptivedemux.c:
+	  adaptivedemux: Explicitly check for CUSTOM_ERROR when converting errors to EOS
+	  We use things like CUSTOM_SUCCESS* in other places, and those are not errors
+	  but should just be handled like OK.
+
+2015-07-07 19:26:00 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* ext/dash/gstmpdparser.c:
+	  Revert "dashdemux: fixed gst_mpd_client_advance_segment to return GST_FLOW_EOS"
+	  This reverts commit dfe37ffc59fdf5f4075696976d98ec8d6db73138.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=752085
+
+2015-07-07 19:25:28 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* ext/dash/gstmpdparser.c:
+	  mpdparser: Fix off-by-one in has-next-segment calculation
+
+2015-07-07 18:37:24 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst-libs/gst/adaptivedemux/gstadaptivedemux.c:
+	  adaptivedemux: If downloading the last fragment fails, consider this as EOS and not ERROR
+	  Sometimes the last fragment does not exist because of rounding errors with the
+	  durations. Just finish the stream gracefully instead of erroring out instead.
+
+2015-07-07 22:35:47 +1000  Matthew Waters <matthew@centricular.com>
+
+	* ext/gl/gstgldownloadelement.c:
+	* gst-libs/gst/gl/egl/gstglcontext_egl.c:
+	  download: only start a download transfer for sysmem caps features
+
+2015-07-06 12:08:52 +0100  Florin Apostol <florin.apostol@oregan.net>
+
+	* tests/check/elements/dash_mpd.c:
+	  dashdemux: tests: added indentation in xml strings to improve readability
+	  https://bugzilla.gnome.org/show_bug.cgi?id=752027
+
+2015-07-03 16:17:58 +0100  Florin Apostol <florin.apostol@oregan.net>
+
+	* ext/dash/gstmpdparser.c:
+	  dashdemux: added parsing of bitstreamSwitching@AdaptationSet
+	  https://bugzilla.gnome.org/show_bug.cgi?id=751170
+
+2015-07-03 15:31:35 +0100  Florin Apostol <florin.apostol@oregan.net>
+
+	* ext/dash/gstmpdparser.h:
+	  dashdemux: regrouped functions in gstmpdparser.h file
+	  Moved gst_mpd_client_get_next_segment_availability_end_time and
+	  gst_mpd_client_add_time_difference functions to be grouped with
+	  functions from the same category.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=752027
+
+2015-07-06 14:21:17 +0100  Florin Apostol <florin.apostol@oregan.net>
+
+	* tests/check/elements/dash_mpd.c:
+	  dashdemux: tests: corrected code layout
+	  deleted the empty line between gst_mpd_parse call and its check so that
+	  the assert is next to the function it is testing
+	  https://bugzilla.gnome.org/show_bug.cgi?id=752027
+
+2015-07-07 10:56:47 +0900  Hyunjun Ko <zzoon.ko@samsung.com>
+
+	* gst-libs/gst/codecparsers/gstmpegvideometa.c:
+	  mpegvideometa: add meta transform function
+	  https://bugzilla.gnome.org/show_bug.cgi?id=751778
+
+2015-07-07 10:57:26 +0900  Hyunjun Ko <zzoon.ko@samsung.com>
+
+	* gst-libs/gst/gl/gstglsyncmeta.c:
+	  glsyncmeta: transform func: return FALSE if not supported or failed
+	  https://bugzilla.gnome.org/show_bug.cgi?id=751778
+
+2015-07-06 14:14:12 +0100  Florin Apostol <florin.apostol@oregan.net>
+
+	* ext/dash/gstmpdparser.c:
+	  dashdemux: fixed gst_mpd_client_advance_segment to return GST_FLOW_EOS
+	  Fixed gst_mpd_client_advance_segment to return GST_FLOW_EOS if the
+	  new index is out of range.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=751850
+
+2015-07-07 16:39:09 +1000  Matthew Waters <matthew@centricular.com>
+
+	* gst-libs/gst/gl/android/gstglwindow_android_egl.h:
+	  android: add missing egl.h include
+
+2015-07-07 15:30:17 +1000  Matthew Waters <matthew@centricular.com>
+
+	* ext/gl/gstgltransformation.c:
+	  gltransformation: correct vao usage
+	  keep the vao bound after uploading the new vertex data
+	  fixes a mesa GL error "no vertex array object bound" on caps changes
+
+2015-06-16 07:49:34 +0000  Matthew Waters <matthew@centricular.com>
+
+	* ext/gl/gstopengl.c:
+	* gst-libs/gst/gl/dispmanx/gstglwindow_dispmanx_egl.h:
+	* gst-libs/gst/gl/egl/Makefile.am:
+	* gst-libs/gst/gl/egl/gstegl.h:
+	* gst-libs/gst/gl/egl/gstglcontext_egl.c:
+	* gst-libs/gst/gl/egl/gstglcontext_egl.h:
+	* gst-libs/gst/gl/egl/gstgldisplay_egl.h:
+	* gst-libs/gst/gl/gstglapi.h:
+	  gl: consolidate egl header includes to egl-only headers
+	  They may conflict with other headers.
+
+2015-07-06 19:33:35 +0200  Thibault Saunier <tsaunier@gnome.org>
+
+	* ext/gtk/gtkgstglwidget.c:
+	  gtkglsink: Release the widget lock when trying to get the GL context
+	  Otherwise we might be waiting for the lock on the main loop (for
+	  example in the ->render vmethod) and thus we will deadlock.
+
+2015-07-06 18:51:07 +0200  Thibault Saunier <tsaunier@gnome.org>
+
+	* gst-libs/gst/video/gstvideoaggregator.c:
+	  videoaggregator: Remove pixel-aspect-ratio field from the caps returned by getcaps
+	  Avoiding not negotiated error while negotiating as we anyway force 1/1
+	  as output
+
+2015-07-06 15:24:06 +0100  Luis de Bethencourt <luis@debethencourt.com>
+
+	* ext/curl/gstcurlsshsink.c:
+	  curlsshsink: remove redundant else statement
+	  Else statement is redundant when the if block finishes with an return.
+
+2015-07-02 15:17:51 +0100  Florin Apostol <florin.apostol@oregan.net>
+
+	* ext/dash/gstmpdparser.c:
+	  dashdemux: fixed segment start when specified by SegmentTimeline
+	  @t attribute in segment Timeline is relative to the period start.
+	  Corrected the code to take this into account when computing segment
+	  timestamp.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=751841
+
+2015-07-03 17:00:31 +0100  Florin Apostol <florin.apostol@oregan.net>
+
+	* ext/dash/gstmpdparser.c:
+	  dashdemux: wrong segment duration computed by gst_mpd_client_setup_representation
+	  Corrected computation of segment start and duration.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=751914
+
+2015-07-03 16:10:20 +0100  Florin Apostol <florin.apostol@oregan.net>
+
+	* ext/dash/gstmpdparser.c:
+	  dashdemux: corrected search for audio languages
+	  Corrected the initialisation of mimeType in
+	  gst_mpdparser_get_list_and_nb_of_audio_language: the variable is used
+	  in a loop, so it must be set to NULL at the beginning of each iteration.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=751911
+
+2015-07-03 21:58:26 +0200  Stefan Sauer <ensonic@users.sf.net>
+
+	* common:
+	  Automatic update of common submodule
+	  From f74b2df to 9aed1d7
+
+2015-07-03 12:17:42 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+	* ext/gl/gstglmixerbin.c:
+	* ext/gl/gstglvideomixer.c:
+	  glvideomixer, glmixer: Add description and klass
+
+2015-07-03 19:24:58 +0530  Arun Raghavan <git@arunraghavan.net>
+
+	* configure.ac:
+	  build: Fix broken BlueZ configure check
+	  The previous commit left an extra set of brackets, and missed removing
+	  the explicit dbus check (which is no longer needed since we're using
+	  gdbus).
+
+2015-01-13 10:31:41 -0800  Nick Stoughton <nstoughton@aether.com>
+
+	* configure.ac:
+	  build: remove support for bluez4
+
+2014-12-30 07:21:44 -0800  Nick Stoughton <nstoughton@aether.com>
+
+	* configure.ac:
+	* sys/bluez/Makefile.am:
+	* sys/bluez/gstavdtpsink.c:
+	* sys/bluez/gstavdtpsrc.c:
+	* sys/bluez/gstavdtputil.c:
+	* sys/bluez/gstavdtputil.h:
+	* sys/bluez/org.bluez.xml:
+	  bluez: refactor to use glib and add connection state tracking
+
+2015-06-15 23:40:44 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* gst/pcapparse/gstpcapparse.c:
+	  pcapparse: fix another regression
+	  Introduced by c4c9fe60b pcapparse: Take buffer directly from the adapter
+	  Using gst_adapter_take_buffer_fast() can lead to buffers that are
+	  made up of multiple memories with the first memory smaller than the
+	  RTP header size, which violates assumptions GstRtpBaseDepayloader
+	  makes, namely that the complete RTP header will be in the first
+	  memory. This leads to such packets being dropped when feeding
+	  them from pcapparse to RTP depayloaders. Use take_buffer() so
+	  we get buffers with a single memory.
+
+2015-07-02 13:45:04 +0200  Stian Selnes <stian@pexip.com>
+
+	* tests/check/Makefile.am:
+	* tests/check/elements/.gitignore:
+	* tests/check/elements/pcapparse.c:
+	  tests: pcapparse: add unit test for frames with eth padding
+	  https://bugzilla.gnome.org/show_bug.cgi?id=751879
+
+2015-06-15 12:55:39 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* gst/pcapparse/gstpcapparse.c:
+	  pcapparse: fix regression when handling packets with eth padding
+	  Introduced by c4c9fe60b pcapparse: Take buffer directly from the adapter
+	  Flush any trailing bytes after the payload from the adapter as well,
+	  otherwise we'll read a bogus packet size from the adapter next and
+	  then everything goes downhill from there.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=751879
+
+2015-07-02 18:51:09 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* ext/openh264/gstopenh264dec.cpp:
+	  openh264dec: Unref video frames and codec state in all cases
+
+2015-07-02 10:26:18 +0100  Julien Isorce <j.isorce@samsung.com>
+
+	* gst-libs/gst/gl/gstglcolorconvert.c:
+	* gst-libs/gst/gl/gstglcontext.c:
+	* gst-libs/gst/gl/gstglframebuffer.c:
+	* gst-libs/gst/gl/gstglshader.c:
+	* gst-libs/gst/gl/gstglviewconvert.c:
+	  gl: initialize output params to 0 before calling gl functions
+	  The client side API of the Chromium's GPU Process has asserts
+	  in debug mode that check that output params are initialized to 0.
+
+2015-06-26 15:34:35 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* ext/gl/gstglmixer.c:
+	* gst-libs/gst/gl/gstglupload.c:
+	  gl: Don't leak pool if set_config failed
+
+2015-06-26 15:33:33 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* gst-libs/gst/gl/gstglfilter.c:
+	* gst-libs/gst/gl/gstglfilter.h:
+	  glfilter: Don't cache buffer pool
+	  Caching and sharing to multiple element the same pool prevents
+	  renegotiation from passthrough to not passthrough.
+
+2015-07-02 14:15:05 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* ext/openh264/gstopenh264dec.cpp:
+	  openh264dec: Uninitializing the decoder can't fail and will always return 0 == cmResultSuccess
+	  ... but when we cast cmResultSuccess to a gboolean it will be FALSE, and make
+	  GstVideoDecoder::stop() fail for no reason.
+
+2015-07-02 17:08:26 +0900  Vineeth TM <vineeth.tm@samsung.com>
+
+	* ext/gl/gstglimagesink.c:
+	  glimagesink: use g_clear_error instead of g_error_free
+	  replace g_error_free with g_clear_error, as it internally
+	  checks if error variable is valid or not.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=751823
+
+2015-07-02 16:27:06 +0900  Vineeth TM <vineeth.tm@samsung.com>
+
+	* sys/androidmedia/gstamc.c:
+	  amc: fix check whether we managed to acquire a buffer
+	  https://bugzilla.gnome.org/show_bug.cgi?id=751821
+
+2015-06-30 15:52:18 +0200  Miguel París Díaz <mparisdiaz@gmail.com>
+
+	* ext/srtp/gstsrtpdec.c:
+	* ext/srtp/gstsrtpdec.h:
+	  srtpdec: Add config for the replay window size
+	  https://bugzilla.gnome.org/show_bug.cgi?id=751729
+
+2015-06-30 13:20:43 +0100  Florin Apostol <florin.apostol@oregan.net>
+
+	* ext/dash/gstmpdparser.c:
+	  dashdemux: corrected parsing of %u in segment templates
+	  https://bugzilla.gnome.org/show_bug.cgi?id=751716
+
+2015-06-29 22:18:38 +0100  Florin Apostol <florin.apostol@oregan.net>
+
+	* ext/dash/gstmpdparser.c:
+	* tests/check/elements/dash_mpd.c:
+	  dashdemux: corrected recognition of $$$ in segment templates
+	  fixed recognition of $$ after a $ that ends an identifier, eg $Time$$$
+	  https://bugzilla.gnome.org/show_bug.cgi?id=751682
+
+2015-06-29 18:50:09 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* sys/androidmedia/gstjniutils.c:
+	  androidmedia: Call initialize_classes() also when we got the Java VM from the app
+	  https://bugzilla.gnome.org/show_bug.cgi?id=751664
+
+2015-06-29 16:10:39 +0100  Luis de Bethencourt <luis@debethencourt.com>
+
+	* ext/gl/gstglviewconvert.c:
+	  gl: add missing break
+	  gst_gl_view_convert_element_set_property() is missing a break at the end
+	  of the PROP_OUTPUT_DOWNMIX_MODE case. Adding it.
+	  CID #1308949
+
+2015-06-26 14:12:22 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* ext/gl/gstglimagesink.c:
+	  glimagesink: Don't leak pool
+	  gst_query_add_allocation_pool is transfer none. Also unref
+	  if there was a configuration error.
+
+2015-06-26 15:58:25 +0900  Sangkyu Park <sk1122.park@samsung.com>
+
+	* gst/mpegdemux/gstmpegdemux.c:
+	  mpegdemux: check pointer before dereferencing
+	  gst_ps_demux_get_stream() could return NULL when it is unknown stream,
+	  check this hasn't happened before dereferencing the returned pointer.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=751528
+
+2015-06-26 13:09:54 +0100  Florin Apostol <florin.apostol@oregan.net>
+
+	* ext/dash/gstmpdparser.c:
+	  dashdemux: corrected next fragment duration validation
+	  Before returning the next fragment duration value, the
+	  gst_mpd_client_get_next_fragment_duration function tries to validate it.
+	  But the condition was incorrect.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=751539
+
+2015-06-25 23:49:10 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst-libs/gst/adaptivedemux/gstadaptivedemux.c:
+	  adaptivedemux: Move unref() into the right scope
+
+2015-06-25 23:32:10 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst-libs/gst/adaptivedemux/gstadaptivedemux.c:
+	  adaptivedemux: Properly handle presentationTimeOffset for seeking and multi-period streams
+	  Segment start/time/position/base should only be modified if this is the first
+	  time we send a segment, otherwise we will override values from the seek
+	  segment if new streams have to be exposed as part of the seek.
+	  Segment base should be calculated from the segment start based on the stream's
+	  own segment, not the demuxer's segment. Both might differ slightly because of
+	  the presentationTimeOffset.
+	  Always add the presentationTimeOffset (relative to the period start, not
+	  timestamp 0) to the segment start after resetting the stream's segment based
+	  on the demuxer's segment (i.e. after seeks or stream restart). Also make sure
+	  to keep the stream's segment up to date and not just send a new segment event
+	  without storing the segment in the stream.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=745455
+
+2015-06-25 23:24:50 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* ext/dash/gstmpdparser.c:
+	  dashdemux: Subtract the period start time from the presentation offset
+	  We're interested in the offset between the period start timestamp and the
+	  actual media timestamp so that we can properly correct for it. The absolute
+	  presentation offset to timestamp 0 is useless as the only thing we really
+	  care about is the offset between the current fragment timestamp and the
+	  media timestamp.
+
+2015-06-25 20:19:34 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* ext/dash/gstmpdparser.c:
+	  dashdemux: Subtract the period start when seeking based on a template
+	  Otherwise we will look for segments after the period usually. The seek
+	  timestamp is relative to the start of the first period and we have to
+	  select a segment relative to the current period's start.
+
+2015-06-25 20:09:14 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* ext/dash/gstmpdparser.c:
+	  dashdemux: Include the period start in the fragment timestamps in all cases
+	  We didn't do this for fragments that are generated on demand from a template,
+	  only for the other cases when they were all generated upfront. This caused
+	  fragment timestamps to start from 0 again for each new period.
+
+2015-06-25 23:23:58 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* ext/dash/gstdashdemux.c:
+	  dashdemux: Seek on the new streams if the seek caused a period switch
+	  Seeking on the old streams is pointless, they are going to be freed on the
+	  next opportunity.
+
+2015-06-25 15:05:20 +0100  Florin Apostol <florin.apostol@oregan.net>
+
+	* ext/dash/gstmpdparser.c:
+	  dash: Correct check for valid timeShiftBufferDepth
+	  If not set, the timeShiftBufferDepth has a default value of -1.
+	  The standard says that this should be interpreted as infinite.
+	  The gst_mpd_client_check_time_position function incorrectly compares
+	  timeShiftBufferDepth with 0 instead of -1 to determine if it was set.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=751500
+
+2015-06-25 11:02:41 +0100  Luis de Bethencourt <luisbg@osg.samsung.com>
+
+	* ext/opencv/gstfacedetect.c:
+	* sys/applemedia/iosassetsrc.m:
+	  docs: decodebin2 -> decodebin
+
+2015-04-27 15:09:18 +0300  Ilya Konstantinov <ilya.konstantinov@gmail.com>
+
+	* sys/applemedia/coremediabuffer.c:
+	  applemedia: enable sharing of CMBlockBuffer data
+	  Instead of wrapping with GST_MEMORY_FLAG_NO_SHARE, we make the GstMemory
+	  object retain the underlying CMBlockBuffer.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=751072
+
+2015-04-27 15:02:59 +0300  Ilya Konstantinov <ilya.konstantinov@gmail.com>
+
+	* sys/applemedia/coremediabuffer.c:
+	  applemedia: CMBlockBuffer can be non-contiguous
+	  CMBlockBufferGetDataLength would return the entire data length, while
+	  size of individual blocks can be smaller. Iterate over the block buffer
+	  and add the individual (possibly non-contiguous) memory blocks.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=751071
+
+2015-06-24 17:16:46 +0100  Florin Apostol <florin.apostol@oregan.net>
+
+	* ext/dash/gstmpdparser.c:
+	  dashdemux: Corrected duration argument for gst_mpd_client_add_media_segment call
+	  The last parameter of gst_mpd_client_add_media_segment function is a
+	  duration. But when called from gst_mpd_client_setup_representation, the
+	  last argument was wrongly set to PeriodEnd
+	  https://bugzilla.gnome.org/show_bug.cgi?id=751449
+
+2015-06-24 21:42:32 +0100  Florin Apostol <florin.apostol@oregan.net>
+
+	* ext/dash/gstmpdparser.c:
+	  dashdemux: incorrect use of period start
+	  The period start information, calculated in gst_mpd_client_setup_media_presentation
+	  function is stored in stream_period->start. The information read from
+	  xml file and stored in stream_period->period->start is not changed.
+	  If the xml file does not contain the period start information,
+	  stream_period->period->start will be -1.
+	  The function gst_mpd_client_get_next_segment_availability_end_time wants to
+	  use period start time, but incorrectly uses stream_period->period->start
+	  (value from xml file, which could be -1) instead of stream_period->start
+	  (computed value)
+	  https://bugzilla.gnome.org/show_bug.cgi?id=751465
+
+2015-06-15 17:18:41 +0100  Florin Apostol <florin.apostol@oregan.net>
+
+	* tests/check/elements/dash_mpd.c:
+	  tests: dashdemux: renamed functions
+	  Renamed 2 testcase functions:
+	  - dash_mpdparser_program_information
+	  - dash_mpdparser_base_URL
+
+2015-06-25 00:04:32 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* configure.ac:
+	  Back to development
+
+=== release 1.5.2 ===
+
+2015-06-24 23:37:26 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* ChangeLog:
+	* NEWS:
+	* RELEASE:
+	* configure.ac:
+	* docs/plugins/gst-plugins-bad-plugins.args:
+	* docs/plugins/gst-plugins-bad-plugins.hierarchy:
+	* docs/plugins/gst-plugins-bad-plugins.interfaces:
+	* docs/plugins/gst-plugins-bad-plugins.prerequisites:
+	* docs/plugins/gst-plugins-bad-plugins.signals:
+	* docs/plugins/inspect/plugin-accurip.xml:
+	* docs/plugins/inspect/plugin-adpcmdec.xml:
+	* docs/plugins/inspect/plugin-adpcmenc.xml:
+	* docs/plugins/inspect/plugin-aiff.xml:
+	* docs/plugins/inspect/plugin-asfmux.xml:
+	* docs/plugins/inspect/plugin-assrender.xml:
+	* docs/plugins/inspect/plugin-audiomixer.xml:
+	* docs/plugins/inspect/plugin-audiovisualizers.xml:
+	* docs/plugins/inspect/plugin-autoconvert.xml:
+	* docs/plugins/inspect/plugin-bayer.xml:
+	* docs/plugins/inspect/plugin-bz2.xml:
+	* docs/plugins/inspect/plugin-camerabin.xml:
+	* docs/plugins/inspect/plugin-chromaprint.xml:
+	* docs/plugins/inspect/plugin-coloreffects.xml:
+	* docs/plugins/inspect/plugin-curl.xml:
+	* docs/plugins/inspect/plugin-dataurisrc.xml:
+	* docs/plugins/inspect/plugin-debugutilsbad.xml:
+	* docs/plugins/inspect/plugin-dtsdec.xml:
+	* docs/plugins/inspect/plugin-dvb.xml:
+	* docs/plugins/inspect/plugin-dvbsuboverlay.xml:
+	* docs/plugins/inspect/plugin-dvdspu.xml:
+	* docs/plugins/inspect/plugin-faad.xml:
+	* docs/plugins/inspect/plugin-festival.xml:
+	* docs/plugins/inspect/plugin-fieldanalysis.xml:
+	* docs/plugins/inspect/plugin-flite.xml:
+	* docs/plugins/inspect/plugin-fragmented.xml:
+	* docs/plugins/inspect/plugin-frei0r.xml:
+	* docs/plugins/inspect/plugin-gaudieffects.xml:
+	* docs/plugins/inspect/plugin-gdp.xml:
+	* docs/plugins/inspect/plugin-geometrictransform.xml:
+	* docs/plugins/inspect/plugin-gmedec.xml:
+	* docs/plugins/inspect/plugin-gsm.xml:
+	* docs/plugins/inspect/plugin-gstsiren.xml:
+	* docs/plugins/inspect/plugin-id3tag.xml:
+	* docs/plugins/inspect/plugin-inter.xml:
+	* docs/plugins/inspect/plugin-interlace.xml:
+	* docs/plugins/inspect/plugin-jpegformat.xml:
+	* docs/plugins/inspect/plugin-liveadder.xml:
+	* docs/plugins/inspect/plugin-mimic.xml:
+	* docs/plugins/inspect/plugin-mms.xml:
+	* docs/plugins/inspect/plugin-modplug.xml:
+	* docs/plugins/inspect/plugin-mpeg2enc.xml:
+	* docs/plugins/inspect/plugin-mpegpsdemux.xml:
+	* docs/plugins/inspect/plugin-mpegpsmux.xml:
+	* docs/plugins/inspect/plugin-mpegtsdemux.xml:
+	* docs/plugins/inspect/plugin-mpegtsmux.xml:
+	* docs/plugins/inspect/plugin-mpg123.xml:
+	* docs/plugins/inspect/plugin-mplex.xml:
+	* docs/plugins/inspect/plugin-ofa.xml:
+	* docs/plugins/inspect/plugin-openal.xml:
+	* docs/plugins/inspect/plugin-opencv.xml:
+	* docs/plugins/inspect/plugin-opus.xml:
+	* docs/plugins/inspect/plugin-pcapparse.xml:
+	* docs/plugins/inspect/plugin-pnm.xml:
+	* docs/plugins/inspect/plugin-rawparse.xml:
+	* docs/plugins/inspect/plugin-removesilence.xml:
+	* docs/plugins/inspect/plugin-resindvd.xml:
+	* docs/plugins/inspect/plugin-rfbsrc.xml:
+	* docs/plugins/inspect/plugin-rtmp.xml:
+	* docs/plugins/inspect/plugin-schro.xml:
+	* docs/plugins/inspect/plugin-sdp.xml:
+	* docs/plugins/inspect/plugin-segmentclip.xml:
+	* docs/plugins/inspect/plugin-shm.xml:
+	* docs/plugins/inspect/plugin-smooth.xml:
+	* docs/plugins/inspect/plugin-soundtouch.xml:
+	* docs/plugins/inspect/plugin-spandsp.xml:
+	* docs/plugins/inspect/plugin-speed.xml:
+	* docs/plugins/inspect/plugin-subenc.xml:
+	* docs/plugins/inspect/plugin-videoparsersbad.xml:
+	* docs/plugins/inspect/plugin-voaacenc.xml:
+	* docs/plugins/inspect/plugin-voamrwbenc.xml:
+	* docs/plugins/inspect/plugin-waylandsink.xml:
+	* docs/plugins/inspect/plugin-y4mdec.xml:
+	* docs/plugins/inspect/plugin-zbar.xml:
+	* gst-plugins-bad.doap:
+	* win32/common/config.h:
+	  Release 1.5.2
+
+2015-06-24 23:01:24 +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/ky.po:
+	* po/lt.po:
+	* po/lv.po:
+	* po/mt.po:
+	* po/nb.po:
+	* po/nl.po:
+	* po/or.po:
+	* po/pl.po:
+	* po/pt_BR.po:
+	* po/ro.po:
+	* po/ru.po:
+	* po/sk.po:
+	* po/sl.po:
+	* po/sq.po:
+	* po/sr.po:
+	* po/sv.po:
+	* po/tr.po:
+	* po/uk.po:
+	* po/vi.po:
+	* po/zh_CN.po:
+	  Update .po files
 
 2015-06-15 17:30:26 +0100  Florin Apostol <florin.apostol@oregan.net>
 
diff --git a/Makefile.in b/Makefile.in
index 13088c7..35ca90b 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -25,7 +25,17 @@
 #
 # set CRUFT_FILES and/or CRUFT_DIRS in your Makefile.am when you include this
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -89,15 +99,6 @@
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
-DIST_COMMON = $(top_srcdir)/common/win32.mak \
-	$(top_srcdir)/common/release.mak $(top_srcdir)/common/po.mak \
-	$(top_srcdir)/common/coverage/lcov.mak \
-	$(top_srcdir)/common/cruft.mak INSTALL NEWS README AUTHORS \
-	ChangeLog $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/configure $(am__configure_deps) \
-	$(srcdir)/config.h.in $(srcdir)/gst-plugins-bad.spec.in \
-	ABOUT-NLS COPYING COPYING.LIB compile config.guess \
-	config.rpath config.sub depcomp install-sh missing ltmain.sh
 subdir = .
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
@@ -136,6 +137,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \
+	$(am__configure_deps) $(am__DIST_COMMON)
 am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
  configure.lineno config.status.lineno
 mkinstalldirs = $(install_sh) -d
@@ -198,6 +201,14 @@
 ETAGS = etags
 CTAGS = ctags
 CSCOPE = cscope
+am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.h.in \
+	$(srcdir)/gst-plugins-bad.spec.in \
+	$(top_srcdir)/common/coverage/lcov.mak \
+	$(top_srcdir)/common/cruft.mak $(top_srcdir)/common/po.mak \
+	$(top_srcdir)/common/release.mak \
+	$(top_srcdir)/common/win32.mak ABOUT-NLS AUTHORS COPYING \
+	COPYING.LIB ChangeLog INSTALL NEWS README compile config.guess \
+	config.rpath config.sub depcomp install-sh ltmain.sh missing
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 distdir = $(PACKAGE)-$(VERSION)
 top_distdir = $(distdir)
@@ -256,8 +267,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -286,8 +295,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -335,11 +342,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -523,6 +533,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -601,7 +612,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -641,6 +657,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -874,7 +891,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -884,7 +900,7 @@
 	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
 	    cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
 	esac;
-$(top_srcdir)/common/win32.mak $(top_srcdir)/common/release.mak $(top_srcdir)/common/po.mak $(top_srcdir)/common/coverage/lcov.mak $(top_srcdir)/common/cruft.mak:
+$(top_srcdir)/common/win32.mak $(top_srcdir)/common/release.mak $(top_srcdir)/common/po.mak $(top_srcdir)/common/coverage/lcov.mak $(top_srcdir)/common/cruft.mak $(am__empty):
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	$(SHELL) ./config.status --recheck
@@ -1110,15 +1126,15 @@
 	$(am__post_remove_distdir)
 
 dist-tarZ: distdir
-	@echo WARNING: "Support for shar distribution archives is" \
-	               "deprecated." >&2
+	@echo WARNING: "Support for distribution archives compressed with" \
+		       "legacy program 'compress' is deprecated." >&2
 	@echo WARNING: "It will be removed altogether in Automake 2.0" >&2
 	tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
 	$(am__post_remove_distdir)
 
 dist-shar: distdir
-	@echo WARNING: "Support for distribution archives compressed with" \
-		       "legacy program 'compress' is deprecated." >&2
+	@echo WARNING: "Support for shar distribution archives is" \
+	               "deprecated." >&2
 	@echo WARNING: "It will be removed altogether in Automake 2.0" >&2
 	shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
 	$(am__post_remove_distdir)
@@ -1154,18 +1170,18 @@
 	esac
 	chmod -R a-w $(distdir)
 	chmod u+w $(distdir)
-	mkdir $(distdir)/_build $(distdir)/_inst
+	mkdir $(distdir)/_build $(distdir)/_build/sub $(distdir)/_inst
 	chmod a-w $(distdir)
 	test -d $(distdir)/_build || exit 0; \
 	dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
 	  && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
 	  && $(MAKE) $(AM_MAKEFLAGS) distcheck-hook \
 	  && am__cwd=`pwd` \
-	  && $(am__cd) $(distdir)/_build \
-	  && ../configure \
+	  && $(am__cd) $(distdir)/_build/sub \
+	  && ../../configure \
 	    $(AM_DISTCHECK_CONFIGURE_FLAGS) \
 	    $(DISTCHECK_CONFIGURE_FLAGS) \
-	    --srcdir=.. --prefix="$$dc_install_base" \
+	    --srcdir=../.. --prefix="$$dc_install_base" \
 	  && $(MAKE) $(AM_MAKEFLAGS) \
 	  && $(MAKE) $(AM_MAKEFLAGS) dvi \
 	  && $(MAKE) $(AM_MAKEFLAGS) check \
@@ -1343,6 +1359,8 @@
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
 	tags tags-am uninstall uninstall-am
 
+.PRECIOUS: Makefile
+
 
 win32-debug:
 	@echo; \
diff --git a/NEWS b/NEWS
index 59979e0..7a5a455 100644
--- a/NEWS
+++ b/NEWS
@@ -1,2 +1,2 @@
-This is GStreamer Bad Plugins 1.5.2
+This is GStreamer Bad Plugins 1.5.90
 
diff --git a/RELEASE b/RELEASE
index 9229d4c..e150303 100644
--- a/RELEASE
+++ b/RELEASE
@@ -1,17 +1,16 @@
 
-Release notes for GStreamer Bad Plugins 1.5.2
+Release notes for GStreamer Bad Plugins 1.5.90
 
 
-The GStreamer team is pleased to announce the second release of the unstable
-1.5 release series. The 1.5 release series is adding new features on top of
+The GStreamer team is pleased to announce the first release candidate for the
+stable 1.6 release series. The 1.6 release series is adding new features on top of
 the 1.0, 1.2 and 1.4 series and is part of the API and ABI-stable 1.x release
-series of the GStreamer multimedia framework. The unstable 1.5 release series
-will lead to the stable 1.6 release series in the next weeks, and newly added
-API can still change until that point.
+series of the GStreamer multimedia framework. The final 1.6.0 release is planned
+in the next few days unless any major bugs are found.
 
 
-Binaries for Android, iOS, Mac OS X and Windows will be provided separately
-during the unstable 1.5 release series.
+Binaries for Android, iOS, Mac OS X and Windows will be provided separately by
+the GStreamer project.
 
 
 
@@ -63,44 +62,87 @@
 
 Bugs fixed in this release
      
+      * 752745 : glfiltercube: the cube does not look like a cube
+      * 745768 : aggregator: Add internal queue
+      * 706292 : mpegtsmux: Can't re-use safely after coming back from GST_STATE_NULL again
+      * 719553 : rtpasfpay: crash and segment format warnings with asfmux ! rtpasfpay
+      * 725167 : opusdec PLC doesn't seem to work as well as Chrome
+      * 734060 : videoaggregator: Race when scrub forward seeking in PAUSED leading to no ASYNC_DONE on the bus
+      * 743220 : bluetooth modules need to track transport state
+      * 744763 : gltransformation: Make all property into universal [0-1] coordinate
+      * 745107 : glimagesink: implement GstVideoOverlayCompositionMeta
+      * 745206 : glimagesink: crash when using meta:GLTextureUpload method
+      * 746387 : srtp: Add support for buffer list in srtpenc
+      * 746631 : avsamplebufferlayersink: Uses API that is only OSX > =10.10
+      * 747613 : Fixes to HEVC: codecparser, videoparser, codec-utils
+      * 748377 : OpenCV face detection does not work with OpenCV newer than 2.4.10
+      * 749574 : audioaggregator: Deadlock in gst_object_sync_values()
+      * 749734 : gltransformation: black screen (or crash) on Windows
+      * 749966 : aggregator: Allow selecting the aggregation output start time and not always start outputting at 0
+      * 750310 : GL: allow an application to provide an external backend
+      * 751071 : applemedia: CMBlockBuffer can be non-contiguous
+      * 751072 : applemedia: enable sharing of CMBlockBuffer data
       * 751101 : glimagesink: Broken on iOS
-      * 673925 : [API] codecparsers: add JPEG baseline parser
-      * 735653 : mpegts: return early if packetizing short section
-      * 739345 : codecparsers: mpeg4: fix ignored increment of return value
-      * 744459 : opensles: Allow setting stream type
-      * 745748 : liveadder: Fix memory leak
-      * 746765 : mpegtsmux: Remove arbitrary constraint on prog-map program ids
-      * 748922 : vtdec: duplicating input frame's metas (inc. source H264 sample buffer)
-      * 748946 : videoaggregator: add " ignore-eos " property to input pads to ignore EOS
-      * 748947 : playout: New example for seamless audio/video playback
-      * 749856 : d3dvideosink: avoid frame rendering while window handle is hidden
-      * 750098 : New element to convert GST_FLOW_ERROR into GST_FLOW_OK
-      * 750185 : gl: Not showing any video on Android (skip glDrawElements, PowerVR SGX 544MP)
-      * 750390 : tests: dashdemux: add unit tests for checking the parsing of MPD element
-      * 750601 : uvch264: FTBFS because of uninitialized variables
-      * 750619 : cannot build dash against an uninstalled GStreamer
-      * 750635 : vtenc: add alignment=au to sink caps
-      * 750638 : avfassetsrc: fix huge memory leak
-      * 750668 : vtenc: gst_vtenc_frame_free on error
-      * 750669 : vtenc: always enqueue frames, even on error
-      * 750671 : vtenc: free input buffer ASAP
-      * 750685 : h263parse: Wrong mask use in the find_psc function.
-      * 750797 : dashdemux: period duration is not validated
-      * 750804 : dashdemux: incorrectly calculates presentationTimeOffset if the value is larger than 2^32
-      * 750863 : tests: dashdemux: added unit tests for parsing period element
-      * 750866 : dashdemux: xml parser will segfault if there is no default namespace
-      * 750881 : glmixerbin: correctly free input chain on pad release
-      * 750961 : mpegtsmux: fix build error
-      * 750992 : opusenc: Add bitrate to the tags
-      * 751003 : glimagesink: Windows are sharing their events
-      * 751048 : avfvideosrc: caps should indicate frame rate range
-      * 751087 : nalutils: trivial cleanup
-      * 751149 : dashdemux: add warning messages
-      * 751153 : dashdemux: wrong representation index returned when max_bandwidth is 0
-      * 751221 : motioncells: Fix the build on FreeBSD
-      * 751228 : texParameterf missing?
-      * 751255 : videoaggregator: simplifies and improves sink_get_caps.
-      * 751305 : bad: fix some issues found using static analysis tools
+      * 751104 : make Gtk sinks usable from gst-launch
+      * 751165 : gles2: glBufferSubData is called with GL_PIXEL_UNPACK_BUFFER
+      * 751170 : dashdemux: the bitstreamSwitching attribute from AdaptationSet is not parsed
+      * 751449 : dashdemux: wrong duration computed by gst_mpd_client_setup_representation
+      * 751465 : dashdemux: incorrect use of period start
+      * 751500 : dashdemux: incorrect use of timeShiftBufferDepth
+      * 751528 : mpegdemux: Fix a prevent defect which dereference null return value
+      * 751539 : dashdemux: wrong duration validation in gst_mpd_client_get_next_fragment_duration
+      * 751641 : vtdec: fix refcount error in error handling
+      * 751664 : gstjniutils.c - JNI method IDs not set for android platform causing app to crash during runtime.
+      * 751682 : dashdemux: template parsing does not recognize $$$
+      * 751716 : dashdemux: %u is not correctly parsed for segment templates
+      * 751729 : srtpdec: Add config for the replay window size
+      * 751778 : metainfo: some meta has no transform_func in plugins
+      * 751821 : amc: fix check whether we managed to acquire a buffer
+      * 751823 : glimagesink: possible null pointer dereference
+      * 751841 : dashdemux: segment timestamp not correctly computed for SegmentTimeline
+      * 751850 : dashdemux: gst_mpd_client_advance_segment should return GST_FLOW_EOS when index is out of range
+      * 751879 : pcapparse: Fix parsing of packets with eth padding
+      * 751911 : dashdemux: mimeType local variable must be reinitialized at the beginning of loop iteration
+      * 751914 : dashdemux: wrong segment duration computed by gst_mpd_client_setup_representation
+      * 752027 : dashdemux: tests: improve unit test code coverage
+      * 752127 : pngparse: fix caps leak
+      * 752185 : new qt5 qml video sink
+      * 752413 : dashdemux: add support for parsing UTCTiming elements
+      * 752414 : dashdemux: default timescale value should be 1, not 0
+      * 752419 : dashdemux: string is used to print a warning message after it was freed
+      * 752426 : dashdemux: gst_mpdparser_get_xml_prop_duration does not set default value in case of parsing errors
+      * 752431 : mpg123audiodec: fix handling of sample rate change during playback
+      * 752441 : gtk: Create a base class to remove code duplication
+      * 752442 : gtksink: Display once black frame when caps changes
+      * 752620 : dashdemux: segment start time and duration could overflow
+      * 752652 : glimagesink: overlay composition resize does not place text correctly
+      * 752661 : gl : passing immutable gst structure to gst_structure_id_take_value
+      * 752703 : configure: DASH plugin requires libxml2 > = 2.8 now
+      * 752743 : gl: add support for egl+x11+swrast on osx
+      * 752774 : srtpenc: remove unnecessary rtp/rtcp checks to improve performance
+      * 752776 : dashdemux: tests: extend unit tests
+      * 752807 : h265parse: Fix sticky event mishandling when stream does not have VPS
+      * 752912 : Regression: vaapidecode ! glimagesink broken since GL overlay composition
+      * 752937 : glupload: Raw upload is doing an extra copy
+      * 752991 : h263parse: fix caps memory leak
+      * 753037 : rtpopusdepay: timestamp handling regression
+      * 753081 : applemedia/avsample: Cleanup of CA layer is racy and crashes occasionally
+      * 753086 : dtsdec: fix taglist leak
+      * 753188 : dashdemux: memory leak in gst_dash_demux_stream_update_fragment_info
+      * 753241 : camerabin2: Typo (cound't) in translatable string
+      * 753243 : rawparse: Fix duplicated format in handle_seek_pull
+      * 753262 : rsvgdec: Leaks output state
+      * 753306 : h264parse: fix MVC specific data memory leak
+      * 753326 : element-template wrong pad in videoencoder
+      * 753497 : HEVC videoparser fixes: improve frame start detection
+      * 753552 : codecparsers: h265: Fix the parsing of slice header when there is a modification in reference picture lists
+      * 753639 : gl: ClearDepth call missing
+      * 753651 : opencv: Fedora doesn't find haar cascade files
+      * 753661 : dashdemux: Reverse playback doesn't work well
+      * 753759 : liveadder: assertion on buffer copy region
+      * 751241 : vtdec: handle non-consecutive GstBuffer input without copying
+      * 752842 : gloverlaycompositor: Wrong color format
+      * 753228 : rtph265: Sync with rtph264 changes
 
 ==== Download ====
 
@@ -137,34 +179,46 @@
         
 Contributors to this release
     
-      * Alessandro Decina
       * Alex Ashley
+      * Anders Jonsson
       * Arun Raghavan
-      * Chris Clayton
+      * Carlos Garnacho
+      * Carlos Rafael Giani
       * Edward Hervey
-      * Fabio Cetrini
       * Florin Apostol
-      * Gwenole Beauchesne
+      * Guillaume Marquebielle
+      * Heinrich Fink
+      * Hyunjun Ko
+      * Ilya Averyanov
       * Ilya Konstantinov
       * Jan Schmidt
-      * Jesper Larsen
-      * John Ludwig
+      * Jason Litzinger
+      * Jimmy Ohn
       * Julien Isorce
+      * Lubosz Sarnecki
       * Luis de Bethencourt
-      * Mathieu Duponchelle
+      * Martin Kelly
       * Matthew Waters
-      * Mersad Jelacic
+      * Miguel París Díaz
+      * Nick Stoughton
       * Nicolas Dufresne
       * Nirbheek Chauhan
-      * Santiago Carot-Nemesio
+      * Olivier Crête
+      * Rico Tzschichholz
+      * Roman Donchenko
+      * Sangkyu Park
       * Sebastian Dröge
+      * Sreerenj Balachandran
       * Stefan Sauer
+      * Stian Selnes
       * Thiago Santos
       * Thibault Saunier
       * Tim-Philipp Müller
+      * Vanessa Chipi
+      * Vanessa Chipirrás
+      * Vanessa Chipirrás Navalón
       * Vineeth TM
-      * Vivia Nikolaidou
-      * Wim Taymans
-      * Wind Yuan
-      * Yanko Kaneti
+      * Xavier Claessens
+      * Young Han Lee
+      * vanechipi
  
\ No newline at end of file
diff --git a/aclocal.m4 b/aclocal.m4
index ff63a81..2144811 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -1,6 +1,6 @@
-# generated automatically by aclocal 1.14.1 -*- Autoconf -*-
+# generated automatically by aclocal 1.15 -*- Autoconf -*-
 
-# Copyright (C) 1996-2013 Free Software Foundation, Inc.
+# Copyright (C) 1996-2014 Free Software Foundation, Inc.
 
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -20,7 +20,7 @@
 If you have problems, you may need to regenerate the build system entirely.
 To do so, use the procedure documented by the package, typically 'autoreconf'.])])
 
-# Copyright (C) 2002-2013 Free Software Foundation, Inc.
+# Copyright (C) 2002-2014 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -32,10 +32,10 @@
 # generated from the m4 files accompanying Automake X.Y.
 # (This private macro should not be called outside this file.)
 AC_DEFUN([AM_AUTOMAKE_VERSION],
-[am__api_version='1.14'
+[am__api_version='1.15'
 dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
 dnl require some minimum version.  Point them to the right macro.
-m4_if([$1], [1.14.1], [],
+m4_if([$1], [1.15], [],
       [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
 ])
 
@@ -51,14 +51,14 @@
 # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
 # This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
 AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.14.1])dnl
+[AM_AUTOMAKE_VERSION([1.15])dnl
 m4_ifndef([AC_AUTOCONF_VERSION],
   [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
 _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
 
 # AM_AUX_DIR_EXPAND                                         -*- Autoconf -*-
 
-# Copyright (C) 2001-2013 Free Software Foundation, Inc.
+# Copyright (C) 2001-2014 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -110,7 +110,7 @@
 
 # AM_CONDITIONAL                                            -*- Autoconf -*-
 
-# Copyright (C) 1997-2013 Free Software Foundation, Inc.
+# Copyright (C) 1997-2014 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -141,7 +141,7 @@
 Usually this means the macro was only invoked conditionally.]])
 fi])])
 
-# Copyright (C) 1999-2013 Free Software Foundation, Inc.
+# Copyright (C) 1999-2014 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -332,7 +332,7 @@
 
 # Generate code to set up dependency tracking.              -*- Autoconf -*-
 
-# Copyright (C) 1999-2013 Free Software Foundation, Inc.
+# Copyright (C) 1999-2014 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -408,7 +408,7 @@
 
 # Do all the work for Automake.                             -*- Autoconf -*-
 
-# Copyright (C) 1996-2013 Free Software Foundation, Inc.
+# Copyright (C) 1996-2014 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -498,8 +498,8 @@
 # <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
 # <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
 AC_SUBST([mkdir_p], ['$(MKDIR_P)'])
-# We need awk for the "check" target.  The system "awk" is bad on
-# some platforms.
+# We need awk for the "check" target (and possibly the TAP driver).  The
+# system "awk" is bad on some platforms.
 AC_REQUIRE([AC_PROG_AWK])dnl
 AC_REQUIRE([AC_PROG_MAKE_SET])dnl
 AC_REQUIRE([AM_SET_LEADING_DOT])dnl
@@ -573,6 +573,9 @@
     AC_MSG_ERROR([Your 'rm' program is bad, sorry.])
   fi
 fi
+dnl The trailing newline in this macro's definition is deliberate, for
+dnl backward compatibility and to allow trailing 'dnl'-style comments
+dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841.
 ])
 
 dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion.  Do not
@@ -602,7 +605,7 @@
 done
 echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
 
-# Copyright (C) 2001-2013 Free Software Foundation, Inc.
+# Copyright (C) 2001-2014 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -613,7 +616,7 @@
 # Define $install_sh.
 AC_DEFUN([AM_PROG_INSTALL_SH],
 [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
-if test x"${install_sh}" != xset; then
+if test x"${install_sh+set}" != xset; then
   case $am_aux_dir in
   *\ * | *\	*)
     install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
@@ -623,7 +626,7 @@
 fi
 AC_SUBST([install_sh])])
 
-# Copyright (C) 2003-2013 Free Software Foundation, Inc.
+# Copyright (C) 2003-2014 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -645,7 +648,7 @@
 # Add --enable-maintainer-mode option to configure.         -*- Autoconf -*-
 # From Jim Meyering
 
-# Copyright (C) 1996-2013 Free Software Foundation, Inc.
+# Copyright (C) 1996-2014 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -680,7 +683,7 @@
 
 # Check to see how 'make' treats includes.	            -*- Autoconf -*-
 
-# Copyright (C) 2001-2013 Free Software Foundation, Inc.
+# Copyright (C) 2001-2014 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -730,7 +733,7 @@
 
 # Fake the existence of programs that GNU maintainers use.  -*- Autoconf -*-
 
-# Copyright (C) 1997-2013 Free Software Foundation, Inc.
+# Copyright (C) 1997-2014 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -767,7 +770,7 @@
 fi
 ])
 
-# Copyright (C) 2003-2013 Free Software Foundation, Inc.
+# Copyright (C) 2003-2014 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -801,7 +804,7 @@
 
 # Helper functions for option handling.                     -*- Autoconf -*-
 
-# Copyright (C) 2001-2013 Free Software Foundation, Inc.
+# Copyright (C) 2001-2014 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -830,7 +833,7 @@
 AC_DEFUN([_AM_IF_OPTION],
 [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
 
-# Copyright (C) 1999-2013 Free Software Foundation, Inc.
+# Copyright (C) 1999-2014 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -877,7 +880,7 @@
 # For backward compatibility.
 AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
 
-# Copyright (C) 1999-2013 Free Software Foundation, Inc.
+# Copyright (C) 1999-2014 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -1112,7 +1115,7 @@
 sys.exit(sys.hexversion < minverhex)"
   AS_IF([AM_RUN_LOG([$1 -c "$prog"])], [$3], [$4])])
 
-# Copyright (C) 2001-2013 Free Software Foundation, Inc.
+# Copyright (C) 2001-2014 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -1131,7 +1134,7 @@
 
 # Check to make sure that the build environment is sane.    -*- Autoconf -*-
 
-# Copyright (C) 1996-2013 Free Software Foundation, Inc.
+# Copyright (C) 1996-2014 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -1212,7 +1215,7 @@
 rm -f conftest.file
 ])
 
-# Copyright (C) 2009-2013 Free Software Foundation, Inc.
+# Copyright (C) 2009-2014 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -1272,7 +1275,7 @@
 _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
 ])
 
-# Copyright (C) 2001-2013 Free Software Foundation, Inc.
+# Copyright (C) 2001-2014 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -1300,7 +1303,7 @@
 INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
 AC_SUBST([INSTALL_STRIP_PROGRAM])])
 
-# Copyright (C) 2006-2013 Free Software Foundation, Inc.
+# Copyright (C) 2006-2014 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -1319,7 +1322,7 @@
 
 # Check how to create a tarball.                            -*- Autoconf -*-
 
-# Copyright (C) 2004-2013 Free Software Foundation, Inc.
+# Copyright (C) 2004-2014 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff --git a/common/Makefile.in b/common/Makefile.in
index 3fc93bb..4a9401c 100644
--- a/common/Makefile.in
+++ b/common/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -14,7 +14,17 @@
 
 @SET_MAKE@
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -79,8 +89,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = common
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am ChangeLog \
-	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 \
@@ -118,6 +126,7 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -177,6 +186,7 @@
 ETAGS = etags
 CTAGS = ctags
 DIST_SUBDIRS = $(SUBDIRS)
+am__DIST_COMMON = $(srcdir)/Makefile.in ChangeLog README
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 am__relativize = \
   dir0=`pwd`; \
@@ -219,8 +229,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -249,8 +257,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -298,11 +304,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -486,6 +495,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -564,7 +574,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -604,6 +619,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -749,7 +765,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu common/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu common/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1044,6 +1059,8 @@
 	mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
 	ps ps-am tags tags-am uninstall uninstall-am
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/common/gstdoc-scangobj b/common/gstdoc-scangobj
index 4ad9786..906857c 100755
--- a/common/gstdoc-scangobj
+++ b/common/gstdoc-scangobj
@@ -110,6 +110,8 @@
 my $new_prerequisites_filename = "$OUTPUT_DIR/$MODULE.prerequisites.new";
 my $old_args_filename = "$OUTPUT_DIR/$MODULE.args";
 my $new_args_filename = "$OUTPUT_DIR/$MODULE.args.new";
+my $old_sections_filename = "$OUTPUT_DIR/$MODULE-sections";
+my $new_sections_filename = "$OUTPUT_DIR/$MODULE-sections.new";
 
 my $debug_log="g_message";
 if (!defined($VERBOSE) or $VERBOSE eq "0") {
@@ -437,32 +439,30 @@
 const gchar *interfaces_filename = "$new_interfaces_filename";
 const gchar *prerequisites_filename = "$new_prerequisites_filename";
 const gchar *args_filename = "$new_args_filename";
+const gchar *sections_filename = "$new_sections_filename";
 
 
 static void output_signals (void);
-static void output_object_signals (FILE *fp,
-				   GType object_type);
-static void output_object_signal (FILE *fp,
-				  const gchar *object_class_name,
+static void output_object_signals (FILE *fp, GType object_type);
+static void output_object_signal (FILE *fp, const gchar *object_class_name,
 				  guint signal_id);
-static const gchar * get_type_name (GType type,
-			            gboolean * is_pointer);
+static const gchar * get_type_name (GType type, gboolean * is_pointer);
 static void output_object_hierarchy (void);
-static void output_hierarchy (FILE *fp,
-			      GType type,
-			      guint level);
+static void output_hierarchy (FILE *fp, GType type, guint level);
 
 static void output_object_interfaces (void);
-static void output_interfaces (FILE *fp,
-			       GType type);
+static void output_interfaces (FILE *fp, GType type);
 
 static void output_interface_prerequisites (void);
-static void output_prerequisites (FILE *fp,
-			          GType type);
+static void output_prerequisites (FILE *fp, GType type);
 
 static void output_args (void);
 static void output_object_args (FILE *fp, GType object_type);
 
+static void output_sections (void);
+static void output_object_section (FILE *fp, GType object_type);
+
+
 int
 main (G_GNUC_UNUSED int argc, G_GNUC_UNUSED char *argv[])
 {
@@ -475,6 +475,8 @@
   output_object_interfaces ();
   output_interface_prerequisites ();
   output_args ();
+  
+  output_sections ();
 
   return 0;
 }
@@ -1570,6 +1572,139 @@
     break;
   }
 }
+
+static void
+output_sections (void)
+{
+  FILE *fp;
+  gint i;
+
+  fp = fopen (sections_filename, "w");
+  if (fp == NULL)
+    {
+      g_warning ("Couldn't open output file: %s : %s", sections_filename, g_strerror(errno));
+      return;
+    }
+
+  for (i = 0; object_types[i]; i++) { }
+  qsort (object_types, i, sizeof (GType), compare_types);
+    
+  for (i = 0; object_types[i]; i++) {
+    output_object_section (fp, object_types[i]);
+  }
+
+  fclose (fp);
+}
+
+static gboolean
+find_by_type (GstPluginFeature *f, gpointer data) {
+  return (GST_IS_ELEMENT_FACTORY(f) && 
+      ((GType)data == gst_element_factory_get_element_type (GST_ELEMENT_FACTORY(f))));
+}
+
+static void
+output_object_section (FILE *fp, GType object_type)
+{
+  /* e.g. GstFakeSink */
+  const gchar *tn = g_type_name (object_type);
+  const gchar *cct = &tn[3]; /* cut 'Gst' */
+  gchar *title, *lct, *uct;
+  gint i, j, l = strlen(cct);
+  gpointer class;
+  GParamSpec **properties;
+  guint n_properties;
+  const gchar *ptn;
+  gchar *ptns;
+  GString *strbuf = g_string_new (NULL);
+  GList *fl;
+  GstPluginFeature *f = NULL;
+  gboolean need_unserscore = TRUE, have_abbrev = FALSE;
+  
+  fl = gst_registry_feature_filter (gst_registry_get(), find_by_type, TRUE, 
+    (gpointer)object_type);
+  if (fl) {
+    f = fl->data;
+    g_list_free(fl);
+  }
+  if (f) {
+    title = g_strdup (gst_plugin_feature_get_name(f));
+    g_object_unref (f);
+  } else {
+    title = g_ascii_strdown(cct, -1);
+  }
+  
+  /* turn CamelCase into '_' separated all lower, resulting string is atmost
+   * twice as long, special casing for abbevs like GstTCPClientSink */
+  lct = g_malloc(2*l);
+  for (i = 0, j = 0; i < l; i++) {
+    if (g_ascii_isupper (cct[i])) {
+      if (need_unserscore) {
+        if (i > 0) {
+          lct[j++] = '_';
+        }
+      } else {
+        have_abbrev = TRUE;
+      }
+      lct[j++] = g_ascii_tolower(cct[i]);
+      need_unserscore = FALSE;
+    } else {
+      if (have_abbrev) {
+        lct[j] = lct[j-1];
+        lct[j-1] = '_';
+        j++;
+        have_abbrev = FALSE;
+      }
+      lct[j++] = cct[i];
+      need_unserscore = TRUE;
+    }
+  }
+  lct[j] = '\\0';
+  uct = g_ascii_strup(lct, -1);
+  
+  /* scan properties and find local enums */
+  class = g_type_class_peek (object_type);
+  properties = g_object_class_list_properties (class, &n_properties);
+  qsort (properties, n_properties, sizeof (GParamSpec *), compare_param_specs);
+  for (i = 0; i < n_properties; i++) {
+    GParamSpec *spec = properties[i];
+    if (!(G_IS_PARAM_SPEC_ENUM (spec) || G_IS_PARAM_SPEC_FLAGS (spec))) {
+      continue;
+    }
+    ptn = g_type_name(spec->value_type);
+    // does it start with tn?
+    if (strncmp(tn, ptn, strlen(tn))) {
+      continue;
+    }
+    g_string_append_c(strbuf, '\\n');
+    g_string_append(strbuf, ptn);
+  }
+  ptns = g_string_free (strbuf, FALSE);
+
+  /* later we can remove the SUBSECTION Standart/Private, since we only need to
+   * highlight what is public API */
+  fprintf (fp, "<SECTION>\\n"
+               "<FILE>element-%s</FILE>\\n"
+               "<TITLE>%s</TITLE>\\n"
+               "Gst%s%s\\n"
+               "<SUBSECTION Standard>\\n"
+               "Gst%sClass\\n"
+               "GST_%s\\n"
+               "GST_%s_CAST\\n"
+               "GST_IS_%s\\n"
+               "GST_%s_CLASS\\n"
+               "GST_IS_%s_CLASS\\n"
+               "GST_TYPE_%s\\n"
+               "<SUBSECTION Private>\\n"
+               "gst_%s_get_type\\n"
+               "</SECTION>\\n\\n",
+               title, title, cct, ptns, 
+               cct, uct, uct, uct, uct, uct, uct, lct);
+  g_free (title);
+  g_free (lct);
+  g_free (uct);
+  g_free (ptns);
+}
+
 EOT
 
 close OUTPUT;
@@ -1614,4 +1749,4 @@
 #&UpdateFileIfChanged ($old_prerequisites_filename, $new_prerequisites_filename, 0);
 #&UpdateFileIfChanged ($old_signals_filename, $new_signals_filename, 0);
 #&UpdateFileIfChanged ($old_args_filename, $new_args_filename, 0);
-
+#&UpdateFileIfChanged ($old_sections_filename, $new_sections_filename, 0);
diff --git a/common/m4/Makefile.in b/common/m4/Makefile.in
index 1b7c117..8b05151 100644
--- a/common/m4/Makefile.in
+++ b/common/m4/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -14,7 +14,17 @@
 
 @SET_MAKE@
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -79,7 +89,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = common/m4
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am 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 \
@@ -117,6 +126,7 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -141,6 +151,7 @@
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+am__DIST_COMMON = $(srcdir)/Makefile.in README
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -158,8 +169,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -188,8 +197,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -237,11 +244,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -425,6 +435,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -503,7 +514,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -543,6 +559,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -708,7 +725,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu common/m4/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu common/m4/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -883,6 +899,8 @@
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
 	tags-am uninstall uninstall-am
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/compile b/compile
index 531136b..a85b723 100755
--- a/compile
+++ b/compile
@@ -3,7 +3,7 @@
 
 scriptversion=2012-10-14.11; # UTC
 
-# Copyright (C) 1999-2013 Free Software Foundation, Inc.
+# Copyright (C) 1999-2014 Free Software Foundation, Inc.
 # Written by Tom Tromey <tromey@cygnus.com>.
 #
 # This program is free software; you can redistribute it and/or modify
diff --git a/config.h.in b/config.h.in
index ef7721c..0cf1301 100644
--- a/config.h.in
+++ b/config.h.in
@@ -115,10 +115,7 @@
 /* Define to enable Bluez (used by bluez). */
 #undef HAVE_BLUEZ
 
-/* Old bluez detected */
-#undef HAVE_BLUEZ4
-
-/* Current bluez detected */
+/* Bluez5 detected */
 #undef HAVE_BLUEZ5
 
 /* Define to enable bs2b (used by bs2b). */
@@ -498,6 +495,12 @@
 /* Define to enable pvrvideosink (used by pvr). */
 #undef HAVE_PVR
 
+/* Define to enable Qt elements (used by qt). */
+#undef HAVE_QT
+
+/* Define if Qt X11 integration is installed */
+#undef HAVE_QT_X11
+
 /* Define if RDTSC is available */
 #undef HAVE_RDTSC
 
@@ -688,6 +691,9 @@
 /* Define if the old MusePack API is used */
 #undef MPC_IS_OLD_API
 
+/* OpenCV path name */
+#undef OPENCV_PATH_NAME
+
 /* opencv install prefix */
 #undef OPENCV_PREFIX
 
diff --git a/configure b/configure
index 360b271..b109df3 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 Bad Plug-ins 1.5.2.
+# Generated by GNU Autoconf 2.69 for GStreamer Bad Plug-ins 1.5.90.
 #
 # Report bugs to <http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer>.
 #
@@ -591,8 +591,8 @@
 # Identity of this package.
 PACKAGE_NAME='GStreamer Bad Plug-ins'
 PACKAGE_TARNAME='gst-plugins-bad'
-PACKAGE_VERSION='1.5.2'
-PACKAGE_STRING='GStreamer Bad Plug-ins 1.5.2'
+PACKAGE_VERSION='1.5.90'
+PACKAGE_STRING='GStreamer Bad Plug-ins 1.5.90'
 PACKAGE_BUGREPORT='http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer'
 PACKAGE_URL=''
 
@@ -747,6 +747,15 @@
 USE_LIBVISUAL_TRUE
 LIBVISUAL_LIBS
 LIBVISUAL_CFLAGS
+USE_QT_FALSE
+USE_QT_TRUE
+QT_X11_LIBS
+QT_X11_CFLAGS
+UIC
+RCC
+MOC
+QT_LIBS
+QT_CFLAGS
 USE_GTK3_GL_FALSE
 USE_GTK3_GL_TRUE
 USE_GTK3_FALSE
@@ -988,12 +997,11 @@
 USE_AVC_TRUE
 USE_BLUEZ_FALSE
 USE_BLUEZ_TRUE
-DBUS_LIBS
-DBUS_CFLAGS
+GDBUS_CODEGEN
+GIO_UNIX_LIBS
+GIO_UNIX_CFLAGS
 BLUEZ5_LIBS
 BLUEZ5_CFLAGS
-BLUEZ4_LIBS
-BLUEZ4_CFLAGS
 USE_APPLE_MEDIA_FALSE
 USE_APPLE_MEDIA_TRUE
 USE_ANDROID_MEDIA_FALSE
@@ -1798,6 +1806,7 @@
 enable_rsvg
 enable_gl
 enable_gtk3
+enable_qt
 enable_libvisual
 enable_timidity
 enable_teletextdec
@@ -1901,12 +1910,10 @@
 WAYLAND_EGL_LIBS
 LIBPNG_CFLAGS
 LIBPNG_LIBS
-BLUEZ4_CFLAGS
-BLUEZ4_LIBS
 BLUEZ5_CFLAGS
 BLUEZ5_LIBS
-DBUS_CFLAGS
-DBUS_LIBS
+GIO_UNIX_CFLAGS
+GIO_UNIX_LIBS
 GST_VIDEO_CFLAGS
 GST_VIDEO_LIBS
 G_UDEV_CFLAGS
@@ -1999,6 +2006,10 @@
 RSVG_2_36_2_LIBS
 GTK3_GL_CFLAGS
 GTK3_GL_LIBS
+QT_CFLAGS
+QT_LIBS
+QT_X11_CFLAGS
+QT_X11_LIBS
 LIBVISUAL_CFLAGS
 LIBVISUAL_LIBS
 TIMIDITY_CFLAGS
@@ -2569,7 +2580,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 Bad Plug-ins 1.5.2 to adapt to many kinds of systems.
+\`configure' configures GStreamer Bad Plug-ins 1.5.90 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -2640,7 +2651,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of GStreamer Bad Plug-ins 1.5.2:";;
+     short | recursive ) echo "Configuration of GStreamer Bad Plug-ins 1.5.90:";;
    esac
   cat <<\_ACEOF
 
@@ -2828,6 +2839,7 @@
   --disable-rsvg               disable rsvg decoder: rsvg
   --disable-gl                 disable gl elements: gl
   --disable-gtk3               disable Gtk+ elements: gtk
+  --disable-qt                 disable Qt elements: qt
   --disable-libvisual          disable libvisual visualization library: libvisual
   --disable-timidity           disable timidity midi soft synth plugin: timidity
   --disable-teletextdec        disable Teletext decoder: teletextdec
@@ -3013,14 +3025,13 @@
   LIBPNG_CFLAGS
               C compiler flags for LIBPNG, overriding pkg-config
   LIBPNG_LIBS linker flags for LIBPNG, overriding pkg-config
-  BLUEZ4_CFLAGS
-              C compiler flags for BLUEZ4, overriding pkg-config
-  BLUEZ4_LIBS linker flags for BLUEZ4, overriding pkg-config
   BLUEZ5_CFLAGS
               C compiler flags for BLUEZ5, overriding pkg-config
   BLUEZ5_LIBS linker flags for BLUEZ5, overriding pkg-config
-  DBUS_CFLAGS C compiler flags for DBUS, overriding pkg-config
-  DBUS_LIBS   linker flags for DBUS, overriding pkg-config
+  GIO_UNIX_CFLAGS
+              C compiler flags for GIO_UNIX, overriding pkg-config
+  GIO_UNIX_LIBS
+              linker flags for GIO_UNIX, overriding pkg-config
   GST_VIDEO_CFLAGS
               C compiler flags for GST_VIDEO, overriding pkg-config
   GST_VIDEO_LIBS
@@ -3165,6 +3176,11 @@
               C compiler flags for GTK3_GL, overriding pkg-config
   GTK3_GL_LIBS
               linker flags for GTK3_GL, overriding pkg-config
+  QT_CFLAGS   C compiler flags for QT, overriding pkg-config
+  QT_LIBS     linker flags for QT, overriding pkg-config
+  QT_X11_CFLAGS
+              C compiler flags for QT_X11, overriding pkg-config
+  QT_X11_LIBS linker flags for QT_X11, overriding pkg-config
   LIBVISUAL_CFLAGS
               C compiler flags for LIBVISUAL, overriding pkg-config
   LIBVISUAL_LIBS
@@ -3281,7 +3297,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-GStreamer Bad Plug-ins configure 1.5.2
+GStreamer Bad Plug-ins configure 1.5.90
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -4254,7 +4270,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 Bad Plug-ins $as_me 1.5.2, which was
+It was created by GStreamer Bad Plug-ins $as_me 1.5.90, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -4750,7 +4766,7 @@
 
 
 
-am__api_version='1.14'
+am__api_version='1.15'
 
 # Find a good install program.  We prefer a C program (faster),
 # so one script is as good as another.  But avoid the broken or
@@ -4942,7 +4958,7 @@
 $as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;}
 fi
 
-if test x"${install_sh}" != xset; then
+if test x"${install_sh+set}" != xset; then
   case $am_aux_dir in
   *\ * | *\	*)
     install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
@@ -5236,7 +5252,7 @@
 
 # Define the identity of the package.
  PACKAGE='gst-plugins-bad'
- VERSION='1.5.2'
+ VERSION='1.5.90'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -5270,8 +5286,8 @@
 # <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
 mkdir_p='$(MKDIR_P)'
 
-# We need awk for the "check" target.  The system "awk" is bad on
-# some platforms.
+# We need awk for the "check" target (and possibly the TAP driver).  The
+# system "awk" is bad on some platforms.
 # Always define AMTAR for backward compatibility.  Yes, it's still used
 # in the wild :-(  We should find a proper way to deprecate it ...
 AMTAR='$${TAR-tar}'
@@ -5447,9 +5463,9 @@
 
 
 
-  PACKAGE_VERSION_MAJOR=$(echo 1.5.2 | cut -d'.' -f1)
-  PACKAGE_VERSION_MINOR=$(echo 1.5.2 | cut -d'.' -f2)
-  PACKAGE_VERSION_MICRO=$(echo 1.5.2 | cut -d'.' -f3)
+  PACKAGE_VERSION_MAJOR=$(echo 1.5.90 | cut -d'.' -f1)
+  PACKAGE_VERSION_MINOR=$(echo 1.5.90 | cut -d'.' -f2)
+  PACKAGE_VERSION_MICRO=$(echo 1.5.90 | cut -d'.' -f3)
 
 
 
@@ -5460,7 +5476,7 @@
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking nano version" >&5
 $as_echo_n "checking nano version... " >&6; }
 
-  NANO=$(echo 1.5.2 | cut -d'.' -f4)
+  NANO=$(echo 1.5.90 | cut -d'.' -f4)
 
   if test x"$NANO" = x || test "x$NANO" = "x0" ; then
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: 0 (release)" >&5
@@ -10117,10 +10133,10 @@
 done
 
 
-  GST_CURRENT=502
+  GST_CURRENT=590
   GST_REVISION=0
-  GST_AGE=502
-  GST_LIBVERSION=502:0:502
+  GST_AGE=590
+  GST_LIBVERSION=590:0:590
 
 
 
@@ -14445,8 +14461,8 @@
 
 
 
-GST_REQ=1.5.2
-GSTPB_REQ=1.5.2
+GST_REQ=1.5.90
+GSTPB_REQ=1.5.90
 
 
 
@@ -33594,14 +33610,14 @@
 #ifndef GL_GLEXT_PROTOTYPES
 #define GL_GLEXT_PROTOTYPES 1
 #endif
-# ifdef __APPLE__
+# ifdef HAVE_IOS
 #  include <OpenGLES/ES2/gl.h>
 #  include <OpenGLES/ES2/glext.h>
 # else
 #  include <GLES2/gl2.h>
 #  include <GLES2/gl2ext.h>
 # endif
-# if __APPLE__
+# ifdef __APPLE__
 #  include <OpenGL/OpenGL.h>
 #  include <OpenGL/gl.h>
 #  if MAC_OS_X_VERSION_MAX_ALLOWED >= 1070
@@ -33806,12 +33822,6 @@
             if test "x$NEED_WGL" = "xyes"; then
         as_fn_error $? "WGL is not available on Mac OS X" "$LINENO" 5
       fi
-      if test "x$NEED_EGL" = "xyes"; then
-        as_fn_error $? "EGL is not available on Mac OS X" "$LINENO" 5
-      fi
-      if test "x$NEED_GLES2" = "xyes"; then
-        as_fn_error $? "OpenGL|ES 2.0 is not supported on your platform yet" "$LINENO" 5
-      fi
 
       if test "x$NEED_COCOA" != "xno"; then
         GL_LIBS="$LIBS -framework OpenGL -framework Cocoa -framework QuartzCore -framework CoreFoundation"
@@ -33837,6 +33847,23 @@
           USE_OPENGL=yes
         fi
       fi
+
+      if test "x$HAVE_EGL" = "xyes"; then
+        if test "x$NEED_EGL" != "xno"; then
+          if test "x$HAVE_WINDOW_X11" = "xyes"; then
+            GL_LIBS="$GL_LIBS -lEGL $EGL_LIBS"
+            GL_CFLAGS="$GL_CFLAGS $EGL_CFLAGS"
+            USE_EGL=yes
+          fi
+        fi
+      fi
+
+            if test "x$HAVE_GLES2" = "xyes"; then
+        if test "x$NEED_GLES2" != "xno"; then
+          GL_LIBS="$GL_LIBS -lGLESv2"
+          USE_GLES2=yes
+        fi
+      fi
     fi
     ;;
   *-mingw32*)
@@ -34162,7 +34189,7 @@
 #ifndef GL_GLEXT_PROTOTYPES
 #define GL_GLEXT_PROTOTYPES 1
 #endif
-# ifdef __APPLE__
+# ifdef HAVE_IOS
 #  include <OpenGLES/ES2/gl.h>
 #  include <OpenGLES/ES2/glext.h>
 # else
@@ -34174,7 +34201,7 @@
 
 if test "x$USE_OPENGL" = "xyes"; then
   GL_INCLUDES="$GL_INCLUDES
-# if __APPLE__
+# ifdef __APPLE__
 #  include <OpenGL/OpenGL.h>
 #  include <OpenGL/gl.h>
 # else
@@ -35466,68 +35493,6 @@
 
 
 pkg_failed=no
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BLUEZ4" >&5
-$as_echo_n "checking for BLUEZ4... " >&6; }
-
-if test -n "$PKG_CONFIG"; then
-    if test -n "$BLUEZ4_CFLAGS"; then
-        pkg_cv_BLUEZ4_CFLAGS="$BLUEZ4_CFLAGS"
-    else
-        if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"bluez < 5.0\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "bluez < 5.0") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-  pkg_cv_BLUEZ4_CFLAGS=`$PKG_CONFIG --cflags "bluez < 5.0" 2>/dev/null`
-else
-  pkg_failed=yes
-fi
-    fi
-else
-	pkg_failed=untried
-fi
-if test -n "$PKG_CONFIG"; then
-    if test -n "$BLUEZ4_LIBS"; then
-        pkg_cv_BLUEZ4_LIBS="$BLUEZ4_LIBS"
-    else
-        if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"bluez < 5.0\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "bluez < 5.0") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-  pkg_cv_BLUEZ4_LIBS=`$PKG_CONFIG --libs "bluez < 5.0" 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
-	        BLUEZ4_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "bluez < 5.0"`
-        else
-	        BLUEZ4_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "bluez < 5.0"`
-        fi
-	# Put the nasty error message in config.log where it belongs
-	echo "$BLUEZ4_PKG_ERRORS" >&5
-
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-
-
-pkg_failed=no
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BLUEZ5" >&5
 $as_echo_n "checking for BLUEZ5... " >&6; }
 
@@ -35588,11 +35553,11 @@
 	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 
-      HAVE_BLUEZ=no
+    HAVE_BLUEZ=no
 
 elif test $pkg_failed = untried; then
 
-      HAVE_BLUEZ=no
+    HAVE_BLUEZ=no
 
 else
 	BLUEZ5_CFLAGS=$pkg_cv_BLUEZ5_CFLAGS
@@ -35600,31 +35565,22 @@
         { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
 
-      HAVE_BLUEZ=yes
-
-$as_echo "#define HAVE_BLUEZ5 1" >>confdefs.h
-
-
-fi
-
-elif test $pkg_failed = untried; then
-
 
 pkg_failed=no
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BLUEZ5" >&5
-$as_echo_n "checking for BLUEZ5... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GIO_UNIX" >&5
+$as_echo_n "checking for GIO_UNIX... " >&6; }
 
 if test -n "$PKG_CONFIG"; then
-    if test -n "$BLUEZ5_CFLAGS"; then
-        pkg_cv_BLUEZ5_CFLAGS="$BLUEZ5_CFLAGS"
+    if test -n "$GIO_UNIX_CFLAGS"; then
+        pkg_cv_GIO_UNIX_CFLAGS="$GIO_UNIX_CFLAGS"
     else
         if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"bluez >= 5.0\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "bluez >= 5.0") 2>&5
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gio-unix-2.0 > 2.24\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "gio-unix-2.0 > 2.24") 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
-  pkg_cv_BLUEZ5_CFLAGS=`$PKG_CONFIG --cflags "bluez >= 5.0" 2>/dev/null`
+  pkg_cv_GIO_UNIX_CFLAGS=`$PKG_CONFIG --cflags "gio-unix-2.0 > 2.24" 2>/dev/null`
 else
   pkg_failed=yes
 fi
@@ -35633,16 +35589,16 @@
 	pkg_failed=untried
 fi
 if test -n "$PKG_CONFIG"; then
-    if test -n "$BLUEZ5_LIBS"; then
-        pkg_cv_BLUEZ5_LIBS="$BLUEZ5_LIBS"
+    if test -n "$GIO_UNIX_LIBS"; then
+        pkg_cv_GIO_UNIX_LIBS="$GIO_UNIX_LIBS"
     else
         if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"bluez >= 5.0\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "bluez >= 5.0") 2>&5
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gio-unix-2.0 > 2.24\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "gio-unix-2.0 > 2.24") 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
-  pkg_cv_BLUEZ5_LIBS=`$PKG_CONFIG --libs "bluez >= 5.0" 2>/dev/null`
+  pkg_cv_GIO_UNIX_LIBS=`$PKG_CONFIG --libs "gio-unix-2.0 > 2.24" 2>/dev/null`
 else
   pkg_failed=yes
 fi
@@ -35661,12 +35617,12 @@
         _pkg_short_errors_supported=no
 fi
         if test $_pkg_short_errors_supported = yes; then
-	        BLUEZ5_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "bluez >= 5.0"`
+	        GIO_UNIX_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "gio-unix-2.0 > 2.24"`
         else
-	        BLUEZ5_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "bluez >= 5.0"`
+	        GIO_UNIX_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gio-unix-2.0 > 2.24"`
         fi
 	# Put the nasty error message in config.log where it belongs
-	echo "$BLUEZ5_PKG_ERRORS" >&5
+	echo "$GIO_UNIX_PKG_ERRORS" >&5
 
 	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
@@ -35678,11 +35634,48 @@
       HAVE_BLUEZ=no
 
 else
-	BLUEZ5_CFLAGS=$pkg_cv_BLUEZ5_CFLAGS
-	BLUEZ5_LIBS=$pkg_cv_BLUEZ5_LIBS
+	GIO_UNIX_CFLAGS=$pkg_cv_GIO_UNIX_CFLAGS
+	GIO_UNIX_LIBS=$pkg_cv_GIO_UNIX_LIBS
         { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
 
+      # Extract the first word of "gdbus-codegen", so it can be a program name with args.
+set dummy gdbus-codegen; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_GDBUS_CODEGEN+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$GDBUS_CODEGEN"; then
+  ac_cv_prog_GDBUS_CODEGEN="$GDBUS_CODEGEN" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_GDBUS_CODEGEN="gdbus-codegen"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+GDBUS_CODEGEN=$ac_cv_prog_GDBUS_CODEGEN
+if test -n "$GDBUS_CODEGEN"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GDBUS_CODEGEN" >&5
+$as_echo "$GDBUS_CODEGEN" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
       HAVE_BLUEZ=yes
 
 $as_echo "#define HAVE_BLUEZ5 1" >>confdefs.h
@@ -35690,92 +35683,6 @@
 
 fi
 
-else
-	BLUEZ4_CFLAGS=$pkg_cv_BLUEZ4_CFLAGS
-	BLUEZ4_LIBS=$pkg_cv_BLUEZ4_LIBS
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-
-    HAVE_BLUEZ=yes
-
-$as_echo "#define HAVE_BLUEZ4 1" >>confdefs.h
-
-
-fi
-  if  test x$HAVE_BLUEZ = xyes ; then :
-
-
-pkg_failed=no
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for DBUS" >&5
-$as_echo_n "checking for DBUS... " >&6; }
-
-if test -n "$PKG_CONFIG"; then
-    if test -n "$DBUS_CFLAGS"; then
-        pkg_cv_DBUS_CFLAGS="$DBUS_CFLAGS"
-    else
-        if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"dbus-1\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "dbus-1") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-  pkg_cv_DBUS_CFLAGS=`$PKG_CONFIG --cflags "dbus-1" 2>/dev/null`
-else
-  pkg_failed=yes
-fi
-    fi
-else
-	pkg_failed=untried
-fi
-if test -n "$PKG_CONFIG"; then
-    if test -n "$DBUS_LIBS"; then
-        pkg_cv_DBUS_LIBS="$DBUS_LIBS"
-    else
-        if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"dbus-1\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "dbus-1") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-  pkg_cv_DBUS_LIBS=`$PKG_CONFIG --libs "dbus-1" 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
-	        DBUS_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "dbus-1"`
-        else
-	        DBUS_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "dbus-1"`
-        fi
-	# Put the nasty error message in config.log where it belongs
-	echo "$DBUS_PKG_ERRORS" >&5
-
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-                HAVE_BLUEZ=no
-elif test $pkg_failed = untried; then
-	HAVE_BLUEZ=no
-else
-	DBUS_CFLAGS=$pkg_cv_DBUS_CFLAGS
-	DBUS_LIBS=$pkg_cv_DBUS_LIBS
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-	HAVE_BLUEZ=yes
-fi
-
 fi
 
 
@@ -38286,12 +38193,12 @@
         pkg_cv_LIBXML2_CFLAGS="$LIBXML2_CFLAGS"
     else
         if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libxml-2.0 >= 2.4\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "libxml-2.0 >= 2.4") 2>&5
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libxml-2.0 >= 2.8\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "libxml-2.0 >= 2.8") 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
-  pkg_cv_LIBXML2_CFLAGS=`$PKG_CONFIG --cflags "libxml-2.0 >= 2.4" 2>/dev/null`
+  pkg_cv_LIBXML2_CFLAGS=`$PKG_CONFIG --cflags "libxml-2.0 >= 2.8" 2>/dev/null`
 else
   pkg_failed=yes
 fi
@@ -38304,12 +38211,12 @@
         pkg_cv_LIBXML2_LIBS="$LIBXML2_LIBS"
     else
         if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libxml-2.0 >= 2.4\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "libxml-2.0 >= 2.4") 2>&5
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libxml-2.0 >= 2.8\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "libxml-2.0 >= 2.8") 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
-  pkg_cv_LIBXML2_LIBS=`$PKG_CONFIG --libs "libxml-2.0 >= 2.4" 2>/dev/null`
+  pkg_cv_LIBXML2_LIBS=`$PKG_CONFIG --libs "libxml-2.0 >= 2.8" 2>/dev/null`
 else
   pkg_failed=yes
 fi
@@ -38328,9 +38235,9 @@
         _pkg_short_errors_supported=no
 fi
         if test $_pkg_short_errors_supported = yes; then
-	        LIBXML2_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libxml-2.0 >= 2.4"`
+	        LIBXML2_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libxml-2.0 >= 2.8"`
         else
-	        LIBXML2_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libxml-2.0 >= 2.4"`
+	        LIBXML2_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libxml-2.0 >= 2.8"`
         fi
 	# Put the nasty error message in config.log where it belongs
 	echo "$LIBXML2_PKG_ERRORS" >&5
@@ -44382,12 +44289,12 @@
         pkg_cv_OPENCV_CFLAGS="$OPENCV_CFLAGS"
     else
         if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"opencv >= 2.0.0 opencv < 2.5.0 \""; } >&5
-  ($PKG_CONFIG --exists --print-errors "opencv >= 2.0.0 opencv < 2.5.0 ") 2>&5
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"opencv >= 2.3.0 opencv < 2.5.0 \""; } >&5
+  ($PKG_CONFIG --exists --print-errors "opencv >= 2.3.0 opencv < 2.5.0 ") 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
-  pkg_cv_OPENCV_CFLAGS=`$PKG_CONFIG --cflags "opencv >= 2.0.0 opencv < 2.5.0 " 2>/dev/null`
+  pkg_cv_OPENCV_CFLAGS=`$PKG_CONFIG --cflags "opencv >= 2.3.0 opencv < 2.5.0 " 2>/dev/null`
 else
   pkg_failed=yes
 fi
@@ -44400,12 +44307,12 @@
         pkg_cv_OPENCV_LIBS="$OPENCV_LIBS"
     else
         if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"opencv >= 2.0.0 opencv < 2.5.0 \""; } >&5
-  ($PKG_CONFIG --exists --print-errors "opencv >= 2.0.0 opencv < 2.5.0 ") 2>&5
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"opencv >= 2.3.0 opencv < 2.5.0 \""; } >&5
+  ($PKG_CONFIG --exists --print-errors "opencv >= 2.3.0 opencv < 2.5.0 ") 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
-  pkg_cv_OPENCV_LIBS=`$PKG_CONFIG --libs "opencv >= 2.0.0 opencv < 2.5.0 " 2>/dev/null`
+  pkg_cv_OPENCV_LIBS=`$PKG_CONFIG --libs "opencv >= 2.3.0 opencv < 2.5.0 " 2>/dev/null`
 else
   pkg_failed=yes
 fi
@@ -44424,9 +44331,9 @@
         _pkg_short_errors_supported=no
 fi
         if test $_pkg_short_errors_supported = yes; then
-	        OPENCV_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "opencv >= 2.0.0 opencv < 2.5.0 "`
+	        OPENCV_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "opencv >= 2.3.0 opencv < 2.5.0 "`
         else
-	        OPENCV_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "opencv >= 2.0.0 opencv < 2.5.0 "`
+	        OPENCV_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "opencv >= 2.3.0 opencv < 2.5.0 "`
         fi
 	# Put the nasty error message in config.log where it belongs
 	echo "$OPENCV_PKG_ERRORS" >&5
@@ -44891,6 +44798,37 @@
 
 
 
+  as_ac_File=`$as_echo "ac_cv_file_$OPENCV_PREFIX/share/opencv/" | $as_tr_sh`
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $OPENCV_PREFIX/share/opencv/" >&5
+$as_echo_n "checking for $OPENCV_PREFIX/share/opencv/... " >&6; }
+if eval \${$as_ac_File+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  test "$cross_compiling" = yes &&
+  as_fn_error $? "cannot check for file existence when cross compiling" "$LINENO" 5
+if test -r "$OPENCV_PREFIX/share/opencv/"; then
+  eval "$as_ac_File=yes"
+else
+  eval "$as_ac_File=no"
+fi
+fi
+eval ac_res=\$$as_ac_File
+	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+if eval test \"x\$"$as_ac_File"\" = x"yes"; then :
+
+cat >>confdefs.h <<_ACEOF
+#define OPENCV_PATH_NAME "opencv"
+_ACEOF
+
+else
+
+cat >>confdefs.h <<_ACEOF
+#define OPENCV_PATH_NAME "OpenCV"
+_ACEOF
+
+fi
+
 
 
   LIBS=$gst_check_save_LIBS
@@ -46722,6 +46660,398 @@
 
 
 echo
+{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: Qt elements ***" >&5
+$as_echo "$as_me: *** checking feature: Qt elements ***" >&6;}
+if test "xqt" != "x"
+then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: qt ***" >&5
+$as_echo "$as_me: *** for plug-ins: qt ***" >&6;}
+fi
+NOUSE=
+if test "x$USE_QT" = "xno"; then
+  NOUSE="yes"
+fi
+# Check whether --enable-qt was given.
+if test "${enable_qt+set}" = set; then :
+  enableval=$enable_qt;  case "${enableval}" in
+      yes) USE_QT=yes;;
+      no) USE_QT=no;;
+      *) as_fn_error $? "bad value ${enableval} for --enable-qt" "$LINENO" 5 ;;
+    esac
+else
+   USE_QT=yes
+fi
+
+if test "x$NOUSE" = "xyes"; then
+  USE_QT="no"
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** qt pre-configured not to be built" >&5
+$as_echo "$as_me: WARNING: *** qt pre-configured not to be built" >&2;}
+fi
+NOUSE=
+
+if echo " $GST_PLUGINS_NONPORTED " | tr , ' ' | grep -i " QT " > /dev/null; then
+  USE_QT="no"
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** qt not ported" >&5
+$as_echo "$as_me: WARNING: *** qt not ported" >&2;}
+fi
+
+
+if test x$USE_QT = 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_QT=no
+
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for QT" >&5
+$as_echo_n "checking for QT... " >&6; }
+
+if test -n "$PKG_CONFIG"; then
+    if test -n "$QT_CFLAGS"; then
+        pkg_cv_QT_CFLAGS="$QT_CFLAGS"
+    else
+        if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"Qt5Core Qt5Gui Qt5Quick\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "Qt5Core Qt5Gui Qt5Quick") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_QT_CFLAGS=`$PKG_CONFIG --cflags "Qt5Core Qt5Gui Qt5Quick" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+    fi
+else
+	pkg_failed=untried
+fi
+if test -n "$PKG_CONFIG"; then
+    if test -n "$QT_LIBS"; then
+        pkg_cv_QT_LIBS="$QT_LIBS"
+    else
+        if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"Qt5Core Qt5Gui Qt5Quick\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "Qt5Core Qt5Gui Qt5Quick") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_QT_LIBS=`$PKG_CONFIG --libs "Qt5Core Qt5Gui Qt5Quick" 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
+	        QT_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "Qt5Core Qt5Gui Qt5Quick"`
+        else
+	        QT_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "Qt5Core Qt5Gui Qt5Quick"`
+        fi
+	# Put the nasty error message in config.log where it belongs
+	echo "$QT_PKG_ERRORS" >&5
+
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+      HAVE_QT="no"
+
+elif test $pkg_failed = untried; then
+
+      HAVE_QT="no"
+
+else
+	QT_CFLAGS=$pkg_cv_QT_CFLAGS
+	QT_LIBS=$pkg_cv_QT_LIBS
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+      QT_PATH=`$PKG_CONFIG --variable=exec_prefix Qt5Core`
+      QT_HOST_PATH=`$PKG_CONFIG --variable=host_bins Qt5Core`
+      for ac_prog in moc-qt5 moc
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_MOC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $MOC in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_MOC="$MOC" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in "${QT_HOST_PATH}" "${QT_PATH}/bin"
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_MOC="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+MOC=$ac_cv_path_MOC
+if test -n "$MOC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MOC" >&5
+$as_echo "$MOC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  test -n "$MOC" && break
+done
+test -n "$MOC" || MOC="moc"
+
+      for ac_prog in rcc-qt5 rcc
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_RCC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $RCC in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_RCC="$RCC" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in "${QT_HOST_PATH}" "${QT_PATH}/bin"
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_RCC="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+RCC=$ac_cv_path_RCC
+if test -n "$RCC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RCC" >&5
+$as_echo "$RCC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  test -n "$RCC" && break
+done
+test -n "$RCC" || RCC="rcc"
+
+      for ac_prog in uic-qt5 uic
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_UIC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $UIC in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_UIC="$UIC" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in "${QT_HOST_PATH}" "${QT_PATH}/bin"
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_UIC="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+UIC=$ac_cv_path_UIC
+if test -n "$UIC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $UIC" >&5
+$as_echo "$UIC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  test -n "$UIC" && break
+done
+test -n "$UIC" || UIC="uic"
+
+      if test "x$MOC" = "x" || test "x$UIC" = "x" || test "x$RCC" = "x"; then
+        { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: One of the required qt build programs was not found" >&5
+$as_echo "$as_me: WARNING: One of the required qt build programs was not found" >&2;}
+        HAVE_QT="no"
+      else
+        HAVE_QT="yes"
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for QT_X11" >&5
+$as_echo_n "checking for QT_X11... " >&6; }
+
+if test -n "$PKG_CONFIG"; then
+    if test -n "$QT_X11_CFLAGS"; then
+        pkg_cv_QT_X11_CFLAGS="$QT_X11_CFLAGS"
+    else
+        if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"Qt5X11Extras\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "Qt5X11Extras") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_QT_X11_CFLAGS=`$PKG_CONFIG --cflags "Qt5X11Extras" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+    fi
+else
+	pkg_failed=untried
+fi
+if test -n "$PKG_CONFIG"; then
+    if test -n "$QT_X11_LIBS"; then
+        pkg_cv_QT_X11_LIBS="$QT_X11_LIBS"
+    else
+        if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"Qt5X11Extras\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "Qt5X11Extras") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_QT_X11_LIBS=`$PKG_CONFIG --libs "Qt5X11Extras" 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
+	        QT_X11_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "Qt5X11Extras"`
+        else
+	        QT_X11_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "Qt5X11Extras"`
+        fi
+	# Put the nasty error message in config.log where it belongs
+	echo "$QT_X11_PKG_ERRORS" >&5
+
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+                { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find Qt X11 integration" >&5
+$as_echo "$as_me: Could not find Qt X11 integration" >&6;}
+elif test $pkg_failed = untried; then
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: Could not find Qt X11 integration" >&5
+$as_echo "$as_me: Could not find Qt X11 integration" >&6;}
+else
+	QT_X11_CFLAGS=$pkg_cv_QT_X11_CFLAGS
+	QT_X11_LIBS=$pkg_cv_QT_X11_LIBS
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+
+$as_echo "#define HAVE_QT_X11 /**/" >>confdefs.h
+
+	    QT_CFLAGS="$QT_CFLAGS $QT_X11_CFLAGS"
+            QT_LIBS="$QT_LIBS $QT_X11_LIBS"
+
+
+
+fi
+      fi
+
+fi
+
+
+  LIBS=$gst_check_save_LIBS
+  LDFLAGS=$gst_check_save_LDFLAGS
+  CFLAGS=$gst_check_save_CFLAGS
+  CPPFLAGS=$gst_check_save_CPPFLAGS
+  CXXFLAGS=$gst_check_save_CXXFLAGS
+
+    if test x$HAVE_QT = xno; then
+    USE_QT=no
+  else
+    { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: qt" >&5
+$as_echo "$as_me: *** These plugins will be built: qt" >&6;}
+  fi
+fi
+if test x$USE_QT = xyes; then
+  :
+  if test "xqt" != "x"; then
+    GST_PLUGINS_YES="\tqt\n$GST_PLUGINS_YES"
+  fi
+
+$as_echo "#define HAVE_QT /**/" >>confdefs.h
+
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: qt" >&5
+$as_echo "$as_me: *** These plugins will not be built: qt" >&6;}
+  if test "xqt" != "x"; then
+    GST_PLUGINS_NO="\tqt\n$GST_PLUGINS_NO"
+  fi
+  :
+fi
+ if test x$USE_QT = xyes; then
+  USE_QT_TRUE=
+  USE_QT_FALSE='#'
+else
+  USE_QT_TRUE='#'
+  USE_QT_FALSE=
+fi
+
+
+
+echo
 { $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: libvisual visualization library ***" >&5
 $as_echo "$as_me: *** checking feature: libvisual visualization library ***" >&6;}
 if test "xlibvisual" != "x"
@@ -54567,6 +54897,14 @@
 fi
 
  if false; then
+  USE_QT_TRUE=
+  USE_QT_FALSE='#'
+else
+  USE_QT_TRUE='#'
+  USE_QT_FALSE=
+fi
+
+ if false; then
   USE_LIBVISUAL_TRUE=
   USE_LIBVISUAL_FALSE='#'
 else
@@ -54849,7 +55187,7 @@
 $MKDIR_P tests/check/orc
 
 
-ac_config_files="$ac_config_files Makefile common/Makefile common/m4/Makefile gst-plugins-bad.spec gst/Makefile gst/accurip/Makefile gst/adpcmdec/Makefile gst/adpcmenc/Makefile gst/aiff/Makefile gst/asfmux/Makefile gst/audiofxbad/Makefile gst/audiomixer/Makefile gst/audiovisualizers/Makefile gst/autoconvert/Makefile gst/bayer/Makefile gst/camerabin2/Makefile gst/cdxaparse/Makefile gst/coloreffects/Makefile gst/dataurisrc/Makefile gst/dccp/Makefile gst/debugutils/Makefile gst/dvbsuboverlay/Makefile gst/dvdspu/Makefile gst/faceoverlay/Makefile gst/festival/Makefile gst/fieldanalysis/Makefile gst/freeverb/Makefile gst/frei0r/Makefile gst/gaudieffects/Makefile gst/geometrictransform/Makefile gst/gdp/Makefile gst/hdvparse/Makefile gst/id3tag/Makefile gst/inter/Makefile gst/interlace/Makefile gst/ivfparse/Makefile gst/ivtc/Makefile gst/jp2kdecimator/Makefile gst/jpegformat/Makefile gst/librfb/Makefile gst/liveadder/Makefile gst/midi/Makefile gst/mpegdemux/Makefile gst/mpegtsdemux/Makefile gst/mpegtsmux/Makefile gst/mpegtsmux/tsmux/Makefile gst/mpegpsmux/Makefile gst/mve/Makefile gst/mxf/Makefile gst/nuvdemux/Makefile gst/onvif/Makefile gst/patchdetect/Makefile gst/pcapparse/Makefile gst/pnm/Makefile gst/rawparse/Makefile gst/removesilence/Makefile gst/rtp/Makefile gst/sdi/Makefile gst/sdp/Makefile gst/segmentclip/Makefile gst/siren/Makefile gst/smooth/Makefile gst/speed/Makefile gst/subenc/Makefile gst/stereo/Makefile gst/tta/Makefile gst/videofilters/Makefile gst/videomeasure/Makefile gst/videoparsers/Makefile gst/videosignal/Makefile gst/vmnc/Makefile gst/y4m/Makefile gst/yadif/Makefile gst/compositor/Makefile gst-libs/Makefile gst-libs/gst/Makefile gst-libs/gst/adaptivedemux/Makefile gst-libs/gst/basecamerabinsrc/Makefile gst-libs/gst/gl/Makefile gst-libs/gst/gl/android/Makefile gst-libs/gst/gl/cocoa/Makefile gst-libs/gst/gl/dispmanx/Makefile gst-libs/gst/gl/glprototypes/Makefile gst-libs/gst/gl/eagl/Makefile gst-libs/gst/gl/egl/Makefile gst-libs/gst/gl/wayland/Makefile gst-libs/gst/gl/win32/Makefile gst-libs/gst/gl/x11/Makefile gst-libs/gst/insertbin/Makefile gst-libs/gst/interfaces/Makefile gst-libs/gst/codecparsers/Makefile gst-libs/gst/mpegts/Makefile gst-libs/gst/uridownloader/Makefile gst-libs/gst/wayland/Makefile gst-libs/gst/base/Makefile gst-libs/gst/video/Makefile sys/Makefile sys/dshowdecwrapper/Makefile sys/acmenc/Makefile sys/acmmp3dec/Makefile sys/androidmedia/Makefile sys/applemedia/Makefile sys/applemedia-nonpublic/Makefile sys/avc/Makefile sys/bluez/Makefile sys/d3dvideosink/Makefile sys/decklink/Makefile sys/directsound/Makefile sys/dshowsrcwrapper/Makefile sys/dshowvideosink/Makefile sys/dvb/Makefile sys/fbdev/Makefile sys/linsys/Makefile sys/opensles/Makefile sys/shm/Makefile sys/uvch264/Makefile sys/vcd/Makefile sys/vdpau/Makefile sys/pvr2d/Makefile sys/wasapi/Makefile sys/wininet/Makefile sys/winks/Makefile sys/winscreencap/Makefile tests/Makefile tests/check/Makefile tests/files/Makefile tests/examples/Makefile tests/examples/avsamplesink/Makefile tests/examples/camerabin2/Makefile tests/examples/codecparsers/Makefile tests/examples/directfb/Makefile tests/examples/gl/Makefile tests/examples/gl/cocoa/Makefile tests/examples/gl/clutter/Makefile tests/examples/gl/generic/Makefile tests/examples/gl/generic/cube/Makefile tests/examples/gl/generic/cubeyuv/Makefile tests/examples/gl/generic/doublecube/Makefile tests/examples/gl/generic/recordgraphic/Makefile tests/examples/gl/gtk/Makefile tests/examples/gl/gtk/gtkvideooverlay/Makefile tests/examples/gl/gtk/3dvideo/Makefile tests/examples/gl/gtk/filternovideooverlay/Makefile tests/examples/gl/gtk/filtervideooverlay/Makefile tests/examples/gl/gtk/fxtest/Makefile tests/examples/gl/gtk/switchvideooverlay/Makefile tests/examples/gl/qt/Makefile tests/examples/gl/sdl/Makefile tests/examples/gtk/Makefile tests/examples/mpegts/Makefile tests/examples/mxf/Makefile tests/examples/opencv/Makefile tests/examples/uvch264/Makefile tests/icles/Makefile ext/voamrwbenc/Makefile ext/voaacenc/Makefile ext/assrender/Makefile ext/apexsink/Makefile ext/bs2b/Makefile ext/bz2/Makefile ext/chromaprint/Makefile ext/curl/Makefile ext/dash/Makefile ext/dc1394/Makefile ext/directfb/Makefile ext/wayland/Makefile ext/daala/Makefile ext/dts/Makefile ext/gl/Makefile ext/gtk/Makefile ext/faac/Makefile ext/faad/Makefile ext/flite/Makefile ext/fluidsynth/Makefile ext/gsm/Makefile ext/hls/Makefile ext/kate/Makefile ext/ladspa/Makefile ext/lv2/Makefile ext/libde265/Makefile ext/libmms/Makefile ext/libvisual/Makefile ext/Makefile ext/modplug/Makefile ext/mpeg2enc/Makefile ext/mpg123/Makefile ext/mimic/Makefile ext/mplex/Makefile ext/musepack/Makefile ext/nas/Makefile ext/neon/Makefile ext/ofa/Makefile ext/openal/Makefile ext/opencv/Makefile ext/openexr/Makefile ext/openh264/Makefile ext/openjpeg/Makefile ext/openni2/Makefile ext/opus/Makefile ext/rsvg/Makefile ext/resindvd/Makefile ext/rtmp/Makefile ext/sbc/Makefile ext/schroedinger/Makefile ext/sdl/Makefile ext/smoothstreaming/Makefile ext/sndfile/Makefile ext/soundtouch/Makefile ext/spandsp/Makefile ext/sndio/Makefile ext/srtp/Makefile ext/teletextdec/Makefile ext/gme/Makefile ext/gsettings/Makefile ext/gsettings/org.freedesktop.gstreamer.default-elements.gschema.xml ext/spc/Makefile ext/timidity/Makefile ext/webp/Makefile ext/x265/Makefile ext/xvid/Makefile ext/zbar/Makefile ext/dtls/Makefile po/Makefile.in docs/Makefile docs/plugins/Makefile docs/libs/Makefile docs/version.entities pkgconfig/Makefile pkgconfig/gstreamer-plugins-bad.pc pkgconfig/gstreamer-plugins-bad-uninstalled.pc pkgconfig/gstreamer-codecparsers.pc pkgconfig/gstreamer-codecparsers-uninstalled.pc pkgconfig/gstreamer-insertbin.pc pkgconfig/gstreamer-insertbin-uninstalled.pc pkgconfig/gstreamer-gl.pc pkgconfig/gstreamer-gl-uninstalled.pc pkgconfig/gstreamer-mpegts.pc pkgconfig/gstreamer-mpegts-uninstalled.pc pkgconfig/gstreamer-wayland.pc pkgconfig/gstreamer-wayland-uninstalled.pc pkgconfig/gstreamer-bad-base.pc pkgconfig/gstreamer-bad-base-uninstalled.pc pkgconfig/gstreamer-bad-video.pc pkgconfig/gstreamer-bad-video-uninstalled.pc tools/Makefile m4/Makefile"
+ac_config_files="$ac_config_files Makefile common/Makefile common/m4/Makefile gst-plugins-bad.spec gst/Makefile gst/accurip/Makefile gst/adpcmdec/Makefile gst/adpcmenc/Makefile gst/aiff/Makefile gst/asfmux/Makefile gst/audiofxbad/Makefile gst/audiomixer/Makefile gst/audiovisualizers/Makefile gst/autoconvert/Makefile gst/bayer/Makefile gst/camerabin2/Makefile gst/cdxaparse/Makefile gst/coloreffects/Makefile gst/dataurisrc/Makefile gst/dccp/Makefile gst/debugutils/Makefile gst/dvbsuboverlay/Makefile gst/dvdspu/Makefile gst/faceoverlay/Makefile gst/festival/Makefile gst/fieldanalysis/Makefile gst/freeverb/Makefile gst/frei0r/Makefile gst/gaudieffects/Makefile gst/geometrictransform/Makefile gst/gdp/Makefile gst/hdvparse/Makefile gst/id3tag/Makefile gst/inter/Makefile gst/interlace/Makefile gst/ivfparse/Makefile gst/ivtc/Makefile gst/jp2kdecimator/Makefile gst/jpegformat/Makefile gst/librfb/Makefile gst/liveadder/Makefile gst/midi/Makefile gst/mpegdemux/Makefile gst/mpegtsdemux/Makefile gst/mpegtsmux/Makefile gst/mpegtsmux/tsmux/Makefile gst/mpegpsmux/Makefile gst/mve/Makefile gst/mxf/Makefile gst/nuvdemux/Makefile gst/onvif/Makefile gst/patchdetect/Makefile gst/pcapparse/Makefile gst/pnm/Makefile gst/rawparse/Makefile gst/removesilence/Makefile gst/rtp/Makefile gst/sdi/Makefile gst/sdp/Makefile gst/segmentclip/Makefile gst/siren/Makefile gst/smooth/Makefile gst/speed/Makefile gst/subenc/Makefile gst/stereo/Makefile gst/tta/Makefile gst/videofilters/Makefile gst/videomeasure/Makefile gst/videoparsers/Makefile gst/videosignal/Makefile gst/vmnc/Makefile gst/y4m/Makefile gst/yadif/Makefile gst/compositor/Makefile gst-libs/Makefile gst-libs/gst/Makefile gst-libs/gst/adaptivedemux/Makefile gst-libs/gst/basecamerabinsrc/Makefile gst-libs/gst/gl/Makefile gst-libs/gst/gl/android/Makefile gst-libs/gst/gl/cocoa/Makefile gst-libs/gst/gl/dispmanx/Makefile gst-libs/gst/gl/glprototypes/Makefile gst-libs/gst/gl/eagl/Makefile gst-libs/gst/gl/egl/Makefile gst-libs/gst/gl/wayland/Makefile gst-libs/gst/gl/win32/Makefile gst-libs/gst/gl/x11/Makefile gst-libs/gst/insertbin/Makefile gst-libs/gst/interfaces/Makefile gst-libs/gst/codecparsers/Makefile gst-libs/gst/mpegts/Makefile gst-libs/gst/uridownloader/Makefile gst-libs/gst/wayland/Makefile gst-libs/gst/base/Makefile gst-libs/gst/video/Makefile sys/Makefile sys/dshowdecwrapper/Makefile sys/acmenc/Makefile sys/acmmp3dec/Makefile sys/androidmedia/Makefile sys/applemedia/Makefile sys/applemedia-nonpublic/Makefile sys/avc/Makefile sys/bluez/Makefile sys/d3dvideosink/Makefile sys/decklink/Makefile sys/directsound/Makefile sys/dshowsrcwrapper/Makefile sys/dshowvideosink/Makefile sys/dvb/Makefile sys/fbdev/Makefile sys/linsys/Makefile sys/opensles/Makefile sys/shm/Makefile sys/uvch264/Makefile sys/vcd/Makefile sys/vdpau/Makefile sys/pvr2d/Makefile sys/wasapi/Makefile sys/wininet/Makefile sys/winks/Makefile sys/winscreencap/Makefile tests/Makefile tests/check/Makefile tests/files/Makefile tests/examples/Makefile tests/examples/avsamplesink/Makefile tests/examples/camerabin2/Makefile tests/examples/codecparsers/Makefile tests/examples/directfb/Makefile tests/examples/gl/Makefile tests/examples/gl/cocoa/Makefile tests/examples/gl/clutter/Makefile tests/examples/gl/generic/Makefile tests/examples/gl/generic/cube/Makefile tests/examples/gl/generic/cubeyuv/Makefile tests/examples/gl/generic/doublecube/Makefile tests/examples/gl/generic/recordgraphic/Makefile tests/examples/gl/gtk/Makefile tests/examples/gl/gtk/gtkvideooverlay/Makefile tests/examples/gl/gtk/3dvideo/Makefile tests/examples/gl/gtk/filternovideooverlay/Makefile tests/examples/gl/gtk/filtervideooverlay/Makefile tests/examples/gl/gtk/fxtest/Makefile tests/examples/gl/gtk/switchvideooverlay/Makefile tests/examples/gl/qt/Makefile tests/examples/gl/sdl/Makefile tests/examples/gtk/Makefile tests/examples/mpegts/Makefile tests/examples/mxf/Makefile tests/examples/opencv/Makefile tests/examples/uvch264/Makefile tests/icles/Makefile ext/voamrwbenc/Makefile ext/voaacenc/Makefile ext/assrender/Makefile ext/apexsink/Makefile ext/bs2b/Makefile ext/bz2/Makefile ext/chromaprint/Makefile ext/curl/Makefile ext/dash/Makefile ext/dc1394/Makefile ext/directfb/Makefile ext/wayland/Makefile ext/daala/Makefile ext/dts/Makefile ext/gl/Makefile ext/gtk/Makefile ext/faac/Makefile ext/faad/Makefile ext/flite/Makefile ext/fluidsynth/Makefile ext/gsm/Makefile ext/hls/Makefile ext/kate/Makefile ext/ladspa/Makefile ext/lv2/Makefile ext/libde265/Makefile ext/libmms/Makefile ext/libvisual/Makefile ext/Makefile ext/modplug/Makefile ext/mpeg2enc/Makefile ext/mpg123/Makefile ext/mimic/Makefile ext/mplex/Makefile ext/musepack/Makefile ext/nas/Makefile ext/neon/Makefile ext/ofa/Makefile ext/openal/Makefile ext/opencv/Makefile ext/openexr/Makefile ext/openh264/Makefile ext/openjpeg/Makefile ext/openni2/Makefile ext/opus/Makefile ext/qt/Makefile ext/rsvg/Makefile ext/resindvd/Makefile ext/rtmp/Makefile ext/sbc/Makefile ext/schroedinger/Makefile ext/sdl/Makefile ext/smoothstreaming/Makefile ext/sndfile/Makefile ext/soundtouch/Makefile ext/spandsp/Makefile ext/sndio/Makefile ext/srtp/Makefile ext/teletextdec/Makefile ext/gme/Makefile ext/gsettings/Makefile ext/gsettings/org.freedesktop.gstreamer.default-elements.gschema.xml ext/spc/Makefile ext/timidity/Makefile ext/webp/Makefile ext/x265/Makefile ext/xvid/Makefile ext/zbar/Makefile ext/dtls/Makefile po/Makefile.in docs/Makefile docs/plugins/Makefile docs/libs/Makefile docs/version.entities pkgconfig/Makefile pkgconfig/gstreamer-plugins-bad.pc pkgconfig/gstreamer-plugins-bad-uninstalled.pc pkgconfig/gstreamer-codecparsers.pc pkgconfig/gstreamer-codecparsers-uninstalled.pc pkgconfig/gstreamer-insertbin.pc pkgconfig/gstreamer-insertbin-uninstalled.pc pkgconfig/gstreamer-gl.pc pkgconfig/gstreamer-gl-uninstalled.pc pkgconfig/gstreamer-mpegts.pc pkgconfig/gstreamer-mpegts-uninstalled.pc pkgconfig/gstreamer-wayland.pc pkgconfig/gstreamer-wayland-uninstalled.pc pkgconfig/gstreamer-bad-base.pc pkgconfig/gstreamer-bad-base-uninstalled.pc pkgconfig/gstreamer-bad-video.pc pkgconfig/gstreamer-bad-video-uninstalled.pc tools/Makefile m4/Makefile"
 
 
 sed \
@@ -55864,6 +56202,10 @@
   as_fn_error $? "conditional \"USE_GTK3_GL\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
+if test -z "${USE_QT_TRUE}" && test -z "${USE_QT_FALSE}"; then
+  as_fn_error $? "conditional \"USE_QT\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
 if test -z "${USE_LIBVISUAL_TRUE}" && test -z "${USE_LIBVISUAL_FALSE}"; then
   as_fn_error $? "conditional \"USE_LIBVISUAL\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -56168,6 +56510,10 @@
   as_fn_error $? "conditional \"USE_PVR\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
+if test -z "${USE_QT_TRUE}" && test -z "${USE_QT_FALSE}"; then
+  as_fn_error $? "conditional \"USE_QT\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
 if test -z "${USE_LIBVISUAL_TRUE}" && test -z "${USE_LIBVISUAL_FALSE}"; then
   as_fn_error $? "conditional \"USE_LIBVISUAL\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -56681,7 +57027,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by GStreamer Bad Plug-ins $as_me 1.5.2, which was
+This file was extended by GStreamer Bad Plug-ins $as_me 1.5.90, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -56747,7 +57093,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 Bad Plug-ins config.status 1.5.2
+GStreamer Bad Plug-ins config.status 1.5.90
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
@@ -57486,6 +57832,7 @@
     "ext/openjpeg/Makefile") CONFIG_FILES="$CONFIG_FILES ext/openjpeg/Makefile" ;;
     "ext/openni2/Makefile") CONFIG_FILES="$CONFIG_FILES ext/openni2/Makefile" ;;
     "ext/opus/Makefile") CONFIG_FILES="$CONFIG_FILES ext/opus/Makefile" ;;
+    "ext/qt/Makefile") CONFIG_FILES="$CONFIG_FILES ext/qt/Makefile" ;;
     "ext/rsvg/Makefile") CONFIG_FILES="$CONFIG_FILES ext/rsvg/Makefile" ;;
     "ext/resindvd/Makefile") CONFIG_FILES="$CONFIG_FILES ext/resindvd/Makefile" ;;
     "ext/rtmp/Makefile") CONFIG_FILES="$CONFIG_FILES ext/rtmp/Makefile" ;;
diff --git a/configure.ac b/configure.ac
index 59566d4..2f1f8e0 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3,7 +3,7 @@
 dnl initialize autoconf
 dnl when going to/from release please set the nano (fourth number) right !
 dnl releases only do Wall, git and prerelease does Werror too
-AC_INIT([GStreamer Bad Plug-ins],[1.5.2],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gst-plugins-bad])
+AC_INIT([GStreamer Bad Plug-ins],[1.5.90],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gst-plugins-bad])
 
 AG_GST_INIT
 
@@ -48,11 +48,11 @@
 dnl - interfaces added -> increment AGE
 dnl - interfaces removed -> AGE = 0
 dnl sets GST_LT_LDFLAGS
-AS_LIBTOOL(GST, 502, 0, 502)
+AS_LIBTOOL(GST, 590, 0, 590)
 
 dnl *** required versions of GStreamer stuff ***
-GST_REQ=1.5.2
-GSTPB_REQ=1.5.2
+GST_REQ=1.5.90
+GSTPB_REQ=1.5.90
 
 dnl *** autotools stuff ****
 
@@ -805,14 +805,14 @@
 #ifndef GL_GLEXT_PROTOTYPES
 #define GL_GLEXT_PROTOTYPES 1
 #endif
-# ifdef __APPLE__
+# ifdef HAVE_IOS
 #  include <OpenGLES/ES2/gl.h>
 #  include <OpenGLES/ES2/glext.h>
 # else
 #  include <GLES2/gl2.h>
 #  include <GLES2/gl2ext.h>
 # endif
-# if __APPLE__
+# ifdef __APPLE__
 #  include <OpenGL/OpenGL.h>
 #  include <OpenGL/gl.h>
 #  if MAC_OS_X_VERSION_MAX_ALLOWED >= 1070
@@ -999,12 +999,6 @@
       if test "x$NEED_WGL" = "xyes"; then
         AC_MSG_ERROR([WGL is not available on Mac OS X])
       fi
-      if test "x$NEED_EGL" = "xyes"; then
-        AC_MSG_ERROR([EGL is not available on Mac OS X])
-      fi
-      if test "x$NEED_GLES2" = "xyes"; then
-        AC_MSG_ERROR([OpenGL|ES 2.0 is not supported on your platform yet])
-      fi
 
       if test "x$NEED_COCOA" != "xno"; then
         GL_LIBS="$LIBS -framework OpenGL -framework Cocoa -framework QuartzCore -framework CoreFoundation"
@@ -1030,6 +1024,24 @@
           USE_OPENGL=yes
         fi
       fi
+
+      if test "x$HAVE_EGL" = "xyes"; then
+        if test "x$NEED_EGL" != "xno"; then
+          if test "x$HAVE_WINDOW_X11" = "xyes"; then
+            GL_LIBS="$GL_LIBS -lEGL $EGL_LIBS"
+            GL_CFLAGS="$GL_CFLAGS $EGL_CFLAGS"
+            USE_EGL=yes
+          fi
+        fi
+      fi
+
+      dnl OpenGL|ES 2.0
+      if test "x$HAVE_GLES2" = "xyes"; then
+        if test "x$NEED_GLES2" != "xno"; then
+          GL_LIBS="$GL_LIBS -lGLESv2"
+          USE_GLES2=yes
+        fi
+      fi
     fi
     ;;
   *-mingw32*)
@@ -1237,7 +1249,7 @@
 #ifndef GL_GLEXT_PROTOTYPES
 #define GL_GLEXT_PROTOTYPES 1
 #endif
-# ifdef __APPLE__
+# ifdef HAVE_IOS
 #  include <OpenGLES/ES2/gl.h>
 #  include <OpenGLES/ES2/glext.h>
 # else
@@ -1249,7 +1261,7 @@
 
 if test "x$USE_OPENGL" = "xyes"; then
   GL_INCLUDES="$GL_INCLUDES
-# if __APPLE__
+# ifdef __APPLE__
 #  include <OpenGL/OpenGL.h>
 #  include <OpenGL/gl.h>
 # else
@@ -1615,20 +1627,16 @@
 dnl *** bluez ***
 translit(dnm, m, l) AM_CONDITIONAL(USE_BLUEZ, true)
 AG_GST_CHECK_FEATURE(BLUEZ, [Bluez], bluez, [
-  PKG_CHECK_MODULES([BLUEZ4], [bluez < 5.0], [
-    HAVE_BLUEZ=yes
-    AC_DEFINE(HAVE_BLUEZ4,[1],[Old bluez detected])
-  ], [
-    PKG_CHECK_MODULES([BLUEZ5], [bluez >= 5.0], [
+  PKG_CHECK_MODULES([BLUEZ5], [bluez >= 5.0], [
+    PKG_CHECK_MODULES([GIO_UNIX], gio-unix-2.0 > 2.24, [
+      AC_CHECK_PROG([GDBUS_CODEGEN],[gdbus-codegen],[gdbus-codegen])
       HAVE_BLUEZ=yes
-      AC_DEFINE(HAVE_BLUEZ5,[1],[Current bluez detected])
+      AC_DEFINE(HAVE_BLUEZ5,[1],[Bluez5 detected])
     ], [
       HAVE_BLUEZ=no
     ])
-  ])
-  AS_IF([ test x$HAVE_BLUEZ = xyes ],[
-    dnl FIXME: we should be able to replace this with the GLib DBus stuff
-    PKG_CHECK_MODULES([DBUS], [dbus-1], [HAVE_BLUEZ=yes], [HAVE_BLUEZ=no])
+  ], [
+    HAVE_BLUEZ=no
   ])
 ])
 
@@ -1838,7 +1846,7 @@
 dnl **** DASH ****
 translit(dnm, m, l) AM_CONDITIONAL(USE_DASH, true)
 AG_GST_CHECK_FEATURE(DASH, [DASH plug-in], dash, [
-  PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= 2.4, [HAVE_LIBXML2="yes"
+  PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= 2.8, [HAVE_LIBXML2="yes"
     HAVE_DASH="yes"], [HAVE_LIBXML2="no"
     HAVE_DASH="no"])
   AC_SUBST(LIBXML2_CFLAGS)
@@ -2445,7 +2453,7 @@
   dnl a new version and the no-backward-compatibility define. (There doesn't
   dnl seem to be a switch to suppress the warnings the cvcompat.h header
   dnl causes.)
-  PKG_CHECK_MODULES(OPENCV, opencv >= 2.0.0 opencv < 2.5.0 , [
+  PKG_CHECK_MODULES(OPENCV, opencv >= 2.3.0 opencv < 2.5.0 , [
     AC_PROG_CXX
     AC_LANG([C++])
     OLD_CPPFLAGS=$CPPFLAGS
@@ -2479,6 +2487,9 @@
   AC_SUBST(OPENCV_PREFIX)
   AC_SUBST(OPENCV_CFLAGS)
   AC_SUBST(OPENCV_LIBS)
+  AC_CHECK_FILE([$OPENCV_PREFIX/share/opencv/],
+              [AC_DEFINE_UNQUOTED(OPENCV_PATH_NAME, ["opencv"], [OpenCV path name])],
+              [AC_DEFINE_UNQUOTED(OPENCV_PATH_NAME, ["OpenCV"], [OpenCV path name])])
 ])
 
 dnl *** OpenEXR ***
@@ -2606,6 +2617,33 @@
 ])
 AM_CONDITIONAL(USE_GTK3_GL, test "x$HAVE_GTK3_GL" = "xyes")
 
+dnl *** Qt ***
+translit(dnm, m, l) AM_CONDITIONAL(USE_QT, true)
+AG_GST_CHECK_FEATURE(QT, [Qt elements], qt, [
+  PKG_CHECK_MODULES(QT, Qt5Core Qt5Gui Qt5Quick, [
+      QT_PATH=`$PKG_CONFIG --variable=exec_prefix Qt5Core`
+      QT_HOST_PATH=`$PKG_CONFIG --variable=host_bins Qt5Core`
+      AC_PATH_PROGS(MOC, [moc-qt5 moc], moc, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
+      AC_PATH_PROGS(RCC, [rcc-qt5 rcc], rcc, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
+      AC_PATH_PROGS(UIC, [uic-qt5 uic], uic, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
+      if test "x$MOC" = "x" || test "x$UIC" = "x" || test "x$RCC" = "x"; then
+        AC_MSG_WARN([One of the required qt build programs was not found])
+        HAVE_QT="no"
+      else
+        HAVE_QT="yes"
+        PKG_CHECK_MODULES(QT_X11, Qt5X11Extras, [
+	AC_DEFINE([HAVE_QT_X11], [], [Define if Qt X11 integration is installed])
+	    QT_CFLAGS="$QT_CFLAGS $QT_X11_CFLAGS"
+            QT_LIBS="$QT_LIBS $QT_X11_LIBS"
+            AC_SUBST([QT_CFLAGS])
+            AC_SUBST([QT_LIBS])
+        ], [AC_MSG_NOTICE([Could not find Qt X11 integration])])
+      fi
+  ], [
+      HAVE_QT="no"
+  ])
+])
+
 dnl *** libvisual ***
 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBVISUAL, true)
 AG_GST_CHECK_FEATURE(LIBVISUAL, [libvisual visualization library], libvisual, [
@@ -3036,6 +3074,7 @@
 AM_CONDITIONAL(USE_OPENNI2, false)
 AM_CONDITIONAL(USE_OPUS, false)
 AM_CONDITIONAL(USE_PVR, false)
+AM_CONDITIONAL(USE_QT, false)
 AM_CONDITIONAL(USE_LIBVISUAL, false)
 AM_CONDITIONAL(USE_TIMIDITY, false)
 AM_CONDITIONAL(USE_WILDMIDI, false)
@@ -3343,6 +3382,7 @@
 ext/openjpeg/Makefile
 ext/openni2/Makefile
 ext/opus/Makefile
+ext/qt/Makefile
 ext/rsvg/Makefile
 ext/resindvd/Makefile
 ext/rtmp/Makefile
diff --git a/depcomp b/depcomp
index 4ebd5b3..fc98710 100755
--- a/depcomp
+++ b/depcomp
@@ -3,7 +3,7 @@
 
 scriptversion=2013-05-30.07; # UTC
 
-# Copyright (C) 1999-2013 Free Software Foundation, Inc.
+# Copyright (C) 1999-2014 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
diff --git a/docs/Makefile.in b/docs/Makefile.in
index 88d5a27..3d49d1f 100644
--- a/docs/Makefile.in
+++ b/docs/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -14,7 +14,17 @@
 
 @SET_MAKE@
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -79,8 +89,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = docs
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(srcdir)/version.entities.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -118,6 +126,7 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES = version.entities
@@ -176,6 +185,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/version.entities.in
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 am__relativize = \
   dir0=`pwd`; \
@@ -218,8 +228,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -248,8 +256,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -297,11 +303,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -485,6 +494,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -563,7 +573,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -603,6 +618,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -735,7 +751,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu docs/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1032,6 +1047,8 @@
 	mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
 	ps ps-am tags tags-am uninstall uninstall-am
 
+.PRECIOUS: Makefile
+
 
 upload:
 	@if test "x$(SUBDIRS)" != x; then for a in $(SUBDIRS); do cd $$a; make upload; cd ..; done; fi
diff --git a/docs/libs/Makefile.in b/docs/libs/Makefile.in
index 0b41d63..37cdb3f 100644
--- a/docs/libs/Makefile.in
+++ b/docs/libs/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -33,7 +33,17 @@
 ###########################################################################
 # thomas: except of course that we did
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -97,9 +107,6 @@
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
-DIST_COMMON = $(top_srcdir)/common/upload-doc.mak \
-	$(top_srcdir)/common/gtk-doc.mak $(srcdir)/Makefile.in \
-	$(srcdir)/Makefile.am
 subdir = docs/libs
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
@@ -138,6 +145,7 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -162,6 +170,9 @@
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+am__DIST_COMMON = $(srcdir)/Makefile.in \
+	$(top_srcdir)/common/gtk-doc.mak \
+	$(top_srcdir)/common/upload-doc.mak
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -179,8 +190,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -209,8 +218,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -258,11 +265,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -446,6 +456,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -524,7 +535,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -564,6 +580,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -800,7 +817,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/libs/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu docs/libs/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -809,7 +825,7 @@
 	    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/upload-doc.mak $(top_srcdir)/common/gtk-doc.mak:
+$(top_srcdir)/common/upload-doc.mak $(top_srcdir)/common/gtk-doc.mak $(am__empty):
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -981,6 +997,8 @@
 	mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \
 	uninstall-am uninstall-local
 
+.PRECIOUS: Makefile
+
 html: html-build.stamp
 
 upload: $(FORMATS)
diff --git a/docs/libs/html/GstGLContext.html b/docs/libs/html/GstGLContext.html
index aee4eaa..6e46b7f 100644
--- a/docs/libs/html/GstGLContext.html
+++ b/docs/libs/html/GstGLContext.html
@@ -811,7 +811,8 @@
 <div class="refsect2">
 <a name="gst-gl-context-get-current-gl-api"></a><h3>gst_gl_context_get_current_gl_api ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-bad-libs-GstGLAPI.html#GstGLAPI" title="enum GstGLAPI"><span class="returnvalue">GstGLAPI</span></a>
-gst_gl_context_get_current_gl_api (<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>,
+gst_gl_context_get_current_gl_api (<em class="parameter"><code><a class="link" href="gst-plugins-bad-libs-GstGLAPI.html#GstGLPlatform" title="enum GstGLPlatform"><span class="type">GstGLPlatform</span></a> platform</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> *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>);</pre>
 <p>If an error occurs, <em class="parameter"><code>major</code></em>
  and <em class="parameter"><code>minor</code></em>
@@ -827,6 +828,11 @@
 </colgroup>
 <tbody>
 <tr>
+<td class="parameter_name"><p>platform</p></td>
+<td class="parameter_description"><p>the <a class="link" href="gst-plugins-bad-libs-GstGLAPI.html#GstGLPlatform" title="enum GstGLPlatform"><span class="type">GstGLPlatform</span></a> to retreive the API for</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
 <td class="parameter_name"><p>major</p></td>
 <td class="parameter_description"><p> (allow-none): the major 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>]</span></td>
@@ -880,8 +886,9 @@
 <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_gl_context_can_share (<em class="parameter"><code><a class="link" href="GstGLContext.html" title="GstGLContext"><span class="type">GstGLContext</span></a> *context</code></em>,
                           <em class="parameter"><code><a class="link" href="GstGLContext.html" title="GstGLContext"><span class="type">GstGLContext</span></a> *other_context</code></em>);</pre>
+<p>Note: This will always fail for two wrapped <a class="link" href="GstGLContext.html" title="GstGLContext"><span class="type">GstGLContext</span></a>'s</p>
 <div class="refsect3">
-<a name="id-1.2.9.5.7.22.4"></a><h4>Parameters</h4>
+<a name="id-1.2.9.5.7.22.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -903,7 +910,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.5.7.22.5"></a><h4>Returns</h4>
+<a name="id-1.2.9.5.7.22.6"></a><h4>Returns</h4>
 <p> whether <em class="parameter"><code>context</code></em>
 and <em class="parameter"><code>other_context</code></em>
 are able to share OpenGL
diff --git a/docs/libs/html/gst-plugins-bad-libs-1.0.devhelp2 b/docs/libs/html/gst-plugins-bad-libs-1.0.devhelp2
index ca3e3c0..8cb0c8b 100644
--- a/docs/libs/html/gst-plugins-bad-libs-1.0.devhelp2
+++ b/docs/libs/html/gst-plugins-bad-libs-1.0.devhelp2
@@ -778,8 +778,10 @@
     <keyword type="constant" name="GST_H264_NAL_SPS_EXT" link="gst-plugins-bad-libs-h264parser.html#GST-H264-NAL-SPS-EXT:CAPS"/>
     <keyword type="constant" name="GST_H264_NAL_PREFIX_UNIT" link="gst-plugins-bad-libs-h264parser.html#GST-H264-NAL-PREFIX-UNIT:CAPS"/>
     <keyword type="constant" name="GST_H264_NAL_SUBSET_SPS" link="gst-plugins-bad-libs-h264parser.html#GST-H264-NAL-SUBSET-SPS:CAPS"/>
+    <keyword type="constant" name="GST_H264_NAL_DEPTH_SPS" link="gst-plugins-bad-libs-h264parser.html#GST-H264-NAL-DEPTH-SPS:CAPS"/>
     <keyword type="constant" name="GST_H264_NAL_SLICE_AUX" link="gst-plugins-bad-libs-h264parser.html#GST-H264-NAL-SLICE-AUX:CAPS"/>
     <keyword type="constant" name="GST_H264_NAL_SLICE_EXT" link="gst-plugins-bad-libs-h264parser.html#GST-H264-NAL-SLICE-EXT:CAPS"/>
+    <keyword type="constant" name="GST_H264_NAL_SLICE_DEPTH" link="gst-plugins-bad-libs-h264parser.html#GST-H264-NAL-SLICE-DEPTH:CAPS"/>
     <keyword type="constant" name="GST_H264_PARSER_OK" link="gst-plugins-bad-libs-h264parser.html#GST-H264-PARSER-OK:CAPS"/>
     <keyword type="constant" name="GST_H264_PARSER_BROKEN_DATA" link="gst-plugins-bad-libs-h264parser.html#GST-H264-PARSER-BROKEN-DATA:CAPS"/>
     <keyword type="constant" name="GST_H264_PARSER_BROKEN_LINK" link="gst-plugins-bad-libs-h264parser.html#GST-H264-PARSER-BROKEN-LINK:CAPS"/>
diff --git a/docs/libs/html/gst-plugins-bad-libs-GstAggregatorPad.html b/docs/libs/html/gst-plugins-bad-libs-GstAggregatorPad.html
index c51a323..11dcb33 100644
--- a/docs/libs/html/gst-plugins-bad-libs-GstAggregatorPad.html
+++ b/docs/libs/html/gst-plugins-bad-libs-GstAggregatorPad.html
@@ -200,6 +200,8 @@
 
   /* Protected by the OBJECT_LOCK */
   GstSegment segment;
+  /* Segment to use in the clip function, before the queue */
+  GstSegment clip_segment;
 
   /* &lt; Private &gt; */
   GstAggregatorPadPrivate   *  priv;
@@ -228,6 +230,11 @@
 <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/GstSegment.html"><span class="type">GstSegment</span></a> <em class="structfield"><code><a name="GstAggregatorPad.clip-segment"></a>clip_segment</code></em>;</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
 <td class="struct_member_name"><p><span class="type">GstAggregatorPadPrivate</span> *<em class="structfield"><code><a name="GstAggregatorPad.priv"></a>priv</code></em>;</p></td>
 <td> </td>
 <td> </td>
diff --git a/docs/libs/html/gst-plugins-bad-libs-GstGLContextCocoa.html b/docs/libs/html/gst-plugins-bad-libs-GstGLContextCocoa.html
index f94c47c..9788806 100644
--- a/docs/libs/html/gst-plugins-bad-libs-GstGLContextCocoa.html
+++ b/docs/libs/html/gst-plugins-bad-libs-GstGLContextCocoa.html
@@ -87,7 +87,7 @@
 <div class="refsect2">
 <a name="gst-gl-context-cocoa-new"></a><h3>gst_gl_context_cocoa_new ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-bad-libs-GstGLContextCocoa.html#GstGLContextCocoa" title="struct GstGLContextCocoa"><span class="returnvalue">GstGLContextCocoa</span></a> *
-gst_gl_context_cocoa_new (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+gst_gl_context_cocoa_new (<em class="parameter"><code><a class="link" href="GstGLDisplay.html" title="GstGLDisplay"><span class="type">GstGLDisplay</span></a> *display</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
diff --git a/docs/libs/html/gst-plugins-bad-libs-GstGLContextEGL.html b/docs/libs/html/gst-plugins-bad-libs-GstGLContextEGL.html
index f3d7847..dba0218 100644
--- a/docs/libs/html/gst-plugins-bad-libs-GstGLContextEGL.html
+++ b/docs/libs/html/gst-plugins-bad-libs-GstGLContextEGL.html
@@ -87,7 +87,7 @@
 <div class="refsect2">
 <a name="gst-gl-context-egl-new"></a><h3>gst_gl_context_egl_new ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-bad-libs-GstGLContextEGL.html#GstGLContextEGL" title="struct GstGLContextEGL"><span class="returnvalue">GstGLContextEGL</span></a> *
-gst_gl_context_egl_new (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+gst_gl_context_egl_new (<em class="parameter"><code><a class="link" href="GstGLDisplay.html" title="GstGLDisplay"><span class="type">GstGLDisplay</span></a> *display</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
@@ -100,7 +100,7 @@
 <div class="refsect2">
 <a name="gst-gl-context-egl-get-proc-address"></a><h3>gst_gl_context_egl_get_proc_address ()</h3>
 <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="returnvalue">gpointer</span></a>
-gst_gl_context_egl_get_proc_address (<em class="parameter"><code><a class="link" href="GstGLContext.html" title="GstGLContext"><span class="type">GstGLContext</span></a> *context</code></em>,
+gst_gl_context_egl_get_proc_address (<em class="parameter"><code><a class="link" href="gst-plugins-bad-libs-GstGLAPI.html#GstGLAPI" title="enum GstGLAPI"><span class="type">GstGLAPI</span></a> gl_api</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> *name</code></em>);</pre>
 </div>
 </div>
diff --git a/docs/libs/html/gst-plugins-bad-libs-GstGLContextEagl.html b/docs/libs/html/gst-plugins-bad-libs-GstGLContextEagl.html
index 387c870..e1ec5cb 100644
--- a/docs/libs/html/gst-plugins-bad-libs-GstGLContextEagl.html
+++ b/docs/libs/html/gst-plugins-bad-libs-GstGLContextEagl.html
@@ -79,7 +79,7 @@
 <div class="refsect2">
 <a name="gst-gl-context-eagl-new"></a><h3>gst_gl_context_eagl_new ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-bad-libs-GstGLContextEagl.html#GstGLContextEagl" title="struct GstGLContextEagl"><span class="returnvalue">GstGLContextEagl</span></a> *
-gst_gl_context_eagl_new (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+gst_gl_context_eagl_new (<em class="parameter"><code><a class="link" href="GstGLDisplay.html" title="GstGLDisplay"><span class="type">GstGLDisplay</span></a> *display</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
diff --git a/docs/libs/html/gst-plugins-bad-libs-GstGLContextGLX.html b/docs/libs/html/gst-plugins-bad-libs-GstGLContextGLX.html
index 89021c4..008da55 100644
--- a/docs/libs/html/gst-plugins-bad-libs-GstGLContextGLX.html
+++ b/docs/libs/html/gst-plugins-bad-libs-GstGLContextGLX.html
@@ -87,7 +87,7 @@
 <div class="refsect2">
 <a name="gst-gl-context-glx-new"></a><h3>gst_gl_context_glx_new ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-bad-libs-GstGLContextGLX.html#GstGLContextGLX" title="struct GstGLContextGLX"><span class="returnvalue">GstGLContextGLX</span></a> *
-gst_gl_context_glx_new (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+gst_gl_context_glx_new (<em class="parameter"><code><a class="link" href="GstGLDisplay.html" title="GstGLDisplay"><span class="type">GstGLDisplay</span></a> *display</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
@@ -100,7 +100,7 @@
 <div class="refsect2">
 <a name="gst-gl-context-glx-get-proc-address"></a><h3>gst_gl_context_glx_get_proc_address ()</h3>
 <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="returnvalue">gpointer</span></a>
-gst_gl_context_glx_get_proc_address (<em class="parameter"><code><a class="link" href="GstGLContext.html" title="GstGLContext"><span class="type">GstGLContext</span></a> *context</code></em>,
+gst_gl_context_glx_get_proc_address (<em class="parameter"><code><a class="link" href="gst-plugins-bad-libs-GstGLAPI.html#GstGLAPI" title="enum GstGLAPI"><span class="type">GstGLAPI</span></a> gl_api</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> *name</code></em>);</pre>
 </div>
 </div>
diff --git a/docs/libs/html/gst-plugins-bad-libs-GstGLContextWGL.html b/docs/libs/html/gst-plugins-bad-libs-GstGLContextWGL.html
index 8cc0345..0089daf 100644
--- a/docs/libs/html/gst-plugins-bad-libs-GstGLContextWGL.html
+++ b/docs/libs/html/gst-plugins-bad-libs-GstGLContextWGL.html
@@ -87,7 +87,7 @@
 <div class="refsect2">
 <a name="gst-gl-context-wgl-new"></a><h3>gst_gl_context_wgl_new ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-bad-libs-GstGLContextWGL.html#GstGLContextWGL" title="struct GstGLContextWGL"><span class="returnvalue">GstGLContextWGL</span></a> *
-gst_gl_context_wgl_new (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+gst_gl_context_wgl_new (<em class="parameter"><code><a class="link" href="GstGLDisplay.html" title="GstGLDisplay"><span class="type">GstGLDisplay</span></a> *display</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
@@ -100,7 +100,7 @@
 <div class="refsect2">
 <a name="gst-gl-context-wgl-get-proc-address"></a><h3>gst_gl_context_wgl_get_proc_address ()</h3>
 <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="returnvalue">gpointer</span></a>
-gst_gl_context_wgl_get_proc_address (<em class="parameter"><code><a class="link" href="GstGLContext.html" title="GstGLContext"><span class="type">GstGLContext</span></a> *context</code></em>,
+gst_gl_context_wgl_get_proc_address (<em class="parameter"><code><a class="link" href="gst-plugins-bad-libs-GstGLAPI.html#GstGLAPI" title="enum GstGLAPI"><span class="type">GstGLAPI</span></a> gl_api</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> *name</code></em>);</pre>
 </div>
 </div>
diff --git a/docs/libs/html/gst-plugins-bad-libs-GstGLWindowAndroid.html b/docs/libs/html/gst-plugins-bad-libs-GstGLWindowAndroid.html
index d779895..0a8592b 100644
--- a/docs/libs/html/gst-plugins-bad-libs-GstGLWindowAndroid.html
+++ b/docs/libs/html/gst-plugins-bad-libs-GstGLWindowAndroid.html
@@ -75,7 +75,7 @@
 <div class="refsect2">
 <a name="gst-gl-window-android-egl-new"></a><h3>gst_gl_window_android_egl_new ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-bad-libs-GstGLWindowAndroid.html#GstGLWindowAndroidEGL" title="struct GstGLWindowAndroidEGL"><span class="returnvalue">GstGLWindowAndroidEGL</span></a> *
-gst_gl_window_android_egl_new (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+gst_gl_window_android_egl_new (<em class="parameter"><code><a class="link" href="GstGLDisplay.html" title="GstGLDisplay"><span class="type">GstGLDisplay</span></a> *display</code></em>);</pre>
 </div>
 </div>
 <div class="refsect1">
diff --git a/docs/libs/html/gst-plugins-bad-libs-GstGLWindowCocoa.html b/docs/libs/html/gst-plugins-bad-libs-GstGLWindowCocoa.html
index c31c637..b1e2e83 100644
--- a/docs/libs/html/gst-plugins-bad-libs-GstGLWindowCocoa.html
+++ b/docs/libs/html/gst-plugins-bad-libs-GstGLWindowCocoa.html
@@ -85,7 +85,7 @@
 <div class="refsect2">
 <a name="gst-gl-window-cocoa-new"></a><h3>gst_gl_window_cocoa_new ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-bad-libs-GstGLWindowCocoa.html#GstGLWindowCocoa" title="struct GstGLWindowCocoa"><span class="returnvalue">GstGLWindowCocoa</span></a> *
-gst_gl_window_cocoa_new (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+gst_gl_window_cocoa_new (<em class="parameter"><code><a class="link" href="GstGLDisplay.html" title="GstGLDisplay"><span class="type">GstGLDisplay</span></a> *display</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
diff --git a/docs/libs/html/gst-plugins-bad-libs-GstGLWindowDispmanx.html b/docs/libs/html/gst-plugins-bad-libs-GstGLWindowDispmanx.html
index 23fb35b..1240617 100644
--- a/docs/libs/html/gst-plugins-bad-libs-GstGLWindowDispmanx.html
+++ b/docs/libs/html/gst-plugins-bad-libs-GstGLWindowDispmanx.html
@@ -75,7 +75,7 @@
 <div class="refsect2">
 <a name="gst-gl-window-dispmanx-egl-new"></a><h3>gst_gl_window_dispmanx_egl_new ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-bad-libs-GstGLWindowDispmanx.html#GstGLWindowDispmanxEGL" title="struct GstGLWindowDispmanxEGL"><span class="returnvalue">GstGLWindowDispmanxEGL</span></a> *
-gst_gl_window_dispmanx_egl_new (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+gst_gl_window_dispmanx_egl_new (<em class="parameter"><code><a class="link" href="GstGLDisplay.html" title="GstGLDisplay"><span class="type">GstGLDisplay</span></a> *display</code></em>);</pre>
 </div>
 </div>
 <div class="refsect1">
diff --git a/docs/libs/html/gst-plugins-bad-libs-GstGLWindowWayland.html b/docs/libs/html/gst-plugins-bad-libs-GstGLWindowWayland.html
index ad6e12e..7b0935c 100644
--- a/docs/libs/html/gst-plugins-bad-libs-GstGLWindowWayland.html
+++ b/docs/libs/html/gst-plugins-bad-libs-GstGLWindowWayland.html
@@ -75,7 +75,7 @@
 <div class="refsect2">
 <a name="gst-gl-window-wayland-egl-new"></a><h3>gst_gl_window_wayland_egl_new ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-bad-libs-GstGLWindowWayland.html#GstGLWindowWaylandEGL" title="struct GstGLWindowWaylandEGL"><span class="returnvalue">GstGLWindowWaylandEGL</span></a> *
-gst_gl_window_wayland_egl_new (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+gst_gl_window_wayland_egl_new (<em class="parameter"><code><a class="link" href="GstGLDisplay.html" title="GstGLDisplay"><span class="type">GstGLDisplay</span></a> *display</code></em>);</pre>
 </div>
 </div>
 <div class="refsect1">
diff --git a/docs/libs/html/gst-plugins-bad-libs-GstGLWindowWin32.html b/docs/libs/html/gst-plugins-bad-libs-GstGLWindowWin32.html
index 0716184..ecaa029 100644
--- a/docs/libs/html/gst-plugins-bad-libs-GstGLWindowWin32.html
+++ b/docs/libs/html/gst-plugins-bad-libs-GstGLWindowWin32.html
@@ -85,7 +85,7 @@
 <div class="refsect2">
 <a name="gst-gl-window-win32-new"></a><h3>gst_gl_window_win32_new ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-bad-libs-GstGLWindowWin32.html#GstGLWindowWin32" title="struct GstGLWindowWin32"><span class="returnvalue">GstGLWindowWin32</span></a> *
-gst_gl_window_win32_new (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+gst_gl_window_win32_new (<em class="parameter"><code><a class="link" href="GstGLDisplay.html" title="GstGLDisplay"><span class="type">GstGLDisplay</span></a> *display</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
diff --git a/docs/libs/html/gst-plugins-bad-libs-gstglmemory.html b/docs/libs/html/gst-plugins-bad-libs-gstglmemory.html
index 5ed509a..da60855 100644
--- a/docs/libs/html/gst-plugins-bad-libs-gstglmemory.html
+++ b/docs/libs/html/gst-plugins-bad-libs-gstglmemory.html
@@ -512,13 +512,17 @@
                              <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideo.html#GstVideoInfo"><span class="type">GstVideoInfo</span></a> *info</code></em>,
                              <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideo.html#GstVideoAlignment"><span class="type">GstVideoAlignment</span></a> *valign</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><a class="link" href="gst-plugins-bad-libs-gstglmemory.html#GstGLMemory" title="GstGLMemory"><span class="type">GstGLMemory</span></a> *textures[GST_VIDEO_MAX_PLANES]</code></em>);</pre>
+                             <em class="parameter"><code><a class="link" href="gst-plugins-bad-libs-gstglmemory.html#GstGLMemory" title="GstGLMemory"><span class="type">GstGLMemory</span></a> *textures[GST_VIDEO_MAX_PLANES]</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>,
+                             <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>Wraps per plane data pointer in <em class="parameter"><code>data</code></em>
  into the corresponding entry in
 <em class="parameter"><code>textures</code></em>
  based on <em class="parameter"><code>info</code></em>
  and padding from <em class="parameter"><code>valign</code></em>
-.</p>
+. Note that the <em class="parameter"><code>notify</code></em>
+
+will be called as many time as there is planes.</p>
 <div class="refsect3">
 <a name="id-1.2.9.17.8.8.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
@@ -553,6 +557,16 @@
 <td class="parameter_description"><p> a list of <a class="link" href="gst-plugins-bad-libs-gstglmemory.html#GstGLMemory" title="GstGLMemory"><span class="type">GstGLMemory</span></a>. </p></td>
 <td class="parameter_annotations"><span class="annotation">[transfer out]</span></td>
 </tr>
+<tr>
+<td class="parameter_name"><p>user_data</p></td>
+<td class="parameter_description"><p>user data for the destroy function</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>notify</p></td>
+<td class="parameter_description"><p>A function called each time a memory is freed</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
 </tbody>
 </table></div>
 </div>
diff --git a/docs/libs/html/gst-plugins-bad-libs-h264parser.html b/docs/libs/html/gst-plugins-bad-libs-h264parser.html
index 508cc98..2ce391f 100644
--- a/docs/libs/html/gst-plugins-bad-libs-h264parser.html
+++ b/docs/libs/html/gst-plugins-bad-libs-h264parser.html
@@ -1228,7 +1228,14 @@
 <tr>
 <td class="enum_member_name"><p><a name="GST-H264-NAL-SUBSET-SPS:CAPS"></a>GST_H264_NAL_SUBSET_SPS</p></td>
 <td class="enum_member_description">
-<p>Subset sequence parameter set (SPS) NAL unit</p>
+<p>Subset sequence parameter set (SSPS) NAL unit</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-H264-NAL-DEPTH-SPS:CAPS"></a>GST_H264_NAL_DEPTH_SPS</p></td>
+<td class="enum_member_description">
+<p>Depth parameter set (DPS) NAL unit</p>
 </td>
 <td class="enum_member_annotations"> </td>
 </tr>
@@ -1246,6 +1253,13 @@
 </td>
 <td class="enum_member_annotations"> </td>
 </tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-H264-NAL-SLICE-DEPTH:CAPS"></a>GST_H264_NAL_SLICE_DEPTH</p></td>
+<td class="enum_member_description">
+<p>Coded slice extension for depth or 3D-AVC texture view</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
 </tbody>
 </table></div>
 </div>
diff --git a/docs/libs/html/index.html b/docs/libs/html/index.html
index a65ee8c..837f1e5 100644
--- a/docs/libs/html/index.html
+++ b/docs/libs/html/index.html
@@ -15,7 +15,7 @@
 <div>
 <div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">GStreamer Bad Plugins 1.0 Library Reference Manual</p></th></tr></table></div>
 <div><p class="releaseinfo">
-      for GStreamer Bad Library 1.0 (1.5.2)
+      for GStreamer Bad Library 1.0 (1.5.90)
       <a class="ulink" href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-bad-libs/html/" target="_top">http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-bad-libs/html/</a>.
     </p></div>
 </div>
diff --git a/docs/libs/html/index.sgml b/docs/libs/html/index.sgml
index 8b6af4b..6cb3874 100644
--- a/docs/libs/html/index.sgml
+++ b/docs/libs/html/index.sgml
@@ -48,8 +48,10 @@
 <ANCHOR id="GST-H264-NAL-SPS-EXT:CAPS" href="gst-plugins-bad-libs-1.0/gst-plugins-bad-libs-h264parser.html#GST-H264-NAL-SPS-EXT:CAPS">
 <ANCHOR id="GST-H264-NAL-PREFIX-UNIT:CAPS" href="gst-plugins-bad-libs-1.0/gst-plugins-bad-libs-h264parser.html#GST-H264-NAL-PREFIX-UNIT:CAPS">
 <ANCHOR id="GST-H264-NAL-SUBSET-SPS:CAPS" href="gst-plugins-bad-libs-1.0/gst-plugins-bad-libs-h264parser.html#GST-H264-NAL-SUBSET-SPS:CAPS">
+<ANCHOR id="GST-H264-NAL-DEPTH-SPS:CAPS" href="gst-plugins-bad-libs-1.0/gst-plugins-bad-libs-h264parser.html#GST-H264-NAL-DEPTH-SPS:CAPS">
 <ANCHOR id="GST-H264-NAL-SLICE-AUX:CAPS" href="gst-plugins-bad-libs-1.0/gst-plugins-bad-libs-h264parser.html#GST-H264-NAL-SLICE-AUX:CAPS">
 <ANCHOR id="GST-H264-NAL-SLICE-EXT:CAPS" href="gst-plugins-bad-libs-1.0/gst-plugins-bad-libs-h264parser.html#GST-H264-NAL-SLICE-EXT:CAPS">
+<ANCHOR id="GST-H264-NAL-SLICE-DEPTH:CAPS" href="gst-plugins-bad-libs-1.0/gst-plugins-bad-libs-h264parser.html#GST-H264-NAL-SLICE-DEPTH:CAPS">
 <ANCHOR id="GstH264ParserResult" href="gst-plugins-bad-libs-1.0/gst-plugins-bad-libs-h264parser.html#GstH264ParserResult">
 <ANCHOR id="GST-H264-PARSER-OK:CAPS" href="gst-plugins-bad-libs-1.0/gst-plugins-bad-libs-h264parser.html#GST-H264-PARSER-OK:CAPS">
 <ANCHOR id="GST-H264-PARSER-BROKEN-DATA:CAPS" href="gst-plugins-bad-libs-1.0/gst-plugins-bad-libs-h264parser.html#GST-H264-PARSER-BROKEN-DATA:CAPS">
diff --git a/docs/plugins/Makefile.in b/docs/plugins/Makefile.in
index 7ca9351..90ff83b 100644
--- a/docs/plugins/Makefile.in
+++ b/docs/plugins/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -31,7 +31,17 @@
 # This is an include file specifically tuned for building documentation
 # for GStreamer plug-ins
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -95,9 +105,6 @@
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
-DIST_COMMON = $(top_srcdir)/common/upload-doc.mak \
-	$(top_srcdir)/common/gtk-doc-plugins.mak $(srcdir)/Makefile.in \
-	$(srcdir)/Makefile.am
 subdir = docs/plugins
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
@@ -136,6 +143,7 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -195,6 +203,9 @@
 ETAGS = etags
 CTAGS = ctags
 DIST_SUBDIRS = $(SUBDIRS)
+am__DIST_COMMON = $(srcdir)/Makefile.in \
+	$(top_srcdir)/common/gtk-doc-plugins.mak \
+	$(top_srcdir)/common/upload-doc.mak
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 am__relativize = \
   dir0=`pwd`; \
@@ -237,8 +248,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -267,8 +276,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -316,11 +323,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -504,6 +514,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -582,7 +593,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -622,6 +638,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -1026,7 +1043,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/plugins/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu docs/plugins/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1035,7 +1051,7 @@
 	    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/upload-doc.mak $(top_srcdir)/common/gtk-doc-plugins.mak:
+$(top_srcdir)/common/upload-doc.mak $(top_srcdir)/common/gtk-doc-plugins.mak $(am__empty):
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -1328,6 +1344,8 @@
 	mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
 	uninstall-am uninstall-local
 
+.PRECIOUS: Makefile
+
 html: html-build.stamp
 
 upload: $(FORMATS)
diff --git a/docs/plugins/gst-plugins-bad-plugins.args b/docs/plugins/gst-plugins-bad-plugins.args
index ce23cb7..54594ac 100644
--- a/docs/plugins/gst-plugins-bad-plugins.args
+++ b/docs/plugins/gst-plugins-bad-plugins.args
@@ -67861,6 +67861,16 @@
 </ARG>
 
 <ARG>
+<NAME>GstOpenh264Enc::complexity</NAME>
+<TYPE>GstOpenh264encComplexity</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Complexity / quality / speed tradeoff</NICK>
+<BLURB>Complexity.</BLURB>
+<DEFAULT>Medium complexity / medium speed encoding</DEFAULT>
+</ARG>
+
+<ARG>
 <NAME>GstLibde265Dec::max-threads</NAME>
 <TYPE>gint</TYPE>
 <RANGE>>= 0</RANGE>
@@ -68890,3 +68900,43 @@
 <DEFAULT>ssim</DEFAULT>
 </ARG>
 
+<ARG>
+<NAME>GstQtSink::force-aspect-ratio</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Force aspect ratio</NICK>
+<BLURB>When enabled, scaling will respect original aspect ratio.</BLURB>
+<DEFAULT>TRUE</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstQtSink::pixel-aspect-ratio</NAME>
+<TYPE>GstFraction</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Pixel Aspect Ratio</NICK>
+<BLURB>The pixel aspect ratio of the device.</BLURB>
+<DEFAULT></DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstQtSink::widget</NAME>
+<TYPE>gpointer</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>QQuickItem</NICK>
+<BLURB>The QQuickItem to place in the object heirachy.</BLURB>
+<DEFAULT></DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstSrtpDec::replay-window-size</NAME>
+<TYPE>guint</TYPE>
+<RANGE>[64,32768]</RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Replay window size</NICK>
+<BLURB>Size of the replay protection window.</BLURB>
+<DEFAULT>128</DEFAULT>
+</ARG>
+
diff --git a/docs/plugins/gst-plugins-bad-plugins.hierarchy b/docs/plugins/gst-plugins-bad-plugins.hierarchy
index 889ea9d..bc01563 100644
--- a/docs/plugins/gst-plugins-bad-plugins.hierarchy
+++ b/docs/plugins/gst-plugins-bad-plugins.hierarchy
@@ -87,8 +87,10 @@
             GstDfbVideoSink
             GstFBDEVSink
             GstGLImageSink
-            GstGtkGLSink
-            GstGtkSink
+            GstGtkBaseSink
+              GstGtkGLSink
+              GstGtkSink
+            GstQtSink
             GstWaylandSink
         GstBaseSrc
           GstDataURISrc
@@ -199,23 +201,8 @@
               GstPerspective
               GstRotate
               GstSquare
-            GstGrabcut
-            GstOpencvVideoFilter
-              GstCvDilateErode
-                GstCvDilate
-                GstCvErode
-              GstCvEqualizeHist
-              GstCvLaplace
-              GstCvSmooth
-              GstCvSobel
-              GstFaceBlur
-              GstFaceDetect
-              GstHanddetect
-              GstSkinDetect
-            GstRetinex
             GstRsvgOverlay
             GstSceneChange
-            GstSegmentation
             GstSimpleVideoMark
             GstSimpleVideoMarkDetect
             GstSmooth
@@ -259,11 +246,9 @@
         GstCompare
         GstDVBSubOverlay
         GstDVDSpu
-        GstDisparity
         GstDtlsDec
         GstDtlsEnc
         GstDtlsSrtpDemux
-        GstEdgeDetect
         GstErrorIgnore
         GstFestival
         GstFieldAnalysis
@@ -285,14 +270,11 @@
         GstMimDec
         GstMimEnc
         GstModPlug
-        GstMotioncells
         GstMpeg2enc
         GstMpegPSDemux
         GstMplex
-        GstOpencvTextOverlay
         GstPcapParse
         GstPitch
-        GstPyramidSegment
         GstRTPBaseDepayload
           GstRTPOpusDepay
           GstRtpH265Depay
@@ -316,12 +298,11 @@
         GstSrtpEnc
         GstTagMux
           GstId3Mux
-        GstTemplateMatch
         GstUvcH264MjpgDemux
         GstVideoDecoder
-          GstLibde265Dec
           GstOpenEXRDec
           GstOpenJPEGDec
+          GstOpenh264Dec
           GstPnmdec
           GstRsvgDec
           GstSchroDec
@@ -329,6 +310,7 @@
           GstWebPDec
         GstVideoEncoder
           GstOpenJPEGEnc
+          GstOpenh264Enc
           GstPnmenc
           GstSchroEnc
           GstWebpEnc
diff --git a/docs/plugins/gst-plugins-bad-plugins.interfaces b/docs/plugins/gst-plugins-bad-plugins.interfaces
index 6a778b8..b67338c 100644
--- a/docs/plugins/gst-plugins-bad-plugins.interfaces
+++ b/docs/plugins/gst-plugins-bad-plugins.interfaces
@@ -52,6 +52,9 @@
 GstGSettingsSwitchSrc GstChildProxy
 GstGSettingsVideoSink GstChildProxy
 GstGSettingsVideoSrc GstChildProxy
+GstGtkBaseSink GstNavigation
+GstGtkGLSink GstNavigation
+GstGtkSink GstNavigation
 GstHLSDemux GstChildProxy
 GstHanddetect GstNavigation
 GstHlsSink GstChildProxy
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-1.0.devhelp2 b/docs/plugins/html/gst-plugins-bad-plugins-1.0.devhelp2
index a235c15..1c4dab5 100644
--- a/docs/plugins/html/gst-plugins-bad-plugins-1.0.devhelp2
+++ b/docs/plugins/html/gst-plugins-bad-plugins-1.0.devhelp2
@@ -175,12 +175,12 @@
     <keyword type="struct" name="struct GstColorEffects" link="gst-plugins-bad-plugins-coloreffects.html#GstColorEffects-struct"/>
     <keyword type="property" name="The “preset” property" link="gst-plugins-bad-plugins-coloreffects.html#GstColorEffects--preset"/>
     <keyword type="property" name="The “background” property" link="gst-plugins-bad-plugins-compositor.html#GstCompositor--background"/>
-    <keyword type="struct" name="struct GstCvDilate" link="gst-plugins-bad-plugins-cvdilate.html#GstCvDilate-struct"/>
-    <keyword type="struct" name="struct GstCvErode" link="gst-plugins-bad-plugins-cverode.html#GstCvErode-struct"/>
-    <keyword type="struct" name="struct GstCvEqualizeHist" link="gst-plugins-bad-plugins-cvequalizehist.html#GstCvEqualizeHist-struct"/>
-    <keyword type="struct" name="struct GstCvLaplace" link="gst-plugins-bad-plugins-cvlaplace.html#GstCvLaplace-struct"/>
+    <keyword type="struct" name="struct GstCvDilate" link="gst-plugins-bad-plugins-cvdilate.html#GstCvDilate"/>
+    <keyword type="struct" name="struct GstCvErode" link="gst-plugins-bad-plugins-cverode.html#GstCvErode"/>
+    <keyword type="struct" name="struct GstCvEqualizeHist" link="gst-plugins-bad-plugins-cvequalizehist.html#GstCvEqualizeHist"/>
+    <keyword type="struct" name="struct GstCvLaplace" link="gst-plugins-bad-plugins-cvlaplace.html#GstCvLaplace"/>
     <keyword type="property" name="The “aperture-size” property" link="gst-plugins-bad-plugins-cvlaplace.html#GstCvLaplace--aperture-size"/>
-    <keyword type="struct" name="struct GstCvSmooth" link="gst-plugins-bad-plugins-cvsmooth.html#GstCvSmooth-struct"/>
+    <keyword type="struct" name="struct GstCvSmooth" link="gst-plugins-bad-plugins-cvsmooth.html#GstCvSmooth"/>
     <keyword type="property" name="The “param1” property" link="gst-plugins-bad-plugins-cvsmooth.html#GstCvSmooth--param1"/>
     <keyword type="property" name="The “param2” property" link="gst-plugins-bad-plugins-cvsmooth.html#GstCvSmooth--param2"/>
     <keyword type="property" name="The “param3” property" link="gst-plugins-bad-plugins-cvsmooth.html#GstCvSmooth--param3"/>
@@ -190,7 +190,7 @@
     <keyword type="property" name="The “height” property" link="gst-plugins-bad-plugins-cvsmooth.html#GstCvSmooth--height"/>
     <keyword type="property" name="The “spatial” property" link="gst-plugins-bad-plugins-cvsmooth.html#GstCvSmooth--spatial"/>
     <keyword type="property" name="The “width” property" link="gst-plugins-bad-plugins-cvsmooth.html#GstCvSmooth--width"/>
-    <keyword type="struct" name="struct GstCvSobel" link="gst-plugins-bad-plugins-cvsobel.html#GstCvSobel-struct"/>
+    <keyword type="struct" name="struct GstCvSobel" link="gst-plugins-bad-plugins-cvsobel.html#GstCvSobel"/>
     <keyword type="property" name="The “aperture-size” property" link="gst-plugins-bad-plugins-cvsobel.html#GstCvSobel--aperture-size"/>
     <keyword type="property" name="The “x-order” property" link="gst-plugins-bad-plugins-cvsobel.html#GstCvSobel--x-order"/>
     <keyword type="property" name="The “y-order” property" link="gst-plugins-bad-plugins-cvsobel.html#GstCvSobel--y-order"/>
@@ -482,11 +482,11 @@
     <keyword type="property" name="The “zoom” property" link="gst-plugins-bad-plugins-square.html#GstSquare--zoom"/>
     <keyword type="struct" name="struct GstStretch" link="gst-plugins-bad-plugins-stretch.html#GstStretch-struct"/>
     <keyword type="property" name="The “intensity” property" link="gst-plugins-bad-plugins-stretch.html#GstStretch--intensity"/>
-    <keyword type="struct" name="struct GstTemplateMatch" link="gst-plugins-bad-plugins-templatematch.html#GstTemplateMatch-struct"/>
+    <keyword type="struct" name="struct GstTemplateMatch" link="gst-plugins-bad-plugins-templatematch.html#GstTemplateMatch"/>
     <keyword type="property" name="The “display” property" link="gst-plugins-bad-plugins-templatematch.html#GstTemplateMatch--display"/>
     <keyword type="property" name="The “method” property" link="gst-plugins-bad-plugins-templatematch.html#GstTemplateMatch--method"/>
     <keyword type="property" name="The “template” property" link="gst-plugins-bad-plugins-templatematch.html#GstTemplateMatch--template"/>
-    <keyword type="struct" name="struct GstOpencvTextOverlay" link="gst-plugins-bad-plugins-opencvtextoverlay.html#GstOpencvTextOverlay-struct"/>
+    <keyword type="struct" name="struct GstOpencvTextOverlay" link="gst-plugins-bad-plugins-opencvtextoverlay.html#GstOpencvTextOverlay"/>
     <keyword type="property" name="The “colorB” property" link="gst-plugins-bad-plugins-opencvtextoverlay.html#GstOpencvTextOverlay--colorB"/>
     <keyword type="property" name="The “colorG” property" link="gst-plugins-bad-plugins-opencvtextoverlay.html#GstOpencvTextOverlay--colorG"/>
     <keyword type="property" name="The “colorR” property" link="gst-plugins-bad-plugins-opencvtextoverlay.html#GstOpencvTextOverlay--colorR"/>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-cvdilate.html b/docs/plugins/html/gst-plugins-bad-plugins-cvdilate.html
index 2ce59bf..1ce315d 100644
--- a/docs/plugins/html/gst-plugins-bad-plugins-cvdilate.html
+++ b/docs/plugins/html/gst-plugins-bad-plugins-cvdilate.html
@@ -15,8 +15,7 @@
 <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-bad-plugins-cvdilate.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
-                  <a href="#gst-plugins-bad-plugins-cvdilate.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+                  <a href="#gst-plugins-bad-plugins-cvdilate.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>
@@ -32,7 +31,7 @@
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
-<a name="GstCvDilate"></a><div class="refsect1">
+<div class="refsect1">
 <a name="gst-plugins-bad-plugins-cvdilate.other"></a><h2>Types and Values</h2>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
@@ -41,29 +40,16 @@
 </colgroup>
 <tbody><tr>
 <td class="datatype_keyword">struct</td>
-<td class="function_name"><a class="link" href="gst-plugins-bad-plugins-cvdilate.html#GstCvDilate-struct" title="struct GstCvDilate">GstCvDilate</a></td>
+<td class="function_name"><a class="link" href="gst-plugins-bad-plugins-cvdilate.html#GstCvDilate" title="struct GstCvDilate">GstCvDilate</a></td>
 </tr></tbody>
 </table></div>
 </div>
 <div class="refsect1">
-<a name="gst-plugins-bad-plugins-cvdilate.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<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>
-                    <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideofilter.html#GstVideoFilter">GstVideoFilter</a>
-                        <span class="lineart">╰──</span> GstOpencvVideoFilter
-                            <span class="lineart">╰──</span> GstCvDilateErode
-                                <span class="lineart">╰──</span> GstCvDilate
-</pre>
-</div>
-<div class="refsect1">
 <a name="gst-plugins-bad-plugins-cvdilate.description"></a><h2>Description</h2>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.16.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.16.4.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -89,7 +75,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.16.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.16.4.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -244,8 +230,11 @@
 <div class="refsect1">
 <a name="gst-plugins-bad-plugins-cvdilate.other_details"></a><h2>Types and Values</h2>
 <div class="refsect2">
-<a name="GstCvDilate-struct"></a><h3>struct GstCvDilate</h3>
-<pre class="programlisting">struct GstCvDilate;</pre>
+<a name="GstCvDilate"></a><h3>struct GstCvDilate</h3>
+<pre class="programlisting">struct GstCvDilate {
+  GstCvDilateErode element;
+};
+</pre>
 </div>
 </div>
 </div>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-cvequalizehist.html b/docs/plugins/html/gst-plugins-bad-plugins-cvequalizehist.html
index d425935..8f05e92 100644
--- a/docs/plugins/html/gst-plugins-bad-plugins-cvequalizehist.html
+++ b/docs/plugins/html/gst-plugins-bad-plugins-cvequalizehist.html
@@ -15,8 +15,7 @@
 <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-bad-plugins-cvequalizehist.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
-                  <a href="#gst-plugins-bad-plugins-cvequalizehist.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+                  <a href="#gst-plugins-bad-plugins-cvequalizehist.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>
@@ -32,7 +31,7 @@
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
-<a name="GstCvEqualizeHist"></a><div class="refsect1">
+<div class="refsect1">
 <a name="gst-plugins-bad-plugins-cvequalizehist.other"></a><h2>Types and Values</h2>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
@@ -41,28 +40,16 @@
 </colgroup>
 <tbody><tr>
 <td class="datatype_keyword">struct</td>
-<td class="function_name"><a class="link" href="gst-plugins-bad-plugins-cvequalizehist.html#GstCvEqualizeHist-struct" title="struct GstCvEqualizeHist">GstCvEqualizeHist</a></td>
+<td class="function_name"><a class="link" href="gst-plugins-bad-plugins-cvequalizehist.html#GstCvEqualizeHist" title="struct GstCvEqualizeHist">GstCvEqualizeHist</a></td>
 </tr></tbody>
 </table></div>
 </div>
 <div class="refsect1">
-<a name="gst-plugins-bad-plugins-cvequalizehist.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<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>
-                    <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideofilter.html#GstVideoFilter">GstVideoFilter</a>
-                        <span class="lineart">╰──</span> GstOpencvVideoFilter
-                            <span class="lineart">╰──</span> GstCvEqualizeHist
-</pre>
-</div>
-<div class="refsect1">
 <a name="gst-plugins-bad-plugins-cvequalizehist.description"></a><h2>Description</h2>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.18.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.18.4.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -88,7 +75,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.18.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.18.4.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -147,8 +134,11 @@
 <div class="refsect1">
 <a name="gst-plugins-bad-plugins-cvequalizehist.other_details"></a><h2>Types and Values</h2>
 <div class="refsect2">
-<a name="GstCvEqualizeHist-struct"></a><h3>struct GstCvEqualizeHist</h3>
-<pre class="programlisting">struct GstCvEqualizeHist;</pre>
+<a name="GstCvEqualizeHist"></a><h3>struct GstCvEqualizeHist</h3>
+<pre class="programlisting">struct GstCvEqualizeHist {
+  GstOpencvVideoFilter element;
+};
+</pre>
 </div>
 </div>
 </div>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-cverode.html b/docs/plugins/html/gst-plugins-bad-plugins-cverode.html
index 5e1c293..8f62f18 100644
--- a/docs/plugins/html/gst-plugins-bad-plugins-cverode.html
+++ b/docs/plugins/html/gst-plugins-bad-plugins-cverode.html
@@ -15,8 +15,7 @@
 <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-bad-plugins-cverode.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
-                  <a href="#gst-plugins-bad-plugins-cverode.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+                  <a href="#gst-plugins-bad-plugins-cverode.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>
@@ -32,7 +31,7 @@
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
-<a name="GstCvErode"></a><div class="refsect1">
+<div class="refsect1">
 <a name="gst-plugins-bad-plugins-cverode.other"></a><h2>Types and Values</h2>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
@@ -41,29 +40,16 @@
 </colgroup>
 <tbody><tr>
 <td class="datatype_keyword">struct</td>
-<td class="function_name"><a class="link" href="gst-plugins-bad-plugins-cverode.html#GstCvErode-struct" title="struct GstCvErode">GstCvErode</a></td>
+<td class="function_name"><a class="link" href="gst-plugins-bad-plugins-cverode.html#GstCvErode" title="struct GstCvErode">GstCvErode</a></td>
 </tr></tbody>
 </table></div>
 </div>
 <div class="refsect1">
-<a name="gst-plugins-bad-plugins-cverode.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<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>
-                    <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideofilter.html#GstVideoFilter">GstVideoFilter</a>
-                        <span class="lineart">╰──</span> GstOpencvVideoFilter
-                            <span class="lineart">╰──</span> GstCvDilateErode
-                                <span class="lineart">╰──</span> GstCvErode
-</pre>
-</div>
-<div class="refsect1">
 <a name="gst-plugins-bad-plugins-cverode.description"></a><h2>Description</h2>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.17.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.17.4.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -89,7 +75,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.17.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.17.4.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -244,8 +230,11 @@
 <div class="refsect1">
 <a name="gst-plugins-bad-plugins-cverode.other_details"></a><h2>Types and Values</h2>
 <div class="refsect2">
-<a name="GstCvErode-struct"></a><h3>struct GstCvErode</h3>
-<pre class="programlisting">struct GstCvErode;</pre>
+<a name="GstCvErode"></a><h3>struct GstCvErode</h3>
+<pre class="programlisting">struct GstCvErode {
+  GstCvDilateErode element;
+};
+</pre>
 </div>
 </div>
 </div>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-cvlaplace.html b/docs/plugins/html/gst-plugins-bad-plugins-cvlaplace.html
index 1861d07..4f31240 100644
--- a/docs/plugins/html/gst-plugins-bad-plugins-cvlaplace.html
+++ b/docs/plugins/html/gst-plugins-bad-plugins-cvlaplace.html
@@ -15,8 +15,7 @@
 <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-bad-plugins-cvlaplace.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
-                  <a href="#gst-plugins-bad-plugins-cvlaplace.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-bad-plugins-cvlaplace.description" class="shortcut">Description</a></span><span id="nav_properties">  <span class="dim">|</span> 
                   <a href="#gst-plugins-bad-plugins-cvlaplace.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>
@@ -48,7 +47,7 @@
 </tr></tbody>
 </table></div>
 </div>
-<a name="GstCvLaplace"></a><div class="refsect1">
+<div class="refsect1">
 <a name="gst-plugins-bad-plugins-cvlaplace.other"></a><h2>Types and Values</h2>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
@@ -57,28 +56,16 @@
 </colgroup>
 <tbody><tr>
 <td class="datatype_keyword">struct</td>
-<td class="function_name"><a class="link" href="gst-plugins-bad-plugins-cvlaplace.html#GstCvLaplace-struct" title="struct GstCvLaplace">GstCvLaplace</a></td>
+<td class="function_name"><a class="link" href="gst-plugins-bad-plugins-cvlaplace.html#GstCvLaplace" title="struct GstCvLaplace">GstCvLaplace</a></td>
 </tr></tbody>
 </table></div>
 </div>
 <div class="refsect1">
-<a name="gst-plugins-bad-plugins-cvlaplace.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<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>
-                    <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideofilter.html#GstVideoFilter">GstVideoFilter</a>
-                        <span class="lineart">╰──</span> GstOpencvVideoFilter
-                            <span class="lineart">╰──</span> GstCvLaplace
-</pre>
-</div>
-<div class="refsect1">
 <a name="gst-plugins-bad-plugins-cvlaplace.description"></a><h2>Description</h2>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.19.7.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.19.5.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -104,7 +91,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.19.7.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.19.5.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -163,8 +150,15 @@
 <div class="refsect1">
 <a name="gst-plugins-bad-plugins-cvlaplace.other_details"></a><h2>Types and Values</h2>
 <div class="refsect2">
-<a name="GstCvLaplace-struct"></a><h3>struct GstCvLaplace</h3>
-<pre class="programlisting">struct GstCvLaplace;</pre>
+<a name="GstCvLaplace"></a><h3>struct GstCvLaplace</h3>
+<pre class="programlisting">struct GstCvLaplace {
+  GstOpencvVideoFilter element;
+
+  gint aperture_size;
+
+  IplImage *intermediary_img;
+};
+</pre>
 </div>
 </div>
 <div class="refsect1">
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-cvsmooth.html b/docs/plugins/html/gst-plugins-bad-plugins-cvsmooth.html
index 883abaa..ae9abb9 100644
--- a/docs/plugins/html/gst-plugins-bad-plugins-cvsmooth.html
+++ b/docs/plugins/html/gst-plugins-bad-plugins-cvsmooth.html
@@ -15,8 +15,7 @@
 <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-bad-plugins-cvsmooth.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
-                  <a href="#gst-plugins-bad-plugins-cvsmooth.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-bad-plugins-cvsmooth.description" class="shortcut">Description</a></span><span id="nav_properties">  <span class="dim">|</span> 
                   <a href="#gst-plugins-bad-plugins-cvsmooth.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>
@@ -90,7 +89,7 @@
 </tbody>
 </table></div>
 </div>
-<a name="GstCvSmooth"></a><div class="refsect1">
+<div class="refsect1">
 <a name="gst-plugins-bad-plugins-cvsmooth.other"></a><h2>Types and Values</h2>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
@@ -99,28 +98,16 @@
 </colgroup>
 <tbody><tr>
 <td class="datatype_keyword">struct</td>
-<td class="function_name"><a class="link" href="gst-plugins-bad-plugins-cvsmooth.html#GstCvSmooth-struct" title="struct GstCvSmooth">GstCvSmooth</a></td>
+<td class="function_name"><a class="link" href="gst-plugins-bad-plugins-cvsmooth.html#GstCvSmooth" title="struct GstCvSmooth">GstCvSmooth</a></td>
 </tr></tbody>
 </table></div>
 </div>
 <div class="refsect1">
-<a name="gst-plugins-bad-plugins-cvsmooth.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<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>
-                    <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideofilter.html#GstVideoFilter">GstVideoFilter</a>
-                        <span class="lineart">╰──</span> GstOpencvVideoFilter
-                            <span class="lineart">╰──</span> GstCvSmooth
-</pre>
-</div>
-<div class="refsect1">
 <a name="gst-plugins-bad-plugins-cvsmooth.description"></a><h2>Description</h2>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.20.7.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.20.5.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -146,7 +133,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.20.7.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.20.5.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -221,8 +208,18 @@
 <div class="refsect1">
 <a name="gst-plugins-bad-plugins-cvsmooth.other_details"></a><h2>Types and Values</h2>
 <div class="refsect2">
-<a name="GstCvSmooth-struct"></a><h3>struct GstCvSmooth</h3>
-<pre class="programlisting">struct GstCvSmooth;</pre>
+<a name="GstCvSmooth"></a><h3>struct GstCvSmooth</h3>
+<pre class="programlisting">struct GstCvSmooth {
+  GstOpencvVideoFilter element;
+
+  gint type;
+
+  gint width;
+  gint height;
+  gdouble colorsigma;
+  gdouble spatialsigma;
+};
+</pre>
 </div>
 </div>
 <div class="refsect1">
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-cvsobel.html b/docs/plugins/html/gst-plugins-bad-plugins-cvsobel.html
index 2a4fb38..e34df8e 100644
--- a/docs/plugins/html/gst-plugins-bad-plugins-cvsobel.html
+++ b/docs/plugins/html/gst-plugins-bad-plugins-cvsobel.html
@@ -15,8 +15,7 @@
 <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-bad-plugins-cvsobel.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
-                  <a href="#gst-plugins-bad-plugins-cvsobel.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-bad-plugins-cvsobel.description" class="shortcut">Description</a></span><span id="nav_properties">  <span class="dim">|</span> 
                   <a href="#gst-plugins-bad-plugins-cvsobel.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>
@@ -60,7 +59,7 @@
 </tbody>
 </table></div>
 </div>
-<a name="GstCvSobel"></a><div class="refsect1">
+<div class="refsect1">
 <a name="gst-plugins-bad-plugins-cvsobel.other"></a><h2>Types and Values</h2>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
@@ -69,28 +68,16 @@
 </colgroup>
 <tbody><tr>
 <td class="datatype_keyword">struct</td>
-<td class="function_name"><a class="link" href="gst-plugins-bad-plugins-cvsobel.html#GstCvSobel-struct" title="struct GstCvSobel">GstCvSobel</a></td>
+<td class="function_name"><a class="link" href="gst-plugins-bad-plugins-cvsobel.html#GstCvSobel" title="struct GstCvSobel">GstCvSobel</a></td>
 </tr></tbody>
 </table></div>
 </div>
 <div class="refsect1">
-<a name="gst-plugins-bad-plugins-cvsobel.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<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>
-                    <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideofilter.html#GstVideoFilter">GstVideoFilter</a>
-                        <span class="lineart">╰──</span> GstOpencvVideoFilter
-                            <span class="lineart">╰──</span> GstCvSobel
-</pre>
-</div>
-<div class="refsect1">
 <a name="gst-plugins-bad-plugins-cvsobel.description"></a><h2>Description</h2>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.21.7.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.21.5.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -116,7 +103,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.21.7.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.21.5.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -175,8 +162,15 @@
 <div class="refsect1">
 <a name="gst-plugins-bad-plugins-cvsobel.other_details"></a><h2>Types and Values</h2>
 <div class="refsect2">
-<a name="GstCvSobel-struct"></a><h3>struct GstCvSobel</h3>
-<pre class="programlisting">struct GstCvSobel;</pre>
+<a name="GstCvSobel"></a><h3>struct GstCvSobel</h3>
+<pre class="programlisting">struct GstCvSobel {
+  GstOpencvVideoFilter element;
+
+  gint x_order;
+  gint y_order;
+  gint aperture_size;
+};
+</pre>
 </div>
 </div>
 <div class="refsect1">
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-mpegtsmux.html b/docs/plugins/html/gst-plugins-bad-plugins-mpegtsmux.html
index 2a5038b..3baf61a 100644
--- a/docs/plugins/html/gst-plugins-bad-plugins-mpegtsmux.html
+++ b/docs/plugins/html/gst-plugins-bad-plugins-mpegtsmux.html
@@ -153,7 +153,11 @@
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> audio/mpeg, framed=(boolean)true, mpegversion=(int)4, stream-format=(string){ raw, adts }</td>
+<td> audio/mpeg, framed=(boolean)true, mpegversion=(int)4, stream-format=(string)adts</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> audio/mpeg, mpegversion=(int)4, stream-format=(string)raw</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
@@ -175,6 +179,10 @@
 <td><p><span class="term"></span></p></td>
 <td> application/x-teletext</td>
 </tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> meta/x-klv, parsed=(boolean)true</td>
+</tr>
 </tbody>
 </table></div>
 <div class="variablelist"><table border="0" class="variablelist">
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-opencvtextoverlay.html b/docs/plugins/html/gst-plugins-bad-plugins-opencvtextoverlay.html
index c412bcd..2cf1d2d 100644
--- a/docs/plugins/html/gst-plugins-bad-plugins-opencvtextoverlay.html
+++ b/docs/plugins/html/gst-plugins-bad-plugins-opencvtextoverlay.html
@@ -15,8 +15,7 @@
 <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-bad-plugins-opencvtextoverlay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
-                  <a href="#gst-plugins-bad-plugins-opencvtextoverlay.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-bad-plugins-opencvtextoverlay.description" class="shortcut">Description</a></span><span id="nav_properties">  <span class="dim">|</span> 
                   <a href="#gst-plugins-bad-plugins-opencvtextoverlay.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>
@@ -91,7 +90,7 @@
 </tbody>
 </table></div>
 </div>
-<a name="GstOpenalSrc"></a><a name="GstOpencvTextOverlay"></a><div class="refsect1">
+<a name="GstOpenalSrc"></a><div class="refsect1">
 <a name="gst-plugins-bad-plugins-opencvtextoverlay.other"></a><h2>Types and Values</h2>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
@@ -100,25 +99,16 @@
 </colgroup>
 <tbody><tr>
 <td class="datatype_keyword">struct</td>
-<td class="function_name"><a class="link" href="gst-plugins-bad-plugins-opencvtextoverlay.html#GstOpencvTextOverlay-struct" title="struct GstOpencvTextOverlay">GstOpencvTextOverlay</a></td>
+<td class="function_name"><a class="link" href="gst-plugins-bad-plugins-opencvtextoverlay.html#GstOpencvTextOverlay" title="struct GstOpencvTextOverlay">GstOpencvTextOverlay</a></td>
 </tr></tbody>
 </table></div>
 </div>
 <div class="refsect1">
-<a name="gst-plugins-bad-plugins-opencvtextoverlay.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<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> GstOpencvTextOverlay
-</pre>
-</div>
-<div class="refsect1">
 <a name="gst-plugins-bad-plugins-opencvtextoverlay.description"></a><h2>Description</h2>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.80.8.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.80.6.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -144,7 +134,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.80.8.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.80.6.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -203,8 +193,25 @@
 <div class="refsect1">
 <a name="gst-plugins-bad-plugins-opencvtextoverlay.other_details"></a><h2>Types and Values</h2>
 <div class="refsect2">
-<a name="GstOpencvTextOverlay-struct"></a><h3>struct GstOpencvTextOverlay</h3>
-<pre class="programlisting">struct GstOpencvTextOverlay;</pre>
+<a name="GstOpencvTextOverlay"></a><h3>struct GstOpencvTextOverlay</h3>
+<pre class="programlisting">struct GstOpencvTextOverlay {
+  GstElement element;
+
+  GstPad *sinkpad, *srcpad;
+
+  IplImage *cvImage;
+  CvMemStorage *cvStorage;
+  CvFont font;  
+
+  gint xpos;
+  gint ypos;
+  gint thickness;
+  gint colorR,colorG,colorB;
+  gdouble height;
+  gdouble width;
+  gchar *textbuf;
+};
+</pre>
 </div>
 </div>
 <div class="refsect1">
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-opusdec.html b/docs/plugins/html/gst-plugins-bad-plugins-opusdec.html
index 4f1427c..2c82883 100644
--- a/docs/plugins/html/gst-plugins-bad-plugins-opusdec.html
+++ b/docs/plugins/html/gst-plugins-bad-plugins-opusdec.html
@@ -55,7 +55,7 @@
 </tbody>
 </table></div>
 </div>
-<a name="GstOpenalSrc"></a><a name="GstOpencvTextOverlay"></a><a name="GstOpusDec"></a><div class="refsect1">
+<a name="GstOpenalSrc"></a><a name="GstOpusDec"></a><div class="refsect1">
 <a name="gst-plugins-bad-plugins-opusdec.other"></a><h2>Types and Values</h2>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
@@ -83,7 +83,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.57.9.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.57.8.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -109,7 +109,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.57.9.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.57.8.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-opusenc.html b/docs/plugins/html/gst-plugins-bad-plugins-opusenc.html
index ced48e1..e58c65e 100644
--- a/docs/plugins/html/gst-plugins-bad-plugins-opusenc.html
+++ b/docs/plugins/html/gst-plugins-bad-plugins-opusenc.html
@@ -110,7 +110,7 @@
 </tbody>
 </table></div>
 </div>
-<a name="GstOpenalSrc"></a><a name="GstOpencvTextOverlay"></a><a name="GstOpusDec"></a><a name="GstOpusEnc"></a><div class="refsect1">
+<a name="GstOpenalSrc"></a><a name="GstOpusDec"></a><a name="GstOpusEnc"></a><div class="refsect1">
 <a name="gst-plugins-bad-plugins-opusenc.other"></a><h2>Types and Values</h2>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
@@ -138,7 +138,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.58.10.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.58.9.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -164,7 +164,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.58.10.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.58.9.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-opusparse.html b/docs/plugins/html/gst-plugins-bad-plugins-opusparse.html
index da892bf..96a009b 100644
--- a/docs/plugins/html/gst-plugins-bad-plugins-opusparse.html
+++ b/docs/plugins/html/gst-plugins-bad-plugins-opusparse.html
@@ -32,7 +32,7 @@
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
-<a name="GstOpenalSrc"></a><a name="GstOpencvTextOverlay"></a><a name="GstOpusDec"></a><a name="GstOpusEnc"></a><a name="GstOpusParse"></a><div class="refsect1">
+<a name="GstOpenalSrc"></a><a name="GstOpusDec"></a><a name="GstOpusEnc"></a><a name="GstOpusParse"></a><div class="refsect1">
 <a name="gst-plugins-bad-plugins-opusparse.other"></a><h2>Types and Values</h2>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
@@ -60,7 +60,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.59.10.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.59.9.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.59.10.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.59.9.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-aiff.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-aiff.html
index a3dc168..f8a7fe3 100644
--- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-aiff.html
+++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-aiff.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-assrender.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-assrender.html
index cf303fc..7695805 100644
--- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-assrender.html
+++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-assrender.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-audiomixer.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-audiomixer.html
index 1288988..e7947c3 100644
--- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-audiomixer.html
+++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-audiomixer.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-audiovisualizers.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-audiovisualizers.html
index 3827d1b..58bcb1f 100644
--- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-audiovisualizers.html
+++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-audiovisualizers.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-autoconvert.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-autoconvert.html
index ce91566..90fde50 100644
--- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-autoconvert.html
+++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-autoconvert.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-bayer.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-bayer.html
index 411efcb..ce6e3c5 100644
--- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-bayer.html
+++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-bayer.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-bz2.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-bz2.html
index 6e11c3d..b96020f 100644
--- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-bz2.html
+++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-bz2.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-camerabin.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-camerabin.html
index c852e7f..547b172 100644
--- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-camerabin.html
+++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-camerabin.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-coloreffects.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-coloreffects.html
index c05b557..bd0397e 100644
--- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-coloreffects.html
+++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-coloreffects.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-curl.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-curl.html
index e9af680..421e69e 100644
--- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-curl.html
+++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-curl.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-dataurisrc.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-dataurisrc.html
index e97653b..c4508f1 100644
--- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-dataurisrc.html
+++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-dataurisrc.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-debugutilsbad.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-debugutilsbad.html
index 51ff083..2576f0c 100644
--- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-debugutilsbad.html
+++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-debugutilsbad.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-dtsdec.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-dtsdec.html
index d134050..9cdbd73 100644
--- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-dtsdec.html
+++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-dtsdec.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-dvb.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-dvb.html
index f5e2774..7a47c96 100644
--- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-dvb.html
+++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-dvb.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-dvdspu.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-dvdspu.html
index 760c329..337e8ef 100644
--- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-dvdspu.html
+++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-dvdspu.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-faad.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-faad.html
index 48aa52d..d3a3c45 100644
--- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-faad.html
+++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-faad.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-festival.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-festival.html
index af0010d..35d27f1 100644
--- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-festival.html
+++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-festival.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-gaudieffects.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-gaudieffects.html
index 05adbbb..d689f46 100644
--- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-gaudieffects.html
+++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-gaudieffects.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-geometrictransform.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-geometrictransform.html
index 747c768..8c31718 100644
--- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-geometrictransform.html
+++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-geometrictransform.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-gsm.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-gsm.html
index f0c8da7..e3c5400 100644
--- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-gsm.html
+++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-gsm.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-jpegformat.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-jpegformat.html
index 969ec6d..f80b10e 100644
--- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-jpegformat.html
+++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-jpegformat.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-liveadder.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-liveadder.html
index 7054d73..27d7cc1 100644
--- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-liveadder.html
+++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-liveadder.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-mimic.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-mimic.html
index 68b3542..20986f6 100644
--- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-mimic.html
+++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-mimic.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-mms.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-mms.html
index 403da0f..5d07020 100644
--- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-mms.html
+++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-mms.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-modplug.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-modplug.html
index 67214a8..55a5bc9 100644
--- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-modplug.html
+++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-modplug.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-mpeg2enc.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-mpeg2enc.html
index e64ab78..1df9ac0 100644
--- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-mpeg2enc.html
+++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-mpeg2enc.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-mpegpsmux.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-mpegpsmux.html
index 8b9fe8b..c2de15f 100644
--- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-mpegpsmux.html
+++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-mpegpsmux.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-mpegtsmux.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-mpegtsmux.html
index a1a0608..ab2a9fa 100644
--- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-mpegtsmux.html
+++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-mpegtsmux.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-mplex.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-mplex.html
index 61ff529..c02b845 100644
--- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-mplex.html
+++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-mplex.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-ofa.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-ofa.html
index 8d045f5..0a348e4 100644
--- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-ofa.html
+++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-ofa.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-openal.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-openal.html
index 6fa9db3..140dbb3 100644
--- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-openal.html
+++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-openal.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-opus.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-opus.html
index 73d1129..b992a25 100644
--- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-opus.html
+++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-opus.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-pcapparse.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-pcapparse.html
index dcf152b..5bc9186 100644
--- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-pcapparse.html
+++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-pcapparse.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-rawparse.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-rawparse.html
index 51d6599..7668e44 100644
--- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-rawparse.html
+++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-rawparse.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-rfbsrc.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-rfbsrc.html
index 7af0fd2..45721ad 100644
--- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-rfbsrc.html
+++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-rfbsrc.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-rtmp.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-rtmp.html
index b8cb5d9..326ee12 100644
--- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-rtmp.html
+++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-rtmp.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-sdp.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-sdp.html
index 66db4ee..a9dace0 100644
--- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-sdp.html
+++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-sdp.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-shm.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-shm.html
index 031dbfe..1cf9b98 100644
--- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-shm.html
+++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-shm.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-soundtouch.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-soundtouch.html
index dbbff01..edae336 100644
--- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-soundtouch.html
+++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-soundtouch.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-speed.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-speed.html
index adb88b9..697fda7 100644
--- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-speed.html
+++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-speed.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-voaacenc.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-voaacenc.html
index 067374c..9035314 100644
--- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-voaacenc.html
+++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-voaacenc.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-voamrwbenc.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-voamrwbenc.html
index 7a5728e..f2a1230 100644
--- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-voamrwbenc.html
+++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-voamrwbenc.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-zbar.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-zbar.html
index d732a67..a9788bf 100644
--- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-zbar.html
+++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-zbar.html
@@ -41,7 +41,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-rtpopusdepay.html b/docs/plugins/html/gst-plugins-bad-plugins-rtpopusdepay.html
index 6e76a1e..fe85ed7 100644
--- a/docs/plugins/html/gst-plugins-bad-plugins-rtpopusdepay.html
+++ b/docs/plugins/html/gst-plugins-bad-plugins-rtpopusdepay.html
@@ -32,7 +32,7 @@
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
-<a name="GstOpenalSrc"></a><a name="GstOpencvTextOverlay"></a><a name="GstOpusDec"></a><a name="GstOpusEnc"></a><a name="GstOpusParse"></a><a name="GstRTPOpusDepay"></a><div class="refsect1">
+<a name="GstOpenalSrc"></a><a name="GstOpusDec"></a><a name="GstOpusEnc"></a><a name="GstOpusParse"></a><a name="GstRTPOpusDepay"></a><div class="refsect1">
 <a name="gst-plugins-bad-plugins-rtpopusdepay.other"></a><h2>Types and Values</h2>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
@@ -60,7 +60,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.61.11.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.61.10.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.61.11.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.61.10.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-rtpopuspay.html b/docs/plugins/html/gst-plugins-bad-plugins-rtpopuspay.html
index a866a3e..6c51d31 100644
--- a/docs/plugins/html/gst-plugins-bad-plugins-rtpopuspay.html
+++ b/docs/plugins/html/gst-plugins-bad-plugins-rtpopuspay.html
@@ -32,7 +32,7 @@
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
-<a name="GstOpenalSrc"></a><a name="GstOpencvTextOverlay"></a><a name="GstOpusDec"></a><a name="GstOpusEnc"></a><a name="GstOpusParse"></a><a name="GstRTPOpusDepay"></a><a name="GstRtpOPUSPay"></a><div class="refsect1">
+<a name="GstOpenalSrc"></a><a name="GstOpusDec"></a><a name="GstOpusEnc"></a><a name="GstOpusParse"></a><a name="GstRTPOpusDepay"></a><a name="GstRtpOPUSPay"></a><div class="refsect1">
 <a name="gst-plugins-bad-plugins-rtpopuspay.other"></a><h2>Types and Values</h2>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
@@ -60,7 +60,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.60.12.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.60.11.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.60.12.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.60.11.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-templatematch.html b/docs/plugins/html/gst-plugins-bad-plugins-templatematch.html
index 3b2ce86..1023f50 100644
--- a/docs/plugins/html/gst-plugins-bad-plugins-templatematch.html
+++ b/docs/plugins/html/gst-plugins-bad-plugins-templatematch.html
@@ -15,8 +15,7 @@
 <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-bad-plugins-templatematch.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
-                  <a href="#gst-plugins-bad-plugins-templatematch.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-bad-plugins-templatematch.description" class="shortcut">Description</a></span><span id="nav_properties">  <span class="dim">|</span> 
                   <a href="#gst-plugins-bad-plugins-templatematch.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>
@@ -61,7 +60,7 @@
 </tbody>
 </table></div>
 </div>
-<a name="GstSynaeScope"></a><a name="GstTemplateMatch"></a><div class="refsect1">
+<a name="GstSynaeScope"></a><div class="refsect1">
 <a name="gst-plugins-bad-plugins-templatematch.other"></a><h2>Types and Values</h2>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
@@ -70,25 +69,16 @@
 </colgroup>
 <tbody><tr>
 <td class="datatype_keyword">struct</td>
-<td class="function_name"><a class="link" href="gst-plugins-bad-plugins-templatematch.html#GstTemplateMatch-struct" title="struct GstTemplateMatch">GstTemplateMatch</a></td>
+<td class="function_name"><a class="link" href="gst-plugins-bad-plugins-templatematch.html#GstTemplateMatch" title="struct GstTemplateMatch">GstTemplateMatch</a></td>
 </tr></tbody>
 </table></div>
 </div>
 <div class="refsect1">
-<a name="gst-plugins-bad-plugins-templatematch.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<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> GstTemplateMatch
-</pre>
-</div>
-<div class="refsect1">
 <a name="gst-plugins-bad-plugins-templatematch.description"></a><h2>Description</h2>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.79.8.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.79.6.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -114,7 +104,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.79.8.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.79.6.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -173,8 +163,20 @@
 <div class="refsect1">
 <a name="gst-plugins-bad-plugins-templatematch.other_details"></a><h2>Types and Values</h2>
 <div class="refsect2">
-<a name="GstTemplateMatch-struct"></a><h3>struct GstTemplateMatch</h3>
-<pre class="programlisting">struct GstTemplateMatch;</pre>
+<a name="GstTemplateMatch"></a><h3>struct GstTemplateMatch</h3>
+<pre class="programlisting">struct GstTemplateMatch {
+  GstElement element;
+
+  GstPad *sinkpad, *srcpad;
+
+  gint method;
+  gboolean display;
+
+  gchar *templ;
+
+  IplImage *cvImage, *cvGray, *cvTemplateImage, *cvDistImage;
+};
+</pre>
 </div>
 </div>
 <div class="refsect1">
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-voaacenc.html b/docs/plugins/html/gst-plugins-bad-plugins-voaacenc.html
index e5a8ed7..325654d 100644
--- a/docs/plugins/html/gst-plugins-bad-plugins-voaacenc.html
+++ b/docs/plugins/html/gst-plugins-bad-plugins-voaacenc.html
@@ -130,7 +130,11 @@
 </tr>
 <tr>
 <td><p><span class="term">details</span></p></td>
-<td>audio/x-raw, format=(string)S16LE, layout=(string)interleaved, rate=(int){ 8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000, 64000, 88200, 96000 }, channels=(int)[ 1, 2 ]</td>
+<td>audio/x-raw, format=(string)S16LE, layout=(string)interleaved, rate=(int){ 8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000, 64000, 88200, 96000 }, channels=(int)1</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> audio/x-raw, format=(string)S16LE, layout=(string)interleaved, rate=(int){ 8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000, 64000, 88200, 96000 }, channels=(int)2, channel-mask=(bitmask)0x0000000000000003</td>
 </tr>
 </tbody>
 </table></div>
diff --git a/docs/plugins/html/index.html b/docs/plugins/html/index.html
index e0afd6d..0f542e7 100644
--- a/docs/plugins/html/index.html
+++ b/docs/plugins/html/index.html
@@ -15,7 +15,7 @@
 <div>
 <div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">GStreamer Bad Plugins 1.0 Plugins Reference Manual</p></th></tr></table></div>
 <div><p class="releaseinfo">
-      for GStreamer Bad Plugins 1.0 (1.5.2)
+      for GStreamer Bad Plugins 1.0 (1.5.90)
       The latest version of this documentation can be found on-line at
       <a class="ulink" href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-bad/html/" target="_top">http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-bad/html/</a>.
     </p></div>
diff --git a/docs/plugins/html/index.sgml b/docs/plugins/html/index.sgml
index e994587..01c0987 100644
--- a/docs/plugins/html/index.sgml
+++ b/docs/plugins/html/index.sgml
@@ -148,49 +148,39 @@
 <ANCHOR id="gst-plugins-bad-plugins-compositor.property-details" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-compositor.html#gst-plugins-bad-plugins-compositor.property-details">
 <ANCHOR id="GstCompositor--background" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-compositor.html#GstCompositor--background">
 <ANCHOR id="gst-plugins-bad-plugins-cvdilate" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-cvdilate.html">
-<ANCHOR id="GstCvDilate" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-cvdilate.html#GstCvDilate">
 <ANCHOR id="gst-plugins-bad-plugins-cvdilate.other" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-cvdilate.html#gst-plugins-bad-plugins-cvdilate.other">
-<ANCHOR id="gst-plugins-bad-plugins-cvdilate.object-hierarchy" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-cvdilate.html#gst-plugins-bad-plugins-cvdilate.object-hierarchy">
 <ANCHOR id="gst-plugins-bad-plugins-cvdilate.description" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-cvdilate.html#gst-plugins-bad-plugins-cvdilate.description">
 <ANCHOR id="gst-plugins-bad-plugins-cvdilate.functions_details" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-cvdilate.html#gst-plugins-bad-plugins-cvdilate.functions_details">
 <ANCHOR id="gst-plugins-bad-plugins-cvdilate.other_details" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-cvdilate.html#gst-plugins-bad-plugins-cvdilate.other_details">
-<ANCHOR id="GstCvDilate-struct" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-cvdilate.html#GstCvDilate-struct">
+<ANCHOR id="GstCvDilate" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-cvdilate.html#GstCvDilate">
 <ANCHOR id="gst-plugins-bad-plugins-cverode" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-cverode.html">
-<ANCHOR id="GstCvErode" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-cverode.html#GstCvErode">
 <ANCHOR id="gst-plugins-bad-plugins-cverode.other" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-cverode.html#gst-plugins-bad-plugins-cverode.other">
-<ANCHOR id="gst-plugins-bad-plugins-cverode.object-hierarchy" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-cverode.html#gst-plugins-bad-plugins-cverode.object-hierarchy">
 <ANCHOR id="gst-plugins-bad-plugins-cverode.description" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-cverode.html#gst-plugins-bad-plugins-cverode.description">
 <ANCHOR id="gst-plugins-bad-plugins-cverode.functions_details" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-cverode.html#gst-plugins-bad-plugins-cverode.functions_details">
 <ANCHOR id="gst-plugins-bad-plugins-cverode.other_details" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-cverode.html#gst-plugins-bad-plugins-cverode.other_details">
-<ANCHOR id="GstCvErode-struct" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-cverode.html#GstCvErode-struct">
+<ANCHOR id="GstCvErode" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-cverode.html#GstCvErode">
 <ANCHOR id="gst-plugins-bad-plugins-cvequalizehist" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-cvequalizehist.html">
-<ANCHOR id="GstCvEqualizeHist" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-cvequalizehist.html#GstCvEqualizeHist">
 <ANCHOR id="gst-plugins-bad-plugins-cvequalizehist.other" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-cvequalizehist.html#gst-plugins-bad-plugins-cvequalizehist.other">
-<ANCHOR id="gst-plugins-bad-plugins-cvequalizehist.object-hierarchy" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-cvequalizehist.html#gst-plugins-bad-plugins-cvequalizehist.object-hierarchy">
 <ANCHOR id="gst-plugins-bad-plugins-cvequalizehist.description" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-cvequalizehist.html#gst-plugins-bad-plugins-cvequalizehist.description">
 <ANCHOR id="gst-plugins-bad-plugins-cvequalizehist.functions_details" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-cvequalizehist.html#gst-plugins-bad-plugins-cvequalizehist.functions_details">
 <ANCHOR id="gst-plugins-bad-plugins-cvequalizehist.other_details" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-cvequalizehist.html#gst-plugins-bad-plugins-cvequalizehist.other_details">
-<ANCHOR id="GstCvEqualizeHist-struct" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-cvequalizehist.html#GstCvEqualizeHist-struct">
+<ANCHOR id="GstCvEqualizeHist" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-cvequalizehist.html#GstCvEqualizeHist">
 <ANCHOR id="gst-plugins-bad-plugins-cvlaplace" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-cvlaplace.html">
 <ANCHOR id="gst-plugins-bad-plugins-cvlaplace.properties" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-cvlaplace.html#gst-plugins-bad-plugins-cvlaplace.properties">
-<ANCHOR id="GstCvLaplace" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-cvlaplace.html#GstCvLaplace">
 <ANCHOR id="gst-plugins-bad-plugins-cvlaplace.other" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-cvlaplace.html#gst-plugins-bad-plugins-cvlaplace.other">
-<ANCHOR id="gst-plugins-bad-plugins-cvlaplace.object-hierarchy" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-cvlaplace.html#gst-plugins-bad-plugins-cvlaplace.object-hierarchy">
 <ANCHOR id="gst-plugins-bad-plugins-cvlaplace.description" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-cvlaplace.html#gst-plugins-bad-plugins-cvlaplace.description">
 <ANCHOR id="gst-plugins-bad-plugins-cvlaplace.functions_details" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-cvlaplace.html#gst-plugins-bad-plugins-cvlaplace.functions_details">
 <ANCHOR id="gst-plugins-bad-plugins-cvlaplace.other_details" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-cvlaplace.html#gst-plugins-bad-plugins-cvlaplace.other_details">
-<ANCHOR id="GstCvLaplace-struct" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-cvlaplace.html#GstCvLaplace-struct">
+<ANCHOR id="GstCvLaplace" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-cvlaplace.html#GstCvLaplace">
 <ANCHOR id="gst-plugins-bad-plugins-cvlaplace.property-details" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-cvlaplace.html#gst-plugins-bad-plugins-cvlaplace.property-details">
 <ANCHOR id="GstCvLaplace--aperture-size" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-cvlaplace.html#GstCvLaplace--aperture-size">
 <ANCHOR id="gst-plugins-bad-plugins-cvsmooth" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-cvsmooth.html">
 <ANCHOR id="gst-plugins-bad-plugins-cvsmooth.properties" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-cvsmooth.html#gst-plugins-bad-plugins-cvsmooth.properties">
-<ANCHOR id="GstCvSmooth" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-cvsmooth.html#GstCvSmooth">
 <ANCHOR id="gst-plugins-bad-plugins-cvsmooth.other" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-cvsmooth.html#gst-plugins-bad-plugins-cvsmooth.other">
-<ANCHOR id="gst-plugins-bad-plugins-cvsmooth.object-hierarchy" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-cvsmooth.html#gst-plugins-bad-plugins-cvsmooth.object-hierarchy">
 <ANCHOR id="gst-plugins-bad-plugins-cvsmooth.description" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-cvsmooth.html#gst-plugins-bad-plugins-cvsmooth.description">
 <ANCHOR id="gst-plugins-bad-plugins-cvsmooth.functions_details" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-cvsmooth.html#gst-plugins-bad-plugins-cvsmooth.functions_details">
 <ANCHOR id="gst-plugins-bad-plugins-cvsmooth.other_details" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-cvsmooth.html#gst-plugins-bad-plugins-cvsmooth.other_details">
-<ANCHOR id="GstCvSmooth-struct" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-cvsmooth.html#GstCvSmooth-struct">
+<ANCHOR id="GstCvSmooth" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-cvsmooth.html#GstCvSmooth">
 <ANCHOR id="gst-plugins-bad-plugins-cvsmooth.property-details" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-cvsmooth.html#gst-plugins-bad-plugins-cvsmooth.property-details">
 <ANCHOR id="GstCvSmooth--param1" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-cvsmooth.html#GstCvSmooth--param1">
 <ANCHOR id="GstCvSmooth--param2" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-cvsmooth.html#GstCvSmooth--param2">
@@ -203,13 +193,11 @@
 <ANCHOR id="GstCvSmooth--width" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-cvsmooth.html#GstCvSmooth--width">
 <ANCHOR id="gst-plugins-bad-plugins-cvsobel" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-cvsobel.html">
 <ANCHOR id="gst-plugins-bad-plugins-cvsobel.properties" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-cvsobel.html#gst-plugins-bad-plugins-cvsobel.properties">
-<ANCHOR id="GstCvSobel" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-cvsobel.html#GstCvSobel">
 <ANCHOR id="gst-plugins-bad-plugins-cvsobel.other" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-cvsobel.html#gst-plugins-bad-plugins-cvsobel.other">
-<ANCHOR id="gst-plugins-bad-plugins-cvsobel.object-hierarchy" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-cvsobel.html#gst-plugins-bad-plugins-cvsobel.object-hierarchy">
 <ANCHOR id="gst-plugins-bad-plugins-cvsobel.description" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-cvsobel.html#gst-plugins-bad-plugins-cvsobel.description">
 <ANCHOR id="gst-plugins-bad-plugins-cvsobel.functions_details" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-cvsobel.html#gst-plugins-bad-plugins-cvsobel.functions_details">
 <ANCHOR id="gst-plugins-bad-plugins-cvsobel.other_details" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-cvsobel.html#gst-plugins-bad-plugins-cvsobel.other_details">
-<ANCHOR id="GstCvSobel-struct" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-cvsobel.html#GstCvSobel-struct">
+<ANCHOR id="GstCvSobel" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-cvsobel.html#GstCvSobel">
 <ANCHOR id="gst-plugins-bad-plugins-cvsobel.property-details" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-cvsobel.html#gst-plugins-bad-plugins-cvsobel.property-details">
 <ANCHOR id="GstCvSobel--aperture-size" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-cvsobel.html#GstCvSobel--aperture-size">
 <ANCHOR id="GstCvSobel--x-order" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-cvsobel.html#GstCvSobel--x-order">
@@ -702,7 +690,6 @@
 <ANCHOR id="gst-plugins-bad-plugins-opusdec" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-opusdec.html">
 <ANCHOR id="gst-plugins-bad-plugins-opusdec.properties" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-opusdec.html#gst-plugins-bad-plugins-opusdec.properties">
 <ANCHOR id="GstOpenalSrc" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-opusdec.html#GstOpenalSrc">
-<ANCHOR id="GstOpencvTextOverlay" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-opusdec.html#GstOpencvTextOverlay">
 <ANCHOR id="GstOpusDec" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-opusdec.html#GstOpusDec">
 <ANCHOR id="gst-plugins-bad-plugins-opusdec.other" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-opusdec.html#gst-plugins-bad-plugins-opusdec.other">
 <ANCHOR id="gst-plugins-bad-plugins-opusdec.object-hierarchy" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-opusdec.html#gst-plugins-bad-plugins-opusdec.object-hierarchy">
@@ -716,7 +703,6 @@
 <ANCHOR id="gst-plugins-bad-plugins-opusenc" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-opusenc.html">
 <ANCHOR id="gst-plugins-bad-plugins-opusenc.properties" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-opusenc.html#gst-plugins-bad-plugins-opusenc.properties">
 <ANCHOR id="GstOpenalSrc" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-opusenc.html#GstOpenalSrc">
-<ANCHOR id="GstOpencvTextOverlay" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-opusenc.html#GstOpencvTextOverlay">
 <ANCHOR id="GstOpusDec" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-opusenc.html#GstOpusDec">
 <ANCHOR id="GstOpusEnc" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-opusenc.html#GstOpusEnc">
 <ANCHOR id="gst-plugins-bad-plugins-opusenc.other" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-opusenc.html#gst-plugins-bad-plugins-opusenc.other">
@@ -741,7 +727,6 @@
 <ANCHOR id="GstOpusEnc--bitrate-type" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-opusenc.html#GstOpusEnc--bitrate-type">
 <ANCHOR id="gst-plugins-bad-plugins-opusparse" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-opusparse.html">
 <ANCHOR id="GstOpenalSrc" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-opusparse.html#GstOpenalSrc">
-<ANCHOR id="GstOpencvTextOverlay" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-opusparse.html#GstOpencvTextOverlay">
 <ANCHOR id="GstOpusDec" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-opusparse.html#GstOpusDec">
 <ANCHOR id="GstOpusEnc" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-opusparse.html#GstOpusEnc">
 <ANCHOR id="GstOpusParse" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-opusparse.html#GstOpusParse">
@@ -753,7 +738,6 @@
 <ANCHOR id="GstOpusParse-struct" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-opusparse.html#GstOpusParse-struct">
 <ANCHOR id="gst-plugins-bad-plugins-rtpopuspay" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-rtpopuspay.html">
 <ANCHOR id="GstOpenalSrc" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-rtpopuspay.html#GstOpenalSrc">
-<ANCHOR id="GstOpencvTextOverlay" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-rtpopuspay.html#GstOpencvTextOverlay">
 <ANCHOR id="GstOpusDec" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-rtpopuspay.html#GstOpusDec">
 <ANCHOR id="GstOpusEnc" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-rtpopuspay.html#GstOpusEnc">
 <ANCHOR id="GstOpusParse" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-rtpopuspay.html#GstOpusParse">
@@ -767,7 +751,6 @@
 <ANCHOR id="GstRtpOPUSPay-struct" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-rtpopuspay.html#GstRtpOPUSPay-struct">
 <ANCHOR id="gst-plugins-bad-plugins-rtpopusdepay" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-rtpopusdepay.html">
 <ANCHOR id="GstOpenalSrc" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-rtpopusdepay.html#GstOpenalSrc">
-<ANCHOR id="GstOpencvTextOverlay" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-rtpopusdepay.html#GstOpencvTextOverlay">
 <ANCHOR id="GstOpusDec" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-rtpopusdepay.html#GstOpusDec">
 <ANCHOR id="GstOpusEnc" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-rtpopusdepay.html#GstOpusEnc">
 <ANCHOR id="GstOpusParse" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-rtpopusdepay.html#GstOpusParse">
@@ -996,13 +979,11 @@
 <ANCHOR id="gst-plugins-bad-plugins-templatematch" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-templatematch.html">
 <ANCHOR id="gst-plugins-bad-plugins-templatematch.properties" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-templatematch.html#gst-plugins-bad-plugins-templatematch.properties">
 <ANCHOR id="GstSynaeScope" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-templatematch.html#GstSynaeScope">
-<ANCHOR id="GstTemplateMatch" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-templatematch.html#GstTemplateMatch">
 <ANCHOR id="gst-plugins-bad-plugins-templatematch.other" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-templatematch.html#gst-plugins-bad-plugins-templatematch.other">
-<ANCHOR id="gst-plugins-bad-plugins-templatematch.object-hierarchy" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-templatematch.html#gst-plugins-bad-plugins-templatematch.object-hierarchy">
 <ANCHOR id="gst-plugins-bad-plugins-templatematch.description" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-templatematch.html#gst-plugins-bad-plugins-templatematch.description">
 <ANCHOR id="gst-plugins-bad-plugins-templatematch.functions_details" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-templatematch.html#gst-plugins-bad-plugins-templatematch.functions_details">
 <ANCHOR id="gst-plugins-bad-plugins-templatematch.other_details" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-templatematch.html#gst-plugins-bad-plugins-templatematch.other_details">
-<ANCHOR id="GstTemplateMatch-struct" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-templatematch.html#GstTemplateMatch-struct">
+<ANCHOR id="GstTemplateMatch" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-templatematch.html#GstTemplateMatch">
 <ANCHOR id="gst-plugins-bad-plugins-templatematch.property-details" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-templatematch.html#gst-plugins-bad-plugins-templatematch.property-details">
 <ANCHOR id="GstTemplateMatch--display" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-templatematch.html#GstTemplateMatch--display">
 <ANCHOR id="GstTemplateMatch--method" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-templatematch.html#GstTemplateMatch--method">
@@ -1010,13 +991,11 @@
 <ANCHOR id="gst-plugins-bad-plugins-opencvtextoverlay" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-opencvtextoverlay.html">
 <ANCHOR id="gst-plugins-bad-plugins-opencvtextoverlay.properties" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-opencvtextoverlay.html#gst-plugins-bad-plugins-opencvtextoverlay.properties">
 <ANCHOR id="GstOpenalSrc" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-opencvtextoverlay.html#GstOpenalSrc">
-<ANCHOR id="GstOpencvTextOverlay" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-opencvtextoverlay.html#GstOpencvTextOverlay">
 <ANCHOR id="gst-plugins-bad-plugins-opencvtextoverlay.other" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-opencvtextoverlay.html#gst-plugins-bad-plugins-opencvtextoverlay.other">
-<ANCHOR id="gst-plugins-bad-plugins-opencvtextoverlay.object-hierarchy" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-opencvtextoverlay.html#gst-plugins-bad-plugins-opencvtextoverlay.object-hierarchy">
 <ANCHOR id="gst-plugins-bad-plugins-opencvtextoverlay.description" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-opencvtextoverlay.html#gst-plugins-bad-plugins-opencvtextoverlay.description">
 <ANCHOR id="gst-plugins-bad-plugins-opencvtextoverlay.functions_details" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-opencvtextoverlay.html#gst-plugins-bad-plugins-opencvtextoverlay.functions_details">
 <ANCHOR id="gst-plugins-bad-plugins-opencvtextoverlay.other_details" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-opencvtextoverlay.html#gst-plugins-bad-plugins-opencvtextoverlay.other_details">
-<ANCHOR id="GstOpencvTextOverlay-struct" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-opencvtextoverlay.html#GstOpencvTextOverlay-struct">
+<ANCHOR id="GstOpencvTextOverlay" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-opencvtextoverlay.html#GstOpencvTextOverlay">
 <ANCHOR id="gst-plugins-bad-plugins-opencvtextoverlay.property-details" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-opencvtextoverlay.html#gst-plugins-bad-plugins-opencvtextoverlay.property-details">
 <ANCHOR id="GstOpencvTextOverlay--colorB" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-opencvtextoverlay.html#GstOpencvTextOverlay--colorB">
 <ANCHOR id="GstOpencvTextOverlay--colorG" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-opencvtextoverlay.html#GstOpencvTextOverlay--colorG">
diff --git a/docs/plugins/inspect/plugin-accurip.xml b/docs/plugins/inspect/plugin-accurip.xml
index e2b8f10..9eca03c 100644
--- a/docs/plugins/inspect/plugin-accurip.xml
+++ b/docs/plugins/inspect/plugin-accurip.xml
@@ -3,7 +3,7 @@
   <description>Computes an AccurateRip CRC</description>
   <filename>../../gst/accurip/.libs/libgstaccurip.so</filename>
   <basename>libgstaccurip.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-adpcmdec.xml b/docs/plugins/inspect/plugin-adpcmdec.xml
index c1a9117..e4f61f3 100644
--- a/docs/plugins/inspect/plugin-adpcmdec.xml
+++ b/docs/plugins/inspect/plugin-adpcmdec.xml
@@ -3,7 +3,7 @@
   <description>ADPCM decoder</description>
   <filename>../../gst/adpcmdec/.libs/libgstadpcmdec.so</filename>
   <basename>libgstadpcmdec.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-adpcmenc.xml b/docs/plugins/inspect/plugin-adpcmenc.xml
index 10abe02..15e71a7 100644
--- a/docs/plugins/inspect/plugin-adpcmenc.xml
+++ b/docs/plugins/inspect/plugin-adpcmenc.xml
@@ -3,7 +3,7 @@
   <description>ADPCM encoder</description>
   <filename>../../gst/adpcmenc/.libs/libgstadpcmenc.so</filename>
   <basename>libgstadpcmenc.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-aiff.xml b/docs/plugins/inspect/plugin-aiff.xml
index 0fb26c4..af1e675 100644
--- a/docs/plugins/inspect/plugin-aiff.xml
+++ b/docs/plugins/inspect/plugin-aiff.xml
@@ -3,7 +3,7 @@
   <description>Create and parse Audio Interchange File Format (AIFF) files</description>
   <filename>../../gst/aiff/.libs/libgstaiff.so</filename>
   <basename>libgstaiff.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-asfmux.xml b/docs/plugins/inspect/plugin-asfmux.xml
index 2fb2dec..ae87360 100644
--- a/docs/plugins/inspect/plugin-asfmux.xml
+++ b/docs/plugins/inspect/plugin-asfmux.xml
@@ -3,7 +3,7 @@
   <description>ASF Muxer Plugin</description>
   <filename>../../gst/asfmux/.libs/libgstasfmux.so</filename>
   <basename>libgstasfmux.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-assrender.xml b/docs/plugins/inspect/plugin-assrender.xml
index bbb5812..101f116 100644
--- a/docs/plugins/inspect/plugin-assrender.xml
+++ b/docs/plugins/inspect/plugin-assrender.xml
@@ -3,7 +3,7 @@
   <description>ASS/SSA subtitle renderer</description>
   <filename>../../ext/assrender/.libs/libgstassrender.so</filename>
   <basename>libgstassrender.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-audiofxbad.xml b/docs/plugins/inspect/plugin-audiofxbad.xml
index 41e2b8d..7fb2a0a 100644
--- a/docs/plugins/inspect/plugin-audiofxbad.xml
+++ b/docs/plugins/inspect/plugin-audiofxbad.xml
@@ -3,7 +3,7 @@
   <description>Audio filters from gst-plugins-bad</description>
   <filename>../../gst/audiofxbad/.libs/libgstaudiofxbad.so</filename>
   <basename>libgstaudiofxbad.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins</package>
diff --git a/docs/plugins/inspect/plugin-audiomixer.xml b/docs/plugins/inspect/plugin-audiomixer.xml
index bf00cf0..d0649df 100644
--- a/docs/plugins/inspect/plugin-audiomixer.xml
+++ b/docs/plugins/inspect/plugin-audiomixer.xml
@@ -3,7 +3,7 @@
   <description>Mixes multiple audio streams</description>
   <filename>../../gst/audiomixer/.libs/libgstaudiomixer.so</filename>
   <basename>libgstaudiomixer.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-audiovisualizers.xml b/docs/plugins/inspect/plugin-audiovisualizers.xml
index 718d9a7..a0c389a 100644
--- a/docs/plugins/inspect/plugin-audiovisualizers.xml
+++ b/docs/plugins/inspect/plugin-audiovisualizers.xml
@@ -3,7 +3,7 @@
   <description>Creates video visualizations of audio input</description>
   <filename>../../gst/audiovisualizers/.libs/libgstaudiovisualizers.so</filename>
   <basename>libgstaudiovisualizers.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-autoconvert.xml b/docs/plugins/inspect/plugin-autoconvert.xml
index 56d5330..d02804f 100644
--- a/docs/plugins/inspect/plugin-autoconvert.xml
+++ b/docs/plugins/inspect/plugin-autoconvert.xml
@@ -3,7 +3,7 @@
   <description>Selects convertor element based on caps</description>
   <filename>../../gst/autoconvert/.libs/libgstautoconvert.so</filename>
   <basename>libgstautoconvert.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-bayer.xml b/docs/plugins/inspect/plugin-bayer.xml
index 29e3487..00d5d76 100644
--- a/docs/plugins/inspect/plugin-bayer.xml
+++ b/docs/plugins/inspect/plugin-bayer.xml
@@ -3,7 +3,7 @@
   <description>Elements to convert Bayer images</description>
   <filename>../../gst/bayer/.libs/libgstbayer.so</filename>
   <basename>libgstbayer.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-bz2.xml b/docs/plugins/inspect/plugin-bz2.xml
index 3a53f1f..3ba6b7a 100644
--- a/docs/plugins/inspect/plugin-bz2.xml
+++ b/docs/plugins/inspect/plugin-bz2.xml
@@ -3,7 +3,7 @@
   <description>Compress or decompress streams</description>
   <filename>../../ext/bz2/.libs/libgstbz2.so</filename>
   <basename>libgstbz2.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-camerabin.xml b/docs/plugins/inspect/plugin-camerabin.xml
index 14921c1..1d238c4 100644
--- a/docs/plugins/inspect/plugin-camerabin.xml
+++ b/docs/plugins/inspect/plugin-camerabin.xml
@@ -3,7 +3,7 @@
   <description>Take image snapshots and record movies from camera</description>
   <filename>../../gst/camerabin2/.libs/libgstcamerabin2.so</filename>
   <basename>libgstcamerabin2.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-chromaprint.xml b/docs/plugins/inspect/plugin-chromaprint.xml
index 94353c5..9d12c4b 100644
--- a/docs/plugins/inspect/plugin-chromaprint.xml
+++ b/docs/plugins/inspect/plugin-chromaprint.xml
@@ -3,7 +3,7 @@
   <description>Calculate Chromaprint fingerprint from audio files</description>
   <filename>../../ext/chromaprint/.libs/libgstchromaprint.so</filename>
   <basename>libgstchromaprint.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-coloreffects.xml b/docs/plugins/inspect/plugin-coloreffects.xml
index 7bc5619..c94ae00 100644
--- a/docs/plugins/inspect/plugin-coloreffects.xml
+++ b/docs/plugins/inspect/plugin-coloreffects.xml
@@ -3,7 +3,7 @@
   <description>Color Look-up Table filters</description>
   <filename>../../gst/coloreffects/.libs/libgstcoloreffects.so</filename>
   <basename>libgstcoloreffects.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-compositor.xml b/docs/plugins/inspect/plugin-compositor.xml
index 55b83a1..b6be230 100644
--- a/docs/plugins/inspect/plugin-compositor.xml
+++ b/docs/plugins/inspect/plugin-compositor.xml
@@ -3,7 +3,7 @@
   <description>Compositor</description>
   <filename>../../gst/compositor/.libs/libgstcompositor.so</filename>
   <basename>libgstcompositor.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-curl.xml b/docs/plugins/inspect/plugin-curl.xml
index 6757e82..1c15244 100644
--- a/docs/plugins/inspect/plugin-curl.xml
+++ b/docs/plugins/inspect/plugin-curl.xml
@@ -3,7 +3,7 @@
   <description>libcurl-based elements</description>
   <filename>../../ext/curl/.libs/libgstcurl.so</filename>
   <basename>libgstcurl.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-dashdemux.xml b/docs/plugins/inspect/plugin-dashdemux.xml
index 09f5f78..0bb43cf 100644
--- a/docs/plugins/inspect/plugin-dashdemux.xml
+++ b/docs/plugins/inspect/plugin-dashdemux.xml
@@ -3,11 +3,11 @@
   <description>DASH demuxer plugin</description>
   <filename>../../ext/dash/.libs/libgstdashdemux.so</filename>
   <basename>libgstdashdemux.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins</package>
-  <origin>http://www.gstreamer.org/</origin>
+  <origin>Unknown package origin</origin>
   <elements>
     <element>
       <name>dashdemux</name>
diff --git a/docs/plugins/inspect/plugin-dataurisrc.xml b/docs/plugins/inspect/plugin-dataurisrc.xml
index 0c3dbdc..4db0699 100644
--- a/docs/plugins/inspect/plugin-dataurisrc.xml
+++ b/docs/plugins/inspect/plugin-dataurisrc.xml
@@ -3,7 +3,7 @@
   <description>data: URI source</description>
   <filename>../../gst/dataurisrc/.libs/libgstdataurisrc.so</filename>
   <basename>libgstdataurisrc.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-debugutilsbad.xml b/docs/plugins/inspect/plugin-debugutilsbad.xml
index e172279..ae48caa 100644
--- a/docs/plugins/inspect/plugin-debugutilsbad.xml
+++ b/docs/plugins/inspect/plugin-debugutilsbad.xml
@@ -3,7 +3,7 @@
   <description>Collection of elements that may or may not be useful for debugging</description>
   <filename>../../gst/debugutils/.libs/libgstdebugutilsbad.so</filename>
   <basename>libgstdebugutilsbad.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-decklink.xml b/docs/plugins/inspect/plugin-decklink.xml
index f41d6e7..a2856c8 100644
--- a/docs/plugins/inspect/plugin-decklink.xml
+++ b/docs/plugins/inspect/plugin-decklink.xml
@@ -3,7 +3,7 @@
   <description>Blackmagic Decklink plugin</description>
   <filename>../../sys/decklink/.libs/libgstdecklink.so</filename>
   <basename>libgstdecklink.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins</package>
diff --git a/docs/plugins/inspect/plugin-dfbvideosink.xml b/docs/plugins/inspect/plugin-dfbvideosink.xml
index d9dd30a..667a9fe 100644
--- a/docs/plugins/inspect/plugin-dfbvideosink.xml
+++ b/docs/plugins/inspect/plugin-dfbvideosink.xml
@@ -3,7 +3,7 @@
   <description>DirectFB video output plugin</description>
   <filename>../../ext/directfb/.libs/libgstdfbvideosink.so</filename>
   <basename>libgstdfbvideosink.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-dtls.xml b/docs/plugins/inspect/plugin-dtls.xml
index 3ea3def..884a15d 100644
--- a/docs/plugins/inspect/plugin-dtls.xml
+++ b/docs/plugins/inspect/plugin-dtls.xml
@@ -3,7 +3,7 @@
   <description>DTLS decoder and encoder plugins</description>
   <filename>../../ext/dtls/.libs/libgstdtls.so</filename>
   <basename>libgstdtls.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>BSD</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-dtsdec.xml b/docs/plugins/inspect/plugin-dtsdec.xml
index eda667c..166c0f2 100644
--- a/docs/plugins/inspect/plugin-dtsdec.xml
+++ b/docs/plugins/inspect/plugin-dtsdec.xml
@@ -3,7 +3,7 @@
   <description>Decodes DTS audio streams</description>
   <filename>../../ext/dts/.libs/libgstdtsdec.so</filename>
   <basename>libgstdtsdec.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>GPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-dvb.xml b/docs/plugins/inspect/plugin-dvb.xml
index f2660ac..bd89fb7 100644
--- a/docs/plugins/inspect/plugin-dvb.xml
+++ b/docs/plugins/inspect/plugin-dvb.xml
@@ -3,7 +3,7 @@
   <description>DVB elements</description>
   <filename>../../sys/dvb/.libs/libgstdvb.so</filename>
   <basename>libgstdvb.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-dvbsuboverlay.xml b/docs/plugins/inspect/plugin-dvbsuboverlay.xml
index 78d856d..fc152b0 100644
--- a/docs/plugins/inspect/plugin-dvbsuboverlay.xml
+++ b/docs/plugins/inspect/plugin-dvbsuboverlay.xml
@@ -3,7 +3,7 @@
   <description>DVB subtitle renderer</description>
   <filename>../../gst/dvbsuboverlay/.libs/libgstdvbsuboverlay.so</filename>
   <basename>libgstdvbsuboverlay.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-dvdspu.xml b/docs/plugins/inspect/plugin-dvdspu.xml
index 40d9449..27bd2f3 100644
--- a/docs/plugins/inspect/plugin-dvdspu.xml
+++ b/docs/plugins/inspect/plugin-dvdspu.xml
@@ -3,7 +3,7 @@
   <description>DVD Sub-picture Overlay element</description>
   <filename>../../gst/dvdspu/.libs/libgstdvdspu.so</filename>
   <basename>libgstdvdspu.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-faad.xml b/docs/plugins/inspect/plugin-faad.xml
index 7ebeb98..76c0a71 100644
--- a/docs/plugins/inspect/plugin-faad.xml
+++ b/docs/plugins/inspect/plugin-faad.xml
@@ -3,7 +3,7 @@
   <description>Free AAC Decoder (FAAD)</description>
   <filename>../../ext/faad/.libs/libgstfaad.so</filename>
   <basename>libgstfaad.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>GPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-fbdevsink.xml b/docs/plugins/inspect/plugin-fbdevsink.xml
index 6792493..78a10dc 100644
--- a/docs/plugins/inspect/plugin-fbdevsink.xml
+++ b/docs/plugins/inspect/plugin-fbdevsink.xml
@@ -3,7 +3,7 @@
   <description>Linux framebuffer video sink</description>
   <filename>../../sys/fbdev/.libs/libgstfbdevsink.so</filename>
   <basename>libgstfbdevsink.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-festival.xml b/docs/plugins/inspect/plugin-festival.xml
index 237f8c9..ab408cf 100644
--- a/docs/plugins/inspect/plugin-festival.xml
+++ b/docs/plugins/inspect/plugin-festival.xml
@@ -3,7 +3,7 @@
   <description>Synthesizes plain text into audio</description>
   <filename>../../gst/festival/.libs/libgstfestival.so</filename>
   <basename>libgstfestival.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-fieldanalysis.xml b/docs/plugins/inspect/plugin-fieldanalysis.xml
index fec0b76..1f389ee 100644
--- a/docs/plugins/inspect/plugin-fieldanalysis.xml
+++ b/docs/plugins/inspect/plugin-fieldanalysis.xml
@@ -3,7 +3,7 @@
   <description>Video field analysis</description>
   <filename>../../gst/fieldanalysis/.libs/libgstfieldanalysis.so</filename>
   <basename>libgstfieldanalysis.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer</package>
diff --git a/docs/plugins/inspect/plugin-flite.xml b/docs/plugins/inspect/plugin-flite.xml
index 668068f..1762ef0 100644
--- a/docs/plugins/inspect/plugin-flite.xml
+++ b/docs/plugins/inspect/plugin-flite.xml
@@ -3,7 +3,7 @@
   <description>Flite speech synthesizer plugin</description>
   <filename>../../ext/flite/.libs/libgstflite.so</filename>
   <basename>libgstflite.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-fluidsynthmidi.xml b/docs/plugins/inspect/plugin-fluidsynthmidi.xml
index 897ac50..c4bafab 100644
--- a/docs/plugins/inspect/plugin-fluidsynthmidi.xml
+++ b/docs/plugins/inspect/plugin-fluidsynthmidi.xml
@@ -3,7 +3,7 @@
   <description>Fluidsynth MIDI Plugin</description>
   <filename>../../ext/fluidsynth/.libs/libgstfluidsynthmidi.so</filename>
   <basename>libgstfluidsynthmidi.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-fragmented.xml b/docs/plugins/inspect/plugin-fragmented.xml
index 3e2db57..70b6454 100644
--- a/docs/plugins/inspect/plugin-fragmented.xml
+++ b/docs/plugins/inspect/plugin-fragmented.xml
@@ -3,7 +3,7 @@
   <description>Fragmented streaming plugins</description>
   <filename>../../ext/hls/.libs/libgstfragmented.so</filename>
   <basename>libgstfragmented.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins</package>
diff --git a/docs/plugins/inspect/plugin-freeverb.xml b/docs/plugins/inspect/plugin-freeverb.xml
index e50c128..4d69435 100644
--- a/docs/plugins/inspect/plugin-freeverb.xml
+++ b/docs/plugins/inspect/plugin-freeverb.xml
@@ -3,7 +3,7 @@
   <description>Reverberation/room effect</description>
   <filename>../../gst/freeverb/.libs/libgstfreeverb.so</filename>
   <basename>libgstfreeverb.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-frei0r.xml b/docs/plugins/inspect/plugin-frei0r.xml
index 93e9be0..0cdae09 100644
--- a/docs/plugins/inspect/plugin-frei0r.xml
+++ b/docs/plugins/inspect/plugin-frei0r.xml
@@ -3,7 +3,7 @@
   <description>frei0r plugin library</description>
   <filename>../../gst/frei0r/.libs/libgstfrei0r.so</filename>
   <basename>libgstfrei0r.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-gaudieffects.xml b/docs/plugins/inspect/plugin-gaudieffects.xml
index e54a37c..f6b83e1 100644
--- a/docs/plugins/inspect/plugin-gaudieffects.xml
+++ b/docs/plugins/inspect/plugin-gaudieffects.xml
@@ -3,7 +3,7 @@
   <description>Gaudi video effects.</description>
   <filename>../../gst/gaudieffects/.libs/libgstgaudieffects.so</filename>
   <basename>libgstgaudieffects.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer</package>
diff --git a/docs/plugins/inspect/plugin-gdp.xml b/docs/plugins/inspect/plugin-gdp.xml
index f6e2b73..26e3ca5 100644
--- a/docs/plugins/inspect/plugin-gdp.xml
+++ b/docs/plugins/inspect/plugin-gdp.xml
@@ -3,7 +3,7 @@
   <description>Payload/depayload GDP packets</description>
   <filename>../../gst/gdp/.libs/libgstgdp.so</filename>
   <basename>libgstgdp.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-geometrictransform.xml b/docs/plugins/inspect/plugin-geometrictransform.xml
index fe8aaa7..9d557e0 100644
--- a/docs/plugins/inspect/plugin-geometrictransform.xml
+++ b/docs/plugins/inspect/plugin-geometrictransform.xml
@@ -3,7 +3,7 @@
   <description>Various geometric image transform elements</description>
   <filename>../../gst/geometrictransform/.libs/libgstgeometrictransform.so</filename>
   <basename>libgstgeometrictransform.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-gmedec.xml b/docs/plugins/inspect/plugin-gmedec.xml
index 812b809..fb2e1af 100644
--- a/docs/plugins/inspect/plugin-gmedec.xml
+++ b/docs/plugins/inspect/plugin-gmedec.xml
@@ -3,7 +3,7 @@
   <description>GME Audio Decoder</description>
   <filename>../../ext/gme/.libs/libgstgme.so</filename>
   <basename>libgstgme.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-gsm.xml b/docs/plugins/inspect/plugin-gsm.xml
index a17f71d..a9e3523 100644
--- a/docs/plugins/inspect/plugin-gsm.xml
+++ b/docs/plugins/inspect/plugin-gsm.xml
@@ -3,7 +3,7 @@
   <description>GSM encoder/decoder</description>
   <filename>../../ext/gsm/.libs/libgstgsm.so</filename>
   <basename>libgstgsm.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-gstgtk.xml b/docs/plugins/inspect/plugin-gstgtk.xml
index b0dddef..b032b48 100644
--- a/docs/plugins/inspect/plugin-gstgtk.xml
+++ b/docs/plugins/inspect/plugin-gstgtk.xml
@@ -3,7 +3,7 @@
   <description>Gtk+ sink</description>
   <filename>../../ext/gtk/.libs/libgstgtksink.so</filename>
   <basename>libgstgtksink.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-gstsiren.xml b/docs/plugins/inspect/plugin-gstsiren.xml
index fdd6c9a..0b271f0 100644
--- a/docs/plugins/inspect/plugin-gstsiren.xml
+++ b/docs/plugins/inspect/plugin-gstsiren.xml
@@ -3,7 +3,7 @@
   <description>Siren encoder/decoder/payloader/depayloader plugins</description>
   <filename>../../gst/siren/.libs/libgstsiren.so</filename>
   <basename>libgstsiren.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-id3tag.xml b/docs/plugins/inspect/plugin-id3tag.xml
index a260431..74163c6 100644
--- a/docs/plugins/inspect/plugin-id3tag.xml
+++ b/docs/plugins/inspect/plugin-id3tag.xml
@@ -3,7 +3,7 @@
   <description>ID3 v1 and v2 muxing plugin</description>
   <filename>../../gst/id3tag/.libs/libgstid3tag.so</filename>
   <basename>libgstid3tag.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-inter.xml b/docs/plugins/inspect/plugin-inter.xml
index f00cab2..6b66810 100644
--- a/docs/plugins/inspect/plugin-inter.xml
+++ b/docs/plugins/inspect/plugin-inter.xml
@@ -3,7 +3,7 @@
   <description>plugin for inter-pipeline communication</description>
   <filename>../../gst/inter/.libs/libgstinter.so</filename>
   <basename>libgstinter.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins</package>
diff --git a/docs/plugins/inspect/plugin-interlace.xml b/docs/plugins/inspect/plugin-interlace.xml
index 4aa3b46..96b9393 100644
--- a/docs/plugins/inspect/plugin-interlace.xml
+++ b/docs/plugins/inspect/plugin-interlace.xml
@@ -3,7 +3,7 @@
   <description>Create an interlaced video stream</description>
   <filename>../../gst/interlace/.libs/libgstinterlace.so</filename>
   <basename>libgstinterlace.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-ivfparse.xml b/docs/plugins/inspect/plugin-ivfparse.xml
index d291a46..733c7f4 100644
--- a/docs/plugins/inspect/plugin-ivfparse.xml
+++ b/docs/plugins/inspect/plugin-ivfparse.xml
@@ -3,7 +3,7 @@
   <description>IVF parser</description>
   <filename>../../gst/ivfparse/.libs/libgstivfparse.so</filename>
   <basename>libgstivfparse.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-ivtc.xml b/docs/plugins/inspect/plugin-ivtc.xml
index 0d4d577..81d6a14 100644
--- a/docs/plugins/inspect/plugin-ivtc.xml
+++ b/docs/plugins/inspect/plugin-ivtc.xml
@@ -3,7 +3,7 @@
   <description>Inverse Telecine</description>
   <filename>../../gst/ivtc/.libs/libgstivtc.so</filename>
   <basename>libgstivtc.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins</package>
diff --git a/docs/plugins/inspect/plugin-jp2kdecimator.xml b/docs/plugins/inspect/plugin-jp2kdecimator.xml
index 32d98b5..5c4a1e4 100644
--- a/docs/plugins/inspect/plugin-jp2kdecimator.xml
+++ b/docs/plugins/inspect/plugin-jp2kdecimator.xml
@@ -3,7 +3,7 @@
   <description>JPEG2000 decimator</description>
   <filename>../../gst/jp2kdecimator/.libs/libgstjp2kdecimator.so</filename>
   <basename>libgstjp2kdecimator.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-jpegformat.xml b/docs/plugins/inspect/plugin-jpegformat.xml
index a9e7fbd..e18142d 100644
--- a/docs/plugins/inspect/plugin-jpegformat.xml
+++ b/docs/plugins/inspect/plugin-jpegformat.xml
@@ -3,7 +3,7 @@
   <description>JPEG interchange format plugin</description>
   <filename>../../gst/jpegformat/.libs/libgstjpegformat.so</filename>
   <basename>libgstjpegformat.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-kate.xml b/docs/plugins/inspect/plugin-kate.xml
index d49dceb..d9a763d 100644
--- a/docs/plugins/inspect/plugin-kate.xml
+++ b/docs/plugins/inspect/plugin-kate.xml
@@ -3,7 +3,7 @@
   <description>Kate plugin</description>
   <filename>../../ext/kate/.libs/libgstkate.so</filename>
   <basename>libgstkate.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-ladspa.xml b/docs/plugins/inspect/plugin-ladspa.xml
index a10d632..02a67da 100644
--- a/docs/plugins/inspect/plugin-ladspa.xml
+++ b/docs/plugins/inspect/plugin-ladspa.xml
@@ -3,7 +3,7 @@
   <description>LADSPA plugin</description>
   <filename>../../ext/ladspa/.libs/libgstladspa.so</filename>
   <basename>libgstladspa.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-libde265.xml b/docs/plugins/inspect/plugin-libde265.xml
deleted file mode 100644
index c53ce83..0000000
--- a/docs/plugins/inspect/plugin-libde265.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<plugin>
-  <name>libde265</name>
-  <description>HEVC/H.265 decoder using libde265</description>
-  <filename>../../ext/libde265/.libs/libgstlibde265.so</filename>
-  <basename>libgstlibde265.so</basename>
-  <version>1.5.2</version>
-  <license>LGPL</license>
-  <source>gst-plugins-bad</source>
-  <package>GStreamer Bad Plug-ins source release</package>
-  <origin>Unknown package origin</origin>
-  <elements>
-    <element>
-      <name>libde265dec</name>
-      <longname>HEVC/H.265 decoder</longname>
-      <class>Codec/Decoder/Video</class>
-      <description>Decodes HEVC/H.265 video streams using libde265</description>
-      <author>struktur AG &lt;opensource@struktur.de&gt;</author>
-      <pads>
-        <caps>
-          <name>sink</name>
-          <direction>sink</direction>
-          <presence>always</presence>
-          <details>video/x-h265, stream-format=(string){ hvc1, hev1, byte-stream }, alignment=(string){ au, nal }</details>
-        </caps>
-        <caps>
-          <name>src</name>
-          <direction>source</direction>
-          <presence>always</presence>
-          <details>video/x-raw, format=(string)I420, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
-        </caps>
-      </pads>
-    </element>
-  </elements>
-</plugin>
\ No newline at end of file
diff --git a/docs/plugins/inspect/plugin-liveadder.xml b/docs/plugins/inspect/plugin-liveadder.xml
index de35991..26dde6f 100644
--- a/docs/plugins/inspect/plugin-liveadder.xml
+++ b/docs/plugins/inspect/plugin-liveadder.xml
@@ -3,7 +3,7 @@
   <description>Adds multiple live discontinuous streams</description>
   <filename>../../gst/liveadder/.libs/libgstliveadder.so</filename>
   <basename>libgstliveadder.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-midi.xml b/docs/plugins/inspect/plugin-midi.xml
index b951a74..25cc76e 100644
--- a/docs/plugins/inspect/plugin-midi.xml
+++ b/docs/plugins/inspect/plugin-midi.xml
@@ -3,7 +3,7 @@
   <description>Parse MIDI files</description>
   <filename>../../gst/midi/.libs/libgstmidi.so</filename>
   <basename>libgstmidi.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-mimic.xml b/docs/plugins/inspect/plugin-mimic.xml
index 6d5d478..b37341f 100644
--- a/docs/plugins/inspect/plugin-mimic.xml
+++ b/docs/plugins/inspect/plugin-mimic.xml
@@ -3,7 +3,7 @@
   <description>Mimic codec</description>
   <filename>../../ext/mimic/.libs/libgstmimic.so</filename>
   <basename>libgstmimic.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-mms.xml b/docs/plugins/inspect/plugin-mms.xml
index f499de1..be0fbd2 100644
--- a/docs/plugins/inspect/plugin-mms.xml
+++ b/docs/plugins/inspect/plugin-mms.xml
@@ -3,7 +3,7 @@
   <description>Microsoft Multi Media Server streaming protocol support</description>
   <filename>../../ext/libmms/.libs/libgstmms.so</filename>
   <basename>libgstmms.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-modplug.xml b/docs/plugins/inspect/plugin-modplug.xml
index f653def..8626319 100644
--- a/docs/plugins/inspect/plugin-modplug.xml
+++ b/docs/plugins/inspect/plugin-modplug.xml
@@ -3,7 +3,7 @@
   <description>.MOD audio decoding</description>
   <filename>../../ext/modplug/.libs/libgstmodplug.so</filename>
   <basename>libgstmodplug.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-mpeg2enc.xml b/docs/plugins/inspect/plugin-mpeg2enc.xml
index 79ac5cd..84dfa31 100644
--- a/docs/plugins/inspect/plugin-mpeg2enc.xml
+++ b/docs/plugins/inspect/plugin-mpeg2enc.xml
@@ -3,7 +3,7 @@
   <description>High-quality MPEG-1/2 video encoder</description>
   <filename>../../ext/mpeg2enc/.libs/libgstmpeg2enc.so</filename>
   <basename>libgstmpeg2enc.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>GPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-mpegpsdemux.xml b/docs/plugins/inspect/plugin-mpegpsdemux.xml
index ed092fc..7bfa93f 100644
--- a/docs/plugins/inspect/plugin-mpegpsdemux.xml
+++ b/docs/plugins/inspect/plugin-mpegpsdemux.xml
@@ -3,7 +3,7 @@
   <description>MPEG-PS demuxer</description>
   <filename>../../gst/mpegdemux/.libs/libgstmpegpsdemux.so</filename>
   <basename>libgstmpegpsdemux.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>unknown</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-mpegpsmux.xml b/docs/plugins/inspect/plugin-mpegpsmux.xml
index 4fe451e..2806c06 100644
--- a/docs/plugins/inspect/plugin-mpegpsmux.xml
+++ b/docs/plugins/inspect/plugin-mpegpsmux.xml
@@ -3,7 +3,7 @@
   <description>MPEG-PS muxer</description>
   <filename>../../gst/mpegpsmux/.libs/libgstmpegpsmux.so</filename>
   <basename>libgstmpegpsmux.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-mpegtsdemux.xml b/docs/plugins/inspect/plugin-mpegtsdemux.xml
index 705b59c..8136ed3 100644
--- a/docs/plugins/inspect/plugin-mpegtsdemux.xml
+++ b/docs/plugins/inspect/plugin-mpegtsdemux.xml
@@ -3,7 +3,7 @@
   <description>MPEG TS demuxer</description>
   <filename>../../gst/mpegtsdemux/.libs/libgstmpegtsdemux.so</filename>
   <basename>libgstmpegtsdemux.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-mpegtsmux.xml b/docs/plugins/inspect/plugin-mpegtsmux.xml
index 879bb08..391ec8e 100644
--- a/docs/plugins/inspect/plugin-mpegtsmux.xml
+++ b/docs/plugins/inspect/plugin-mpegtsmux.xml
@@ -3,7 +3,7 @@
   <description>MPEG-TS muxer</description>
   <filename>../../gst/mpegtsmux/.libs/libgstmpegtsmux.so</filename>
   <basename>libgstmpegtsmux.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
@@ -20,7 +20,7 @@
           <name>sink_%d</name>
           <direction>sink</direction>
           <presence>request</presence>
-          <details>video/mpeg, parsed=(boolean)true, mpegversion=(int){ 1, 2, 4 }, systemstream=(boolean)false; video/x-dirac; video/x-h264, stream-format=(string)byte-stream, alignment=(string){ au, nal }; audio/mpeg, parsed=(boolean)true, mpegversion=(int){ 1, 2 }; audio/mpeg, framed=(boolean)true, mpegversion=(int)4, stream-format=(string){ raw, adts }; audio/x-lpcm, width=(int){ 16, 20, 24 }, rate=(int){ 48000, 96000 }, channels=(int)[ 1, 8 ], dynamic_range=(int)[ 0, 255 ], emphasis=(boolean){ false, true }, mute=(boolean){ false, true }; audio/x-ac3, framed=(boolean)true; audio/x-dts, framed=(boolean)true; subpicture/x-dvb; application/x-teletext</details>
+          <details>video/mpeg, parsed=(boolean)true, mpegversion=(int){ 1, 2, 4 }, systemstream=(boolean)false; video/x-dirac; video/x-h264, stream-format=(string)byte-stream, alignment=(string){ au, nal }; audio/mpeg, parsed=(boolean)true, mpegversion=(int){ 1, 2 }; audio/mpeg, framed=(boolean)true, mpegversion=(int)4, stream-format=(string)adts; audio/mpeg, mpegversion=(int)4, stream-format=(string)raw; audio/x-lpcm, width=(int){ 16, 20, 24 }, rate=(int){ 48000, 96000 }, channels=(int)[ 1, 8 ], dynamic_range=(int)[ 0, 255 ], emphasis=(boolean){ false, true }, mute=(boolean){ false, true }; audio/x-ac3, framed=(boolean)true; audio/x-dts, framed=(boolean)true; subpicture/x-dvb; application/x-teletext; meta/x-klv, parsed=(boolean)true</details>
         </caps>
         <caps>
           <name>src</name>
diff --git a/docs/plugins/inspect/plugin-mpg123.xml b/docs/plugins/inspect/plugin-mpg123.xml
index 4bb739b..e1d5b0f 100644
--- a/docs/plugins/inspect/plugin-mpg123.xml
+++ b/docs/plugins/inspect/plugin-mpg123.xml
@@ -3,7 +3,7 @@
   <description>mp3 decoding based on the mpg123 library</description>
   <filename>../../ext/mpg123/.libs/libgstmpg123.so</filename>
   <basename>libgstmpg123.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-mplex.xml b/docs/plugins/inspect/plugin-mplex.xml
index 4d38b1b..83178a7 100644
--- a/docs/plugins/inspect/plugin-mplex.xml
+++ b/docs/plugins/inspect/plugin-mplex.xml
@@ -3,7 +3,7 @@
   <description>High-quality MPEG/DVD/SVCD/VCD video/audio multiplexer</description>
   <filename>../../ext/mplex/.libs/libgstmplex.so</filename>
   <basename>libgstmplex.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>GPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-mxf.xml b/docs/plugins/inspect/plugin-mxf.xml
index 4e8fe6f..de46adc 100644
--- a/docs/plugins/inspect/plugin-mxf.xml
+++ b/docs/plugins/inspect/plugin-mxf.xml
@@ -3,7 +3,7 @@
   <description>MXF plugin library</description>
   <filename>../../gst/mxf/.libs/libgstmxf.so</filename>
   <basename>libgstmxf.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-ofa.xml b/docs/plugins/inspect/plugin-ofa.xml
index 54f5c17..ce4f133 100644
--- a/docs/plugins/inspect/plugin-ofa.xml
+++ b/docs/plugins/inspect/plugin-ofa.xml
@@ -3,7 +3,7 @@
   <description>Calculate MusicIP fingerprint from audio files</description>
   <filename>../../ext/ofa/.libs/libgstofa.so</filename>
   <basename>libgstofa.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>GPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-openal.xml b/docs/plugins/inspect/plugin-openal.xml
index 5179a3f..3671f6d 100644
--- a/docs/plugins/inspect/plugin-openal.xml
+++ b/docs/plugins/inspect/plugin-openal.xml
@@ -3,7 +3,7 @@
   <description>OpenAL plugin library</description>
   <filename>../../ext/openal/.libs/libgstopenal.so</filename>
   <basename>libgstopenal.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-openexr.xml b/docs/plugins/inspect/plugin-openexr.xml
index 85e7a16..3ecbf90 100644
--- a/docs/plugins/inspect/plugin-openexr.xml
+++ b/docs/plugins/inspect/plugin-openexr.xml
@@ -3,7 +3,7 @@
   <description>OpenEXR image plugin</description>
   <filename>../../ext/openexr/.libs/libgstopenexr.so</filename>
   <basename>libgstopenexr.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-opengl.xml b/docs/plugins/inspect/plugin-opengl.xml
index f70a9a4..846fb62 100644
--- a/docs/plugins/inspect/plugin-opengl.xml
+++ b/docs/plugins/inspect/plugin-opengl.xml
@@ -3,7 +3,7 @@
   <description>OpenGL plugin</description>
   <filename>../../ext/gl/.libs/libgstopengl.so</filename>
   <basename>libgstopengl.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
@@ -20,13 +20,13 @@
           <name>sink</name>
           <direction>sink</direction>
           <presence>always</presence>
-          <details>video/x-raw(memory:GLMemory), format=(string){ RGB, RGBx, RGBA, BGR, BGRx, BGRA, xRGB, xBGR, ARGB, ABGR, Y444, I420, YV12, Y42B, Y41B, NV12, NV21, YUY2, UYVY, AYUV, GRAY8, GRAY16_LE, GRAY16_BE, RGB16, BGR16 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
+          <details>video/x-raw(memory:GLMemory), format=(string){ RGB, RGBx, RGBA, BGR, BGRx, BGRA, xRGB, xBGR, ARGB, ABGR, Y444, I420, YV12, Y42B, Y41B, NV12, NV21, YUY2, UYVY, AYUV, GRAY8, GRAY16_LE, GRAY16_BE, RGB16, BGR16 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(memory:GLMemory, meta:GstVideoOverlayComposition), format=(string){ RGB, RGBx, RGBA, BGR, BGRx, BGRA, xRGB, xBGR, ARGB, ABGR, Y444, I420, YV12, Y42B, Y41B, NV12, NV21, YUY2, UYVY, AYUV, GRAY8, GRAY16_LE, GRAY16_BE, RGB16, BGR16 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
         </caps>
         <caps>
           <name>src</name>
           <direction>source</direction>
           <presence>always</presence>
-          <details>video/x-raw(memory:GLMemory), format=(string){ RGB, RGBx, RGBA, BGR, BGRx, BGRA, xRGB, xBGR, ARGB, ABGR, Y444, I420, YV12, Y42B, Y41B, NV12, NV21, YUY2, UYVY, AYUV, GRAY8, GRAY16_LE, GRAY16_BE, RGB16, BGR16 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
+          <details>video/x-raw(memory:GLMemory), format=(string){ RGB, RGBx, RGBA, BGR, BGRx, BGRA, xRGB, xBGR, ARGB, ABGR, Y444, I420, YV12, Y42B, Y41B, NV12, NV21, YUY2, UYVY, AYUV, GRAY8, GRAY16_LE, GRAY16_BE, RGB16, BGR16 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(memory:GLMemory, meta:GstVideoOverlayComposition), format=(string){ RGB, RGBx, RGBA, BGR, BGRx, BGRA, xRGB, xBGR, ARGB, ABGR, Y444, I420, YV12, Y42B, Y41B, NV12, NV21, YUY2, UYVY, AYUV, GRAY8, GRAY16_LE, GRAY16_BE, RGB16, BGR16 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
         </caps>
       </pads>
     </element>
@@ -566,7 +566,7 @@
           <name>sink</name>
           <direction>sink</direction>
           <presence>always</presence>
-          <details>video/x-raw(memory:GLMemory), format=(string){ RGBA, BGRA, RGBx, BGRx, ARGB, ABGR, xRGB, xBGR, RGB, BGR, RGB16, BGR16, AYUV, I420, YV12, NV12, NV21, YUY2, UYVY, Y41B, Y42B, Y444, GRAY8, GRAY16_LE, GRAY16_BE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(memory:EGLImage), format=(string)RGBA, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(meta:GstVideoGLTextureUploadMeta), format=(string)RGBA, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw, format=(string){ RGBA, BGRA, RGBx, BGRx, ARGB, ABGR, xRGB, xBGR, RGB, BGR, RGB16, BGR16, AYUV, I420, YV12, NV12, NV21, YUY2, UYVY, Y41B, Y42B, Y444, GRAY8, GRAY16_LE, GRAY16_BE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
+          <details>video/x-raw(memory:GLMemory, meta:GstVideoOverlayComposition), format=(string){ RGBA, BGRA, RGBx, BGRx, ARGB, ABGR, xRGB, xBGR, RGB, BGR, RGB16, BGR16, AYUV, I420, YV12, NV12, NV21, YUY2, UYVY, Y41B, Y42B, Y444, GRAY8, GRAY16_LE, GRAY16_BE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(memory:EGLImage, meta:GstVideoOverlayComposition), format=(string)RGBA, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(meta:GstVideoGLTextureUploadMeta, meta:GstVideoOverlayComposition), format=(string)RGBA, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(memory:SystemMemory, meta:GstVideoOverlayComposition), format=(string){ RGBA, BGRA, RGBx, BGRx, ARGB, ABGR, xRGB, xBGR, RGB, BGR, RGB16, BGR16, AYUV, I420, YV12, NV12, NV21, YUY2, UYVY, Y41B, Y42B, Y444, GRAY8, GRAY16_LE, GRAY16_BE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(memory:GLMemory), format=(string){ RGBA, BGRA, RGBx, BGRx, ARGB, ABGR, xRGB, xBGR, RGB, BGR, RGB16, BGR16, AYUV, I420, YV12, NV12, NV21, YUY2, UYVY, Y41B, Y42B, Y444, GRAY8, GRAY16_LE, GRAY16_BE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(memory:EGLImage), format=(string)RGBA, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(meta:GstVideoGLTextureUploadMeta), format=(string)RGBA, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw, format=(string){ RGBA, BGRA, RGBx, BGRx, ARGB, ABGR, xRGB, xBGR, RGB, BGR, RGB16, BGR16, AYUV, I420, YV12, NV12, NV21, YUY2, UYVY, Y41B, Y42B, Y444, GRAY8, GRAY16_LE, GRAY16_BE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
         </caps>
         <caps>
           <name>src</name>
@@ -629,7 +629,7 @@
           <name>sink</name>
           <direction>sink</direction>
           <presence>always</presence>
-          <details>video/x-raw(memory:GLMemory), format=(string){ RGBA, BGRA, RGBx, BGRx, ARGB, ABGR, xRGB, xBGR, RGB, BGR, RGB16, BGR16, AYUV, I420, YV12, NV12, NV21, YUY2, UYVY, Y41B, Y42B, Y444, GRAY8, GRAY16_LE, GRAY16_BE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(memory:EGLImage), format=(string)RGBA, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(meta:GstVideoGLTextureUploadMeta), format=(string)RGBA, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw, format=(string){ RGBA, BGRA, RGBx, BGRx, ARGB, ABGR, xRGB, xBGR, RGB, BGR, RGB16, BGR16, AYUV, I420, YV12, NV12, NV21, YUY2, UYVY, Y41B, Y42B, Y444, GRAY8, GRAY16_LE, GRAY16_BE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
+          <details>video/x-raw(memory:GLMemory, meta:GstVideoOverlayComposition), format=(string){ RGBA, BGRA, RGBx, BGRx, ARGB, ABGR, xRGB, xBGR, RGB, BGR, RGB16, BGR16, AYUV, I420, YV12, NV12, NV21, YUY2, UYVY, Y41B, Y42B, Y444, GRAY8, GRAY16_LE, GRAY16_BE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(memory:EGLImage, meta:GstVideoOverlayComposition), format=(string)RGBA, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(meta:GstVideoGLTextureUploadMeta, meta:GstVideoOverlayComposition), format=(string)RGBA, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(memory:SystemMemory, meta:GstVideoOverlayComposition), format=(string){ RGBA, BGRA, RGBx, BGRx, ARGB, ABGR, xRGB, xBGR, RGB, BGR, RGB16, BGR16, AYUV, I420, YV12, NV12, NV21, YUY2, UYVY, Y41B, Y42B, Y444, GRAY8, GRAY16_LE, GRAY16_BE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(memory:GLMemory), format=(string){ RGBA, BGRA, RGBx, BGRx, ARGB, ABGR, xRGB, xBGR, RGB, BGR, RGB16, BGR16, AYUV, I420, YV12, NV12, NV21, YUY2, UYVY, Y41B, Y42B, Y444, GRAY8, GRAY16_LE, GRAY16_BE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(memory:EGLImage), format=(string)RGBA, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(meta:GstVideoGLTextureUploadMeta), format=(string)RGBA, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw, format=(string){ RGBA, BGRA, RGBx, BGRx, ARGB, ABGR, xRGB, xBGR, RGB, BGR, RGB16, BGR16, AYUV, I420, YV12, NV12, NV21, YUY2, UYVY, Y41B, Y42B, Y444, GRAY8, GRAY16_LE, GRAY16_BE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
         </caps>
       </pads>
     </element>
@@ -644,22 +644,22 @@
           <name>sink</name>
           <direction>sink</direction>
           <presence>always</presence>
-          <details>video/x-raw(memory:GLMemory), format=(string)RGBA, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
+          <details>video/x-raw(memory:GLMemory), format=(string)RGBA, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(memory:GLMemory, meta:GstVideoOverlayComposition), format=(string)RGBA, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
         </caps>
       </pads>
     </element>
     <element>
       <name>glmixerbin</name>
-      <longname>Generic bin</longname>
-      <class>Generic/Bin</class>
-      <description>Simple container object</description>
-      <author>Erik Walthinsen &lt;omega@cse.ogi.edu&gt;,Wim Taymans &lt;wim.taymans@gmail.com&gt;</author>
+      <longname>OpenGL video_mixer empty bin</longname>
+      <class>Bin/Filter/Effect/Video/Mixer</class>
+      <description>OpenGL video_mixer empty bin</description>
+      <author>Matthew Waters &lt;matthew@centricular.com&gt;</author>
       <pads>
         <caps>
           <name>sink_%u</name>
           <direction>sink</direction>
           <presence>request</presence>
-          <details>video/x-raw(memory:GLMemory), format=(string){ RGBA, BGRA, RGBx, BGRx, ARGB, ABGR, xRGB, xBGR, RGB, BGR, RGB16, BGR16, AYUV, I420, YV12, NV12, NV21, YUY2, UYVY, Y41B, Y42B, Y444, GRAY8, GRAY16_LE, GRAY16_BE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(memory:EGLImage), format=(string)RGBA, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(meta:GstVideoGLTextureUploadMeta), format=(string)RGBA, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw, format=(string){ RGBA, BGRA, RGBx, BGRx, ARGB, ABGR, xRGB, xBGR, RGB, BGR, RGB16, BGR16, AYUV, I420, YV12, NV12, NV21, YUY2, UYVY, Y41B, Y42B, Y444, GRAY8, GRAY16_LE, GRAY16_BE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
+          <details>video/x-raw(memory:GLMemory, meta:GstVideoOverlayComposition), format=(string){ RGBA, BGRA, RGBx, BGRx, ARGB, ABGR, xRGB, xBGR, RGB, BGR, RGB16, BGR16, AYUV, I420, YV12, NV12, NV21, YUY2, UYVY, Y41B, Y42B, Y444, GRAY8, GRAY16_LE, GRAY16_BE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(memory:EGLImage, meta:GstVideoOverlayComposition), format=(string)RGBA, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(meta:GstVideoGLTextureUploadMeta, meta:GstVideoOverlayComposition), format=(string)RGBA, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(memory:SystemMemory, meta:GstVideoOverlayComposition), format=(string){ RGBA, BGRA, RGBx, BGRx, ARGB, ABGR, xRGB, xBGR, RGB, BGR, RGB16, BGR16, AYUV, I420, YV12, NV12, NV21, YUY2, UYVY, Y41B, Y42B, Y444, GRAY8, GRAY16_LE, GRAY16_BE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(memory:GLMemory), format=(string){ RGBA, BGRA, RGBx, BGRx, ARGB, ABGR, xRGB, xBGR, RGB, BGR, RGB16, BGR16, AYUV, I420, YV12, NV12, NV21, YUY2, UYVY, Y41B, Y42B, Y444, GRAY8, GRAY16_LE, GRAY16_BE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(memory:EGLImage), format=(string)RGBA, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(meta:GstVideoGLTextureUploadMeta), format=(string)RGBA, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw, format=(string){ RGBA, BGRA, RGBx, BGRx, ARGB, ABGR, xRGB, xBGR, RGB, BGR, RGB16, BGR16, AYUV, I420, YV12, NV12, NV21, YUY2, UYVY, Y41B, Y42B, Y444, GRAY8, GRAY16_LE, GRAY16_BE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
         </caps>
         <caps>
           <name>src</name>
@@ -743,7 +743,7 @@
           <name>sink</name>
           <direction>sink</direction>
           <presence>always</presence>
-          <details>video/x-raw(memory:GLMemory), format=(string){ RGBA, BGRA, RGBx, BGRx, ARGB, ABGR, xRGB, xBGR, RGB, BGR, RGB16, BGR16, AYUV, I420, YV12, NV12, NV21, YUY2, UYVY, Y41B, Y42B, Y444, GRAY8, GRAY16_LE, GRAY16_BE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(memory:EGLImage), format=(string)RGBA, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(meta:GstVideoGLTextureUploadMeta), format=(string)RGBA, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw, format=(string){ RGBA, BGRA, RGBx, BGRx, ARGB, ABGR, xRGB, xBGR, RGB, BGR, RGB16, BGR16, AYUV, I420, YV12, NV12, NV21, YUY2, UYVY, Y41B, Y42B, Y444, GRAY8, GRAY16_LE, GRAY16_BE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
+          <details>video/x-raw(memory:GLMemory, meta:GstVideoOverlayComposition), format=(string){ RGBA, BGRA, RGBx, BGRx, ARGB, ABGR, xRGB, xBGR, RGB, BGR, RGB16, BGR16, AYUV, I420, YV12, NV12, NV21, YUY2, UYVY, Y41B, Y42B, Y444, GRAY8, GRAY16_LE, GRAY16_BE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(memory:EGLImage, meta:GstVideoOverlayComposition), format=(string)RGBA, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(meta:GstVideoGLTextureUploadMeta, meta:GstVideoOverlayComposition), format=(string)RGBA, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(memory:SystemMemory, meta:GstVideoOverlayComposition), format=(string){ RGBA, BGRA, RGBx, BGRx, ARGB, ABGR, xRGB, xBGR, RGB, BGR, RGB16, BGR16, AYUV, I420, YV12, NV12, NV21, YUY2, UYVY, Y41B, Y42B, Y444, GRAY8, GRAY16_LE, GRAY16_BE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(memory:GLMemory), format=(string){ RGBA, BGRA, RGBx, BGRx, ARGB, ABGR, xRGB, xBGR, RGB, BGR, RGB16, BGR16, AYUV, I420, YV12, NV12, NV21, YUY2, UYVY, Y41B, Y42B, Y444, GRAY8, GRAY16_LE, GRAY16_BE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(memory:EGLImage), format=(string)RGBA, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(meta:GstVideoGLTextureUploadMeta), format=(string)RGBA, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw, format=(string){ RGBA, BGRA, RGBx, BGRx, ARGB, ABGR, xRGB, xBGR, RGB, BGR, RGB16, BGR16, AYUV, I420, YV12, NV12, NV21, YUY2, UYVY, Y41B, Y42B, Y444, GRAY8, GRAY16_LE, GRAY16_BE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
         </caps>
       </pads>
     </element>
@@ -837,7 +837,7 @@
           <name>sink</name>
           <direction>sink</direction>
           <presence>always</presence>
-          <details>video/x-raw(memory:GLMemory), format=(string){ RGBA, BGRA, RGBx, BGRx, ARGB, ABGR, xRGB, xBGR, RGB, BGR, RGB16, BGR16, AYUV, I420, YV12, NV12, NV21, YUY2, UYVY, Y41B, Y42B, Y444, GRAY8, GRAY16_LE, GRAY16_BE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(memory:EGLImage), format=(string)RGBA, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(meta:GstVideoGLTextureUploadMeta), format=(string)RGBA, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw, format=(string){ RGBA, BGRA, RGBx, BGRx, ARGB, ABGR, xRGB, xBGR, RGB, BGR, RGB16, BGR16, AYUV, I420, YV12, NV12, NV21, YUY2, UYVY, Y41B, Y42B, Y444, GRAY8, GRAY16_LE, GRAY16_BE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
+          <details>video/x-raw(memory:GLMemory, meta:GstVideoOverlayComposition), format=(string){ RGBA, BGRA, RGBx, BGRx, ARGB, ABGR, xRGB, xBGR, RGB, BGR, RGB16, BGR16, AYUV, I420, YV12, NV12, NV21, YUY2, UYVY, Y41B, Y42B, Y444, GRAY8, GRAY16_LE, GRAY16_BE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(memory:EGLImage, meta:GstVideoOverlayComposition), format=(string)RGBA, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(meta:GstVideoGLTextureUploadMeta, meta:GstVideoOverlayComposition), format=(string)RGBA, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(memory:SystemMemory, meta:GstVideoOverlayComposition), format=(string){ RGBA, BGRA, RGBx, BGRx, ARGB, ABGR, xRGB, xBGR, RGB, BGR, RGB16, BGR16, AYUV, I420, YV12, NV12, NV21, YUY2, UYVY, Y41B, Y42B, Y444, GRAY8, GRAY16_LE, GRAY16_BE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(memory:GLMemory), format=(string){ RGBA, BGRA, RGBx, BGRx, ARGB, ABGR, xRGB, xBGR, RGB, BGR, RGB16, BGR16, AYUV, I420, YV12, NV12, NV21, YUY2, UYVY, Y41B, Y42B, Y444, GRAY8, GRAY16_LE, GRAY16_BE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(memory:EGLImage), format=(string)RGBA, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(meta:GstVideoGLTextureUploadMeta), format=(string)RGBA, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw, format=(string){ RGBA, BGRA, RGBx, BGRx, ARGB, ABGR, xRGB, xBGR, RGB, BGR, RGB16, BGR16, AYUV, I420, YV12, NV12, NV21, YUY2, UYVY, Y41B, Y42B, Y444, GRAY8, GRAY16_LE, GRAY16_BE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
         </caps>
         <caps>
           <name>src</name>
@@ -849,16 +849,16 @@
     </element>
     <element>
       <name>glvideomixer</name>
-      <longname>Generic bin</longname>
-      <class>Generic/Bin</class>
-      <description>Simple container object</description>
-      <author>Erik Walthinsen &lt;omega@cse.ogi.edu&gt;,Wim Taymans &lt;wim.taymans@gmail.com&gt;</author>
+      <longname>OpenGL video_mixer bin</longname>
+      <class>Bin/Filter/Effect/Video/Compositor</class>
+      <description>OpenGL video_mixer bin</description>
+      <author>Matthew Waters &lt;matthew@centricular.com&gt;</author>
       <pads>
         <caps>
           <name>sink_%u</name>
           <direction>sink</direction>
           <presence>request</presence>
-          <details>video/x-raw(memory:GLMemory), format=(string){ RGBA, BGRA, RGBx, BGRx, ARGB, ABGR, xRGB, xBGR, RGB, BGR, RGB16, BGR16, AYUV, I420, YV12, NV12, NV21, YUY2, UYVY, Y41B, Y42B, Y444, GRAY8, GRAY16_LE, GRAY16_BE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(memory:EGLImage), format=(string)RGBA, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(meta:GstVideoGLTextureUploadMeta), format=(string)RGBA, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw, format=(string){ RGBA, BGRA, RGBx, BGRx, ARGB, ABGR, xRGB, xBGR, RGB, BGR, RGB16, BGR16, AYUV, I420, YV12, NV12, NV21, YUY2, UYVY, Y41B, Y42B, Y444, GRAY8, GRAY16_LE, GRAY16_BE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
+          <details>video/x-raw(memory:GLMemory, meta:GstVideoOverlayComposition), format=(string){ RGBA, BGRA, RGBx, BGRx, ARGB, ABGR, xRGB, xBGR, RGB, BGR, RGB16, BGR16, AYUV, I420, YV12, NV12, NV21, YUY2, UYVY, Y41B, Y42B, Y444, GRAY8, GRAY16_LE, GRAY16_BE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(memory:EGLImage, meta:GstVideoOverlayComposition), format=(string)RGBA, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(meta:GstVideoGLTextureUploadMeta, meta:GstVideoOverlayComposition), format=(string)RGBA, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(memory:SystemMemory, meta:GstVideoOverlayComposition), format=(string){ RGBA, BGRA, RGBx, BGRx, ARGB, ABGR, xRGB, xBGR, RGB, BGR, RGB16, BGR16, AYUV, I420, YV12, NV12, NV21, YUY2, UYVY, Y41B, Y42B, Y444, GRAY8, GRAY16_LE, GRAY16_BE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(memory:GLMemory), format=(string){ RGBA, BGRA, RGBx, BGRx, ARGB, ABGR, xRGB, xBGR, RGB, BGR, RGB16, BGR16, AYUV, I420, YV12, NV12, NV21, YUY2, UYVY, Y41B, Y42B, Y444, GRAY8, GRAY16_LE, GRAY16_BE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(memory:EGLImage), format=(string)RGBA, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(meta:GstVideoGLTextureUploadMeta), format=(string)RGBA, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw, format=(string){ RGBA, BGRA, RGBx, BGRx, ARGB, ABGR, xRGB, xBGR, RGB, BGR, RGB16, BGR16, AYUV, I420, YV12, NV12, NV21, YUY2, UYVY, Y41B, Y42B, Y444, GRAY8, GRAY16_LE, GRAY16_BE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
         </caps>
         <caps>
           <name>src</name>
diff --git a/docs/plugins/inspect/plugin-openh264.xml b/docs/plugins/inspect/plugin-openh264.xml
index 2c0bb5e..0735b4a 100644
--- a/docs/plugins/inspect/plugin-openh264.xml
+++ b/docs/plugins/inspect/plugin-openh264.xml
@@ -3,7 +3,7 @@
   <description>OpenH264 encoder/decoder plugin</description>
   <filename>../../ext/openh264/.libs/libgstopenh264.so</filename>
   <basename>libgstopenh264.so</basename>
-  <version>1.5.0.1</version>
+  <version>1.5.90</version>
   <license>BSD</license>
   <source>gst-plugins-bad</source>
   <package>OpenWebRTC GStreamer plugins</package>
diff --git a/docs/plugins/inspect/plugin-openjpeg.xml b/docs/plugins/inspect/plugin-openjpeg.xml
index 475d9d4..3427f47 100644
--- a/docs/plugins/inspect/plugin-openjpeg.xml
+++ b/docs/plugins/inspect/plugin-openjpeg.xml
@@ -3,7 +3,7 @@
   <description>OpenJPEG-based JPEG2000 image decoder/encoder</description>
   <filename>../../ext/openjpeg/.libs/libgstopenjpeg.so</filename>
   <basename>libgstopenjpeg.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-opus.xml b/docs/plugins/inspect/plugin-opus.xml
index 39dd9e8..63aaf67 100644
--- a/docs/plugins/inspect/plugin-opus.xml
+++ b/docs/plugins/inspect/plugin-opus.xml
@@ -3,7 +3,7 @@
   <description>OPUS plugin library</description>
   <filename>../../ext/opus/.libs/libgstopus.so</filename>
   <basename>libgstopus.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-pcapparse.xml b/docs/plugins/inspect/plugin-pcapparse.xml
index e88a4b5..e792484 100644
--- a/docs/plugins/inspect/plugin-pcapparse.xml
+++ b/docs/plugins/inspect/plugin-pcapparse.xml
@@ -3,7 +3,7 @@
   <description>Element parsing raw pcap streams</description>
   <filename>../../gst/pcapparse/.libs/libgstpcapparse.so</filename>
   <basename>libgstpcapparse.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer</package>
diff --git a/docs/plugins/inspect/plugin-pnm.xml b/docs/plugins/inspect/plugin-pnm.xml
index 217143b..2eb20e8 100644
--- a/docs/plugins/inspect/plugin-pnm.xml
+++ b/docs/plugins/inspect/plugin-pnm.xml
@@ -3,7 +3,7 @@
   <description>PNM plugin</description>
   <filename>../../gst/pnm/.libs/libgstpnm.so</filename>
   <basename>libgstpnm.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-qt.xml b/docs/plugins/inspect/plugin-qt.xml
new file mode 100644
index 0000000..91e3b50
--- /dev/null
+++ b/docs/plugins/inspect/plugin-qt.xml
@@ -0,0 +1,28 @@
+<plugin>
+  <name>qt</name>
+  <description>Qt sink</description>
+  <filename>../../ext/qt/.libs/libqtsink.so</filename>
+  <basename>libqtsink.so</basename>
+  <version>1.5.90</version>
+  <license>LGPL</license>
+  <source>gst-plugins-bad</source>
+  <package>GStreamer Bad Plug-ins source release</package>
+  <origin>Unknown package origin</origin>
+  <elements>
+    <element>
+      <name>qmlglsink</name>
+      <longname>Qt Video Sink</longname>
+      <class>Sink/Video</class>
+      <description>A video sink the renders to a QQuickItem</description>
+      <author>Matthew Waters &lt;matthew@centricular.com&gt;</author>
+      <pads>
+        <caps>
+          <name>sink</name>
+          <direction>sink</direction>
+          <presence>always</presence>
+          <details>video/x-raw(memory:GLMemory), format=(string)RGBA, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
+        </caps>
+      </pads>
+    </element>
+  </elements>
+</plugin>
\ No newline at end of file
diff --git a/docs/plugins/inspect/plugin-rawparse.xml b/docs/plugins/inspect/plugin-rawparse.xml
index 0c63459..2f0b030 100644
--- a/docs/plugins/inspect/plugin-rawparse.xml
+++ b/docs/plugins/inspect/plugin-rawparse.xml
@@ -3,7 +3,7 @@
   <description>Parses byte streams into raw frames</description>
   <filename>../../gst/rawparse/.libs/libgstrawparse.so</filename>
   <basename>libgstrawparse.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-removesilence.xml b/docs/plugins/inspect/plugin-removesilence.xml
index 5a40b53..5fb08a2 100644
--- a/docs/plugins/inspect/plugin-removesilence.xml
+++ b/docs/plugins/inspect/plugin-removesilence.xml
@@ -3,7 +3,7 @@
   <description>Removes silence from an audio stream</description>
   <filename>../../gst/removesilence/.libs/libgstremovesilence.so</filename>
   <basename>libgstremovesilence.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-resindvd.xml b/docs/plugins/inspect/plugin-resindvd.xml
index a73be36..5243243 100644
--- a/docs/plugins/inspect/plugin-resindvd.xml
+++ b/docs/plugins/inspect/plugin-resindvd.xml
@@ -3,7 +3,7 @@
   <description>Resin DVD playback elements</description>
   <filename>../../ext/resindvd/.libs/libgstresindvd.so</filename>
   <basename>libgstresindvd.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>GPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer</package>
diff --git a/docs/plugins/inspect/plugin-rfbsrc.xml b/docs/plugins/inspect/plugin-rfbsrc.xml
index a5e4a96..7cf2b41 100644
--- a/docs/plugins/inspect/plugin-rfbsrc.xml
+++ b/docs/plugins/inspect/plugin-rfbsrc.xml
@@ -3,7 +3,7 @@
   <description>Connects to a VNC server and decodes RFB stream</description>
   <filename>../../gst/librfb/.libs/libgstrfbsrc.so</filename>
   <basename>libgstrfbsrc.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-rsvg.xml b/docs/plugins/inspect/plugin-rsvg.xml
index 84e4f76..ed7feff 100644
--- a/docs/plugins/inspect/plugin-rsvg.xml
+++ b/docs/plugins/inspect/plugin-rsvg.xml
@@ -3,7 +3,7 @@
   <description>RSVG plugin library</description>
   <filename>../../ext/rsvg/.libs/libgstrsvg.so</filename>
   <basename>libgstrsvg.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-rtmp.xml b/docs/plugins/inspect/plugin-rtmp.xml
index e96b907..8de0458 100644
--- a/docs/plugins/inspect/plugin-rtmp.xml
+++ b/docs/plugins/inspect/plugin-rtmp.xml
@@ -3,7 +3,7 @@
   <description>RTMP source and sink</description>
   <filename>../../ext/rtmp/.libs/libgstrtmp.so</filename>
   <basename>libgstrtmp.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-rtpbad.xml b/docs/plugins/inspect/plugin-rtpbad.xml
index 5b4e122..03fa975 100644
--- a/docs/plugins/inspect/plugin-rtpbad.xml
+++ b/docs/plugins/inspect/plugin-rtpbad.xml
@@ -3,7 +3,7 @@
   <description>Real-time protocol plugins</description>
   <filename>../../gst/rtp/.libs/libgstrtpbad.so</filename>
   <basename>libgstrtpbad.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-rtponvif.xml b/docs/plugins/inspect/plugin-rtponvif.xml
index aad8db5..1bc6157 100644
--- a/docs/plugins/inspect/plugin-rtponvif.xml
+++ b/docs/plugins/inspect/plugin-rtponvif.xml
@@ -3,7 +3,7 @@
   <description>ONVIF Streaming features</description>
   <filename>../../gst/onvif/.libs/libgstrtponvif.so</filename>
   <basename>libgstrtponvif.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>unknown</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-sbc.xml b/docs/plugins/inspect/plugin-sbc.xml
index 7fc3916..1afdaab 100644
--- a/docs/plugins/inspect/plugin-sbc.xml
+++ b/docs/plugins/inspect/plugin-sbc.xml
@@ -3,7 +3,7 @@
   <description>SBC bluetooth audio support</description>
   <filename>../../ext/sbc/.libs/libgstsbc.so</filename>
   <basename>libgstsbc.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-schro.xml b/docs/plugins/inspect/plugin-schro.xml
index 5c45590..e9a836f 100644
--- a/docs/plugins/inspect/plugin-schro.xml
+++ b/docs/plugins/inspect/plugin-schro.xml
@@ -3,7 +3,7 @@
   <description>Schroedinger plugin</description>
   <filename>../../ext/schroedinger/.libs/libgstschro.so</filename>
   <basename>libgstschro.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-sdp.xml b/docs/plugins/inspect/plugin-sdp.xml
index 8e69599..e195ebf 100644
--- a/docs/plugins/inspect/plugin-sdp.xml
+++ b/docs/plugins/inspect/plugin-sdp.xml
@@ -3,7 +3,7 @@
   <description>configure streaming sessions using SDP</description>
   <filename>../../gst/sdp/.libs/libgstsdpelem.so</filename>
   <basename>libgstsdpelem.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-segmentclip.xml b/docs/plugins/inspect/plugin-segmentclip.xml
index c290b1a..7f9b4dc 100644
--- a/docs/plugins/inspect/plugin-segmentclip.xml
+++ b/docs/plugins/inspect/plugin-segmentclip.xml
@@ -3,7 +3,7 @@
   <description>Segment clip elements</description>
   <filename>../../gst/segmentclip/.libs/libgstsegmentclip.so</filename>
   <basename>libgstsegmentclip.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-shm.xml b/docs/plugins/inspect/plugin-shm.xml
index 96fc001..2e2f95b 100644
--- a/docs/plugins/inspect/plugin-shm.xml
+++ b/docs/plugins/inspect/plugin-shm.xml
@@ -3,7 +3,7 @@
   <description>shared memory sink source</description>
   <filename>../../sys/shm/.libs/libgstshm.so</filename>
   <basename>libgstshm.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-smooth.xml b/docs/plugins/inspect/plugin-smooth.xml
index 6d52c06..49879b5 100644
--- a/docs/plugins/inspect/plugin-smooth.xml
+++ b/docs/plugins/inspect/plugin-smooth.xml
@@ -3,7 +3,7 @@
   <description>Apply a smooth filter to an image</description>
   <filename>../../gst/smooth/.libs/libgstsmooth.so</filename>
   <basename>libgstsmooth.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-smoothstreaming.xml b/docs/plugins/inspect/plugin-smoothstreaming.xml
index 199d60a..7e10510 100644
--- a/docs/plugins/inspect/plugin-smoothstreaming.xml
+++ b/docs/plugins/inspect/plugin-smoothstreaming.xml
@@ -3,7 +3,7 @@
   <description>Microsoft&apos;s Smooth Streaming format support </description>
   <filename>../../ext/smoothstreaming/.libs/libgstsmoothstreaming.so</filename>
   <basename>libgstsmoothstreaming.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-sndfile.xml b/docs/plugins/inspect/plugin-sndfile.xml
index 272d2ed..77915e4 100644
--- a/docs/plugins/inspect/plugin-sndfile.xml
+++ b/docs/plugins/inspect/plugin-sndfile.xml
@@ -3,7 +3,7 @@
   <description>use libsndfile to read and write various audio formats</description>
   <filename>../../ext/sndfile/.libs/libgstsndfile.so</filename>
   <basename>libgstsndfile.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-soundtouch.xml b/docs/plugins/inspect/plugin-soundtouch.xml
index 3dd4445..c863f86 100644
--- a/docs/plugins/inspect/plugin-soundtouch.xml
+++ b/docs/plugins/inspect/plugin-soundtouch.xml
@@ -3,7 +3,7 @@
   <description>Audio Pitch Controller &amp; BPM Detection</description>
   <filename>../../ext/soundtouch/.libs/libgstsoundtouch.so</filename>
   <basename>libgstsoundtouch.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-spandsp.xml b/docs/plugins/inspect/plugin-spandsp.xml
index d80c47a..8d9c1c2 100644
--- a/docs/plugins/inspect/plugin-spandsp.xml
+++ b/docs/plugins/inspect/plugin-spandsp.xml
@@ -3,7 +3,7 @@
   <description>libspandsp plugin</description>
   <filename>../../ext/spandsp/.libs/libgstspandsp.so</filename>
   <basename>libgstspandsp.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-speed.xml b/docs/plugins/inspect/plugin-speed.xml
index 510effc..ac486dd 100644
--- a/docs/plugins/inspect/plugin-speed.xml
+++ b/docs/plugins/inspect/plugin-speed.xml
@@ -3,7 +3,7 @@
   <description>Set speed/pitch on audio/raw streams (resampler)</description>
   <filename>../../gst/speed/.libs/libgstspeed.so</filename>
   <basename>libgstspeed.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-srtp.xml b/docs/plugins/inspect/plugin-srtp.xml
index 93f4078..55af472 100644
--- a/docs/plugins/inspect/plugin-srtp.xml
+++ b/docs/plugins/inspect/plugin-srtp.xml
@@ -3,7 +3,7 @@
   <description>GStreamer SRTP</description>
   <filename>../../ext/srtp/.libs/libgstsrtp.so</filename>
   <basename>libgstsrtp.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer</package>
diff --git a/docs/plugins/inspect/plugin-stereo.xml b/docs/plugins/inspect/plugin-stereo.xml
index ed993ab..4659007 100644
--- a/docs/plugins/inspect/plugin-stereo.xml
+++ b/docs/plugins/inspect/plugin-stereo.xml
@@ -3,7 +3,7 @@
   <description>Muck with the stereo signal, enhance it&apos;s &apos;stereo-ness&apos;</description>
   <filename>../../gst/stereo/.libs/libgststereo.so</filename>
   <basename>libgststereo.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-subenc.xml b/docs/plugins/inspect/plugin-subenc.xml
index d001178..dd8313c 100644
--- a/docs/plugins/inspect/plugin-subenc.xml
+++ b/docs/plugins/inspect/plugin-subenc.xml
@@ -3,7 +3,7 @@
   <description>subtitle encoders</description>
   <filename>../../gst/subenc/.libs/libgstsubenc.so</filename>
   <basename>libgstsubenc.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-uvch264.xml b/docs/plugins/inspect/plugin-uvch264.xml
index 873922d..ade6d2d 100644
--- a/docs/plugins/inspect/plugin-uvch264.xml
+++ b/docs/plugins/inspect/plugin-uvch264.xml
@@ -3,7 +3,7 @@
   <description>UVC compliant H264 encoding cameras plugin</description>
   <filename>../../sys/uvch264/.libs/libgstuvch264.so</filename>
   <basename>libgstuvch264.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-vcdsrc.xml b/docs/plugins/inspect/plugin-vcdsrc.xml
index 51d4e11..38fd503 100644
--- a/docs/plugins/inspect/plugin-vcdsrc.xml
+++ b/docs/plugins/inspect/plugin-vcdsrc.xml
@@ -3,7 +3,7 @@
   <description>Asynchronous read from VCD disk</description>
   <filename>../../sys/vcd/.libs/libgstvcdsrc.so</filename>
   <basename>libgstvcdsrc.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-videofiltersbad.xml b/docs/plugins/inspect/plugin-videofiltersbad.xml
index 9c174a8..e3cb672 100644
--- a/docs/plugins/inspect/plugin-videofiltersbad.xml
+++ b/docs/plugins/inspect/plugin-videofiltersbad.xml
@@ -3,7 +3,7 @@
   <description>Video filters in gst-plugins-bad</description>
   <filename>../../gst/videofilters/.libs/libgstvideofiltersbad.so</filename>
   <basename>libgstvideofiltersbad.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins</package>
diff --git a/docs/plugins/inspect/plugin-videoparsersbad.xml b/docs/plugins/inspect/plugin-videoparsersbad.xml
index e2b7cdb..ed785c0 100644
--- a/docs/plugins/inspect/plugin-videoparsersbad.xml
+++ b/docs/plugins/inspect/plugin-videoparsersbad.xml
@@ -3,7 +3,7 @@
   <description>videoparsers</description>
   <filename>../../gst/videoparsers/.libs/libgstvideoparsersbad.so</filename>
   <basename>libgstvideoparsersbad.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-videosignal.xml b/docs/plugins/inspect/plugin-videosignal.xml
index 2aa6652..3a523ce 100644
--- a/docs/plugins/inspect/plugin-videosignal.xml
+++ b/docs/plugins/inspect/plugin-videosignal.xml
@@ -3,7 +3,7 @@
   <description>Various video signal analysers</description>
   <filename>../../gst/videosignal/.libs/libgstvideosignal.so</filename>
   <basename>libgstvideosignal.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-vmnc.xml b/docs/plugins/inspect/plugin-vmnc.xml
index 51e80ee..8caff23 100644
--- a/docs/plugins/inspect/plugin-vmnc.xml
+++ b/docs/plugins/inspect/plugin-vmnc.xml
@@ -3,7 +3,7 @@
   <description>VmWare Video Codec plugins</description>
   <filename>../../gst/vmnc/.libs/libgstvmnc.so</filename>
   <basename>libgstvmnc.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-voaacenc.xml b/docs/plugins/inspect/plugin-voaacenc.xml
index d5108b2..c0c79f0 100644
--- a/docs/plugins/inspect/plugin-voaacenc.xml
+++ b/docs/plugins/inspect/plugin-voaacenc.xml
@@ -3,7 +3,7 @@
   <description>AAC audio encoder</description>
   <filename>../../ext/voaacenc/.libs/libgstvoaacenc.so</filename>
   <basename>libgstvoaacenc.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
@@ -20,7 +20,7 @@
           <name>sink</name>
           <direction>sink</direction>
           <presence>always</presence>
-          <details>audio/x-raw, format=(string)S16LE, layout=(string)interleaved, rate=(int){ 8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000, 64000, 88200, 96000 }, channels=(int)[ 1, 2 ]</details>
+          <details>audio/x-raw, format=(string)S16LE, layout=(string)interleaved, rate=(int){ 8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000, 64000, 88200, 96000 }, channels=(int)1; audio/x-raw, format=(string)S16LE, layout=(string)interleaved, rate=(int){ 8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000, 64000, 88200, 96000 }, channels=(int)2, channel-mask=(bitmask)0x0000000000000003</details>
         </caps>
         <caps>
           <name>src</name>
diff --git a/docs/plugins/inspect/plugin-voamrwbenc.xml b/docs/plugins/inspect/plugin-voamrwbenc.xml
index 17370e4..edf79d2 100644
--- a/docs/plugins/inspect/plugin-voamrwbenc.xml
+++ b/docs/plugins/inspect/plugin-voamrwbenc.xml
@@ -3,7 +3,7 @@
   <description>Adaptive Multi-Rate Wide-Band Encoder</description>
   <filename>../../ext/voamrwbenc/.libs/libgstvoamrwbenc.so</filename>
   <basename>libgstvoamrwbenc.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>unknown</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-waylandsink.xml b/docs/plugins/inspect/plugin-waylandsink.xml
index 61064ba..d2d373b 100644
--- a/docs/plugins/inspect/plugin-waylandsink.xml
+++ b/docs/plugins/inspect/plugin-waylandsink.xml
@@ -3,7 +3,7 @@
   <description>Wayland Video Sink</description>
   <filename>../../ext/wayland/.libs/libgstwaylandsink.so</filename>
   <basename>libgstwaylandsink.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-webp.xml b/docs/plugins/inspect/plugin-webp.xml
index 9a9920b..4b64677 100644
--- a/docs/plugins/inspect/plugin-webp.xml
+++ b/docs/plugins/inspect/plugin-webp.xml
@@ -3,7 +3,7 @@
   <description>WebP plugin</description>
   <filename>../../ext/webp/.libs/libgstwebp.so</filename>
   <basename>libgstwebp.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-wildmidi.xml b/docs/plugins/inspect/plugin-wildmidi.xml
index 2d9021b..b04e06d 100644
--- a/docs/plugins/inspect/plugin-wildmidi.xml
+++ b/docs/plugins/inspect/plugin-wildmidi.xml
@@ -3,7 +3,7 @@
   <description>Wildmidi Plugin</description>
   <filename>../../ext/timidity/.libs/libgstwildmidi.so</filename>
   <basename>libgstwildmidi.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>GPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-x265.xml b/docs/plugins/inspect/plugin-x265.xml
index be5c85a..7a86bd6 100644
--- a/docs/plugins/inspect/plugin-x265.xml
+++ b/docs/plugins/inspect/plugin-x265.xml
@@ -3,7 +3,7 @@
   <description>x265-based H265 plugins</description>
   <filename>../../ext/x265/.libs/libgstx265.so</filename>
   <basename>libgstx265.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>GPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-y4mdec.xml b/docs/plugins/inspect/plugin-y4mdec.xml
index f768c52..fdf8601 100644
--- a/docs/plugins/inspect/plugin-y4mdec.xml
+++ b/docs/plugins/inspect/plugin-y4mdec.xml
@@ -3,7 +3,7 @@
   <description>Demuxes/decodes YUV4MPEG streams</description>
   <filename>../../gst/y4m/.libs/libgsty4mdec.so</filename>
   <basename>libgsty4mdec.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins</package>
diff --git a/docs/plugins/inspect/plugin-yadif.xml b/docs/plugins/inspect/plugin-yadif.xml
index 6b0e9b6..c33bd71 100644
--- a/docs/plugins/inspect/plugin-yadif.xml
+++ b/docs/plugins/inspect/plugin-yadif.xml
@@ -3,7 +3,7 @@
   <description>YADIF deinterlacing filter</description>
   <filename>../../gst/yadif/.libs/libgstyadif.so</filename>
   <basename>libgstyadif.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>GPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins</package>
diff --git a/docs/plugins/inspect/plugin-zbar.xml b/docs/plugins/inspect/plugin-zbar.xml
index b7878a7..bff6802 100644
--- a/docs/plugins/inspect/plugin-zbar.xml
+++ b/docs/plugins/inspect/plugin-zbar.xml
@@ -3,7 +3,7 @@
   <description>zbar barcode scanner</description>
   <filename>../../ext/zbar/.libs/libgstzbar.so</filename>
   <basename>libgstzbar.so</basename>
-  <version>1.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/ext/Makefile.am b/ext/Makefile.am
index 66dccd6..33ddba7 100644
--- a/ext/Makefile.am
+++ b/ext/Makefile.am
@@ -94,6 +94,12 @@
 GTK3_DIR=
 endif
 
+if USE_QT
+QT_DIR=qt
+else
+QT_DIR=
+endif
+
 if USE_RESINDVD
  RESINDVD_DIR = resindvd
 else
@@ -443,6 +449,7 @@
 	$(RESINDVD_DIR) \
 	$(GL_DIR) \
 	$(GTK3_DIR) \
+	$(QT_DIR) \
 	$(FAAC_DIR) \
 	$(FAAD_DIR) \
 	$(FLITE_DIR) \
@@ -524,6 +531,7 @@
 	dts \
 	gl \
 	gtk \
+	qt \
 	modplug \
 	mimic \
 	mpeg2enc \
diff --git a/ext/Makefile.in b/ext/Makefile.in
index 0de6d82..c4392e9 100644
--- a/ext/Makefile.in
+++ b/ext/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -19,7 +19,17 @@
 # descending into all subdirectories a second time, but only after the first
 # (parallel) run has finished, so it should go right through the second time.
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -83,8 +93,6 @@
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
-DIST_COMMON = $(top_srcdir)/common/parallel-subdirs.mak \
-	$(srcdir)/Makefile.in $(srcdir)/Makefile.am
 subdir = ext
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
@@ -123,6 +131,7 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -181,6 +190,8 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in \
+	$(top_srcdir)/common/parallel-subdirs.mak
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 am__relativize = \
   dir0=`pwd`; \
@@ -223,8 +234,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -253,8 +262,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -302,11 +309,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -490,6 +500,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -568,7 +579,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -608,6 +624,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -752,6 +769,8 @@
 @USE_GL_TRUE@GL_DIR = gl
 @USE_GTK3_FALSE@GTK3_DIR = 
 @USE_GTK3_TRUE@GTK3_DIR = gtk
+@USE_QT_FALSE@QT_DIR = 
+@USE_QT_TRUE@QT_DIR = qt
 @USE_RESINDVD_FALSE@RESINDVD_DIR = 
 @USE_RESINDVD_TRUE@RESINDVD_DIR = resindvd
 @USE_FAAC_FALSE@FAAC_DIR = 
@@ -891,6 +910,7 @@
 	$(RESINDVD_DIR) \
 	$(GL_DIR) \
 	$(GTK3_DIR) \
+	$(QT_DIR) \
 	$(FAAC_DIR) \
 	$(FAAD_DIR) \
 	$(FLITE_DIR) \
@@ -972,6 +992,7 @@
 	dts \
 	gl \
 	gtk \
+	qt \
 	modplug \
 	mimic \
 	mpeg2enc \
@@ -1027,7 +1048,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1036,7 +1056,7 @@
 	    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/parallel-subdirs.mak:
+$(top_srcdir)/common/parallel-subdirs.mak $(am__empty):
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -1323,6 +1343,8 @@
 	mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
 	ps ps-am tags tags-am uninstall uninstall-am
 
+.PRECIOUS: Makefile
+
 
 .PHONY: independent-subdirs $(SUBDIRS)
 
diff --git a/ext/apexsink/Makefile.in b/ext/apexsink/Makefile.in
index 8dccb48..4e5fc7e 100644
--- a/ext/apexsink/Makefile.in
+++ b/ext/apexsink/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/apexsink
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -230,6 +240,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -247,8 +258,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -277,8 +286,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -326,11 +333,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -514,6 +524,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -592,7 +603,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -632,6 +648,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -768,7 +785,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/apexsink/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/apexsink/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1093,6 +1109,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/ext/assrender/Makefile.in b/ext/assrender/Makefile.in
index 11b3e4a..9e51dec 100644
--- a/ext/assrender/Makefile.in
+++ b/ext/assrender/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/assrender
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -227,6 +237,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -244,8 +255,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -274,8 +283,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -323,11 +330,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -511,6 +521,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -589,7 +600,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -629,6 +645,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -760,7 +777,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/assrender/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/assrender/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1069,6 +1085,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/ext/bs2b/Makefile.in b/ext/bs2b/Makefile.in
index 24eff32..2b97a83 100644
--- a/ext/bs2b/Makefile.in
+++ b/ext/bs2b/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/bs2b
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -228,6 +238,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -245,8 +256,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -275,8 +284,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -324,11 +331,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -512,6 +522,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -590,7 +601,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -630,6 +646,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -768,7 +785,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/bs2b/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/bs2b/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1077,6 +1093,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/ext/bz2/Makefile.in b/ext/bz2/Makefile.in
index d9fbdd7..d3f00be 100644
--- a/ext/bz2/Makefile.in
+++ b/ext/bz2/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/bz2
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -228,6 +238,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -245,8 +256,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -275,8 +284,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -324,11 +331,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -512,6 +522,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -590,7 +601,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -630,6 +646,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -765,7 +782,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/bz2/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/bz2/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1090,6 +1106,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/ext/chromaprint/Makefile.in b/ext/chromaprint/Makefile.in
index 0a7b423..aa1300c 100644
--- a/ext/chromaprint/Makefile.in
+++ b/ext/chromaprint/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/chromaprint
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -229,6 +239,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -246,8 +257,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -276,8 +285,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -325,11 +332,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -513,6 +523,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -591,7 +602,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -631,6 +647,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -769,7 +786,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/chromaprint/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/chromaprint/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1078,6 +1094,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/ext/curl/Makefile.in b/ext/curl/Makefile.in
index 1f50bac..8cab050 100644
--- a/ext/curl/Makefile.in
+++ b/ext/curl/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/curl
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -241,6 +251,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -258,8 +269,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -288,8 +297,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -337,11 +344,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -525,6 +535,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -603,7 +614,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -643,6 +659,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -805,7 +822,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/curl/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/curl/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1178,6 +1194,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/ext/curl/gstcurlsshsink.c b/ext/curl/gstcurlsshsink.c
index d2dac8d..b06cbcd 100644
--- a/ext/curl/gstcurlsshsink.c
+++ b/ext/curl/gstcurlsshsink.c
@@ -416,16 +416,15 @@
     bcsink->error = g_strdup_printf ("failed to set SSH_KEYFUNCTION callback: "
         "%s", curl_easy_strerror (curl_err));
     return FALSE;
-  } else {
-    /* SSH_KEYFUNCTION callback successfully installed so go on and
-     * set the '*clientp' parameter as well */
-    if ((curl_err =
-            curl_easy_setopt (bcsink->curl, CURLOPT_SSH_KEYDATA,
-                sink)) != CURLE_OK) {
-      bcsink->error = g_strdup_printf ("failed to set CURLOPT_SSH_KEYDATA: %s",
-          curl_easy_strerror (curl_err));
-      return FALSE;
-    }
+  }
+  /* SSH_KEYFUNCTION callback successfully installed so go on and
+   * set the '*clientp' parameter as well */
+  if ((curl_err =
+          curl_easy_setopt (bcsink->curl, CURLOPT_SSH_KEYDATA,
+              sink)) != CURLE_OK) {
+    bcsink->error = g_strdup_printf ("failed to set CURLOPT_SSH_KEYDATA: %s",
+        curl_easy_strerror (curl_err));
+    return FALSE;
   }
 
   return TRUE;
diff --git a/ext/daala/Makefile.in b/ext/daala/Makefile.in
index 211fb59..ebf61a8 100644
--- a/ext/daala/Makefile.in
+++ b/ext/daala/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/daala
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -229,6 +239,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -246,8 +257,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -276,8 +285,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -325,11 +332,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -513,6 +523,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -591,7 +602,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -631,6 +647,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -774,7 +791,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/daala/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/daala/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1099,6 +1115,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/ext/daala/gstdaaladec.c b/ext/daala/gstdaaladec.c
index 74302bf..0cf4f63 100644
--- a/ext/daala/gstdaaladec.c
+++ b/ext/daala/gstdaaladec.c
@@ -131,6 +131,9 @@
    * but is not marked that way so data gets parsed and keyframes marked */
   gst_video_decoder_set_packetized (GST_VIDEO_DECODER (dec), FALSE);
   gst_video_decoder_set_needs_format (GST_VIDEO_DECODER (dec), TRUE);
+  gst_video_decoder_set_use_default_pad_acceptcaps (GST_VIDEO_DECODER_CAST
+      (dec), TRUE);
+  GST_PAD_SET_ACCEPT_TEMPLATE (GST_VIDEO_DECODER_SINK_PAD (dec));
 }
 
 static void
diff --git a/ext/daala/gstdaalaenc.c b/ext/daala/gstdaalaenc.c
index 1aa2a78..77ab0b2 100644
--- a/ext/daala/gstdaalaenc.c
+++ b/ext/daala/gstdaalaenc.c
@@ -82,6 +82,8 @@
         "width = (int) [ 1, MAX ], " "height = (int) [ 1, MAX ]")
     );
 
+static GstCaps *daala_supported_caps = NULL;
+
 #define gst_daala_enc_parent_class parent_class
 G_DEFINE_TYPE (GstDaalaEnc, gst_daala_enc, GST_TYPE_VIDEO_ENCODER);
 
@@ -97,6 +99,8 @@
 static GstFlowReturn daala_enc_finish (GstVideoEncoder * enc);
 static gboolean daala_enc_propose_allocation (GstVideoEncoder * encoder,
     GstQuery * query);
+static gboolean gst_daala_enc_sink_query (GstVideoEncoder * encoder,
+    GstQuery * query);
 
 static GstCaps *daala_enc_getcaps (GstVideoEncoder * encoder, GstCaps * filter);
 static void daala_enc_get_property (GObject * object, guint prop_id,
@@ -105,6 +109,85 @@
     const GValue * value, GParamSpec * pspec);
 static void daala_enc_finalize (GObject * object);
 
+static char *
+daala_enc_get_supported_formats (void)
+{
+  daala_enc_ctx *encoder;
+  daala_info info;
+  struct
+  {
+    GstVideoFormat fmt;
+    gint planes;
+    gint xdec[3], ydec[3];
+  } formats[] = {
+    {
+      GST_VIDEO_FORMAT_Y444, 3, {
+      0, 0, 0}, {
+    0, 0, 0}}, {
+      GST_VIDEO_FORMAT_I420, 3, {
+      0, 1, 1}, {
+    0, 1, 1}}
+  };
+  GString *string = NULL;
+  guint i;
+
+  daala_info_init (&info);
+  info.pic_width = 16;
+  info.pic_height = 16;
+  info.timebase_numerator = 25;
+  info.timebase_denominator = 1;
+  info.frame_duration = 1;
+  for (i = 0; i < G_N_ELEMENTS (formats); i++) {
+    gint j;
+
+    info.nplanes = formats[i].planes;
+    for (j = 0; j < formats[i].planes; j++) {
+      info.plane_info[j].xdec = formats[i].xdec[j];
+      info.plane_info[j].ydec = formats[i].ydec[j];
+    }
+
+    encoder = daala_encode_create (&info);
+    if (encoder == NULL)
+      continue;
+
+    GST_LOG ("format %s is supported",
+        gst_video_format_to_string (formats[i].fmt));
+    daala_encode_free (encoder);
+
+    if (string == NULL) {
+      string = g_string_new (gst_video_format_to_string (formats[i].fmt));
+    } else {
+      g_string_append (string, ", ");
+      g_string_append (string, gst_video_format_to_string (formats[i].fmt));
+    }
+  }
+  daala_info_clear (&info);
+
+  return string == NULL ? NULL : g_string_free (string, FALSE);
+}
+
+static void
+initialize_supported_caps (void)
+{
+  char *supported_formats, *caps_string;
+
+  supported_formats = daala_enc_get_supported_formats ();
+  if (!supported_formats) {
+    GST_WARNING ("no supported formats found. Encoder disabled?");
+    daala_supported_caps = gst_caps_new_empty ();
+  }
+
+  caps_string = g_strdup_printf ("video/x-raw, "
+      "format = (string) { %s }, "
+      "framerate = (fraction) [1/MAX, MAX], "
+      "width = (int) [ 1, MAX ], " "height = (int) [ 1, MAX ]",
+      supported_formats);
+  daala_supported_caps = gst_caps_from_string (caps_string);
+  g_free (caps_string);
+  g_free (supported_formats);
+  GST_DEBUG ("Supported caps: %" GST_PTR_FORMAT, daala_supported_caps);
+}
+
 static void
 gst_daala_enc_class_init (GstDaalaEncClass * klass)
 {
@@ -113,6 +196,8 @@
   GstVideoEncoderClass *gstvideo_encoder_class =
       GST_VIDEO_ENCODER_CLASS (klass);
 
+  GST_DEBUG_CATEGORY_INIT (daalaenc_debug, "daalaenc", 0, "Daala encoder");
+
   gobject_class->set_property = daala_enc_set_property;
   gobject_class->get_property = daala_enc_get_property;
   gobject_class->finalize = daala_enc_finalize;
@@ -145,10 +230,12 @@
   gstvideo_encoder_class->pre_push = GST_DEBUG_FUNCPTR (daala_enc_pre_push);
   gstvideo_encoder_class->finish = GST_DEBUG_FUNCPTR (daala_enc_finish);
   gstvideo_encoder_class->getcaps = GST_DEBUG_FUNCPTR (daala_enc_getcaps);
+  gstvideo_encoder_class->sink_query =
+      GST_DEBUG_FUNCPTR (gst_daala_enc_sink_query);
   gstvideo_encoder_class->propose_allocation =
       GST_DEBUG_FUNCPTR (daala_enc_propose_allocation);
 
-  GST_DEBUG_CATEGORY_INIT (daalaenc_debug, "daalaenc", 0, "Daala encoder");
+  initialize_supported_caps ();
 }
 
 static void
@@ -235,89 +322,35 @@
   return TRUE;
 }
 
-static char *
-daala_enc_get_supported_formats (void)
+static gboolean
+gst_daala_enc_sink_query (GstVideoEncoder * encoder, GstQuery * query)
 {
-  daala_enc_ctx *encoder;
-  daala_info info;
-  struct
-  {
-    GstVideoFormat fmt;
-    gint planes;
-    gint xdec[3], ydec[3];
-  } formats[] = {
-    {
-      GST_VIDEO_FORMAT_Y444, 3, {
-      0, 0, 0}, {
-    0, 0, 0}}, {
-      GST_VIDEO_FORMAT_I420, 3, {
-      0, 1, 1}, {
-    0, 1, 1}}
-  };
-  GString *string = NULL;
-  guint i;
+  gboolean res;
 
-  daala_info_init (&info);
-  info.pic_width = 16;
-  info.pic_height = 16;
-  info.timebase_numerator = 25;
-  info.timebase_denominator = 1;
-  info.frame_duration = 1;
-  for (i = 0; i < G_N_ELEMENTS (formats); i++) {
-    gint j;
+  switch (GST_QUERY_TYPE (query)) {
+    case GST_QUERY_ACCEPT_CAPS:{
+      GstCaps *caps;
 
-    info.nplanes = formats[i].planes;
-    for (j = 0; j < formats[i].planes; j++) {
-      info.plane_info[j].xdec = formats[i].xdec[j];
-      info.plane_info[j].ydec = formats[i].ydec[j];
+      gst_query_parse_accept_caps (query, &caps);
+
+      gst_query_set_accept_caps_result (query,
+          gst_caps_is_subset (caps, daala_supported_caps));
+      res = TRUE;
     }
-
-    encoder = daala_encode_create (&info);
-    if (encoder == NULL)
-      continue;
-
-    GST_LOG ("format %s is supported",
-        gst_video_format_to_string (formats[i].fmt));
-    daala_encode_free (encoder);
-
-    if (string == NULL) {
-      string = g_string_new (gst_video_format_to_string (formats[i].fmt));
-    } else {
-      g_string_append (string, ", ");
-      g_string_append (string, gst_video_format_to_string (formats[i].fmt));
-    }
+      break;
+    default:
+      res = GST_VIDEO_ENCODER_CLASS (parent_class)->sink_query (encoder, query);
+      break;
   }
-  daala_info_clear (&info);
 
-  return string == NULL ? NULL : g_string_free (string, FALSE);
+  return res;
 }
 
 static GstCaps *
 daala_enc_getcaps (GstVideoEncoder * encoder, GstCaps * filter)
 {
-  GstCaps *caps, *ret;
-  char *supported_formats, *caps_string;
-
-  supported_formats = daala_enc_get_supported_formats ();
-  if (!supported_formats) {
-    GST_WARNING ("no supported formats found. Encoder disabled?");
-    return gst_caps_new_empty ();
-  }
-
-  caps_string = g_strdup_printf ("video/x-raw, "
-      "format = (string) { %s }, "
-      "framerate = (fraction) [1/MAX, MAX], "
-      "width = (int) [ 1, MAX ], " "height = (int) [ 1, MAX ]",
-      supported_formats);
-  caps = gst_caps_from_string (caps_string);
-  g_free (caps_string);
-  g_free (supported_formats);
-  GST_DEBUG ("Supported caps: %" GST_PTR_FORMAT, caps);
-
-  ret = gst_video_encoder_proxy_getcaps (encoder, caps, filter);
-  gst_caps_unref (caps);
-
-  return ret;
+  return gst_video_encoder_proxy_getcaps (encoder, daala_supported_caps,
+      filter);
 }
 
 static gboolean
diff --git a/ext/dash/Makefile.am b/ext/dash/Makefile.am
index f4e7290..38af4b7 100644
--- a/ext/dash/Makefile.am
+++ b/ext/dash/Makefile.am
@@ -19,6 +19,7 @@
 	$(GST_PLUGINS_BASE_CFLAGS) \
 	$(GST_BASE_CFLAGS) \
 	$(GST_CFLAGS) \
+	$(GIO_CFLAGS) \
 	$(LIBXML2_CFLAGS)
 libgstdashdemux_la_LIBADD = \
 	$(top_builddir)/gst-libs/gst/uridownloader/libgsturidownloader-@GST_API_VERSION@.la \
@@ -27,6 +28,8 @@
 	-lgsttag-$(GST_API_VERSION) \
 	$(GST_BASE_LIBS) \
 	$(GST_LIBS) \
+	$(GIO_LIBS) \
+	-lgstnet-$(GST_API_VERSION) \
 	$(LIBXML2_LIBS)
 libgstdashdemux_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
 libgstdashdemux_la_LIBTOOLFLAGS = --tag=disable-static
diff --git a/ext/dash/Makefile.in b/ext/dash/Makefile.in
index 7c39101..b41b1ea 100644
--- a/ext/dash/Makefile.in
+++ b/ext/dash/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/dash
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -157,7 +167,8 @@
 libgstdashdemux_la_DEPENDENCIES = $(top_builddir)/gst-libs/gst/uridownloader/libgsturidownloader-@GST_API_VERSION@.la \
 	$(top_builddir)/gst-libs/gst/adaptivedemux/libgstadaptivedemux-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
-	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_1)
 am_libgstdashdemux_la_OBJECTS = libgstdashdemux_la-gstmpdparser.lo \
 	libgstdashdemux_la-gstdashdemux.lo \
 	libgstdashdemux_la-gstisoff.lo libgstdashdemux_la-gstplugin.lo
@@ -231,6 +242,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -248,8 +260,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -278,8 +288,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -327,11 +335,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -515,6 +526,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -593,7 +605,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -633,6 +650,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -762,6 +780,7 @@
 	$(GST_PLUGINS_BASE_CFLAGS) \
 	$(GST_BASE_CFLAGS) \
 	$(GST_CFLAGS) \
+	$(GIO_CFLAGS) \
 	$(LIBXML2_CFLAGS)
 
 libgstdashdemux_la_LIBADD = \
@@ -771,6 +790,8 @@
 	-lgsttag-$(GST_API_VERSION) \
 	$(GST_BASE_LIBS) \
 	$(GST_LIBS) \
+	$(GIO_LIBS) \
+	-lgstnet-$(GST_API_VERSION) \
 	$(LIBXML2_LIBS)
 
 libgstdashdemux_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
@@ -791,7 +812,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/dash/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/dash/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1124,6 +1144,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/ext/dash/gstdashdemux.c b/ext/dash/gstdashdemux.c
index aafb39c..5a1e1a5 100644
--- a/ext/dash/gstdashdemux.c
+++ b/ext/dash/gstdashdemux.c
@@ -145,9 +145,12 @@
 #endif
 
 #include <string.h>
+#include <stdio.h>
 #include <inttypes.h>
+#include <gio/gio.h>
 #include <gst/base/gsttypefindhelper.h>
 #include <gst/tag/tag.h>
+#include <gst/net/gstnet.h>
 #include "gst/gst-i18n-plugin.h"
 #include "gstdashdemux.h"
 #include "gstdash_debug.h"
@@ -187,6 +190,25 @@
 #define DEFAULT_BANDWIDTH_USAGE         0.8     /* 0 to 1     */
 #define DEFAULT_MAX_BITRATE        24000000     /* in bit/s  */
 
+/* Clock drift compensation for live streams */
+#define SLOW_CLOCK_UPDATE_INTERVAL  (1000000 * 30 * 60) /* 30 minutes */
+#define FAST_CLOCK_UPDATE_INTERVAL  (1000000 * 30)      /* 30 seconds */
+#define SUPPORTED_CLOCK_FORMATS (GST_MPD_UTCTIMING_TYPE_NTP | GST_MPD_UTCTIMING_TYPE_HTTP_HEAD | GST_MPD_UTCTIMING_TYPE_HTTP_XSDATE | GST_MPD_UTCTIMING_TYPE_HTTP_ISO | GST_MPD_UTCTIMING_TYPE_HTTP_NTP)
+#define NTP_TO_UNIX_EPOCH G_GUINT64_CONSTANT(2208988800)        /* difference (in seconds) between NTP epoch and Unix epoch */
+
+struct _GstDashDemuxClockDrift
+{
+  GMutex clock_lock;            /* used to protect access to struct */
+  guint selected_url;
+  gint64 next_update;
+  GCond clock_cond;             /* used for waiting until got_clock==TRUE */
+  /* @clock_compensation: amount (in usecs) to add to client's idea of
+     now to map it to the server's idea of now */
+  GTimeSpan clock_compensation;
+  gboolean got_clock;           /* indicates time source has returned a valid clock at least once */
+  GstClock *ntp_clock;
+};
+
 /* GObject */
 static void gst_dash_demux_set_property (GObject * object, guint prop_id,
     const GValue * value, GParamSpec * pspec);
@@ -236,11 +258,19 @@
     GstActiveStream * stream);
 static GstPad *gst_dash_demux_create_pad (GstDashDemux * demux,
     GstActiveStream * stream);
+static GstDashDemuxClockDrift *gst_dash_demux_clock_drift_new (void);
+static void gst_dash_demux_clock_drift_free (GstDashDemuxClockDrift *);
+static gboolean gst_dash_demux_poll_clock_drift (GstDashDemux * demux);
+static GTimeSpan gst_dash_demux_get_clock_compensation (GstDashDemux * demux);
+static GDateTime *gst_dash_demux_get_server_now_utc (GstDashDemux * demux);
 
 #define SIDX(s) (&(s)->sidx_parser.sidx)
 #define SIDX_ENTRY(s,i) (&(SIDX(s)->entries[(i)]))
 #define SIDX_CURRENT_ENTRY(s) SIDX_ENTRY(s, SIDX(s)->entry_index)
 
+static void gst_dash_demux_send_content_protection_event (gpointer cp_data,
+    gpointer stream);
+
 #define gst_dash_demux_parent_class parent_class
 G_DEFINE_TYPE_WITH_CODE (GstDashDemux, gst_dash_demux, GST_TYPE_ADAPTIVE_DEMUX,
     GST_DEBUG_CATEGORY_INIT (gst_dash_demux_debug, "dashdemux", 0,
@@ -261,6 +291,8 @@
 
   g_mutex_clear (&demux->client_lock);
 
+  gst_dash_demux_clock_drift_free (demux->clock_drift);
+  demux->clock_drift = NULL;
   G_OBJECT_CLASS (parent_class)->dispose (obj);
 }
 
@@ -269,7 +301,7 @@
     gint64 * stop)
 {
   GstDashDemux *self = GST_DASH_DEMUX (demux);
-  GDateTime *now = g_date_time_new_now_utc ();
+  GDateTime *now = gst_dash_demux_get_server_now_utc (self);
   GDateTime *mstart =
       gst_date_time_to_g_date_time (self->client->
       mpd_node->availabilityStartTime);
@@ -525,12 +557,52 @@
           (stream), tags);
     stream->index = i;
     stream->pending_seek_ts = GST_CLOCK_TIME_NONE;
+    if (active_stream->cur_adapt_set &&
+        active_stream->cur_adapt_set->RepresentationBase &&
+        active_stream->cur_adapt_set->RepresentationBase->ContentProtection) {
+      GST_DEBUG_OBJECT (demux, "Adding ContentProtection events to source pad");
+      g_list_foreach (active_stream->cur_adapt_set->
+          RepresentationBase->ContentProtection,
+          gst_dash_demux_send_content_protection_event, stream);
+    }
+
     gst_isoff_sidx_parser_init (&stream->sidx_parser);
   }
 
   return TRUE;
 }
 
+static void
+gst_dash_demux_send_content_protection_event (gpointer data, gpointer userdata)
+{
+  GstDescriptorType *cp = (GstDescriptorType *) data;
+  GstDashDemuxStream *stream = (GstDashDemuxStream *) userdata;
+  GstEvent *event;
+  GstBuffer *pssi;
+  glong pssi_len;
+  gchar *schemeIdUri;
+
+  if (cp->schemeIdUri == NULL)
+    return;
+
+  GST_TRACE_OBJECT (stream, "check schemeIdUri %s", cp->schemeIdUri);
+  /* RFC 2141 states: The leading "urn:" sequence is case-insensitive */
+  schemeIdUri = g_ascii_strdown (cp->schemeIdUri, -1);
+  if (g_str_has_prefix (schemeIdUri, "urn:uuid:")) {
+    pssi_len = strlen (cp->value);
+    pssi = gst_buffer_new_wrapped (g_memdup (cp->value, pssi_len), pssi_len);
+    GST_LOG_OBJECT (stream, "Queuing Protection event on source pad");
+    /* RFC 4122 states that the hex part of a UUID is in lower case,
+     * but some streams seem to ignore this and use upper case for the
+     * protection system ID */
+    event = gst_event_new_protection (cp->schemeIdUri + 9, pssi, "dash/mpd");
+    gst_adaptive_demux_stream_queue_event ((GstAdaptiveDemuxStream *) stream,
+        event);
+    gst_buffer_unref (pssi);
+  }
+  g_free (schemeIdUri);
+}
+
 static GstClockTime
 gst_dash_demux_get_duration (GstAdaptiveDemux * ademux)
 {
@@ -563,9 +635,21 @@
    * non-live */
   period_idx = 0;
   if (gst_mpd_client_is_live (dashdemux->client)) {
-
+    GDateTime *g_now;
+    if (dashdemux->clock_drift == NULL) {
+      gchar **urls;
+      urls =
+          gst_mpd_client_get_utc_timing_sources (dashdemux->client,
+          SUPPORTED_CLOCK_FORMATS, NULL);
+      if (urls) {
+        GST_DEBUG_OBJECT (dashdemux, "Found a supported UTCTiming element");
+        dashdemux->clock_drift = gst_dash_demux_clock_drift_new ();
+        gst_dash_demux_poll_clock_drift (dashdemux);
+      }
+    }
     /* get period index for period encompassing the current time */
-    now = gst_date_time_new_now_utc ();
+    g_now = gst_dash_demux_get_server_now_utc (dashdemux);
+    now = gst_date_time_new_from_g_date_time (g_now);
     if (dashdemux->client->mpd_node->suggestedPresentationDelay != -1) {
       GstDateTime *target = gst_mpd_client_add_time_difference (now,
           dashdemux->client->mpd_node->suggestedPresentationDelay * -1000);
@@ -708,6 +792,8 @@
     gst_mpd_client_free (demux->client);
     demux->client = NULL;
   }
+  gst_dash_demux_clock_drift_free (demux->clock_drift);
+  demux->clock_drift = NULL;
   demux->client = gst_mpd_client_new ();
 
   demux->n_audio_streams = 0;
@@ -869,6 +955,7 @@
   if (gst_mpd_client_get_next_fragment_timestamp (dashdemux->client,
           dashstream->index, &ts)) {
     if (GST_ADAPTIVE_DEMUX_STREAM_NEED_HEADER (stream)) {
+      gst_adaptive_demux_stream_fragment_clear (&stream->fragment);
       gst_dash_demux_stream_update_headers_info (stream);
     }
 
@@ -1082,6 +1169,7 @@
   GstStreamPeriod *period;
   GList *iter;
   GstDashDemux *dashdemux = GST_DASH_DEMUX_CAST (demux);
+  gboolean switched_period = FALSE;
 
   gst_event_parse_seek (seek, &rate, &format, &flags, &start_type, &start,
       &stop_type, &stop);
@@ -1099,10 +1187,13 @@
     period = list->data;
     current_pos = period->start;
     current_period = period->number;
-    GST_DEBUG_OBJECT (demux, "Looking at period %u pos %" GST_TIME_FORMAT,
-        current_period, GST_TIME_ARGS (current_pos));
+    GST_DEBUG_OBJECT (demux, "Looking at period %u) start:%"
+        GST_TIME_FORMAT " - duration:%"
+        GST_TIME_FORMAT ") for position %" GST_TIME_FORMAT,
+        current_period, GST_TIME_ARGS (current_pos),
+        GST_TIME_ARGS (period->duration), GST_TIME_ARGS (target_pos));
     if (current_pos <= target_pos
-        && target_pos < current_pos + period->duration) {
+        && target_pos <= current_pos + period->duration) {
       break;
     }
   }
@@ -1120,10 +1211,12 @@
     if (!gst_mpd_client_set_period_index (dashdemux->client, current_period)
         || !gst_dash_demux_setup_all_streams (dashdemux))
       return FALSE;
+    switched_period = TRUE;
   }
 
   /* Update the current sequence on all streams */
-  for (iter = demux->streams; iter; iter = g_list_next (iter)) {
+  for (iter = (switched_period ? demux->next_streams : demux->streams); iter;
+      iter = g_list_next (iter)) {
     GstDashDemuxStream *dashstream = iter->data;
 
     if (flags & GST_SEEK_FLAG_FLUSH) {
@@ -1139,7 +1232,8 @@
 gst_dash_demux_get_manifest_update_interval (GstAdaptiveDemux * demux)
 {
   GstDashDemux *dashdemux = GST_DASH_DEMUX_CAST (demux);
-  return dashdemux->client->mpd_node->minimumUpdatePeriod * 1000;
+  return MIN (dashdemux->client->mpd_node->minimumUpdatePeriod * 1000,
+      SLOW_CLOCK_UPDATE_INTERVAL);
 }
 
 static GstFlowReturn
@@ -1235,6 +1329,9 @@
     dashdemux->client = new_client;
 
     GST_DEBUG_OBJECT (demux, "Manifest file successfully updated");
+    if (dashdemux->clock_drift) {
+      gst_dash_demux_poll_clock_drift (dashdemux);
+    }
   } else {
     /* In most cases, this will happen if we set a wrong url in the
      * source element and we have received the 404 HTML response instead of
@@ -1270,7 +1367,10 @@
     diff = gst_mpd_client_calculate_time_difference (cur_time, seg_end_time);
     gst_date_time_unref (seg_end_time);
     gst_date_time_unref (cur_time);
-    return diff;
+    /* subtract the server's clock drift, so that if the server's
+       time is behind our idea of UTC, we need to sleep for longer
+       before requesting a fragment */
+    return diff - gst_dash_demux_get_clock_compensation (dashdemux);
   }
   return 0;
 }
@@ -1331,15 +1431,14 @@
   GstDashDemuxStream *dashstream = (GstDashDemuxStream *) stream;
 
   if (gst_mpd_client_has_isoff_ondemand_profile (dashdemux->client) &&
-      dashstream->sidx_parser.status == GST_ISOFF_SIDX_PARSER_FINISHED) {
+      dashstream->sidx_parser.status == GST_ISOFF_SIDX_PARSER_FINISHED)
     /* fragment is advanced on data_received when byte limits are reached */
     return GST_FLOW_OK;
-  } else {
-    if (G_UNLIKELY (stream->downloading_header || stream->downloading_index))
-      return GST_FLOW_OK;
-    return gst_adaptive_demux_stream_advance_fragment (demux, stream,
-        stream->fragment.duration);
-  }
+  if (G_UNLIKELY (stream->downloading_header || stream->downloading_index))
+    return GST_FLOW_OK;
+
+  return gst_adaptive_demux_stream_advance_fragment (demux, stream,
+      stream->fragment.duration);
 }
 
 static GstFlowReturn
@@ -1434,3 +1533,443 @@
 
   gst_isoff_sidx_parser_clear (&dash_stream->sidx_parser);
 }
+
+static GstDashDemuxClockDrift *
+gst_dash_demux_clock_drift_new (void)
+{
+  GstDashDemuxClockDrift *clock_drift;
+
+  clock_drift = g_slice_new0 (GstDashDemuxClockDrift);
+  g_mutex_init (&clock_drift->clock_lock);
+  g_cond_init (&clock_drift->clock_cond);
+  clock_drift->next_update = g_get_monotonic_time ();
+  return clock_drift;
+}
+
+static void
+gst_dash_demux_clock_drift_free (GstDashDemuxClockDrift * clock_drift)
+{
+  if (clock_drift) {
+    g_mutex_lock (&clock_drift->clock_lock);
+    if (clock_drift->ntp_clock)
+      g_object_unref (clock_drift->ntp_clock);
+    g_cond_clear (&clock_drift->clock_cond);
+    g_mutex_unlock (&clock_drift->clock_lock);
+    g_mutex_clear (&clock_drift->clock_lock);
+    g_slice_free (GstDashDemuxClockDrift, clock_drift);
+  }
+}
+
+/*
+ * The value attribute of the UTCTiming element contains a white-space
+ * separated list of servers that are recommended to be used in
+ * combination with the NTP protocol as defined in IETF RFC 5905 for
+ * getting the appropriate time.
+ *
+ * The DASH standard does not specify which version of NTP. This
+ * function only works with NTPv4 servers.
+*/
+static GstDateTime *
+gst_dash_demux_poll_ntp_server (GstDashDemuxClockDrift * clock_drift,
+    gchar ** urls)
+{
+  GstClockTime ntp_clock_time;
+  GDateTime *dt, *dt2;
+
+  if (!clock_drift->ntp_clock) {
+    GResolver *resolver;
+    GList *inet_addrs;
+    GError *err;
+    gchar *ip_addr;
+
+    resolver = g_resolver_get_default ();
+    /* We don't round-robin NTP servers. If the manifest specifies multiple
+       NTP time servers, select one at random */
+    clock_drift->selected_url = g_random_int_range (0, g_strv_length (urls));
+    GST_DEBUG ("Connecting to NTP time server %s",
+        urls[clock_drift->selected_url]);
+    inet_addrs = g_resolver_lookup_by_name (resolver,
+        urls[clock_drift->selected_url], NULL, &err);
+    g_object_unref (resolver);
+    if (!inet_addrs || g_list_length (inet_addrs) == 0) {
+      GST_ERROR ("Failed to resolve hostname of NTP server: %s",
+          err ? (err->message) : "unknown error");
+      if (inet_addrs)
+        g_resolver_free_addresses (inet_addrs);
+      if (err)
+        g_error_free (err);
+      return NULL;
+    }
+    ip_addr =
+        g_inet_address_to_string ((GInetAddress
+            *) (g_list_first (inet_addrs)->data));
+    clock_drift->ntp_clock = gst_ntp_clock_new ("dashntp", ip_addr, 123, 0);
+    g_free (ip_addr);
+    g_resolver_free_addresses (inet_addrs);
+    if (!clock_drift->ntp_clock) {
+      GST_ERROR ("Failed to create NTP clock");
+      return NULL;
+    }
+    if (!gst_clock_wait_for_sync (clock_drift->ntp_clock, 5 * GST_SECOND)) {
+      g_object_unref (clock_drift->ntp_clock);
+      clock_drift->ntp_clock = NULL;
+      GST_ERROR ("Failed to lock to NTP clock");
+      return NULL;
+    }
+  }
+  ntp_clock_time = gst_clock_get_time (clock_drift->ntp_clock);
+  if (ntp_clock_time == GST_CLOCK_TIME_NONE) {
+    GST_ERROR ("Failed to get time from NTP clock");
+    return NULL;
+  }
+  ntp_clock_time -= NTP_TO_UNIX_EPOCH * GST_SECOND;
+  dt = g_date_time_new_from_unix_utc (ntp_clock_time / GST_SECOND);
+  if (!dt) {
+    GST_ERROR ("Failed to create GstDateTime");
+    return NULL;
+  }
+  ntp_clock_time =
+      gst_util_uint64_scale (ntp_clock_time % GST_SECOND, 1000000, GST_SECOND);
+  dt2 = g_date_time_add (dt, ntp_clock_time);
+  g_date_time_unref (dt);
+  return gst_date_time_new_from_g_date_time (dt2);
+}
+
+struct Rfc822TimeZone
+{
+  const gchar *name;
+  gfloat tzoffset;
+};
+
+/*
+ Parse an RFC822 (section 5) date-time from the Date: field in the
+ HTTP response. 
+ See https://tools.ietf.org/html/rfc822#section-5
+*/
+static GstDateTime *
+gst_dash_demux_parse_http_head (GstDashDemuxClockDrift * clock_drift,
+    GstFragment * download)
+{
+  static const gchar *months[] = { NULL, "Jan", "Feb", "Mar", "Apr",
+    "May", "Jun", "Jul", "Aug",
+    "Sep", "Oct", "Nov", "Dec", NULL
+  };
+  static const struct Rfc822TimeZone timezones[] = {
+    {"Z", 0},
+    {"UT", 0},
+    {"GMT", 0},
+    {"BST", 1},
+    {"EST", -5},
+    {"EDT", -4},
+    {"CST", -6},
+    {"CDT", -5},
+    {"MST", -7},
+    {"MDT", -6},
+    {"PST", -8},
+    {"PDT", -7},
+    {NULL, 0}
+  };
+  GstDateTime *value = NULL;
+  const GstStructure *response_headers;
+  const gchar *http_date;
+  const GValue *val;
+  gint ret;
+  const gchar *pos;
+  gint year = -1, month = -1, day = -1, hour = -1, minute = -1, second = -1;
+  gchar zone[6];
+  gchar monthstr[4];
+  gfloat tzoffset = 0;
+  gboolean parsed_tz = FALSE;
+
+  g_return_val_if_fail (download != NULL, NULL);
+  g_return_val_if_fail (download->headers != NULL, NULL);
+
+  val = gst_structure_get_value (download->headers, "response-headers");
+  if (!val) {
+    return NULL;
+  }
+  response_headers = gst_value_get_structure (val);
+  http_date = gst_structure_get_string (response_headers, "Date");
+  if (!http_date) {
+    return NULL;
+  }
+
+  /* skip optional text version of day of the week */
+  pos = strchr (http_date, ',');
+  if (pos)
+    pos++;
+  else
+    pos = http_date;
+  ret =
+      sscanf (pos, "%02d %3s %04d %02d:%02d:%02d %5s", &day, monthstr, &year,
+      &hour, &minute, &second, zone);
+  if (ret == 7) {
+    gchar *z = zone;
+    for (int i = 1; months[i]; ++i) {
+      if (g_ascii_strncasecmp (months[i], monthstr, strlen (months[i])) == 0) {
+        month = i;
+        break;
+      }
+    }
+    while (*z == ' ') {
+      ++z;
+    }
+    for (int i = 0; timezones[i].name && !parsed_tz; ++i) {
+      if (g_ascii_strncasecmp (timezones[i].name, z,
+              strlen (timezones[i].name)) == 0) {
+        tzoffset = timezones[i].tzoffset;
+        parsed_tz = TRUE;
+      }
+    }
+    if (!parsed_tz) {
+      gint hh, mm;
+      gboolean neg = FALSE;
+      /* check if it is in the form +-HHMM */
+      if (*z == '+' || *z == '-') {
+        if (*z == '+')
+          ++z;
+        else if (*z == '-') {
+          ++z;
+          neg = TRUE;
+        }
+        ret = sscanf (z, "%02d%02d", &hh, &mm);
+        if (ret == 2) {
+          tzoffset = hh;
+          tzoffset += mm / 60.0;
+          if (neg)
+            tzoffset = -tzoffset;
+          parsed_tz = TRUE;
+        }
+      }
+    }
+  }
+  if (month > 0 && parsed_tz) {
+    value = gst_date_time_new (tzoffset,
+        year, month, day, hour, minute, second);
+  }
+  return value;
+}
+
+/*
+   The timing information is contained in the message body of the HTTP
+   response and contains a time value formatted according to NTP timestamp
+   format in IETF RFC 5905.
+
+       0                   1                   2                   3
+       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+      |                            Seconds                            |
+      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+      |                            Fraction                           |
+      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+                             NTP Timestamp Format
+*/
+static GstDateTime *
+gst_dash_demux_parse_http_ntp (GstDashDemuxClockDrift * clock_drift,
+    GstBuffer * buffer)
+{
+  gint64 seconds;
+  guint64 fraction;
+  GDateTime *dt, *dt2;
+  GstMapInfo mapinfo;
+
+  /* See https://tools.ietf.org/html/rfc5905#page-12 for details of
+     the NTP Timestamp Format */
+  gst_buffer_map (buffer, &mapinfo, GST_MAP_READ);
+  if (mapinfo.size != 8) {
+    gst_buffer_unmap (buffer, &mapinfo);
+    return NULL;
+  }
+  seconds = GST_READ_UINT32_BE (mapinfo.data);
+  fraction = GST_READ_UINT32_BE (mapinfo.data + 4);
+  gst_buffer_unmap (buffer, &mapinfo);
+  fraction = gst_util_uint64_scale (fraction, 1000000,
+      G_GUINT64_CONSTANT (1) << 32);
+  /* subtract constant to convert from 1900 based time to 1970 based time */
+  seconds -= NTP_TO_UNIX_EPOCH;
+  dt = g_date_time_new_from_unix_utc (seconds);
+  dt2 = g_date_time_add (dt, fraction);
+  g_date_time_unref (dt);
+  return gst_date_time_new_from_g_date_time (dt2);
+}
+
+/*
+  The timing information is contained in the message body of the
+  HTTP response and contains a time value formatted according to
+  xs:dateTime as defined in W3C XML Schema Part 2: Datatypes specification.
+*/
+static GstDateTime *
+gst_dash_demux_parse_http_xsdate (GstDashDemuxClockDrift * clock_drift,
+    GstBuffer * buffer)
+{
+  GstDateTime *value;
+  GstMapInfo mapinfo;
+
+  /* the string from the server might not be zero terminated */
+  gst_buffer_resize (buffer, 0, gst_buffer_get_size (buffer) + 1);
+  gst_buffer_map (buffer, &mapinfo, GST_MAP_READ | GST_MAP_WRITE);
+  mapinfo.data[mapinfo.size - 1] = '\0';
+  value = gst_date_time_new_from_iso8601_string ((const gchar *) mapinfo.data);
+  gst_buffer_unmap (buffer, &mapinfo);
+  return value;
+}
+
+static gboolean
+gst_dash_demux_poll_clock_drift (GstDashDemux * demux)
+{
+  GstDashDemuxClockDrift *clock_drift;
+  GDateTime *start = NULL, *end;
+  GstBuffer *buffer = NULL;
+  GstDateTime *value = NULL;
+  gboolean ret = FALSE;
+  gint64 now;
+  GstMPDUTCTimingType method;
+  gchar **urls;
+
+  g_return_val_if_fail (demux != NULL, FALSE);
+  g_return_val_if_fail (demux->clock_drift != NULL, FALSE);
+  clock_drift = demux->clock_drift;
+  now = g_get_monotonic_time ();
+  if (now < clock_drift->next_update) {
+    /*TODO: If a fragment fails to download in adaptivedemux, it waits
+       for a manifest reload before another attempt to fetch a fragment.
+       Section 10.8.6 of the DVB-DASH standard states that the DASH client
+       shall refresh the manifest and resynchronise to one of the time sources.
+
+       Currently the fact that the manifest refresh follows a download failure
+       does not make it into dashdemux. */
+    return TRUE;
+  }
+  urls = gst_mpd_client_get_utc_timing_sources (demux->client,
+      SUPPORTED_CLOCK_FORMATS, &method);
+  if (!urls) {
+    return FALSE;
+  }
+  /* Update selected_url just in case the number of URLs in the UTCTiming
+     element has shrunk since the last poll */
+  clock_drift->selected_url = clock_drift->selected_url % g_strv_length (urls);
+  g_mutex_lock (&clock_drift->clock_lock);
+
+  if (method == GST_MPD_UTCTIMING_TYPE_NTP) {
+    value = gst_dash_demux_poll_ntp_server (clock_drift, urls);
+    if (!value) {
+      GST_ERROR_OBJECT (demux, "Failed to fetch time from NTP server %s",
+          urls[clock_drift->selected_url]);
+      g_mutex_unlock (&clock_drift->clock_lock);
+      goto quit;
+    }
+  }
+  start = g_date_time_new_now_utc ();
+  if (!value) {
+    GstFragment *download;
+    gint64 range_start = 0, range_end = -1;
+    GST_DEBUG_OBJECT (demux, "Fetching current time from %s",
+        urls[clock_drift->selected_url]);
+    if (method == GST_MPD_UTCTIMING_TYPE_HTTP_HEAD) {
+      range_start = -1;
+    }
+    download =
+        gst_uri_downloader_fetch_uri_with_range (GST_ADAPTIVE_DEMUX_CAST
+        (demux)->downloader, urls[clock_drift->selected_url], NULL, TRUE, TRUE,
+        TRUE, range_start, range_end, NULL);
+    if (download) {
+      if (method == GST_MPD_UTCTIMING_TYPE_HTTP_HEAD && download->headers) {
+        value = gst_dash_demux_parse_http_head (clock_drift, download);
+      } else {
+        buffer = gst_fragment_get_buffer (download);
+      }
+      g_object_unref (download);
+    }
+  }
+  g_mutex_unlock (&clock_drift->clock_lock);
+  if (!value && !buffer) {
+    GST_ERROR_OBJECT (demux, "Failed to fetch time from %s",
+        urls[clock_drift->selected_url]);
+    goto quit;
+  }
+  end = g_date_time_new_now_utc ();
+  if (!value && method == GST_MPD_UTCTIMING_TYPE_HTTP_NTP) {
+    value = gst_dash_demux_parse_http_ntp (clock_drift, buffer);
+  } else if (!value) {
+    /* GST_MPD_UTCTIMING_TYPE_HTTP_XSDATE or GST_MPD_UTCTIMING_TYPE_HTTP_ISO */
+    value = gst_dash_demux_parse_http_xsdate (clock_drift, buffer);
+  }
+  if (buffer)
+    gst_buffer_unref (buffer);
+  if (value) {
+    GTimeSpan download_duration = g_date_time_difference (end, start);
+    GDateTime *client_now, *server_now;
+    /* We don't know when the server sampled its clock, but we know
+       it must have been before "end" and probably after "start".
+       A reasonable estimate is to use (start+end)/2
+     */
+    client_now = g_date_time_add (start, download_duration / 2);
+    server_now = gst_date_time_to_g_date_time (value);
+    /* If gst_date_time_new_from_iso8601_string is given an unsupported
+       ISO 8601 format, it can return a GstDateTime that is not valid,
+       which causes gst_date_time_to_g_date_time to return NULL */
+    if (server_now) {
+      g_mutex_lock (&clock_drift->clock_lock);
+      clock_drift->clock_compensation =
+          g_date_time_difference (server_now, client_now);
+      clock_drift->got_clock = TRUE;
+      g_cond_broadcast (&clock_drift->clock_cond);
+      g_mutex_unlock (&clock_drift->clock_lock);
+      GST_DEBUG_OBJECT (demux,
+          "Difference between client and server clocks is %lfs",
+          ((double) clock_drift->clock_compensation) / 1000000.0);
+      g_date_time_unref (server_now);
+      ret = TRUE;
+    } else {
+      GST_ERROR_OBJECT (demux, "Failed to parse DateTime from server");
+    }
+    g_date_time_unref (client_now);
+    gst_date_time_unref (value);
+  } else {
+    GST_ERROR_OBJECT (demux, "Failed to parse DateTime from server");
+  }
+  g_date_time_unref (end);
+quit:
+  if (start)
+    g_date_time_unref (start);
+  /* if multiple URLs were specified, use a simple round-robin to
+     poll each server */
+  g_mutex_lock (&clock_drift->clock_lock);
+  if (method == GST_MPD_UTCTIMING_TYPE_NTP) {
+    clock_drift->next_update = now + FAST_CLOCK_UPDATE_INTERVAL;
+  } else {
+    clock_drift->selected_url =
+        (1 + clock_drift->selected_url) % g_strv_length (urls);
+    if (ret) {
+      clock_drift->next_update = now + SLOW_CLOCK_UPDATE_INTERVAL;
+    } else {
+      clock_drift->next_update = now + FAST_CLOCK_UPDATE_INTERVAL;
+    }
+  }
+  g_mutex_unlock (&clock_drift->clock_lock);
+  return ret;
+}
+
+static GTimeSpan
+gst_dash_demux_get_clock_compensation (GstDashDemux * demux)
+{
+  GTimeSpan rv = 0;
+  if (demux->clock_drift) {
+    g_mutex_lock (&demux->clock_drift->clock_lock);
+    rv = demux->clock_drift->clock_compensation;
+    g_mutex_unlock (&demux->clock_drift->clock_lock);
+  }
+  GST_LOG_OBJECT (demux, "Clock drift %" GST_STIME_FORMAT, GST_STIME_ARGS (rv));
+  return rv;
+}
+
+static GDateTime *
+gst_dash_demux_get_server_now_utc (GstDashDemux * demux)
+{
+  GDateTime *client_now = g_date_time_new_now_utc ();
+  GDateTime *server_now = g_date_time_add (client_now,
+      gst_dash_demux_get_clock_compensation (demux));
+  g_date_time_unref (client_now);
+  return server_now;
+}
diff --git a/ext/dash/gstdashdemux.h b/ext/dash/gstdashdemux.h
index c945a19..ca2af31 100644
--- a/ext/dash/gstdashdemux.h
+++ b/ext/dash/gstdashdemux.h
@@ -52,6 +52,7 @@
 #define GST_DASH_DEMUX_CAST(obj) \
 	((GstDashDemux *)obj)
 
+typedef struct _GstDashDemuxClockDrift GstDashDemuxClockDrift;
 typedef struct _GstDashDemuxStream GstDashDemuxStream;
 typedef struct _GstDashDemux GstDashDemux;
 typedef struct _GstDashDemuxClass GstDashDemuxClass;
@@ -87,6 +88,8 @@
   GstMpdClient *client;         /* MPD client */
   GMutex client_lock;
 
+  GstDashDemuxClockDrift *clock_drift;
+
   gboolean end_of_period;
   gboolean end_of_manifest;
 
diff --git a/ext/dash/gstmpdparser.c b/ext/dash/gstmpdparser.c
index 003e1d5..98ef978 100644
--- a/ext/dash/gstmpdparser.c
+++ b/ext/dash/gstmpdparser.c
@@ -69,6 +69,8 @@
     gchar ** content);
 static gchar *gst_mpdparser_get_xml_node_namespace (xmlNode * a_node,
     const gchar * prefix);
+static gboolean gst_mpdparser_get_xml_node_as_string (xmlNode * a_node,
+    gchar ** content);
 
 /* XML node parsing */
 static void gst_mpdparser_parse_baseURL_node (GList ** list, xmlNode * a_node);
@@ -110,6 +112,8 @@
 static void gst_mpdparser_parse_metrics_node (GList ** list, xmlNode * a_node);
 static void gst_mpdparser_parse_root_node (GstMPDNode ** pointer,
     xmlNode * a_node);
+static void gst_mpdparser_parse_utctiming_node (GList ** list,
+    xmlNode * a_node);
 
 /* Helper functions */
 static gint convert_to_millisecs (gint decimals, gint pos);
@@ -198,10 +202,41 @@
     descriptor_type);
 static void gst_mpdparser_free_content_component_node (GstContentComponentNode *
     content_component_node);
+static void gst_mpdparser_free_utctiming_node (GstUTCTimingNode * timing_type);
 static void gst_mpdparser_free_stream_period (GstStreamPeriod * stream_period);
 static void gst_mpdparser_free_media_segment (GstMediaSegment * media_segment);
 static void gst_mpdparser_free_active_stream (GstActiveStream * active_stream);
 
+struct GstMpdParserUtcTimingMethod
+{
+  const gchar *name;
+  GstMPDUTCTimingType method;
+};
+
+static const struct GstMpdParserUtcTimingMethod
+    gst_mpdparser_utc_timing_methods[] = {
+  {"urn:mpeg:dash:utc:ntp:2014", GST_MPD_UTCTIMING_TYPE_NTP},
+  {"urn:mpeg:dash:utc:sntp:2014", GST_MPD_UTCTIMING_TYPE_SNTP},
+  {"urn:mpeg:dash:utc:http-head:2014", GST_MPD_UTCTIMING_TYPE_HTTP_HEAD},
+  {"urn:mpeg:dash:utc:http-xsdate:2014", GST_MPD_UTCTIMING_TYPE_HTTP_XSDATE},
+  {"urn:mpeg:dash:utc:http-iso:2014", GST_MPD_UTCTIMING_TYPE_HTTP_ISO},
+  {"urn:mpeg:dash:utc:http-ntp:2014", GST_MPD_UTCTIMING_TYPE_HTTP_NTP},
+  {"urn:mpeg:dash:utc:direct:2014", GST_MPD_UTCTIMING_TYPE_DIRECT},
+  /*
+   * Early working drafts used the :2012 namespace and this namespace is
+   * used by some DASH packagers. To work-around these packagers, we also
+   * accept the early draft scheme names.
+   */
+  {"urn:mpeg:dash:utc:ntp:2012", GST_MPD_UTCTIMING_TYPE_NTP},
+  {"urn:mpeg:dash:utc:sntp:2012", GST_MPD_UTCTIMING_TYPE_SNTP},
+  {"urn:mpeg:dash:utc:http-head:2012", GST_MPD_UTCTIMING_TYPE_HTTP_HEAD},
+  {"urn:mpeg:dash:utc:http-xsdate:2012", GST_MPD_UTCTIMING_TYPE_HTTP_XSDATE},
+  {"urn:mpeg:dash:utc:http-iso:2012", GST_MPD_UTCTIMING_TYPE_HTTP_ISO},
+  {"urn:mpeg:dash:utc:http-ntp:2012", GST_MPD_UTCTIMING_TYPE_HTTP_NTP},
+  {"urn:mpeg:dash:utc:direct:2012", GST_MPD_UTCTIMING_TYPE_DIRECT},
+  {NULL, 0}
+};
+
 /* functions to parse node namespaces, content and properties */
 static gboolean
 gst_mpdparser_get_xml_prop_string (xmlNode * a_node,
@@ -481,10 +516,6 @@
     }
     /* malloc return data structure */
     *property_value = g_slice_new0 (GstRange);
-    if (*property_value == NULL) {
-      GST_WARNING ("Allocation of GstRange failed!");
-      goto error;
-    }
     exists = TRUE;
     (*property_value)->first_byte_pos = first_byte_pos;
     (*property_value)->last_byte_pos = last_byte_pos;
@@ -496,9 +527,9 @@
   return exists;
 
 error:
-  xmlFree (prop_string);
   GST_WARNING ("failed to parse property %s from xml string %s", property_name,
       prop_string);
+  xmlFree (prop_string);
   return FALSE;
 }
 
@@ -538,10 +569,6 @@
     }
     /* malloc return data structure */
     *property_value = g_slice_new0 (GstRatio);
-    if (*property_value == NULL) {
-      GST_WARNING ("Allocation of GstRatio failed!");
-      goto error;
-    }
     exists = TRUE;
     (*property_value)->num = num;
     (*property_value)->den = den;
@@ -552,9 +579,9 @@
   return exists;
 
 error:
-  xmlFree (prop_string);
   GST_WARNING ("failed to parse property %s from xml string %s", property_name,
       prop_string);
+  xmlFree (prop_string);
   return FALSE;
 }
 
@@ -590,10 +617,6 @@
     }
     /* alloc return data structure */
     *property_value = g_slice_new0 (GstFrameRate);
-    if (*property_value == NULL) {
-      GST_WARNING ("Allocation of GstFrameRate failed!");
-      goto error;
-    }
     exists = TRUE;
     (*property_value)->num = num;
     (*property_value)->den = den;
@@ -607,9 +630,9 @@
   return exists;
 
 error:
-  xmlFree (prop_string);
   GST_WARNING ("failed to parse property %s from xml string %s", property_name,
       prop_string);
+  xmlFree (prop_string);
   return FALSE;
 }
 
@@ -642,10 +665,6 @@
 
     /* alloc return data structure */
     *property_value = g_slice_new0 (GstConditionalUintType);
-    if (*property_value == NULL) {
-      GST_WARNING ("Allocation of GstConditionalUintType failed!");
-      goto error;
-    }
     exists = TRUE;
     (*property_value)->flag = flag;
     (*property_value)->value = val;
@@ -657,9 +676,9 @@
   return exists;
 
 error:
-  xmlFree (prop_string);
   GST_WARNING ("failed to parse property %s from xml string %s", property_name,
       prop_string);
+  xmlFree (prop_string);
   return FALSE;
 }
 
@@ -747,9 +766,9 @@
   return exists;
 
 error:
-  xmlFree (prop_string);
   GST_WARNING ("failed to parse property %s from xml string %s", property_name,
       prop_string);
+  xmlFree (prop_string);
   return FALSE;
 }
 
@@ -802,6 +821,7 @@
   gboolean have_ms = FALSE;
   gboolean exists = FALSE;
 
+  *property_value = default_value;
   prop_string = xmlGetProp (a_node, (const xmlChar *) property_name);
   if (prop_string) {
     len = xmlStrlen (prop_string);
@@ -924,9 +944,6 @@
     GST_LOG (" - %s: %" G_GINT64_FORMAT, property_name, *property_value);
   }
 
-  if (!exists) {
-    *property_value = default_value;
-  }
   return exists;
 
 error:
@@ -950,6 +967,24 @@
   return exists;
 }
 
+static gboolean
+gst_mpdparser_get_xml_node_as_string (xmlNode * a_node, gchar ** content)
+{
+  gboolean exists = FALSE;
+  xmlBufferPtr buffer = xmlBufferCreate ();
+  int size;
+
+  size = xmlNodeDump (buffer, a_node->doc, a_node, 0,   /* indent */
+      0 /* format */ );
+  if (size > 0) {
+    *content = (gchar *) xmlBufferDetach (buffer);
+    exists = TRUE;
+    GST_LOG (" - %s: %s", a_node->name, *content);
+  }
+  xmlBufferFree (buffer);
+  return exists;
+}
+
 static gchar *
 gst_mpdparser_get_xml_node_namespace (xmlNode * a_node, const gchar * prefix)
 {
@@ -985,10 +1020,6 @@
   GstBaseURL *new_base_url;
 
   new_base_url = g_slice_new0 (GstBaseURL);
-  if (new_base_url == NULL) {
-    GST_WARNING ("Allocation of BaseURL node failed!");
-    return;
-  }
   *list = g_list_append (*list, new_base_url);
 
   GST_LOG ("content of BaseURL node:");
@@ -1007,16 +1038,16 @@
   GstDescriptorType *new_descriptor;
 
   new_descriptor = g_slice_new0 (GstDescriptorType);
-  if (new_descriptor == NULL) {
-    GST_WARNING ("Allocation of DescriptorType node failed!");
-    return;
-  }
   *list = g_list_append (*list, new_descriptor);
 
   GST_LOG ("attributes of %s node:", a_node->name);
   gst_mpdparser_get_xml_prop_string (a_node, "schemeIdUri",
       &new_descriptor->schemeIdUri);
-  gst_mpdparser_get_xml_prop_string (a_node, "value", &new_descriptor->value);
+  if (!gst_mpdparser_get_xml_prop_string (a_node, "value",
+          &new_descriptor->value)) {
+    /* if no value attribute, use XML string representation of the node */
+    gst_mpdparser_get_xml_node_as_string (a_node, &new_descriptor->value);
+  }
 }
 
 static void
@@ -1026,10 +1057,6 @@
   GstContentComponentNode *new_content_component;
 
   new_content_component = g_slice_new0 (GstContentComponentNode);
-  if (new_content_component == NULL) {
-    GST_WARNING ("Allocation of ContentComponent node failed!");
-    return;
-  }
   *list = g_list_append (*list, new_content_component);
 
   GST_LOG ("attributes of ContentComponent node:");
@@ -1077,10 +1104,6 @@
   GstSubRepresentationNode *new_subrep;
 
   new_subrep = g_slice_new0 (GstSubRepresentationNode);
-  if (new_subrep == NULL) {
-    GST_WARNING ("Allocation of SubRepresentation node failed!");
-    return;
-  }
   *list = g_list_append (*list, new_subrep);
 
   GST_LOG ("attributes of SubRepresentation node:");
@@ -1105,14 +1128,10 @@
 
   if (seg_url) {
     clone = g_slice_new0 (GstSegmentURLNode);
-    if (clone) {
-      clone->media = xmlMemStrdup (seg_url->media);
-      clone->mediaRange = gst_mpdparser_clone_range (seg_url->mediaRange);
-      clone->index = xmlMemStrdup (seg_url->index);
-      clone->indexRange = gst_mpdparser_clone_range (seg_url->indexRange);
-    } else {
-      GST_WARNING ("Allocation of SegmentURL node failed!");
-    }
+    clone->media = xmlMemStrdup (seg_url->media);
+    clone->mediaRange = gst_mpdparser_clone_range (seg_url->mediaRange);
+    clone->index = xmlMemStrdup (seg_url->index);
+    clone->indexRange = gst_mpdparser_clone_range (seg_url->indexRange);
   }
 
   return clone;
@@ -1124,10 +1143,6 @@
   GstSegmentURLNode *new_segment_url;
 
   new_segment_url = g_slice_new0 (GstSegmentURLNode);
-  if (new_segment_url == NULL) {
-    GST_WARNING ("Allocation of SegmentURL node failed!");
-    return;
-  }
   *list = g_list_append (*list, new_segment_url);
 
   GST_LOG ("attributes of SegmentURL node:");
@@ -1146,10 +1161,6 @@
 
   gst_mpdparser_free_url_type_node (*pointer);
   *pointer = new_url_type = g_slice_new0 (GstURLType);
-  if (new_url_type == NULL) {
-    GST_WARNING ("Allocation of URLType node failed!");
-    return;
-  }
 
   GST_LOG ("attributes of URLType node:");
   gst_mpdparser_get_xml_prop_string (a_node, "sourceURL",
@@ -1170,13 +1181,10 @@
 
   gst_mpdparser_free_seg_base_type_ext (*pointer);
   *pointer = seg_base_type = g_slice_new0 (GstSegmentBaseType);
-  if (seg_base_type == NULL) {
-    GST_WARNING ("Allocation of SegmentBaseType node failed!");
-    return;
-  }
 
   /* Initialize values that have defaults */
   seg_base_type->indexRangeExact = FALSE;
+  seg_base_type->timescale = 1;
 
   /* Inherit attribute values from parent */
   if (parent) {
@@ -1193,7 +1201,7 @@
   /* We must retrieve each value first to see if it exists.  If it does not
    * exist, we do not want to overwrite an inherited value */
   GST_LOG ("attributes of SegmentBaseType extension:");
-  if (gst_mpdparser_get_xml_prop_unsigned_integer (a_node, "timescale", 0,
+  if (gst_mpdparser_get_xml_prop_unsigned_integer (a_node, "timescale", 1,
           &intval)) {
     seg_base_type->timescale = intval;
   }
@@ -1237,13 +1245,9 @@
 
   if (pointer) {
     clone = g_slice_new0 (GstSNode);
-    if (clone) {
-      clone->t = pointer->t;
-      clone->d = pointer->d;
-      clone->r = pointer->r;
-    } else {
-      GST_WARNING ("Allocation of S node failed!");
-    }
+    clone->t = pointer->t;
+    clone->d = pointer->d;
+    clone->r = pointer->r;
   }
 
   return clone;
@@ -1255,10 +1259,6 @@
   GstSNode *new_s_node;
 
   new_s_node = g_slice_new0 (GstSNode);
-  if (new_s_node == NULL) {
-    GST_WARNING ("Allocation of S node failed!");
-    return;
-  }
   g_queue_push_tail (queue, new_s_node);
 
   GST_LOG ("attributes of S node:");
@@ -1328,10 +1328,6 @@
 
   gst_mpdparser_free_mult_seg_base_type_ext (*pointer);
   *pointer = mult_seg_base_type = g_slice_new0 (GstMultSegmentBaseType);
-  if (mult_seg_base_type == NULL) {
-    GST_WARNING ("Allocation of MultipleSegmentBaseType node failed!");
-    return;
-  }
 
   mult_seg_base_type->duration = 0;
   mult_seg_base_type->startNumber = 1;
@@ -1387,10 +1383,6 @@
 
   gst_mpdparser_free_segment_list_node (*pointer);
   *pointer = new_segment_list = g_slice_new0 (GstSegmentListNode);
-  if (new_segment_list == NULL) {
-    GST_WARNING ("Allocation of SegmentList node failed!");
-    return;
-  }
 
   /* Inherit attribute values from parent */
   if (parent) {
@@ -1430,10 +1422,6 @@
 
   gst_mpdparser_free_representation_base_type (*pointer);
   *pointer = representation_base = g_slice_new0 (GstRepresentationBaseType);
-  if (representation_base == NULL) {
-    GST_WARNING ("Allocation of RepresentationBaseType node failed!");
-    return;
-  }
 
   GST_LOG ("attributes of RepresentationBaseType extension:");
   gst_mpdparser_get_xml_prop_string (a_node, "profiles",
@@ -1491,10 +1479,6 @@
   GstRepresentationNode *new_representation;
 
   new_representation = g_slice_new0 (GstRepresentationNode);
-  if (new_representation == NULL) {
-    GST_WARNING ("Allocation of Representation node failed!");
-    return;
-  }
   *list = g_list_append (*list, new_representation);
 
   GST_LOG ("attributes of Representation node:");
@@ -1545,10 +1529,6 @@
   GstAdaptationSetNode *new_adap_set;
 
   new_adap_set = g_slice_new0 (GstAdaptationSetNode);
-  if (new_adap_set == NULL) {
-    GST_WARNING ("Allocation of AdaptationSet node failed!");
-    return;
-  }
   *list = g_list_append (*list, new_adap_set);
 
   GST_LOG ("attributes of AdaptationSet node:");
@@ -1578,6 +1558,8 @@
       &new_adap_set->maxFrameRate);
   gst_mpdparser_get_xml_prop_cond_uint (a_node, "segmentAlignment",
       &new_adap_set->segmentAlignment);
+  gst_mpdparser_get_xml_prop_boolean (a_node, "bitstreamSwitching",
+      FALSE, &new_adap_set->bitstreamSwitching);
   gst_mpdparser_get_xml_prop_cond_uint (a_node, "subsegmentAlignment",
       &new_adap_set->subsegmentAlignment);
   gst_mpdparser_get_xml_prop_SAP_type (a_node, "subsegmentStartsWithSAP",
@@ -1641,10 +1623,6 @@
   GstSubsetNode *new_subset;
 
   new_subset = g_slice_new0 (GstSubsetNode);
-  if (new_subset == NULL) {
-    GST_WARNING ("Allocation of Subset node failed!");
-    return;
-  }
   *list = g_list_append (*list, new_subset);
 
   GST_LOG ("attributes of Subset node:");
@@ -1661,38 +1639,38 @@
 
   gst_mpdparser_free_segment_template_node (*pointer);
   *pointer = new_segment_template = g_slice_new0 (GstSegmentTemplateNode);
-  if (new_segment_template == NULL) {
-    GST_WARNING ("Allocation of SegmentTemplate node failed!");
-    return;
-  }
-
-  /* Inherit attribute values from parent */
-  if (parent) {
-    new_segment_template->media = xmlMemStrdup (parent->media);
-    new_segment_template->index = xmlMemStrdup (parent->index);
-    new_segment_template->initialization =
-        xmlMemStrdup (parent->initialization);
-    new_segment_template->bitstreamSwitching =
-        xmlMemStrdup (parent->bitstreamSwitching);
-  }
 
   GST_LOG ("extension of SegmentTemplate node:");
   gst_mpdparser_parse_mult_seg_base_type_ext
       (&new_segment_template->MultSegBaseType, a_node,
       (parent ? parent->MultSegBaseType : NULL));
 
+  /* Inherit attribute values from parent when the value isn't found */
   GST_LOG ("attributes of SegmentTemplate node:");
   if (gst_mpdparser_get_xml_prop_string (a_node, "media", &strval)) {
     new_segment_template->media = strval;
+  } else if (parent) {
+    new_segment_template->media = xmlMemStrdup (parent->media);
   }
+
   if (gst_mpdparser_get_xml_prop_string (a_node, "index", &strval)) {
     new_segment_template->index = strval;
+  } else if (parent) {
+    new_segment_template->index = xmlMemStrdup (parent->index);
   }
+
   if (gst_mpdparser_get_xml_prop_string (a_node, "initialization", &strval)) {
     new_segment_template->initialization = strval;
+  } else if (parent) {
+    new_segment_template->initialization =
+        xmlMemStrdup (parent->initialization);
   }
+
   if (gst_mpdparser_get_xml_prop_string (a_node, "bitstreamSwitching", &strval)) {
     new_segment_template->bitstreamSwitching = strval;
+  } else if (parent) {
+    new_segment_template->bitstreamSwitching =
+        xmlMemStrdup (parent->bitstreamSwitching);
   }
 }
 
@@ -1703,14 +1681,8 @@
   GstPeriodNode *new_period;
 
   new_period = g_slice_new0 (GstPeriodNode);
-  if (new_period == NULL) {
-    GST_WARNING ("Allocation of Period node failed!");
-    return;
-  }
   *list = g_list_append (*list, new_period);
 
-  new_period->start = GST_CLOCK_TIME_NONE;
-
   GST_LOG ("attributes of Period node:");
   gst_mpdparser_get_xml_prop_string (a_node, "id", &new_period->id);
   gst_mpdparser_get_xml_prop_duration (a_node, "start", -1, &new_period->start);
@@ -1760,10 +1732,6 @@
   GstProgramInformationNode *new_prog_info;
 
   new_prog_info = g_slice_new0 (GstProgramInformationNode);
-  if (new_prog_info == NULL) {
-    GST_WARNING ("Allocation of ProgramInfo node failed!");
-    return;
-  }
   *list = g_list_append (*list, new_prog_info);
 
   GST_LOG ("attributes of ProgramInformation node:");
@@ -1793,10 +1761,6 @@
   GstMetricsRangeNode *new_metrics_range;
 
   new_metrics_range = g_slice_new0 (GstMetricsRangeNode);
-  if (new_metrics_range == NULL) {
-    GST_WARNING ("Allocation of Metrics Range node failed!");
-    return;
-  }
   *list = g_list_append (*list, new_metrics_range);
 
   GST_LOG ("attributes of Metrics Range node:");
@@ -1813,10 +1777,6 @@
   GstMetricsNode *new_metrics;
 
   new_metrics = g_slice_new0 (GstMetricsNode);
-  if (new_metrics == NULL) {
-    GST_WARNING ("Allocation of Metrics node failed!");
-    return;
-  }
   *list = g_list_append (*list, new_metrics);
 
   GST_LOG ("attributes of Metrics node:");
@@ -1839,6 +1799,46 @@
   }
 }
 
+/* The UTCTiming element is defined in
+ * ISO/IEC 23009-1:2014/PDAM 1 "Information technology — Dynamic adaptive streaming over HTTP (DASH) — Part 1: Media presentation description and segment formats / Amendment 1: High Profile and Availability Time Synchronization"
+ */
+static void
+gst_mpdparser_parse_utctiming_node (GList ** list, xmlNode * a_node)
+{
+  GstUTCTimingNode *new_timing;
+  gchar *method = NULL;
+  gchar *value = NULL;
+
+  new_timing = g_slice_new0 (GstUTCTimingNode);
+
+  GST_LOG ("attributes of UTCTiming node:");
+  if (gst_mpdparser_get_xml_prop_string (a_node, "schemeIdUri", &method)) {
+    for (int i = 0; gst_mpdparser_utc_timing_methods[i].name; ++i) {
+      if (g_ascii_strncasecmp (gst_mpdparser_utc_timing_methods[i].name,
+              method, strlen (gst_mpdparser_utc_timing_methods[i].name)) == 0) {
+        new_timing->method = gst_mpdparser_utc_timing_methods[i].method;
+        break;
+      }
+    }
+    xmlFree (method);
+  }
+
+  if (gst_mpdparser_get_xml_prop_string (a_node, "value", &value)) {
+    int max_tokens = 0;
+    if (GST_MPD_UTCTIMING_TYPE_DIRECT == new_timing->method) {
+      /* The GST_MPD_UTCTIMING_TYPE_DIRECT method is a special case
+       * that is not a space separated list.
+       */
+      max_tokens = 1;
+    }
+    new_timing->urls = g_strsplit (value, " ", max_tokens);
+    xmlFree (value);
+    *list = g_list_append (*list, new_timing);
+  } else {
+    gst_mpdparser_free_utctiming_node (new_timing);
+  }
+}
+
 static void
 gst_mpdparser_parse_root_node (GstMPDNode ** pointer, xmlNode * a_node)
 {
@@ -1847,10 +1847,6 @@
 
   gst_mpdparser_free_mpd_node (*pointer);
   *pointer = new_mpd = g_slice_new0 (GstMPDNode);
-  if (new_mpd == NULL) {
-    GST_WARNING ("Allocation of MPD node failed!");
-    return;
-  }
 
   GST_LOG ("namespaces of root MPD node:");
   new_mpd->default_namespace =
@@ -1897,6 +1893,8 @@
         gst_mpdparser_parse_location_node (&new_mpd->Locations, cur_node);
       } else if (xmlStrcmp (cur_node->name, (xmlChar *) "Metrics") == 0) {
         gst_mpdparser_parse_metrics_node (&new_mpd->Metrics, cur_node);
+      } else if (xmlStrcmp (cur_node->name, (xmlChar *) "UTCTiming") == 0) {
+        gst_mpdparser_parse_utctiming_node (&new_mpd->UTCTiming, cur_node);
       }
     }
   }
@@ -2134,6 +2132,8 @@
         (GDestroyNotify) gst_mpdparser_free_period_node);
     g_list_free_full (mpd_node->Metrics,
         (GDestroyNotify) gst_mpdparser_free_metrics_node);
+    g_list_free_full (mpd_node->UTCTiming,
+        (GDestroyNotify) gst_mpdparser_free_utctiming_node);
     g_slice_free (GstMPDNode, mpd_node);
   }
 }
@@ -2472,6 +2472,16 @@
 }
 
 static void
+gst_mpdparser_free_utctiming_node (GstUTCTimingNode * timing_type)
+{
+  if (timing_type) {
+    if (timing_type->urls)
+      g_strfreev (timing_type->urls);
+    g_slice_free (GstUTCTimingNode, timing_type);
+  }
+}
+
+static void
 gst_mpdparser_free_stream_period (GstStreamPeriod * stream_period)
 {
   if (stream_period) {
@@ -2607,7 +2617,7 @@
   /* After any 0 and alphanumeric values, there must be
    * an d, x or u. Otherwise validation would have failed
    */
-  g_assert (p[0] == 'd' || p[0] == 'x' || p[0] != 'u');
+  g_assert (p[0] == 'd' || p[0] == 'x' || p[0] == 'u');
 
   promoted_format =
       g_strdup_printf ("%.*s" G_GINT64_MODIFIER "%s", (gint) (p - format),
@@ -2681,6 +2691,8 @@
         tokens[i] = g_strdup_printf ("%s", "$");
         g_free (token);
         last_token_par = TRUE;
+      } else {
+        last_token_par = FALSE;
       }
     } else {
       last_token_par = FALSE;
@@ -2752,12 +2764,8 @@
 
   if (range) {
     clone = g_slice_new0 (GstRange);
-    if (clone) {
-      clone->first_byte_pos = range->first_byte_pos;
-      clone->last_byte_pos = range->last_byte_pos;
-    } else {
-      GST_WARNING ("Allocation of GstRange failed!");
-    }
+    clone->first_byte_pos = range->first_byte_pos;
+    clone->last_byte_pos = range->last_byte_pos;
   }
 
   return clone;
@@ -2771,14 +2779,10 @@
 
   if (url) {
     clone = g_slice_new0 (GstURLType);
-    if (clone) {
-      if (url->sourceURL) {
-        clone->sourceURL = xmlMemStrdup (url->sourceURL);
-      }
-      clone->range = gst_mpdparser_clone_range (url->range);
-    } else {
-      GST_WARNING ("Allocation of URLType node failed!");
+    if (url->sourceURL) {
+      clone->sourceURL = xmlMemStrdup (url->sourceURL);
     }
+    clone->range = gst_mpdparser_clone_range (url->range);
   }
 
   return clone;
@@ -2873,7 +2877,6 @@
   GstStreamPeriod *stream_period;
   GstMultSegmentBaseType *base = NULL;
   GstClockTime duration = 0;
-  guint timescale;
 
   g_return_val_if_fail (stream != NULL, GST_CLOCK_TIME_NONE);
   stream_period = gst_mpdparser_get_stream_period (client);
@@ -2891,13 +2894,11 @@
     if (scale_dur)
       *scale_dur = duration;
   } else {
+    /* duration is guint so this cannot overflow */
     duration = base->duration * GST_SECOND;
     if (scale_dur)
       *scale_dur = duration;
-    timescale = base->SegBaseType->timescale;
-
-    if (timescale > 1)
-      duration /= timescale;
+    duration /= base->SegBaseType->timescale;
   }
 
   return duration;
@@ -2978,9 +2979,10 @@
      * between the version it was compiled for and the actual shared
      * library used
      */
-    LIBXML_TEST_VERSION
-        /* parse "data" into a document (which is a libxml2 tree structure xmlDoc) */
-        doc = xmlReadMemory (data, size, "noname.xml", NULL, 0);
+    LIBXML_TEST_VERSION;
+
+    /* parse "data" into a document (which is a libxml2 tree structure xmlDoc) */
+    doc = xmlReadMemory (data, size, "noname.xml", NULL, XML_PARSE_NONET);
     if (doc == NULL) {
       GST_ERROR ("failed to parse the MPD file");
       return FALSE;
@@ -3103,10 +3105,6 @@
   g_return_val_if_fail (stream->segments != NULL, FALSE);
 
   media_segment = g_slice_new0 (GstMediaSegment);
-  if (media_segment == NULL) {
-    GST_WARNING ("Allocation of GstMediaSegment struct failed!");
-    return FALSE;
-  }
 
   media_segment->SegmentURL = url_node;
   media_segment->number = number;
@@ -3186,7 +3184,7 @@
       GST_DEBUG ("No useful SegmentList node for the current Representation");
       /* here we should have a single segment for each representation, whose URL is encoded in the baseURL element */
       if (!gst_mpd_client_add_media_segment (stream, NULL, 1, 0, 0,
-              PeriodEnd - PeriodStart, PeriodStart, PeriodEnd)) {
+              PeriodEnd - PeriodStart, PeriodStart, PeriodEnd - PeriodStart)) {
         return FALSE;
       }
     } else {
@@ -3217,16 +3215,14 @@
           S = (GstSNode *) list->data;
           GST_LOG ("Processing S node: d=%" G_GUINT64_FORMAT " r=%d t=%"
               G_GUINT64_FORMAT, S->d, S->r, S->t);
-          duration = S->d * GST_SECOND;
           timescale =
               stream->cur_segment_list->MultSegBaseType->SegBaseType->timescale;
-          if (timescale > 1)
-            duration /= timescale;
+          duration = gst_util_uint64_scale (S->d, GST_SECOND, timescale);
+
           if (S->t > 0) {
             start = S->t;
-            start_time = S->t * GST_SECOND;
-            if (timescale > 1)
-              start_time /= timescale;
+            start_time = gst_util_uint64_scale (S->t, GST_SECOND, timescale);
+            start_time += PeriodStart;
           }
 
           if (!gst_mpd_client_add_media_segment (stream, SegmentURL->data, i,
@@ -3272,8 +3268,8 @@
 
       gst_mpdparser_init_active_stream_segments (stream);
       /* here we should have a single segment for each representation, whose URL is encoded in the baseURL element */
-      if (!gst_mpd_client_add_media_segment (stream, NULL, 1, 0, 0, PeriodEnd,
-              0, PeriodEnd)) {
+      if (!gst_mpd_client_add_media_segment (stream, NULL, 1, 0, 0,
+              PeriodEnd - PeriodStart, PeriodStart, PeriodEnd - PeriodStart)) {
         return FALSE;
       }
     } else {
@@ -3287,16 +3283,10 @@
       GST_LOG ("Building media segment list using this template: %s",
           stream->cur_seg_template->media);
 
-      /* Avoid dividing by zero and avoid overflows */
-      if (mult_seg->SegBaseType->timescale) {
-        stream->presentationTimeOffset =
-            gst_util_uint64_scale (mult_seg->
-            SegBaseType->presentationTimeOffset, GST_SECOND,
-            mult_seg->SegBaseType->timescale);
-      } else {
-        stream->presentationTimeOffset =
-            mult_seg->SegBaseType->presentationTimeOffset * GST_SECOND;
-      }
+      /* Avoid overflows */
+      stream->presentationTimeOffset =
+          gst_util_uint64_scale (mult_seg->SegBaseType->presentationTimeOffset,
+          GST_SECOND, mult_seg->SegBaseType->timescale);
       GST_LOG ("Setting stream's presentation time offset to %" GST_TIME_FORMAT,
           GST_TIME_ARGS (stream->presentationTimeOffset));
 
@@ -3314,15 +3304,12 @@
           S = (GstSNode *) list->data;
           GST_LOG ("Processing S node: d=%" G_GUINT64_FORMAT " r=%u t=%"
               G_GUINT64_FORMAT, S->d, S->r, S->t);
-          duration = S->d * GST_SECOND;
           timescale = mult_seg->SegBaseType->timescale;
-          if (timescale > 1)
-            duration /= timescale;
+          duration = gst_util_uint64_scale (S->d, GST_SECOND, timescale);
           if (S->t > 0) {
             start = S->t;
-            start_time = S->t * GST_SECOND;
-            if (timescale > 1)
-              start_time /= timescale;
+            start_time = gst_util_uint64_scale (S->t, GST_SECOND, timescale);
+            start_time += PeriodStart;
           }
 
           if (!gst_mpd_client_add_media_segment (stream, NULL, i, S->r, start,
@@ -3455,9 +3442,6 @@
     }
 
     stream_period = g_slice_new0 (GstStreamPeriod);
-    if (stream_period == NULL) {
-      goto no_mem;
-    }
     client->periods = g_list_append (client->periods, stream_period);
     stream_period->period = period_node;
     stream_period->number = idx++;
@@ -3482,10 +3466,6 @@
       ("Cannot get the duration of the Period %d, skipping the rest of the Media Presentation",
       idx);
   return ret;
-
-no_mem:
-  GST_WARNING ("Allocation of GstStreamPeriod struct failed!");
-  return FALSE;
 }
 
 static GList *
@@ -3525,10 +3505,6 @@
   }
 
   stream = g_slice_new0 (GstActiveStream);
-  if (stream == NULL) {
-    GST_WARNING ("Allocation of active stream struct failed!");
-    return FALSE;
-  }
   gst_mpdparser_init_active_stream_segments (stream);
 
   stream->baseURL_idx = 0;
@@ -3536,7 +3512,7 @@
 
   GST_DEBUG ("0. Current stream %p", stream);
 
-  /* retrive representation list */
+  /* retrieve representation list */
   if (stream->cur_adapt_set != NULL)
     rep_list = stream->cur_adapt_set->Representations;
 
@@ -3614,6 +3590,7 @@
   } else {
     GstClockTime duration =
         gst_mpd_client_get_segment_duration (client, stream, NULL);
+    GstStreamPeriod *stream_period = gst_mpdparser_get_stream_period (client);
     guint segments_count = gst_mpd_client_get_segments_counts (client, stream);
 
     g_return_val_if_fail (stream->cur_seg_template->
@@ -3621,6 +3598,12 @@
     if (!GST_CLOCK_TIME_IS_VALID (duration)) {
       return FALSE;
     }
+
+    if (ts > stream_period->start)
+      ts -= stream_period->start;
+    else
+      ts = 0;
+
     index = ts / duration;
     if (segments_count > 0 && index >= segments_count) {
       stream->segment_index = segments_count;
@@ -3735,6 +3718,7 @@
     GstClockTime duration =
         gst_mpd_client_get_segment_duration (client, stream, NULL);
     guint segments_count = gst_mpd_client_get_segments_counts (client, stream);
+    GstStreamPeriod *stream_period = gst_mpdparser_get_stream_period (client);
 
     g_return_val_if_fail (stream->cur_seg_template->
         MultSegBaseType->SegmentTimeline == NULL, FALSE);
@@ -3742,7 +3726,7 @@
             && stream->segment_index >= segments_count)) {
       return FALSE;
     }
-    *ts = stream->segment_index * duration;
+    *ts = stream_period->start + stream->segment_index * duration;
   }
 
   return TRUE;
@@ -3753,13 +3737,54 @@
     guint stream_idx)
 {
   GstActiveStream *stream = NULL;
+  GstStreamPeriod *stream_period = gst_mpdparser_get_stream_period (client);
 
   g_return_val_if_fail (client != NULL, FALSE);
   g_return_val_if_fail (client->active_streams != NULL, FALSE);
   stream = g_list_nth_data (client->active_streams, stream_idx);
   g_return_val_if_fail (stream != NULL, FALSE);
 
-  return stream->presentationTimeOffset;
+  if (stream->presentationTimeOffset > stream_period->start)
+    return stream->presentationTimeOffset - stream_period->start;
+  else
+    return 0;
+}
+
+/**
+ * gst_mpd_client_get_utc_timing_sources:
+ * @client: #GstMpdClient to check for UTCTiming elements
+ * @methods: A bit mask of #GstMPDUTCTimingType that specifies the methods
+ *     to search for.
+ * @selected_method: (nullable): The selected method
+ * Returns: (transfer none): A NULL terminated array of URLs of servers
+ *     that use @selected_method to provide a realtime clock.
+ *
+ * Searches the UTCTiming elements found in the manifest for an element
+ * that uses one of the UTC timing methods specified in @selected_method.
+ * If multiple UTCTiming elements are present that support one of the
+ * methods specified in @selected_method, the first one is returned.
+ *
+ * Since: 1.6
+ */
+gchar **
+gst_mpd_client_get_utc_timing_sources (GstMpdClient * client,
+    guint methods, GstMPDUTCTimingType * selected_method)
+{
+  GList *list;
+
+  g_return_val_if_fail (client != NULL, NULL);
+  g_return_val_if_fail (client->mpd_node != NULL, NULL);
+  for (list = g_list_first (client->mpd_node->UTCTiming); list;
+      list = g_list_next (list)) {
+    const GstUTCTimingNode *node = (const GstUTCTimingNode *) list->data;
+    if (node->method & methods) {
+      if (selected_method) {
+        *selected_method = node->method;
+      }
+      return node->urls;
+    }
+  }
+  return NULL;
 }
 
 gboolean
@@ -3814,7 +3839,7 @@
       mediaURL =
           g_strdup (gst_mpdparser_get_mediaURL (stream,
               currentChunk->SegmentURL));
-      indexURL = currentChunk->SegmentURL->index;
+      indexURL = g_strdup (currentChunk->SegmentURL->index);
     } else if (stream->cur_seg_template != NULL) {
       mediaURL =
           gst_mpdparser_build_URL_from_template (stream->
@@ -3855,6 +3880,8 @@
       }
     }
   } else {
+    GstStreamPeriod *stream_period = gst_mpdparser_get_stream_period (client);
+
     if (stream->cur_seg_template != NULL) {
       mediaURL =
           gst_mpdparser_build_URL_from_template (stream->
@@ -3879,11 +3906,13 @@
     GST_DEBUG ("mediaURL = %s", mediaURL);
     GST_DEBUG ("indexURL = %s", indexURL);
 
-    fragment->timestamp = stream->segment_index * fragment->duration;
+    fragment->timestamp =
+        stream_period->start + stream->segment_index * fragment->duration;
   }
 
   base_url = gst_uri_from_string (stream->baseURL);
   frag_url = gst_uri_from_string_with_base (base_url, mediaURL);
+  g_free (mediaURL);
   if (stream->queryURL) {
     frag_url = gst_uri_make_writable (frag_url);
     gst_uri_set_query_string (frag_url, stream->queryURL);
@@ -3897,11 +3926,8 @@
     gst_uri_set_query_string (frag_url, stream->queryURL);
     fragment->index_uri = gst_uri_to_string (frag_url);
     gst_uri_unref (frag_url);
-  }
-
-  gst_uri_unref (base_url);
-
-  if (indexURL == NULL && (fragment->index_range_start
+    g_free (indexURL);
+  } else if (indexURL == NULL && (fragment->index_range_start
           || fragment->index_range_end != -1)) {
     /* index has no specific URL but has a range, we should only use this if
      * the media also has a range, otherwise we are serving some data twice
@@ -3915,6 +3941,8 @@
     }
   }
 
+  gst_uri_unref (base_url);
+
   GST_DEBUG ("Loading chunk with URL %s", fragment->uri);
 
   return TRUE;
@@ -3927,7 +3955,7 @@
   if (forward) {
     guint segments_count = gst_mpd_client_get_segments_counts (client, stream);
 
-    if (segments_count > 0 && stream->segment_index >= segments_count)
+    if (segments_count > 0 && stream->segment_index + 1 >= segments_count)
       return FALSE;
   } else {
     if (stream->segment_index < 0)
@@ -3956,10 +3984,14 @@
     }
 
     if (stream->segments == NULL) {
-      if (stream->segment_index < 0)
+      if (stream->segment_index < 0) {
         stream->segment_index = 0;
-      else
+      } else {
         stream->segment_index++;
+        if (segments_count > 0 && stream->segment_index >= segments_count) {
+          ret = GST_FLOW_EOS;
+        }
+      }
       goto done;
     }
 
@@ -3996,6 +4028,10 @@
     if (stream->segment_repeat_index >= segment->repeat) {
       stream->segment_repeat_index = 0;
       stream->segment_index++;
+      if (segments_count > 0 && stream->segment_index >= segments_count) {
+        ret = GST_FLOW_EOS;
+        goto done;
+      }
     } else {
       stream->segment_repeat_index++;
     }
@@ -4003,6 +4039,7 @@
     if (stream->segment_repeat_index == 0) {
       stream->segment_index--;
       if (stream->segment_index < 0) {
+        ret = GST_FLOW_EOS;
         goto done;
       }
 
@@ -4139,10 +4176,11 @@
     g_return_val_if_fail (stream->cur_seg_template->MultSegBaseType->
         SegmentTimeline == NULL, 0);
 
-    if (GST_CLOCK_TIME_IS_VALID (duration) || segments_count == 0
-        || seg_idx < segments_count)
-      return duration;
-    return 0;
+    if (!GST_CLOCK_TIME_IS_VALID (duration) || (segments_count > 0
+            && seg_idx >= segments_count)) {
+      return 0;
+    }
+    return duration;
   }
 }
 
@@ -4456,11 +4494,12 @@
   for (list = g_list_first (stream_period->period->AdaptationSets); list;
       list = g_list_next (list)) {
     adapt_set = (GstAdaptationSetNode *) list->data;
-    if (adapt_set) {
+    if (adapt_set && adapt_set->lang) {
       gchar *this_lang = adapt_set->lang;
       GstRepresentationNode *rep;
       rep =
           gst_mpdparser_get_lowest_representation (adapt_set->Representations);
+      mimeType = NULL;
       if (rep->RepresentationBase)
         mimeType = rep->RepresentationBase->mimeType;
       if (!mimeType && adapt_set->RepresentationBase) {
@@ -4468,10 +4507,8 @@
       }
 
       if (strncmp_ext (mimeType, this_mimeType) == 0) {
-        if (this_lang) {
-          nb_adaptation_set++;
-          *lang = g_list_append (*lang, this_lang);
-        }
+        nb_adaptation_set++;
+        *lang = g_list_append (*lang, this_lang);
       }
     }
   }
@@ -4506,7 +4543,7 @@
   if (stream_period && stream_period->period) {
     GstDateTime *t =
         gst_mpd_client_add_time_difference (availability_start_time,
-        stream_period->period->start * 1000);
+        stream_period->start * 1000);
     gst_date_time_unref (availability_start_time);
     availability_start_time = t;
   }
@@ -4570,7 +4607,7 @@
     *diff = ts_microseconds - stream_now;
     return 1;
   }
-  if (client->mpd_node->timeShiftBufferDepth
+  if (client->mpd_node->timeShiftBufferDepth != -1
       && ts_microseconds <
       stream_now - client->mpd_node->timeShiftBufferDepth) {
     *diff = ts_microseconds - stream_now;
diff --git a/ext/dash/gstmpdparser.h b/ext/dash/gstmpdparser.h
index cda0017..b31b7e6 100644
--- a/ext/dash/gstmpdparser.h
+++ b/ext/dash/gstmpdparser.h
@@ -56,6 +56,7 @@
 typedef struct _GstProgramInformationNode GstProgramInformationNode;
 typedef struct _GstMetricsRangeNode       GstMetricsRangeNode;
 typedef struct _GstMetricsNode            GstMetricsNode;
+typedef struct _GstUTCTimingNode          GstUTCTimingNode;
 typedef struct _GstSNode                  GstSNode;
 typedef struct _GstSegmentTimelineNode    GstSegmentTimelineNode;
 typedef struct _GstSegmentBaseType        GstSegmentBaseType;
@@ -90,6 +91,18 @@
   GST_SAP_TYPE_6
 } GstSAPType;
 
+typedef enum
+{
+  GST_MPD_UTCTIMING_TYPE_UNKNOWN     = 0x00,
+  GST_MPD_UTCTIMING_TYPE_NTP         = 0x01,
+  GST_MPD_UTCTIMING_TYPE_SNTP        = 0x02,
+  GST_MPD_UTCTIMING_TYPE_HTTP_HEAD   = 0x04,
+  GST_MPD_UTCTIMING_TYPE_HTTP_XSDATE = 0x08,
+  GST_MPD_UTCTIMING_TYPE_HTTP_ISO    = 0x10,
+  GST_MPD_UTCTIMING_TYPE_HTTP_NTP    = 0x20,
+  GST_MPD_UTCTIMING_TYPE_DIRECT      = 0x40
+} GstMPDUTCTimingType;
+
 struct _GstBaseURL
 {
   gchar *baseURL;
@@ -362,6 +375,12 @@
   GList *Reportings;
 };
 
+struct _GstUTCTimingNode {
+  GstMPDUTCTimingType method;
+  /* NULL terminated array of strings */
+  gchar **urls;
+};
+
 struct _GstMPDNode
 {
   gchar *default_namespace;
@@ -390,6 +409,8 @@
   GList *Periods;
   /* list of Metrics nodes */
   GList *Metrics;
+  /* list of GstUTCTimingNode nodes */
+  GList *UTCTiming;
 };
 
 /**
@@ -503,9 +524,9 @@
 gboolean gst_mpd_client_is_live (GstMpdClient * client);
 gboolean gst_mpd_client_stream_seek (GstMpdClient * client, GstActiveStream * stream, GstClockTime ts);
 gboolean gst_mpd_client_seek_to_time (GstMpdClient * client, GDateTime * time);
-GstDateTime *gst_mpd_client_add_time_difference (GstDateTime * t1, gint64 usecs);
 gint gst_mpd_client_check_time_position (GstMpdClient * client, GstActiveStream * stream, GstClockTime ts, gint64 * diff);
 GstClockTime gst_mpd_parser_get_stream_presentation_offset (GstMpdClient *client, guint stream_idx);
+gchar** gst_mpd_client_get_utc_timing_sources (GstMpdClient *client, guint methods, GstMPDUTCTimingType *selected_method);
 
 /* Period selection */
 guint gst_mpd_client_get_period_index_at_time (GstMpdClient * client, GstDateTime * time);
@@ -515,7 +536,6 @@
 const gchar *gst_mpd_client_get_period_id (GstMpdClient *client);
 gboolean gst_mpd_client_has_next_period (GstMpdClient *client);
 gboolean gst_mpd_client_has_previous_period (GstMpdClient * client);
-GstDateTime *gst_mpd_client_get_next_segment_availability_end_time (GstMpdClient * client, GstActiveStream * stream);
 
 /* Representation selection */
 gint gst_mpdparser_get_rep_idx_with_max_bandwidth (GList *Representations, gint max_bandwidth);
@@ -537,6 +557,7 @@
 gboolean gst_mpd_client_has_next_segment (GstMpdClient * client, GstActiveStream * stream, gboolean forward);
 GstFlowReturn gst_mpd_client_advance_segment (GstMpdClient * client, GstActiveStream * stream, gboolean forward);
 void gst_mpd_client_seek_to_first_segment (GstMpdClient * client);
+GstDateTime *gst_mpd_client_get_next_segment_availability_end_time (GstMpdClient * client, GstActiveStream * stream);
 
 /* Get audio/video stream parameters (mimeType, width, height, rate, number of channels) */
 const gchar *gst_mpd_client_get_stream_mimeType (GstActiveStream * stream);
@@ -550,6 +571,7 @@
 guint gst_mpdparser_get_list_and_nb_of_audio_language (GstMpdClient *client, GList **lang);
 
 gint64 gst_mpd_client_calculate_time_difference (const GstDateTime * t1, const GstDateTime * t2);
+GstDateTime *gst_mpd_client_add_time_difference (GstDateTime * t1, gint64 usecs);
 
 /* profiles */
 gboolean gst_mpd_client_has_isoff_ondemand_profile (GstMpdClient *client);
diff --git a/ext/dash/gstplugin.c b/ext/dash/gstplugin.c
index 908a2e4..29f2817 100644
--- a/ext/dash/gstplugin.c
+++ b/ext/dash/gstplugin.c
@@ -8,98 +8,15 @@
 
 #include "gstdashdemux.h"
 
-#define XML_BUFFER_SIZE 16
-#define XML_INC_BUFFER {                                                \
-  pos++;                                                                \
-  if (pos == XML_BUFFER_SIZE) {                                         \
-    pos = 0;                                                            \
-    offset += XML_BUFFER_SIZE;                                          \
-    data = gst_type_find_peek (tf, offset, XML_BUFFER_SIZE);            \
-    if (data == NULL) return FALSE;                                     \
-  } else {                                                              \
-    data++;                                                             \
-  }                                                                     \
-}
-
 static gboolean
-xml_check_first_element (GstTypeFind * tf, const gchar * element, guint elen,
-    gboolean strict)
+dashdemux_init (GstPlugin * plugin)
 {
-  gboolean got_xmldec;
-  const guint8 *data;
-  guint offset = 0;
-  guint pos = 0;
-
-  data = gst_type_find_peek (tf, 0, XML_BUFFER_SIZE);
-  if (!data)
-    return FALSE;
-
-  /* look for the XMLDec
-   * see XML spec 2.8, Prolog and Document Type Declaration
-   * http://www.w3.org/TR/2004/REC-xml-20040204/#sec-prolog-dtd */
-  got_xmldec = (memcmp (data, "<?xml", 5) == 0);
-
-  if (strict && !got_xmldec)
-    return FALSE;
-
-  /* skip XMLDec in any case if we've got one */
-  if (got_xmldec) {
-    pos += 5;
-    data += 5;
-  }
-
-  /* look for the first element, it has to be the requested element. Bail
-   * out if it is not within the first 4kB. */
-  while (data && (offset + pos) < 4096) {
-    while (*data != '<' && (offset + pos) < 4096) {
-      XML_INC_BUFFER;
-    }
-
-    XML_INC_BUFFER;
-    if (!g_ascii_isalpha (*data)) {
-      /* if not alphabetic, it's a PI or an element / attribute declaration
-       * like <?xxx or <!xxx */
-      XML_INC_BUFFER;
-      continue;
-    }
-
-    /* the first normal element, check if it's the one asked for */
-    data = gst_type_find_peek (tf, offset + pos, elen + 1);
-    return (data && element && strncmp ((char *) data, element, elen) == 0);
-  }
-
-  return FALSE;
-}
-
-/*** application/dash+xml typefind helper ***/
-
-static GstStaticCaps dash_caps = GST_STATIC_CAPS ("application/dash+xml");
-
-#define DASH_CAPS gst_static_caps_get (&dash_caps)
-
-static void
-dash_type_find (GstTypeFind * tf, gpointer unused)
-{
-  if (xml_check_first_element (tf, "MPD", 3, FALSE) ||
-      xml_check_first_element (tf, "mpd", 3, FALSE)) {
-    gst_type_find_suggest (tf, GST_TYPE_FIND_MAXIMUM, DASH_CAPS);
-  }
-}
-
-static gboolean
-fragmented_init (GstPlugin * plugin)
-{
-  if (!gst_element_register (plugin, "dashdemux", GST_RANK_PRIMARY,
-          GST_TYPE_DASH_DEMUX) || FALSE)
-    return FALSE;
-  if (!gst_type_find_register (plugin, "application/dash+xml",
-          GST_RANK_SECONDARY, dash_type_find, NULL, DASH_CAPS, NULL, NULL))
-    return FALSE;
-  return TRUE;
+  return gst_element_register (plugin, "dashdemux", GST_RANK_PRIMARY,
+      GST_TYPE_DASH_DEMUX);
 }
 
 GST_PLUGIN_DEFINE (GST_VERSION_MAJOR,
     GST_VERSION_MINOR,
     dashdemux,
     "DASH demuxer plugin",
-    fragmented_init, VERSION, "LGPL", PACKAGE_NAME, "http://www.gstreamer.org/")
+    dashdemux_init, VERSION, "LGPL", PACKAGE_NAME, GST_PACKAGE_ORIGIN)
diff --git a/ext/dc1394/Makefile.in b/ext/dc1394/Makefile.in
index c56022e..18abcc3 100644
--- a/ext/dc1394/Makefile.in
+++ b/ext/dc1394/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/dc1394
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -227,6 +237,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -244,8 +255,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -274,8 +283,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -323,11 +330,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -511,6 +521,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -589,7 +600,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -629,6 +645,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -764,7 +781,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/dc1394/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/dc1394/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1073,6 +1089,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/ext/directfb/Makefile.in b/ext/directfb/Makefile.in
index 2d42700..f1dfd38 100644
--- a/ext/directfb/Makefile.in
+++ b/ext/directfb/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -17,7 +17,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -83,8 +93,6 @@
 target_triplet = @target@
 noinst_PROGRAMS = dfb-example$(EXEEXT)
 subdir = ext/directfb
-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 \
@@ -122,6 +130,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -237,6 +247,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -254,8 +265,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -284,8 +293,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -333,11 +340,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -521,6 +531,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -599,7 +610,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -639,6 +655,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -777,7 +794,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/directfb/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/directfb/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1114,6 +1130,8 @@
 	mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
 	uninstall-am uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/ext/dtls/Makefile.in b/ext/dtls/Makefile.in
index d8ed6b2..7365d24 100644
--- a/ext/dtls/Makefile.in
+++ b/ext/dtls/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/dtls
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -234,6 +244,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -251,8 +262,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -281,8 +290,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -330,11 +337,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -518,6 +528,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -596,7 +607,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -636,6 +652,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -793,7 +810,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/dtls/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/dtls/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1174,6 +1190,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/ext/dts/Makefile.in b/ext/dts/Makefile.in
index f95fa43..59d0941 100644
--- a/ext/dts/Makefile.in
+++ b/ext/dts/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/dts
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -228,6 +238,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -245,8 +256,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -275,8 +284,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -324,11 +331,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -512,6 +522,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -590,7 +601,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -630,6 +646,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -766,7 +783,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/dts/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/dts/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1075,6 +1091,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/ext/dts/gstdtsdec.c b/ext/dts/gstdtsdec.c
index a14d08f..b726086 100644
--- a/ext/dts/gstdtsdec.c
+++ b/ext/dts/gstdtsdec.c
@@ -209,6 +209,10 @@
   dtsdec->request_channels = DCA_CHANNEL;
   dtsdec->dynamic_range_compression = FALSE;
 
+  gst_audio_decoder_set_use_default_pad_acceptcaps (GST_AUDIO_DECODER_CAST
+      (dtsdec), TRUE);
+  GST_PAD_SET_ACCEPT_TEMPLATE (GST_AUDIO_DECODER_SINK_PAD (dtsdec));
+
   /* retrieve and intercept base class chain.
    * Quite HACKish, but that's dvd specs for you,
    * since one buffer needs to be split into 2 frames */
@@ -442,6 +446,8 @@
         (guint) dts->bit_rate, NULL);
     gst_audio_decoder_merge_tags (GST_AUDIO_DECODER (dts), taglist,
         GST_TAG_MERGE_REPLACE);
+    if (taglist)
+      gst_tag_list_unref (taglist);
   }
 }
 
diff --git a/ext/faac/Makefile.in b/ext/faac/Makefile.in
index c49cb76..d9352cb 100644
--- a/ext/faac/Makefile.in
+++ b/ext/faac/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/faac
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -227,6 +237,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -244,8 +255,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -274,8 +283,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -323,11 +330,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -511,6 +521,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -589,7 +600,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -629,6 +645,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -766,7 +783,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/faac/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/faac/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1075,6 +1091,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/ext/faac/gstfaac.c b/ext/faac/gstfaac.c
index c60a442..9adc11f 100644
--- a/ext/faac/gstfaac.c
+++ b/ext/faac/gstfaac.c
@@ -55,12 +55,6 @@
                     "64000, " \
                     "88200, " \
                     "96000"
-#define SINK_CAPS \
-    "audio/x-raw, "                \
-    "format = (string) "GST_AUDIO_NE (S16) ", "  \
-    "layout = (string) interleaved, " \
-    "rate = (int) {" SAMPLE_RATES "}, "   \
-    "channels = (int) [ 1, 6 ] "
 
 /* these don't seem to work? */
 #if 0
@@ -96,11 +90,6 @@
     GST_PAD_ALWAYS,
     GST_STATIC_CAPS (SRC_CAPS));
 
-static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink",
-    GST_PAD_SINK,
-    GST_PAD_ALWAYS,
-    GST_STATIC_CAPS (SINK_CAPS));
-
 enum
 {
   PROP_0,
@@ -124,9 +113,9 @@
 static void gst_faac_get_property (GObject * object,
     guint prop_id, GValue * value, GParamSpec * pspec);
 
+static GstCaps *gst_faac_enc_generate_sink_caps (void);
 static gboolean gst_faac_configure_source_pad (GstFaac * faac,
     GstAudioInfo * info);
-static GstCaps *gst_faac_getcaps (GstAudioEncoder * enc, GstCaps * filter);
 
 static gboolean gst_faac_stop (GstAudioEncoder * enc);
 static gboolean gst_faac_set_format (GstAudioEncoder * enc,
@@ -194,14 +183,20 @@
   GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
   GstElementClass *gstelement_class = GST_ELEMENT_CLASS (klass);
   GstAudioEncoderClass *base_class = GST_AUDIO_ENCODER_CLASS (klass);
+  GstCaps *sink_caps;
+  GstPadTemplate *sink_templ;
 
   gobject_class->set_property = gst_faac_set_property;
   gobject_class->get_property = gst_faac_get_property;
 
   gst_element_class_add_pad_template (gstelement_class,
       gst_static_pad_template_get (&src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sink_template));
+
+  sink_caps = gst_faac_enc_generate_sink_caps ();
+  sink_templ = gst_pad_template_new ("sink",
+      GST_PAD_SINK, GST_PAD_ALWAYS, sink_caps);
+  gst_element_class_add_pad_template (gstelement_class, sink_templ);
+  gst_caps_unref (sink_caps);
 
   gst_element_class_set_static_metadata (gstelement_class, "AAC audio encoder",
       "Codec/Encoder/Audio",
@@ -211,7 +206,6 @@
   base_class->stop = GST_DEBUG_FUNCPTR (gst_faac_stop);
   base_class->set_format = GST_DEBUG_FUNCPTR (gst_faac_set_format);
   base_class->handle_frame = GST_DEBUG_FUNCPTR (gst_faac_handle_frame);
-  base_class->getcaps = GST_DEBUG_FUNCPTR (gst_faac_getcaps);
 
   /* properties */
   g_object_class_install_property (gobject_class, PROP_QUALITY,
@@ -249,6 +243,7 @@
 static void
 gst_faac_init (GstFaac * faac)
 {
+  GST_PAD_SET_ACCEPT_TEMPLATE (GST_AUDIO_ENCODER_SINK_PAD (faac));
 }
 
 static void
@@ -299,58 +294,51 @@
 };
 
 static GstCaps *
-gst_faac_getcaps (GstAudioEncoder * enc, GstCaps * filter)
+gst_faac_enc_generate_sink_caps (void)
 {
-  static volatile gsize sinkcaps = 0;
+  GstCaps *caps = gst_caps_new_empty ();
+  GstStructure *s, *t;
+  gint i, c;
+  static const int rates[] = {
+    8000, 11025, 12000, 16000, 22050, 24000,
+    32000, 44100, 48000, 64000, 88200, 96000
+  };
+  GValue rates_arr = { 0, };
+  GValue tmp_v = { 0, };
 
-  if (g_once_init_enter (&sinkcaps)) {
-    GstCaps *tmp = gst_caps_new_empty ();
-    GstStructure *s, *t;
-    gint i, c;
-    static const int rates[] = {
-      8000, 11025, 12000, 16000, 22050, 24000,
-      32000, 44100, 48000, 64000, 88200, 96000
-    };
-    GValue rates_arr = { 0, };
-    GValue tmp_v = { 0, };
-
-    g_value_init (&rates_arr, GST_TYPE_LIST);
-    g_value_init (&tmp_v, G_TYPE_INT);
-    for (i = 0; i < G_N_ELEMENTS (rates); i++) {
-      g_value_set_int (&tmp_v, rates[i]);
-      gst_value_list_append_value (&rates_arr, &tmp_v);
-    }
-    g_value_unset (&tmp_v);
-
-    s = gst_structure_new ("audio/x-raw",
-        "format", G_TYPE_STRING, GST_AUDIO_NE (S16),
-        "layout", G_TYPE_STRING, "interleaved", NULL);
-    gst_structure_set_value (s, "rate", &rates_arr);
-
-    for (i = 1; i <= 6; i++) {
-      guint64 channel_mask = 0;
-      t = gst_structure_copy (s);
-
-      gst_structure_set (t, "channels", G_TYPE_INT, i, NULL);
-      if (i > 1) {
-        for (c = 0; c < i; c++)
-          channel_mask |=
-              G_GUINT64_CONSTANT (1) << aac_channel_positions[i - 1][c];
-
-        gst_structure_set (t, "channel-mask", GST_TYPE_BITMASK, channel_mask,
-            NULL);
-      }
-      gst_caps_append_structure (tmp, t);
-    }
-    gst_structure_free (s);
-    g_value_unset (&rates_arr);
-
-    GST_DEBUG_OBJECT (enc, "Generated sinkcaps: %" GST_PTR_FORMAT, tmp);
-
-    g_once_init_leave (&sinkcaps, (gsize) tmp);
+  g_value_init (&rates_arr, GST_TYPE_LIST);
+  g_value_init (&tmp_v, G_TYPE_INT);
+  for (i = 0; i < G_N_ELEMENTS (rates); i++) {
+    g_value_set_int (&tmp_v, rates[i]);
+    gst_value_list_append_value (&rates_arr, &tmp_v);
   }
+  g_value_unset (&tmp_v);
 
-  return gst_audio_encoder_proxy_getcaps (enc, (GstCaps *) sinkcaps, filter);
+  s = gst_structure_new ("audio/x-raw",
+      "format", G_TYPE_STRING, GST_AUDIO_NE (S16),
+      "layout", G_TYPE_STRING, "interleaved", NULL);
+  gst_structure_set_value (s, "rate", &rates_arr);
+
+  t = gst_structure_copy (s);
+  gst_structure_set (t, "channels", G_TYPE_INT, 1, NULL);
+  gst_caps_append_structure (caps, t);
+
+  for (i = 2; i <= 6; i++) {
+    guint64 channel_mask = 0;
+    t = gst_structure_copy (s);
+
+    gst_structure_set (t, "channels", G_TYPE_INT, i, NULL);
+    for (c = 0; c < i; c++)
+      channel_mask |= G_GUINT64_CONSTANT (1) << aac_channel_positions[i - 1][c];
+
+    gst_structure_set (t, "channel-mask", GST_TYPE_BITMASK, channel_mask, NULL);
+    gst_caps_append_structure (caps, t);
+  }
+  gst_structure_free (s);
+  g_value_unset (&rates_arr);
+
+  GST_DEBUG ("Generated sinkcaps: %" GST_PTR_FORMAT, caps);
+  return caps;
 }
 
 static gboolean
diff --git a/ext/faad/Makefile.in b/ext/faad/Makefile.in
index d8bbbb9..93de378 100644
--- a/ext/faad/Makefile.in
+++ b/ext/faad/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/faad
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -228,6 +238,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -245,8 +256,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -275,8 +284,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -324,11 +331,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -512,6 +522,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -590,7 +601,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -630,6 +646,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -766,7 +783,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/faad/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/faad/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1075,6 +1091,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/ext/faad/gstfaad.c b/ext/faad/gstfaad.c
index 918d636..65a3f89 100644
--- a/ext/faad/gstfaad.c
+++ b/ext/faad/gstfaad.c
@@ -175,6 +175,9 @@
 static void
 gst_faad_init (GstFaad * faad)
 {
+  gst_audio_decoder_set_use_default_pad_acceptcaps (GST_AUDIO_DECODER_CAST
+      (faad), TRUE);
+  GST_PAD_SET_ACCEPT_TEMPLATE (GST_AUDIO_DECODER_SINK_PAD (faad));
   gst_faad_reset (faad);
 }
 
diff --git a/ext/flite/Makefile.in b/ext/flite/Makefile.in
index 341d28d..32ea2f3 100644
--- a/ext/flite/Makefile.in
+++ b/ext/flite/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -15,7 +15,17 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -80,8 +90,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/flite
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -119,6 +127,7 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -227,6 +236,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -244,8 +254,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -274,8 +282,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -323,11 +329,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -511,6 +520,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -589,7 +599,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -629,6 +644,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -769,7 +785,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/flite/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/flite/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1086,6 +1101,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/ext/fluidsynth/Makefile.in b/ext/fluidsynth/Makefile.in
index aa656cb..5f3a1af 100644
--- a/ext/fluidsynth/Makefile.in
+++ b/ext/fluidsynth/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -82,8 +92,6 @@
 target_triplet = @target@
 @USE_FLUIDSYNTH_TRUE@am__append_1 = libgstfluidsynthmidi.la
 subdir = ext/fluidsynth
-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 \
@@ -121,6 +129,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -235,6 +245,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -252,8 +263,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -282,8 +291,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -331,11 +338,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -519,6 +529,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -597,7 +608,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -637,6 +653,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -777,7 +794,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/fluidsynth/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/fluidsynth/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1086,6 +1102,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/ext/gl/Makefile.in b/ext/gl/Makefile.in
index 3da2e5e..b0c0e8d 100644
--- a/ext/gl/Makefile.in
+++ b/ext/gl/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -127,8 +137,6 @@
 @HAVE_WINDOW_COCOA_TRUE@	caopengllayersink.h
 
 subdir = ext/gl
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp $(am__noinst_HEADERS_DIST)
 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 \
@@ -166,6 +174,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__noinst_HEADERS_DIST) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -376,6 +386,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -393,8 +404,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -423,8 +432,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -472,11 +479,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -660,6 +670,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -738,7 +749,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -778,6 +794,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -964,7 +981,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/gl/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/gl/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1712,6 +1728,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/ext/gl/caopengllayersink.m b/ext/gl/caopengllayersink.m
index c2e3e02..029e491 100644
--- a/ext/gl/caopengllayersink.m
+++ b/ext/gl/caopengllayersink.m
@@ -357,12 +357,8 @@
   gst_gl_display_filter_gl_api (ca_sink->display, SUPPORTED_GL_APIS);
 
   if (!ca_sink->context) {
-    ca_sink->context = gst_gl_context_new (ca_sink->display);
-    if (!ca_sink->context)
-      goto context_creation_error;
-
-    if (!gst_gl_context_create (ca_sink->context, ca_sink->other_context,
-            &error)) {
+    if (!gst_gl_display_create_context (ca_sink->display,
+            ca_sink->other_context, &ca_sink->context, &error)) {
       goto context_error;
     }
   }
@@ -372,13 +368,6 @@
 
   return TRUE;
 
-context_creation_error:
-  {
-    GST_ELEMENT_ERROR (ca_sink, RESOURCE, NOT_FOUND,
-        ("Failed to create GL context"), (NULL));
-    return FALSE;
-  }
-
 context_error:
   {
     GST_ELEMENT_ERROR (ca_sink, RESOURCE, NOT_FOUND, ("%s", error->message),
diff --git a/ext/gl/effects/gstgleffectblur.c b/ext/gl/effects/gstgleffectblur.c
index 8042b27..f03af37 100644
--- a/ext/gl/effects/gstgleffectblur.c
+++ b/ext/gl/effects/gstgleffectblur.c
@@ -48,7 +48,7 @@
   GstGLEffects *effects = GST_GL_EFFECTS (data);
 
   if (NULL != (shader = gst_gl_effects_get_fragment_shader (effects, "hconv0",
-              hconv7_fragment_source_gles2, hconv7_fragment_source_opengl))) {
+              hconv7_fragment_source_gles2))) {
     GstGLFilter *filter = GST_GL_FILTER (effects);
     GstGLFuncs *gl = GST_GL_BASE_FILTER (filter)->context->gl_vtable;
 
@@ -82,7 +82,7 @@
   GstGLFilter *filter = GST_GL_FILTER (effects);
 
   if (NULL != (shader = gst_gl_effects_get_fragment_shader (effects, "vconv0",
-              vconv7_fragment_source_gles2, vconv7_fragment_source_opengl))) {
+              vconv7_fragment_source_gles2))) {
     GstGLFuncs *gl = GST_GL_BASE_FILTER (filter)->context->gl_vtable;
 
 #if GST_GL_HAVE_OPENGL
diff --git a/ext/gl/effects/gstgleffectbulge.c b/ext/gl/effects/gstgleffectbulge.c
index f228867..9856321 100644
--- a/ext/gl/effects/gstgleffectbulge.c
+++ b/ext/gl/effects/gstgleffectbulge.c
@@ -34,7 +34,7 @@
   GstGLFuncs *gl = context->gl_vtable;
 
   shader = gst_gl_effects_get_fragment_shader (effects, "bulge",
-      bulge_fragment_source_gles2, bulge_fragment_source_opengl);
+      bulge_fragment_source_gles2);
 
   if (!shader)
     return;
diff --git a/ext/gl/effects/gstgleffectfisheye.c b/ext/gl/effects/gstgleffectfisheye.c
index 2be8609..285deb3 100644
--- a/ext/gl/effects/gstgleffectfisheye.c
+++ b/ext/gl/effects/gstgleffectfisheye.c
@@ -34,7 +34,7 @@
   GstGLFuncs *gl = context->gl_vtable;
 
   shader = gst_gl_effects_get_fragment_shader (effects, "fisheye",
-      fisheye_fragment_source_gles2, fisheye_fragment_source_opengl);
+      fisheye_fragment_source_gles2);
 
   if (!shader)
     return;
diff --git a/ext/gl/effects/gstgleffectglow.c b/ext/gl/effects/gstgleffectglow.c
index 97277b8..9fc09e0 100644
--- a/ext/gl/effects/gstgleffectglow.c
+++ b/ext/gl/effects/gstgleffectglow.c
@@ -37,8 +37,7 @@
   GstGLFuncs *gl = context->gl_vtable;
 
   shader = gst_gl_effects_get_fragment_shader (effects, "luma_threshold",
-      luma_threshold_fragment_source_gles2,
-      luma_threshold_fragment_source_opengl);
+      luma_threshold_fragment_source_gles2);
 
   if (!shader)
     return;
@@ -71,7 +70,7 @@
   GstGLFuncs *gl = context->gl_vtable;
 
   shader = gst_gl_effects_get_fragment_shader (effects, "hconv7",
-      hconv7_fragment_source_gles2, hconv7_fragment_source_opengl);
+      hconv7_fragment_source_gles2);
 
   if (!shader)
     return;
@@ -110,7 +109,7 @@
   GstGLFuncs *gl = context->gl_vtable;
 
   shader = gst_gl_effects_get_fragment_shader (effects, "vconv7",
-      vconv7_fragment_source_gles2, vconv7_fragment_source_opengl);
+      vconv7_fragment_source_gles2);
 
   if (!shader)
     return;
@@ -145,7 +144,7 @@
   GstGLFuncs *gl = context->gl_vtable;
 
   shader = gst_gl_effects_get_fragment_shader (effects, "sum",
-      sum_fragment_source_gles2, sum_fragment_source_opengl);
+      sum_fragment_source_gles2);
 
   if (!shader)
     return;
diff --git a/ext/gl/effects/gstgleffectidentity.c b/ext/gl/effects/gstgleffectidentity.c
index 58d0055..9740cc7 100644
--- a/ext/gl/effects/gstgleffectidentity.c
+++ b/ext/gl/effects/gstgleffectidentity.c
@@ -31,6 +31,7 @@
   GstGLFilter *filter = GST_GL_FILTER (effects);
   GstGLContext *context = GST_GL_BASE_FILTER (filter)->context;
   GstGLFuncs *gl = context->gl_vtable;
+  GstGLShader *shader;
 
 #if GST_GL_HAVE_OPENGL
   if (USING_OPENGL (context)) {
@@ -38,32 +39,27 @@
     gl->LoadIdentity ();
   }
 #endif
-  if (USING_GLES2 (context) || USING_OPENGL3 (context)) {
-    GstGLShader *shader =
-        g_hash_table_lookup (effects->shaderstable, "identity0");
 
-    if (!shader) {
-      shader = gst_gl_shader_new (context);
-      g_hash_table_insert (effects->shaderstable, (gchar *) "identity0",
-          shader);
+  shader = g_hash_table_lookup (effects->shaderstable, "identity0");
+  if (!shader) {
+    shader = gst_gl_shader_new (context);
+    g_hash_table_insert (effects->shaderstable, (gchar *) "identity0", shader);
 
-      if (!gst_gl_shader_compile_with_default_vf_and_check (shader,
-              &filter->draw_attr_position_loc,
-              &filter->draw_attr_texture_loc)) {
-        /* gst gl context error is already set */
-        GST_ELEMENT_ERROR (effects, RESOURCE, NOT_FOUND,
-            ("Failed to initialize identity shader, %s",
-                gst_gl_context_get_error ()), (NULL));
-        return;
-      }
+    if (!gst_gl_shader_compile_with_default_vf_and_check (shader,
+            &filter->draw_attr_position_loc, &filter->draw_attr_texture_loc)) {
+      /* gst gl context error is already set */
+      GST_ELEMENT_ERROR (effects, RESOURCE, NOT_FOUND,
+          ("Failed to initialize identity shader, %s",
+              gst_gl_context_get_error ()), (NULL));
+      return;
     }
-    gst_gl_shader_use (shader);
-
-    gl->ActiveTexture (GL_TEXTURE0);
-    gl->BindTexture (GL_TEXTURE_2D, texture);
-
-    gst_gl_shader_set_uniform_1i (shader, "tex", 0);
   }
+  gst_gl_shader_use (shader);
+
+  gl->ActiveTexture (GL_TEXTURE0);
+  gl->BindTexture (GL_TEXTURE_2D, texture);
+
+  gst_gl_shader_set_uniform_1i (shader, "tex", 0);
 
   gst_gl_filter_draw_texture (filter, texture, width, height);
 }
diff --git a/ext/gl/effects/gstgleffectlaplacian.c b/ext/gl/effects/gstgleffectlaplacian.c
index a6eadcc..ca5b88c 100644
--- a/ext/gl/effects/gstgleffectlaplacian.c
+++ b/ext/gl/effects/gstgleffectlaplacian.c
@@ -34,7 +34,7 @@
   GstGLFilter *filter = GST_GL_FILTER (effects);
 
   if (NULL != (shader = gst_gl_effects_get_fragment_shader (effects, "conv0",
-              conv9_fragment_source_gles2, conv9_fragment_source_opengl))) {
+              conv9_fragment_source_gles2))) {
     GstGLFuncs *gl = GST_GL_BASE_FILTER (filter)->context->gl_vtable;
     static gfloat kernel[9] = { 0.0, -1.0, 0.0,
       -1.0, 4.0, -1.0,
diff --git a/ext/gl/effects/gstgleffectlumatocurve.c b/ext/gl/effects/gstgleffectlumatocurve.c
index f4e303c..158fda0 100644
--- a/ext/gl/effects/gstgleffectlumatocurve.c
+++ b/ext/gl/effects/gstgleffectlumatocurve.c
@@ -35,8 +35,7 @@
   GstGLFuncs *gl = context->gl_vtable;
 
   shader = gst_gl_effects_get_fragment_shader (effects, "luma_to_curve",
-      luma_to_curve_fragment_source_gles2,
-      luma_to_curve_fragment_source_opengl);
+      luma_to_curve_fragment_source_gles2);
 
   if (!shader)
     return;
diff --git a/ext/gl/effects/gstgleffectmirror.c b/ext/gl/effects/gstgleffectmirror.c
index 4f5d473..5080099 100644
--- a/ext/gl/effects/gstgleffectmirror.c
+++ b/ext/gl/effects/gstgleffectmirror.c
@@ -34,7 +34,7 @@
   GstGLFuncs *gl = context->gl_vtable;
 
   shader = gst_gl_effects_get_fragment_shader (effects, "mirror",
-      mirror_fragment_source_gles2, mirror_fragment_source_opengl);
+      mirror_fragment_source_gles2);
 
   if (!shader)
     return;
diff --git a/ext/gl/effects/gstgleffectrgbtocurve.c b/ext/gl/effects/gstgleffectrgbtocurve.c
index b2d84e1..e2b6bdb 100644
--- a/ext/gl/effects/gstgleffectrgbtocurve.c
+++ b/ext/gl/effects/gstgleffectrgbtocurve.c
@@ -35,7 +35,7 @@
   GstGLFuncs *gl = context->gl_vtable;
 
   shader = gst_gl_effects_get_fragment_shader (effects, "rgb_to_curve",
-      rgb_to_curve_fragment_source_gles2, rgb_to_curve_fragment_source_opengl);
+      rgb_to_curve_fragment_source_gles2);
 
   if (!shader)
     return;
diff --git a/ext/gl/effects/gstgleffectsin.c b/ext/gl/effects/gstgleffectsin.c
index 302b2bb..5c09e8b 100644
--- a/ext/gl/effects/gstgleffectsin.c
+++ b/ext/gl/effects/gstgleffectsin.c
@@ -34,7 +34,7 @@
   GstGLFuncs *gl = context->gl_vtable;
 
   shader = gst_gl_effects_get_fragment_shader (effects, "sin",
-      sin_fragment_source_gles2, sin_fragment_source_opengl);
+      sin_fragment_source_gles2);
 
   if (!shader)
     return;
diff --git a/ext/gl/effects/gstgleffectsobel.c b/ext/gl/effects/gstgleffectsobel.c
index a18dbd3..8996b93 100644
--- a/ext/gl/effects/gstgleffectsobel.c
+++ b/ext/gl/effects/gstgleffectsobel.c
@@ -34,8 +34,7 @@
   GstGLFilter *filter = GST_GL_FILTER (effects);
 
   if (NULL != (shader = gst_gl_effects_get_fragment_shader (effects, "desat0",
-              desaturate_fragment_source_gles2,
-              desaturate_fragment_source_opengl))) {
+              desaturate_fragment_source_gles2))) {
     GstGLFuncs *gl = GST_GL_BASE_FILTER (filter)->context->gl_vtable;
 
 #if GST_GL_HAVE_OPENGL
@@ -65,8 +64,7 @@
   GstGLFilter *filter = GST_GL_FILTER (effects);
 
   if (NULL != (shader = gst_gl_effects_get_fragment_shader (effects, "hconv0",
-              sep_sobel_hconv3_fragment_source_gles2,
-              sep_sobel_hconv3_fragment_source_opengl))) {
+              sep_sobel_hconv3_fragment_source_gles2))) {
     GstGLFuncs *gl = GST_GL_BASE_FILTER (filter)->context->gl_vtable;
 
 #if GST_GL_HAVE_OPENGL
@@ -97,8 +95,7 @@
   GstGLFilter *filter = GST_GL_FILTER (effects);
 
   if (NULL != (shader = gst_gl_effects_get_fragment_shader (effects, "vconv0",
-              sep_sobel_vconv3_fragment_source_gles2,
-              sep_sobel_vconv3_fragment_source_opengl))) {
+              sep_sobel_vconv3_fragment_source_gles2))) {
     GstGLFuncs *gl = GST_GL_BASE_FILTER (filter)->context->gl_vtable;
 
 #if GST_GL_HAVE_OPENGL
@@ -129,8 +126,7 @@
   GstGLFilter *filter = GST_GL_FILTER (effects);
 
   if (NULL != (shader = gst_gl_effects_get_fragment_shader (effects, "len0",
-              sep_sobel_length_fragment_source_gles2,
-              sep_sobel_length_fragment_source_opengl))) {
+              sep_sobel_length_fragment_source_gles2))) {
     GstGLFuncs *gl = GST_GL_BASE_FILTER (filter)->context->gl_vtable;
 
 #if GST_GL_HAVE_OPENGL
diff --git a/ext/gl/effects/gstgleffectsquare.c b/ext/gl/effects/gstgleffectsquare.c
index 1dc09a2..e74c943 100644
--- a/ext/gl/effects/gstgleffectsquare.c
+++ b/ext/gl/effects/gstgleffectsquare.c
@@ -34,7 +34,7 @@
   GstGLFuncs *gl = context->gl_vtable;
 
   shader = gst_gl_effects_get_fragment_shader (effects, "square",
-      square_fragment_source_gles2, square_fragment_source_opengl);
+      square_fragment_source_gles2);
 
   if (!shader)
     return;
diff --git a/ext/gl/effects/gstgleffectsqueeze.c b/ext/gl/effects/gstgleffectsqueeze.c
index 249deff..2dbded5 100644
--- a/ext/gl/effects/gstgleffectsqueeze.c
+++ b/ext/gl/effects/gstgleffectsqueeze.c
@@ -34,7 +34,7 @@
   GstGLFuncs *gl = context->gl_vtable;
 
   shader = gst_gl_effects_get_fragment_shader (effects, "squeeze",
-      squeeze_fragment_source_gles2, squeeze_fragment_source_opengl);
+      squeeze_fragment_source_gles2);
 
   if (!shader)
     return;
diff --git a/ext/gl/effects/gstgleffectssources.c b/ext/gl/effects/gstgleffectssources.c
index b783ced..3da856c 100644
--- a/ext/gl/effects/gstgleffectssources.c
+++ b/ext/gl/effects/gstgleffectssources.c
@@ -91,19 +91,6 @@
   "  gl_FragColor = texture2D (tex, texturecoord);"
   "}";
 
-/* Squeeze effect */
-const gchar *squeeze_fragment_source_opengl =
-  "uniform sampler2D tex;"
-  "void main () {"
-  "  vec2 texturecoord = gl_TexCoord[0].xy;"
-  "  vec2 normcoord = texturecoord - 0.5;"
-  "  float r = length (normcoord);"
-  "  r = pow(r, 0.40)*1.3;"
-  "  normcoord = normcoord / r;"
-  "  texturecoord = (normcoord + 0.5);"
-  "  gl_FragColor = texture2D (tex, texturecoord);"
-  "}";
-
 const gchar *squeeze_fragment_source_gles2 =
   "#ifdef GL_ES\n"
   "precision mediump float;\n"
@@ -120,20 +107,6 @@
   "  gl_FragColor = texture2D (tex, texturecoord);"
   "}";
 
-/* Stretch Effect */
-const gchar *stretch_fragment_source_opengl =
-  "uniform sampler2D tex;"
-  "void main () {"
-  "  vec2 texturecoord = gl_TexCoord[0].xy;"
-  "  vec2 normcoord;"
-  "  normcoord = texturecoord - 0.5;"
-  "  float r = length (normcoord);"
-  "  normcoord *= 2.0 - smoothstep(0.0, 0.35, r);"
-  "  texturecoord = normcoord + 0.5;"
-  "  vec4 color = texture2D (tex, texturecoord);"
-  "  gl_FragColor = color * gl_Color;"
-  "}";
-
 const gchar *stretch_fragment_source_gles2 =
   "#ifdef GL_ES\n"
   "precision mediump float;\n"
@@ -150,22 +123,6 @@
   "  gl_FragColor = texture2D (tex, texturecoord);"
   "}";
 
-/* Light Tunnel effect */
-const gchar *tunnel_fragment_source_opengl =
-  "uniform sampler2D tex;"
-  "void main () {"
-  "  vec2 texturecoord = gl_TexCoord[0].xy;"
-  "  vec2 normcoord;"
-  /* little trick with normalized coords to obtain a circle with
-   * rect textures */
-  "  normcoord = (texturecoord - 0.5);"
-  "  float r = length(normcoord);"
-  "  normcoord *= clamp (r, 0.0, 0.275) / r;"
-  "  texturecoord = normcoord + 0.5;"
-  "  vec4 color = texture2D (tex, texturecoord); "
-  "  gl_FragColor = color;"
-  "}";
-
 const gchar *tunnel_fragment_source_gles2 =
   "#ifdef GL_ES\n"
   "precision mediump float;\n"
@@ -184,20 +141,6 @@
   "  gl_FragColor = texture2D (tex, texturecoord);"
   "}";
 
-/* FishEye effect */
-const gchar *fisheye_fragment_source_opengl =
-  "uniform sampler2D tex;"
-  "void main () {"
-  "  vec2 texturecoord = gl_TexCoord[0].xy;"
-  "  vec2 normcoord;"
-  "  normcoord = texturecoord - 0.5;"
-  "  float r = length (normcoord);"
-  "  normcoord *= r * sqrt(2.0);"
-  "  texturecoord = normcoord + 0.5;"
-  "  vec4 color = texture2D (tex, texturecoord);"
-  "  gl_FragColor = color;"
-  "}";
-
 const gchar *fisheye_fragment_source_gles2 =
   "#ifdef GL_ES\n"
   "precision mediump float;\n"
@@ -214,27 +157,6 @@
   "  gl_FragColor = texture2D (tex, texturecoord);"
   "}";
 
-/* Twirl effect */
-const gchar *twirl_fragment_source_opengl =
-  "uniform sampler2D tex;"
-  "void main () {"
-  "  vec2 texturecoord = gl_TexCoord[0].xy;"
-  "  vec2 normcoord;"
-  "  normcoord = texturecoord - 0.5;"
-  "  float r = length (normcoord);"
-  /* calculate rotation angle: maximum (about pi/2) at the origin and
-   * gradually decrease it up to 0.6 of each quadrant */
-  "  float phi = (1.0 - smoothstep (0.0, 0.3, r)) * 1.6;"
-  /* precalculate sin phi and cos phi, save some alu */
-  "  float s = sin(phi);"
-  "  float c = cos(phi);"
-  /* rotate */
-  "  normcoord *= mat2(c, s, -s, c);"
-  "  texturecoord = normcoord + 0.5;"
-  "  vec4 color = texture2D (tex, texturecoord); "
-  "  gl_FragColor = color;"
-  "}";
-
 const gchar *twirl_fragment_source_gles2 =
   "#ifdef GL_ES\n"
   "precision mediump float;\n"
@@ -258,20 +180,6 @@
   "  gl_FragColor = texture2D (tex, texturecoord);"
   "}";
 
-/* Bulge effect */
-const gchar *bulge_fragment_source_opengl =
-  "uniform sampler2D tex;"
-  "void main () {"
-  "  vec2 texturecoord = gl_TexCoord[0].xy;"
-  "  vec2 normcoord;"
-  "  normcoord = texturecoord - 0.5;"
-  "  float r =  length (normcoord);"
-  "  normcoord *= smoothstep (-0.05, 0.25, r);"
-  "  texturecoord = normcoord + 0.5;"
-  "  vec4 color = texture2D (tex, texturecoord);"
-  "  gl_FragColor = color;"
-  "}";
-
 const gchar *bulge_fragment_source_gles2 =
   "#ifdef GL_ES\n"
   "precision mediump float;\n"
@@ -288,21 +196,6 @@
   "  gl_FragColor = texture2D (tex, texturecoord);"
   "}";
 
-/* Square Effect */
-const gchar *square_fragment_source_opengl =
-  "uniform sampler2D tex;"
-  "void main () {"
-  "  vec2 texturecoord = gl_TexCoord[0].xy;"
-  "  vec2 normcoord;"
-  "  normcoord = texturecoord - 0.5;"
-  "  float r = length (normcoord);"
-  "  normcoord *= 1.0 + smoothstep(0.125, 0.25, abs(normcoord));"
-  "  normcoord /= 2.0; /* zoom amount */"
-  "  texturecoord = normcoord + 0.5;"
-  "  vec4 color = texture2D (tex, texturecoord);"
-  "  gl_FragColor = color * gl_Color;"
-  "}";
-
 const gchar *square_fragment_source_gles2 =
   "#ifdef GL_ES\n"
   "precision mediump float;\n"
@@ -320,15 +213,6 @@
   "  gl_FragColor = texture2D (tex, texturecoord);"
   "}";
 
-const gchar *luma_threshold_fragment_source_opengl =
-  "uniform sampler2D tex;"
-  "void main () {"
-  "  vec2 texturecoord = gl_TexCoord[0].st;"
-  "  vec4 color = texture2D(tex, texturecoord);"
-  "  float luma = dot(color.rgb, vec3(0.2125, 0.7154, 0.0721));"    /* BT.709 (from orange book) */
-  "  gl_FragColor = vec4 (vec3 (smoothstep (0.30, 0.50, luma)), color.a);"
-  "}";
-
 const gchar *luma_threshold_fragment_source_gles2 =
   "#ifdef GL_ES\n"
   "precision mediump float;\n"
@@ -342,19 +226,6 @@
   "  gl_FragColor = vec4 (vec3 (smoothstep (0.30, 0.50, luma)), color.a);"
   "}";
 
-const gchar *sep_sobel_length_fragment_source_opengl =
-  "uniform sampler2D tex;"
-  "uniform bool invert;"
-  "void main () {"
-  "  vec4 g = texture2D (tex, gl_TexCoord[0].st);"
-  /* restore black background with grey edges */
-  "  g -= vec4(0.5, 0.5, 0.0, 0.0);"
-  "  float len = length (g);"
-  /* little trick to avoid IF operator */
-  /* TODO: test if a standalone inverting pass is worth */
-  "  gl_FragColor = abs(vec4(vec3(float(invert) - len), 1.0));"
-  "}";
-
 const gchar *sep_sobel_length_fragment_source_gles2 =
   "#ifdef GL_ES\n"
   "precision mediump float;\n"
@@ -372,14 +243,6 @@
   "  gl_FragColor = abs(vec4(vec3(float(invert) - len), 1.0));"
   "}";
 
-const gchar *desaturate_fragment_source_opengl =
-  "uniform sampler2D tex;"
-  "void main () {"
-  "  vec4 color = texture2D (tex, gl_TexCoord[0].st);"
-  "  float luma = dot(color.rgb, vec3(0.2125, 0.7154, 0.0721));"
-  "  gl_FragColor = vec4(vec3(luma), color.a);"
-  "}";
-
 const gchar *desaturate_fragment_source_gles2 =
   "#ifdef GL_ES\n"
   "precision mediump float;\n"
@@ -392,33 +255,6 @@
   "  gl_FragColor = vec4(vec3(luma), color.a);"
   "}";
 
-const gchar *sep_sobel_hconv3_fragment_source_opengl =
-  "uniform sampler2D tex;"
-  "uniform float width;"
-  "void main () {"
-  "  float w = 1.0 / width;"
-  "  vec2 texturecoord[3];"
-  "  texturecoord[1] = gl_TexCoord[0].st;"
-  "  texturecoord[0] = texturecoord[1] - vec2(w, 0.0);"
-  "  texturecoord[2] = texturecoord[1] + vec2(w, 0.0);"
-  "  float grad_kern[3];"
-  "  grad_kern[0] = 1.0;"
-  "  grad_kern[1] = 0.0;"
-  "  grad_kern[2] = -1.0;"
-  "  float blur_kern[3];"
-  "  blur_kern[0] = 0.25;"
-  "  blur_kern[1] = 0.5;"
-  "  blur_kern[2] = 0.25;"
-  "  int i;"
-  "  vec4 sum = vec4 (0.0);"
-  "  for (i = 0; i < 3; i++) { "
-  "    vec4 neighbor = texture2D(tex, texturecoord[i]); "
-  "    sum.r = neighbor.r * blur_kern[i] + sum.r;"
-  "    sum.g = neighbor.g * grad_kern[i] + sum.g;"
-  "  }"
-  "  gl_FragColor = sum + vec4(0.0, 0.5, 0.0, 0.0);"
-  "}";
-
 const gchar *sep_sobel_hconv3_fragment_source_gles2 =
   "#ifdef GL_ES\n"
   "precision mediump float;\n"
@@ -450,33 +286,6 @@
   "  gl_FragColor = sum + vec4(0.0, 0.5, 0.0, 0.0);"
   "}";
 
-const gchar *sep_sobel_vconv3_fragment_source_opengl =
-  "uniform sampler2D tex;"
-  "uniform float height;"
-  "void main () {"
-  "  float h = 1.0 / height;"
-  "  vec2 texturecoord[3];"
-  "  texturecoord[1] = gl_TexCoord[0].st;"
-  "  texturecoord[0] = texturecoord[1] - vec2(0.0, h);"
-  "  texturecoord[2] = texturecoord[1] + vec2(0.0, h);"
-  "  float grad_kern[3];"
-  "  grad_kern[0] = 1.0;"
-  "  grad_kern[1] = 0.0;"
-  "  grad_kern[2] = -1.0;"
-  "  float blur_kern[3];"
-  "  blur_kern[0] = 0.25;"
-  "  blur_kern[1] = 0.5;"
-  "  blur_kern[2] = 0.25;"
-  "  int i;"
-  "  vec4 sum = vec4 (0.0);"
-  "  for (i = 0; i < 3; i++) { "
-  "    vec4 neighbor = texture2D(tex, texturecoord[i]); "
-  "    sum.r = neighbor.r * grad_kern[i] + sum.r;"
-  "    sum.g = neighbor.g * blur_kern[i] + sum.g;"
-  "  }"
-  "  gl_FragColor = sum + vec4(0.5, 0.0, 0.0, 0.0);"
-  "}";
-
 const gchar *sep_sobel_vconv3_fragment_source_gles2 =
   "#ifdef GL_ES\n"
   "precision mediump float;\n"
@@ -508,30 +317,6 @@
   "  gl_FragColor = sum + vec4(0.5, 0.0, 0.0, 0.0);"
   "}";
 
-/* horizontal convolution 7x7 */
-const gchar *hconv7_fragment_source_opengl =
-  "uniform sampler2D tex;"
-  "uniform float kernel[7];"
-  "uniform float gauss_width;"
-  "void main () {"
-  "  float w = 1.0 / gauss_width;"
-  "  vec2 texturecoord[7];"
-  "  texturecoord[3] = gl_TexCoord[0].st;"
-  "  texturecoord[2] = texturecoord[3] - vec2(w, 0.0);"
-  "  texturecoord[1] = texturecoord[2] - vec2(w, 0.0);"
-  "  texturecoord[0] = texturecoord[1] - vec2(w, 0.0);"
-  "  texturecoord[4] = texturecoord[3] + vec2(w, 0.0);"
-  "  texturecoord[5] = texturecoord[4] + vec2(w, 0.0);"
-  "  texturecoord[6] = texturecoord[5] + vec2(w, 0.0);"
-  "  int i;"
-  "  vec4 sum = vec4 (0.0);"
-  "  for (i = 0; i < 7; i++) { "
-  "    vec4 neighbor = texture2D(tex, texturecoord[i]); "
-  "    sum += neighbor * kernel[i];"
-  "  }"
-  "  gl_FragColor = sum;"
-  "}";
-
 const gchar *hconv7_fragment_source_gles2 =
   "#ifdef GL_ES\n"
   "precision mediump float;\n"
@@ -560,29 +345,6 @@
   "}";
 
 /* vertical convolution 7x7 */
-const gchar *vconv7_fragment_source_opengl =
-  "uniform sampler2D tex;"
-  "uniform float kernel[7];"
-  "uniform float gauss_height;"
-  "void main () {"
-  "  float h = 1.0 / gauss_height;"
-  "  vec2 texturecoord[7];"
-  "  texturecoord[3] = gl_TexCoord[0].st;"
-  "  texturecoord[2] = texturecoord[3] - vec2(0.0, h);"
-  "  texturecoord[1] = texturecoord[2] - vec2(0.0, h);"
-  "  texturecoord[0] = texturecoord[1] - vec2(0.0, h);"
-  "  texturecoord[4] = texturecoord[3] + vec2(0.0, h);"
-  "  texturecoord[5] = texturecoord[4] + vec2(0.0, h);"
-  "  texturecoord[6] = texturecoord[5] + vec2(0.0, h);"
-  "  int i;"
-  "  vec4 sum = vec4 (0.0);"
-  "  for (i = 0; i < 7; i++) { "
-  "    vec4 neighbor = texture2D(tex, texturecoord[i]);"
-  "    sum += neighbor * kernel[i];"
-  "  }"
-  "  gl_FragColor = sum;"
-  "}";
-
 const gchar *vconv7_fragment_source_gles2 =
   "#ifdef GL_ES\n"
   "precision mediump float;\n"
@@ -611,17 +373,6 @@
   "}";
 
 /* TODO: support several blend modes */
-const gchar *sum_fragment_source_opengl =
-  "uniform sampler2D base;"
-  "uniform sampler2D blend;"
-  "uniform float alpha;"
-  "uniform float beta;"
-  "void main () {"
-  "  vec4 basecolor = texture2D (base, gl_TexCoord[0].st);"
-  "  vec4 blendcolor = texture2D (blend, gl_TexCoord[0].st);"
-  "  gl_FragColor = alpha * basecolor + beta * blendcolor;"
-  "}";
-
 const gchar *sum_fragment_source_gles2 =
   "#ifdef GL_ES\n"
   "precision mediump float;\n"
@@ -637,16 +388,6 @@
   "  gl_FragColor = alpha * basecolor + beta * blendcolor;"
   "}";
 
-const gchar *multiply_fragment_source_opengl =
-  "uniform sampler2D base;"
-  "uniform sampler2D blend;"
-  "uniform float alpha;"
-  "void main () {"
-  "  vec4 basecolor = texture2D (base, gl_TexCoord[0].st);"
-  "  vec4 blendcolor = texture2D (blend, gl_TexCoord[0].st);"
-  "  gl_FragColor = (1.0 - alpha) * basecolor + alpha * basecolor * blendcolor;"
-  "}";
-
 const gchar *multiply_fragment_source_gles2 =
   "#ifdef GL_ES\n"
   "precision mediump float;\n"
@@ -662,17 +403,6 @@
   "}";
 
 /* lut operations, map luma to tex1d, see orange book (chapter 19) */
-const gchar *luma_to_curve_fragment_source_opengl =
-  "uniform sampler2D tex;"
-  "uniform sampler1D curve;"
-  "void main () {"
-  "  vec2 texturecoord = gl_TexCoord[0].st;"
-  "  vec4 color = texture2D (tex, texturecoord);"
-  "  float luma = dot(color.rgb, vec3(0.2125, 0.7154, 0.0721));"
-  "  color = texture1D(curve, luma);"
-  "  gl_FragColor = color;"
-  "}";
-
 const gchar *luma_to_curve_fragment_source_gles2 =
   "#ifdef GL_ES\n"
   "precision mediump float;\n"
@@ -689,19 +419,6 @@
   "}";
 
 /* lut operations, map rgb to tex1d, see orange book (chapter 19) */
-const gchar *rgb_to_curve_fragment_source_opengl =
-  "uniform sampler2D tex;"
-  "uniform sampler1D curve;"
-  "void main () {"
-  "  vec4 color = texture2D (tex, gl_TexCoord[0].st);"
-  "  vec4 outcolor;"
-  "  outcolor.r = texture1D(curve, color.r).r;"
-  "  outcolor.g = texture1D(curve, color.g).g;"
-  "  outcolor.b = texture1D(curve, color.b).b;"
-  "  outcolor.a = color.a;"
-  "  gl_FragColor = outcolor;"
-  "}";
-
 const gchar *rgb_to_curve_fragment_source_gles2 =
   "#ifdef GL_ES\n"
   "precision mediump float;\n"
@@ -719,31 +436,6 @@
   "  gl_FragColor = outcolor;"
   "}";
 
-const gchar *sin_fragment_source_opengl =
-  "uniform sampler2D tex;"
-  "void main () {"
-  "  vec4 color = texture2D (tex, vec2(gl_TexCoord[0].st));"
-  "  float luma = dot(color.rgb, vec3(0.2125, 0.7154, 0.0721));"
-/* calculate hue with the Preucil formula */
-  "  float cosh = color.r - 0.5*(color.g + color.b);"
-/* sqrt(3)/2 = 0.866 */
-  "  float sinh = 0.866*(color.g - color.b);"
-/* hue = atan2 h */
-  "  float sch = (1.0-sinh)*cosh;"
-/* ok this is a little trick I came up because I didn't find any
- * detailed proof of the Preucil formula. The issue is that tan(h) is
- * pi-periodic so the smoothstep thing gives both reds (h = 0) and
- * cyans (h = 180). I don't want to use atan since it requires
- * branching and doesn't work on i915. So take only the right half of
- * the circle where cosine is positive */
-/* take a slightly purple color trying to get rid of human skin reds */
-/* tanh = +-1.0 for h = +-45, where yellow=60, magenta=-60 */
-  "  float a = smoothstep (0.3, 1.0, sch);"
-  "  float b = smoothstep (-0.4, -0.1, sinh);"
-  "  float mix = a * b;"
-  "  gl_FragColor = color * mix + luma * (1.0 - mix);"
-  "}";
-
 const gchar *sin_fragment_source_gles2 =
   "#ifdef GL_ES\n"
   "precision mediump float;\n"
@@ -808,33 +500,6 @@
    when this shader will be used in production be careful to hard code
    kernel into the shader and remove unneeded zero multiplications in
    the convolution */
-const gchar *conv9_fragment_source_opengl =
-  "uniform sampler2D tex;"
-  "uniform float kernel[9];"
-  "uniform float width, height;"
-  "uniform bool invert;"
-  "void main () {"
-  "  float w = 1.0 / width;"
-  "  float h = 1.0 / height;"
-  "  vec2 texturecoord[9];"
-  "  texturecoord[4] = gl_TexCoord[0].st;"                /*  0  0 */
-  "  texturecoord[5] = texturecoord[4] + vec2(w,   0.0);" /*  1  0 */
-  "  texturecoord[2] = texturecoord[5] - vec2(0.0, h);"   /*  1 -1 */
-  "  texturecoord[1] = texturecoord[2] - vec2(w,   0.0);" /*  0 -1 */
-  "  texturecoord[0] = texturecoord[1] - vec2(w,   0.0);" /* -1 -1 */
-  "  texturecoord[3] = texturecoord[0] + vec2(0.0, h);"   /* -1  0 */
-  "  texturecoord[6] = texturecoord[3] + vec2(0.0, h);"   /* -1  1 */
-  "  texturecoord[7] = texturecoord[6] + vec2(w,   0.0);" /*  0  1 */
-  "  texturecoord[8] = texturecoord[7] + vec2(w,   0.0);" /*  1  1 */
-  "  int i;"
-  "  vec3 sum = vec3 (0.0);"
-  "  for (i = 0; i < 9; i++) { "
-  "    vec4 neighbor = texture2D (tex, texturecoord[i]);"
-  "    sum += neighbor.xyz * kernel[i];"
-  "  }"
-  "  gl_FragColor = vec4 (abs(sum - vec3(float(invert))), 1.0);"
-  "}";
-
 const gchar *conv9_fragment_source_gles2 =
   "#ifdef GL_ES\n"
   "precision mediump float;\n"
diff --git a/ext/gl/effects/gstgleffectssources.h b/ext/gl/effects/gstgleffectssources.h
index 6e41c72..fcd5c93 100644
--- a/ext/gl/effects/gstgleffectssources.h
+++ b/ext/gl/effects/gstgleffectssources.h
@@ -21,28 +21,6 @@
 #ifndef __GST_GL_EFFECTS_SOURCES_H__
 #define __GST_GL_EFFECTS_SOURCES_H__
 
-extern const gchar *mirror_fragment_source_opengl;
-extern const gchar *squeeze_fragment_source_opengl;
-extern const gchar *stretch_fragment_source_opengl;
-extern const gchar *fisheye_fragment_source_opengl;
-extern const gchar *twirl_fragment_source_opengl;
-extern const gchar *bulge_fragment_source_opengl;
-extern const gchar *tunnel_fragment_source_opengl;
-extern const gchar *square_fragment_source_opengl;
-extern const gchar *luma_threshold_fragment_source_opengl;
-extern const gchar *hconv7_fragment_source_opengl;
-extern const gchar *vconv7_fragment_source_opengl;
-extern const gchar *sum_fragment_source_opengl;
-extern const gchar *luma_to_curve_fragment_source_opengl;
-extern const gchar *rgb_to_curve_fragment_source_opengl;
-extern const gchar *sin_fragment_source_opengl;
-extern const gchar *desaturate_fragment_source_opengl;
-extern const gchar *sep_sobel_hconv3_fragment_source_opengl;
-extern const gchar *sep_sobel_vconv3_fragment_source_opengl;
-extern const gchar *sep_sobel_length_fragment_source_opengl;
-extern const gchar *multiply_fragment_source_opengl;
-extern const gchar *conv9_fragment_source_opengl;
-
 extern const gchar *mirror_fragment_source_gles2;
 extern const gchar *squeeze_fragment_source_gles2;
 extern const gchar *stretch_fragment_source_gles2;
diff --git a/ext/gl/effects/gstgleffectstretch.c b/ext/gl/effects/gstgleffectstretch.c
index 8c39636..d132bd0 100644
--- a/ext/gl/effects/gstgleffectstretch.c
+++ b/ext/gl/effects/gstgleffectstretch.c
@@ -34,7 +34,7 @@
   GstGLFuncs *gl = context->gl_vtable;
 
   shader = gst_gl_effects_get_fragment_shader (effects, "stretch",
-      stretch_fragment_source_gles2, stretch_fragment_source_opengl);
+      stretch_fragment_source_gles2);
 
   if (!shader)
     return;
diff --git a/ext/gl/effects/gstgleffecttunnel.c b/ext/gl/effects/gstgleffecttunnel.c
index e4c879f..5029c51 100644
--- a/ext/gl/effects/gstgleffecttunnel.c
+++ b/ext/gl/effects/gstgleffecttunnel.c
@@ -34,7 +34,7 @@
   GstGLFuncs *gl = context->gl_vtable;
 
   shader = gst_gl_effects_get_fragment_shader (effects, "tunnel",
-      tunnel_fragment_source_gles2, tunnel_fragment_source_opengl);
+      tunnel_fragment_source_gles2);
 
   if (!shader)
     return;
diff --git a/ext/gl/effects/gstgleffecttwirl.c b/ext/gl/effects/gstgleffecttwirl.c
index 96dceea..6c73f19 100644
--- a/ext/gl/effects/gstgleffecttwirl.c
+++ b/ext/gl/effects/gstgleffecttwirl.c
@@ -34,7 +34,7 @@
   GstGLFuncs *gl = context->gl_vtable;
 
   shader = gst_gl_effects_get_fragment_shader (effects, "twirl",
-      twirl_fragment_source_gles2, twirl_fragment_source_opengl);
+      twirl_fragment_source_gles2);
 
   if (!shader)
     return;
diff --git a/ext/gl/effects/gstgleffectxray.c b/ext/gl/effects/gstgleffectxray.c
index b25ecc1..c045cb6 100644
--- a/ext/gl/effects/gstgleffectxray.c
+++ b/ext/gl/effects/gstgleffectxray.c
@@ -49,7 +49,7 @@
   GstGLFuncs *gl = context->gl_vtable;
 
   shader = gst_gl_effects_get_fragment_shader (effects, "hconv7",
-      hconv7_fragment_source_gles2, hconv7_fragment_source_opengl);
+      hconv7_fragment_source_gles2);
 
   if (!shader)
     return;
@@ -88,7 +88,7 @@
   GstGLFuncs *gl = context->gl_vtable;
 
   shader = gst_gl_effects_get_fragment_shader (effects, "vconv7",
-      vconv7_fragment_source_gles2, vconv7_fragment_source_opengl);
+      vconv7_fragment_source_gles2);
 
   if (!shader)
     return;
@@ -124,7 +124,7 @@
   GstGLFuncs *gl = context->gl_vtable;
 
   shader = gst_gl_effects_get_fragment_shader (effects, "desaturate",
-      desaturate_fragment_source_gles2, desaturate_fragment_source_opengl);
+      desaturate_fragment_source_gles2);
 
   if (!shader)
     return;
@@ -156,8 +156,7 @@
   GstGLFuncs *gl = context->gl_vtable;
 
   shader = gst_gl_effects_get_fragment_shader (effects, "sobel_hconv3",
-      sep_sobel_hconv3_fragment_source_gles2,
-      sep_sobel_hconv3_fragment_source_opengl);
+      sep_sobel_hconv3_fragment_source_gles2);
 
   if (!shader)
     return;
@@ -191,8 +190,7 @@
   GstGLFuncs *gl = context->gl_vtable;
 
   shader = gst_gl_effects_get_fragment_shader (effects, "sobel_vconv3",
-      sep_sobel_vconv3_fragment_source_gles2,
-      sep_sobel_vconv3_fragment_source_opengl);
+      sep_sobel_vconv3_fragment_source_gles2);
 
   if (!shader)
     return;
@@ -226,8 +224,7 @@
   GstGLFuncs *gl = context->gl_vtable;
 
   shader = gst_gl_effects_get_fragment_shader (effects, "sobel_length",
-      sep_sobel_length_fragment_source_gles2,
-      sep_sobel_length_fragment_source_opengl);
+      sep_sobel_length_fragment_source_gles2);
 
   if (!shader)
     return;
@@ -262,7 +259,7 @@
   GstGLFuncs *gl = context->gl_vtable;
 
   shader = gst_gl_effects_get_fragment_shader (effects, "multiply",
-      multiply_fragment_source_gles2, multiply_fragment_source_opengl);
+      multiply_fragment_source_gles2);
 
   if (!shader)
     return;
diff --git a/ext/gl/gstglbasemixer.c b/ext/gl/gstglbasemixer.c
index d462c16..f8c8d19 100644
--- a/ext/gl/gstglbasemixer.c
+++ b/ext/gl/gstglbasemixer.c
@@ -469,15 +469,16 @@
   if (!mix->context) {
     GST_OBJECT_LOCK (mix->display);
     do {
-      if (mix->context)
+      if (mix->context) {
         gst_object_unref (mix->context);
+        mix->context = NULL;
+      }
       /* just get a GL context.  we don't care */
       mix->context =
           gst_gl_display_get_gl_context_for_thread (mix->display, NULL);
       if (!mix->context) {
-        mix->context = gst_gl_context_new (mix->display);
-        if (!gst_gl_context_create (mix->context, mix->priv->other_context,
-                &error)) {
+        if (!gst_gl_display_create_context (mix->display,
+                mix->priv->other_context, &mix->context, &error)) {
           GST_OBJECT_UNLOCK (mix->display);
           goto context_error;
         }
diff --git a/ext/gl/gstglcolorconvertelement.c b/ext/gl/gstglcolorconvertelement.c
index 833d07e..5a42968 100644
--- a/ext/gl/gstglcolorconvertelement.c
+++ b/ext/gl/gstglcolorconvertelement.c
@@ -55,13 +55,15 @@
 GST_STATIC_PAD_TEMPLATE ("src",
     GST_PAD_SRC,
     GST_PAD_ALWAYS,
-    GST_STATIC_CAPS (GST_GL_COLOR_CONVERT_VIDEO_CAPS));
+    GST_STATIC_CAPS (GST_GL_COLOR_CONVERT_VIDEO_CAPS ";"
+        GST_GL_COLOR_CONVERT_VIDEO_OVERLAY_COMPOSITION_CAPS));
 
 static GstStaticPadTemplate gst_gl_color_convert_element_sink_pad_template =
 GST_STATIC_PAD_TEMPLATE ("sink",
     GST_PAD_SINK,
     GST_PAD_ALWAYS,
-    GST_STATIC_CAPS (GST_GL_COLOR_CONVERT_VIDEO_CAPS));
+    GST_STATIC_CAPS (GST_GL_COLOR_CONVERT_VIDEO_CAPS ";"
+        GST_GL_COLOR_CONVERT_VIDEO_OVERLAY_COMPOSITION_CAPS));
 
 static gboolean
 gst_gl_color_convert_element_stop (GstBaseTransform * bt)
@@ -197,13 +199,17 @@
     return GST_FLOW_NOT_NEGOTIATED;
 
   *outbuf = gst_gl_color_convert_perform (convert->convert, inbuf);
+  if (!*outbuf) {
+    GST_ELEMENT_ERROR (bt, RESOURCE, NOT_FOUND,
+        ("%s", "Failed to convert video buffer"), (NULL));
+    return GST_FLOW_ERROR;
+  }
 
   /* basetransform doesn't unref if they're the same */
   if (inbuf == *outbuf)
     gst_buffer_unref (*outbuf);
-  if (*outbuf)
-    gst_buffer_copy_into (*outbuf, inbuf,
-        GST_BUFFER_COPY_FLAGS | GST_BUFFER_COPY_TIMESTAMPS, 0, -1);
+  gst_buffer_copy_into (*outbuf, inbuf,
+      GST_BUFFER_COPY_FLAGS | GST_BUFFER_COPY_TIMESTAMPS, 0, -1);
 
   return GST_FLOW_OK;
 }
diff --git a/ext/gl/gstgldifferencematte.c b/ext/gl/gstgldifferencematte.c
index fe9e246..b2b5fa5 100644
--- a/ext/gl/gstgldifferencematte.c
+++ b/ext/gl/gstgldifferencematte.c
@@ -96,39 +96,43 @@
         gst_gl_shader_new (GST_GL_BASE_FILTER (filter)->context);
   }
 
-  if (!gst_gl_shader_compile_and_check (differencematte->shader[0],
-          difference_fragment_source, GST_GL_SHADER_FRAGMENT_SOURCE)) {
+  if (!gst_gl_shader_compile_with_default_v_and_check (differencematte->shader
+          [0], difference_fragment_source, &filter->draw_attr_position_loc,
+          &filter->draw_attr_texture_loc)) {
     gst_gl_context_set_error (GST_GL_BASE_FILTER (differencematte)->context,
         "Failed to initialize difference shader");
-    GST_ELEMENT_ERROR (differencematte, RESOURCE, NOT_FOUND,
-        ("%s", gst_gl_context_get_error ()), (NULL));
+    GST_ELEMENT_ERROR (differencematte, RESOURCE, NOT_FOUND, ("%s",
+            gst_gl_context_get_error ()), (NULL));
     return;
   }
 
-  if (!gst_gl_shader_compile_and_check (differencematte->shader[1],
-          hconv7_fragment_source_opengl, GST_GL_SHADER_FRAGMENT_SOURCE)) {
+  if (!gst_gl_shader_compile_with_default_v_and_check (differencematte->shader
+          [1], hconv7_fragment_source_gles2, &filter->draw_attr_position_loc,
+          &filter->draw_attr_texture_loc)) {
     gst_gl_context_set_error (GST_GL_BASE_FILTER (differencematte)->context,
         "Failed to initialize hconv7 shader");
-    GST_ELEMENT_ERROR (differencematte, RESOURCE, NOT_FOUND,
-        ("%s", gst_gl_context_get_error ()), (NULL));
+    GST_ELEMENT_ERROR (differencematte, RESOURCE, NOT_FOUND, ("%s",
+            gst_gl_context_get_error ()), (NULL));
     return;
   }
 
-  if (!gst_gl_shader_compile_and_check (differencematte->shader[2],
-          vconv7_fragment_source_opengl, GST_GL_SHADER_FRAGMENT_SOURCE)) {
+  if (!gst_gl_shader_compile_with_default_v_and_check (differencematte->shader
+          [2], vconv7_fragment_source_gles2, &filter->draw_attr_position_loc,
+          &filter->draw_attr_texture_loc)) {
     gst_gl_context_set_error (GST_GL_BASE_FILTER (differencematte)->context,
         "Failed to initialize vconv7 shader");
-    GST_ELEMENT_ERROR (differencematte, RESOURCE, NOT_FOUND,
-        ("%s", gst_gl_context_get_error ()), (NULL));
+    GST_ELEMENT_ERROR (differencematte, RESOURCE, NOT_FOUND, ("%s",
+            gst_gl_context_get_error ()), (NULL));
     return;
   }
 
-  if (!gst_gl_shader_compile_and_check (differencematte->shader[3],
-          texture_interp_fragment_source, GST_GL_SHADER_FRAGMENT_SOURCE)) {
+  if (!gst_gl_shader_compile_with_default_v_and_check (differencematte->shader
+          [3], texture_interp_fragment_source, &filter->draw_attr_position_loc,
+          &filter->draw_attr_texture_loc)) {
     gst_gl_context_set_error (GST_GL_BASE_FILTER (differencematte)->context,
         "Failed to initialize interp shader");
-    GST_ELEMENT_ERROR (differencematte, RESOURCE, NOT_FOUND,
-        ("%s", gst_gl_context_get_error ()), (NULL));
+    GST_ELEMENT_ERROR (differencematte, RESOURCE, NOT_FOUND, ("%s",
+            gst_gl_context_get_error ()), (NULL));
     return;
   }
 }
@@ -190,7 +194,8 @@
       "Saves a background frame and replace it with a pixbuf",
       "Filippo Argiolas <filippo.argiolas@gmail.com>");
 
-  GST_GL_BASE_FILTER_CLASS (klass)->supported_gl_api = GST_GL_API_OPENGL;
+  GST_GL_BASE_FILTER_CLASS (klass)->supported_gl_api =
+      GST_GL_API_OPENGL | GST_GL_API_OPENGL3 | GST_GL_API_GLES2;
 }
 
 static void
diff --git a/ext/gl/gstgldownloadelement.c b/ext/gl/gstgldownloadelement.c
index 2423daf..94a6e7a 100644
--- a/ext/gl/gstgldownloadelement.c
+++ b/ext/gl/gstgldownloadelement.c
@@ -32,8 +32,7 @@
 G_DEFINE_TYPE_WITH_CODE (GstGLDownloadElement, gst_gl_download_element,
     GST_TYPE_GL_BASE_FILTER,
     GST_DEBUG_CATEGORY_INIT (gst_gl_download_element_debug, "gldownloadelement",
-        0, "download element");
-    );
+        0, "download element"););
 
 static gboolean gst_gl_download_element_get_unit_size (GstBaseTransform * trans,
     GstCaps * caps, gsize * size);
@@ -161,18 +160,30 @@
 gst_gl_download_element_prepare_output_buffer (GstBaseTransform * bt,
     GstBuffer * inbuf, GstBuffer ** outbuf)
 {
+  GstCaps *src_caps = gst_pad_get_current_caps (bt->srcpad);
+  GstCapsFeatures *features = NULL;
   gint i, n;
 
   *outbuf = inbuf;
 
+  if (src_caps)
+    features = gst_caps_get_features (src_caps, 0);
+
   n = gst_buffer_n_memory (*outbuf);
   for (i = 0; i < n; i++) {
     GstMemory *mem = gst_buffer_peek_memory (*outbuf, i);
 
-    if (gst_is_gl_memory (mem))
-      gst_gl_memory_download_transfer ((GstGLMemory *) mem);
+    if (gst_is_gl_memory (mem)) {
+      if (!features || gst_caps_features_contains (features,
+              GST_CAPS_FEATURE_MEMORY_SYSTEM_MEMORY)) {
+        gst_gl_memory_download_transfer ((GstGLMemory *) mem);
+      }
+    }
   }
 
+  if (src_caps)
+    gst_caps_unref (src_caps);
+
   return GST_FLOW_OK;
 }
 
diff --git a/ext/gl/gstgleffects.c b/ext/gl/gstgleffects.c
index 1ade04f..6cf5afc 100644
--- a/ext/gl/gstgleffects.c
+++ b/ext/gl/gstgleffects.c
@@ -536,8 +536,7 @@
 
 GstGLShader *
 gst_gl_effects_get_fragment_shader (GstGLEffects * effects,
-    const gchar * shader_name, const gchar * shader_source_gles2,
-    const gchar * shader_source_opengl)
+    const gchar * shader_name, const gchar * shader_source_gles2)
 {
   GstGLShader *shader = NULL;
   GstGLFilter *filter = GST_GL_FILTER (effects);
@@ -546,40 +545,24 @@
   shader = g_hash_table_lookup (effects->shaderstable, shader_name);
 
   if (!shader) {
-    if (!shader && (USING_GLES2 (context) || USING_OPENGL3 (context))) {
-      shader = gst_gl_shader_new (context);
-      if (!gst_gl_shader_compile_with_default_v_and_check (shader,
-              shader_source_gles2, &filter->draw_attr_position_loc,
-              &filter->draw_attr_texture_loc)) {
-        /* gst gl context error is already set */
-        GST_ELEMENT_ERROR (effects, RESOURCE, NOT_FOUND,
-            ("Failed to initialize %s shader, %s",
-                shader_name, gst_gl_context_get_error ()), (NULL));
-        gst_object_unref (shader);
-        shader = NULL;
-      }
+    shader = gst_gl_shader_new (context);
+    if (!gst_gl_shader_compile_with_default_v_and_check (shader,
+            shader_source_gles2, &filter->draw_attr_position_loc,
+            &filter->draw_attr_texture_loc)) {
+      /* gst gl context error is already set */
+      GST_ELEMENT_ERROR (effects, RESOURCE, NOT_FOUND,
+          ("Failed to initialize %s shader, %s",
+              shader_name, gst_gl_context_get_error ()), (NULL));
+      gst_object_unref (shader);
+      shader = NULL;
     }
-#if GST_GL_HAVE_OPENGL
-    if (!shader && USING_OPENGL (context)) {
-      shader = gst_gl_shader_new (context);
-      if (!gst_gl_shader_compile_and_check (shader,
-              shader_source_opengl, GST_GL_SHADER_FRAGMENT_SOURCE)) {
-        gst_gl_context_set_error (context, "Failed to initialize %s shader",
-            shader_name);
-        GST_ELEMENT_ERROR (effects, RESOURCE, NOT_FOUND, ("%s",
-                gst_gl_context_get_error ()), (NULL));
-        gst_object_unref (shader);
-        shader = NULL;
-      }
-    }
-#endif
-
-    if (!shader)
-      return NULL;
-
-    g_hash_table_insert (effects->shaderstable, (gchar *) shader_name, shader);
   }
 
+  if (!shader)
+    return NULL;
+
+  g_hash_table_insert (effects->shaderstable, (gchar *) shader_name, shader);
+
   return shader;
 }
 
diff --git a/ext/gl/gstgleffects.h b/ext/gl/gstgleffects.h
index 3d30067..82c33a9 100644
--- a/ext/gl/gstgleffects.h
+++ b/ext/gl/gstgleffects.h
@@ -89,7 +89,7 @@
 GType gst_gl_effects_get_type (void);
 gboolean gst_gl_effects_register_filters (GstPlugin *, GstRank);
 GstGLShader* gst_gl_effects_get_fragment_shader (GstGLEffects *effects,
-    const gchar * shader_name, const gchar * shader_source_gles2, const gchar * shader_source_opengl);
+    const gchar * shader_name, const gchar * shader_source_gles2);
 
 void gst_gl_effects_identity (GstGLEffects *effects);
 void gst_gl_effects_mirror (GstGLEffects *effects);
diff --git a/ext/gl/gstglfilterbin.c b/ext/gl/gstglfilterbin.c
index 397db73..946d66c 100644
--- a/ext/gl/gstglfilterbin.c
+++ b/ext/gl/gstglfilterbin.c
@@ -111,7 +111,6 @@
 static void
 gst_gl_filter_bin_init (GstGLFilterBin * self)
 {
-  gboolean res = TRUE;
   GstPad *pad;
 
   self->upload = gst_element_factory_make ("glupload", NULL);
@@ -119,19 +118,16 @@
   self->out_convert = gst_element_factory_make ("glcolorconvert", NULL);
   self->download = gst_element_factory_make ("gldownload", NULL);
 
-  res &= gst_bin_add (GST_BIN (self), self->upload);
-  res &= gst_bin_add (GST_BIN (self), self->in_convert);
-  res &= gst_bin_add (GST_BIN (self), self->out_convert);
-  res &= gst_bin_add (GST_BIN (self), self->download);
+  gst_bin_add (GST_BIN (self), self->upload);
+  gst_bin_add (GST_BIN (self), self->in_convert);
+  gst_bin_add (GST_BIN (self), self->out_convert);
+  gst_bin_add (GST_BIN (self), self->download);
 
-  res &= gst_element_link_pads (self->upload, "src", self->in_convert, "sink");
-  res &=
-      gst_element_link_pads (self->out_convert, "src", self->download, "sink");
+  gst_element_link_pads (self->upload, "src", self->in_convert, "sink");
+  gst_element_link_pads (self->out_convert, "src", self->download, "sink");
 
   pad = gst_element_get_static_pad (self->download, "src");
-  if (!pad) {
-    res = FALSE;
-  } else {
+  if (pad) {
     GST_DEBUG_OBJECT (self, "setting target src pad %" GST_PTR_FORMAT, pad);
     self->srcpad = gst_ghost_pad_new ("src", pad);
     gst_element_add_pad (GST_ELEMENT_CAST (self), self->srcpad);
@@ -139,9 +135,7 @@
   }
 
   pad = gst_element_get_static_pad (self->upload, "sink");
-  if (!pad) {
-    res = FALSE;
-  } else {
+  if (pad) {
     GST_DEBUG_OBJECT (self, "setting target sink pad %" GST_PTR_FORMAT, pad);
     self->sinkpad = gst_ghost_pad_new ("sink", pad);
     gst_element_add_pad (GST_ELEMENT_CAST (self), self->sinkpad);
diff --git a/ext/gl/gstglimagesink.c b/ext/gl/gstglimagesink.c
index b8fd96c..febad5d 100644
--- a/ext/gl/gstglimagesink.c
+++ b/ext/gl/gstglimagesink.c
@@ -322,14 +322,18 @@
     gboolean handle_events);
 static gboolean update_output_format (GstGLImageSink * glimage_sink);
 
+#define GST_GL_SINK_CAPS \
+    GST_VIDEO_CAPS_MAKE_WITH_FEATURES (GST_CAPS_FEATURE_MEMORY_GL_MEMORY, "RGBA")
+
+#define GST_GL_SINK_OVERLAY_CAPS \
+    GST_VIDEO_CAPS_MAKE_WITH_FEATURES (GST_CAPS_FEATURE_MEMORY_GL_MEMORY "," \
+            GST_CAPS_FEATURE_META_GST_VIDEO_OVERLAY_COMPOSITION, "RGBA")
+
 static GstStaticPadTemplate gst_glimage_sink_template =
-GST_STATIC_PAD_TEMPLATE ("sink",
+    GST_STATIC_PAD_TEMPLATE ("sink",
     GST_PAD_SINK,
     GST_PAD_ALWAYS,
-    GST_STATIC_CAPS (GST_VIDEO_CAPS_MAKE_WITH_FEATURES
-        (GST_CAPS_FEATURE_MEMORY_GL_MEMORY,
-            "RGBA"))
-    );
+    GST_STATIC_CAPS (GST_GL_SINK_CAPS ";" GST_GL_SINK_OVERLAY_CAPS));
 
 enum
 {
@@ -356,6 +360,43 @@
 static guint gst_glimage_sink_signals[LAST_SIGNAL] = { 0 };
 
 static void
+_display_size_to_stream_size (GstGLImageSink * gl_sink, gdouble x,
+    gdouble y, gdouble * stream_x, gdouble * stream_y)
+{
+  gdouble stream_width, stream_height;
+
+  stream_width = (gdouble) GST_VIDEO_INFO_WIDTH (&gl_sink->out_info);
+  stream_height = (gdouble) GST_VIDEO_INFO_HEIGHT (&gl_sink->out_info);
+
+  /* from display coordinates to stream coordinates */
+  if (gl_sink->display_rect.w > 0)
+    *stream_x =
+        (x - gl_sink->display_rect.x) / gl_sink->display_rect.w * stream_width;
+  else
+    *stream_x = 0.;
+
+  /* clip to stream size */
+  if (*stream_x < 0.)
+    *stream_x = 0.;
+  if (*stream_x > GST_VIDEO_INFO_WIDTH (&gl_sink->out_info))
+    *stream_x = GST_VIDEO_INFO_WIDTH (&gl_sink->out_info);
+
+  /* same for y-axis */
+  if (gl_sink->display_rect.h > 0)
+    *stream_y =
+        (y - gl_sink->display_rect.y) / gl_sink->display_rect.h * stream_height;
+  else
+    *stream_y = 0.;
+
+  if (*stream_y < 0.)
+    *stream_y = 0.;
+  if (*stream_y > GST_VIDEO_INFO_HEIGHT (&gl_sink->out_info))
+    *stream_y = GST_VIDEO_INFO_HEIGHT (&gl_sink->out_info);
+
+  GST_TRACE ("transform %fx%f into %fx%f", x, y, *stream_x, *stream_y);
+}
+
+static void
 gst_glimage_sink_navigation_send_event (GstNavigation * navigation, GstStructure
     * structure)
 {
@@ -364,7 +405,7 @@
   GstPad *pad = NULL;
   GstGLWindow *window;
   guint width, height;
-  gdouble x, y, xscale, yscale;
+  gdouble x, y;
 
   if (!sink->context)
     return;
@@ -380,19 +421,15 @@
 
   pad = gst_pad_get_peer (GST_VIDEO_SINK_PAD (sink));
   /* Converting pointer coordinates to the non scaled geometry */
-  if (width != GST_VIDEO_SINK_WIDTH (sink) &&
-      width != 0 && gst_structure_get_double (structure, "pointer_x", &x)) {
-    xscale = (gdouble) GST_VIDEO_SINK_WIDTH (sink) / width;
-    gst_structure_set (structure, "pointer_x", G_TYPE_DOUBLE,
-        (gdouble) x * xscale, NULL);
-  }
-  if (height != GST_VIDEO_SINK_HEIGHT (sink) &&
-      height != 0 && gst_structure_get_double (structure, "pointer_y", &y)) {
-    yscale = (gdouble) GST_VIDEO_SINK_HEIGHT (sink) / height;
-    gst_structure_set (structure, "pointer_y", G_TYPE_DOUBLE,
-        (gdouble) y * yscale, NULL);
-  }
+  if (width != 0 && gst_structure_get_double (structure, "pointer_x", &x)
+      && height != 0 && gst_structure_get_double (structure, "pointer_y", &y)) {
+    gdouble stream_x, stream_y;
 
+    _display_size_to_stream_size (sink, x, y, &stream_x, &stream_y);
+
+    gst_structure_set (structure, "pointer_x", G_TYPE_DOUBLE,
+        stream_x, "pointer_y", G_TYPE_DOUBLE, stream_y, NULL);
+  }
 
   if (GST_IS_PAD (pad) && GST_IS_EVENT (event))
     gst_pad_send_event (pad, event);
@@ -549,6 +586,7 @@
   glimage_sink->redisplay_texture = 0;
   glimage_sink->handle_events = TRUE;
   glimage_sink->ignore_alpha = TRUE;
+  glimage_sink->overlay_compositor = NULL;
 
   glimage_sink->mview_output_mode = DEFAULT_MULTIVIEW_MODE;
   glimage_sink->mview_output_flags = DEFAULT_MULTIVIEW_FLAGS;
@@ -618,7 +656,6 @@
   g_return_if_fail (GST_IS_GLIMAGE_SINK (object));
 
   glimage_sink = GST_GLIMAGE_SINK (object);
-
   g_mutex_clear (&glimage_sink->drawing_lock);
 
   GST_DEBUG ("finalized");
@@ -788,10 +825,7 @@
       gl_sink->context = NULL;
     }
 
-    if (error) {
-      g_error_free (error);
-      error = NULL;
-    }
+    g_clear_error (&error);
 
     return FALSE;
   }
@@ -908,6 +942,9 @@
       if (!_ensure_gl_setup (glimage_sink))
         return GST_STATE_CHANGE_FAILURE;
 
+      glimage_sink->overlay_compositor =
+          gst_gl_overlay_compositor_new (glimage_sink->context);
+
       g_atomic_int_set (&glimage_sink->to_quit, 0);
       break;
     case GST_STATE_CHANGE_PAUSED_TO_PLAYING:
@@ -980,6 +1017,9 @@
           g_signal_handler_disconnect (window, glimage_sink->mouse_sig_id);
         glimage_sink->mouse_sig_id = 0;
 
+        gst_object_unref (glimage_sink->overlay_compositor);
+        glimage_sink->overlay_compositor = NULL;
+
         gst_object_unref (window);
         gst_object_unref (glimage_sink->context);
         glimage_sink->context = NULL;
@@ -1045,6 +1085,8 @@
     result = tmp;
   }
 
+  result = gst_gl_overlay_compositor_add_caps (result);
+
   GST_DEBUG_OBJECT (bsink, "returning caps: %" GST_PTR_FORMAT, result);
 
   return result;
@@ -1276,6 +1318,10 @@
     next_buffer = in_buffer;
     info = &glimage_sink->in_info;
   }
+
+  gst_gl_overlay_compositor_upload_overlays (glimage_sink->overlay_compositor,
+      next_buffer);
+
   /* in_buffer invalid now */
   if (!gst_video_frame_map (&gl_frame, info, next_buffer,
           GST_MAP_READ | GST_MAP_GL)) {
@@ -1505,6 +1551,7 @@
   GstCaps *caps;
   guint size;
   gboolean need_pool;
+  GstStructure *allocation_meta = NULL;
 
   if (!_ensure_gl_setup (glimage_sink))
     return FALSE;
@@ -1529,17 +1576,37 @@
     pool = gst_gl_buffer_pool_new (glimage_sink->context);
     config = gst_buffer_pool_get_config (pool);
     gst_buffer_pool_config_set_params (config, caps, size, 0, 0);
+    gst_buffer_pool_config_add_option (config,
+        GST_BUFFER_POOL_OPTION_GL_SYNC_META);
 
-    if (!gst_buffer_pool_set_config (pool, config))
+    if (!gst_buffer_pool_set_config (pool, config)) {
+      g_object_unref (pool);
       goto config_failed;
+    }
 
     /* we need at least 2 buffer because we hold on to the last one */
     gst_query_add_allocation_pool (query, pool, size, 2, 0);
+    g_object_unref (pool);
   }
 
   if (glimage_sink->context->gl_vtable->FenceSync)
     gst_query_add_allocation_meta (query, GST_GL_SYNC_META_API_TYPE, 0);
 
+  if (glimage_sink->window_width != 0 && glimage_sink->window_height != 0) {
+    allocation_meta =
+        gst_structure_new ("GstVideoOverlayCompositionMeta",
+        "width", G_TYPE_UINT, glimage_sink->window_width,
+        "height", G_TYPE_UINT, glimage_sink->window_height, NULL);
+    GST_DEBUG ("sending alloc query with size %dx%d",
+        glimage_sink->window_width, glimage_sink->window_height);
+  }
+
+  gst_query_add_allocation_meta (query,
+      GST_VIDEO_OVERLAY_COMPOSITION_META_API_TYPE, allocation_meta);
+
+  if (allocation_meta)
+    gst_structure_free (allocation_meta);
+
   return TRUE;
 
   /* ERRORS */
@@ -1668,6 +1735,8 @@
     gl->DeleteBuffers (1, &gl_sink->vbo_indices);
     gl_sink->vbo_indices = 0;
   }
+
+  gst_gl_overlay_compositor_free_overlays (gl_sink->overlay_compositor);
 }
 
 static void
@@ -1689,6 +1758,7 @@
    * It means that they cannot change between two set_caps
    */
   gboolean do_reshape;
+  gboolean reconfigure;
 
   GST_GLIMAGE_SINK_UNLOCK (gl_sink);
   /* check if a client reshape callback is registered */
@@ -1699,6 +1769,18 @@
   width = MAX (1, width);
   height = MAX (1, height);
 
+  /* Check if we would suggest a different width/height now */
+  reconfigure = ((gl_sink->window_width != width)
+      || (gl_sink->window_height != height))
+      && (gl_sink->window_width != 0)
+      && (gl_sink->window_height != 0);
+
+  if (reconfigure) {
+    GST_DEBUG ("Sending reconfigure event on sinkpad.");
+    gst_pad_push_event (GST_BASE_SINK (gl_sink)->sinkpad,
+        gst_event_new_reconfigure ());
+  }
+
   gl_sink->window_width = width;
   gl_sink->window_height = height;
 
@@ -1844,6 +1926,8 @@
 
     if (gl_sink->ignore_alpha)
       gl->Disable (GL_BLEND);
+
+    gst_gl_overlay_compositor_draw_overlays (gl_sink->overlay_compositor);
   }
   /* end default opengl scene */
   window->is_drawing = FALSE;
diff --git a/ext/gl/gstglimagesink.h b/ext/gl/gstglimagesink.h
index a60a8b8..c4ccaae 100644
--- a/ext/gl/gstglimagesink.h
+++ b/ext/gl/gstglimagesink.h
@@ -116,6 +116,8 @@
     GstVideoMultiviewFlags mview_output_flags;
     gboolean output_mode_changed;
     GstGLStereoDownmix mview_downmix_mode;
+
+    GstGLOverlayCompositor *overlay_compositor;
 };
 
 struct _GstGLImageSinkClass
diff --git a/ext/gl/gstglmixer.c b/ext/gl/gstglmixer.c
index 119ab5a..401e4ed 100644
--- a/ext/gl/gstglmixer.c
+++ b/ext/gl/gstglmixer.c
@@ -165,13 +165,14 @@
 
     config = gst_buffer_pool_get_config (pool);
     gst_buffer_pool_config_set_params (config, caps, size, 0, 0);
-    if (!gst_buffer_pool_set_config (pool, config))
-      goto config_failed;
-  }
 
-  if (pool) {
+    if (!gst_buffer_pool_set_config (pool, config)) {
+      g_object_unref (pool);
+      goto config_failed;
+    }
+
     gst_query_add_allocation_pool (query, pool, size, 1, 0);
-    gst_object_unref (pool);
+    g_object_unref (pool);
   }
 
   /* we also support various metadata */
diff --git a/ext/gl/gstglmixerbin.c b/ext/gl/gstglmixerbin.c
index f56aad6..c6488b5 100644
--- a/ext/gl/gstglmixerbin.c
+++ b/ext/gl/gstglmixerbin.c
@@ -177,6 +177,10 @@
       gst_pad_template_new ("sink_%u", GST_PAD_SINK, GST_PAD_REQUEST,
           upload_caps));
   gst_caps_unref (upload_caps);
+
+  gst_element_class_set_metadata (element_class, "OpenGL video_mixer empty bin",
+      "Bin/Filter/Effect/Video/Mixer", "OpenGL video_mixer empty bin",
+      "Matthew Waters <matthew@centricular.com>");
 }
 
 static void
diff --git a/ext/gl/gstglstereomix.c b/ext/gl/gstglstereomix.c
index 1422823..731569a 100644
--- a/ext/gl/gstglstereomix.c
+++ b/ext/gl/gstglstereomix.c
@@ -574,7 +574,6 @@
     return FALSE;
 
   converted_buffer = mixer->primary_out;
-  v = 0;
   n = gst_buffer_n_memory (converted_buffer);
   g_assert (n == GST_VIDEO_INFO_N_PLANES (out_info) * views);
   for (v = 0; v < views; v++) {
diff --git a/ext/gl/gstglstereosplit.c b/ext/gl/gstglstereosplit.c
index a9e500c..9c56002 100644
--- a/ext/gl/gstglstereosplit.c
+++ b/ext/gl/gstglstereosplit.c
@@ -571,9 +571,11 @@
       self->context =
           gst_gl_display_get_gl_context_for_thread (self->display, NULL);
       if (!self->context) {
-        self->context = gst_gl_context_new (self->display);
-        if (!gst_gl_context_create (self->context, self->other_context, &error))
+        if (!gst_gl_display_create_context (self->display, self->other_context,
+                &self->context, &error)) {
+          GST_OBJECT_UNLOCK (self->display);
           goto context_error;
+        }
       }
     } while (!gst_gl_display_add_context (self->display, self->context));
     GST_OBJECT_UNLOCK (self->display);
diff --git a/ext/gl/gstgltestsrc.c b/ext/gl/gstgltestsrc.c
index 4dca6cb..877b09a 100644
--- a/ext/gl/gstgltestsrc.c
+++ b/ext/gl/gstgltestsrc.c
@@ -779,14 +779,16 @@
   if (!src->context) {
     GST_OBJECT_LOCK (src->display);
     do {
-      if (src->context)
+      if (src->context) {
         gst_object_unref (src->context);
+        src->context = NULL;
+      }
       /* just get a GL context.  we don't care */
       src->context =
           gst_gl_display_get_gl_context_for_thread (src->display, NULL);
       if (!src->context) {
-        src->context = gst_gl_context_new (src->display);
-        if (!gst_gl_context_create (src->context, src->other_context, &error)) {
+        if (!gst_gl_display_create_context (src->display, src->other_context,
+                &src->context, &error)) {
           GST_OBJECT_UNLOCK (src->display);
           goto context_error;
         }
diff --git a/ext/gl/gstgltransformation.c b/ext/gl/gstgltransformation.c
index 42bdf26..38b5743 100644
--- a/ext/gl/gstgltransformation.c
+++ b/ext/gl/gstgltransformation.c
@@ -67,7 +67,10 @@
   PROP_ROTATION_Z,
   PROP_SCALE_X,
   PROP_SCALE_Y,
-  PROP_MVP
+  PROP_MVP,
+  PROP_PIVOT_X,
+  PROP_PIVOT_Y,
+  PROP_PIVOT_Z,
 };
 
 #define DEBUG_INIT \
@@ -196,6 +199,27 @@
           "Scale multiplier for the Y-Axis.",
           0.0, G_MAXFLOAT, 1.0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
+  /* Pivot */
+  g_object_class_install_property (gobject_class, PROP_PIVOT_X,
+      g_param_spec_float ("pivot-x", "X Pivot",
+          "Rotation pivot point X coordinate, where 0 is the center,"
+          " -1 the lef +1 the right boarder and <-1, >1 outside.",
+          -G_MAXFLOAT, G_MAXFLOAT, 0.0,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  g_object_class_install_property (gobject_class, PROP_PIVOT_Y,
+      g_param_spec_float ("pivot-y", "Y Pivot",
+          "Rotation pivot point X coordinate, where 0 is the center,"
+          " -1 the lef +1 the right boarder and <-1, >1 outside.",
+          -G_MAXFLOAT, G_MAXFLOAT, 0.0,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  g_object_class_install_property (gobject_class, PROP_PIVOT_Z,
+      g_param_spec_float ("pivot-z", "Z Pivot",
+          "Relevant for rotation in 3D space. You look into the negative Z axis direction",
+          -G_MAXFLOAT, G_MAXFLOAT, 0.0,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
   /* MVP */
   g_object_class_install_property (gobject_class, PROP_MVP,
       g_param_spec_boxed ("mvp-matrix",
@@ -237,6 +261,13 @@
       transformation->ytranslation * 2.0,
       transformation->ztranslation * 2.0);
 
+  graphene_point3d_t pivot_vector =
+      GRAPHENE_POINT3D_INIT (-transformation->xpivot * transformation->aspect,
+      transformation->ypivot,
+      -transformation->zpivot);
+
+  graphene_point3d_t negative_pivot_vector;
+
   graphene_matrix_t model_matrix;
   graphene_matrix_t projection_matrix;
   graphene_matrix_t view_matrix;
@@ -250,9 +281,14 @@
   graphene_vec3_init (&center, 0.f, 0.f, 0.f);
   graphene_vec3_init (&up, 0.f, 1.f, 0.f);
 
-  graphene_matrix_init_scale (&model_matrix,
+  /* Translate into pivot origin */
+  graphene_matrix_init_translate (&model_matrix, &pivot_vector);
+
+  /* Scale */
+  graphene_matrix_scale (&model_matrix,
       transformation->xscale, transformation->yscale, 1.0f);
 
+  /* Rotation */
   graphene_matrix_rotate (&model_matrix,
       transformation->xrotation, graphene_vec3_x_axis ());
   graphene_matrix_rotate (&model_matrix,
@@ -260,6 +296,11 @@
   graphene_matrix_rotate (&model_matrix,
       transformation->zrotation, graphene_vec3_z_axis ());
 
+  /* Translate back from pivot origin */
+  graphene_point3d_scale (&pivot_vector, -1.0, &negative_pivot_vector);
+  graphene_matrix_translate (&model_matrix, &negative_pivot_vector);
+
+  /* Translation */
   graphene_matrix_translate (&model_matrix, &translation_vector);
 
   if (transformation->ortho) {
@@ -316,6 +357,15 @@
     case PROP_SCALE_Y:
       filter->yscale = g_value_get_float (value);
       break;
+    case PROP_PIVOT_X:
+      filter->xpivot = g_value_get_float (value);
+      break;
+    case PROP_PIVOT_Y:
+      filter->ypivot = g_value_get_float (value);
+      break;
+    case PROP_PIVOT_Z:
+      filter->zpivot = g_value_get_float (value);
+      break;
     case PROP_MVP:
       if (g_value_get_boxed (value) != NULL)
         filter->mvp_matrix = *((graphene_matrix_t *) g_value_get_boxed (value));
@@ -365,6 +415,15 @@
     case PROP_SCALE_Y:
       g_value_set_float (value, filter->yscale);
       break;
+    case PROP_PIVOT_X:
+      g_value_set_float (value, filter->xpivot);
+      break;
+    case PROP_PIVOT_Y:
+      g_value_set_float (value, filter->ypivot);
+      break;
+    case PROP_PIVOT_Z:
+      g_value_set_float (value, filter->zpivot);
+      break;
     case PROP_MVP:
       g_value_set_boxed (value, (gconstpointer) & filter->mvp_matrix);
       break;
@@ -580,12 +639,6 @@
   if (transformation->caps_change) {
     _upload_vertices (transformation);
     _bind_buffer (transformation);
-
-    if (gl->GenVertexArrays) {
-      gl->BindVertexArray (0);
-      gl->BindBuffer (GL_ELEMENT_ARRAY_BUFFER, 0);
-      gl->BindBuffer (GL_ARRAY_BUFFER, 0);
-    }
   } else if (!gl->GenVertexArrays) {
     _bind_buffer (transformation);
   }
diff --git a/ext/gl/gstgltransformation.h b/ext/gl/gstgltransformation.h
index b5eaeb6..6b9051a 100644
--- a/ext/gl/gstgltransformation.h
+++ b/ext/gl/gstgltransformation.h
@@ -60,6 +60,10 @@
     gfloat ytranslation;
     gfloat ztranslation;
 
+    gfloat xpivot;
+    gfloat ypivot;
+    gfloat zpivot;
+
     /* perspective */
     gfloat fov;
     gfloat aspect;
diff --git a/ext/gl/gstgluploadelement.c b/ext/gl/gstgluploadelement.c
index be01143..0b35ec9 100644
--- a/ext/gl/gstgluploadelement.c
+++ b/ext/gl/gstgluploadelement.c
@@ -143,8 +143,30 @@
 _gst_gl_upload_element_propose_allocation (GstBaseTransform * bt,
     GstQuery * decide_query, GstQuery * query)
 {
+  guint alloc_index;
+  gboolean alloc_has_overlay_meta;
   GstGLUploadElement *upload = GST_GL_UPLOAD_ELEMENT (bt);
 
+  if (!upload->upload)
+    return FALSE;
+
+  alloc_has_overlay_meta =
+      gst_query_find_allocation_meta (decide_query,
+      GST_VIDEO_OVERLAY_COMPOSITION_META_API_TYPE, &alloc_index);
+
+  if (alloc_has_overlay_meta) {
+    const GstStructure *params;
+    GST_DEBUG ("adding allocation meta in upload for textoverlay");
+
+    /* read window size from decide_query */
+    gst_query_parse_nth_allocation_meta (decide_query, alloc_index, &params);
+
+    /* it does not matter if params are NULL (no known window size), forward
+     * the meta in any case */
+    gst_query_add_allocation_meta (query,
+        GST_VIDEO_OVERLAY_COMPOSITION_META_API_TYPE, params);
+  }
+
   gst_gl_upload_propose_allocation (upload->upload, decide_query, query);
 
   return TRUE;
diff --git a/ext/gl/gstglvideomixer.c b/ext/gl/gstglvideomixer.c
index 6ae693d..d17a744 100644
--- a/ext/gl/gstglvideomixer.c
+++ b/ext/gl/gstglvideomixer.c
@@ -71,6 +71,151 @@
   return mixer_background_type;
 }
 
+typedef struct _GstGLMixerControlBindingProxy GstGLMixerControlBindingProxy;
+typedef struct _GstGLMixerControlBindingProxyClass
+    GstGLMixerControlBindingProxyClass;
+
+struct _GstGLMixerControlBindingProxy
+{
+  GstControlBinding parent;
+
+  GstObject *ref_object;
+  const gchar *property_name;
+};
+
+struct _GstGLMixerControlBindingProxyClass
+{
+  GstControlBindingClass parent_class;
+};
+
+GType gst_gl_mixer_control_binding_proxy_get_type (void);
+#define GST_TYPE_GL_MIXER_CONTROL_BINDING \
+  (gst_gl_mixer_control_binding_proxy_get_type())
+
+G_DEFINE_TYPE (GstGLMixerControlBindingProxy,
+    gst_gl_mixer_control_binding_proxy, GST_TYPE_CONTROL_BINDING);
+
+static void
+gst_gl_mixer_control_binding_proxy_init (GstGLMixerControlBindingProxy * self)
+{
+}
+
+static gboolean
+gst_gl_mixer_control_binding_proxy_sync_values (GstControlBinding * binding,
+    GstObject * object, GstClockTime timestamp, GstClockTime last_sync)
+{
+  GstGLMixerControlBindingProxy *self = (GstGLMixerControlBindingProxy *)
+      binding;
+  GstControlBinding *ref_binding;
+  gboolean ret = TRUE;
+
+  ref_binding = gst_object_get_control_binding (self->ref_object,
+      self->property_name);
+
+  if (ref_binding) {
+    ret = gst_control_binding_sync_values (ref_binding, self->ref_object,
+        timestamp, last_sync);
+    gst_object_unref (ref_binding);
+  }
+
+  return ret;
+}
+
+static GValue *
+gst_gl_mixer_control_binding_proxy_get_value (GstControlBinding * binding,
+    GstClockTime timestamp)
+{
+  GstGLMixerControlBindingProxy *self = (GstGLMixerControlBindingProxy *)
+      binding;
+  GstControlBinding *ref_binding;
+  GValue *ret = NULL;
+
+  ref_binding = gst_object_get_control_binding (self->ref_object,
+      self->property_name);
+
+  if (ref_binding) {
+    ret = gst_control_binding_get_value (ref_binding, timestamp);
+    gst_object_unref (ref_binding);
+  }
+
+  return ret;
+}
+
+static gboolean
+gst_gl_mixer_control_binding_proxy_get_value_array (GstControlBinding * binding,
+    GstClockTime timestamp, GstClockTime interval, guint n_values,
+    gpointer values)
+{
+  GstGLMixerControlBindingProxy *self = (GstGLMixerControlBindingProxy *)
+      binding;
+  GstControlBinding *ref_binding;
+  gboolean ret = FALSE;
+
+  ref_binding = gst_object_get_control_binding (self->ref_object,
+      self->property_name);
+
+  if (ref_binding) {
+    ret = gst_control_binding_get_value_array (ref_binding, timestamp,
+        interval, n_values, values);
+    gst_object_unref (ref_binding);
+  }
+
+  return ret;
+}
+
+static gboolean
+gst_gl_mixer_control_binding_proxy_get_g_value_array (GstControlBinding *
+    binding, GstClockTime timestamp, GstClockTime interval, guint n_values,
+    GValue * values)
+{
+  GstGLMixerControlBindingProxy *self = (GstGLMixerControlBindingProxy *)
+      binding;
+  GstControlBinding *ref_binding;
+  gboolean ret = FALSE;
+
+  ref_binding = gst_object_get_control_binding (self->ref_object,
+      self->property_name);
+
+  if (ref_binding) {
+    ret = gst_control_binding_get_g_value_array (ref_binding, timestamp,
+        interval, n_values, values);
+    gst_object_unref (ref_binding);
+  }
+
+  return ret;
+}
+
+
+static void
+    gst_gl_mixer_control_binding_proxy_class_init
+    (GstGLMixerControlBindingProxyClass * klass)
+{
+  GstControlBindingClass *cb_class = GST_CONTROL_BINDING_CLASS (klass);
+
+  cb_class->sync_values = gst_gl_mixer_control_binding_proxy_sync_values;
+  cb_class->get_value = gst_gl_mixer_control_binding_proxy_get_value;
+  cb_class->get_value_array =
+      gst_gl_mixer_control_binding_proxy_get_value_array;
+  cb_class->get_g_value_array =
+      gst_gl_mixer_control_binding_proxy_get_g_value_array;
+}
+
+static GstControlBinding *
+gst_gl_mixer_control_binding_proxy_new (GstObject * object,
+    const gchar * property_name, GstObject * ref_object,
+    const gchar * ref_property_name)
+{
+  GstGLMixerControlBindingProxy *self =
+      g_object_new (GST_TYPE_GL_MIXER_CONTROL_BINDING, "object", object,
+      "name", property_name, NULL);
+
+  self->ref_object = ref_object;
+  self->property_name = ref_property_name;
+
+  return (GstControlBinding *) self;
+}
+
+
 #define DEFAULT_PAD_XPOS   0
 #define DEFAULT_PAD_YPOS   0
 #define DEFAULT_PAD_WIDTH  0
@@ -94,11 +239,6 @@
 static void gst_gl_video_mixer_input_set_property (GObject * object,
     guint prop_id, const GValue * value, GParamSpec * pspec);
 
-static GstFlowReturn gst_gl_video_mixer_input_chain (GstPad * pad,
-    GstObject * parent, GstBuffer * buffer);
-static GstFlowReturn gst_gl_video_mixer_input_event (GstPad * pad,
-    GstObject * parent, GstEvent * event);
-
 typedef struct _GstGLVideoMixerInput GstGLVideoMixerInput;
 typedef GstGhostPadClass GstGLVideoMixerInputClass;
 
@@ -118,9 +258,6 @@
 static void
 gst_gl_video_mixer_input_init (GstGLVideoMixerInput * self)
 {
-  GstPad *pad = GST_PAD (self);
-
-  gst_pad_set_event_function (pad, gst_gl_video_mixer_input_event);
 }
 
 static void
@@ -177,51 +314,6 @@
     g_object_set_property (G_OBJECT (self->mixer_pad), pspec->name, value);
 }
 
-static GstFlowReturn
-gst_gl_video_mixer_input_chain (GstPad * pad, GstObject * parent,
-    GstBuffer * buffer)
-{
-  GstGLVideoMixerInput *self = (GstGLVideoMixerInput *) pad;
-  GstClockTime timestamp, stream_time;
-//  gdouble alpha;
-
-  timestamp = GST_BUFFER_TIMESTAMP (buffer);
-
-  stream_time =
-      gst_segment_to_stream_time (&self->segment, GST_FORMAT_TIME, timestamp);
-
-  gst_object_sync_values (GST_OBJECT (self), stream_time);
-#if 0
-  /* FIXME: implement no-upload on alpha = 0 */
-  g_object_get (self, "alpha", &alpha, NULL);
-
-  if (alpha <= 0.0) {
-    GST_DEBUG_OBJECT (self, "dropping buffer %" GST_PTR_FORMAT
-        " due to alpha value %f", buffer, alpha);
-    gst_buffer_unref (buffer);
-    return GST_FLOW_OK;
-  }
-#endif
-  return gst_proxy_pad_chain_default (pad, parent, buffer);
-}
-
-static GstFlowReturn
-gst_gl_video_mixer_input_event (GstPad * pad, GstObject * parent,
-    GstEvent * event)
-{
-  GstGLVideoMixerInput *self = (GstGLVideoMixerInput *) pad;
-
-  switch (GST_EVENT_TYPE (event)) {
-    case GST_EVENT_SEGMENT:
-      gst_event_copy_segment (event, &self->segment);
-      break;
-    default:
-      break;
-  }
-
-  return gst_pad_event_default (pad, parent, event);
-}
-
 static GstGhostPad *
 _create_video_mixer_input (GstGLMixerBin * self, GstPad * mixer_pad)
 {
@@ -229,13 +321,25 @@
       g_object_new (gst_gl_video_mixer_input_get_type (), "name",
       GST_OBJECT_NAME (mixer_pad), "direction", GST_PAD_DIRECTION (mixer_pad),
       NULL);
+  GstControlBinding *cb;
 
   if (!gst_ghost_pad_construct (GST_GHOST_PAD (input))) {
     gst_object_unref (input);
     return NULL;
   }
+#define ADD_PROXY_CONTROL_BINDING(prop)                                \
+  cb = gst_gl_mixer_control_binding_proxy_new (GST_OBJECT (mixer_pad), \
+      G_STRINGIFY (prop), GST_OBJECT (input), G_STRINGIFY (prop));     \
+  gst_object_add_control_binding (GST_OBJECT (mixer_pad), cb)
 
-  gst_pad_set_chain_function (GST_PAD (input), gst_gl_video_mixer_input_chain);
+  ADD_PROXY_CONTROL_BINDING (zorder);
+  ADD_PROXY_CONTROL_BINDING (xpos);
+  ADD_PROXY_CONTROL_BINDING (ypos);
+  ADD_PROXY_CONTROL_BINDING (width);
+  ADD_PROXY_CONTROL_BINDING (height);
+  ADD_PROXY_CONTROL_BINDING (alpha);
+
+#undef ADD_PROXY_CONTROL_BINDING
 
   input->mixer_pad = mixer_pad;
 
@@ -273,6 +377,7 @@
 gst_gl_video_mixer_bin_class_init (GstGLVideoMixerBinClass * klass)
 {
   GstGLMixerBinClass *mixer_class = GST_GL_MIXER_BIN_CLASS (klass);
+  GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
   GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
 
   mixer_class->create_input_pad = _create_video_mixer_input;
@@ -284,6 +389,10 @@
       g_param_spec_enum ("background", "Background", "Background type",
           GST_GL_TYPE_VIDEO_MIXER_BACKGROUND,
           DEFAULT_BACKGROUND, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  gst_element_class_set_metadata (element_class, "OpenGL video_mixer bin",
+      "Bin/Filter/Effect/Video/Compositor", "OpenGL video_mixer bin",
+      "Matthew Waters <matthew@centricular.com>");
 }
 
 static void
diff --git a/ext/gl/gstglviewconvert.c b/ext/gl/gstglviewconvert.c
index 6dcad7d..5a3c9fe 100644
--- a/ext/gl/gstglviewconvert.c
+++ b/ext/gl/gstglviewconvert.c
@@ -278,6 +278,7 @@
     case PROP_OUTPUT_DOWNMIX_MODE:
       g_object_set_property (G_OBJECT (convert->viewconvert), pspec->name,
           value);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
diff --git a/ext/gl/gstopengl.c b/ext/gl/gstopengl.c
index ebc7f13..1fad0a2 100644
--- a/ext/gl/gstopengl.c
+++ b/ext/gl/gstopengl.c
@@ -89,7 +89,7 @@
 #endif
 
 #ifdef USE_EGL_RPI
-#include <bcm_host.h>
+extern void bcm_host_init (void);
 #endif
 
 #if GST_GL_HAVE_WINDOW_X11
diff --git a/ext/gme/Makefile.in b/ext/gme/Makefile.in
index 5d7e0f0..cb1cecc 100644
--- a/ext/gme/Makefile.in
+++ b/ext/gme/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/gme
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -227,6 +237,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -244,8 +255,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -274,8 +283,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -323,11 +330,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -511,6 +521,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -589,7 +600,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -629,6 +645,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -760,7 +777,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/gme/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/gme/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1069,6 +1085,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/ext/gsettings/Makefile.in b/ext/gsettings/Makefile.in
index 9d873ec..fa5f405 100644
--- a/ext/gsettings/Makefile.in
+++ b/ext/gsettings/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,9 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/gsettings
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(srcdir)/org.freedesktop.gstreamer.default-elements.gschema.xml.in \
-	$(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 \
@@ -121,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =  \
@@ -238,6 +247,9 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in \
+	$(srcdir)/org.freedesktop.gstreamer.default-elements.gschema.xml.in \
+	$(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -255,8 +267,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -285,8 +295,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -334,11 +342,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -522,6 +533,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -600,7 +612,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -640,6 +657,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -795,7 +813,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/gsettings/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/gsettings/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1155,6 +1172,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 org.freedesktop.gstreamer-@GST_API_VERSION@.default-elements.gschema.xml: org.freedesktop.gstreamer.default-elements.gschema.xml
 	cp org.freedesktop.gstreamer.default-elements.gschema.xml org.freedesktop.gstreamer-@GST_API_VERSION@.default-elements.gschema.xml
diff --git a/ext/gsm/Makefile.in b/ext/gsm/Makefile.in
index d8df9e3..4eaa83a 100644
--- a/ext/gsm/Makefile.in
+++ b/ext/gsm/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/gsm
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -228,6 +238,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -245,8 +256,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -275,8 +284,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -324,11 +331,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -512,6 +522,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -590,7 +601,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -630,6 +646,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -769,7 +786,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/gsm/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/gsm/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1094,6 +1110,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/ext/gsm/gstgsmdec.c b/ext/gsm/gstgsmdec.c
index 33b3950..e02631f 100644
--- a/ext/gsm/gstgsmdec.c
+++ b/ext/gsm/gstgsmdec.c
@@ -105,6 +105,9 @@
 gst_gsmdec_init (GstGSMDec * gsmdec)
 {
   gst_audio_decoder_set_needs_format (GST_AUDIO_DECODER (gsmdec), TRUE);
+  gst_audio_decoder_set_use_default_pad_acceptcaps (GST_AUDIO_DECODER_CAST
+      (gsmdec), TRUE);
+  GST_PAD_SET_ACCEPT_TEMPLATE (GST_AUDIO_DECODER_SINK_PAD (gsmdec));
 }
 
 static gboolean
diff --git a/ext/gsm/gstgsmenc.c b/ext/gsm/gstgsmenc.c
index d9a0aee..54ede2e 100644
--- a/ext/gsm/gstgsmenc.c
+++ b/ext/gsm/gstgsmenc.c
@@ -97,6 +97,7 @@
 static void
 gst_gsmenc_init (GstGSMEnc * gsmenc)
 {
+  GST_PAD_SET_ACCEPT_TEMPLATE (GST_AUDIO_ENCODER_SINK_PAD (gsmenc));
 }
 
 static gboolean
diff --git a/ext/gtk/Makefile.am b/ext/gtk/Makefile.am
index 45d0be0..f2e8c55 100644
--- a/ext/gtk/Makefile.am
+++ b/ext/gtk/Makefile.am
@@ -8,8 +8,12 @@
 
 # source
 sources = \
+	gtkgstbasewidget.c \
+	gtkgstbasewidget.h \
 	gtkgstwidget.c \
 	gtkgstwidget.h \
+	gstgtkbasesink.c \
+	gstgtkbasesink.h \
 	gstgtksink.c \
 	gstgtksink.h \
 	gstplugin.c \
diff --git a/ext/gtk/Makefile.in b/ext/gtk/Makefile.in
index c9fa2c8..a527aa7 100644
--- a/ext/gtk/Makefile.in
+++ b/ext/gtk/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -15,7 +15,17 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -84,8 +94,6 @@
 @USE_GL_TRUE@@USE_GTK3_GL_TRUE@	$(top_builddir)/gst-libs/gst/gl/libgstgl-$(GST_API_VERSION).la
 
 subdir = ext/gtk
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -123,6 +131,7 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -159,11 +168,15 @@
 am__DEPENDENCIES_1 =
 libgstgtksink_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_2)
-am__libgstgtksink_la_SOURCES_DIST = gtkgstwidget.c gtkgstwidget.h \
-	gstgtksink.c gstgtksink.h gstplugin.c gstgtkglsink.c \
-	gstgtkglsink.h gtkgstglwidget.c gtkgstglwidget.h
+am__libgstgtksink_la_SOURCES_DIST = gtkgstbasewidget.c \
+	gtkgstbasewidget.h gtkgstwidget.c gtkgstwidget.h \
+	gstgtkbasesink.c gstgtkbasesink.h gstgtksink.c gstgtksink.h \
+	gstplugin.c gstgtkglsink.c gstgtkglsink.h gtkgstglwidget.c \
+	gtkgstglwidget.h
 am__objects_1 =
-am__objects_2 = libgstgtksink_la-gtkgstwidget.lo \
+am__objects_2 = libgstgtksink_la-gtkgstbasewidget.lo \
+	libgstgtksink_la-gtkgstwidget.lo \
+	libgstgtksink_la-gstgtkbasesink.lo \
 	libgstgtksink_la-gstgtksink.lo libgstgtksink_la-gstplugin.lo \
 	$(am__objects_1)
 @USE_GL_TRUE@@USE_GTK3_GL_TRUE@am__objects_3 = libgstgtksink_la-gstgtkglsink.lo \
@@ -238,6 +251,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -255,8 +269,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -285,8 +297,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -334,11 +344,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -522,6 +535,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -600,7 +614,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -640,6 +659,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -759,8 +779,12 @@
 
 # source
 sources = \
+	gtkgstbasewidget.c \
+	gtkgstbasewidget.h \
 	gtkgstwidget.c \
 	gtkgstwidget.h \
+	gstgtkbasesink.c \
+	gstgtkbasesink.h \
 	gstgtksink.c \
 	gstgtksink.h \
 	gstplugin.c \
@@ -798,7 +822,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/gtk/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/gtk/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -896,9 +919,11 @@
 distclean-compile:
 	-rm -f *.tab.c
 
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstgtksink_la-gstgtkbasesink.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstgtksink_la-gstgtkglsink.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstgtksink_la-gstgtksink.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstgtksink_la-gstplugin.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstgtksink_la-gtkgstbasewidget.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstgtksink_la-gtkgstglwidget.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstgtksink_la-gtkgstwidget.Plo@am__quote@
 
@@ -926,6 +951,13 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
+libgstgtksink_la-gtkgstbasewidget.lo: gtkgstbasewidget.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgtksink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgtksink_la_CFLAGS) $(CFLAGS) -MT libgstgtksink_la-gtkgstbasewidget.lo -MD -MP -MF $(DEPDIR)/libgstgtksink_la-gtkgstbasewidget.Tpo -c -o libgstgtksink_la-gtkgstbasewidget.lo `test -f 'gtkgstbasewidget.c' || echo '$(srcdir)/'`gtkgstbasewidget.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstgtksink_la-gtkgstbasewidget.Tpo $(DEPDIR)/libgstgtksink_la-gtkgstbasewidget.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gtkgstbasewidget.c' object='libgstgtksink_la-gtkgstbasewidget.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 $(libgstgtksink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgtksink_la_CFLAGS) $(CFLAGS) -c -o libgstgtksink_la-gtkgstbasewidget.lo `test -f 'gtkgstbasewidget.c' || echo '$(srcdir)/'`gtkgstbasewidget.c
+
 libgstgtksink_la-gtkgstwidget.lo: gtkgstwidget.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgtksink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgtksink_la_CFLAGS) $(CFLAGS) -MT libgstgtksink_la-gtkgstwidget.lo -MD -MP -MF $(DEPDIR)/libgstgtksink_la-gtkgstwidget.Tpo -c -o libgstgtksink_la-gtkgstwidget.lo `test -f 'gtkgstwidget.c' || echo '$(srcdir)/'`gtkgstwidget.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstgtksink_la-gtkgstwidget.Tpo $(DEPDIR)/libgstgtksink_la-gtkgstwidget.Plo
@@ -933,6 +965,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 $(libgstgtksink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgtksink_la_CFLAGS) $(CFLAGS) -c -o libgstgtksink_la-gtkgstwidget.lo `test -f 'gtkgstwidget.c' || echo '$(srcdir)/'`gtkgstwidget.c
 
+libgstgtksink_la-gstgtkbasesink.lo: gstgtkbasesink.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgtksink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgtksink_la_CFLAGS) $(CFLAGS) -MT libgstgtksink_la-gstgtkbasesink.lo -MD -MP -MF $(DEPDIR)/libgstgtksink_la-gstgtkbasesink.Tpo -c -o libgstgtksink_la-gstgtkbasesink.lo `test -f 'gstgtkbasesink.c' || echo '$(srcdir)/'`gstgtkbasesink.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstgtksink_la-gstgtkbasesink.Tpo $(DEPDIR)/libgstgtksink_la-gstgtkbasesink.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstgtkbasesink.c' object='libgstgtksink_la-gstgtkbasesink.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 $(libgstgtksink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgtksink_la_CFLAGS) $(CFLAGS) -c -o libgstgtksink_la-gstgtkbasesink.lo `test -f 'gstgtkbasesink.c' || echo '$(srcdir)/'`gstgtkbasesink.c
+
 libgstgtksink_la-gstgtksink.lo: gstgtksink.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgtksink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgtksink_la_CFLAGS) $(CFLAGS) -MT libgstgtksink_la-gstgtksink.lo -MD -MP -MF $(DEPDIR)/libgstgtksink_la-gstgtksink.Tpo -c -o libgstgtksink_la-gstgtksink.lo `test -f 'gstgtksink.c' || echo '$(srcdir)/'`gstgtksink.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstgtksink_la-gstgtksink.Tpo $(DEPDIR)/libgstgtksink_la-gstgtksink.Plo
@@ -1180,6 +1219,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-libLTLIBRARIES uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/ext/gtk/gstgtkbasesink.c b/ext/gtk/gstgtkbasesink.c
new file mode 100644
index 0000000..d0744a0
--- /dev/null
+++ b/ext/gtk/gstgtkbasesink.c
@@ -0,0 +1,400 @@
+/*
+ * GStreamer
+ * Copyright (C) 2015 Matthew Waters <matthew@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.
+ */
+
+/**
+ * SECTION:gtkgstsink
+ *
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "gstgtkbasesink.h"
+
+GST_DEBUG_CATEGORY (gst_debug_gtk_base_sink);
+#define GST_CAT_DEFAULT gst_debug_gtk_base_sink
+
+#define DEFAULT_FORCE_ASPECT_RATIO  TRUE
+#define DEFAULT_PAR_N               0
+#define DEFAULT_PAR_D               1
+#define DEFAULT_IGNORE_ALPHA        TRUE
+
+static void gst_gtk_base_sink_finalize (GObject * object);
+static void gst_gtk_base_sink_set_property (GObject * object, guint prop_id,
+    const GValue * value, GParamSpec * param_spec);
+static void gst_gtk_base_sink_get_property (GObject * object, guint prop_id,
+    GValue * value, GParamSpec * param_spec);
+
+static gboolean gst_gtk_base_sink_start (GstBaseSink * bsink);
+
+static GstStateChangeReturn
+gst_gtk_base_sink_change_state (GstElement * element,
+    GstStateChange transition);
+
+static void gst_gtk_base_sink_get_times (GstBaseSink * bsink, GstBuffer * buf,
+    GstClockTime * start, GstClockTime * end);
+static gboolean gst_gtk_base_sink_set_caps (GstBaseSink * bsink,
+    GstCaps * caps);
+static GstFlowReturn gst_gtk_base_sink_show_frame (GstVideoSink * bsink,
+    GstBuffer * buf);
+
+static void
+gst_gtk_base_sink_navigation_interface_init (GstNavigationInterface * iface);
+
+enum
+{
+  PROP_0,
+  PROP_WIDGET,
+  PROP_FORCE_ASPECT_RATIO,
+  PROP_PIXEL_ASPECT_RATIO,
+  PROP_IGNORE_ALPHA,
+};
+
+#define gst_gtk_base_sink_parent_class parent_class
+G_DEFINE_ABSTRACT_TYPE_WITH_CODE (GstGtkBaseSink, gst_gtk_base_sink,
+    GST_TYPE_VIDEO_SINK,
+    G_IMPLEMENT_INTERFACE (GST_TYPE_NAVIGATION,
+        gst_gtk_base_sink_navigation_interface_init);
+    GST_DEBUG_CATEGORY_INIT (gst_debug_gtk_base_sink,
+        "gtkbasesink", 0, "Gtk Video Sink base class"));
+
+static void
+gst_gtk_base_sink_class_init (GstGtkBaseSinkClass * klass)
+{
+  GObjectClass *gobject_class;
+  GstElementClass *gstelement_class;
+  GstBaseSinkClass *gstbasesink_class;
+  GstVideoSinkClass *gstvideosink_class;
+
+  gobject_class = (GObjectClass *) klass;
+  gstelement_class = (GstElementClass *) klass;
+  gstbasesink_class = (GstBaseSinkClass *) klass;
+  gstvideosink_class = (GstVideoSinkClass *) klass;
+
+  gobject_class->set_property = gst_gtk_base_sink_set_property;
+  gobject_class->get_property = gst_gtk_base_sink_get_property;
+
+  g_object_class_install_property (gobject_class, PROP_WIDGET,
+      g_param_spec_object ("widget", "Gtk Widget",
+          "The GtkWidget to place in the widget hierarchy "
+          "(must only be get from the GTK main thread)",
+          GTK_TYPE_WIDGET, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
+
+  g_object_class_install_property (gobject_class, PROP_FORCE_ASPECT_RATIO,
+      g_param_spec_boolean ("force-aspect-ratio",
+          "Force aspect ratio",
+          "When enabled, scaling will respect original aspect ratio",
+          DEFAULT_FORCE_ASPECT_RATIO,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  g_object_class_install_property (gobject_class, PROP_PIXEL_ASPECT_RATIO,
+      gst_param_spec_fraction ("pixel-aspect-ratio", "Pixel Aspect Ratio",
+          "The pixel aspect ratio of the device", DEFAULT_PAR_N, DEFAULT_PAR_D,
+          G_MAXINT, 1, 1, 1, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  g_object_class_install_property (gobject_class, PROP_IGNORE_ALPHA,
+      g_param_spec_boolean ("ignore-alpha", "Ignore Alpha",
+          "When enabled, alpha will be ignored and converted to black",
+          DEFAULT_IGNORE_ALPHA, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  gobject_class->finalize = gst_gtk_base_sink_finalize;
+
+  gstelement_class->change_state = gst_gtk_base_sink_change_state;
+  gstbasesink_class->set_caps = gst_gtk_base_sink_set_caps;
+  gstbasesink_class->get_times = gst_gtk_base_sink_get_times;
+  gstbasesink_class->start = gst_gtk_base_sink_start;
+
+  gstvideosink_class->show_frame = gst_gtk_base_sink_show_frame;
+}
+
+static void
+gst_gtk_base_sink_init (GstGtkBaseSink * gtk_sink)
+{
+  gtk_sink->force_aspect_ratio = DEFAULT_FORCE_ASPECT_RATIO;
+  gtk_sink->par_n = DEFAULT_PAR_N;
+  gtk_sink->par_d = DEFAULT_PAR_D;
+  gtk_sink->ignore_alpha = DEFAULT_IGNORE_ALPHA;
+}
+
+static void
+gst_gtk_base_sink_finalize (GObject * object)
+{
+  GstGtkBaseSink *gtk_sink = GST_GTK_BASE_SINK (object);;
+
+  g_clear_object (&gtk_sink->widget);
+
+  G_OBJECT_CLASS (parent_class)->finalize (object);
+}
+
+static void
+widget_destroy_cb (GtkWidget * widget, GstGtkBaseSink * gtk_sink)
+{
+  GST_OBJECT_LOCK (gtk_sink);
+  g_clear_object (&gtk_sink->widget);
+  GST_OBJECT_UNLOCK (gtk_sink);
+}
+
+static GtkGstBaseWidget *
+gst_gtk_base_sink_get_widget (GstGtkBaseSink * gtk_sink)
+{
+  if (gtk_sink->widget != NULL)
+    return gtk_sink->widget;
+
+  /* Ensure GTK is initialized, this has no side effect if it was already
+   * initialized. Also, we do that lazily, so the application can be first */
+  if (!gtk_init_check (NULL, NULL)) {
+    GST_ERROR_OBJECT (gtk_sink, "Could not ensure GTK initialization.");
+    return NULL;
+  }
+
+  g_assert (GST_GTK_BASE_SINK_GET_CLASS (gtk_sink)->create_widget);
+  gtk_sink->widget = (GtkGstBaseWidget *)
+      GST_GTK_BASE_SINK_GET_CLASS (gtk_sink)->create_widget ();
+
+  gtk_sink->bind_aspect_ratio =
+      g_object_bind_property (gtk_sink, "force-aspect-ratio", gtk_sink->widget,
+      "force-aspect-ratio", G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE);
+  gtk_sink->bind_pixel_aspect_ratio =
+      g_object_bind_property (gtk_sink, "pixel-aspect-ratio", gtk_sink->widget,
+      "pixel-aspect-ratio", G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE);
+  gtk_sink->bind_ignore_alpha =
+      g_object_bind_property (gtk_sink, "ignore-alpha", gtk_sink->widget,
+      "ignore-alpha", G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE);
+
+  /* Take the floating ref, other wise the destruction of the container will
+   * make this widget disapear possibly before we are done. */
+  gst_object_ref_sink (gtk_sink->widget);
+  g_signal_connect (gtk_sink->widget, "destroy",
+      G_CALLBACK (widget_destroy_cb), gtk_sink);
+
+  /* back pointer */
+  gtk_gst_base_widget_set_element (GTK_GST_BASE_WIDGET (gtk_sink->widget),
+      GST_ELEMENT (gtk_sink));
+
+  return gtk_sink->widget;
+}
+
+static void
+gst_gtk_base_sink_get_property (GObject * object, guint prop_id,
+    GValue * value, GParamSpec * pspec)
+{
+  GstGtkBaseSink *gtk_sink = GST_GTK_BASE_SINK (object);
+
+  switch (prop_id) {
+    case PROP_WIDGET:
+      g_value_set_object (value, gst_gtk_base_sink_get_widget (gtk_sink));
+      break;
+    case PROP_FORCE_ASPECT_RATIO:
+      g_value_set_boolean (value, gtk_sink->force_aspect_ratio);
+      break;
+    case PROP_PIXEL_ASPECT_RATIO:
+      gst_value_set_fraction (value, gtk_sink->par_n, gtk_sink->par_d);
+      break;
+    case PROP_IGNORE_ALPHA:
+      g_value_set_boolean (value, gtk_sink->ignore_alpha);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
+}
+
+static void
+gst_gtk_base_sink_set_property (GObject * object, guint prop_id,
+    const GValue * value, GParamSpec * pspec)
+{
+  GstGtkBaseSink *gtk_sink = GST_GTK_BASE_SINK (object);
+
+  switch (prop_id) {
+    case PROP_FORCE_ASPECT_RATIO:
+      gtk_sink->force_aspect_ratio = g_value_get_boolean (value);
+      break;
+    case PROP_PIXEL_ASPECT_RATIO:
+      gtk_sink->par_n = gst_value_get_fraction_numerator (value);
+      gtk_sink->par_d = gst_value_get_fraction_denominator (value);
+      break;
+    case PROP_IGNORE_ALPHA:
+      gtk_sink->ignore_alpha = g_value_get_boolean (value);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
+}
+
+static void
+gst_gtk_base_sink_navigation_send_event (GstNavigation * navigation,
+    GstStructure * structure)
+{
+  GstGtkBaseSink *sink = GST_GTK_BASE_SINK (navigation);
+  GstEvent *event;
+  GstPad *pad;
+
+  event = gst_event_new_navigation (structure);
+  pad = gst_pad_get_peer (GST_VIDEO_SINK_PAD (sink));
+
+  GST_TRACE_OBJECT (sink, "navigation event %" GST_PTR_FORMAT, structure);
+
+  if (GST_IS_PAD (pad) && GST_IS_EVENT (event))
+    gst_pad_send_event (pad, event);
+
+  gst_object_unref (pad);
+}
+
+static void
+gst_gtk_base_sink_navigation_interface_init (GstNavigationInterface * iface)
+{
+  iface->send_event = gst_gtk_base_sink_navigation_send_event;
+}
+
+static gboolean
+gst_gtk_base_sink_start (GstBaseSink * bsink)
+{
+  GstGtkBaseSink *gst_sink = GST_GTK_BASE_SINK (bsink);
+  GstGtkBaseSinkClass *klass = GST_GTK_BASE_SINK_GET_CLASS (bsink);
+  GtkWidget *toplevel;
+
+  if (gst_gtk_base_sink_get_widget (gst_sink) == NULL)
+    return FALSE;
+
+  /* After this point, gtk_sink->widget will always be set */
+
+  toplevel = gtk_widget_get_toplevel (GTK_WIDGET (gst_sink->widget));
+  if (!gtk_widget_is_toplevel (toplevel)) {
+    GtkWidget *window;
+
+    /* sanity check */
+    g_assert (klass->window_title);
+
+    /* User did not add widget its own UI, let's popup a new GtkWindow to
+     * make gst-launch-1.0 work. */
+    window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+    gtk_window_set_default_size (GTK_WINDOW (window), 640, 480);
+    gtk_window_set_title (GTK_WINDOW (window), klass->window_title);
+    gtk_container_add (GTK_CONTAINER (window), toplevel);
+    gtk_widget_show_all (window);
+  }
+
+  return TRUE;
+}
+
+static GstStateChangeReturn
+gst_gtk_base_sink_change_state (GstElement * element, GstStateChange transition)
+{
+  GstGtkBaseSink *gtk_sink = GST_GTK_BASE_SINK (element);
+  GstStateChangeReturn ret = GST_STATE_CHANGE_SUCCESS;
+
+  GST_DEBUG_OBJECT (element, "changing state: %s => %s",
+      gst_element_state_get_name (GST_STATE_TRANSITION_CURRENT (transition)),
+      gst_element_state_get_name (GST_STATE_TRANSITION_NEXT (transition)));
+
+  ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition);
+  if (ret == GST_STATE_CHANGE_FAILURE)
+    return ret;
+
+  switch (transition) {
+    case GST_STATE_CHANGE_PAUSED_TO_READY:
+      GST_OBJECT_LOCK (gtk_sink);
+      if (gtk_sink->widget)
+        gtk_gst_base_widget_set_buffer (gtk_sink->widget, NULL);
+      GST_OBJECT_UNLOCK (gtk_sink);
+      break;
+    default:
+      break;
+  }
+
+  return ret;
+}
+
+static void
+gst_gtk_base_sink_get_times (GstBaseSink * bsink, GstBuffer * buf,
+    GstClockTime * start, GstClockTime * end)
+{
+  GstGtkBaseSink *gtk_sink;
+
+  gtk_sink = GST_GTK_BASE_SINK (bsink);
+
+  if (GST_BUFFER_TIMESTAMP_IS_VALID (buf)) {
+    *start = GST_BUFFER_TIMESTAMP (buf);
+    if (GST_BUFFER_DURATION_IS_VALID (buf))
+      *end = *start + GST_BUFFER_DURATION (buf);
+    else {
+      if (GST_VIDEO_INFO_FPS_N (&gtk_sink->v_info) > 0) {
+        *end = *start +
+            gst_util_uint64_scale_int (GST_SECOND,
+            GST_VIDEO_INFO_FPS_D (&gtk_sink->v_info),
+            GST_VIDEO_INFO_FPS_N (&gtk_sink->v_info));
+      }
+    }
+  }
+}
+
+gboolean
+gst_gtk_base_sink_set_caps (GstBaseSink * bsink, GstCaps * caps)
+{
+  GstGtkBaseSink *gtk_sink = GST_GTK_BASE_SINK (bsink);
+
+  GST_DEBUG ("set caps with %" GST_PTR_FORMAT, caps);
+
+  if (!gst_video_info_from_caps (&gtk_sink->v_info, caps))
+    return FALSE;
+
+  GST_OBJECT_LOCK (gtk_sink);
+
+  if (gtk_sink->widget == NULL) {
+    GST_OBJECT_UNLOCK (gtk_sink);
+    GST_ELEMENT_ERROR (gtk_sink, RESOURCE, NOT_FOUND,
+        ("%s", "Output widget was destroyed"), (NULL));
+    return FALSE;
+  }
+
+  if (!gtk_gst_base_widget_set_format (gtk_sink->widget, &gtk_sink->v_info))
+    return FALSE;
+
+  GST_OBJECT_UNLOCK (gtk_sink);
+
+  return TRUE;
+}
+
+static GstFlowReturn
+gst_gtk_base_sink_show_frame (GstVideoSink * vsink, GstBuffer * buf)
+{
+  GstGtkBaseSink *gtk_sink;
+
+  GST_TRACE ("rendering buffer:%p", buf);
+
+  gtk_sink = GST_GTK_BASE_SINK (vsink);
+
+  GST_OBJECT_LOCK (vsink);
+
+  if (gtk_sink->widget == NULL) {
+    GST_OBJECT_UNLOCK (gtk_sink);
+    GST_ELEMENT_ERROR (gtk_sink, RESOURCE, NOT_FOUND,
+        ("%s", "Output widget was destroyed"), (NULL));
+    return GST_FLOW_ERROR;
+  }
+
+  gtk_gst_base_widget_set_buffer (gtk_sink->widget, buf);
+
+  GST_OBJECT_UNLOCK (gtk_sink);
+
+  return GST_FLOW_OK;
+}
diff --git a/ext/gtk/gstgtkbasesink.h b/ext/gtk/gstgtkbasesink.h
new file mode 100644
index 0000000..6158d81
--- /dev/null
+++ b/ext/gtk/gstgtkbasesink.h
@@ -0,0 +1,90 @@
+/*
+ * GStreamer
+ * Copyright (C) 2015 Matthew Waters <matthew@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.
+ */
+
+#ifndef __GST_GTK_BASE_SINK_H__
+#define __GST_GTK_BASE_SINK_H__
+
+#include <gtk/gtk.h>
+#include <gst/gst.h>
+#include <gst/video/gstvideosink.h>
+#include <gst/video/video.h>
+
+#include "gtkgstbasewidget.h"
+
+#define GST_TYPE_GTK_BASE_SINK            (gst_gtk_base_sink_get_type())
+#define GST_GTK_BASE_SINK(obj)            (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_GTK_BASE_SINK,GstGtkBaseSink))
+#define GST_GTK_BASE_SINK_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_GTK_BASE_SINK,GstGtkBaseSinkClass))
+#define GST_GTK_BASE_SINK_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_GTK_BASE_SINK, GstGtkBaseSinkClass))
+#define GST_IS_GTK_BASE_SINK(obj)         (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_GTK_BASE_SINK))
+#define GST_IS_GTK_BASE_SINK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_GTK_BASE_SINK))
+#define GST_GTK_BASE_SINK_CAST(obj)       ((GstGtkBaseSink*)(obj))
+
+G_BEGIN_DECLS
+
+typedef struct _GstGtkBaseSink GstGtkBaseSink;
+typedef struct _GstGtkBaseSinkClass GstGtkBaseSinkClass;
+
+GType gst_gtk_base_sink_get_type (void);
+
+/**
+ * GstGtkBaseSink:
+ *
+ * Opaque #GstGtkBaseSink object
+ */
+struct _GstGtkBaseSink
+{
+  /* <private> */
+  GstVideoSink         parent;
+
+  GstVideoInfo         v_info;
+
+  GtkGstBaseWidget     *widget;
+
+  /* properties */
+  gboolean             force_aspect_ratio;
+  GBinding             *bind_aspect_ratio;
+
+  gint                  par_n;
+  gint                  par_d;
+  GBinding             *bind_pixel_aspect_ratio;
+
+  gboolean              ignore_alpha;
+  GBinding             *bind_ignore_alpha;
+};
+
+/**
+ * GstGtkBaseSinkClass:
+ *
+ * The #GstGtkBaseSinkClass struct only contains private data
+ */
+struct _GstGtkBaseSinkClass
+{
+  GstVideoSinkClass object_class;
+
+  /* metadata */
+  const gchar *window_title;
+
+  /* virtuals */
+  GtkWidget* (*create_widget) (void);
+};
+
+G_END_DECLS
+
+#endif /* __GST_GTK_BASE_SINK_H__ */
diff --git a/ext/gtk/gstgtkglsink.c b/ext/gtk/gstgtkglsink.c
index 2a77aec..d59880c 100644
--- a/ext/gtk/gstgtkglsink.c
+++ b/ext/gtk/gstgtkglsink.c
@@ -28,35 +28,18 @@
 #endif
 
 #include "gstgtkglsink.h"
+#include "gtkgstglwidget.h"
 
 GST_DEBUG_CATEGORY (gst_debug_gtk_gl_sink);
 #define GST_CAT_DEFAULT gst_debug_gtk_gl_sink
 
-#define DEFAULT_FORCE_ASPECT_RATIO  TRUE
-#define DEFAULT_PAR_N               0
-#define DEFAULT_PAR_D               1
-#define DEFAULT_IGNORE_ALPHA        TRUE
-
-static void gst_gtk_gl_sink_finalize (GObject * object);
-static void gst_gtk_gl_sink_set_property (GObject * object, guint prop_id,
-    const GValue * value, GParamSpec * param_spec);
-static void gst_gtk_gl_sink_get_property (GObject * object, guint prop_id,
-    GValue * value, GParamSpec * param_spec);
-
+static gboolean gst_gtk_gl_sink_start (GstBaseSink * bsink);
 static gboolean gst_gtk_gl_sink_stop (GstBaseSink * bsink);
-
 static gboolean gst_gtk_gl_sink_query (GstBaseSink * bsink, GstQuery * query);
-
-static GstStateChangeReturn
-gst_gtk_gl_sink_change_state (GstElement * element, GstStateChange transition);
-
-static void gst_gtk_gl_sink_get_times (GstBaseSink * bsink, GstBuffer * buf,
-    GstClockTime * start, GstClockTime * end);
-static gboolean gst_gtk_gl_sink_set_caps (GstBaseSink * bsink, GstCaps * caps);
-static GstFlowReturn gst_gtk_gl_sink_show_frame (GstVideoSink * bsink,
-    GstBuffer * buf);
 static gboolean gst_gtk_gl_sink_propose_allocation (GstBaseSink * bsink,
     GstQuery * query);
+static GstCaps *gst_gtk_gl_sink_get_caps (GstBaseSink * bsink,
+    GstCaps * filter);
 
 static GstStaticPadTemplate gst_gtk_gl_sink_template =
 GST_STATIC_PAD_TEMPLATE ("sink",
@@ -65,181 +48,42 @@
     GST_STATIC_CAPS (GST_VIDEO_CAPS_MAKE_WITH_FEATURES
         (GST_CAPS_FEATURE_MEMORY_GL_MEMORY, "RGBA")));
 
-enum
-{
-  PROP_0,
-  PROP_WIDGET,
-  PROP_FORCE_ASPECT_RATIO,
-  PROP_PIXEL_ASPECT_RATIO,
-  PROP_IGNORE_ALPHA,
-};
-
-enum
-{
-  SIGNAL_0,
-  LAST_SIGNAL
-};
-
 #define gst_gtk_gl_sink_parent_class parent_class
 G_DEFINE_TYPE_WITH_CODE (GstGtkGLSink, gst_gtk_gl_sink,
-    GST_TYPE_VIDEO_SINK, GST_DEBUG_CATEGORY_INIT (gst_debug_gtk_gl_sink,
+    GST_TYPE_GTK_BASE_SINK, GST_DEBUG_CATEGORY_INIT (gst_debug_gtk_gl_sink,
         "gtkglsink", 0, "Gtk Video Sink"));
 
 static void
 gst_gtk_gl_sink_class_init (GstGtkGLSinkClass * klass)
 {
-  GObjectClass *gobject_class;
   GstElementClass *gstelement_class;
   GstBaseSinkClass *gstbasesink_class;
-  GstVideoSinkClass *gstvideosink_class;
+  GstGtkBaseSinkClass *gstgtkbasesink_class;
 
-  gobject_class = (GObjectClass *) klass;
   gstelement_class = (GstElementClass *) klass;
   gstbasesink_class = (GstBaseSinkClass *) klass;
-  gstvideosink_class = (GstVideoSinkClass *) klass;
+  gstgtkbasesink_class = (GstGtkBaseSinkClass *) klass;
 
-  gobject_class->set_property = gst_gtk_gl_sink_set_property;
-  gobject_class->get_property = gst_gtk_gl_sink_get_property;
+  gstbasesink_class->query = gst_gtk_gl_sink_query;
+  gstbasesink_class->propose_allocation = gst_gtk_gl_sink_propose_allocation;
+  gstbasesink_class->start = gst_gtk_gl_sink_start;
+  gstbasesink_class->stop = gst_gtk_gl_sink_stop;
+  gstbasesink_class->get_caps = gst_gtk_gl_sink_get_caps;
+
+  gstgtkbasesink_class->create_widget = gtk_gst_gl_widget_new;
+  gstgtkbasesink_class->window_title = "Gtk+ GL renderer";
 
   gst_element_class_set_metadata (gstelement_class, "Gtk Video Sink",
       "Sink/Video", "A video sink that renders to a GtkWidget",
       "Matthew Waters <matthew@centricular.com>");
 
-  g_object_class_install_property (gobject_class, PROP_WIDGET,
-      g_param_spec_object ("widget", "Gtk Widget",
-          "The GtkWidget to place in the widget heirachy",
-          GTK_TYPE_WIDGET, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
-
-  g_object_class_install_property (gobject_class, PROP_FORCE_ASPECT_RATIO,
-      g_param_spec_boolean ("force-aspect-ratio",
-          "Force aspect ratio",
-          "When enabled, scaling will respect original aspect ratio",
-          DEFAULT_FORCE_ASPECT_RATIO,
-          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
-
-  g_object_class_install_property (gobject_class, PROP_PIXEL_ASPECT_RATIO,
-      gst_param_spec_fraction ("pixel-aspect-ratio", "Pixel Aspect Ratio",
-          "The pixel aspect ratio of the device", DEFAULT_PAR_N, DEFAULT_PAR_D,
-          G_MAXINT, 1, 1, 1, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
-
-  g_object_class_install_property (gobject_class, PROP_IGNORE_ALPHA,
-      g_param_spec_boolean ("ignore-alpha", "Ignore Alpha",
-          "When enabled, alpha will be ignored and converted to black",
-          DEFAULT_IGNORE_ALPHA, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
-
   gst_element_class_add_pad_template (gstelement_class,
       gst_static_pad_template_get (&gst_gtk_gl_sink_template));
-
-  gobject_class->finalize = gst_gtk_gl_sink_finalize;
-
-  gstelement_class->change_state = gst_gtk_gl_sink_change_state;
-  gstbasesink_class->query = gst_gtk_gl_sink_query;
-  gstbasesink_class->set_caps = gst_gtk_gl_sink_set_caps;
-  gstbasesink_class->get_times = gst_gtk_gl_sink_get_times;
-  gstbasesink_class->propose_allocation = gst_gtk_gl_sink_propose_allocation;
-  gstbasesink_class->stop = gst_gtk_gl_sink_stop;
-
-  gstvideosink_class->show_frame = gst_gtk_gl_sink_show_frame;
 }
 
 static void
 gst_gtk_gl_sink_init (GstGtkGLSink * gtk_sink)
 {
-  gtk_sink->force_aspect_ratio = DEFAULT_FORCE_ASPECT_RATIO;
-  gtk_sink->par_n = DEFAULT_PAR_N;
-  gtk_sink->par_d = DEFAULT_PAR_D;
-  gtk_sink->ignore_alpha = DEFAULT_IGNORE_ALPHA;
-}
-
-static void
-gst_gtk_gl_sink_finalize (GObject * object)
-{
-  GstGtkGLSink *gtk_sink = GST_GTK_GL_SINK (object);;
-
-  g_object_unref (gtk_sink->widget);
-
-  G_OBJECT_CLASS (parent_class)->finalize (object);
-}
-
-static GtkGstGLWidget *
-gst_gtk_gl_sink_get_widget (GstGtkGLSink * gtk_sink)
-{
-  if (gtk_sink->widget != NULL)
-    return gtk_sink->widget;
-
-  /* Ensure GTK is initialized, this has no side effect if it was already
-   * initialized. Also, we do that lazily, so the application can be first */
-  if (!gtk_init_check (NULL, NULL)) {
-    GST_ERROR_OBJECT (gtk_sink, "Could not ensure GTK initialization.");
-    return NULL;
-  }
-
-  gtk_sink->widget = (GtkGstGLWidget *) gtk_gst_gl_widget_new ();
-  gtk_sink->bind_force_aspect_ratio =
-      g_object_bind_property (gtk_sink, "force-aspect-ratio", gtk_sink->widget,
-      "force-aspect-ratio", G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE);
-  gtk_sink->bind_pixel_aspect_ratio =
-      g_object_bind_property (gtk_sink, "pixel-aspect-ratio", gtk_sink->widget,
-      "pixel-aspect-ratio", G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE);
-  gtk_sink->bind_ignore_alpha =
-      g_object_bind_property (gtk_sink, "ignore-alpha", gtk_sink->widget,
-      "ignore-alpha", G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE);
-
-  /* Take the floating ref, otherwise the destruction of the container will
-   * make this widget disapear possibly before we are done. */
-  gst_object_ref_sink (gtk_sink->widget);
-
-  return gtk_sink->widget;
-}
-
-static void
-gst_gtk_gl_sink_get_property (GObject * object, guint prop_id,
-    GValue * value, GParamSpec * pspec)
-{
-  GstGtkGLSink *gtk_sink;
-
-  gtk_sink = GST_GTK_GL_SINK (object);
-
-  switch (prop_id) {
-    case PROP_WIDGET:
-      g_value_set_object (value, gst_gtk_gl_sink_get_widget (gtk_sink));
-      break;
-    case PROP_FORCE_ASPECT_RATIO:
-      g_value_set_boolean (value, gtk_sink->force_aspect_ratio);
-      break;
-    case PROP_PIXEL_ASPECT_RATIO:
-      gst_value_set_fraction (value, gtk_sink->par_n, gtk_sink->par_d);
-      break;
-    case PROP_IGNORE_ALPHA:
-      g_value_set_boolean (value, gtk_sink->ignore_alpha);
-      break;
-    default:
-      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
-      break;
-  }
-}
-
-static void
-gst_gtk_gl_sink_set_property (GObject * object, guint prop_id,
-    const GValue * value, GParamSpec * pspec)
-{
-  GstGtkGLSink *gtk_sink = GST_GTK_GL_SINK (object);
-
-  switch (prop_id) {
-    case PROP_FORCE_ASPECT_RATIO:
-      gtk_sink->force_aspect_ratio = g_value_get_boolean (value);
-      break;
-    case PROP_PIXEL_ASPECT_RATIO:
-      gtk_sink->par_n = gst_value_get_fraction_numerator (value);
-      gtk_sink->par_d = gst_value_get_fraction_denominator (value);
-      break;
-    case PROP_IGNORE_ALPHA:
-      gtk_sink->ignore_alpha = g_value_get_boolean (value);
-      break;
-    default:
-      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
-      break;
-  }
 }
 
 static gboolean
@@ -253,9 +97,8 @@
     {
       const gchar *context_type;
       GstContext *context, *old_context;
-      gboolean ret;
 
-      ret = gst_gl_handle_context_query ((GstElement *) gtk_sink, query,
+      res = gst_gl_handle_context_query ((GstElement *) gtk_sink, query,
           &gtk_sink->display, &gtk_sink->gtk_context);
 
       if (gtk_sink->display)
@@ -279,13 +122,11 @@
         gst_query_set_context (query, context);
         gst_context_unref (context);
 
-        ret = gtk_sink->context != NULL;
+        res = gtk_sink->context != NULL;
       }
       GST_LOG_OBJECT (gtk_sink, "context query of type %s %i", context_type,
-          ret);
-
-      if (ret)
-        return ret;
+          res);
+      break;
     }
     default:
       res = GST_BASE_SINK_CLASS (parent_class)->query (bsink, query);
@@ -295,149 +136,96 @@
   return res;
 }
 
+static void
+_size_changed_cb (GtkWidget * widget, GdkRectangle * rectangle,
+    GstGtkGLSink * gtk_sink)
+{
+  gint scale_factor, width, height;
+  gboolean reconfigure;
+
+  scale_factor = gtk_widget_get_scale_factor (widget);
+  width = scale_factor * gtk_widget_get_allocated_width (widget);
+  height = scale_factor * gtk_widget_get_allocated_height (widget);
+
+  GST_OBJECT_LOCK (gtk_sink);
+  reconfigure =
+      (width != gtk_sink->display_width || height != gtk_sink->display_height);
+  gtk_sink->display_width = width;
+  gtk_sink->display_height = height;
+  GST_OBJECT_UNLOCK (gtk_sink);
+
+  if (reconfigure) {
+    GST_DEBUG_OBJECT (gtk_sink, "Sending reconfigure event on sinkpad.");
+    gst_pad_push_event (GST_BASE_SINK (gtk_sink)->sinkpad,
+        gst_event_new_reconfigure ());
+  }
+}
+
+static gboolean
+gst_gtk_gl_sink_start (GstBaseSink * bsink)
+{
+  GstGtkBaseSink *base_sink = GST_GTK_BASE_SINK (bsink);
+  GstGtkGLSink *gtk_sink = GST_GTK_GL_SINK (bsink);
+  GtkGstGLWidget *gst_widget;
+
+  if (!GST_BASE_SINK_CLASS (parent_class)->start (bsink))
+    return FALSE;
+
+  /* After this point, gtk_sink->widget will always be set */
+  gst_widget = GTK_GST_GL_WIDGET (base_sink->widget);
+
+  /* Track the allocation size */
+  g_signal_connect (gst_widget, "size-allocate", G_CALLBACK (_size_changed_cb),
+      gtk_sink);
+  _size_changed_cb (GTK_WIDGET (gst_widget), NULL, gtk_sink);
+
+  if (!gtk_gst_gl_widget_init_winsys (gst_widget))
+    return FALSE;
+
+  gtk_sink->display = gtk_gst_gl_widget_get_display (gst_widget);
+  gtk_sink->context = gtk_gst_gl_widget_get_context (gst_widget);
+  gtk_sink->gtk_context = gtk_gst_gl_widget_get_gtk_context (gst_widget);
+
+  if (!gtk_sink->display || !gtk_sink->context || !gtk_sink->gtk_context)
+    return FALSE;
+
+  return TRUE;
+}
+
 static gboolean
 gst_gtk_gl_sink_stop (GstBaseSink * bsink)
 {
-  return TRUE;
-}
-
-static GstStateChangeReturn
-gst_gtk_gl_sink_change_state (GstElement * element, GstStateChange transition)
-{
-  GstGtkGLSink *gtk_sink = GST_GTK_GL_SINK (element);
-  GstStateChangeReturn ret = GST_STATE_CHANGE_SUCCESS;
-
-  GST_DEBUG ("changing state: %s => %s",
-      gst_element_state_get_name (GST_STATE_TRANSITION_CURRENT (transition)),
-      gst_element_state_get_name (GST_STATE_TRANSITION_NEXT (transition)));
-
-  switch (transition) {
-    case GST_STATE_CHANGE_NULL_TO_READY:
-      if (gst_gtk_gl_sink_get_widget (gtk_sink) == NULL)
-        return GST_STATE_CHANGE_FAILURE;
-
-      /* After this point, gtk_sink->widget will always be set */
-
-      if (!gtk_widget_get_parent (GTK_WIDGET (gtk_sink->widget))) {
-        GST_ERROR_OBJECT (gtk_sink,
-            "gtkglsink widget needs to be parented to work.");
-        return GST_STATE_CHANGE_FAILURE;
-      }
-
-      if (!gtk_gst_gl_widget_init_winsys (gtk_sink->widget))
-        return GST_STATE_CHANGE_FAILURE;
-
-      gtk_sink->display = gtk_gst_gl_widget_get_display (gtk_sink->widget);
-      gtk_sink->context = gtk_gst_gl_widget_get_context (gtk_sink->widget);
-      gtk_sink->gtk_context =
-          gtk_gst_gl_widget_get_gtk_context (gtk_sink->widget);
-
-      if (!gtk_sink->display || !gtk_sink->context || !gtk_sink->gtk_context)
-        return GST_STATE_CHANGE_FAILURE;
-      break;
-    case GST_STATE_CHANGE_READY_TO_PAUSED:
-      break;
-    case GST_STATE_CHANGE_PAUSED_TO_PLAYING:
-      break;
-    default:
-      break;
-  }
-
-  ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition);
-  if (ret == GST_STATE_CHANGE_FAILURE)
-    return ret;
-
-  switch (transition) {
-    case GST_STATE_CHANGE_PLAYING_TO_PAUSED:
-      break;
-    case GST_STATE_CHANGE_PAUSED_TO_READY:
-      gtk_gst_gl_widget_set_buffer (gtk_sink->widget, NULL);
-      break;
-    case GST_STATE_CHANGE_READY_TO_NULL:
-      if (gtk_sink->display) {
-        gst_object_unref (gtk_sink->display);
-        gtk_sink->display = NULL;
-      }
-
-      if (gtk_sink->context) {
-        gst_object_unref (gtk_sink->context);
-        gtk_sink->context = NULL;
-      }
-
-      if (gtk_sink->gtk_context) {
-        gst_object_unref (gtk_sink->gtk_context);
-        gtk_sink->gtk_context = NULL;
-      }
-      break;
-    default:
-      break;
-  }
-
-  return ret;
-}
-
-static void
-gst_gtk_gl_sink_get_times (GstBaseSink * bsink, GstBuffer * buf,
-    GstClockTime * start, GstClockTime * end)
-{
-  GstGtkGLSink *gtk_sink;
-
-  gtk_sink = GST_GTK_GL_SINK (bsink);
-
-  if (GST_BUFFER_TIMESTAMP_IS_VALID (buf)) {
-    *start = GST_BUFFER_TIMESTAMP (buf);
-    if (GST_BUFFER_DURATION_IS_VALID (buf))
-      *end = *start + GST_BUFFER_DURATION (buf);
-    else {
-      if (GST_VIDEO_INFO_FPS_N (&gtk_sink->v_info) > 0) {
-        *end = *start +
-            gst_util_uint64_scale_int (GST_SECOND,
-            GST_VIDEO_INFO_FPS_D (&gtk_sink->v_info),
-            GST_VIDEO_INFO_FPS_N (&gtk_sink->v_info));
-      }
-    }
-  }
-}
-
-gboolean
-gst_gtk_gl_sink_set_caps (GstBaseSink * bsink, GstCaps * caps)
-{
   GstGtkGLSink *gtk_sink = GST_GTK_GL_SINK (bsink);
 
-  GST_DEBUG ("set caps with %" GST_PTR_FORMAT, caps);
+  if (gtk_sink->display) {
+    gst_object_unref (gtk_sink->display);
+    gtk_sink->display = NULL;
+  }
 
-  if (!gst_video_info_from_caps (&gtk_sink->v_info, caps))
-    return FALSE;
+  if (gtk_sink->context) {
+    gst_object_unref (gtk_sink->context);
+    gtk_sink->context = NULL;
+  }
 
-  if (!gtk_gst_gl_widget_set_caps (gtk_sink->widget, caps))
-    return FALSE;
+  if (gtk_sink->gtk_context) {
+    gst_object_unref (gtk_sink->gtk_context);
+    gtk_sink->gtk_context = NULL;
+  }
 
   return TRUE;
 }
 
-static GstFlowReturn
-gst_gtk_gl_sink_show_frame (GstVideoSink * vsink, GstBuffer * buf)
-{
-  GstGtkGLSink *gtk_sink;
-
-  GST_TRACE ("rendering buffer:%p", buf);
-
-  gtk_sink = GST_GTK_GL_SINK (vsink);
-
-  gtk_gst_gl_widget_set_buffer (gtk_sink->widget, buf);
-
-  return GST_FLOW_OK;
-}
-
 static gboolean
 gst_gtk_gl_sink_propose_allocation (GstBaseSink * bsink, GstQuery * query)
 {
   GstGtkGLSink *gtk_sink = GST_GTK_GL_SINK (bsink);
-  GstBufferPool *pool;
+  GstBufferPool *pool = NULL;
   GstStructure *config;
   GstCaps *caps;
   guint size;
   gboolean need_pool;
+  GstStructure *allocation_meta = NULL;
+  gint display_width, display_height;
 
   if (!gtk_sink->display || !gtk_sink->context)
     return FALSE;
@@ -447,27 +235,7 @@
   if (caps == NULL)
     goto no_caps;
 
-  if ((pool = gtk_sink->pool))
-    gst_object_ref (pool);
-
-  if (pool != NULL) {
-    GstCaps *pcaps;
-
-    /* we had a pool, check caps */
-    GST_DEBUG_OBJECT (gtk_sink, "check existing pool caps");
-    config = gst_buffer_pool_get_config (pool);
-    gst_buffer_pool_config_get_params (config, &pcaps, &size, NULL, NULL);
-
-    if (!gst_caps_is_equal (caps, pcaps)) {
-      GST_DEBUG_OBJECT (gtk_sink, "pool has different caps");
-      /* different caps, we can't use this pool */
-      gst_object_unref (pool);
-      pool = NULL;
-    }
-    gst_structure_free (config);
-  }
-
-  if (pool == NULL && need_pool) {
+  if (need_pool) {
     GstVideoInfo info;
 
     if (!gst_video_info_from_caps (&info, caps))
@@ -481,15 +249,36 @@
 
     config = gst_buffer_pool_get_config (pool);
     gst_buffer_pool_config_set_params (config, caps, size, 0, 0);
+    gst_buffer_pool_config_add_option (config,
+        GST_BUFFER_POOL_OPTION_GL_SYNC_META);
+
     if (!gst_buffer_pool_set_config (pool, config))
       goto config_failed;
-  }
-  /* we need at least 2 buffer because we hold on to the last one */
-  if (pool) {
+
+    /* we need at least 2 buffer because we hold on to the last one */
     gst_query_add_allocation_pool (query, pool, size, 2, 0);
     gst_object_unref (pool);
   }
 
+  GST_OBJECT_LOCK (gtk_sink);
+  display_width = gtk_sink->display_width;
+  display_height = gtk_sink->display_height;
+  GST_OBJECT_UNLOCK (gtk_sink);
+
+  if (display_width != 0 && display_height != 0) {
+    GST_DEBUG_OBJECT (gtk_sink, "sending alloc query with size %dx%d",
+        display_width, display_height);
+    allocation_meta = gst_structure_new ("GstVideoOverlayCompositionMeta",
+        "width", G_TYPE_UINT, display_width,
+        "height", G_TYPE_UINT, display_height, NULL);
+  }
+
+  gst_query_add_allocation_meta (query,
+      GST_VIDEO_OVERLAY_COMPOSITION_META_API_TYPE, allocation_meta);
+
+  if (allocation_meta)
+    gst_structure_free (allocation_meta);
+
   /* we also support various metadata */
   gst_query_add_allocation_meta (query, GST_VIDEO_META_API_TYPE, 0);
 
@@ -515,3 +304,28 @@
     return FALSE;
   }
 }
+
+static GstCaps *
+gst_gtk_gl_sink_get_caps (GstBaseSink * bsink, GstCaps * filter)
+{
+  GstCaps *tmp = NULL;
+  GstCaps *result = NULL;
+
+  tmp = gst_pad_get_pad_template_caps (GST_BASE_SINK_PAD (bsink));
+
+  if (filter) {
+    GST_DEBUG_OBJECT (bsink, "intersecting with filter caps %" GST_PTR_FORMAT,
+        filter);
+
+    result = gst_caps_intersect_full (filter, tmp, GST_CAPS_INTERSECT_FIRST);
+    gst_caps_unref (tmp);
+  } else {
+    result = tmp;
+  }
+
+  result = gst_gl_overlay_compositor_add_caps (result);
+
+  GST_DEBUG_OBJECT (bsink, "returning caps: %" GST_PTR_FORMAT, result);
+
+  return result;
+}
diff --git a/ext/gtk/gstgtkglsink.h b/ext/gtk/gstgtkglsink.h
index 844b28b..789cf33 100644
--- a/ext/gtk/gstgtkglsink.h
+++ b/ext/gtk/gstgtkglsink.h
@@ -27,15 +27,9 @@
 #include <gst/video/video.h>
 #include <gst/gl/gl.h>
 
-typedef struct _GstGtkGLSink GstGtkGLSink;
-typedef struct _GstGtkGLSinkClass GstGtkGLSinkClass;
-typedef struct _GstGtkGLSinkPrivate GstGtkGLSinkPrivate;
+#include "gstgtkbasesink.h"
 
-#include <gtkgstglwidget.h>
 
-G_BEGIN_DECLS
-
-GType gst_gtk_gl_sink_get_type (void);
 #define GST_TYPE_GTK_GL_SINK            (gst_gtk_gl_sink_get_type())
 #define GST_GTK_GL_SINK(obj)            (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_GTK_GL_SINK,GstGtkGLSink))
 #define GST_GTK_GL_SINK_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_GTK_GL_SINK,GstGtkGLSinkClass))
@@ -43,6 +37,13 @@
 #define GST_IS_GTK_GL_SINK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_GTK_GL_SINK))
 #define GST_GTK_GL_SINK_CAST(obj)       ((GstGtkGLSink*)(obj))
 
+G_BEGIN_DECLS
+
+typedef struct _GstGtkGLSink GstGtkGLSink;
+typedef struct _GstGtkGLSinkClass GstGtkGLSinkClass;
+
+GType gst_gtk_gl_sink_get_type (void);
+
 /**
  * GstGtkGLSink:
  *
@@ -51,12 +52,7 @@
 struct _GstGtkGLSink
 {
   /* <private> */
-  GstVideoSink          parent;
-
-  GtkGstGLWidget       *widget;
-
-  GstVideoInfo          v_info;
-  GstBufferPool        *pool;
+  GstGtkBaseSink        parent;
 
   GstGLDisplay         *display;
   GstGLContext         *context;
@@ -65,18 +61,9 @@
   GstGLUpload          *upload;
   GstBuffer            *uploaded_buffer;
 
-  /* properties */
-  gboolean              force_aspect_ratio;
-  GBinding             *bind_force_aspect_ratio;
-
-  gint                  par_n;
-  gint                  par_d;
-  GBinding             *bind_pixel_aspect_ratio;
-
-  gboolean              ignore_alpha;
-  GBinding             *bind_ignore_alpha;
-
-  GstGtkGLSinkPrivate  *priv;
+  /* read/write with object lock */
+  gint                  display_width;
+  gint                  display_height;
 };
 
 /**
@@ -87,11 +74,9 @@
 struct _GstGtkGLSinkClass
 {
   /* <private> */
-  GstVideoSinkClass object_class;
+  GstGtkBaseSinkClass object_class;
 };
 
-GstGtkGLSink *    gst_gtk_gl_sink_new (void);
-
 G_END_DECLS
 
 #endif /* __GST_GTK_GL_SINK_H__ */
diff --git a/ext/gtk/gstgtksink.c b/ext/gtk/gstgtksink.c
index 2c5d3ed..4659221 100644
--- a/ext/gtk/gstgtksink.c
+++ b/ext/gtk/gstgtksink.c
@@ -27,30 +27,9 @@
 #include "config.h"
 #endif
 
+#include "gtkgstwidget.h"
 #include "gstgtksink.h"
 
-GST_DEBUG_CATEGORY (gst_debug_gtk_sink);
-#define GST_CAT_DEFAULT gst_debug_gtk_sink
-
-static void gst_gtk_sink_finalize (GObject * object);
-static void gst_gtk_sink_set_property (GObject * object, guint prop_id,
-    const GValue * value, GParamSpec * param_spec);
-static void gst_gtk_sink_get_property (GObject * object, guint prop_id,
-    GValue * value, GParamSpec * param_spec);
-
-static gboolean gst_gtk_sink_stop (GstBaseSink * bsink);
-
-static gboolean gst_gtk_sink_query (GstBaseSink * bsink, GstQuery * query);
-
-static GstStateChangeReturn
-gst_gtk_sink_change_state (GstElement * element, GstStateChange transition);
-
-static void gst_gtk_sink_get_times (GstBaseSink * bsink, GstBuffer * buf,
-    GstClockTime * start, GstClockTime * end);
-static gboolean gst_gtk_sink_set_caps (GstBaseSink * bsink, GstCaps * caps);
-static GstFlowReturn gst_gtk_sink_show_frame (GstVideoSink * bsink,
-    GstBuffer * buf);
-
 #if G_BYTE_ORDER == G_LITTLE_ENDIAN
 #define FORMATS "{ BGRx, BGRA }"
 #else
@@ -64,297 +43,30 @@
     GST_STATIC_CAPS (GST_VIDEO_CAPS_MAKE (FORMATS))
     );
 
-#define DEFAULT_FORCE_ASPECT_RATIO  TRUE
-#define DEFAULT_PAR_N               0
-#define DEFAULT_PAR_D               1
-#define DEFAULT_IGNORE_ALPHA        TRUE
-
-enum
-{
-  PROP_0,
-  PROP_WIDGET,
-  PROP_FORCE_ASPECT_RATIO,
-  PROP_PIXEL_ASPECT_RATIO,
-  PROP_IGNORE_ALPHA,
-};
-
-enum
-{
-  SIGNAL_0,
-  LAST_SIGNAL
-};
-
 #define gst_gtk_sink_parent_class parent_class
-G_DEFINE_TYPE_WITH_CODE (GstGtkSink, gst_gtk_sink,
-    GST_TYPE_VIDEO_SINK, GST_DEBUG_CATEGORY_INIT (gst_debug_gtk_sink, "gtksink",
-        0, "Gtk Video Sink"));
+G_DEFINE_TYPE (GstGtkSink, gst_gtk_sink, GST_TYPE_GTK_BASE_SINK);
 
 static void
 gst_gtk_sink_class_init (GstGtkSinkClass * klass)
 {
-  GObjectClass *gobject_class;
   GstElementClass *gstelement_class;
-  GstBaseSinkClass *gstbasesink_class;
-  GstVideoSinkClass *gstvideosink_class;
+  GstGtkBaseSinkClass *base_class;
 
-  gobject_class = (GObjectClass *) klass;
   gstelement_class = (GstElementClass *) klass;
-  gstbasesink_class = (GstBaseSinkClass *) klass;
-  gstvideosink_class = (GstVideoSinkClass *) klass;
+  base_class = (GstGtkBaseSinkClass *) klass;
 
-  gobject_class->set_property = gst_gtk_sink_set_property;
-  gobject_class->get_property = gst_gtk_sink_get_property;
+  base_class->create_widget = gtk_gst_widget_new;
+  base_class->window_title = "Gtk+ Cairo renderer";
 
   gst_element_class_set_metadata (gstelement_class, "Gtk Video Sink",
       "Sink/Video", "A video sink that renders to a GtkWidget",
       "Matthew Waters <matthew@centricular.com>");
 
-  g_object_class_install_property (gobject_class, PROP_WIDGET,
-      g_param_spec_object ("widget", "Gtk Widget",
-          "The GtkWidget to place in the widget heirachy",
-          GTK_TYPE_WIDGET, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
-
-  g_object_class_install_property (gobject_class, PROP_FORCE_ASPECT_RATIO,
-      g_param_spec_boolean ("force-aspect-ratio",
-          "Force aspect ratio",
-          "When enabled, scaling will respect original aspect ratio",
-          DEFAULT_FORCE_ASPECT_RATIO,
-          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
-
-  g_object_class_install_property (gobject_class, PROP_PIXEL_ASPECT_RATIO,
-      gst_param_spec_fraction ("pixel-aspect-ratio", "Pixel Aspect Ratio",
-          "The pixel aspect ratio of the device", DEFAULT_PAR_N, DEFAULT_PAR_D,
-          G_MAXINT, 1, 1, 1, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
-
-  g_object_class_install_property (gobject_class, PROP_IGNORE_ALPHA,
-      g_param_spec_boolean ("ignore-alpha", "Ignore Alpha",
-          "When enabled, alpha will be ignored and converted to black",
-          DEFAULT_IGNORE_ALPHA, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
-
   gst_element_class_add_pad_template (gstelement_class,
       gst_static_pad_template_get (&gst_gtk_sink_template));
-
-  gobject_class->finalize = gst_gtk_sink_finalize;
-
-  gstelement_class->change_state = gst_gtk_sink_change_state;
-  gstbasesink_class->query = gst_gtk_sink_query;
-  gstbasesink_class->set_caps = gst_gtk_sink_set_caps;
-  gstbasesink_class->get_times = gst_gtk_sink_get_times;
-  gstbasesink_class->stop = gst_gtk_sink_stop;
-
-  gstvideosink_class->show_frame = gst_gtk_sink_show_frame;
 }
 
 static void
 gst_gtk_sink_init (GstGtkSink * gtk_sink)
 {
-  gtk_sink->force_aspect_ratio = DEFAULT_FORCE_ASPECT_RATIO;
-  gtk_sink->par_n = DEFAULT_PAR_N;
-  gtk_sink->par_d = DEFAULT_PAR_D;
-  gtk_sink->ignore_alpha = DEFAULT_IGNORE_ALPHA;
-}
-
-static void
-gst_gtk_sink_finalize (GObject * object)
-{
-  GstGtkSink *gtk_sink = GST_GTK_SINK (object);;
-
-  g_object_unref (gtk_sink->widget);
-
-  G_OBJECT_CLASS (parent_class)->finalize (object);
-}
-
-static GtkGstWidget *
-gst_gtk_sink_get_widget (GstGtkSink * gtk_sink)
-{
-  if (gtk_sink->widget != NULL)
-    return gtk_sink->widget;
-
-  /* Ensure GTK is initialized, this has no side effect if it was already
-   * initialized. Also, we do that lazily, so the application can be first */
-  if (!gtk_init_check (NULL, NULL)) {
-    GST_ERROR_OBJECT (gtk_sink, "Could not ensure GTK initialization.");
-    return NULL;
-  }
-
-  gtk_sink->widget = (GtkGstWidget *) gtk_gst_widget_new ();
-  gtk_sink->bind_aspect_ratio =
-      g_object_bind_property (gtk_sink, "force-aspect-ratio", gtk_sink->widget,
-      "force-aspect-ratio", G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE);
-  gtk_sink->bind_pixel_aspect_ratio =
-      g_object_bind_property (gtk_sink, "pixel-aspect-ratio", gtk_sink->widget,
-      "pixel-aspect-ratio", G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE);
-  gtk_sink->bind_ignore_alpha =
-      g_object_bind_property (gtk_sink, "ignore-alpha", gtk_sink->widget,
-      "ignore-alpha", G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE);
-
-  /* Take the floating ref, other wise the destruction of the container will
-   * make this widget disapear possibly before we are done. */
-  gst_object_ref_sink (gtk_sink->widget);
-
-  return gtk_sink->widget;
-}
-
-static void
-gst_gtk_sink_get_property (GObject * object, guint prop_id,
-    GValue * value, GParamSpec * pspec)
-{
-  GstGtkSink *gtk_sink = GST_GTK_SINK (object);
-
-  switch (prop_id) {
-    case PROP_WIDGET:
-      g_value_set_object (value, gst_gtk_sink_get_widget (gtk_sink));
-      break;
-    case PROP_FORCE_ASPECT_RATIO:
-      g_value_set_boolean (value, gtk_sink->force_aspect_ratio);
-      break;
-    case PROP_PIXEL_ASPECT_RATIO:
-      gst_value_set_fraction (value, gtk_sink->par_n, gtk_sink->par_d);
-      break;
-    case PROP_IGNORE_ALPHA:
-      g_value_set_boolean (value, gtk_sink->ignore_alpha);
-      break;
-    default:
-      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
-      break;
-  }
-}
-
-static void
-gst_gtk_sink_set_property (GObject * object, guint prop_id,
-    const GValue * value, GParamSpec * pspec)
-{
-  GstGtkSink *gtk_sink = GST_GTK_SINK (object);
-
-  switch (prop_id) {
-    case PROP_FORCE_ASPECT_RATIO:
-      gtk_sink->force_aspect_ratio = g_value_get_boolean (value);
-      break;
-    case PROP_PIXEL_ASPECT_RATIO:
-      gtk_sink->par_n = gst_value_get_fraction_numerator (value);
-      gtk_sink->par_d = gst_value_get_fraction_denominator (value);
-      break;
-    case PROP_IGNORE_ALPHA:
-      gtk_sink->ignore_alpha = g_value_get_boolean (value);
-      break;
-    default:
-      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
-      break;
-  }
-}
-
-static gboolean
-gst_gtk_sink_query (GstBaseSink * bsink, GstQuery * query)
-{
-  gboolean res = FALSE;
-
-  switch (GST_QUERY_TYPE (query)) {
-    default:
-      res = GST_BASE_SINK_CLASS (parent_class)->query (bsink, query);
-      break;
-  }
-
-  return res;
-}
-
-static gboolean
-gst_gtk_sink_stop (GstBaseSink * bsink)
-{
-  return TRUE;
-}
-
-static GstStateChangeReturn
-gst_gtk_sink_change_state (GstElement * element, GstStateChange transition)
-{
-  GstGtkSink *gtk_sink = GST_GTK_SINK (element);
-  GstStateChangeReturn ret = GST_STATE_CHANGE_SUCCESS;
-
-  GST_DEBUG ("changing state: %s => %s",
-      gst_element_state_get_name (GST_STATE_TRANSITION_CURRENT (transition)),
-      gst_element_state_get_name (GST_STATE_TRANSITION_NEXT (transition)));
-
-  switch (transition) {
-    case GST_STATE_CHANGE_NULL_TO_READY:
-      if (gst_gtk_sink_get_widget (gtk_sink) == NULL)
-        return GST_STATE_CHANGE_FAILURE;
-      break;
-    case GST_STATE_CHANGE_READY_TO_PAUSED:
-      break;
-    case GST_STATE_CHANGE_PAUSED_TO_PLAYING:
-      break;
-    default:
-      break;
-  }
-
-  ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition);
-  if (ret == GST_STATE_CHANGE_FAILURE)
-    return ret;
-
-  switch (transition) {
-    case GST_STATE_CHANGE_PLAYING_TO_PAUSED:
-      break;
-    case GST_STATE_CHANGE_PAUSED_TO_READY:
-      gtk_gst_widget_set_buffer (gtk_sink->widget, NULL);
-      break;
-    case GST_STATE_CHANGE_READY_TO_NULL:
-      break;
-    default:
-      break;
-  }
-
-  return ret;
-}
-
-static void
-gst_gtk_sink_get_times (GstBaseSink * bsink, GstBuffer * buf,
-    GstClockTime * start, GstClockTime * end)
-{
-  GstGtkSink *gtk_sink;
-
-  gtk_sink = GST_GTK_SINK (bsink);
-
-  if (GST_BUFFER_TIMESTAMP_IS_VALID (buf)) {
-    *start = GST_BUFFER_TIMESTAMP (buf);
-    if (GST_BUFFER_DURATION_IS_VALID (buf))
-      *end = *start + GST_BUFFER_DURATION (buf);
-    else {
-      if (GST_VIDEO_INFO_FPS_N (&gtk_sink->v_info) > 0) {
-        *end = *start +
-            gst_util_uint64_scale_int (GST_SECOND,
-            GST_VIDEO_INFO_FPS_D (&gtk_sink->v_info),
-            GST_VIDEO_INFO_FPS_N (&gtk_sink->v_info));
-      }
-    }
-  }
-}
-
-gboolean
-gst_gtk_sink_set_caps (GstBaseSink * bsink, GstCaps * caps)
-{
-  GstGtkSink *gtk_sink = GST_GTK_SINK (bsink);
-
-  GST_DEBUG ("set caps with %" GST_PTR_FORMAT, caps);
-
-  if (!gst_video_info_from_caps (&gtk_sink->v_info, caps))
-    return FALSE;
-
-  if (!gtk_gst_widget_set_caps (gtk_sink->widget, caps))
-    return FALSE;
-
-  return TRUE;
-}
-
-static GstFlowReturn
-gst_gtk_sink_show_frame (GstVideoSink * vsink, GstBuffer * buf)
-{
-  GstGtkSink *gtk_sink;
-
-  GST_TRACE ("rendering buffer:%p", buf);
-
-  gtk_sink = GST_GTK_SINK (vsink);
-
-  if (gtk_sink->widget)
-    gtk_gst_widget_set_buffer (gtk_sink->widget, buf);
-
-  return GST_FLOW_OK;
 }
diff --git a/ext/gtk/gstgtksink.h b/ext/gtk/gstgtksink.h
index ded85d7..7dad3b0 100644
--- a/ext/gtk/gstgtksink.h
+++ b/ext/gtk/gstgtksink.h
@@ -26,15 +26,8 @@
 #include <gst/video/gstvideosink.h>
 #include <gst/video/video.h>
 
-typedef struct _GstGtkSink GstGtkSink;
-typedef struct _GstGtkSinkClass GstGtkSinkClass;
-typedef struct _GstGtkSinkPrivate GstGtkSinkPrivate;
+#include "gstgtkbasesink.h"
 
-#include <gtkgstwidget.h>
-
-G_BEGIN_DECLS
-
-GType gst_gtk_sink_get_type (void);
 #define GST_TYPE_GTK_SINK            (gst_gtk_sink_get_type())
 #define GST_GTK_SINK(obj)            (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_GTK_SINK,GstGtkSink))
 #define GST_GTK_SINK_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_GTK_SINK,GstGtkSinkClass))
@@ -42,6 +35,13 @@
 #define GST_IS_GTK_SINK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_GTK_SINK))
 #define GST_GTK_SINK_CAST(obj)       ((GstGtkSink*)(obj))
 
+G_BEGIN_DECLS
+
+typedef struct _GstGtkSink GstGtkSink;
+typedef struct _GstGtkSinkClass GstGtkSinkClass;
+
+GType gst_gtk_sink_get_type (void);
+
 /**
  * GstGtkSink:
  *
@@ -50,24 +50,7 @@
 struct _GstGtkSink
 {
   /* <private> */
-  GstVideoSink         parent;
-
-  GstVideoInfo         v_info;
-
-  GtkGstWidget        *widget;
-
-  /* properties */
-  gboolean             force_aspect_ratio;
-  GBinding             *bind_aspect_ratio;
-
-  gint                  par_n;
-  gint                  par_d;
-  GBinding             *bind_pixel_aspect_ratio;
-
-  gboolean              ignore_alpha;
-  GBinding             *bind_ignore_alpha;
-
-  GstGtkSinkPrivate   *priv;
+  GstGtkBaseSink       parent;
 };
 
 /**
@@ -78,11 +61,9 @@
 struct _GstGtkSinkClass
 {
   /* <private> */
-  GstVideoSinkClass object_class;
+  GstGtkBaseSinkClass object_class;
 };
 
-GstGtkSink *    gst_gtk_sink_new (void);
-
 G_END_DECLS
 
 #endif /* __GST_GTK_SINK_H__ */
diff --git a/ext/gtk/gtkgstbasewidget.c b/ext/gtk/gtkgstbasewidget.c
new file mode 100644
index 0000000..5c7cda3
--- /dev/null
+++ b/ext/gtk/gtkgstbasewidget.c
@@ -0,0 +1,491 @@
+/*
+ * GStreamer
+ * Copyright (C) 2015 Matthew Waters <matthew@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 <stdio.h>
+
+#include "gtkgstbasewidget.h"
+
+#define DEFAULT_FORCE_ASPECT_RATIO  TRUE
+#define DEFAULT_PAR_N               0
+#define DEFAULT_PAR_D               1
+#define DEFAULT_IGNORE_ALPHA        TRUE
+
+enum
+{
+  PROP_0,
+  PROP_FORCE_ASPECT_RATIO,
+  PROP_PIXEL_ASPECT_RATIO,
+  PROP_IGNORE_ALPHA,
+};
+
+static void
+gtk_gst_base_widget_get_preferred_width (GtkWidget * widget, gint * min,
+    gint * natural)
+{
+  GtkGstBaseWidget *gst_widget = (GtkGstBaseWidget *) widget;
+  gint video_width = gst_widget->display_width;
+
+  if (!gst_widget->negotiated)
+    video_width = 10;
+
+  if (min)
+    *min = 1;
+  if (natural)
+    *natural = video_width;
+}
+
+static void
+gtk_gst_base_widget_get_preferred_height (GtkWidget * widget, gint * min,
+    gint * natural)
+{
+  GtkGstBaseWidget *gst_widget = (GtkGstBaseWidget *) widget;
+  gint video_height = gst_widget->display_height;
+
+  if (!gst_widget->negotiated)
+    video_height = 10;
+
+  if (min)
+    *min = 1;
+  if (natural)
+    *natural = video_height;
+}
+
+static void
+gtk_gst_base_widget_set_property (GObject * object, guint prop_id,
+    const GValue * value, GParamSpec * pspec)
+{
+  GtkGstBaseWidget *gtk_widget = GTK_GST_BASE_WIDGET (object);
+
+  switch (prop_id) {
+    case PROP_FORCE_ASPECT_RATIO:
+      gtk_widget->force_aspect_ratio = g_value_get_boolean (value);
+      break;
+    case PROP_PIXEL_ASPECT_RATIO:
+      gtk_widget->par_n = gst_value_get_fraction_numerator (value);
+      gtk_widget->par_d = gst_value_get_fraction_denominator (value);
+      break;
+    case PROP_IGNORE_ALPHA:
+      gtk_widget->ignore_alpha = g_value_get_boolean (value);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
+}
+
+static void
+gtk_gst_base_widget_get_property (GObject * object, guint prop_id,
+    GValue * value, GParamSpec * pspec)
+{
+  GtkGstBaseWidget *gtk_widget = GTK_GST_BASE_WIDGET (object);
+
+  switch (prop_id) {
+    case PROP_FORCE_ASPECT_RATIO:
+      g_value_set_boolean (value, gtk_widget->force_aspect_ratio);
+      break;
+    case PROP_PIXEL_ASPECT_RATIO:
+      gst_value_set_fraction (value, gtk_widget->par_n, gtk_widget->par_d);
+      break;
+    case PROP_IGNORE_ALPHA:
+      g_value_set_boolean (value, gtk_widget->ignore_alpha);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
+}
+
+static gboolean
+_calculate_par (GtkGstBaseWidget * widget, GstVideoInfo * info)
+{
+  gboolean ok;
+  gint width, height;
+  gint par_n, par_d;
+  gint display_par_n, display_par_d;
+
+  width = GST_VIDEO_INFO_WIDTH (info);
+  height = GST_VIDEO_INFO_HEIGHT (info);
+
+  par_n = GST_VIDEO_INFO_PAR_N (info);
+  par_d = GST_VIDEO_INFO_PAR_D (info);
+
+  if (!par_n)
+    par_n = 1;
+
+  /* get display's PAR */
+  if (widget->par_n != 0 && widget->par_d != 0) {
+    display_par_n = widget->par_n;
+    display_par_d = widget->par_d;
+  } else {
+    display_par_n = 1;
+    display_par_d = 1;
+  }
+
+
+  ok = gst_video_calculate_display_ratio (&widget->display_ratio_num,
+      &widget->display_ratio_den, width, height, par_n, par_d, display_par_n,
+      display_par_d);
+
+  if (ok) {
+    GST_LOG ("PAR: %u/%u DAR:%u/%u", par_n, par_d, display_par_n,
+        display_par_d);
+    return TRUE;
+  }
+
+  return FALSE;
+}
+
+static void
+_apply_par (GtkGstBaseWidget * widget)
+{
+  guint display_ratio_num, display_ratio_den;
+  gint width, height;
+
+  width = GST_VIDEO_INFO_WIDTH (&widget->v_info);
+  height = GST_VIDEO_INFO_HEIGHT (&widget->v_info);
+
+  display_ratio_num = widget->display_ratio_num;
+  display_ratio_den = widget->display_ratio_den;
+
+  if (height % display_ratio_den == 0) {
+    GST_DEBUG ("keeping video height");
+    widget->display_width = (guint)
+        gst_util_uint64_scale_int (height, display_ratio_num,
+        display_ratio_den);
+    widget->display_height = height;
+  } else if (width % display_ratio_num == 0) {
+    GST_DEBUG ("keeping video width");
+    widget->display_width = width;
+    widget->display_height = (guint)
+        gst_util_uint64_scale_int (width, display_ratio_den, display_ratio_num);
+  } else {
+    GST_DEBUG ("approximating while keeping video height");
+    widget->display_width = (guint)
+        gst_util_uint64_scale_int (height, display_ratio_num,
+        display_ratio_den);
+    widget->display_height = height;
+  }
+
+  GST_DEBUG ("scaling to %dx%d", widget->display_width, widget->display_height);
+}
+
+static gboolean
+_queue_draw (GtkGstBaseWidget * widget)
+{
+  GTK_GST_BASE_WIDGET_LOCK (widget);
+  widget->draw_id = 0;
+
+  if (widget->pending_resize) {
+    widget->pending_resize = FALSE;
+
+    widget->v_info = widget->pending_v_info;
+    widget->negotiated = TRUE;
+
+    _apply_par (widget);
+
+    gtk_widget_queue_resize (GTK_WIDGET (widget));
+  } else {
+    gtk_widget_queue_draw (GTK_WIDGET (widget));
+  }
+
+  GTK_GST_BASE_WIDGET_UNLOCK (widget);
+
+  return G_SOURCE_REMOVE;
+}
+
+static const gchar *
+_gdk_key_to_navigation_string (guint keyval)
+{
+  /* TODO: expand */
+  switch (keyval) {
+#define KEY(key) case GDK_KEY_ ## key: return G_STRINGIFY(key)
+      KEY (Up);
+      KEY (Down);
+      KEY (Left);
+      KEY (Right);
+      KEY (Home);
+      KEY (End);
+#undef KEY
+    default:
+      return NULL;
+  }
+}
+
+static gboolean
+gtk_gst_base_widget_key_event (GtkWidget * widget, GdkEventKey * event)
+{
+  GtkGstBaseWidget *base_widget = GTK_GST_BASE_WIDGET (widget);
+  GstElement *element;
+
+  if ((element = g_weak_ref_get (&base_widget->element))) {
+    if (GST_IS_NAVIGATION (element)) {
+      const gchar *str = _gdk_key_to_navigation_string (event->keyval);
+      const gchar *key_type =
+          event->type == GDK_KEY_PRESS ? "key-press" : "key-release";
+
+      if (!str)
+        str = event->string;
+
+      gst_navigation_send_key_event (GST_NAVIGATION (element), key_type, str);
+    }
+    g_object_unref (element);
+  }
+
+  return TRUE;
+}
+
+static void
+_fit_stream_to_allocated_size (GtkGstBaseWidget * base_widget,
+    GtkAllocation * allocation, GstVideoRectangle * result)
+{
+  if (base_widget->force_aspect_ratio) {
+    GstVideoRectangle src, dst;
+
+    src.x = 0;
+    src.y = 0;
+    src.w = base_widget->display_width;
+    src.h = base_widget->display_height;
+
+    dst.x = 0;
+    dst.y = 0;
+    dst.w = allocation->width;
+    dst.h = allocation->height;
+
+    gst_video_sink_center_rect (src, dst, result, TRUE);
+  } else {
+    result->x = 0;
+    result->y = 0;
+    result->w = allocation->width;
+    result->h = allocation->height;
+  }
+}
+
+static void
+_display_size_to_stream_size (GtkGstBaseWidget * base_widget, gdouble x,
+    gdouble y, gdouble * stream_x, gdouble * stream_y)
+{
+  gdouble stream_width, stream_height;
+  GtkAllocation allocation;
+  GstVideoRectangle result;
+
+  gtk_widget_get_allocation (GTK_WIDGET (base_widget), &allocation);
+  _fit_stream_to_allocated_size (base_widget, &allocation, &result);
+
+  stream_width = (gdouble) GST_VIDEO_INFO_WIDTH (&base_widget->v_info);
+  stream_height = (gdouble) GST_VIDEO_INFO_HEIGHT (&base_widget->v_info);
+
+  /* from display coordinates to stream coordinates */
+  if (result.w > 0)
+    *stream_x = (x - result.x) / result.w * stream_width;
+  else
+    *stream_x = 0.;
+
+  /* clip to stream size */
+  if (*stream_x < 0.)
+    *stream_x = 0.;
+  if (*stream_x > GST_VIDEO_INFO_WIDTH (&base_widget->v_info))
+    *stream_x = GST_VIDEO_INFO_WIDTH (&base_widget->v_info);
+
+  /* same for y-axis */
+  if (result.h > 0)
+    *stream_y = (y - result.y) / result.h * stream_height;
+  else
+    *stream_y = 0.;
+
+  if (*stream_y < 0.)
+    *stream_y = 0.;
+  if (*stream_y > GST_VIDEO_INFO_HEIGHT (&base_widget->v_info))
+    *stream_y = GST_VIDEO_INFO_HEIGHT (&base_widget->v_info);
+
+  GST_TRACE ("transform %fx%f into %fx%f", x, y, *stream_x, *stream_y);
+}
+
+static gboolean
+gtk_gst_base_widget_button_event (GtkWidget * widget, GdkEventButton * event)
+{
+  GtkGstBaseWidget *base_widget = GTK_GST_BASE_WIDGET (widget);
+  GstElement *element;
+
+  if ((element = g_weak_ref_get (&base_widget->element))) {
+    if (GST_IS_NAVIGATION (element)) {
+      const gchar *key_type =
+          event->type ==
+          GDK_BUTTON_PRESS ? "mouse-button-press" : "mouse-button-release";
+      gdouble x, y;
+
+      _display_size_to_stream_size (base_widget, event->x, event->y, &x, &y);
+
+      gst_navigation_send_mouse_event (GST_NAVIGATION (element), key_type,
+          event->button, x, y);
+    }
+    g_object_unref (element);
+  }
+
+  return TRUE;
+}
+
+static gboolean
+gtk_gst_base_widget_motion_event (GtkWidget * widget, GdkEventMotion * event)
+{
+  GtkGstBaseWidget *base_widget = GTK_GST_BASE_WIDGET (widget);
+  GstElement *element;
+
+  if ((element = g_weak_ref_get (&base_widget->element))) {
+    if (GST_IS_NAVIGATION (element)) {
+      gdouble x, y;
+
+      _display_size_to_stream_size (base_widget, event->x, event->y, &x, &y);
+
+      gst_navigation_send_mouse_event (GST_NAVIGATION (element), "mouse-move",
+          0, x, y);
+    }
+    g_object_unref (element);
+  }
+
+  return TRUE;
+}
+
+void
+gtk_gst_base_widget_class_init (GtkGstBaseWidgetClass * klass)
+{
+  GObjectClass *gobject_klass = (GObjectClass *) klass;
+  GtkWidgetClass *widget_klass = (GtkWidgetClass *) klass;
+
+  gobject_klass->set_property = gtk_gst_base_widget_set_property;
+  gobject_klass->get_property = gtk_gst_base_widget_get_property;
+
+  g_object_class_install_property (gobject_klass, PROP_FORCE_ASPECT_RATIO,
+      g_param_spec_boolean ("force-aspect-ratio",
+          "Force aspect ratio",
+          "When enabled, scaling will respect original aspect ratio",
+          DEFAULT_FORCE_ASPECT_RATIO,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  g_object_class_install_property (gobject_klass, PROP_PIXEL_ASPECT_RATIO,
+      gst_param_spec_fraction ("pixel-aspect-ratio", "Pixel Aspect Ratio",
+          "The pixel aspect ratio of the device", DEFAULT_PAR_N, DEFAULT_PAR_D,
+          G_MAXINT, 1, 1, 1, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  g_object_class_install_property (gobject_klass, PROP_IGNORE_ALPHA,
+      g_param_spec_boolean ("ignore-alpha", "Ignore Alpha",
+          "When enabled, alpha will be ignored and converted to black",
+          DEFAULT_IGNORE_ALPHA, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  widget_klass->get_preferred_width = gtk_gst_base_widget_get_preferred_width;
+  widget_klass->get_preferred_height = gtk_gst_base_widget_get_preferred_height;
+  widget_klass->key_press_event = gtk_gst_base_widget_key_event;
+  widget_klass->key_release_event = gtk_gst_base_widget_key_event;
+  widget_klass->button_press_event = gtk_gst_base_widget_button_event;
+  widget_klass->button_release_event = gtk_gst_base_widget_button_event;
+  widget_klass->motion_notify_event = gtk_gst_base_widget_motion_event;
+}
+
+void
+gtk_gst_base_widget_init (GtkGstBaseWidget * widget)
+{
+  int event_mask;
+
+  widget->force_aspect_ratio = DEFAULT_FORCE_ASPECT_RATIO;
+  widget->par_n = DEFAULT_PAR_N;
+  widget->par_d = DEFAULT_PAR_D;
+  widget->ignore_alpha = DEFAULT_IGNORE_ALPHA;
+
+  gst_video_info_init (&widget->v_info);
+  gst_video_info_init (&widget->pending_v_info);
+
+  g_weak_ref_init (&widget->element, NULL);
+  g_mutex_init (&widget->lock);
+
+  gtk_widget_set_can_focus (GTK_WIDGET (widget), TRUE);
+  event_mask = gtk_widget_get_events (GTK_WIDGET (widget));
+  event_mask |= GDK_KEY_PRESS_MASK
+      | GDK_KEY_RELEASE_MASK
+      | GDK_BUTTON_PRESS_MASK
+      | GDK_BUTTON_RELEASE_MASK
+      | GDK_POINTER_MOTION_MASK | GDK_BUTTON_MOTION_MASK;
+  gtk_widget_set_events (GTK_WIDGET (widget), event_mask);
+}
+
+void
+gtk_gst_base_widget_finalize (GObject * object)
+{
+  GtkGstBaseWidget *widget = GTK_GST_BASE_WIDGET (object);
+
+  gst_buffer_replace (&widget->pending_buffer, NULL);
+  gst_buffer_replace (&widget->buffer, NULL);
+  g_mutex_clear (&widget->lock);
+  g_weak_ref_clear (&widget->element);
+
+  if (widget->draw_id)
+    g_source_remove (widget->draw_id);
+}
+
+void
+gtk_gst_base_widget_set_element (GtkGstBaseWidget * widget,
+    GstElement * element)
+{
+  g_weak_ref_set (&widget->element, element);
+}
+
+gboolean
+gtk_gst_base_widget_set_format (GtkGstBaseWidget * widget,
+    GstVideoInfo * v_info)
+{
+  GTK_GST_BASE_WIDGET_LOCK (widget);
+
+  if (gst_video_info_is_equal (&widget->v_info, v_info)) {
+    GTK_GST_BASE_WIDGET_UNLOCK (widget);
+    return TRUE;
+  }
+
+  if (!_calculate_par (widget, v_info)) {
+    GTK_GST_BASE_WIDGET_UNLOCK (widget);
+    return FALSE;
+  }
+
+  widget->pending_resize = TRUE;
+  widget->pending_v_info = *v_info;
+
+  GTK_GST_BASE_WIDGET_UNLOCK (widget);
+
+  return TRUE;
+}
+
+void
+gtk_gst_base_widget_set_buffer (GtkGstBaseWidget * widget, GstBuffer * buffer)
+{
+  /* As we have no type, this is better then no check */
+  g_return_if_fail (GTK_IS_WIDGET (widget));
+
+  GTK_GST_BASE_WIDGET_LOCK (widget);
+
+  gst_buffer_replace (&widget->pending_buffer, buffer);
+
+  if (!widget->draw_id) {
+    widget->draw_id = g_idle_add_full (G_PRIORITY_DEFAULT,
+        (GSourceFunc) _queue_draw, widget, NULL);
+  }
+
+  GTK_GST_BASE_WIDGET_UNLOCK (widget);
+}
diff --git a/ext/gtk/gtkgstbasewidget.h b/ext/gtk/gtkgstbasewidget.h
new file mode 100644
index 0000000..13737c6
--- /dev/null
+++ b/ext/gtk/gtkgstbasewidget.h
@@ -0,0 +1,97 @@
+/*
+ * GStreamer
+ * Copyright (C) 2015 Matthew Waters <matthew@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.
+ */
+
+#ifndef __GTK_GST_BASE_WIDGET_H__
+#define __GTK_GST_BASE_WIDGET_H__
+
+#include <gtk/gtk.h>
+#include <gst/gst.h>
+#include <gst/video/video.h>
+
+#define GTK_GST_BASE_WIDGET(w)         ((GtkGstBaseWidget *)(w))
+#define GTK_GST_BASE_WIDGET_CLASS(k)   ((GtkGstBaseWidgetClass *)(k))
+#define GTK_GST_BASE_WIDGET_LOCK(w)    g_mutex_lock(&((GtkGstBaseWidget*)(w))->lock)
+#define GTK_GST_BASE_WIDGET_UNLOCK(w)  g_mutex_unlock(&((GtkGstBaseWidget*)(w))->lock)
+
+G_BEGIN_DECLS
+
+typedef struct _GtkGstBaseWidget GtkGstBaseWidget;
+typedef struct _GtkGstBaseWidgetClass GtkGstBaseWidgetClass;
+
+struct _GtkGstBaseWidget
+{
+  union {
+    GtkDrawingArea drawing_area;
+#if GTK_CHECK_VERSION(3, 15, 0)
+    GtkGLArea gl_area;
+#endif
+  } parent;
+
+  /* properties */
+  gboolean force_aspect_ratio;
+  gint par_n, par_d;
+  gboolean ignore_alpha;
+
+  gint display_width;
+  gint display_height;
+
+  gboolean negotiated;
+  GstBuffer *pending_buffer;
+  GstBuffer *buffer;
+  GstVideoInfo v_info;
+
+  /* resize */
+  gboolean pending_resize;
+  GstVideoInfo pending_v_info;
+  guint display_ratio_num;
+  guint display_ratio_den;
+
+  /*< private >*/
+  GMutex lock;
+  GWeakRef element;
+
+  /* Pending draw idles callback */
+  guint draw_id;
+};
+
+struct _GtkGstBaseWidgetClass
+{
+  union {
+    GtkDrawingAreaClass drawing_area_class;
+#if GTK_CHECK_VERSION(3, 15, 0)
+    GtkGLAreaClass gl_area_class;
+#endif
+  } parent_class;
+};
+
+/* For implementer */
+void            gtk_gst_base_widget_class_init           (GtkGstBaseWidgetClass * klass);
+void            gtk_gst_base_widget_init                 (GtkGstBaseWidget * widget);
+
+void            gtk_gst_base_widget_finalize             (GObject * object);
+
+/* API */
+gboolean        gtk_gst_base_widget_set_format           (GtkGstBaseWidget * widget, GstVideoInfo * v_info);
+void            gtk_gst_base_widget_set_buffer           (GtkGstBaseWidget * widget, GstBuffer * buffer);
+void            gtk_gst_base_widget_set_element          (GtkGstBaseWidget * widget, GstElement * element);
+
+G_END_DECLS
+
+#endif /* __GTK_GST_BASE_WIDGET_H__ */
diff --git a/ext/gtk/gtkgstglwidget.c b/ext/gtk/gtkgstglwidget.c
index e7e1221..cdce3aa 100644
--- a/ext/gtk/gtkgstglwidget.c
+++ b/ext/gtk/gtkgstglwidget.c
@@ -51,43 +51,14 @@
 
 G_DEFINE_TYPE_WITH_CODE (GtkGstGLWidget, gtk_gst_gl_widget, GTK_TYPE_GL_AREA,
     GST_DEBUG_CATEGORY_INIT (GST_CAT_DEFAULT, "gtkgstglwidget", 0,
-        "Gtk Gst GL Widget"););
+        "Gtk Gst GL Widget");
+    );
 
 #define GTK_GST_GL_WIDGET_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), \
     GTK_TYPE_GST_GL_WIDGET, GtkGstGLWidgetPrivate))
 
-#define DEFAULT_FORCE_ASPECT_RATIO  TRUE
-#define DEFAULT_PAR_N               0
-#define DEFAULT_PAR_D               1
-#define DEFAULT_IGNORE_ALPHA        TRUE
-
-enum
-{
-  PROP_0,
-  PROP_FORCE_ASPECT_RATIO,
-  PROP_PIXEL_ASPECT_RATIO,
-  PROP_IGNORE_ALPHA,
-};
-
 struct _GtkGstGLWidgetPrivate
 {
-  GMutex lock;
-
-  /* properties */
-  gboolean force_aspect_ratio;
-  gint par_n, par_d;
-  gboolean ignore_alpha;
-
-  gint display_width;
-  gint display_height;
-
-  gboolean negotiated;
-  GstBuffer *buffer;
-  GstCaps *gl_caps;
-  GstCaps *caps;
-  GstVideoInfo v_info;
-  gboolean new_buffer;
-
   gboolean initted;
   GstGLDisplay *display;
   GdkGLContext *gdk_context;
@@ -100,40 +71,9 @@
   GLint attr_position;
   GLint attr_texture;
   GLuint current_tex;
+  GstGLOverlayCompositor *overlay_compositor;
 };
 
-static void
-gtk_gst_gl_widget_get_preferred_width (GtkWidget * widget, gint * min,
-    gint * natural)
-{
-  GtkGstGLWidget *gst_widget = (GtkGstGLWidget *) widget;
-  gint video_width = gst_widget->priv->display_width;
-
-  if (!gst_widget->priv->negotiated)
-    video_width = 10;
-
-  if (min)
-    *min = 1;
-  if (natural)
-    *natural = video_width;
-}
-
-static void
-gtk_gst_gl_widget_get_preferred_height (GtkWidget * widget, gint * min,
-    gint * natural)
-{
-  GtkGstGLWidget *gst_widget = (GtkGstGLWidget *) widget;
-  gint video_height = gst_widget->priv->display_height;
-
-  if (!gst_widget->priv->negotiated)
-    video_height = 10;
-
-  if (min)
-    *min = 1;
-  if (natural)
-    *natural = video_height;
-}
-
 static const GLfloat vertices[] = {
   1.0f, 1.0f, 0.0f, 1.0f, 0.0f,
   -1.0f, 1.0f, 0.0f, 0.0f, 0.0f,
@@ -144,51 +84,53 @@
 static void
 gtk_gst_gl_widget_bind_buffer (GtkGstGLWidget * gst_widget)
 {
-  const GstGLFuncs *gl = gst_widget->priv->context->gl_vtable;
+  GtkGstGLWidgetPrivate *priv = gst_widget->priv;
+  const GstGLFuncs *gl = priv->context->gl_vtable;
 
-  gl->BindBuffer (GL_ARRAY_BUFFER, gst_widget->priv->vertex_buffer);
+  gl->BindBuffer (GL_ARRAY_BUFFER, priv->vertex_buffer);
 
   /* Load the vertex position */
-  gl->VertexAttribPointer (gst_widget->priv->attr_position, 3, GL_FLOAT,
-      GL_FALSE, 5 * sizeof (GLfloat), (void *) 0);
+  gl->VertexAttribPointer (priv->attr_position, 3, GL_FLOAT, GL_FALSE,
+      5 * sizeof (GLfloat), (void *) 0);
 
   /* Load the texture coordinate */
-  gl->VertexAttribPointer (gst_widget->priv->attr_texture, 2, GL_FLOAT,
-      GL_FALSE, 5 * sizeof (GLfloat), (void *) (3 * sizeof (GLfloat)));
+  gl->VertexAttribPointer (priv->attr_texture, 2, GL_FLOAT, GL_FALSE,
+      5 * sizeof (GLfloat), (void *) (3 * sizeof (GLfloat)));
 
-  gl->EnableVertexAttribArray (gst_widget->priv->attr_position);
-  gl->EnableVertexAttribArray (gst_widget->priv->attr_texture);
+  gl->EnableVertexAttribArray (priv->attr_position);
+  gl->EnableVertexAttribArray (priv->attr_texture);
 }
 
 static void
 gtk_gst_gl_widget_unbind_buffer (GtkGstGLWidget * gst_widget)
 {
-  const GstGLFuncs *gl = gst_widget->priv->context->gl_vtable;
+  GtkGstGLWidgetPrivate *priv = gst_widget->priv;
+  const GstGLFuncs *gl = priv->context->gl_vtable;
 
   gl->BindBuffer (GL_ARRAY_BUFFER, 0);
 
-  gl->DisableVertexAttribArray (gst_widget->priv->attr_position);
-  gl->DisableVertexAttribArray (gst_widget->priv->attr_texture);
+  gl->DisableVertexAttribArray (priv->attr_position);
+  gl->DisableVertexAttribArray (priv->attr_texture);
 }
 
 static void
 gtk_gst_gl_widget_init_redisplay (GtkGstGLWidget * gst_widget)
 {
-  const GstGLFuncs *gl = gst_widget->priv->context->gl_vtable;
+  GtkGstGLWidgetPrivate *priv = gst_widget->priv;
+  const GstGLFuncs *gl = priv->context->gl_vtable;
 
-  gst_widget->priv->shader = gst_gl_shader_new (gst_widget->priv->context);
+  priv->shader = gst_gl_shader_new (priv->context);
 
-  gst_gl_shader_compile_with_default_vf_and_check
-      (gst_widget->priv->shader, &gst_widget->priv->attr_position,
-      &gst_widget->priv->attr_texture);
+  gst_gl_shader_compile_with_default_vf_and_check (priv->shader,
+      &priv->attr_position, &priv->attr_texture);
 
   if (gl->GenVertexArrays) {
-    gl->GenVertexArrays (1, &gst_widget->priv->vao);
-    gl->BindVertexArray (gst_widget->priv->vao);
+    gl->GenVertexArrays (1, &priv->vao);
+    gl->BindVertexArray (priv->vao);
   }
 
-  gl->GenBuffers (1, &gst_widget->priv->vertex_buffer);
-  gl->BindBuffer (GL_ARRAY_BUFFER, gst_widget->priv->vertex_buffer);
+  gl->GenBuffers (1, &priv->vertex_buffer);
+  gl->BindBuffer (GL_ARRAY_BUFFER, priv->vertex_buffer);
   gl->BufferData (GL_ARRAY_BUFFER, 4 * 5 * sizeof (GLfloat), vertices,
       GL_STATIC_DRAW);
 
@@ -199,16 +141,20 @@
 
   gl->BindBuffer (GL_ARRAY_BUFFER, 0);
 
-  gst_widget->priv->initted = TRUE;
+  priv->overlay_compositor =
+      gst_gl_overlay_compositor_new (priv->other_context);
+
+  priv->initted = TRUE;
 }
 
 static void
 _redraw_texture (GtkGstGLWidget * gst_widget, guint tex)
 {
-  const GstGLFuncs *gl = gst_widget->priv->context->gl_vtable;
+  GtkGstGLWidgetPrivate *priv = gst_widget->priv;
+  const GstGLFuncs *gl = priv->context->gl_vtable;
   const GLushort indices[] = { 0, 1, 2, 0, 2, 3 };
 
-  if (gst_widget->priv->force_aspect_ratio) {
+  if (gst_widget->base.force_aspect_ratio) {
     GstVideoRectangle src, dst, result;
     gint widget_width, widget_height, widget_scale;
 
@@ -221,8 +167,8 @@
 
     src.x = 0;
     src.y = 0;
-    src.w = gst_widget->priv->display_width;
-    src.h = gst_widget->priv->display_height;
+    src.w = gst_widget->base.display_width;
+    src.h = gst_widget->base.display_height;
 
     dst.x = 0;
     dst.y = 0;
@@ -234,16 +180,16 @@
     gl->Viewport (result.x, result.y, result.w, result.h);
   }
 
-  gst_gl_shader_use (gst_widget->priv->shader);
+  gst_gl_shader_use (priv->shader);
 
   if (gl->BindVertexArray)
-    gl->BindVertexArray (gst_widget->priv->vao);
+    gl->BindVertexArray (priv->vao);
   else
     gtk_gst_gl_widget_bind_buffer (gst_widget);
 
   gl->ActiveTexture (GL_TEXTURE0);
   gl->BindTexture (GL_TEXTURE_2D, tex);
-  gst_gl_shader_set_uniform_1i (gst_widget->priv->shader, "tex", 0);
+  gst_gl_shader_set_uniform_1i (priv->shader, "tex", 0);
 
   gl->DrawElements (GL_TRIANGLES, 6, GL_UNSIGNED_SHORT, indices);
 
@@ -255,56 +201,78 @@
   gl->BindTexture (GL_TEXTURE_2D, 0);
 }
 
+static inline void
+_draw_black (void)
+{
+  glClearColor (0.0, 0.0, 0.0, 0.0);
+  glClear (GL_COLOR_BUFFER_BIT);
+}
+
 static gboolean
 gtk_gst_gl_widget_render (GtkGLArea * widget, GdkGLContext * context)
 {
-  GtkGstGLWidget *gst_widget = (GtkGstGLWidget *) widget;
+  GtkGstGLWidgetPrivate *priv = GTK_GST_GL_WIDGET (widget)->priv;
+  GtkGstBaseWidget *base_widget = GTK_GST_BASE_WIDGET (widget);
 
-  g_mutex_lock (&gst_widget->priv->lock);
+  GTK_GST_BASE_WIDGET_LOCK (widget);
 
-  if (!gst_widget->priv->initted && gst_widget->priv->context)
-    gtk_gst_gl_widget_init_redisplay (gst_widget);
+  if (!priv->context || !priv->other_context)
+    goto done;
 
-  if (gst_widget->priv->initted && gst_widget->priv->negotiated
-      && gst_widget->priv->buffer) {
-    GST_DEBUG ("rendering buffer %p with gdk context %p",
-        gst_widget->priv->buffer, context);
+  gst_gl_context_activate (priv->other_context, TRUE);
 
-    gst_gl_context_activate (gst_widget->priv->other_context, TRUE);
+  if (!priv->initted)
+    gtk_gst_gl_widget_init_redisplay (GTK_GST_GL_WIDGET (widget));
 
-    if (gst_widget->priv->new_buffer || gst_widget->priv->current_tex == 0) {
-      GstVideoFrame gl_frame;
-      GstGLSyncMeta *sync_meta;
-
-      if (!gst_video_frame_map (&gl_frame, &gst_widget->priv->v_info,
-              gst_widget->priv->buffer, GST_MAP_READ | GST_MAP_GL)) {
-        goto error;
-      }
-
-      sync_meta = gst_buffer_get_gl_sync_meta (gst_widget->priv->buffer);
-      if (sync_meta) {
-        gst_gl_sync_meta_set_sync_point (sync_meta, gst_widget->priv->context);
-        gst_gl_sync_meta_wait (sync_meta, gst_widget->priv->other_context);
-      }
-
-      gst_widget->priv->current_tex = *(guint *) gl_frame.data[0];
-
-      gst_video_frame_unmap (&gl_frame);
-    }
-
-    _redraw_texture (gst_widget, gst_widget->priv->current_tex);
-    gst_widget->priv->new_buffer = FALSE;
-  } else {
-  error:
-    /* FIXME: nothing to display */
-    glClearColor (0.0, 0.0, 0.0, 0.0);
-    glClear (GL_COLOR_BUFFER_BIT);
+  if (!priv->initted || !base_widget->negotiated) {
+    _draw_black ();
+    goto done;
   }
 
-  if (gst_widget->priv->other_context)
-    gst_gl_context_activate (gst_widget->priv->other_context, FALSE);
+  /* Upload latest buffer */
+  if (base_widget->pending_buffer) {
+    GstBuffer *buffer = base_widget->pending_buffer;
+    GstVideoFrame gl_frame;
+    GstGLSyncMeta *sync_meta;
 
-  g_mutex_unlock (&gst_widget->priv->lock);
+    if (!gst_video_frame_map (&gl_frame, &base_widget->v_info, buffer,
+            GST_MAP_READ | GST_MAP_GL)) {
+      _draw_black ();
+      goto done;
+    }
+
+    gst_gl_overlay_compositor_upload_overlays (priv->overlay_compositor,
+        buffer);
+
+    sync_meta = gst_buffer_get_gl_sync_meta (buffer);
+    if (sync_meta) {
+      gst_gl_sync_meta_set_sync_point (sync_meta, priv->context);
+      gst_gl_sync_meta_wait (sync_meta, priv->other_context);
+    }
+
+    priv->current_tex = *(guint *) gl_frame.data[0];
+
+    gst_video_frame_unmap (&gl_frame);
+
+    if (base_widget->buffer)
+      gst_buffer_unref (base_widget->buffer);
+
+    /* Keep the buffer to ensure current_tex stay valid */
+    base_widget->buffer = buffer;
+    base_widget->pending_buffer = NULL;
+  }
+
+  GST_DEBUG ("rendering buffer %p with gdk context %p",
+      base_widget->buffer, context);
+
+  _redraw_texture (GTK_GST_GL_WIDGET (widget), priv->current_tex);
+  gst_gl_overlay_compositor_draw_overlays (priv->overlay_compositor);
+
+done:
+  if (priv->other_context)
+    gst_gl_context_activate (priv->other_context, FALSE);
+
+  GTK_GST_BASE_WIDGET_UNLOCK (widget);
   return FALSE;
 }
 
@@ -357,195 +325,100 @@
 static void
 _reset_gl (GtkGstGLWidget * gst_widget)
 {
-  const GstGLFuncs *gl = gst_widget->priv->other_context->gl_vtable;
+  GtkGstGLWidgetPrivate *priv = gst_widget->priv;
+  const GstGLFuncs *gl = priv->other_context->gl_vtable;
 
-  if (!gst_widget->priv->gdk_context)
-    gst_widget->priv->gdk_context =
-        gtk_gl_area_get_context (GTK_GL_AREA (gst_widget));
-  if (gst_widget->priv->gdk_context == NULL)
+  if (!priv->gdk_context)
+    priv->gdk_context = gtk_gl_area_get_context (GTK_GL_AREA (gst_widget));
+
+  if (priv->gdk_context == NULL)
     return;
 
-  gdk_gl_context_make_current (gst_widget->priv->gdk_context);
-  gst_gl_context_activate (gst_widget->priv->other_context, TRUE);
+  gdk_gl_context_make_current (priv->gdk_context);
+  gst_gl_context_activate (priv->other_context, TRUE);
 
-  if (gst_widget->priv->vao) {
-    gl->DeleteVertexArrays (1, &gst_widget->priv->vao);
-    gst_widget->priv->vao = 0;
+  if (priv->vao) {
+    gl->DeleteVertexArrays (1, &priv->vao);
+    priv->vao = 0;
   }
 
-  if (gst_widget->priv->vertex_buffer) {
-    gl->DeleteBuffers (1, &gst_widget->priv->vertex_buffer);
-    gst_widget->priv->vertex_buffer = 0;
+  if (priv->vertex_buffer) {
+    gl->DeleteBuffers (1, &priv->vertex_buffer);
+    priv->vertex_buffer = 0;
   }
 
-  if (gst_widget->priv->upload) {
-    gst_object_unref (gst_widget->priv->upload);
-    gst_widget->priv->upload = NULL;
+  if (priv->upload) {
+    gst_object_unref (priv->upload);
+    priv->upload = NULL;
   }
 
-  if (gst_widget->priv->shader) {
-    gst_object_unref (gst_widget->priv->shader);
-    gst_widget->priv->shader = NULL;
+  if (priv->shader) {
+    gst_object_unref (priv->shader);
+    priv->shader = NULL;
   }
 
-  gst_gl_context_activate (gst_widget->priv->other_context, FALSE);
+  if (priv->overlay_compositor)
+    gst_object_unref (priv->overlay_compositor);
 
-  gst_object_unref (gst_widget->priv->other_context);
-  gst_widget->priv->other_context = NULL;
+  gst_gl_context_activate (priv->other_context, FALSE);
+
+  gst_object_unref (priv->other_context);
+  priv->other_context = NULL;
 
   gdk_gl_context_clear_current ();
 
-  g_object_unref (gst_widget->priv->gdk_context);
-  gst_widget->priv->gdk_context = NULL;
-}
-
-static void
-_reset (GtkGstGLWidget * gst_widget)
-{
-  gst_buffer_replace (&gst_widget->priv->buffer, NULL);
-
-  gst_caps_replace (&gst_widget->priv->caps, NULL);
-  gst_caps_replace (&gst_widget->priv->gl_caps, NULL);
-
-  gst_widget->priv->negotiated = FALSE;
-  gst_widget->priv->initted = FALSE;
-  gst_widget->priv->vao = 0;
-  gst_widget->priv->vertex_buffer = 0;
-  gst_widget->priv->attr_position = 0;
-  gst_widget->priv->attr_texture = 0;
-  gst_widget->priv->current_tex = 0;
-  gst_widget->priv->new_buffer = TRUE;
+  g_object_unref (priv->gdk_context);
+  priv->gdk_context = NULL;
 }
 
 static void
 gtk_gst_gl_widget_finalize (GObject * object)
 {
-  GtkGstGLWidget *widget = GTK_GST_GL_WIDGET_CAST (object);
+  GtkGstGLWidgetPrivate *priv = GTK_GST_GL_WIDGET (object)->priv;
+  GtkGstBaseWidget *base_widget = GTK_GST_BASE_WIDGET (object);
 
-  g_mutex_clear (&widget->priv->lock);
+  if (priv->other_context)
+    _invoke_on_main ((ThreadFunc) _reset_gl, base_widget);
 
-  _reset (widget);
+  if (priv->context)
+    gst_object_unref (priv->context);
 
-  if (widget->priv->other_context) {
-    _invoke_on_main ((ThreadFunc) _reset_gl, widget);
-  }
+  if (priv->display)
+    gst_object_unref (priv->display);
 
-  if (widget->priv->context) {
-    gst_object_unref (widget->priv->context);
-    widget->priv->context = NULL;
-  }
-
-  if (widget->priv->display) {
-    gst_object_unref (widget->priv->display);
-    widget->priv->display = NULL;
-  }
-
+  gtk_gst_base_widget_finalize (object);
   G_OBJECT_CLASS (gtk_gst_gl_widget_parent_class)->finalize (object);
 }
 
 static void
-gtk_gst_gl_widget_set_property (GObject * object, guint prop_id,
-    const GValue * value, GParamSpec * pspec)
-{
-  GtkGstGLWidget *gtk_widget = GTK_GST_GL_WIDGET (object);
-
-  switch (prop_id) {
-    case PROP_FORCE_ASPECT_RATIO:
-      gtk_widget->priv->force_aspect_ratio = g_value_get_boolean (value);
-      break;
-    case PROP_PIXEL_ASPECT_RATIO:
-      gtk_widget->priv->par_n = gst_value_get_fraction_numerator (value);
-      gtk_widget->priv->par_d = gst_value_get_fraction_denominator (value);
-      break;
-    case PROP_IGNORE_ALPHA:
-      gtk_widget->priv->ignore_alpha = g_value_get_boolean (value);
-      gtk_gl_area_set_has_alpha ((GtkGLArea *) gtk_widget,
-          !gtk_widget->priv->ignore_alpha);
-      break;
-    default:
-      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
-      break;
-  }
-}
-
-static void
-gtk_gst_gl_widget_get_property (GObject * object, guint prop_id, GValue * value,
-    GParamSpec * pspec)
-{
-  GtkGstGLWidget *gtk_widget = GTK_GST_GL_WIDGET (object);
-
-  switch (prop_id) {
-    case PROP_FORCE_ASPECT_RATIO:
-      g_value_set_boolean (value, gtk_widget->priv->force_aspect_ratio);
-      break;
-    case PROP_PIXEL_ASPECT_RATIO:
-      gst_value_set_fraction (value, gtk_widget->priv->par_n,
-          gtk_widget->priv->par_d);
-      break;
-    case PROP_IGNORE_ALPHA:
-      g_value_set_boolean (value, gtk_widget->priv->ignore_alpha);
-      break;
-    default:
-      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
-      break;
-  }
-}
-
-static void
 gtk_gst_gl_widget_class_init (GtkGstGLWidgetClass * klass)
 {
   GObjectClass *gobject_klass = (GObjectClass *) klass;
-  GtkWidgetClass *widget_klass = (GtkWidgetClass *) klass;
   GtkGLAreaClass *gl_widget_klass = (GtkGLAreaClass *) klass;
 
   g_type_class_add_private (klass, sizeof (GtkGstGLWidgetPrivate));
+  gtk_gst_base_widget_class_init (GTK_GST_BASE_WIDGET_CLASS (klass));
 
-  gobject_klass->set_property = gtk_gst_gl_widget_set_property;
-  gobject_klass->get_property = gtk_gst_gl_widget_get_property;
   gobject_klass->finalize = gtk_gst_gl_widget_finalize;
-
-  g_object_class_install_property (gobject_klass, PROP_FORCE_ASPECT_RATIO,
-      g_param_spec_boolean ("force-aspect-ratio",
-          "Force aspect ratio",
-          "When enabled, scaling will respect original aspect ratio",
-          DEFAULT_FORCE_ASPECT_RATIO,
-          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
-
-  g_object_class_install_property (gobject_klass, PROP_PIXEL_ASPECT_RATIO,
-      gst_param_spec_fraction ("pixel-aspect-ratio", "Pixel Aspect Ratio",
-          "The pixel aspect ratio of the device", DEFAULT_PAR_N, DEFAULT_PAR_D,
-          G_MAXINT, 1, 1, 1, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
-
-  g_object_class_install_property (gobject_klass, PROP_IGNORE_ALPHA,
-      g_param_spec_boolean ("ignore-alpha", "Ignore Alpha",
-          "When enabled, alpha will be ignored and converted to black",
-          DEFAULT_IGNORE_ALPHA, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
-
   gl_widget_klass->render = gtk_gst_gl_widget_render;
-
-  widget_klass->get_preferred_width = gtk_gst_gl_widget_get_preferred_width;
-  widget_klass->get_preferred_height = gtk_gst_gl_widget_get_preferred_height;
 }
 
 static void
-gtk_gst_gl_widget_init (GtkGstGLWidget * widget)
+gtk_gst_gl_widget_init (GtkGstGLWidget * gst_widget)
 {
+  GtkGstBaseWidget *base_widget = GTK_GST_BASE_WIDGET (gst_widget);
   GdkDisplay *display;
+  GtkGstGLWidgetPrivate *priv;
 
-  widget->priv = GTK_GST_GL_WIDGET_GET_PRIVATE (widget);
+  gtk_gst_base_widget_init (base_widget);
 
-  widget->priv->force_aspect_ratio = DEFAULT_FORCE_ASPECT_RATIO;
-  widget->priv->par_n = DEFAULT_PAR_N;
-  widget->priv->par_d = DEFAULT_PAR_D;
-  widget->priv->ignore_alpha = DEFAULT_IGNORE_ALPHA;
-
-  g_mutex_init (&widget->priv->lock);
+  gst_widget->priv = priv = GTK_GST_GL_WIDGET_GET_PRIVATE (gst_widget);
 
   display = gdk_display_get_default ();
 
 #if GST_GL_HAVE_WINDOW_X11 && defined (GDK_WINDOWING_X11)
   if (GDK_IS_X11_DISPLAY (display))
-    widget->priv->display = (GstGLDisplay *)
+    priv->display = (GstGLDisplay *)
         gst_gl_display_x11_new_with_display (gdk_x11_display_get_xdisplay
         (display));
 #endif
@@ -553,92 +426,65 @@
   if (GDK_IS_WAYLAND_DISPLAY (display)) {
     struct wl_display *wayland_display =
         gdk_wayland_display_get_wl_display (display);
-    widget->priv->display = (GstGLDisplay *)
+    priv->display = (GstGLDisplay *)
         gst_gl_display_wayland_new_with_display (wayland_display);
   }
 #endif
 
   (void) display;
 
-  if (!widget->priv->display)
-    widget->priv->display = gst_gl_display_new ();
+  if (!priv->display)
+    priv->display = gst_gl_display_new ();
 
-  gtk_gl_area_set_has_alpha ((GtkGLArea *) widget, !widget->priv->ignore_alpha);
-}
-
-GtkWidget *
-gtk_gst_gl_widget_new (void)
-{
-  return (GtkWidget *) g_object_new (GTK_TYPE_GST_GL_WIDGET, NULL);
-}
-
-static gboolean
-_queue_draw (GtkGstGLWidget * widget)
-{
-  gtk_widget_queue_draw (GTK_WIDGET (widget));
-
-  return G_SOURCE_REMOVE;
-}
-
-void
-gtk_gst_gl_widget_set_buffer (GtkGstGLWidget * widget, GstBuffer * buffer)
-{
-  GMainContext *main_context = g_main_context_default ();
-
-  g_return_if_fail (GTK_IS_GST_GL_WIDGET (widget));
-  g_return_if_fail (widget->priv->negotiated);
-
-  g_mutex_lock (&widget->priv->lock);
-
-  gst_buffer_replace (&widget->priv->buffer, buffer);
-  widget->priv->new_buffer = TRUE;
-
-  g_mutex_unlock (&widget->priv->lock);
-
-  g_main_context_invoke (main_context, (GSourceFunc) _queue_draw, widget);
+  gtk_gl_area_set_has_alpha (GTK_GL_AREA (gst_widget),
+      !base_widget->ignore_alpha);
 }
 
 static void
 _get_gl_context (GtkGstGLWidget * gst_widget)
 {
+  GtkGstGLWidgetPrivate *priv = gst_widget->priv;
   GstGLPlatform platform;
   GstGLAPI gl_api;
   guintptr gl_handle;
 
   gtk_widget_realize (GTK_WIDGET (gst_widget));
 
-  if (gst_widget->priv->gdk_context)
-    g_object_unref (gst_widget->priv->gdk_context);
-  gst_widget->priv->gdk_context =
-      gtk_gl_area_get_context (GTK_GL_AREA (gst_widget));
-  if (gst_widget->priv->gdk_context == NULL) {
+  if (priv->gdk_context)
+    g_object_unref (priv->gdk_context);
+  priv->gdk_context = gtk_gl_area_get_context (GTK_GL_AREA (gst_widget));
+  if (priv->gdk_context == NULL) {
+    GError *error = gtk_gl_area_get_error (GTK_GL_AREA (gst_widget));
+
+    GST_ERROR_OBJECT (gst_widget, "Error creating GdkGLContext : %s",
+        error ? error->message : "No error set by Gdk");
     g_assert_not_reached ();
     return;
   }
 
-  g_object_ref (gst_widget->priv->gdk_context);
+  g_object_ref (priv->gdk_context);
 
-  gdk_gl_context_make_current (gst_widget->priv->gdk_context);
+  gdk_gl_context_make_current (priv->gdk_context);
 
 #if GST_GL_HAVE_WINDOW_X11 && defined (GDK_WINDOWING_X11)
-  if (GST_IS_GL_DISPLAY_X11 (gst_widget->priv->display)) {
+  if (GST_IS_GL_DISPLAY_X11 (priv->display)) {
     platform = GST_GL_PLATFORM_GLX;
-    gl_api = gst_gl_context_get_current_gl_api (NULL, NULL);
+    gl_api = gst_gl_context_get_current_gl_api (platform, NULL, NULL);
     gl_handle = gst_gl_context_get_current_gl_context (platform);
     if (gl_handle)
-      gst_widget->priv->other_context =
-          gst_gl_context_new_wrapped (gst_widget->priv->display, gl_handle,
+      priv->other_context =
+          gst_gl_context_new_wrapped (priv->display, gl_handle,
           platform, gl_api);
   }
 #endif
 #if GST_GL_HAVE_WINDOW_WAYLAND && defined (GDK_WINDOWING_WAYLAND)
-  if (GST_IS_GL_DISPLAY_WAYLAND (gst_widget->priv->display)) {
+  if (GST_IS_GL_DISPLAY_WAYLAND (priv->display)) {
     platform = GST_GL_PLATFORM_EGL;
-    gl_api = gst_gl_context_get_current_gl_api (NULL, NULL);
+    gl_api = gst_gl_context_get_current_gl_api (platform, NULL, NULL);
     gl_handle = gst_gl_context_get_current_gl_context (platform);
     if (gl_handle)
-      gst_widget->priv->other_context =
-          gst_gl_context_new_wrapped (gst_widget->priv->display, gl_handle,
+      priv->other_context =
+          gst_gl_context_new_wrapped (priv->display, gl_handle,
           platform, gl_api);
   }
 #endif
@@ -647,162 +493,60 @@
   (void) gl_api;
   (void) gl_handle;
 
-  if (gst_widget->priv->other_context) {
+  if (priv->other_context) {
     GError *error = NULL;
 
-    gst_gl_context_activate (gst_widget->priv->other_context, TRUE);
-    if (!gst_gl_context_fill_info (gst_widget->priv->other_context, &error)) {
+    gst_gl_context_activate (priv->other_context, TRUE);
+    if (!gst_gl_context_fill_info (priv->other_context, &error)) {
       GST_ERROR ("failed to retreive gdk context info: %s", error->message);
-      g_object_unref (gst_widget->priv->other_context);
-      gst_widget->priv->other_context = NULL;
+      g_object_unref (priv->other_context);
+      priv->other_context = NULL;
     } else {
-      gst_gl_context_activate (gst_widget->priv->other_context, FALSE);
+      gst_gl_context_activate (priv->other_context, FALSE);
     }
   }
 }
 
-static gboolean
-_queue_resize (GtkGstGLWidget * widget)
+GtkWidget *
+gtk_gst_gl_widget_new (void)
 {
-  gtk_widget_queue_resize (GTK_WIDGET (widget));
-
-  return G_SOURCE_REMOVE;
+  return (GtkWidget *) g_object_new (GTK_TYPE_GST_GL_WIDGET, NULL);
 }
 
 gboolean
-gtk_gst_gl_widget_init_winsys (GtkGstGLWidget * widget)
+gtk_gst_gl_widget_init_winsys (GtkGstGLWidget * gst_widget)
 {
-  g_return_val_if_fail (GTK_IS_GST_GL_WIDGET (widget), FALSE);
+  GtkGstGLWidgetPrivate *priv = gst_widget->priv;
+  GError *error = NULL;
 
-  g_mutex_lock (&widget->priv->lock);
+  g_return_val_if_fail (GTK_IS_GST_GL_WIDGET (gst_widget), FALSE);
 
-  if (widget->priv->display && widget->priv->gdk_context
-      && widget->priv->other_context) {
-    g_mutex_unlock (&widget->priv->lock);
+  GTK_GST_BASE_WIDGET_LOCK (gst_widget);
+
+  if (priv->display && priv->gdk_context && priv->other_context) {
+    GTK_GST_BASE_WIDGET_UNLOCK (gst_widget);
     return TRUE;
   }
 
-  if (!widget->priv->other_context) {
-    _invoke_on_main ((ThreadFunc) _get_gl_context, widget);
+  if (!priv->other_context) {
+    GTK_GST_BASE_WIDGET_UNLOCK (gst_widget);
+    _invoke_on_main ((ThreadFunc) _get_gl_context, gst_widget);
+    GTK_GST_BASE_WIDGET_LOCK (gst_widget);
   }
 
-  if (!GST_GL_IS_CONTEXT (widget->priv->other_context)) {
-    g_mutex_unlock (&widget->priv->lock);
+  if (!GST_GL_IS_CONTEXT (priv->other_context)) {
+    GTK_GST_BASE_WIDGET_UNLOCK (gst_widget);
     return FALSE;
   }
 
-  widget->priv->context = gst_gl_context_new (widget->priv->display);
-
-  if (!widget->priv->context) {
-    g_mutex_unlock (&widget->priv->lock);
+  if (!gst_gl_display_create_context (priv->display, priv->other_context,
+          &priv->context, &error)) {
+    g_clear_error (&error);
+    GTK_GST_BASE_WIDGET_UNLOCK (gst_widget);
     return FALSE;
   }
 
-  gst_gl_context_create (widget->priv->context, widget->priv->other_context,
-      NULL);
-
-  g_mutex_unlock (&widget->priv->lock);
-  return TRUE;
-}
-
-static gboolean
-_calculate_par (GtkGstGLWidget * widget, GstVideoInfo * info)
-{
-  gboolean ok;
-  gint width, height;
-  gint par_n, par_d;
-  gint display_par_n, display_par_d;
-  guint display_ratio_num, display_ratio_den;
-
-  width = GST_VIDEO_INFO_WIDTH (info);
-  height = GST_VIDEO_INFO_HEIGHT (info);
-
-  par_n = GST_VIDEO_INFO_PAR_N (info);
-  par_d = GST_VIDEO_INFO_PAR_D (info);
-
-  if (!par_n)
-    par_n = 1;
-
-  /* get display's PAR */
-  if (widget->priv->par_n != 0 && widget->priv->par_d != 0) {
-    display_par_n = widget->priv->par_n;
-    display_par_d = widget->priv->par_d;
-  } else {
-    display_par_n = 1;
-    display_par_d = 1;
-  }
-
-  ok = gst_video_calculate_display_ratio (&display_ratio_num,
-      &display_ratio_den, width, height, par_n, par_d, display_par_n,
-      display_par_d);
-
-  if (!ok)
-    return FALSE;
-
-  GST_LOG ("PAR: %u/%u DAR:%u/%u", par_n, par_d, display_par_n, display_par_d);
-
-  if (height % display_ratio_den == 0) {
-    GST_DEBUG ("keeping video height");
-    widget->priv->display_width = (guint)
-        gst_util_uint64_scale_int (height, display_ratio_num,
-        display_ratio_den);
-    widget->priv->display_height = height;
-  } else if (width % display_ratio_num == 0) {
-    GST_DEBUG ("keeping video width");
-    widget->priv->display_width = width;
-    widget->priv->display_height = (guint)
-        gst_util_uint64_scale_int (width, display_ratio_den, display_ratio_num);
-  } else {
-    GST_DEBUG ("approximating while keeping video height");
-    widget->priv->display_width = (guint)
-        gst_util_uint64_scale_int (height, display_ratio_num,
-        display_ratio_den);
-    widget->priv->display_height = height;
-  }
-  GST_DEBUG ("scaling to %dx%d", widget->priv->display_width,
-      widget->priv->display_height);
-
-  return TRUE;
-}
-
-gboolean
-gtk_gst_gl_widget_set_caps (GtkGstGLWidget * widget, GstCaps * caps)
-{
-  GMainContext *main_context = g_main_context_default ();
-  GstVideoInfo v_info;
-
-  g_return_val_if_fail (GTK_IS_GST_GL_WIDGET (widget), FALSE);
-  g_return_val_if_fail (GST_IS_CAPS (caps), FALSE);
-  g_return_val_if_fail (gst_caps_is_fixed (caps), FALSE);
-
-  if (widget->priv->caps && gst_caps_is_equal_fixed (widget->priv->caps, caps))
-    return TRUE;
-
-  if (!gst_video_info_from_caps (&v_info, caps))
-    return FALSE;
-
-  g_mutex_lock (&widget->priv->lock);
-
-  _reset (widget);
-
-  gst_caps_replace (&widget->priv->caps, caps);
-
-  widget->priv->gl_caps = gst_video_info_to_caps (&v_info);
-  gst_caps_set_features (widget->priv->gl_caps, 0,
-      gst_caps_features_from_string (GST_CAPS_FEATURE_MEMORY_GL_MEMORY));
-
-  if (!_calculate_par (widget, &v_info)) {
-    g_mutex_unlock (&widget->priv->lock);
-    return FALSE;
-  }
-
-  widget->priv->v_info = v_info;
-  widget->priv->negotiated = TRUE;
-
-  g_mutex_unlock (&widget->priv->lock);
-
-  g_main_context_invoke (main_context, (GSourceFunc) _queue_resize, widget);
-
+  GTK_GST_BASE_WIDGET_UNLOCK (gst_widget);
   return TRUE;
 }
 
diff --git a/ext/gtk/gtkgstglwidget.h b/ext/gtk/gtkgstglwidget.h
index 923b5f3..7f055c4 100644
--- a/ext/gtk/gtkgstglwidget.h
+++ b/ext/gtk/gtkgstglwidget.h
@@ -25,6 +25,8 @@
 #include <gst/gst.h>
 #include <gst/gl/gl.h>
 
+#include "gtkgstbasewidget.h"
+
 G_BEGIN_DECLS
 
 GType gtk_gst_gl_widget_get_type (void);
@@ -47,7 +49,7 @@
 struct _GtkGstGLWidget
 {
   /* <private> */
-  GtkGLArea         parent;
+  GtkGstBaseWidget base;
 
   GtkGstGLWidgetPrivate   *priv;
 };
@@ -60,14 +62,12 @@
 struct _GtkGstGLWidgetClass
 {
   /* <private> */
-  GtkGLAreaClass object_class;
+  GtkGstBaseWidgetClass base_class;
 };
 
 GtkWidget *     gtk_gst_gl_widget_new (void);
 
 gboolean        gtk_gst_gl_widget_init_winsys          (GtkGstGLWidget * widget);
-gboolean        gtk_gst_gl_widget_set_caps             (GtkGstGLWidget * widget, GstCaps *caps);
-void            gtk_gst_gl_widget_set_buffer           (GtkGstGLWidget * widget, GstBuffer *buffer);
 GstGLDisplay *  gtk_gst_gl_widget_get_display          (GtkGstGLWidget * widget);
 GstGLContext *  gtk_gst_gl_widget_get_context          (GtkGstGLWidget * widget);
 GstGLContext *  gtk_gst_gl_widget_get_gtk_context      (GtkGstGLWidget * widget);
diff --git a/ext/gtk/gtkgstwidget.c b/ext/gtk/gtkgstwidget.c
index 36a7874..5fe238a 100644
--- a/ext/gtk/gtkgstwidget.c
+++ b/ext/gtk/gtkgstwidget.c
@@ -37,76 +37,10 @@
 
 G_DEFINE_TYPE (GtkGstWidget, gtk_gst_widget, GTK_TYPE_DRAWING_AREA);
 
-#define GTK_GST_WIDGET_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), \
-    GTK_TYPE_GST_WIDGET, GtkGstWidgetPrivate))
-
-#define DEFAULT_FORCE_ASPECT_RATIO  TRUE
-#define DEFAULT_PAR_N               0
-#define DEFAULT_PAR_D               1
-#define DEFAULT_IGNORE_ALPHA        TRUE
-
-enum
-{
-  PROP_0,
-  PROP_FORCE_ASPECT_RATIO,
-  PROP_PIXEL_ASPECT_RATIO,
-  PROP_IGNORE_ALPHA,
-};
-
-struct _GtkGstWidgetPrivate
-{
-  GMutex lock;
-
-  /* properties */
-  gboolean force_aspect_ratio;
-  gint par_n, par_d;
-  gboolean ignore_alpha;
-
-  gint display_width;
-  gint display_height;
-
-  gboolean negotiated;
-  GstBuffer *buffer;
-  GstCaps *caps;
-  GstVideoInfo v_info;
-};
-
-static void
-gtk_gst_widget_get_preferred_width (GtkWidget * widget, gint * min,
-    gint * natural)
-{
-  GtkGstWidget *gst_widget = (GtkGstWidget *) widget;
-  gint video_width = gst_widget->priv->display_width;
-
-  if (!gst_widget->priv->negotiated)
-    video_width = 10;
-
-  if (min)
-    *min = 1;
-  if (natural)
-    *natural = video_width;
-}
-
-static void
-gtk_gst_widget_get_preferred_height (GtkWidget * widget, gint * min,
-    gint * natural)
-{
-  GtkGstWidget *gst_widget = (GtkGstWidget *) widget;
-  gint video_height = gst_widget->priv->display_height;
-
-  if (!gst_widget->priv->negotiated)
-    video_height = 10;
-
-  if (min)
-    *min = 1;
-  if (natural)
-    *natural = video_height;
-}
-
 static gboolean
 gtk_gst_widget_draw (GtkWidget * widget, cairo_t * cr)
 {
-  GtkGstWidget *gst_widget = (GtkGstWidget *) widget;
+  GtkGstBaseWidget *gst_widget = (GtkGstBaseWidget *) widget;
   guint widget_width, widget_height;
   cairo_surface_t *surface;
   GstVideoFrame frame;
@@ -114,19 +48,27 @@
   widget_width = gtk_widget_get_allocated_width (widget);
   widget_height = gtk_widget_get_allocated_height (widget);
 
-  g_mutex_lock (&gst_widget->priv->lock);
+  GTK_GST_BASE_WIDGET_LOCK (gst_widget);
+
+  /* There is not much to optimize in term of redisplay, so simply swap the
+   * pending_buffer with the active buffer */
+  if (gst_widget->pending_buffer) {
+    if (gst_widget->buffer)
+      gst_buffer_unref (gst_widget->buffer);
+    gst_widget->buffer = gst_widget->pending_buffer;
+    gst_widget->pending_buffer = NULL;
+  }
 
   /* failed to map the video frame */
-  if (gst_widget->priv->negotiated && gst_widget->priv->buffer
-      && gst_video_frame_map (&frame, &gst_widget->priv->v_info,
-          gst_widget->priv->buffer, GST_MAP_READ)) {
-    gdouble scale_x = (gdouble) widget_width / gst_widget->priv->display_width;
-    gdouble scale_y =
-        (gdouble) widget_height / gst_widget->priv->display_height;
+  if (gst_widget->negotiated && gst_widget->buffer
+      && gst_video_frame_map (&frame, &gst_widget->v_info,
+          gst_widget->buffer, GST_MAP_READ)) {
+    gdouble scale_x = (gdouble) widget_width / gst_widget->display_width;
+    gdouble scale_y = (gdouble) widget_height / gst_widget->display_height;
     GstVideoRectangle result;
     cairo_format_t format;
 
-    gst_widget->priv->v_info = frame.info;
+    gst_widget->v_info = frame.info;
     if (frame.info.finfo->format == GST_VIDEO_FORMAT_ARGB ||
         frame.info.finfo->format == GST_VIDEO_FORMAT_BGRA) {
       format = CAIRO_FORMAT_ARGB32;
@@ -137,13 +79,13 @@
     surface = cairo_image_surface_create_for_data (frame.data[0],
         format, frame.info.width, frame.info.height, frame.info.stride[0]);
 
-    if (gst_widget->priv->force_aspect_ratio) {
+    if (gst_widget->force_aspect_ratio) {
       GstVideoRectangle src, dst;
 
       src.x = 0;
       src.y = 0;
-      src.w = gst_widget->priv->display_width;
-      src.h = gst_widget->priv->display_height;
+      src.w = gst_widget->display_width;
+      src.h = gst_widget->display_height;
 
       dst.x = 0;
       dst.y = 0;
@@ -160,7 +102,7 @@
       result.h = widget_height;
     }
 
-    if (gst_widget->priv->ignore_alpha) {
+    if (gst_widget->ignore_alpha) {
       GdkRGBA color = { 0.0, 0.0, 0.0, 1.0 };
 
       gdk_cairo_set_source_rgba (cr, &color);
@@ -184,11 +126,9 @@
       }
     }
 
-    scale_x *=
-        (gdouble) gst_widget->priv->display_width / (gdouble) frame.info.width;
+    scale_x *= (gdouble) gst_widget->display_width / (gdouble) frame.info.width;
     scale_y *=
-        (gdouble) gst_widget->priv->display_height /
-        (gdouble) frame.info.height;
+        (gdouble) gst_widget->display_height / (gdouble) frame.info.height;
 
     cairo_translate (cr, result.x, result.y);
     cairo_scale (cr, scale_x, scale_y);
@@ -202,7 +142,7 @@
   } else {
     GdkRGBA color;
 
-    if (gst_widget->priv->ignore_alpha) {
+    if (gst_widget->ignore_alpha) {
       color.red = color.blue = color.green = 0.0;
       color.alpha = 1.0;
     } else {
@@ -214,111 +154,33 @@
     cairo_fill (cr);
   }
 
-  g_mutex_unlock (&gst_widget->priv->lock);
+  GTK_GST_BASE_WIDGET_UNLOCK (gst_widget);
   return FALSE;
 }
 
 static void
 gtk_gst_widget_finalize (GObject * object)
 {
-  GtkGstWidget *widget = GTK_GST_WIDGET_CAST (object);
-
-  gst_buffer_replace (&widget->priv->buffer, NULL);
-  g_mutex_clear (&widget->priv->lock);
+  gtk_gst_base_widget_finalize (object);
 
   G_OBJECT_CLASS (gtk_gst_widget_parent_class)->finalize (object);
 }
 
 static void
-gtk_gst_widget_set_property (GObject * object, guint prop_id,
-    const GValue * value, GParamSpec * pspec)
-{
-  GtkGstWidget *gtk_widget = GTK_GST_WIDGET (object);
-
-  switch (prop_id) {
-    case PROP_FORCE_ASPECT_RATIO:
-      gtk_widget->priv->force_aspect_ratio = g_value_get_boolean (value);
-      break;
-    case PROP_PIXEL_ASPECT_RATIO:
-      gtk_widget->priv->par_n = gst_value_get_fraction_numerator (value);
-      gtk_widget->priv->par_d = gst_value_get_fraction_denominator (value);
-      break;
-    case PROP_IGNORE_ALPHA:
-      gtk_widget->priv->ignore_alpha = g_value_get_boolean (value);
-      break;
-    default:
-      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
-      break;
-  }
-}
-
-static void
-gtk_gst_widget_get_property (GObject * object, guint prop_id, GValue * value,
-    GParamSpec * pspec)
-{
-  GtkGstWidget *gtk_widget = GTK_GST_WIDGET (object);
-
-  switch (prop_id) {
-    case PROP_FORCE_ASPECT_RATIO:
-      g_value_set_boolean (value, gtk_widget->priv->force_aspect_ratio);
-      break;
-    case PROP_PIXEL_ASPECT_RATIO:
-      gst_value_set_fraction (value, gtk_widget->priv->par_n,
-          gtk_widget->priv->par_d);
-    case PROP_IGNORE_ALPHA:
-      g_value_set_boolean (value, gtk_widget->priv->ignore_alpha);
-      break;
-    default:
-      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
-      break;
-  }
-}
-
-static void
 gtk_gst_widget_class_init (GtkGstWidgetClass * klass)
 {
   GObjectClass *gobject_klass = (GObjectClass *) klass;
   GtkWidgetClass *widget_klass = (GtkWidgetClass *) klass;
 
-  g_type_class_add_private (klass, sizeof (GtkGstWidgetPrivate));
-
-  gobject_klass->set_property = gtk_gst_widget_set_property;
-  gobject_klass->get_property = gtk_gst_widget_get_property;
+  gtk_gst_base_widget_class_init (GTK_GST_BASE_WIDGET_CLASS (klass));
   gobject_klass->finalize = gtk_gst_widget_finalize;
-
-  g_object_class_install_property (gobject_klass, PROP_FORCE_ASPECT_RATIO,
-      g_param_spec_boolean ("force-aspect-ratio",
-          "Force aspect ratio",
-          "When enabled, scaling will respect original aspect ratio",
-          DEFAULT_FORCE_ASPECT_RATIO,
-          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
-
-  g_object_class_install_property (gobject_klass, PROP_PIXEL_ASPECT_RATIO,
-      gst_param_spec_fraction ("pixel-aspect-ratio", "Pixel Aspect Ratio",
-          "The pixel aspect ratio of the device", DEFAULT_PAR_N, DEFAULT_PAR_D,
-          G_MAXINT, 1, 1, 1, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
-
-  g_object_class_install_property (gobject_klass, PROP_IGNORE_ALPHA,
-      g_param_spec_boolean ("ignore-alpha", "Ignore Alpha",
-          "When enabled, alpha will be ignored and converted to black",
-          DEFAULT_IGNORE_ALPHA, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
-
   widget_klass->draw = gtk_gst_widget_draw;
-  widget_klass->get_preferred_width = gtk_gst_widget_get_preferred_width;
-  widget_klass->get_preferred_height = gtk_gst_widget_get_preferred_height;
 }
 
 static void
 gtk_gst_widget_init (GtkGstWidget * widget)
 {
-  widget->priv = GTK_GST_WIDGET_GET_PRIVATE (widget);
-
-  widget->priv->force_aspect_ratio = DEFAULT_FORCE_ASPECT_RATIO;
-  widget->priv->par_n = DEFAULT_PAR_N;
-  widget->priv->par_d = DEFAULT_PAR_D;
-  widget->priv->ignore_alpha = DEFAULT_IGNORE_ALPHA;
-
-  g_mutex_init (&widget->priv->lock);
+  gtk_gst_base_widget_init (GTK_GST_BASE_WIDGET (widget));
 }
 
 GtkWidget *
@@ -326,143 +188,3 @@
 {
   return (GtkWidget *) g_object_new (GTK_TYPE_GST_WIDGET, NULL);
 }
-
-static gboolean
-_queue_draw (GtkGstWidget * widget)
-{
-  gtk_widget_queue_draw (GTK_WIDGET (widget));
-
-  return G_SOURCE_REMOVE;
-}
-
-void
-gtk_gst_widget_set_buffer (GtkGstWidget * widget, GstBuffer * buffer)
-{
-  GMainContext *main_context = g_main_context_default ();
-
-  g_return_if_fail (GTK_IS_GST_WIDGET (widget));
-  g_return_if_fail (widget->priv->negotiated);
-
-  g_mutex_lock (&widget->priv->lock);
-
-  gst_buffer_replace (&widget->priv->buffer, buffer);
-
-  g_mutex_unlock (&widget->priv->lock);
-
-  g_main_context_invoke (main_context, (GSourceFunc) _queue_draw, widget);
-}
-
-static gboolean
-_queue_resize (GtkGstWidget * widget)
-{
-  gtk_widget_queue_resize (GTK_WIDGET (widget));
-
-  return G_SOURCE_REMOVE;
-}
-
-static gboolean
-_calculate_par (GtkGstWidget * widget, GstVideoInfo * info)
-{
-  gboolean ok;
-  gint width, height;
-  gint par_n, par_d;
-  gint display_par_n, display_par_d;
-  guint display_ratio_num, display_ratio_den;
-
-  width = GST_VIDEO_INFO_WIDTH (info);
-  height = GST_VIDEO_INFO_HEIGHT (info);
-
-  par_n = GST_VIDEO_INFO_PAR_N (info);
-  par_d = GST_VIDEO_INFO_PAR_D (info);
-
-  if (!par_n)
-    par_n = 1;
-
-  /* get display's PAR */
-  if (widget->priv->par_n != 0 && widget->priv->par_d != 0) {
-    display_par_n = widget->priv->par_n;
-    display_par_d = widget->priv->par_d;
-  } else {
-    display_par_n = 1;
-    display_par_d = 1;
-  }
-
-  ok = gst_video_calculate_display_ratio (&display_ratio_num,
-      &display_ratio_den, width, height, par_n, par_d, display_par_n,
-      display_par_d);
-
-  if (!ok)
-    return FALSE;
-
-  GST_LOG ("PAR: %u/%u DAR:%u/%u", par_n, par_d, display_par_n, display_par_d);
-
-  if (height % display_ratio_den == 0) {
-    GST_DEBUG ("keeping video height");
-    widget->priv->display_width = (guint)
-        gst_util_uint64_scale_int (height, display_ratio_num,
-        display_ratio_den);
-    widget->priv->display_height = height;
-  } else if (width % display_ratio_num == 0) {
-    GST_DEBUG ("keeping video width");
-    widget->priv->display_width = width;
-    widget->priv->display_height = (guint)
-        gst_util_uint64_scale_int (width, display_ratio_den, display_ratio_num);
-  } else {
-    GST_DEBUG ("approximating while keeping video height");
-    widget->priv->display_width = (guint)
-        gst_util_uint64_scale_int (height, display_ratio_num,
-        display_ratio_den);
-    widget->priv->display_height = height;
-  }
-  GST_DEBUG ("scaling to %dx%d", widget->priv->display_width,
-      widget->priv->display_height);
-
-  return TRUE;
-}
-
-gboolean
-gtk_gst_widget_set_caps (GtkGstWidget * widget, GstCaps * caps)
-{
-  GMainContext *main_context = g_main_context_default ();
-  GstVideoInfo v_info;
-
-  g_return_val_if_fail (GTK_IS_GST_WIDGET (widget), FALSE);
-  g_return_val_if_fail (GST_IS_CAPS (caps), FALSE);
-  g_return_val_if_fail (gst_caps_is_fixed (caps), FALSE);
-
-  if (widget->priv->caps && gst_caps_is_equal_fixed (widget->priv->caps, caps))
-    return TRUE;
-
-  if (!gst_video_info_from_caps (&v_info, caps))
-    return FALSE;
-
-  /* FIXME: support other formats */
-#if G_BYTE_ORDER == G_LITTLE_ENDIAN
-  g_return_val_if_fail (GST_VIDEO_INFO_FORMAT (&v_info) ==
-      GST_VIDEO_FORMAT_BGRA || GST_VIDEO_INFO_FORMAT (&v_info) ==
-      GST_VIDEO_FORMAT_BGRx, FALSE);
-#else
-  g_return_val_if_fail (GST_VIDEO_INFO_FORMAT (&v_info) ==
-      GST_VIDEO_FORMAT_ARGB || GST_VIDEO_INFO_FORMAT (&v_info) ==
-      GST_VIDEO_FORMAT_xRGB, FALSE);
-#endif
-
-  g_mutex_lock (&widget->priv->lock);
-
-  if (!_calculate_par (widget, &v_info)) {
-    g_mutex_unlock (&widget->priv->lock);
-    return FALSE;
-  }
-
-  gst_caps_replace (&widget->priv->caps, caps);
-  widget->priv->v_info = v_info;
-  widget->priv->negotiated = TRUE;
-
-  g_mutex_unlock (&widget->priv->lock);
-
-  gtk_widget_queue_resize (GTK_WIDGET (widget));
-
-  g_main_context_invoke (main_context, (GSourceFunc) _queue_resize, widget);
-
-  return TRUE;
-}
diff --git a/ext/gtk/gtkgstwidget.h b/ext/gtk/gtkgstwidget.h
index 29adaff..427eeba 100644
--- a/ext/gtk/gtkgstwidget.h
+++ b/ext/gtk/gtkgstwidget.h
@@ -24,6 +24,8 @@
 #include <gtk/gtk.h>
 #include <gst/gst.h>
 
+#include "gtkgstbasewidget.h"
+
 G_BEGIN_DECLS
 
 GType gtk_gst_widget_get_type (void);
@@ -36,7 +38,6 @@
 
 typedef struct _GtkGstWidget GtkGstWidget;
 typedef struct _GtkGstWidgetClass GtkGstWidgetClass;
-typedef struct _GtkGstWidgetPrivate GtkGstWidgetPrivate;
 
 /**
  * GtkGstWidget:
@@ -46,9 +47,7 @@
 struct _GtkGstWidget
 {
   /* <private> */
-  GtkDrawingArea         parent;
-
-  GtkGstWidgetPrivate   *priv;
+  GtkGstBaseWidget base;
 };
 
 /**
@@ -59,14 +58,11 @@
 struct _GtkGstWidgetClass
 {
   /* <private> */
-  GtkDrawingAreaClass object_class;
+  GtkGstBaseWidgetClass base_class;
 };
 
 GtkWidget *     gtk_gst_widget_new (void);
 
-gboolean        gtk_gst_widget_set_caps             (GtkGstWidget * widget, GstCaps *caps);
-void            gtk_gst_widget_set_buffer           (GtkGstWidget * widget, GstBuffer *buffer);
-
 G_END_DECLS
 
 #endif /* __GTK_GST_WIDGET_H__ */
diff --git a/ext/hls/Makefile.in b/ext/hls/Makefile.in
index eb8a9d5..6fc7010 100644
--- a/ext/hls/Makefile.in
+++ b/ext/hls/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/hls
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -235,6 +245,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -252,8 +263,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -282,8 +291,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -331,11 +338,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -519,6 +529,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -597,7 +608,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -637,6 +653,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -787,7 +804,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/hls/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/hls/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1128,6 +1144,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/ext/hls/m3u8.c b/ext/hls/m3u8.c
index 4b6e362..1273b71 100755
--- a/ext/hls/m3u8.c
+++ b/ext/hls/m3u8.c
@@ -519,8 +519,11 @@
         goto next_line;
       }
       duration = fval * (gdouble) GST_SECOND;
-      if (duration > self->targetduration)
-        GST_WARNING ("EXTINF duration > TARGETDURATION");
+      if (self->targetduration > 0 && duration > self->targetduration) {
+        GST_WARNING ("EXTINF duration (%" GST_TIME_FORMAT
+            ") > TARGETDURATION (%" GST_TIME_FORMAT ")",
+            GST_TIME_ARGS (duration), GST_TIME_ARGS (self->targetduration));
+      }
       if (!data || *data != ',')
         goto next_line;
       data = g_utf8_next_char (data);
@@ -1104,7 +1107,7 @@
       break;
   }
   if (tmp == NULL) {
-    GST_ERROR ("Can't find next fragment");
+    GST_WARNING ("Can't find next fragment");
     return;
   }
   client->current_file = tmp;
diff --git a/ext/kate/Makefile.in b/ext/kate/Makefile.in
index 993d015..c215a64 100644
--- a/ext/kate/Makefile.in
+++ b/ext/kate/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -18,7 +18,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -83,8 +93,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/kate
-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 \
@@ -122,6 +130,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -233,6 +243,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp README
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -250,8 +261,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -280,8 +289,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -329,11 +336,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -517,6 +527,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -595,7 +606,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -635,6 +651,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -776,7 +793,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/kate/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/kate/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1133,6 +1149,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/ext/ladspa/Makefile.in b/ext/ladspa/Makefile.in
index a68cafe..40af6ea 100644
--- a/ext/ladspa/Makefile.in
+++ b/ext/ladspa/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/ladspa
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -232,6 +242,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -249,8 +260,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -279,8 +288,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -328,11 +335,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -516,6 +526,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -594,7 +605,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -634,6 +650,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -793,7 +810,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/ladspa/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/ladspa/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1134,6 +1150,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/ext/libde265/Makefile.in b/ext/libde265/Makefile.in
index 554838c..65baac5 100644
--- a/ext/libde265/Makefile.in
+++ b/ext/libde265/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/libde265
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -229,6 +239,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -246,8 +257,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -276,8 +285,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -325,11 +332,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -513,6 +523,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -591,7 +602,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -631,6 +647,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -771,7 +788,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/libde265/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/libde265/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1088,6 +1104,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/ext/libde265/libde265-dec.c b/ext/libde265/libde265-dec.c
index 9ec128e..7cba37a 100644
--- a/ext/libde265/libde265-dec.c
+++ b/ext/libde265/libde265-dec.c
@@ -200,6 +200,9 @@
   dec->length_size = 4;
   _gst_libde265_dec_reset_decoder (dec);
   gst_video_decoder_set_packetized (GST_VIDEO_DECODER (dec), TRUE);
+  gst_video_decoder_set_use_default_pad_acceptcaps (GST_VIDEO_DECODER_CAST
+      (dec), TRUE);
+  GST_PAD_SET_ACCEPT_TEMPLATE (GST_VIDEO_DECODER_SINK_PAD (dec));
 }
 
 static inline void
diff --git a/ext/libmms/Makefile.in b/ext/libmms/Makefile.in
index 5cb9897..a13d91d 100644
--- a/ext/libmms/Makefile.in
+++ b/ext/libmms/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/libmms
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -228,6 +238,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -245,8 +256,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -275,8 +284,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -324,11 +331,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -512,6 +522,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -590,7 +601,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -630,6 +646,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -761,7 +778,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/libmms/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/libmms/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1070,6 +1086,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/ext/libvisual/Makefile.in b/ext/libvisual/Makefile.in
index ba7e597..518e0bb 100644
--- a/ext/libvisual/Makefile.in
+++ b/ext/libvisual/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -15,7 +15,17 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -80,8 +90,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/libvisual
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -119,6 +127,7 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -226,6 +235,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -243,8 +253,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -273,8 +281,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -322,11 +328,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -510,6 +519,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -588,7 +598,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -628,6 +643,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -764,7 +780,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/libvisual/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/libvisual/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1073,6 +1088,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/ext/lv2/Makefile.in b/ext/lv2/Makefile.in
index 5cfdd4f..aaa0352 100644
--- a/ext/lv2/Makefile.in
+++ b/ext/lv2/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/lv2
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -228,6 +238,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp README
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -245,8 +256,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -275,8 +284,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -324,11 +331,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -512,6 +522,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -590,7 +601,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -630,6 +646,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -769,7 +786,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/lv2/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/lv2/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1078,6 +1094,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/ext/mimic/Makefile.in b/ext/mimic/Makefile.in
index 1de9ec0..fed53f2 100644
--- a/ext/mimic/Makefile.in
+++ b/ext/mimic/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/mimic
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -228,6 +238,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -245,8 +256,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -275,8 +284,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -324,11 +331,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -512,6 +522,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -590,7 +601,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -630,6 +646,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -761,7 +778,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/mimic/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/mimic/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1086,6 +1102,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/ext/modplug/Makefile.in b/ext/modplug/Makefile.in
index 79c1af6..a5638a3 100644
--- a/ext/modplug/Makefile.in
+++ b/ext/modplug/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/modplug
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -227,6 +237,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -244,8 +255,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -274,8 +283,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -323,11 +330,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -511,6 +521,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -589,7 +600,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -629,6 +645,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -760,7 +777,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/modplug/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/modplug/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1069,6 +1085,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/ext/mpeg2enc/Makefile.in b/ext/mpeg2enc/Makefile.in
index 5b1b2d0..54added 100644
--- a/ext/mpeg2enc/Makefile.in
+++ b/ext/mpeg2enc/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/mpeg2enc
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -231,6 +241,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -248,8 +259,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -278,8 +287,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -327,11 +334,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -515,6 +525,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -593,7 +604,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -633,6 +649,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -781,7 +798,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/mpeg2enc/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/mpeg2enc/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1122,6 +1138,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/ext/mpg123/Makefile.in b/ext/mpg123/Makefile.in
index 11bb9aa..54fca84 100644
--- a/ext/mpg123/Makefile.in
+++ b/ext/mpg123/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/mpg123
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -228,6 +238,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -245,8 +256,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -275,8 +284,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -324,11 +331,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -512,6 +522,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -590,7 +601,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -630,6 +646,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -766,7 +783,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/mpg123/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/mpg123/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1075,6 +1091,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/ext/mpg123/gstmpg123audiodec.c b/ext/mpg123/gstmpg123audiodec.c
index 60d1979..aa8598c 100644
--- a/ext/mpg123/gstmpg123audiodec.c
+++ b/ext/mpg123/gstmpg123audiodec.c
@@ -197,6 +197,9 @@
 {
   mpg123_decoder->handle = NULL;
   gst_audio_decoder_set_needs_format (GST_AUDIO_DECODER (mpg123_decoder), TRUE);
+  gst_audio_decoder_set_use_default_pad_acceptcaps (GST_AUDIO_DECODER_CAST
+      (mpg123_decoder), TRUE);
+  GST_PAD_SET_ACCEPT_TEMPLATE (GST_AUDIO_DECODER_SINK_PAD (mpg123_decoder));
 }
 
 
@@ -608,7 +611,8 @@
     mpg123_decoder->handle = NULL;
   }
 
-  mpg123_decoder->has_next_audioinfo = FALSE;
+  if (hard)
+    mpg123_decoder->has_next_audioinfo = FALSE;
 
   /* opening/closing feeds do not affect the format defined by the
    * mpg123_format() call that was made in gst_mpg123_audio_dec_set_format(),
diff --git a/ext/mplex/Makefile.in b/ext/mplex/Makefile.in
index 6240ddc..549c83d 100644
--- a/ext/mplex/Makefile.in
+++ b/ext/mplex/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/mplex
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -231,6 +241,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -248,8 +259,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -278,8 +287,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -327,11 +334,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -515,6 +525,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -593,7 +604,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -633,6 +649,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -779,7 +796,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/mplex/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/mplex/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1112,6 +1128,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/ext/musepack/Makefile.in b/ext/musepack/Makefile.in
index cb1f798..7a63881 100644
--- a/ext/musepack/Makefile.in
+++ b/ext/musepack/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/musepack
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -228,6 +238,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -245,8 +256,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -275,8 +284,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -324,11 +331,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -512,6 +522,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -590,7 +601,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -630,6 +646,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -767,7 +784,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/musepack/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/musepack/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1084,6 +1100,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/ext/nas/Makefile.in b/ext/nas/Makefile.in
index 1d13e2d..03988b1 100644
--- a/ext/nas/Makefile.in
+++ b/ext/nas/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/nas
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -227,6 +237,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -244,8 +255,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -274,8 +283,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -323,11 +330,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -511,6 +521,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -589,7 +600,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -629,6 +645,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -764,7 +781,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/nas/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/nas/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1073,6 +1089,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/ext/neon/Makefile.in b/ext/neon/Makefile.in
index 4c770d8..b0b2f39 100644
--- a/ext/neon/Makefile.in
+++ b/ext/neon/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/neon
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -228,6 +238,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -245,8 +256,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -275,8 +284,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -324,11 +331,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -512,6 +522,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -590,7 +601,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -630,6 +646,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -761,7 +778,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/neon/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/neon/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1070,6 +1086,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/ext/ofa/Makefile.in b/ext/ofa/Makefile.in
index 13dfe7c..affda4d 100644
--- a/ext/ofa/Makefile.in
+++ b/ext/ofa/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/ofa
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -228,6 +238,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -245,8 +256,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -275,8 +284,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -324,11 +331,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -512,6 +522,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -590,7 +601,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -630,6 +646,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -770,7 +787,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/ofa/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/ofa/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1079,6 +1095,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/ext/openal/Makefile.in b/ext/openal/Makefile.in
index d6f862a..e18179f 100644
--- a/ext/openal/Makefile.in
+++ b/ext/openal/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -18,7 +18,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -83,8 +93,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/openal
-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 \
@@ -122,6 +130,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -232,6 +242,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -249,8 +260,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -279,8 +288,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -328,11 +335,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -516,6 +526,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -594,7 +605,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -634,6 +650,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -771,7 +788,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/openal/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/openal/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1096,6 +1112,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/ext/opencv/Makefile.am b/ext/opencv/Makefile.am
index 3ba1c34..0d2e1bb 100644
--- a/ext/opencv/Makefile.am
+++ b/ext/opencv/Makefile.am
@@ -1,7 +1,7 @@
 plugin_LTLIBRARIES = libgstopencv.la
 
 # sources used to compile this plug-in
-libgstopencv_la_SOURCES = gstopencv.c \
+libgstopencv_la_SOURCES = gstopencv.cpp \
 			gstopencvvideofilter.c \
 			gstopencvutils.c \
 			gstcvdilate.c \
@@ -13,7 +13,6 @@
 			gstcvsobel.c \
 			gstedgedetect.c \
 			gstfaceblur.c \
-			gstfacedetect.c \
 			gsthanddetect.c \
 			gstpyramidsegment.c \
 			gsttemplatematch.c \
@@ -21,6 +20,7 @@
 			gstmotioncells.c \
 			gstskindetect.c \
 			gstretinex.c \
+			gstfacedetect.cpp \
 			gstsegmentation.cpp \
 			gstgrabcut.cpp \
 			gstdisparity.cpp \
diff --git a/ext/opencv/Makefile.in b/ext/opencv/Makefile.in
index 7e99dc1..196de79 100644
--- a/ext/opencv/Makefile.in
+++ b/ext/opencv/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -17,7 +17,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -82,8 +92,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/opencv
-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 \
@@ -121,6 +129,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -168,13 +178,13 @@
 	libgstopencv_la-gstcvsmooth.lo libgstopencv_la-gstcvsobel.lo \
 	libgstopencv_la-gstedgedetect.lo \
 	libgstopencv_la-gstfaceblur.lo \
-	libgstopencv_la-gstfacedetect.lo \
 	libgstopencv_la-gsthanddetect.lo \
 	libgstopencv_la-gstpyramidsegment.lo \
 	libgstopencv_la-gsttemplatematch.lo \
 	libgstopencv_la-gsttextoverlay.lo \
 	libgstopencv_la-gstmotioncells.lo \
 	libgstopencv_la-gstskindetect.lo libgstopencv_la-gstretinex.lo \
+	libgstopencv_la-gstfacedetect.lo \
 	libgstopencv_la-gstsegmentation.lo \
 	libgstopencv_la-gstgrabcut.lo libgstopencv_la-gstdisparity.lo \
 	libgstopencv_la-motioncells_wrapper.lo \
@@ -268,6 +278,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -285,8 +296,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -315,8 +324,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -364,11 +371,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -552,6 +562,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -630,7 +641,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -670,6 +686,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -781,7 +798,7 @@
 plugin_LTLIBRARIES = libgstopencv.la
 
 # sources used to compile this plug-in
-libgstopencv_la_SOURCES = gstopencv.c \
+libgstopencv_la_SOURCES = gstopencv.cpp \
 			gstopencvvideofilter.c \
 			gstopencvutils.c \
 			gstcvdilate.c \
@@ -793,7 +810,6 @@
 			gstcvsobel.c \
 			gstedgedetect.c \
 			gstfaceblur.c \
-			gstfacedetect.c \
 			gsthanddetect.c \
 			gstpyramidsegment.c \
 			gsttemplatematch.c \
@@ -801,6 +817,7 @@
 			gstmotioncells.c \
 			gstskindetect.c \
 			gstretinex.c \
+			gstfacedetect.cpp \
 			gstsegmentation.cpp \
 			gstgrabcut.cpp \
 			gstdisparity.cpp \
@@ -870,7 +887,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/opencv/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/opencv/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -983,13 +999,6 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
-libgstopencv_la-gstopencv.lo: gstopencv.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstopencv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopencv_la_CFLAGS) $(CFLAGS) -MT libgstopencv_la-gstopencv.lo -MD -MP -MF $(DEPDIR)/libgstopencv_la-gstopencv.Tpo -c -o libgstopencv_la-gstopencv.lo `test -f 'gstopencv.c' || echo '$(srcdir)/'`gstopencv.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstopencv_la-gstopencv.Tpo $(DEPDIR)/libgstopencv_la-gstopencv.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstopencv.c' object='libgstopencv_la-gstopencv.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 $(libgstopencv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopencv_la_CFLAGS) $(CFLAGS) -c -o libgstopencv_la-gstopencv.lo `test -f 'gstopencv.c' || echo '$(srcdir)/'`gstopencv.c
-
 libgstopencv_la-gstopencvvideofilter.lo: gstopencvvideofilter.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstopencv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopencv_la_CFLAGS) $(CFLAGS) -MT libgstopencv_la-gstopencvvideofilter.lo -MD -MP -MF $(DEPDIR)/libgstopencv_la-gstopencvvideofilter.Tpo -c -o libgstopencv_la-gstopencvvideofilter.lo `test -f 'gstopencvvideofilter.c' || echo '$(srcdir)/'`gstopencvvideofilter.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstopencv_la-gstopencvvideofilter.Tpo $(DEPDIR)/libgstopencv_la-gstopencvvideofilter.Plo
@@ -1067,13 +1076,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 $(libgstopencv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopencv_la_CFLAGS) $(CFLAGS) -c -o libgstopencv_la-gstfaceblur.lo `test -f 'gstfaceblur.c' || echo '$(srcdir)/'`gstfaceblur.c
 
-libgstopencv_la-gstfacedetect.lo: gstfacedetect.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstopencv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopencv_la_CFLAGS) $(CFLAGS) -MT libgstopencv_la-gstfacedetect.lo -MD -MP -MF $(DEPDIR)/libgstopencv_la-gstfacedetect.Tpo -c -o libgstopencv_la-gstfacedetect.lo `test -f 'gstfacedetect.c' || echo '$(srcdir)/'`gstfacedetect.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstopencv_la-gstfacedetect.Tpo $(DEPDIR)/libgstopencv_la-gstfacedetect.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstfacedetect.c' object='libgstopencv_la-gstfacedetect.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 $(libgstopencv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopencv_la_CFLAGS) $(CFLAGS) -c -o libgstopencv_la-gstfacedetect.lo `test -f 'gstfacedetect.c' || echo '$(srcdir)/'`gstfacedetect.c
-
 libgstopencv_la-gsthanddetect.lo: gsthanddetect.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstopencv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopencv_la_CFLAGS) $(CFLAGS) -MT libgstopencv_la-gsthanddetect.lo -MD -MP -MF $(DEPDIR)/libgstopencv_la-gsthanddetect.Tpo -c -o libgstopencv_la-gsthanddetect.lo `test -f 'gsthanddetect.c' || echo '$(srcdir)/'`gsthanddetect.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstopencv_la-gsthanddetect.Tpo $(DEPDIR)/libgstopencv_la-gsthanddetect.Plo
@@ -1147,6 +1149,20 @@
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $<
 
+libgstopencv_la-gstopencv.lo: gstopencv.cpp
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgstopencv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopencv_la_CXXFLAGS) $(CXXFLAGS) -MT libgstopencv_la-gstopencv.lo -MD -MP -MF $(DEPDIR)/libgstopencv_la-gstopencv.Tpo -c -o libgstopencv_la-gstopencv.lo `test -f 'gstopencv.cpp' || echo '$(srcdir)/'`gstopencv.cpp
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstopencv_la-gstopencv.Tpo $(DEPDIR)/libgstopencv_la-gstopencv.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='gstopencv.cpp' object='libgstopencv_la-gstopencv.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgstopencv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopencv_la_CXXFLAGS) $(CXXFLAGS) -c -o libgstopencv_la-gstopencv.lo `test -f 'gstopencv.cpp' || echo '$(srcdir)/'`gstopencv.cpp
+
+libgstopencv_la-gstfacedetect.lo: gstfacedetect.cpp
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgstopencv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopencv_la_CXXFLAGS) $(CXXFLAGS) -MT libgstopencv_la-gstfacedetect.lo -MD -MP -MF $(DEPDIR)/libgstopencv_la-gstfacedetect.Tpo -c -o libgstopencv_la-gstfacedetect.lo `test -f 'gstfacedetect.cpp' || echo '$(srcdir)/'`gstfacedetect.cpp
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstopencv_la-gstfacedetect.Tpo $(DEPDIR)/libgstopencv_la-gstfacedetect.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='gstfacedetect.cpp' object='libgstopencv_la-gstfacedetect.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgstopencv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopencv_la_CXXFLAGS) $(CXXFLAGS) -c -o libgstopencv_la-gstfacedetect.lo `test -f 'gstfacedetect.cpp' || echo '$(srcdir)/'`gstfacedetect.cpp
+
 libgstopencv_la-gstsegmentation.lo: gstsegmentation.cpp
 @am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgstopencv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstopencv_la_CXXFLAGS) $(CXXFLAGS) -MT libgstopencv_la-gstsegmentation.lo -MD -MP -MF $(DEPDIR)/libgstopencv_la-gstsegmentation.Tpo -c -o libgstopencv_la-gstsegmentation.lo `test -f 'gstsegmentation.cpp' || echo '$(srcdir)/'`gstsegmentation.cpp
 @am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstopencv_la-gstsegmentation.Tpo $(DEPDIR)/libgstopencv_la-gstsegmentation.Plo
@@ -1419,6 +1435,8 @@
 	tags tags-am uninstall uninstall-am \
 	uninstall-opencv_haarcascadesDATA uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/ext/opencv/gstfaceblur.c b/ext/opencv/gstfaceblur.c
index 11d9145..e06a82c 100644
--- a/ext/opencv/gstfaceblur.c
+++ b/ext/opencv/gstfaceblur.c
@@ -71,7 +71,7 @@
 #define GST_CAT_DEFAULT gst_face_blur_debug
 
 #define DEFAULT_PROFILE OPENCV_PREFIX G_DIR_SEPARATOR_S "share" \
-    G_DIR_SEPARATOR_S "opencv" G_DIR_SEPARATOR_S "haarcascades" \
+    G_DIR_SEPARATOR_S OPENCV_PATH_NAME G_DIR_SEPARATOR_S "haarcascades" \
     G_DIR_SEPARATOR_S "haarcascade_frontalface_default.xml"
 #define DEFAULT_SCALE_FACTOR 1.25
 #define DEFAULT_FLAGS CV_HAAR_DO_CANNY_PRUNING
@@ -365,11 +365,8 @@
   faces =
       cvHaarDetectObjects (filter->cvGray, filter->cvCascade,
       filter->cvStorage, filter->scale_factor, filter->min_neighbors,
-      filter->flags, cvSize (filter->min_size_width, filter->min_size_height)
-#if (CV_MAJOR_VERSION >= 2) && (CV_MINOR_VERSION >= 2)
-      , cvSize (filter->min_size_width + 2, filter->min_size_height + 2)
-#endif
-      );
+      filter->flags, cvSize (filter->min_size_width, filter->min_size_height),
+      cvSize (filter->min_size_width + 2, filter->min_size_height + 2));
 
   for (i = 0; i < (faces ? faces->total : 0); i++) {
     CvRect *r = (CvRect *) cvGetSeqElem (faces, i);
diff --git a/ext/opencv/gstfaceblur.h b/ext/opencv/gstfaceblur.h
index 23fa7fc..5280641 100644
--- a/ext/opencv/gstfaceblur.h
+++ b/ext/opencv/gstfaceblur.h
@@ -51,10 +51,7 @@
 #include <opencv2/core/version.hpp>
 
 #include "gstopencvvideofilter.h"
-
-#if (CV_MAJOR_VERSION >= 2) && (CV_MINOR_VERSION >= 2)
 #include <opencv2/objdetect/objdetect.hpp>
-#endif
 
 G_BEGIN_DECLS
 /* #defines don't like whitespacey bits */
diff --git a/ext/opencv/gstfacedetect.c b/ext/opencv/gstfacedetect.cpp
similarity index 75%
rename from ext/opencv/gstfacedetect.c
rename to ext/opencv/gstfacedetect.cpp
index 0f9425b..a323593 100644
--- a/ext/opencv/gstfacedetect.c
+++ b/ext/opencv/gstfacedetect.cpp
@@ -5,7 +5,7 @@
  * Copyright (C) 2008 Michael Sheldon <mike@mikeasoft.com>
  * Copyright (C) 2011 Stefan Sauer <ensonic@users.sf.net>
  * Copyright (C) 2014 Robert Jobbagy <jobbagy.robert@gmail.com>
- * 
+ *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the "Software"),
  * to deal in the Software without restriction, including without limitation
@@ -52,17 +52,17 @@
  * If you have high cpu load you need to use videoscale with capsfilter and reduce the video resolution.
  *
  * The image is scaled down multiple times using the GstFaceDetect::scale-factor
- * until the size is &lt;= GstFaceDetect::min-size-width or 
- * GstFaceDetect::min-size-height. 
+ * until the size is &lt;= GstFaceDetect::min-size-width or
+ * GstFaceDetect::min-size-height.
  *
  * <refsect2>
  * <title>Example launch line</title>
  * |[
- * gst-launch-1.0 autovideosrc ! decodebin2 ! colorspace ! facedetect ! videoconvert ! xvimagesink
+ * gst-launch-1.0 autovideosrc ! decodebin ! colorspace ! facedetect ! videoconvert ! xvimagesink
  * ]| Detect and show faces
  * |[
  * gst-launch-1.0 autovideosrc ! video/x-raw,width=320,height=240 ! videoconvert ! facedetect min-size-width=60 min-size-height=60 ! colorspace ! xvimagesink
- * ]| Detect large faces on a smaller image 
+ * ]| Detect large faces on a smaller image
  *
  * </refsect2>
  */
@@ -78,6 +78,7 @@
 
 #include <gst/gst.h>
 #include <gst/video/gstvideometa.h>
+#include <vector>
 
 #include "gstopencvutils.h"
 #include "gstfacedetect.h"
@@ -87,7 +88,7 @@
 #define GST_CAT_DEFAULT gst_face_detect_debug
 
 #define HAAR_CASCADES_DIR OPENCV_PREFIX G_DIR_SEPARATOR_S "share" \
-    G_DIR_SEPARATOR_S "opencv" G_DIR_SEPARATOR_S "haarcascades" \
+    G_DIR_SEPARATOR_S OPENCV_PATH_NAME G_DIR_SEPARATOR_S "haarcascades" \
     G_DIR_SEPARATOR_S
 #define DEFAULT_FACE_PROFILE HAAR_CASCADES_DIR "haarcascade_frontalface_default.xml"
 #define DEFAULT_NOSE_PROFILE HAAR_CASCADES_DIR "haarcascade_mcs_nose.xml"
@@ -100,6 +101,7 @@
 #define DEFAULT_MIN_SIZE_HEIGHT 30
 #define DEFAULT_MIN_STDDEV 0
 
+using namespace cv;
 /* Filter signals and args */
 enum
 {
@@ -137,6 +139,28 @@
 
 #define GST_TYPE_OPENCV_FACE_DETECT_FLAGS (gst_opencv_face_detect_flags_get_type())
 
+inline void
+structure_and_message (const vector < Rect > &rectangles, const gchar * name,
+    guint rx, guint ry, GstFaceDetect * filter, GstStructure * s)
+{
+  Rect sr = rectangles[0];
+  gchar *nx = g_strconcat (name, "->x", NULL);
+  gchar *ny = g_strconcat (name, "->y", NULL);
+  gchar *nw = g_strconcat (name, "->width", NULL);
+  gchar *nh = g_strconcat (name, "->height", NULL);
+
+  GST_LOG_OBJECT (filter,
+      "%s/%" G_GSIZE_FORMAT ": x,y = %4u,%4u: w.h = %4u,%4u",
+      name, rectangles.size (), rx + sr.x, ry + sr.y, sr.width, sr.height);
+  gst_structure_set (s, nx, G_TYPE_UINT, rx + sr.x, ny, G_TYPE_UINT, ry + sr.y,
+      nw, G_TYPE_UINT, sr.width, nh, G_TYPE_UINT, sr.height, NULL);
+
+  g_free (nx);
+  g_free (ny);
+  g_free (nw);
+  g_free (nh);
+}
+
 static void
 register_gst_opencv_face_detect_flags (GType * id)
 {
@@ -211,7 +235,7 @@
 static GstFlowReturn gst_face_detect_transform_ip (GstOpencvVideoFilter * base,
     GstBuffer * buf, IplImage * img);
 
-static CvHaarClassifierCascade *gst_face_detect_load_profile (GstFaceDetect *
+static CascadeClassifier *gst_face_detect_load_profile (GstFaceDetect *
     filter, gchar * profile);
 
 /* Clean up */
@@ -231,13 +255,13 @@
   g_free (filter->eyes_profile);
 
   if (filter->cvFaceDetect)
-    cvReleaseHaarClassifierCascade (&filter->cvFaceDetect);
+    delete (filter->cvFaceDetect);
   if (filter->cvNoseDetect)
-    cvReleaseHaarClassifierCascade (&filter->cvNoseDetect);
+    delete (filter->cvNoseDetect);
   if (filter->cvMouthDetect)
-    cvReleaseHaarClassifierCascade (&filter->cvMouthDetect);
+    delete (filter->cvMouthDetect);
   if (filter->cvEyesDetect)
-    cvReleaseHaarClassifierCascade (&filter->cvEyesDetect);
+    delete (filter->cvEyesDetect);
 
   G_OBJECT_CLASS (gst_face_detect_parent_class)->finalize (obj);
 }
@@ -263,60 +287,66 @@
   g_object_class_install_property (gobject_class, PROP_DISPLAY,
       g_param_spec_boolean ("display", "Display",
           "Sets whether the detected faces should be highlighted in the output",
-          TRUE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+          TRUE, (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
 
   g_object_class_install_property (gobject_class, PROP_FACE_PROFILE,
       g_param_spec_string ("profile", "Face profile",
           "Location of Haar cascade file to use for face detection",
-          DEFAULT_FACE_PROFILE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+          DEFAULT_FACE_PROFILE,
+          (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
   g_object_class_install_property (gobject_class, PROP_NOSE_PROFILE,
       g_param_spec_string ("nose-profile", "Nose profile",
           "Location of Haar cascade file to use for nose detection",
-          DEFAULT_NOSE_PROFILE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+          DEFAULT_NOSE_PROFILE,
+          (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
   g_object_class_install_property (gobject_class, PROP_MOUTH_PROFILE,
       g_param_spec_string ("mouth-profile", "Mouth profile",
           "Location of Haar cascade file to use for mouth detection",
-          DEFAULT_MOUTH_PROFILE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+          DEFAULT_MOUTH_PROFILE,
+          (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
   g_object_class_install_property (gobject_class, PROP_EYES_PROFILE,
       g_param_spec_string ("eyes-profile", "Eyes profile",
           "Location of Haar cascade file to use for eye-pair detection",
-          DEFAULT_EYES_PROFILE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+          DEFAULT_EYES_PROFILE,
+          (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
 
   g_object_class_install_property (gobject_class, PROP_FLAGS,
       g_param_spec_flags ("flags", "Flags", "Flags to cvHaarDetectObjects",
           GST_TYPE_OPENCV_FACE_DETECT_FLAGS, DEFAULT_FLAGS,
-          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+          (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
   g_object_class_install_property (gobject_class, PROP_SCALE_FACTOR,
       g_param_spec_double ("scale-factor", "Scale factor",
           "Factor by which the frame is scaled after each object scan",
           1.1, 10.0, DEFAULT_SCALE_FACTOR,
-          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+          (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
   g_object_class_install_property (gobject_class, PROP_MIN_NEIGHBORS,
       g_param_spec_int ("min-neighbors", "Mininum neighbors",
           "Minimum number (minus 1) of neighbor rectangles that makes up "
           "an object", 0, G_MAXINT, DEFAULT_MIN_NEIGHBORS,
-          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+          (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
   g_object_class_install_property (gobject_class, PROP_MIN_SIZE_WIDTH,
       g_param_spec_int ("min-size-width", "Minimum face width",
           "Minimum area width to be recognized as a face", 0, G_MAXINT,
-          DEFAULT_MIN_SIZE_WIDTH, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+          DEFAULT_MIN_SIZE_WIDTH,
+          (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
   g_object_class_install_property (gobject_class, PROP_MIN_SIZE_HEIGHT,
       g_param_spec_int ("min-size-height", "Minimum face height",
           "Minimum area height to be recognized as a face", 0, G_MAXINT,
-          DEFAULT_MIN_SIZE_HEIGHT, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+          DEFAULT_MIN_SIZE_HEIGHT,
+          (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
   g_object_class_install_property (gobject_class, PROP_UPDATES,
       g_param_spec_enum ("updates", "Updates",
           "When send update bus messages, if at all",
           GST_TYPE_FACE_DETECT_UPDATES, GST_FACEDETECT_UPDATES_EVERY_FRAME,
-          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+          (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
   g_object_class_install_property (gobject_class, PROP_MIN_STDDEV,
       g_param_spec_int ("min-stddev", "Minimum image standard deviation",
           "Minimum image average standard deviation: on images with standard "
           "deviation lesser than this value facedetection will not be "
           "performed. Setting this property help to save cpu and reduce "
           "false positives not performing face detection on images with "
-          "little changes", 0,
-          255, DEFAULT_MIN_STDDEV, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+          "little changes", 0, 255, DEFAULT_MIN_STDDEV,
+          (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
 
   gst_element_class_set_static_metadata (element_class,
       "facedetect",
@@ -372,7 +402,7 @@
     case PROP_FACE_PROFILE:
       g_free (filter->face_profile);
       if (filter->cvFaceDetect)
-        cvReleaseHaarClassifierCascade (&filter->cvFaceDetect);
+        delete (filter->cvFaceDetect);
       filter->face_profile = g_value_dup_string (value);
       filter->cvFaceDetect =
           gst_face_detect_load_profile (filter, filter->face_profile);
@@ -380,7 +410,7 @@
     case PROP_NOSE_PROFILE:
       g_free (filter->nose_profile);
       if (filter->cvNoseDetect)
-        cvReleaseHaarClassifierCascade (&filter->cvNoseDetect);
+        delete (filter->cvNoseDetect);
       filter->nose_profile = g_value_dup_string (value);
       filter->cvNoseDetect =
           gst_face_detect_load_profile (filter, filter->nose_profile);
@@ -388,7 +418,7 @@
     case PROP_MOUTH_PROFILE:
       g_free (filter->mouth_profile);
       if (filter->cvMouthDetect)
-        cvReleaseHaarClassifierCascade (&filter->cvMouthDetect);
+        delete (filter->cvMouthDetect);
       filter->mouth_profile = g_value_dup_string (value);
       filter->cvMouthDetect =
           gst_face_detect_load_profile (filter, filter->mouth_profile);
@@ -396,7 +426,7 @@
     case PROP_EYES_PROFILE:
       g_free (filter->eyes_profile);
       if (filter->cvEyesDetect)
-        cvReleaseHaarClassifierCascade (&filter->cvEyesDetect);
+        delete (filter->cvEyesDetect);
       filter->eyes_profile = g_value_dup_string (value);
       filter->cvEyesDetect =
           gst_face_detect_load_profile (filter, filter->eyes_profile);
@@ -527,10 +557,10 @@
   return gst_message_new_element (GST_OBJECT (filter), s);
 }
 
-static CvSeq *
+static void
 gst_face_detect_run_detector (GstFaceDetect * filter,
-    CvHaarClassifierCascade * detector, gint min_size_width,
-    gint min_size_height)
+    CascadeClassifier * detector, gint min_size_width,
+    gint min_size_height, Rect r, vector < Rect > &faces)
 {
   double img_stddev = 0;
   if (filter->min_stddev > 0) {
@@ -539,18 +569,14 @@
     img_stddev = stddev.val[0];
   }
   if (img_stddev >= filter->min_stddev) {
-    return cvHaarDetectObjects (filter->cvGray, detector,
-        filter->cvStorage, filter->scale_factor, filter->min_neighbors,
-        filter->flags, cvSize (min_size_width, min_size_height)
-#if (CV_MAJOR_VERSION >= 2) && (CV_MINOR_VERSION >= 2)
-        , cvSize (0, 0)
-#endif
-        );
+    Mat roi (filter->cvGray, r);
+    detector->detectMultiScale (roi, faces, filter->scale_factor,
+        filter->min_neighbors, filter->flags, cvSize (min_size_width,
+            min_size_height), cvSize (0, 0));
   } else {
     GST_LOG_OBJECT (filter,
         "Calculated stddev %f lesser than min_stddev %d, detection not performed",
         img_stddev, filter->min_stddev);
-    return cvCreateSeq (0, sizeof (CvSeq), sizeof (CvPoint), filter->cvStorage);
   }
 }
 
@@ -568,12 +594,15 @@
     GstStructure *s;
     GValue facelist = { 0 };
     GValue facedata = { 0 };
-    CvSeq *faces;
-    CvSeq *mouth = NULL, *nose = NULL, *eyes = NULL;
-    gint i;
+    vector < Rect > faces;
+    vector < Rect > mouth;
+    vector < Rect > nose;
+    vector < Rect > eyes;
     gboolean do_display = FALSE;
     gboolean post_msg = FALSE;
 
+    Mat mtxOrg (img, false);
+
     if (filter->display) {
       if (gst_buffer_is_writable (buf)) {
         do_display = TRUE;
@@ -585,15 +614,17 @@
     cvCvtColor (img, filter->cvGray, CV_RGB2GRAY);
     cvClearMemStorage (filter->cvStorage);
 
-    faces = gst_face_detect_run_detector (filter, filter->cvFaceDetect,
-        filter->min_size_width, filter->min_size_height);
+    gst_face_detect_run_detector (filter, filter->cvFaceDetect,
+        filter->min_size_width, filter->min_size_height,
+        Rect (filter->cvGray->origin, filter->cvGray->origin,
+            filter->cvGray->width, filter->cvGray->height), faces);
 
     switch (filter->updates) {
       case GST_FACEDETECT_UPDATES_EVERY_FRAME:
         post_msg = TRUE;
         break;
       case GST_FACEDETECT_UPDATES_ON_CHANGE:
-        if (faces && faces->total > 0) {
+        if (!faces.empty ()) {
           if (!filter->face_detected)
             post_msg = TRUE;
         } else {
@@ -603,7 +634,7 @@
         }
         break;
       case GST_FACEDETECT_UPDATES_ON_FACE:
-        if (faces && faces->total > 0) {
+        if (!faces.empty ()) {
           post_msg = TRUE;
         } else {
           post_msg = FALSE;
@@ -617,107 +648,78 @@
         break;
     }
 
-    filter->face_detected = faces ? faces->total > 0 : FALSE;
+    filter->face_detected = !faces.empty ()? TRUE : FALSE;
 
     if (post_msg) {
       msg = gst_face_detect_message_new (filter, buf);
       g_value_init (&facelist, GST_TYPE_LIST);
     }
 
-    for (i = 0; i < (faces ? faces->total : 0); i++) {
-      CvRect *r = (CvRect *) cvGetSeqElem (faces, i);
+    for (unsigned int i = 0; i < faces.size (); ++i) {
+      Rect r = faces[i];
       guint mw = filter->min_size_width / 8;
       guint mh = filter->min_size_height / 8;
       guint rnx = 0, rny = 0, rnw, rnh;
       guint rmx = 0, rmy = 0, rmw, rmh;
       guint rex = 0, rey = 0, rew, reh;
+      guint rhh = r.height / 2;
       gboolean have_nose, have_mouth, have_eyes;
 
       /* detect face features */
 
       if (filter->cvNoseDetect) {
-        rnx = r->x + r->width / 4;
-        rny = r->y + r->height / 4;
-        rnw = r->width / 2;
-        rnh = r->height / 2;
-        cvSetImageROI (filter->cvGray, cvRect (rnx, rny, rnw, rnh));
-        nose =
-            gst_face_detect_run_detector (filter, filter->cvNoseDetect, mw, mh);
-        have_nose = (nose && nose->total);
-        cvResetImageROI (filter->cvGray);
+        rnx = r.x + r.width / 4;
+        rny = r.y + r.height / 4;
+        rnw = r.width / 2;
+        rnh = rhh;
+        gst_face_detect_run_detector (filter, filter->cvNoseDetect, mw, mh,
+            Rect (rnx, rny, rnw, rnh), nose);
+        have_nose = !nose.empty ();
       } else {
         have_nose = FALSE;
       }
 
       if (filter->cvMouthDetect) {
-        rmx = r->x;
-        rmy = r->y + r->height / 2;
-        rmw = r->width;
-        rmh = r->height / 2;
-        cvSetImageROI (filter->cvGray, cvRect (rmx, rmy, rmw, rmh));
-        mouth =
-            gst_face_detect_run_detector (filter, filter->cvMouthDetect, mw,
-            mh);
-        have_mouth = (mouth && mouth->total);
-        cvResetImageROI (filter->cvGray);
+        rmx = r.x;
+        rmy = r.y + r.height / 2;
+        rmw = r.width;
+        rmh = rhh;
+        gst_face_detect_run_detector (filter, filter->cvMouthDetect, mw,
+            mh, Rect (rmx, rmy, rmw, rmh), mouth);
+        have_mouth = !mouth.empty ();
       } else {
         have_mouth = FALSE;
       }
 
       if (filter->cvEyesDetect) {
-        rex = r->x;
-        rey = r->y;
-        rew = r->width;
-        reh = r->height / 2;
-        cvSetImageROI (filter->cvGray, cvRect (rex, rey, rew, reh));
-        eyes =
-            gst_face_detect_run_detector (filter, filter->cvEyesDetect, mw, mh);
-        have_eyes = (eyes && eyes->total);
-        cvResetImageROI (filter->cvGray);
+        rex = r.x;
+        rey = r.y;
+        rew = r.width;
+        reh = rhh;
+        gst_face_detect_run_detector (filter, filter->cvEyesDetect, mw, mh,
+            Rect (rex, rey, rew, reh), eyes);
+        have_eyes = !eyes.empty ();
       } else {
         have_eyes = FALSE;
       }
 
       GST_LOG_OBJECT (filter,
-          "%2d/%2d: x,y = %4u,%4u: w.h = %4u,%4u : features(e,n,m) = %d,%d,%d",
-          i, faces->total, r->x, r->y, r->width, r->height,
-          have_eyes, have_nose, have_mouth);
+          "%2d/%2" G_GSIZE_FORMAT
+          ": x,y = %4u,%4u: w.h = %4u,%4u : features(e,n,m) = %d,%d,%d", i,
+          faces.size (), r.x, r.y, r.width, r.height, have_eyes, have_nose,
+          have_mouth);
       if (post_msg) {
         s = gst_structure_new ("face",
-            "x", G_TYPE_UINT, r->x,
-            "y", G_TYPE_UINT, r->y,
-            "width", G_TYPE_UINT, r->width,
-            "height", G_TYPE_UINT, r->height, NULL);
-        if (have_nose) {
-          CvRect *sr = (CvRect *) cvGetSeqElem (nose, 0);
-          GST_LOG_OBJECT (filter, "nose/%d: x,y = %4u,%4u: w.h = %4u,%4u",
-              nose->total, rnx + sr->x, rny + sr->y, sr->width, sr->height);
-          gst_structure_set (s,
-              "nose->x", G_TYPE_UINT, rnx + sr->x,
-              "nose->y", G_TYPE_UINT, rny + sr->y,
-              "nose->width", G_TYPE_UINT, sr->width,
-              "nose->height", G_TYPE_UINT, sr->height, NULL);
-        }
-        if (have_mouth) {
-          CvRect *sr = (CvRect *) cvGetSeqElem (mouth, 0);
-          GST_LOG_OBJECT (filter, "mouth/%d: x,y = %4u,%4u: w.h = %4u,%4u",
-              mouth->total, rmx + sr->x, rmy + sr->y, sr->width, sr->height);
-          gst_structure_set (s,
-              "mouth->x", G_TYPE_UINT, rmx + sr->x,
-              "mouth->y", G_TYPE_UINT, rmy + sr->y,
-              "mouth->width", G_TYPE_UINT, sr->width,
-              "mouth->height", G_TYPE_UINT, sr->height, NULL);
-        }
-        if (have_eyes) {
-          CvRect *sr = (CvRect *) cvGetSeqElem (eyes, 0);
-          GST_LOG_OBJECT (filter, "eyes/%d: x,y = %4u,%4u: w.h = %4u,%4u",
-              eyes->total, rex + sr->x, rey + sr->y, sr->width, sr->height);
-          gst_structure_set (s,
-              "eyes->x", G_TYPE_UINT, rex + sr->x,
-              "eyes->y", G_TYPE_UINT, rey + sr->y,
-              "eyes->width", G_TYPE_UINT, sr->width,
-              "eyes->height", G_TYPE_UINT, sr->height, NULL);
-        }
+            "x", G_TYPE_UINT, r.x,
+            "y", G_TYPE_UINT, r.y,
+            "width", G_TYPE_UINT, r.width,
+            "height", G_TYPE_UINT, r.height, NULL);
+        if (have_nose)
+          structure_and_message (nose, "nose", rnx, rny, filter, s);
+        if (have_mouth)
+          structure_and_message (mouth, "mouth", rmx, rmy, filter, s);
+        if (have_eyes)
+          structure_and_message (eyes, "eyes", rex, rey, filter, s);
 
         g_value_init (&facedata, GST_TYPE_STRUCTURE);
         g_value_take_boxed (&facedata, s);
@@ -728,60 +730,59 @@
 
       if (do_display) {
         CvPoint center;
-        CvSize axes;
+        Size axes;
         gdouble w, h;
         gint cb = 255 - ((i & 3) << 7);
         gint cg = 255 - ((i & 12) << 5);
         gint cr = 255 - ((i & 48) << 3);
 
-        w = r->width / 2;
-        h = r->height / 2;
-        center.x = cvRound ((r->x + w));
-        center.y = cvRound ((r->y + h));
+        w = r.width / 2;
+        h = r.height / 2;
+        center.x = cvRound ((r.x + w));
+        center.y = cvRound ((r.y + h));
         axes.width = w;
         axes.height = h * 1.25; /* tweak for face form */
-        cvEllipse (img, center, axes, 0.0, 0.0, 360.0, CV_RGB (cr, cg, cb),
-            3, 8, 0);
+        ellipse (mtxOrg, center, axes, 0, 0, 360, Scalar (cr, cg, cb), 3, 8, 0);
 
         if (have_nose) {
-          CvRect *sr = (CvRect *) cvGetSeqElem (nose, 0);
+          Rect sr = nose[0];
 
-          w = sr->width / 2;
-          h = sr->height / 2;
-          center.x = cvRound ((rnx + sr->x + w));
-          center.y = cvRound ((rny + sr->y + h));
+          w = sr.width / 2;
+          h = sr.height / 2;
+          center.x = cvRound ((rnx + sr.x + w));
+          center.y = cvRound ((rny + sr.y + h));
           axes.width = w;
           axes.height = h * 1.25;       /* tweak for nose form */
-          cvEllipse (img, center, axes, 0.0, 0.0, 360.0, CV_RGB (cr, cg, cb),
-              1, 8, 0);
+          ellipse (mtxOrg, center, axes, 0, 0, 360, Scalar (cr, cg, cb), 1, 8,
+              0);
         }
         if (have_mouth) {
-          CvRect *sr = (CvRect *) cvGetSeqElem (mouth, 0);
+          Rect sr = mouth[0];
 
-          w = sr->width / 2;
-          h = sr->height / 2;
-          center.x = cvRound ((rmx + sr->x + w));
-          center.y = cvRound ((rmy + sr->y + h));
+          w = sr.width / 2;
+          h = sr.height / 2;
+          center.x = cvRound ((rmx + sr.x + w));
+          center.y = cvRound ((rmy + sr.y + h));
           axes.width = w * 1.5; /* tweak for mouth form */
           axes.height = h;
-          cvEllipse (img, center, axes, 0.0, 0.0, 360.0, CV_RGB (cr, cg, cb),
-              1, 8, 0);
+          ellipse (mtxOrg, center, axes, 0, 0, 360, Scalar (cr, cg, cb), 1, 8,
+              0);
         }
         if (have_eyes) {
-          CvRect *sr = (CvRect *) cvGetSeqElem (eyes, 0);
+          Rect sr = eyes[0];
 
-          w = sr->width / 2;
-          h = sr->height / 2;
-          center.x = cvRound ((rex + sr->x + w));
-          center.y = cvRound ((rey + sr->y + h));
+          w = sr.width / 2;
+          h = sr.height / 2;
+          center.x = cvRound ((rex + sr.x + w));
+          center.y = cvRound ((rey + sr.y + h));
           axes.width = w * 1.5; /* tweak for eyes form */
           axes.height = h;
-          cvEllipse (img, center, axes, 0.0, 0.0, 360.0, CV_RGB (cr, cg, cb),
-              1, 8, 0);
+          ellipse (mtxOrg, center, axes, 0, 0, 360, Scalar (cr, cg, cb), 1, 8,
+              0);
         }
       }
       gst_buffer_add_video_region_of_interest_meta (buf, "face",
-          (guint) r->x, (guint) r->y, (guint) r->width, (guint) r->height);
+          (guint) r.x, (guint) r.y, (guint) r.width, (guint) r.height);
     }
 
     if (post_msg) {
@@ -790,23 +791,25 @@
       g_value_unset (&facelist);
       gst_element_post_message (GST_ELEMENT (filter), msg);
     }
+    mtxOrg.release ();
   }
 
   return GST_FLOW_OK;
 }
 
 
-static CvHaarClassifierCascade *
+static CascadeClassifier *
 gst_face_detect_load_profile (GstFaceDetect * filter, gchar * profile)
 {
-  CvHaarClassifierCascade *cascade;
+  CascadeClassifier *cascade;
 
-  if (profile == NULL)
+  cascade = new CascadeClassifier (profile);
+  if (cascade->empty ()) {
+    GST_ERROR_OBJECT (filter, "Invalid profile file: %s", profile);
+    delete cascade;
     return NULL;
-  if (!(cascade = (CvHaarClassifierCascade *) cvLoad (profile, 0, 0, 0))) {
-    GST_WARNING_OBJECT (filter, "Couldn't load Haar classifier cascade: %s.",
-        profile);
   }
+
   return cascade;
 }
 
diff --git a/ext/opencv/gstfacedetect.h b/ext/opencv/gstfacedetect.h
index 6db7033..f24df0c 100644
--- a/ext/opencv/gstfacedetect.h
+++ b/ext/opencv/gstfacedetect.h
@@ -50,11 +50,9 @@
 
 #include <gst/gst.h>
 #include <opencv2/core/version.hpp>
+#include <cv.h>
 #include "gstopencvvideofilter.h"
-
-#if (CV_MAJOR_VERSION >= 2) && (CV_MINOR_VERSION >= 2)
 #include <opencv2/objdetect/objdetect.hpp>
-#endif
 
 G_BEGIN_DECLS
 /* #defines don't like whitespacey bits */
@@ -107,10 +105,10 @@
   gint updates;
 
   IplImage *cvGray;
-  CvHaarClassifierCascade *cvFaceDetect;
-  CvHaarClassifierCascade *cvNoseDetect;
-  CvHaarClassifierCascade *cvMouthDetect;
-  CvHaarClassifierCascade *cvEyesDetect;
+  cv::CascadeClassifier *cvFaceDetect;
+  cv::CascadeClassifier *cvNoseDetect;
+  cv::CascadeClassifier *cvMouthDetect;
+  cv::CascadeClassifier *cvEyesDetect;
   CvMemStorage *cvStorage;
 };
 
diff --git a/ext/opencv/gsthanddetect.c b/ext/opencv/gsthanddetect.c
index 8c72b72..c4dd390 100644
--- a/ext/opencv/gsthanddetect.c
+++ b/ext/opencv/gsthanddetect.c
@@ -113,7 +113,8 @@
 static GstFlowReturn gst_handdetect_transform_ip (GstOpencvVideoFilter *
     transform, GstBuffer * buffer, IplImage * img);
 
-static void gst_handdetect_load_profile (GstHanddetect * filter);
+static CvHaarClassifierCascade *gst_handdetect_load_profile (GstHanddetect *
+    filter, gchar * profile);
 
 static void gst_handdetect_navigation_interface_init (GstNavigationInterface *
     iface);
@@ -161,8 +162,6 @@
     cvReleaseImage (&filter->cvGray);
   if (filter->cvStorage)
     cvReleaseMemStorage (&filter->cvStorage);
-  if (filter->cvStorage_palm)
-    cvReleaseMemStorage (&filter->cvStorage_palm);
   g_free (filter->profile_fist);
   g_free (filter->profile_palm);
 
@@ -270,7 +269,10 @@
   filter->roi_height = 0;
   filter->display = TRUE;
 
-  gst_handdetect_load_profile (filter);
+  filter->cvCascade_fist =
+      gst_handdetect_load_profile (filter, filter->profile_fist);
+  filter->cvCascade_palm =
+      gst_handdetect_load_profile (filter, filter->profile_palm);
 
   gst_opencv_video_filter_set_in_place (GST_OPENCV_VIDEO_FILTER_CAST (filter),
       TRUE);
@@ -285,13 +287,19 @@
   switch (prop_id) {
     case PROP_PROFILE_FIST:
       g_free (filter->profile_fist);
+      if (filter->cvCascade_fist)
+        cvReleaseHaarClassifierCascade (&filter->cvCascade_fist);
       filter->profile_fist = g_value_dup_string (value);
-      gst_handdetect_load_profile (filter);
+      filter->cvCascade_fist =
+          gst_handdetect_load_profile (filter, filter->profile_fist);
       break;
     case PROP_PROFILE_PALM:
       g_free (filter->profile_palm);
+      if (filter->cvCascade_palm)
+        cvReleaseHaarClassifierCascade (&filter->cvCascade_palm);
       filter->profile_palm = g_value_dup_string (value);
-      gst_handdetect_load_profile (filter);
+      filter->cvCascade_palm =
+          gst_handdetect_load_profile (filter, filter->profile_palm);
       break;
     case PROP_DISPLAY:
       filter->display = g_value_get_boolean (value);
@@ -372,10 +380,6 @@
     filter->cvStorage = cvCreateMemStorage (0);
   else
     cvClearMemStorage (filter->cvStorage);
-  if (!filter->cvStorage_palm)
-    filter->cvStorage_palm = cvCreateMemStorage (0);
-  else
-    cvClearMemStorage (filter->cvStorage_palm);
   return TRUE;
 }
 
@@ -404,11 +408,8 @@
   /* detect FIST gesture fist */
   hands =
       cvHaarDetectObjects (filter->cvGray, filter->cvCascade_fist,
-      filter->cvStorage, 1.1, 2, CV_HAAR_DO_CANNY_PRUNING, cvSize (24, 24)
-#if (CV_MAJOR_VERSION >= 2) && (CV_MINOR_VERSION >= 2)
-      , cvSize (0, 0)
-#endif
-      );
+      filter->cvStorage, 1.1, 2, CV_HAAR_DO_CANNY_PRUNING, cvSize (24, 24),
+      cvSize (0, 0));
 
   /* if FIST gesture detected */
   if (hands && hands->total > 0) {
@@ -496,11 +497,8 @@
     /* if NO FIST gesture, detecting PALM gesture */
     hands =
         cvHaarDetectObjects (filter->cvGray, filter->cvCascade_palm,
-        filter->cvStorage, 1.1, 3, CV_HAAR_DO_CANNY_PRUNING, cvSize (24, 24)
-#if (CV_MAJOR_VERSION >= 2) && (CV_MINOR_VERSION >= 2)
-        , cvSize (0, 0)
-#endif
-        );
+        filter->cvStorage, 1.1, 3, CV_HAAR_DO_CANNY_PRUNING, cvSize (24, 24),
+        cvSize (0, 0));
     /* if PALM detected */
     if (hands && hands->total > 0) {
       int min_distance, distance;
@@ -608,26 +606,18 @@
   return GST_FLOW_OK;
 }
 
-static void
-gst_handdetect_load_profile (GstHanddetect * filter)
+static CvHaarClassifierCascade *
+gst_handdetect_load_profile (GstHanddetect * filter, gchar * profile)
 {
-  GST_DEBUG_OBJECT (filter, "Loading profiles...\n");
-  filter->cvCascade_fist =
-      (CvHaarClassifierCascade *) cvLoad (filter->profile_fist, 0, 0, 0);
-  filter->cvCascade_palm =
-      (CvHaarClassifierCascade *) cvLoad (filter->profile_palm, 0, 0, 0);
-  if (!filter->cvCascade_fist || !filter->cvCascade_palm)
-    GST_WARNING_OBJECT (filter,
-        "WARNING: Could not load HAAR classifier cascade: %s.\n",
-        filter->profile_fist);
-  else
-    GST_DEBUG_OBJECT (filter, "Loaded profile %s\n", filter->profile_fist);
-  if (!filter->cvCascade_palm)
-    GST_WARNING_OBJECT (filter,
-        "WARNING: Could not load HAAR classifier cascade: %s.\n",
-        filter->profile_palm);
-  else
-    GST_DEBUG_OBJECT (filter, "Loaded profile %s\n", filter->profile_palm);
+  CvHaarClassifierCascade *cascade;
+
+  if (profile == NULL)
+    return NULL;
+  if (!(cascade = (CvHaarClassifierCascade *) cvLoad (profile, 0, 0, 0))) {
+    GST_WARNING_OBJECT (filter, "Couldn't load Haar classifier cascade: %s.",
+        profile);
+  }
+  return cascade;
 }
 
 /* Entry point to initialize the plug-in
diff --git a/ext/opencv/gsthanddetect.h b/ext/opencv/gsthanddetect.h
index e57f567..01a30bd 100644
--- a/ext/opencv/gsthanddetect.h
+++ b/ext/opencv/gsthanddetect.h
@@ -58,9 +58,7 @@
 #ifdef HAVE_OPENCV2_HIGHGUI_HIGHGUI_C_H
 #include <opencv2/highgui/highgui_c.h>            // includes highGUI definitions
 #endif
-#if (CV_MAJOR_VERSION >= 2) && (CV_MINOR_VERSION >= 2)
 #include <opencv2/objdetect/objdetect.hpp>
-#endif
 
 G_BEGIN_DECLS
 /* #defines don't like whitespacey bits */
@@ -97,7 +95,6 @@
   CvHaarClassifierCascade *cvCascade_fist;
   CvHaarClassifierCascade *cvCascade_palm;
   CvMemStorage *cvStorage;
-  CvMemStorage *cvStorage_palm;
   CvRect *prev_r;
   CvRect *best_r;
 };
diff --git a/ext/opencv/gstopencv.c b/ext/opencv/gstopencv.cpp
similarity index 98%
rename from ext/opencv/gstopencv.c
rename to ext/opencv/gstopencv.cpp
index 3184518..4077ba6 100644
--- a/ext/opencv/gstopencv.c
+++ b/ext/opencv/gstopencv.cpp
@@ -1,7 +1,7 @@
 /* GStreamer
  * Copyright (C) <2009> Kapil Agrawal <kapil@mediamagictechnologies.com>
  *
- * gstopencv.c: plugin registering
+ * gstopencv.cpp: plugin registering
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
diff --git a/ext/opencv/gsttemplatematch.c b/ext/opencv/gsttemplatematch.c
index 3c97841..21d8cd4 100644
--- a/ext/opencv/gsttemplatematch.c
+++ b/ext/opencv/gsttemplatematch.c
@@ -179,7 +179,7 @@
 
   gst_element_add_pad (GST_ELEMENT (filter), filter->sinkpad);
   gst_element_add_pad (GST_ELEMENT (filter), filter->srcpad);
-  filter->template = NULL;
+  filter->templ = NULL;
   filter->display = TRUE;
   filter->cvTemplateImage = NULL;
   filter->cvDistImage = NULL;
@@ -243,7 +243,7 @@
       g_value_set_int (value, filter->method);
       break;
     case PROP_TEMPLATE:
-      g_value_set_string (value, filter->template);
+      g_value_set_string (value, filter->templ);
       break;
     case PROP_DISPLAY:
       g_value_set_boolean (value, filter->display);
@@ -298,7 +298,7 @@
   GstTemplateMatch *filter;
   filter = GST_TEMPLATE_MATCH (object);
 
-  g_free (filter->template);
+  g_free (filter->templ);
   if (filter->cvImage) {
     cvReleaseImageHeader (&filter->cvImage);
   }
@@ -405,12 +405,12 @@
 
 
 static void
-gst_template_match_match (IplImage * input, IplImage * template,
+gst_template_match_match (IplImage * input, IplImage * templ,
     IplImage * dist_image, double *best_res, CvPoint * best_pos, int method)
 {
   double dist_min = 0, dist_max = 0;
   CvPoint min_pos, max_pos;
-  cvMatchTemplate (input, template, dist_image, method);
+  cvMatchTemplate (input, templ, dist_image, method);
   cvMinMaxLoc (dist_image, &dist_min, &dist_max, &min_pos, &max_pos, NULL);
   if ((CV_TM_SQDIFF_NORMED == method) || (CV_TM_SQDIFF == method)) {
     *best_res = dist_min;
@@ -427,28 +427,28 @@
 
 /* We take ownership of template here */
 static void
-gst_template_match_load_template (GstTemplateMatch * filter, gchar * template)
+gst_template_match_load_template (GstTemplateMatch * filter, gchar * templ)
 {
   gchar *oldTemplateFilename = NULL;
   IplImage *oldTemplateImage = NULL, *newTemplateImage = NULL, *oldDistImage =
       NULL;
 
-  if (template) {
-    newTemplateImage = cvLoadImage (template, CV_LOAD_IMAGE_COLOR);
+  if (templ) {
+    newTemplateImage = cvLoadImage (templ, CV_LOAD_IMAGE_COLOR);
     if (!newTemplateImage) {
       /* Unfortunately OpenCV doesn't seem to provide any way of finding out
          why the image load failed, so we can't be more specific than FAILED: */
       GST_ELEMENT_WARNING (filter, RESOURCE, FAILED,
           (_("OpenCV failed to load template image")),
-          ("While attempting to load template '%s'", template));
-      g_free (template);
-      template = NULL;
+          ("While attempting to load template '%s'", templ));
+      g_free (templ);
+      templ = NULL;
     }
   }
 
   GST_OBJECT_LOCK (filter);
-  oldTemplateFilename = filter->template;
-  filter->template = template;
+  oldTemplateFilename = filter->templ;
+  filter->templ = templ;
   oldTemplateImage = filter->cvTemplateImage;
   filter->cvTemplateImage = newTemplateImage;
   oldDistImage = filter->cvDistImage;
diff --git a/ext/opencv/gsttemplatematch.h b/ext/opencv/gsttemplatematch.h
index 44d3d9c..b6c0426 100644
--- a/ext/opencv/gsttemplatematch.h
+++ b/ext/opencv/gsttemplatematch.h
@@ -79,7 +79,7 @@
   gint method;
   gboolean display;
 
-  gchar *template;
+  gchar *templ;
 
   IplImage *cvImage, *cvGray, *cvTemplateImage, *cvDistImage;
 };
diff --git a/ext/openexr/Makefile.in b/ext/openexr/Makefile.in
index fc10a74..0f76135 100644
--- a/ext/openexr/Makefile.in
+++ b/ext/openexr/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/openexr
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -247,6 +257,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -264,8 +275,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -294,8 +303,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -343,11 +350,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -531,6 +541,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -609,7 +620,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -649,6 +665,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -793,7 +810,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/openexr/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/openexr/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1134,6 +1150,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/ext/openexr/gstopenexrdec.cpp b/ext/openexr/gstopenexrdec.cpp
index d2d1dff..a334b0a 100644
--- a/ext/openexr/gstopenexrdec.cpp
+++ b/ext/openexr/gstopenexrdec.cpp
@@ -151,6 +151,9 @@
   GstVideoDecoder *decoder = (GstVideoDecoder *) self;
 
   gst_video_decoder_set_packetized (decoder, FALSE);
+  gst_video_decoder_set_use_default_pad_acceptcaps (GST_VIDEO_DECODER_CAST
+      (self), TRUE);
+  GST_PAD_SET_ACCEPT_TEMPLATE (GST_VIDEO_DECODER_SINK_PAD (self));
 }
 
 static gboolean
diff --git a/ext/openh264/Makefile.in b/ext/openh264/Makefile.in
index 1ad5f32..7bab82a 100644
--- a/ext/openh264/Makefile.in
+++ b/ext/openh264/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/openh264
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -247,6 +257,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -264,8 +275,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -294,8 +303,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -343,11 +350,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -531,6 +541,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -609,7 +620,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -649,6 +665,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -788,7 +805,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/openh264/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/openh264/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1137,6 +1153,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/ext/openh264/gstopenh264dec.cpp b/ext/openh264/gstopenh264dec.cpp
index e8fb3d2..6333fe4 100644
--- a/ext/openh264/gstopenh264dec.cpp
+++ b/ext/openh264/gstopenh264dec.cpp
@@ -207,10 +207,9 @@
 gst_openh264dec_stop (GstVideoDecoder * decoder)
 {
   GstOpenh264Dec *openh264dec = GST_OPENH264DEC (decoder);
-  gint ret = TRUE;
 
   if (openh264dec->priv->decoder) {
-    ret = openh264dec->priv->decoder->Uninitialize ();
+    openh264dec->priv->decoder->Uninitialize ();
     WelsDestroyDecoder (openh264dec->priv->decoder);
     openh264dec->priv->decoder = NULL;
   }
@@ -221,7 +220,7 @@
   }
   openh264dec->priv->width = openh264dec->priv->height = 0;
 
-  return ret;
+  return TRUE;
 }
 
 static gboolean
@@ -272,6 +271,7 @@
   if (frame) {
     if (!gst_buffer_map (frame->input_buffer, &map_info, GST_MAP_READ)) {
       GST_ERROR_OBJECT (openh264dec, "Cannot map input buffer!");
+      gst_video_codec_frame_unref (frame);
       return GST_FLOW_ERROR;
     }
 
@@ -306,8 +306,10 @@
     ret =
         openh264dec->priv->decoder->DecodeFrame2 (NULL, 0, yuvdata,
         &dst_buf_info);
-    if (ret != dsErrorFree)
+    if (ret != dsErrorFree) {
+      gst_video_codec_frame_unref (frame);
       return GST_FLOW_EOS;
+    }
   }
 
   /* FIXME: openh264 has no way for us to get a connection
@@ -322,6 +324,7 @@
 
   /* No output available yet */
   if (dst_buf_info.iBufferStatus != 1) {
+    gst_video_codec_frame_unref (frame);
     return (frame ? GST_FLOW_OK : GST_FLOW_EOS);
   }
 
@@ -340,6 +343,8 @@
     if (!gst_video_decoder_negotiate (decoder)) {
       GST_ERROR_OBJECT (openh264dec,
           "Failed to negotiate with downstream elements");
+      gst_video_codec_state_unref (state);
+      gst_video_codec_frame_unref (frame);
       return GST_FLOW_NOT_NEGOTIATED;
     }
   } else {
@@ -349,6 +354,7 @@
   flow_status = gst_video_decoder_allocate_output_frame (decoder, frame);
   if (flow_status != GST_FLOW_OK) {
     gst_video_codec_state_unref (state);
+    gst_video_codec_frame_unref (frame);
     return flow_status;
   }
 
@@ -356,6 +362,7 @@
           GST_MAP_WRITE)) {
     GST_ERROR_OBJECT (openh264dec, "Cannot map output buffer!");
     gst_video_codec_state_unref (state);
+    gst_video_codec_frame_unref (frame);
     return GST_FLOW_ERROR;
   }
 
diff --git a/ext/openjpeg/Makefile.in b/ext/openjpeg/Makefile.in
index 055cf52..53fa15d 100644
--- a/ext/openjpeg/Makefile.in
+++ b/ext/openjpeg/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/openjpeg
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -229,6 +239,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -246,8 +257,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -276,8 +285,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -325,11 +332,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -513,6 +523,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -591,7 +602,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -631,6 +647,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -771,7 +788,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/openjpeg/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/openjpeg/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1096,6 +1112,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/ext/openjpeg/gstopenjpegdec.c b/ext/openjpeg/gstopenjpegdec.c
index 363da6a..53dc5f6 100644
--- a/ext/openjpeg/gstopenjpegdec.c
+++ b/ext/openjpeg/gstopenjpegdec.c
@@ -109,6 +109,9 @@
 
   gst_video_decoder_set_packetized (decoder, TRUE);
   gst_video_decoder_set_needs_format (decoder, TRUE);
+  gst_video_decoder_set_use_default_pad_acceptcaps (GST_VIDEO_DECODER_CAST
+      (self), TRUE);
+  GST_PAD_SET_ACCEPT_TEMPLATE (GST_VIDEO_DECODER_SINK_PAD (self));
   opj_set_default_decoder_parameters (&self->params);
 #ifdef HAVE_OPENJPEG_1
   self->params.cp_limit_decoding = NO_LIMITATION;
diff --git a/ext/openjpeg/gstopenjpegenc.c b/ext/openjpeg/gstopenjpegenc.c
index aee074a..a68493c 100644
--- a/ext/openjpeg/gstopenjpegenc.c
+++ b/ext/openjpeg/gstopenjpegenc.c
@@ -203,6 +203,8 @@
 static void
 gst_openjpeg_enc_init (GstOpenJPEGEnc * self)
 {
+  GST_PAD_SET_ACCEPT_TEMPLATE (GST_VIDEO_ENCODER_SINK_PAD (self));
+
   opj_set_default_encoder_parameters (&self->params);
 
   self->params.cp_fixed_quality = 1;
diff --git a/ext/openni2/Makefile.in b/ext/openni2/Makefile.in
index 551e8af..ec5fa77 100644
--- a/ext/openni2/Makefile.in
+++ b/ext/openni2/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/openni2
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -228,6 +238,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -245,8 +256,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -275,8 +284,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -324,11 +331,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -512,6 +522,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -590,7 +601,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -630,6 +646,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -776,7 +793,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/openni2/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/openni2/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1093,6 +1109,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/ext/opus/Makefile.in b/ext/opus/Makefile.in
index eed0226..32c8edc 100644
--- a/ext/opus/Makefile.in
+++ b/ext/opus/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/opus
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -232,6 +242,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -249,8 +260,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -279,8 +288,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -328,11 +335,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -516,6 +526,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -594,7 +605,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -634,6 +650,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -777,7 +794,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/opus/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/opus/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1142,6 +1158,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/ext/opus/gstopuscommon.c b/ext/opus/gstopuscommon.c
index 227d44a..febccd8 100644
--- a/ext/opus/gstopuscommon.c
+++ b/ext/opus/gstopuscommon.c
@@ -94,13 +94,18 @@
     GstDebugCategory * category, const char *msg, int n_channels,
     const guint8 * table)
 {
-  char s[8 + 256 * 4] = "[ ";   /* enough for 256 times "255 " at most */
   int n;
+  GString *s;
 
+  if (gst_debug_category_get_threshold (category) < GST_LEVEL_INFO)
+    return;
+
+  s = g_string_new ("[ ");
   for (n = 0; n < n_channels; ++n) {
-    size_t len = strlen (s);
-    snprintf (s + len, sizeof (s) - len, "%d ", table[n]);
+    g_string_append_printf (s, "%d ", table[n]);
   }
-  strcat (s, "]");
-  GST_CAT_LEVEL_LOG (category, GST_LEVEL_INFO, element, "%s: %s", msg, s);
+  g_string_append (s, "]");
+
+  GST_CAT_LEVEL_LOG (category, GST_LEVEL_INFO, element, "%s: %s", msg, s->str);
+  g_string_free (s, TRUE);
 }
diff --git a/ext/opus/gstopusdec.c b/ext/opus/gstopusdec.c
index c88b9ee..d8a7eb8 100644
--- a/ext/opus/gstopusdec.c
+++ b/ext/opus/gstopusdec.c
@@ -157,6 +157,7 @@
   dec->r128_gain = 0;
   dec->sample_rate = 0;
   dec->n_channels = 0;
+  dec->leftover_plc_duration = 0;
 }
 
 static void
@@ -166,6 +167,9 @@
   dec->apply_gain = DEFAULT_APPLY_GAIN;
 
   gst_audio_decoder_set_needs_format (GST_AUDIO_DECODER (dec), TRUE);
+  gst_audio_decoder_set_use_default_pad_acceptcaps (GST_AUDIO_DECODER_CAST
+      (dec), TRUE);
+  GST_PAD_SET_ACCEPT_TEMPLATE (GST_AUDIO_DECODER_SINK_PAD (dec));
 
   gst_opus_dec_reset (dec);
 }
@@ -446,9 +450,53 @@
     size = 0;
   }
 
-  /* use maximum size (120 ms) as the number of returned samples is
-     not constant over the stream. */
-  samples = 120 * dec->sample_rate / 1000;
+  if (gst_buffer_get_size (buffer) == 0) {
+    GstClockTime const opus_plc_alignment = 2500 * GST_USECOND;
+    GstClockTime aligned_missing_duration;
+    GstClockTime missing_duration = GST_BUFFER_DURATION (buffer);
+
+    GST_DEBUG_OBJECT (dec,
+        "missing buffer, doing PLC duration %" GST_TIME_FORMAT
+        " plus leftover %" GST_TIME_FORMAT, GST_TIME_ARGS (missing_duration),
+        GST_TIME_ARGS (dec->leftover_plc_duration));
+
+    /* add the leftover PLC duration to that of the buffer */
+    missing_duration += dec->leftover_plc_duration;
+
+    /* align the combined buffer and leftover PLC duration to multiples
+     * of 2.5ms, always rounding down, and store excess duration for later */
+    aligned_missing_duration =
+        (missing_duration / opus_plc_alignment) * opus_plc_alignment;
+    dec->leftover_plc_duration = missing_duration - aligned_missing_duration;
+
+    /* Opus' PLC cannot operate with less than 2.5ms; skip PLC
+     * and accumulate the missing duration in the leftover_plc_duration
+     * for the next PLC attempt */
+    if (aligned_missing_duration < opus_plc_alignment) {
+      GST_DEBUG_OBJECT (dec,
+          "current duration %" GST_TIME_FORMAT
+          " of missing data not enough for PLC (minimum needed: %"
+          GST_TIME_FORMAT ") - skipping", GST_TIME_ARGS (missing_duration),
+          GST_TIME_ARGS (opus_plc_alignment));
+      goto done;
+    }
+
+    /* convert the duration (in nanoseconds) to sample count */
+    samples =
+        gst_util_uint64_scale_int (aligned_missing_duration, dec->sample_rate,
+        GST_SECOND);
+
+    GST_DEBUG_OBJECT (dec,
+        "calculated PLC frame length: %" GST_TIME_FORMAT
+        " num frame samples: %d new leftover: %" GST_TIME_FORMAT,
+        GST_TIME_ARGS (aligned_missing_duration), samples,
+        GST_TIME_ARGS (dec->leftover_plc_duration));
+  } else {
+    /* use maximum size (120 ms) as the number of returned samples is
+       not constant over the stream. */
+    samples = 120 * dec->sample_rate / 1000;
+  }
+
   packet_size = samples * dec->n_channels * 2;
 
   outbuf =
@@ -462,7 +510,7 @@
   out_data = (gint16 *) omap.data;
 
   if (dec->use_inband_fec) {
-    if (dec->last_buffer) {
+    if (gst_buffer_get_size (dec->last_buffer) > 0) {
       /* normal delayed decode */
       GST_LOG_OBJECT (dec, "FEC enabled, decoding last delayed buffer");
       n = opus_multistream_decode (dec->state, data, size, out_data, samples,
diff --git a/ext/opus/gstopusdec.h b/ext/opus/gstopusdec.h
index 4a270fe..f8d43a9 100644
--- a/ext/opus/gstopusdec.h
+++ b/ext/opus/gstopusdec.h
@@ -71,6 +71,8 @@
   gboolean use_inband_fec;
   GstBuffer *last_buffer;
   gboolean primed;
+
+  guint64 leftover_plc_duration;
 };
 
 struct _GstOpusDecClass {
diff --git a/ext/opus/gstopusenc.c b/ext/opus/gstopusenc.c
index 70c7718..19b6d6e 100644
--- a/ext/opus/gstopusenc.c
+++ b/ext/opus/gstopusenc.c
@@ -376,6 +376,8 @@
 
   GST_DEBUG_OBJECT (enc, "init");
 
+  GST_PAD_SET_ACCEPT_TEMPLATE (GST_AUDIO_ENCODER_SINK_PAD (enc));
+
   g_mutex_init (&enc->property_lock);
 
   enc->n_channels = -1;
diff --git a/ext/opus/gstrtpopusdepay.c b/ext/opus/gstrtpopusdepay.c
index af3237b..abb7218 100644
--- a/ext/opus/gstrtpopusdepay.c
+++ b/ext/opus/gstrtpopusdepay.c
@@ -26,6 +26,7 @@
 #include <string.h>
 #include <stdlib.h>
 #include <gst/rtp/gstrtpbuffer.h>
+#include <gst/audio/audio.h>
 #include "gstrtpopusdepay.h"
 
 GST_DEBUG_CATEGORY_STATIC (rtpopusdepay_debug);
@@ -137,6 +138,25 @@
   return ret;
 }
 
+static gboolean
+foreach_metadata (GstBuffer * inbuf, GstMeta ** meta, gpointer user_data)
+{
+  GstRTPOpusDepay *depay = user_data;
+  const GstMetaInfo *info = (*meta)->info;
+  const gchar *const *tags = gst_meta_api_type_get_tags (info->api);
+
+  if (!tags || (g_strv_length ((gchar **) tags) == 1
+          && gst_meta_api_type_has_tag (info->api,
+              g_quark_from_string (GST_META_TAG_AUDIO_STR)))) {
+    GST_DEBUG_OBJECT (depay, "keeping metadata %s", g_type_name (info->api));
+  } else {
+    GST_DEBUG_OBJECT (depay, "dropping metadata %s", g_type_name (info->api));
+    *meta = NULL;
+  }
+
+  return TRUE;
+}
+
 static GstBuffer *
 gst_rtp_opus_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
 {
@@ -147,5 +167,9 @@
   outbuf = gst_rtp_buffer_get_payload_buffer (&rtpbuf);
   gst_rtp_buffer_unmap (&rtpbuf);
 
+  outbuf = gst_buffer_make_writable (outbuf);
+  /* Filter away all metas that are not sensible to copy */
+  gst_buffer_foreach_meta (outbuf, foreach_metadata, depayload);
+
   return outbuf;
 }
diff --git a/ext/opus/gstrtpopuspay.c b/ext/opus/gstrtpopuspay.c
index 057c8d0..ead49a5 100644
--- a/ext/opus/gstrtpopuspay.c
+++ b/ext/opus/gstrtpopuspay.c
@@ -26,6 +26,7 @@
 #include <string.h>
 
 #include <gst/rtp/gstrtpbuffer.h>
+#include <gst/audio/audio.h>
 
 #include "gstrtpopuspay.h"
 
@@ -160,18 +161,52 @@
   return res;
 }
 
+typedef struct
+{
+  GstRtpOPUSPay *pay;
+  GstBuffer *outbuf;
+} CopyMetaData;
+
+static gboolean
+foreach_metadata (GstBuffer * inbuf, GstMeta ** meta, gpointer user_data)
+{
+  CopyMetaData *data = user_data;
+  GstRtpOPUSPay *pay = data->pay;
+  GstBuffer *outbuf = data->outbuf;
+  const GstMetaInfo *info = (*meta)->info;
+  const gchar *const *tags = gst_meta_api_type_get_tags (info->api);
+
+  if (!tags || (g_strv_length ((gchar **) tags) == 1
+          && gst_meta_api_type_has_tag (info->api,
+              g_quark_from_string (GST_META_TAG_AUDIO_STR)))) {
+    GstMetaTransformCopy copy_data = { FALSE, 0, -1 };
+    GST_DEBUG_OBJECT (pay, "copy metadata %s", g_type_name (info->api));
+    /* simply copy then */
+    info->transform_func (outbuf, *meta, inbuf,
+        _gst_meta_transform_copy, &copy_data);
+  } else {
+    GST_DEBUG_OBJECT (pay, "not copying metadata %s", g_type_name (info->api));
+  }
+
+  return TRUE;
+}
+
 static GstFlowReturn
 gst_rtp_opus_pay_handle_buffer (GstRTPBasePayload * basepayload,
     GstBuffer * buffer)
 {
   GstBuffer *outbuf;
   GstClockTime pts, dts, duration;
+  CopyMetaData data;
 
   pts = GST_BUFFER_PTS (buffer);
   dts = GST_BUFFER_DTS (buffer);
   duration = GST_BUFFER_DURATION (buffer);
 
   outbuf = gst_rtp_buffer_new_allocate (0, 0, 0);
+  data.pay = GST_RTP_OPUS_PAY (basepayload);
+  data.outbuf = outbuf;
+  gst_buffer_foreach_meta (buffer, foreach_metadata, &data);
   outbuf = gst_buffer_append (outbuf, buffer);
 
   GST_BUFFER_PTS (outbuf) = pts;
diff --git a/ext/qt/Makefile.am b/ext/qt/Makefile.am
new file mode 100644
index 0000000..059ee7b
--- /dev/null
+++ b/ext/qt/Makefile.am
@@ -0,0 +1,51 @@
+plugin_LTLIBRARIES = libqtsink.la
+
+noinst_HEADERS = \
+	gstqsgtexture.h \
+	gstqtsink.h \
+	qtitem.h
+
+moc_generated = \
+	moc_qtitem.cc \
+	moc_gstqsgtexture.cc
+
+#anything generated by the Qt tools...
+BUILT_SOURCES = $(moc_generated)
+CLEANFILES = $(moc_generated)
+
+nodist_libqtsink_la_SOURCES = $(BUILT_SOURCES)
+
+libqtsink_la_SOURCES = \
+	gstqsgtexture.cc \
+	qtitem.cc \
+	gstqtsink.cc \
+	gstqtsink.h \
+	gstplugin.cc
+
+libqtsink_la_CXXFLAGS = \
+	-I$(top_srcdir)/gst-libs \
+	-I$(top_builddir)/gst-libs \
+	$(GST_CXXFLAGS) \
+	$(GST_BASE_CFLAGS) \
+	$(GST_PLUGINS_BASE_CFLAGS) \
+	$(QT_CFLAGS)
+
+libqtsink_la_LIBADD = \
+	$(GST_BASE_LIBS) \
+	$(GST_PLUGINS_BASE_LIBS) \
+	$(QT_LIBS) \
+	$(top_builddir)/gst-libs/gst/gl/libgstgl-$(GST_API_VERSION).la \
+	-lgstvideo-$(GST_API_VERSION)
+
+libqtsink_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
+libqtsink_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
+
+
+$(moc_generated): moc_%.cc: %.h
+	@MOC@ -o $@ $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(MOC_CPPFLAGS) $<
+
+ui-%.h: %.ui
+	@UIC@ -o $@ $<
+
+qrc-%.cc: %.qrc
+	@RCC@ -o $@ $<
diff --git a/ext/qt/Makefile.in b/ext/qt/Makefile.in
new file mode 100644
index 0000000..dce27d9
--- /dev/null
+++ b/ext/qt/Makefile.in
@@ -0,0 +1,1205 @@
+# Makefile.in generated by automake 1.15 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+
+VPATH = @srcdir@
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
+    case $$MAKEFLAGS in \
+      *\\[\ \	]*) \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+subdir = ext/qt
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
+	$(top_srcdir)/common/m4/as-auto-alt.m4 \
+	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
+	$(top_srcdir)/common/m4/as-libtool.m4 \
+	$(top_srcdir)/common/m4/as-version.m4 \
+	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
+	$(top_srcdir)/common/m4/gst-arch.m4 \
+	$(top_srcdir)/common/m4/gst-args.m4 \
+	$(top_srcdir)/common/m4/gst-check.m4 \
+	$(top_srcdir)/common/m4/gst-default.m4 \
+	$(top_srcdir)/common/m4/gst-dowhile.m4 \
+	$(top_srcdir)/common/m4/gst-error.m4 \
+	$(top_srcdir)/common/m4/gst-feature.m4 \
+	$(top_srcdir)/common/m4/gst-gettext.m4 \
+	$(top_srcdir)/common/m4/gst-glib2.m4 \
+	$(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+	$(top_srcdir)/common/m4/gst-platform.m4 \
+	$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
+	$(top_srcdir)/common/m4/gst-plugindir.m4 \
+	$(top_srcdir)/common/m4/gst.m4 \
+	$(top_srcdir)/common/m4/gtk-doc.m4 \
+	$(top_srcdir)/common/m4/introspection.m4 \
+	$(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \
+	$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gsettings.m4 \
+	$(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/gst-sdl.m4 \
+	$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
+	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+	$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libgcrypt.m4 \
+	$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+	$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+	$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \
+	$(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
+	$(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
+am__installdirs = "$(DESTDIR)$(plugindir)"
+LTLIBRARIES = $(plugin_LTLIBRARIES)
+am__DEPENDENCIES_1 =
+libqtsink_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+	$(top_builddir)/gst-libs/gst/gl/libgstgl-$(GST_API_VERSION).la
+am_libqtsink_la_OBJECTS = libqtsink_la-gstqsgtexture.lo \
+	libqtsink_la-qtitem.lo libqtsink_la-gstqtsink.lo \
+	libqtsink_la-gstplugin.lo
+am__objects_1 = libqtsink_la-moc_qtitem.lo \
+	libqtsink_la-moc_gstqsgtexture.lo
+am__objects_2 = $(am__objects_1)
+nodist_libqtsink_la_OBJECTS = $(am__objects_2)
+libqtsink_la_OBJECTS = $(am_libqtsink_la_OBJECTS) \
+	$(nodist_libqtsink_la_OBJECTS)
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
+am__v_lt_0 = --silent
+am__v_lt_1 = 
+libqtsink_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \
+	$(libqtsink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
+	$(CXXLD) $(libqtsink_la_CXXFLAGS) $(CXXFLAGS) \
+	$(libqtsink_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \
+	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+	$(AM_CXXFLAGS) $(CXXFLAGS)
+AM_V_CXX = $(am__v_CXX_@AM_V@)
+am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@)
+am__v_CXX_0 = @echo "  CXX     " $@;
+am__v_CXX_1 = 
+CXXLD = $(CXX)
+CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
+	$(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CXXLD = $(am__v_CXXLD_@AM_V@)
+am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@)
+am__v_CXXLD_0 = @echo "  CXXLD   " $@;
+am__v_CXXLD_1 = 
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+	$(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
+CCLD = $(CC)
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+	$(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
+SOURCES = $(libqtsink_la_SOURCES) $(nodist_libqtsink_la_SOURCES)
+DIST_SOURCES = $(libqtsink_la_SOURCES)
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
+HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
+ACMENC_CFLAGS = @ACMENC_CFLAGS@
+ACMMP3DEC_CFLAGS = @ACMMP3DEC_CFLAGS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+APEXSINK_CFLAGS = @APEXSINK_CFLAGS@
+APEXSINK_LIBS = @APEXSINK_LIBS@
+AR = @AR@
+AS = @AS@
+ASSRENDER_CFLAGS = @ASSRENDER_CFLAGS@
+ASSRENDER_LIBS = @ASSRENDER_LIBS@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
+BLUEZ5_LIBS = @BLUEZ5_LIBS@
+BS2B_CFLAGS = @BS2B_CFLAGS@
+BS2B_LIBS = @BS2B_LIBS@
+BZ2_LIBS = @BZ2_LIBS@
+CC = @CC@
+CCASFLAGS = @CCASFLAGS@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CHROMAPRINT_CFLAGS = @CHROMAPRINT_CFLAGS@
+CHROMAPRINT_LIBS = @CHROMAPRINT_LIBS@
+CLUTTER_CFLAGS = @CLUTTER_CFLAGS@
+CLUTTER_GLX_CFLAGS = @CLUTTER_GLX_CFLAGS@
+CLUTTER_GLX_LIBS = @CLUTTER_GLX_LIBS@
+CLUTTER_LIBS = @CLUTTER_LIBS@
+CLUTTER_X11_CFLAGS = @CLUTTER_X11_CFLAGS@
+CLUTTER_X11_LIBS = @CLUTTER_X11_LIBS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CURL_CFLAGS = @CURL_CFLAGS@
+CURL_LIBS = @CURL_LIBS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DAALA_CFLAGS = @DAALA_CFLAGS@
+DAALA_LIBS = @DAALA_LIBS@
+DCCP_LIBS = @DCCP_LIBS@
+DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
+DECKLINK_LIBS = @DECKLINK_LIBS@
+DEFAULT_AUDIOSINK = @DEFAULT_AUDIOSINK@
+DEFAULT_AUDIOSRC = @DEFAULT_AUDIOSRC@
+DEFAULT_VIDEOSINK = @DEFAULT_VIDEOSINK@
+DEFAULT_VIDEOSRC = @DEFAULT_VIDEOSRC@
+DEFAULT_VISUALIZER = @DEFAULT_VISUALIZER@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@
+DIRECT3D_LIBS = @DIRECT3D_LIBS@
+DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@
+DIRECTFB_LIBS = @DIRECTFB_LIBS@
+DIRECTSOUND_LIBS = @DIRECTSOUND_LIBS@
+DIRECTX_CFLAGS = @DIRECTX_CFLAGS@
+DIRECTX_LDFLAGS = @DIRECTX_LDFLAGS@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DTLS_CFLAGS = @DTLS_CFLAGS@
+DTLS_LIBS = @DTLS_LIBS@
+DTS_LIBS = @DTS_LIBS@
+DUMPBIN = @DUMPBIN@
+DVDNAV_CFLAGS = @DVDNAV_CFLAGS@
+DVDNAV_LIBS = @DVDNAV_LIBS@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ERROR_CFLAGS = @ERROR_CFLAGS@
+ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
+ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@
+EXEEXT = @EXEEXT@
+EXIF_CFLAGS = @EXIF_CFLAGS@
+EXIF_LIBS = @EXIF_LIBS@
+FAAC_LIBS = @FAAC_LIBS@
+FAAD_IS_NEAAC = @FAAD_IS_NEAAC@
+FAAD_LIBS = @FAAD_LIBS@
+FFLAGS = @FFLAGS@
+FGREP = @FGREP@
+FLITE_CFLAGS = @FLITE_CFLAGS@
+FLITE_LIBS = @FLITE_LIBS@
+FLUIDSYNTH_CFLAGS = @FLUIDSYNTH_CFLAGS@
+FLUIDSYNTH_LIBS = @FLUIDSYNTH_LIBS@
+GCOV = @GCOV@
+GCOV_CFLAGS = @GCOV_CFLAGS@
+GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
+GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO_CFLAGS = @GIO_CFLAGS@
+GIO_LDFLAGS = @GIO_LDFLAGS@
+GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
+GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
+GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
+GLIB_LIBS = @GLIB_LIBS@
+GLIB_MKENUMS = @GLIB_MKENUMS@
+GLIB_PREFIX = @GLIB_PREFIX@
+GLIB_REQ = @GLIB_REQ@
+GL_CFLAGS = @GL_CFLAGS@
+GL_LIBS = @GL_LIBS@
+GL_OBJCFLAGS = @GL_OBJCFLAGS@
+GME_LIBS = @GME_LIBS@
+GMODULE_EXPORT_CFLAGS = @GMODULE_EXPORT_CFLAGS@
+GMODULE_EXPORT_LIBS = @GMODULE_EXPORT_LIBS@
+GMODULE_NO_EXPORT_CFLAGS = @GMODULE_NO_EXPORT_CFLAGS@
+GMODULE_NO_EXPORT_LIBS = @GMODULE_NO_EXPORT_LIBS@
+GMSGFMT = @GMSGFMT@
+GMSGFMT_015 = @GMSGFMT_015@
+GRAPHENE_CFLAGS = @GRAPHENE_CFLAGS@
+GRAPHENE_LIBS = @GRAPHENE_LIBS@
+GREP = @GREP@
+GSETTINGS_CFLAGS = @GSETTINGS_CFLAGS@
+GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@
+GSETTINGS_LIBS = @GSETTINGS_LIBS@
+GSM_LIBS = @GSM_LIBS@
+GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
+GSTPB_PREFIX = @GSTPB_PREFIX@
+GST_AGE = @GST_AGE@
+GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@
+GST_API_VERSION = @GST_API_VERSION@
+GST_BASE_CFLAGS = @GST_BASE_CFLAGS@
+GST_BASE_LIBS = @GST_BASE_LIBS@
+GST_CFLAGS = @GST_CFLAGS@
+GST_CHECK_CFLAGS = @GST_CHECK_CFLAGS@
+GST_CHECK_LIBS = @GST_CHECK_LIBS@
+GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
+GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
+GST_CURRENT = @GST_CURRENT@
+GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
+GST_LIBS = @GST_LIBS@
+GST_LIBVERSION = @GST_LIBVERSION@
+GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
+GST_LICENSE = @GST_LICENSE@
+GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
+GST_OBJCFLAGS = @GST_OBJCFLAGS@
+GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
+GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
+GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
+GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
+GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
+GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
+GST_PLUGINS_BAD_CFLAGS = @GST_PLUGINS_BAD_CFLAGS@
+GST_PLUGINS_BAD_CXXFLAGS = @GST_PLUGINS_BAD_CXXFLAGS@
+GST_PLUGINS_BAD_OBJCFLAGS = @GST_PLUGINS_BAD_OBJCFLAGS@
+GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
+GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
+GST_PLUGINS_BASE_LIBS = @GST_PLUGINS_BASE_LIBS@
+GST_PLUGINS_DIR = @GST_PLUGINS_DIR@
+GST_PLUGINS_GOOD_CFLAGS = @GST_PLUGINS_GOOD_CFLAGS@
+GST_PLUGINS_GOOD_DIR = @GST_PLUGINS_GOOD_DIR@
+GST_PLUGINS_GOOD_LIBS = @GST_PLUGINS_GOOD_LIBS@
+GST_PLUGINS_LIBAV_CFLAGS = @GST_PLUGINS_LIBAV_CFLAGS@
+GST_PLUGINS_LIBAV_DIR = @GST_PLUGINS_LIBAV_DIR@
+GST_PLUGINS_LIBAV_LIBS = @GST_PLUGINS_LIBAV_LIBS@
+GST_PLUGINS_NONPORTED = @GST_PLUGINS_NONPORTED@
+GST_PLUGINS_SELECTED = @GST_PLUGINS_SELECTED@
+GST_PLUGINS_UGLY_CFLAGS = @GST_PLUGINS_UGLY_CFLAGS@
+GST_PLUGINS_UGLY_DIR = @GST_PLUGINS_UGLY_DIR@
+GST_PLUGINS_UGLY_LIBS = @GST_PLUGINS_UGLY_LIBS@
+GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
+GST_PLUGIN_LIBTOOLFLAGS = @GST_PLUGIN_LIBTOOLFLAGS@
+GST_PREFIX = @GST_PREFIX@
+GST_REVISION = @GST_REVISION@
+GST_TOOLS_DIR = @GST_TOOLS_DIR@
+GST_VIDEO_CFLAGS = @GST_VIDEO_CFLAGS@
+GST_VIDEO_LIBS = @GST_VIDEO_LIBS@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_GL_CFLAGS = @GTK3_GL_CFLAGS@
+GTK3_GL_LIBS = @GTK3_GL_LIBS@
+GTK3_LIBS = @GTK3_LIBS@
+GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
+GTK_BASE_DIR = @GTK_BASE_DIR@
+GTK_CFLAGS = @GTK_CFLAGS@
+GTK_LIBS = @GTK_LIBS@
+GTK_VERSION = @GTK_VERSION@
+G_UDEV_CFLAGS = @G_UDEV_CFLAGS@
+G_UDEV_LIBS = @G_UDEV_LIBS@
+HAVE_CLUTTER = @HAVE_CLUTTER@
+HAVE_CLUTTER_GLX = @HAVE_CLUTTER_GLX@
+HAVE_CLUTTER_X11 = @HAVE_CLUTTER_X11@
+HAVE_CXX = @HAVE_CXX@
+HAVE_DIRECT3D = @HAVE_DIRECT3D@
+HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@
+HAVE_DTS = @HAVE_DTS@
+HAVE_EGL = @HAVE_EGL@
+HAVE_FAAC = @HAVE_FAAC@
+HAVE_FAAD = @HAVE_FAAD@
+HAVE_FLITE = @HAVE_FLITE@
+HAVE_GL = @HAVE_GL@
+HAVE_GLES2 = @HAVE_GLES2@
+HAVE_GRAPHENE = @HAVE_GRAPHENE@
+HAVE_GSM = @HAVE_GSM@
+HAVE_GTK3 = @HAVE_GTK3@
+HAVE_JPEG = @HAVE_JPEG@
+HAVE_NAS = @HAVE_NAS@
+HAVE_OPENJPEG = @HAVE_OPENJPEG@
+HAVE_PNG = @HAVE_PNG@
+HAVE_SRTP = @HAVE_SRTP@
+HAVE_WASAPI = @HAVE_WASAPI@
+HAVE_WILDMIDI = @HAVE_WILDMIDI@
+HAVE_WINKS = @HAVE_WINKS@
+HAVE_WINSCREENCAP = @HAVE_WINSCREENCAP@
+HAVE_X11 = @HAVE_X11@
+HTML_DIR = @HTML_DIR@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLLIBS = @INTLLIBS@
+INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_INIT = @INTROSPECTION_INIT@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
+JPEG_LIBS = @JPEG_LIBS@
+KATE_CFLAGS = @KATE_CFLAGS@
+KATE_LIBS = @KATE_LIBS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBDC1394_CFLAGS = @LIBDC1394_CFLAGS@
+LIBDC1394_LIBS = @LIBDC1394_LIBS@
+LIBDE265_CFLAGS = @LIBDE265_CFLAGS@
+LIBDE265_LIBS = @LIBDE265_LIBS@
+LIBDIR = @LIBDIR@
+LIBGCRYPT_CFLAGS = @LIBGCRYPT_CFLAGS@
+LIBGCRYPT_CONFIG = @LIBGCRYPT_CONFIG@
+LIBGCRYPT_LIBS = @LIBGCRYPT_LIBS@
+LIBICONV = @LIBICONV@
+LIBINTL = @LIBINTL@
+LIBM = @LIBM@
+LIBMMS_CFLAGS = @LIBMMS_CFLAGS@
+LIBMMS_LIBS = @LIBMMS_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBPNG_CFLAGS = @LIBPNG_CFLAGS@
+LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBUDEV_CFLAGS = @LIBUDEV_CFLAGS@
+LIBUDEV_LIBS = @LIBUDEV_LIBS@
+LIBUSB_CFLAGS = @LIBUSB_CFLAGS@
+LIBUSB_LIBS = @LIBUSB_LIBS@
+LIBVISUAL_CFLAGS = @LIBVISUAL_CFLAGS@
+LIBVISUAL_LIBS = @LIBVISUAL_LIBS@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LOCALEDIR = @LOCALEDIR@
+LRDF_CFLAGS = @LRDF_CFLAGS@
+LRDF_LIBS = @LRDF_LIBS@
+LTLIBICONV = @LTLIBICONV@
+LTLIBINTL = @LTLIBINTL@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MIMIC_CFLAGS = @MIMIC_CFLAGS@
+MIMIC_LIBS = @MIMIC_LIBS@
+MJPEG_CFLAGS = @MJPEG_CFLAGS@
+MJPEG_LIBS = @MJPEG_LIBS@
+MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
+MODPLUG_LIBS = @MODPLUG_LIBS@
+MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
+MPEG2ENC_LIBS = @MPEG2ENC_LIBS@
+MPG123_CFLAGS = @MPG123_CFLAGS@
+MPG123_LIBS = @MPG123_LIBS@
+MPLEX_CFLAGS = @MPLEX_CFLAGS@
+MPLEX_LDFLAGS = @MPLEX_LDFLAGS@
+MPLEX_LIBS = @MPLEX_LIBS@
+MSGFMT = @MSGFMT@
+MSGFMT_015 = @MSGFMT_015@
+MSGMERGE = @MSGMERGE@
+MUSEPACK_LIBS = @MUSEPACK_LIBS@
+NAS_CFLAGS = @NAS_CFLAGS@
+NAS_LIBS = @NAS_LIBS@
+NEON_CFLAGS = @NEON_CFLAGS@
+NEON_LIBS = @NEON_LIBS@
+NETTLE_CFLAGS = @NETTLE_CFLAGS@
+NETTLE_LIBS = @NETTLE_LIBS@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJC = @OBJC@
+OBJCDEPMODE = @OBJCDEPMODE@
+OBJCFLAGS = @OBJCFLAGS@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OFA_CFLAGS = @OFA_CFLAGS@
+OFA_LIBS = @OFA_LIBS@
+OPENAL_CFLAGS = @OPENAL_CFLAGS@
+OPENAL_LIBS = @OPENAL_LIBS@
+OPENCV_CFLAGS = @OPENCV_CFLAGS@
+OPENCV_LIBS = @OPENCV_LIBS@
+OPENCV_PREFIX = @OPENCV_PREFIX@
+OPENEXR_CFLAGS = @OPENEXR_CFLAGS@
+OPENEXR_LIBS = @OPENEXR_LIBS@
+OPENH264_CFLAGS = @OPENH264_CFLAGS@
+OPENH264_LIBS = @OPENH264_LIBS@
+OPENJPEG_CFLAGS = @OPENJPEG_CFLAGS@
+OPENJPEG_LIBS = @OPENJPEG_LIBS@
+OPENNI2_CFLAGS = @OPENNI2_CFLAGS@
+OPENNI2_LIBS = @OPENNI2_LIBS@
+OPENSSL_CFLAGS = @OPENSSL_CFLAGS@
+OPENSSL_LIBS = @OPENSSL_LIBS@
+OPUS_CFLAGS = @OPUS_CFLAGS@
+OPUS_LIBS = @OPUS_LIBS@
+ORCC = @ORCC@
+ORCC_FLAGS = @ORCC_FLAGS@
+ORC_CFLAGS = @ORC_CFLAGS@
+ORC_LIBS = @ORC_LIBS@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PACKAGE_VERSION_MAJOR = @PACKAGE_VERSION_MAJOR@
+PACKAGE_VERSION_MICRO = @PACKAGE_VERSION_MICRO@
+PACKAGE_VERSION_MINOR = @PACKAGE_VERSION_MINOR@
+PACKAGE_VERSION_NANO = @PACKAGE_VERSION_NANO@
+PACKAGE_VERSION_RELEASE = @PACKAGE_VERSION_RELEASE@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PLUGINDIR = @PLUGINDIR@
+POSUB = @POSUB@
+PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
+PVR_CFLAGS = @PVR_CFLAGS@
+PVR_LIBS = @PVR_LIBS@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
+RANLIB = @RANLIB@
+RCC = @RCC@
+RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
+RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
+RSVG_CFLAGS = @RSVG_CFLAGS@
+RSVG_LIBS = @RSVG_LIBS@
+RTMP_CFLAGS = @RTMP_CFLAGS@
+RTMP_LIBS = @RTMP_LIBS@
+SBC_CFLAGS = @SBC_CFLAGS@
+SBC_LIBS = @SBC_LIBS@
+SCHRO_CFLAGS = @SCHRO_CFLAGS@
+SCHRO_LIBS = @SCHRO_LIBS@
+SDL_CFLAGS = @SDL_CFLAGS@
+SDL_CLUTTER = @SDL_CLUTTER@
+SDL_CONFIG = @SDL_CONFIG@
+SDL_LIBS = @SDL_LIBS@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SHM_LIBS = @SHM_LIBS@
+SLV2_CFLAGS = @SLV2_CFLAGS@
+SLV2_LIBS = @SLV2_LIBS@
+SNDFILE_CFLAGS = @SNDFILE_CFLAGS@
+SNDFILE_LIBS = @SNDFILE_LIBS@
+SNDIO_LIBS = @SNDIO_LIBS@
+SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@
+SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@
+SPANDSP_CFLAGS = @SPANDSP_CFLAGS@
+SPANDSP_LIBS = @SPANDSP_LIBS@
+SPC_LIBS = @SPC_LIBS@
+SRTP_CFLAGS = @SRTP_CFLAGS@
+SRTP_LIBS = @SRTP_LIBS@
+SSH2_CFLAGS = @SSH2_CFLAGS@
+SSH2_LIBS = @SSH2_LIBS@
+STRIP = @STRIP@
+TELETEXTDEC_CFLAGS = @TELETEXTDEC_CFLAGS@
+TELETEXTDEC_LIBS = @TELETEXTDEC_LIBS@
+TIGER_CFLAGS = @TIGER_CFLAGS@
+TIGER_LIBS = @TIGER_LIBS@
+TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
+TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
+USE_GLES2 = @USE_GLES2@
+USE_NLS = @USE_NLS@
+USE_OPENGL = @USE_OPENGL@
+VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
+VALGRIND_LIBS = @VALGRIND_LIBS@
+VALGRIND_PATH = @VALGRIND_PATH@
+VDPAU_CFLAGS = @VDPAU_CFLAGS@
+VDPAU_LIBS = @VDPAU_LIBS@
+VERSION = @VERSION@
+VOAACENC_CFLAGS = @VOAACENC_CFLAGS@
+VOAACENC_LIBS = @VOAACENC_LIBS@
+VOAMRWBENC_CFLAGS = @VOAMRWBENC_CFLAGS@
+VOAMRWBENC_LIBS = @VOAMRWBENC_LIBS@
+WARNING_CFLAGS = @WARNING_CFLAGS@
+WARNING_CXXFLAGS = @WARNING_CXXFLAGS@
+WARNING_OBJCFLAGS = @WARNING_OBJCFLAGS@
+WASAPI_LIBS = @WASAPI_LIBS@
+WAYLAND_CFLAGS = @WAYLAND_CFLAGS@
+WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
+WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
+WAYLAND_LIBS = @WAYLAND_LIBS@
+WEBP_CFLAGS = @WEBP_CFLAGS@
+WEBP_LIBS = @WEBP_LIBS@
+WILDMIDI_CFLAGS = @WILDMIDI_CFLAGS@
+WILDMIDI_LIBS = @WILDMIDI_LIBS@
+WINKS_LIBS = @WINKS_LIBS@
+WINSCREENCAP_LIBS = @WINSCREENCAP_LIBS@
+WINSOCK2_LIBS = @WINSOCK2_LIBS@
+X11_CFLAGS = @X11_CFLAGS@
+X11_LIBS = @X11_LIBS@
+X265_CFLAGS = @X265_CFLAGS@
+X265_LIBS = @X265_LIBS@
+XCOMPOSITE_CFLAGS = @XCOMPOSITE_CFLAGS@
+XCOMPOSITE_LIBS = @XCOMPOSITE_LIBS@
+XGETTEXT = @XGETTEXT@
+XGETTEXT_015 = @XGETTEXT_015@
+XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+XVID_LIBS = @XVID_LIBS@
+X_CFLAGS = @X_CFLAGS@
+X_LIBS = @X_LIBS@
+ZBAR_CFLAGS = @ZBAR_CFLAGS@
+ZBAR_LIBS = @ZBAR_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+ac_ct_OBJC = @ac_ct_OBJC@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gsettingsschemadir = @gsettingsschemadir@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+plugindir = @plugindir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+wayland_scanner = @wayland_scanner@
+plugin_LTLIBRARIES = libqtsink.la
+noinst_HEADERS = \
+	gstqsgtexture.h \
+	gstqtsink.h \
+	qtitem.h
+
+moc_generated = \
+	moc_qtitem.cc \
+	moc_gstqsgtexture.cc
+
+
+#anything generated by the Qt tools...
+BUILT_SOURCES = $(moc_generated)
+CLEANFILES = $(moc_generated)
+nodist_libqtsink_la_SOURCES = $(BUILT_SOURCES)
+libqtsink_la_SOURCES = \
+	gstqsgtexture.cc \
+	qtitem.cc \
+	gstqtsink.cc \
+	gstqtsink.h \
+	gstplugin.cc
+
+libqtsink_la_CXXFLAGS = \
+	-I$(top_srcdir)/gst-libs \
+	-I$(top_builddir)/gst-libs \
+	$(GST_CXXFLAGS) \
+	$(GST_BASE_CFLAGS) \
+	$(GST_PLUGINS_BASE_CFLAGS) \
+	$(QT_CFLAGS)
+
+libqtsink_la_LIBADD = \
+	$(GST_BASE_LIBS) \
+	$(GST_PLUGINS_BASE_LIBS) \
+	$(QT_LIBS) \
+	$(top_builddir)/gst-libs/gst/gl/libgstgl-$(GST_API_VERSION).la \
+	-lgstvideo-$(GST_API_VERSION)
+
+libqtsink_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
+libqtsink_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
+all: $(BUILT_SOURCES)
+	$(MAKE) $(AM_MAKEFLAGS) all-am
+
+.SUFFIXES:
+.SUFFIXES: .cc .lo .o .obj
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+	        && { if test -f $@; then exit 0; else break; fi; }; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/qt/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu ext/qt/Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
+	@$(NORMAL_INSTALL)
+	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
+	list2=; for p in $$list; do \
+	  if test -f $$p; then \
+	    list2="$$list2 $$p"; \
+	  else :; fi; \
+	done; \
+	test -z "$$list2" || { \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(plugindir)'"; \
+	  $(MKDIR_P) "$(DESTDIR)$(plugindir)" || exit 1; \
+	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \
+	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \
+	}
+
+uninstall-pluginLTLIBRARIES:
+	@$(NORMAL_UNINSTALL)
+	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
+	for p in $$list; do \
+	  $(am__strip_dir) \
+	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(plugindir)/$$f'"; \
+	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(plugindir)/$$f"; \
+	done
+
+clean-pluginLTLIBRARIES:
+	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
+libqtsink.la: $(libqtsink_la_OBJECTS) $(libqtsink_la_DEPENDENCIES) $(EXTRA_libqtsink_la_DEPENDENCIES) 
+	$(AM_V_CXXLD)$(libqtsink_la_LINK) -rpath $(plugindir) $(libqtsink_la_OBJECTS) $(libqtsink_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT)
+
+distclean-compile:
+	-rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libqtsink_la-gstplugin.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libqtsink_la-gstqsgtexture.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libqtsink_la-gstqtsink.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libqtsink_la-moc_gstqsgtexture.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libqtsink_la-moc_qtitem.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libqtsink_la-qtitem.Plo@am__quote@
+
+.cc.o:
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCXX_TRUE@	$(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCXX_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $<
+
+.cc.obj:
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCXX_TRUE@	$(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCXX_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.cc.lo:
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+@am__fastdepCXX_TRUE@	$(LTCXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCXX_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $<
+
+libqtsink_la-gstqsgtexture.lo: gstqsgtexture.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(libqtsink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libqtsink_la_CXXFLAGS) $(CXXFLAGS) -MT libqtsink_la-gstqsgtexture.lo -MD -MP -MF $(DEPDIR)/libqtsink_la-gstqsgtexture.Tpo -c -o libqtsink_la-gstqsgtexture.lo `test -f 'gstqsgtexture.cc' || echo '$(srcdir)/'`gstqsgtexture.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libqtsink_la-gstqsgtexture.Tpo $(DEPDIR)/libqtsink_la-gstqsgtexture.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='gstqsgtexture.cc' object='libqtsink_la-gstqsgtexture.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(libqtsink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libqtsink_la_CXXFLAGS) $(CXXFLAGS) -c -o libqtsink_la-gstqsgtexture.lo `test -f 'gstqsgtexture.cc' || echo '$(srcdir)/'`gstqsgtexture.cc
+
+libqtsink_la-qtitem.lo: qtitem.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(libqtsink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libqtsink_la_CXXFLAGS) $(CXXFLAGS) -MT libqtsink_la-qtitem.lo -MD -MP -MF $(DEPDIR)/libqtsink_la-qtitem.Tpo -c -o libqtsink_la-qtitem.lo `test -f 'qtitem.cc' || echo '$(srcdir)/'`qtitem.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libqtsink_la-qtitem.Tpo $(DEPDIR)/libqtsink_la-qtitem.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='qtitem.cc' object='libqtsink_la-qtitem.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(libqtsink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libqtsink_la_CXXFLAGS) $(CXXFLAGS) -c -o libqtsink_la-qtitem.lo `test -f 'qtitem.cc' || echo '$(srcdir)/'`qtitem.cc
+
+libqtsink_la-gstqtsink.lo: gstqtsink.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(libqtsink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libqtsink_la_CXXFLAGS) $(CXXFLAGS) -MT libqtsink_la-gstqtsink.lo -MD -MP -MF $(DEPDIR)/libqtsink_la-gstqtsink.Tpo -c -o libqtsink_la-gstqtsink.lo `test -f 'gstqtsink.cc' || echo '$(srcdir)/'`gstqtsink.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libqtsink_la-gstqtsink.Tpo $(DEPDIR)/libqtsink_la-gstqtsink.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='gstqtsink.cc' object='libqtsink_la-gstqtsink.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(libqtsink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libqtsink_la_CXXFLAGS) $(CXXFLAGS) -c -o libqtsink_la-gstqtsink.lo `test -f 'gstqtsink.cc' || echo '$(srcdir)/'`gstqtsink.cc
+
+libqtsink_la-gstplugin.lo: gstplugin.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(libqtsink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libqtsink_la_CXXFLAGS) $(CXXFLAGS) -MT libqtsink_la-gstplugin.lo -MD -MP -MF $(DEPDIR)/libqtsink_la-gstplugin.Tpo -c -o libqtsink_la-gstplugin.lo `test -f 'gstplugin.cc' || echo '$(srcdir)/'`gstplugin.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libqtsink_la-gstplugin.Tpo $(DEPDIR)/libqtsink_la-gstplugin.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='gstplugin.cc' object='libqtsink_la-gstplugin.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(libqtsink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libqtsink_la_CXXFLAGS) $(CXXFLAGS) -c -o libqtsink_la-gstplugin.lo `test -f 'gstplugin.cc' || echo '$(srcdir)/'`gstplugin.cc
+
+libqtsink_la-moc_qtitem.lo: moc_qtitem.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(libqtsink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libqtsink_la_CXXFLAGS) $(CXXFLAGS) -MT libqtsink_la-moc_qtitem.lo -MD -MP -MF $(DEPDIR)/libqtsink_la-moc_qtitem.Tpo -c -o libqtsink_la-moc_qtitem.lo `test -f 'moc_qtitem.cc' || echo '$(srcdir)/'`moc_qtitem.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libqtsink_la-moc_qtitem.Tpo $(DEPDIR)/libqtsink_la-moc_qtitem.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='moc_qtitem.cc' object='libqtsink_la-moc_qtitem.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(libqtsink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libqtsink_la_CXXFLAGS) $(CXXFLAGS) -c -o libqtsink_la-moc_qtitem.lo `test -f 'moc_qtitem.cc' || echo '$(srcdir)/'`moc_qtitem.cc
+
+libqtsink_la-moc_gstqsgtexture.lo: moc_gstqsgtexture.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(libqtsink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libqtsink_la_CXXFLAGS) $(CXXFLAGS) -MT libqtsink_la-moc_gstqsgtexture.lo -MD -MP -MF $(DEPDIR)/libqtsink_la-moc_gstqsgtexture.Tpo -c -o libqtsink_la-moc_gstqsgtexture.lo `test -f 'moc_gstqsgtexture.cc' || echo '$(srcdir)/'`moc_gstqsgtexture.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libqtsink_la-moc_gstqsgtexture.Tpo $(DEPDIR)/libqtsink_la-moc_gstqsgtexture.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='moc_gstqsgtexture.cc' object='libqtsink_la-moc_gstqsgtexture.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(libqtsink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libqtsink_la_CXXFLAGS) $(CXXFLAGS) -c -o libqtsink_la-moc_gstqsgtexture.lo `test -f 'moc_gstqsgtexture.cc' || echo '$(srcdir)/'`moc_gstqsgtexture.cc
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	set x; \
+	here=`pwd`; \
+	$(am__define_uniq_tagged_files); \
+	shift; \
+	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  if test $$# -gt 0; then \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      "$$@" $$unique; \
+	  else \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      $$unique; \
+	  fi; \
+	fi
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
+	test -z "$(CTAGS_ARGS)$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && $(am__cd) $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+	  else \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: $(BUILT_SOURCES)
+	$(MAKE) $(AM_MAKEFLAGS) 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-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	if test -z '$(STRIP)'; then \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	      install; \
+	else \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+	fi
+mostlyclean-generic:
+
+clean-generic:
+	-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+	-test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-pluginLTLIBRARIES \
+	mostlyclean-am
+
+distclean: distclean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+	distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-pluginLTLIBRARIES
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+	mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-pluginLTLIBRARIES
+
+.MAKE: all check install install-am install-strip
+
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am distclean distclean-compile distclean-generic \
+	distclean-libtool distclean-tags distdir dvi dvi-am html \
+	html-am info info-am install install-am install-data \
+	install-data-am install-dvi install-dvi-am install-exec \
+	install-exec-am install-html install-html-am install-info \
+	install-info-am install-man install-pdf install-pdf-am \
+	install-pluginLTLIBRARIES install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
+
+.PRECIOUS: Makefile
+
+
+$(moc_generated): moc_%.cc: %.h
+	@MOC@ -o $@ $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(MOC_CPPFLAGS) $<
+
+ui-%.h: %.ui
+	@UIC@ -o $@ $<
+
+qrc-%.cc: %.qrc
+	@RCC@ -o $@ $<
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/ext/qt/gstplugin.cc b/ext/qt/gstplugin.cc
new file mode 100644
index 0000000..70b6310
--- /dev/null
+++ b/ext/qt/gstplugin.cc
@@ -0,0 +1,46 @@
+/*
+ * GStreamer
+ * Copyright (C) 2015 Matthew Waters <matthew@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 "gstqtsink.h"
+#include <QQmlApplicationEngine>
+
+static gboolean
+plugin_init (GstPlugin * plugin)
+{
+  if (!gst_element_register (plugin, "qmlglsink",
+          GST_RANK_NONE, GST_TYPE_QT_SINK)) {
+    return FALSE;
+  }
+  /* this means the plugin must be loaded before the qml engine is loaded */
+  qmlRegisterType<QtGLVideoItem> ("org.freedesktop.gstreamer.GLVideoItem", 1, 0, "GstGLVideoItem");
+
+  return TRUE;
+}
+
+GST_PLUGIN_DEFINE (GST_VERSION_MAJOR,
+    GST_VERSION_MINOR,
+    qt,
+    "Qt sink",
+    plugin_init, PACKAGE_VERSION, GST_LICENSE, GST_PACKAGE_NAME,
+    GST_PACKAGE_ORIGIN)
diff --git a/ext/qt/gstqsgtexture.cc b/ext/qt/gstqsgtexture.cc
new file mode 100644
index 0000000..a9be90c
--- /dev/null
+++ b/ext/qt/gstqsgtexture.cc
@@ -0,0 +1,170 @@
+/*
+ * GStreamer
+ * Copyright (C) 2015 Matthew Waters <matthew@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 <stdio.h>
+
+#include <gst/video/video.h>
+#include <gst/gl/gl.h>
+#include "gstqsgtexture.h"
+
+#define GST_CAT_DEFAULT gst_qsg_texture_debug
+GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT);
+
+GstQSGTexture::GstQSGTexture ()
+{
+  static volatile gsize _debug;
+
+  initializeOpenGLFunctions();
+
+  if (g_once_init_enter (&_debug)) {
+    GST_DEBUG_CATEGORY_INIT (GST_CAT_DEFAULT, "qtqsgtexture", 0,
+        "Qt Scenegraph Texture");
+    g_once_init_leave (&_debug, 1);
+  }
+
+  gst_video_info_init (&this->v_info);
+  this->buffer_ = NULL;
+  this->sync_buffer_ = gst_buffer_new ();
+}
+
+GstQSGTexture::~GstQSGTexture ()
+{
+  gst_buffer_replace (&this->buffer_, NULL);
+  gst_buffer_replace (&this->sync_buffer_, NULL);
+}
+
+/* only called from the streaming thread with scene graph thread blocked */
+void
+GstQSGTexture::setCaps (GstCaps * caps)
+{
+  GST_LOG ("%p setCaps %" GST_PTR_FORMAT, this, caps);
+
+  gst_video_info_from_caps (&this->v_info, caps);
+}
+
+/* only called from the streaming thread with scene graph thread blocked */
+gboolean
+GstQSGTexture::setBuffer (GstBuffer * buffer)
+{
+  GST_LOG ("%p setBuffer %" GST_PTR_FORMAT, this, buffer);
+  /* FIXME: update more state here */
+  if (!gst_buffer_replace (&this->buffer_, buffer))
+    return FALSE;
+
+  this->qt_context_ = gst_gl_context_get_current ();
+
+  return TRUE;
+}
+
+/* only called from qt's scene graph render thread */
+void
+GstQSGTexture::bind ()
+{
+  GstGLContext *context;
+  GstGLSyncMeta *sync_meta;
+  GstMemory *mem;
+  guint tex_id;
+
+  if (!this->buffer_)
+    return;
+  if (GST_VIDEO_INFO_FORMAT (&this->v_info) == GST_VIDEO_FORMAT_UNKNOWN)
+    return;
+
+  this->mem_ = gst_buffer_peek_memory (this->buffer_, 0);
+  if (!this->mem_)
+    return;
+
+  /* FIXME: should really lock the memory to prevent write access */
+  if (!gst_video_frame_map (&this->v_frame, &this->v_info, this->buffer_,
+        (GstMapFlags) (GST_MAP_READ | GST_MAP_GL))) {
+    g_assert_not_reached ();
+    return;
+  }
+
+  mem = gst_buffer_peek_memory (this->buffer_, 0);
+  g_assert (gst_is_gl_memory (mem));
+
+  context = ((GstGLBaseBuffer *)mem)->context;
+
+  sync_meta = gst_buffer_get_gl_sync_meta (this->sync_buffer_);
+  if (!sync_meta)
+    sync_meta = gst_buffer_add_gl_sync_meta (context, this->sync_buffer_);
+
+  gst_gl_sync_meta_set_sync_point (sync_meta, context);
+
+  g_assert (this->qt_context_);
+  gst_gl_sync_meta_wait (sync_meta, this->qt_context_);
+
+  tex_id = *(guint *) this->v_frame.data[0];
+  GST_LOG ("%p binding Qt texture %u", this, tex_id);
+
+  glBindTexture (GL_TEXTURE_2D, tex_id);
+
+  gst_video_frame_unmap (&this->v_frame);
+}
+
+/* can be called from any thread */
+int
+GstQSGTexture::textureId () const
+{
+  int tex_id = 0;
+
+  if (this->buffer_) {
+    GstMemory *mem = gst_buffer_peek_memory (this->buffer_, 0);
+
+    tex_id = ((GstGLMemory *) mem)->tex_id;
+  }
+
+  GST_LOG ("%p get texture id %u", this, tex_id);
+
+  return tex_id;
+}
+
+/* can be called from any thread */
+QSize
+GstQSGTexture::textureSize () const
+{
+  if (GST_VIDEO_INFO_FORMAT (&this->v_info) == GST_VIDEO_FORMAT_UNKNOWN)
+    return QSize (0, 0);
+
+  GST_TRACE ("%p get texture size %ux%u", this, this->v_info.width,
+      this->v_info.height);
+
+  return QSize (this->v_info.width, this->v_info.height);
+}
+
+/* can be called from any thread */
+bool
+GstQSGTexture::hasAlphaChannel () const
+{
+  /* FIXME: support RGB textures */
+  return true;
+}
+
+/* can be called from any thread */
+bool
+GstQSGTexture::hasMipmaps () const
+{
+  return false;
+}
diff --git a/ext/qt/gstqsgtexture.h b/ext/qt/gstqsgtexture.h
new file mode 100644
index 0000000..bf8f03f
--- /dev/null
+++ b/ext/qt/gstqsgtexture.h
@@ -0,0 +1,56 @@
+/*
+ * GStreamer
+ * Copyright (C) 2015 Matthew Waters <matthew@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.
+ */
+
+#ifndef __GST_QSG_TEXTURE_H__
+#define __GST_QSG_TEXTURE_H__
+
+#include <gst/gst.h>
+#include <QSGTexture>
+#include <QOpenGLFunctions>
+#include <gst/video/video.h>
+#include <gst/gl/gl.h>
+
+class GstQSGTexture : public QSGTexture, protected QOpenGLFunctions
+{
+    Q_OBJECT
+public:
+    GstQSGTexture ();
+    ~GstQSGTexture ();
+
+    void setCaps (GstCaps * caps);
+    gboolean setBuffer (GstBuffer * buffer);
+
+    /* QSGTexture */
+    void bind ();
+    int textureId () const;
+    QSize textureSize () const;
+    bool hasAlphaChannel () const;
+    bool hasMipmaps () const;
+
+private:
+    GstBuffer * buffer_;
+    GstBuffer * sync_buffer_;
+    GstGLContext * qt_context_;
+    GstMemory * mem_;
+    GstVideoInfo v_info;
+    GstVideoFrame v_frame;
+};
+
+#endif /* __GST_QSG_TEXTURE_H__ */
diff --git a/ext/qt/gstqtsink.cc b/ext/qt/gstqtsink.cc
new file mode 100644
index 0000000..40e66d8
--- /dev/null
+++ b/ext/qt/gstqtsink.cc
@@ -0,0 +1,500 @@
+/*
+ * GStreamer
+ * Copyright (C) 2015 Matthew Waters <matthew@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.
+ */
+
+/**
+ * SECTION:gstqtsink
+ *
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "gstqtsink.h"
+#include <QGuiApplication>
+
+#define GST_CAT_DEFAULT gst_debug_qt_gl_sink
+GST_DEBUG_CATEGORY (GST_CAT_DEFAULT);
+
+static void gst_qt_sink_finalize (GObject * object);
+static void gst_qt_sink_set_property (GObject * object, guint prop_id,
+    const GValue * value, GParamSpec * param_spec);
+static void gst_qt_sink_get_property (GObject * object, guint prop_id,
+    GValue * value, GParamSpec * param_spec);
+
+static gboolean gst_qt_sink_stop (GstBaseSink * bsink);
+
+static gboolean gst_qt_sink_query (GstBaseSink * bsink, GstQuery * query);
+
+static GstStateChangeReturn
+gst_qt_sink_change_state (GstElement * element, GstStateChange transition);
+
+static void gst_qt_sink_get_times (GstBaseSink * bsink, GstBuffer * buf,
+    GstClockTime * start, GstClockTime * end);
+static gboolean gst_qt_sink_set_caps (GstBaseSink * bsink, GstCaps * caps);
+static GstFlowReturn gst_qt_sink_show_frame (GstVideoSink * bsink,
+    GstBuffer * buf);
+static gboolean gst_qt_sink_propose_allocation (GstBaseSink * bsink,
+    GstQuery * query);
+
+static GstStaticPadTemplate gst_qt_sink_template =
+GST_STATIC_PAD_TEMPLATE ("sink",
+    GST_PAD_SINK,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS (GST_VIDEO_CAPS_MAKE_WITH_FEATURES
+        (GST_CAPS_FEATURE_MEMORY_GL_MEMORY, "RGBA")));
+
+#define DEFAULT_FORCE_ASPECT_RATIO  TRUE
+#define DEFAULT_PAR_N               0
+#define DEFAULT_PAR_D               1
+
+enum
+{
+  ARG_0,
+  PROP_WIDGET,
+  PROP_FORCE_ASPECT_RATIO,
+  PROP_PIXEL_ASPECT_RATIO,
+};
+
+enum
+{
+  SIGNAL_0,
+  LAST_SIGNAL
+};
+
+#define gst_qt_sink_parent_class parent_class
+G_DEFINE_TYPE_WITH_CODE (GstQtSink, gst_qt_sink,
+    GST_TYPE_VIDEO_SINK, GST_DEBUG_CATEGORY_INIT (GST_CAT_DEFAULT,
+        "qtsink", 0, "Qt Video Sink"));
+
+static void
+gst_qt_sink_class_init (GstQtSinkClass * klass)
+{
+  GObjectClass *gobject_class;
+  GstElementClass *gstelement_class;
+  GstBaseSinkClass *gstbasesink_class;
+  GstVideoSinkClass *gstvideosink_class;
+
+  gobject_class = (GObjectClass *) klass;
+  gstelement_class = (GstElementClass *) klass;
+  gstbasesink_class = (GstBaseSinkClass *) klass;
+  gstvideosink_class = (GstVideoSinkClass *) klass;
+
+  gobject_class->set_property = gst_qt_sink_set_property;
+  gobject_class->get_property = gst_qt_sink_get_property;
+
+  gst_element_class_set_metadata (gstelement_class, "Qt Video Sink",
+      "Sink/Video", "A video sink the renders to a QQuickItem",
+      "Matthew Waters <matthew@centricular.com>");
+
+  g_object_class_install_property (gobject_class, PROP_WIDGET,
+      g_param_spec_pointer ("widget", "QQuickItem",
+          "The QQuickItem to place in the object heirachy",
+          (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
+
+  g_object_class_install_property (gobject_class, PROP_FORCE_ASPECT_RATIO,
+      g_param_spec_boolean ("force-aspect-ratio",
+          "Force aspect ratio",
+          "When enabled, scaling will respect original aspect ratio",
+          DEFAULT_FORCE_ASPECT_RATIO,
+          (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
+
+  g_object_class_install_property (gobject_class, PROP_PIXEL_ASPECT_RATIO,
+      gst_param_spec_fraction ("pixel-aspect-ratio", "Pixel Aspect Ratio",
+          "The pixel aspect ratio of the device", DEFAULT_PAR_N, DEFAULT_PAR_D,
+          G_MAXINT, 1, 1, 1,
+          (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
+
+  gst_element_class_add_pad_template (gstelement_class,
+      gst_static_pad_template_get (&gst_qt_sink_template));
+
+  gobject_class->finalize = gst_qt_sink_finalize;
+
+  gstelement_class->change_state = gst_qt_sink_change_state;
+  gstbasesink_class->query = gst_qt_sink_query;
+  gstbasesink_class->set_caps = gst_qt_sink_set_caps;
+  gstbasesink_class->get_times = gst_qt_sink_get_times;
+  gstbasesink_class->propose_allocation = gst_qt_sink_propose_allocation;
+  gstbasesink_class->stop = gst_qt_sink_stop;
+
+  gstvideosink_class->show_frame = gst_qt_sink_show_frame;
+}
+
+static void
+gst_qt_sink_init (GstQtSink * qt_sink)
+{
+}
+
+static void
+gst_qt_sink_set_property (GObject * object, guint prop_id,
+    const GValue * value, GParamSpec * pspec)
+{
+  GstQtSink *qt_sink = GST_QT_SINK (object);
+
+  switch (prop_id) {
+    case PROP_WIDGET:
+      qt_sink->widget = static_cast<QtGLVideoItem *> (g_value_get_pointer (value));
+      break;
+    case PROP_FORCE_ASPECT_RATIO:
+      g_return_if_fail (qt_sink->widget);
+      qt_sink->widget->setForceAspectRatio (g_value_get_boolean (value));
+      break;
+    case PROP_PIXEL_ASPECT_RATIO:
+      g_return_if_fail (qt_sink->widget);
+      qt_sink->widget->setDAR (gst_value_get_fraction_numerator (value),
+          gst_value_get_fraction_denominator (value));
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
+}
+
+static void
+_reset (GstQtSink * qt_sink)
+{
+  if (qt_sink->display) {
+    gst_object_unref (qt_sink->display);
+    qt_sink->display = NULL;
+  }
+
+  if (qt_sink->context) {
+    gst_object_unref (qt_sink->context);
+    qt_sink->context = NULL;
+  }
+
+  if (qt_sink->qt_context) {
+    gst_object_unref (qt_sink->qt_context);
+    qt_sink->qt_context = NULL;
+  }
+}
+
+static void
+gst_qt_sink_finalize (GObject * object)
+{
+  GstQtSink *qt_sink = GST_QT_SINK (object);
+
+  _reset (qt_sink);
+
+  G_OBJECT_CLASS (parent_class)->finalize (object);
+}
+
+static void
+gst_qt_sink_get_property (GObject * object, guint prop_id,
+    GValue * value, GParamSpec * pspec)
+{
+  GstQtSink *qt_sink = GST_QT_SINK (object);
+
+  switch (prop_id) {
+    case PROP_WIDGET:
+      g_value_set_pointer (value, qt_sink->widget);
+      break;
+    case PROP_FORCE_ASPECT_RATIO:
+      if (qt_sink->widget)
+        g_value_set_boolean (value, qt_sink->widget->getForceAspectRatio ());
+      else
+        g_value_set_boolean (value, DEFAULT_FORCE_ASPECT_RATIO);
+      break;
+    case PROP_PIXEL_ASPECT_RATIO:
+      if (qt_sink->widget) {
+        gint num, den;
+        qt_sink->widget->getDAR (&num, &den);
+        gst_value_set_fraction (value, num, den);
+      } else {
+        gst_value_set_fraction (value, DEFAULT_PAR_N, DEFAULT_PAR_D);
+      }
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
+}
+
+static gboolean
+gst_qt_sink_query (GstBaseSink * bsink, GstQuery * query)
+{
+  GstQtSink *qt_sink = GST_QT_SINK (bsink);
+  gboolean res = FALSE;
+
+  switch (GST_QUERY_TYPE (query)) {
+    case GST_QUERY_CONTEXT:
+    {
+      const gchar *context_type;
+      GstContext *context, *old_context;
+      gboolean ret;
+
+      ret = gst_gl_handle_context_query ((GstElement *) qt_sink, query,
+          &qt_sink->display, &qt_sink->qt_context);
+
+      if (qt_sink->display)
+        gst_gl_display_filter_gl_api (qt_sink->display, gst_gl_context_get_gl_api (qt_sink->qt_context));
+
+      gst_query_parse_context_type (query, &context_type);
+
+      if (g_strcmp0 (context_type, "gst.gl.local_context") == 0) {
+        GstStructure *s;
+
+        gst_query_parse_context (query, &old_context);
+
+        if (old_context)
+          context = gst_context_copy (old_context);
+        else
+          context = gst_context_new ("gst.gl.local_context", FALSE);
+
+        s = gst_context_writable_structure (context);
+        gst_structure_set (s, "context", GST_GL_TYPE_CONTEXT, qt_sink->context,
+            NULL);
+        gst_query_set_context (query, context);
+        gst_context_unref (context);
+
+        ret = qt_sink->context != NULL;
+      }
+      GST_LOG_OBJECT (qt_sink, "context query of type %s %i", context_type,
+          ret);
+
+      if (ret)
+        return ret;
+    }
+    default:
+      res = GST_BASE_SINK_CLASS (parent_class)->query (bsink, query);
+      break;
+  }
+
+  return res;
+}
+
+static gboolean
+gst_qt_sink_stop (GstBaseSink * bsink)
+{
+  return TRUE;
+}
+
+static GstStateChangeReturn
+gst_qt_sink_change_state (GstElement * element, GstStateChange transition)
+{
+  GstQtSink *qt_sink = GST_QT_SINK (element);
+  GstStateChangeReturn ret = GST_STATE_CHANGE_SUCCESS;
+  QGuiApplication *app;
+
+  GST_DEBUG ("changing state: %s => %s",
+      gst_element_state_get_name (GST_STATE_TRANSITION_CURRENT (transition)),
+      gst_element_state_get_name (GST_STATE_TRANSITION_NEXT (transition)));
+
+  switch (transition) {
+    case GST_STATE_CHANGE_NULL_TO_READY:
+      app = dynamic_cast<QGuiApplication *> (QCoreApplication::instance ());
+      if (!app) {
+        GST_ELEMENT_ERROR (element, RESOURCE, NOT_FOUND,
+            ("%s", "Failed to connect to Qt"),
+            ("%s", "Could not retreive QGuiApplication instance"));
+        return GST_STATE_CHANGE_FAILURE;
+      }
+
+      if (!qt_sink->widget) {
+        GST_ELEMENT_ERROR (element, RESOURCE, NOT_FOUND,
+            ("%s", "Required property \'widget\' not set"),
+            (NULL));
+        return GST_STATE_CHANGE_FAILURE;
+      }
+
+      if (!qt_item_init_winsys (qt_sink->widget)) {
+        GST_ELEMENT_ERROR (element, RESOURCE, NOT_FOUND,
+            ("%s", "Could not initialize window system"),
+            (NULL));
+        return GST_STATE_CHANGE_FAILURE;
+      }
+
+      qt_sink->display = qt_item_get_display (qt_sink->widget);
+      qt_sink->context = qt_item_get_context (qt_sink->widget);
+      qt_sink->qt_context = qt_item_get_qt_context (qt_sink->widget);
+
+      if (!qt_sink->display || !qt_sink->context || !qt_sink->qt_context) {
+        GST_ELEMENT_ERROR (element, RESOURCE, NOT_FOUND,
+            ("%s", "Could not retreive window system OpenGL configuration"),
+            (NULL));
+        return GST_STATE_CHANGE_FAILURE;
+      }
+      break;
+    case GST_STATE_CHANGE_READY_TO_PAUSED:
+      break;
+    case GST_STATE_CHANGE_PAUSED_TO_PLAYING:
+      break;
+    default:
+      break;
+  }
+
+  ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition);
+  if (ret == GST_STATE_CHANGE_FAILURE)
+    return ret;
+
+  switch (transition) {
+    case GST_STATE_CHANGE_PLAYING_TO_PAUSED:
+      break;
+    case GST_STATE_CHANGE_PAUSED_TO_READY:
+      qt_item_set_buffer (qt_sink->widget, NULL);
+      break;
+    case GST_STATE_CHANGE_READY_TO_NULL:
+      break;
+    default:
+      break;
+  }
+
+  return ret;
+}
+
+static void
+gst_qt_sink_get_times (GstBaseSink * bsink, GstBuffer * buf,
+    GstClockTime * start, GstClockTime * end)
+{
+  GstQtSink *qt_sink;
+
+  qt_sink = GST_QT_SINK (bsink);
+
+  if (GST_BUFFER_TIMESTAMP_IS_VALID (buf)) {
+    *start = GST_BUFFER_TIMESTAMP (buf);
+    if (GST_BUFFER_DURATION_IS_VALID (buf))
+      *end = *start + GST_BUFFER_DURATION (buf);
+    else {
+      if (GST_VIDEO_INFO_FPS_N (&qt_sink->v_info) > 0) {
+        *end = *start +
+            gst_util_uint64_scale_int (GST_SECOND,
+            GST_VIDEO_INFO_FPS_D (&qt_sink->v_info),
+            GST_VIDEO_INFO_FPS_N (&qt_sink->v_info));
+      }
+    }
+  }
+}
+
+gboolean
+gst_qt_sink_set_caps (GstBaseSink * bsink, GstCaps * caps)
+{
+  GstQtSink *qt_sink = GST_QT_SINK (bsink);
+
+  GST_DEBUG ("set caps with %" GST_PTR_FORMAT, caps);
+
+  if (!gst_video_info_from_caps (&qt_sink->v_info, caps))
+    return FALSE;
+
+  if (!qt_item_set_caps (qt_sink->widget, caps))
+    return FALSE;
+
+  return TRUE;
+}
+
+static GstFlowReturn
+gst_qt_sink_show_frame (GstVideoSink * vsink, GstBuffer * buf)
+{
+  GstQtSink *qt_sink;
+
+  GST_TRACE ("rendering buffer:%p", buf);
+
+  qt_sink = GST_QT_SINK (vsink);
+
+  qt_item_set_buffer (qt_sink->widget, buf);
+
+  return GST_FLOW_OK;
+}
+
+static gboolean
+gst_qt_sink_propose_allocation (GstBaseSink * bsink, GstQuery * query)
+{
+  GstQtSink *qt_sink = GST_QT_SINK (bsink);
+  GstBufferPool *pool;
+  GstStructure *config;
+  GstCaps *caps;
+  guint size;
+  gboolean need_pool;
+
+  if (!qt_sink->display || !qt_sink->context)
+    return FALSE;
+
+  gst_query_parse_allocation (query, &caps, &need_pool);
+
+  if (caps == NULL)
+    goto no_caps;
+
+  if ((pool = qt_sink->pool))
+    gst_object_ref (pool);
+
+  if (pool != NULL) {
+    GstCaps *pcaps;
+
+    /* we had a pool, check caps */
+    GST_DEBUG_OBJECT (qt_sink, "check existing pool caps");
+    config = gst_buffer_pool_get_config (pool);
+    gst_buffer_pool_config_get_params (config, &pcaps, &size, NULL, NULL);
+
+    if (!gst_caps_is_equal (caps, pcaps)) {
+      GST_DEBUG_OBJECT (qt_sink, "pool has different caps");
+      /* different caps, we can't use this pool */
+      gst_object_unref (pool);
+      pool = NULL;
+    }
+    gst_structure_free (config);
+  }
+
+  if (pool == NULL && need_pool) {
+    GstVideoInfo info;
+
+    if (!gst_video_info_from_caps (&info, caps))
+      goto invalid_caps;
+
+    GST_DEBUG_OBJECT (qt_sink, "create new pool");
+    pool = gst_gl_buffer_pool_new (qt_sink->context);
+
+    /* the normal size of a frame */
+    size = info.size;
+
+    config = gst_buffer_pool_get_config (pool);
+    gst_buffer_pool_config_set_params (config, caps, size, 0, 0);
+    if (!gst_buffer_pool_set_config (pool, config))
+      goto config_failed;
+  }
+  /* we need at least 2 buffer because we hold on to the last one */
+  if (pool) {
+    gst_query_add_allocation_pool (query, pool, size, 2, 0);
+    gst_object_unref (pool);
+  }
+
+  /* we also support various metadata */
+  gst_query_add_allocation_meta (query, GST_VIDEO_META_API_TYPE, 0);
+
+  if (qt_sink->context->gl_vtable->FenceSync)
+    gst_query_add_allocation_meta (query, GST_GL_SYNC_META_API_TYPE, 0);
+
+  return TRUE;
+
+  /* ERRORS */
+no_caps:
+  {
+    GST_DEBUG_OBJECT (bsink, "no caps specified");
+    return FALSE;
+  }
+invalid_caps:
+  {
+    GST_DEBUG_OBJECT (bsink, "invalid caps specified");
+    return FALSE;
+  }
+config_failed:
+  {
+    GST_DEBUG_OBJECT (bsink, "failed setting config");
+    return FALSE;
+  }
+}
diff --git a/ext/qt/gstqtsink.h b/ext/qt/gstqtsink.h
new file mode 100644
index 0000000..9a1cfbe
--- /dev/null
+++ b/ext/qt/gstqtsink.h
@@ -0,0 +1,81 @@
+/*
+ * GStreamer
+ * Copyright (C) 2015 Matthew Waters <matthew@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.
+ */
+
+#ifndef __GST_QT_SINK_H__
+#define __GST_QT_SINK_H__
+
+#include <gst/gst.h>
+#include <gst/video/gstvideosink.h>
+#include <gst/video/video.h>
+#include <gst/gl/gl.h>
+#include "qtitem.h"
+
+typedef struct _GstQtSink GstQtSink;
+typedef struct _GstQtSinkClass GstQtSinkClass;
+typedef struct _GstQtSinkPrivate GstQtSinkPrivate;
+
+G_BEGIN_DECLS
+
+GType gst_qt_sink_get_type (void);
+#define GST_TYPE_QT_SINK            (gst_qt_sink_get_type())
+#define GST_QT_SINK(obj)            (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_QT_SINK,GstQtSink))
+#define GST_QT_SINK_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_QT_SINK,GstQtSinkClass))
+#define GST_IS_QT_SINK(obj)         (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_QT_SINK))
+#define GST_IS_QT_SINK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_QT_SINK))
+#define GST_QT_SINK_CAST(obj)       ((GstQtSink*)(obj))
+
+/**
+ * GstQtSink:
+ *
+ * Opaque #GstQtSink object
+ */
+struct _GstQtSink
+{
+  /* <private> */
+  GstVideoSink          parent;
+
+  QtGLVideoItem        *widget;
+
+  GstVideoInfo          v_info;
+  GstBufferPool        *pool;
+
+  GstGLDisplay         *display;
+  GstGLContext         *context;
+  GstGLContext         *qt_context;
+
+  GstQtSinkPrivate  *priv;
+};
+
+/**
+ * GstQtSinkClass:
+ *
+ * The #GstQtSinkClass struct only contains private data
+ */
+struct _GstQtSinkClass
+{
+  /* <private> */
+  GstVideoSinkClass object_class;
+};
+
+GstQtSink *    gst_qt_sink_new (void);
+
+G_END_DECLS
+
+#endif /* __GST_QT_SINK_H__ */
diff --git a/ext/qt/qtitem.cc b/ext/qt/qtitem.cc
new file mode 100644
index 0000000..8c3e4b9
--- /dev/null
+++ b/ext/qt/qtitem.cc
@@ -0,0 +1,494 @@
+/*
+ * GStreamer
+ * Copyright (C) 2015 Matthew Waters <matthew@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 <stdio.h>
+
+#include <gst/video/video.h>
+#include <QGuiApplication>
+#include <QQuickWindow>
+#include <QSGSimpleTextureNode>
+#include "qtitem.h"
+#include "gstqsgtexture.h"
+
+#if GST_GL_HAVE_WINDOW_X11 && defined (HAVE_QT_X11)
+#include <QX11Info>
+#include <gst/gl/x11/gstgldisplay_x11.h>
+#include <gst/gl/x11/gstglcontext_glx.h>
+#endif
+
+#if GST_GL_HAVE_WINDOW_WAYLAND
+#include <gst/gl/wayland/gstgldisplay_wayland.h>
+#endif
+
+/**
+ * SECTION:gtkgstglwidget
+ * @short_description: a #GtkGLArea that renders GStreamer video #GstBuffers
+ * @see_also: #GtkGLArea, #GstBuffer
+ *
+ * #QtGLVideoItem is an #GtkWidget that renders GStreamer video buffers.
+ */
+
+#define GST_CAT_DEFAULT qt_item_debug
+GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT);
+
+#define GTK_GST_GL_WIDGET_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), \
+    GTK_TYPE_GST_GL_WIDGET, QtGLVideoItemPrivate))
+
+#define DEFAULT_FORCE_ASPECT_RATIO  TRUE
+#define DEFAULT_PAR_N               0
+#define DEFAULT_PAR_D               1
+
+enum
+{
+  PROP_0,
+  PROP_FORCE_ASPECT_RATIO,
+  PROP_PIXEL_ASPECT_RATIO,
+};
+
+struct _QtGLVideoItemPrivate
+{
+  GMutex lock;
+
+  /* properties */
+  gboolean force_aspect_ratio;
+  gint par_n, par_d;
+
+  gint display_width;
+  gint display_height;
+
+  gboolean negotiated;
+  GstBuffer *buffer;
+  GstCaps *caps;
+  GstVideoInfo v_info;
+
+  gboolean initted;
+  GstGLDisplay *display;
+  QOpenGLContext *qt_context;
+  GstGLContext *other_context;
+  GstGLContext *context;
+};
+
+QtGLVideoItem::QtGLVideoItem()
+{
+  QGuiApplication *app = dynamic_cast<QGuiApplication *> (QCoreApplication::instance ());
+  static volatile gsize _debug;
+
+  g_assert (app != NULL);
+
+  if (g_once_init_enter (&_debug)) {
+    GST_DEBUG_CATEGORY_INIT (GST_CAT_DEFAULT, "qtglwidget", 0, "Qt GL Widget");
+    g_once_init_leave (&_debug, 1);
+  }
+
+  this->setFlag (QQuickItem::ItemHasContents, true);
+
+  this->priv = g_new0 (QtGLVideoItemPrivate, 1);
+
+  this->priv->force_aspect_ratio = DEFAULT_FORCE_ASPECT_RATIO;
+  this->priv->par_n = DEFAULT_PAR_N;
+  this->priv->par_d = DEFAULT_PAR_D;
+
+  g_mutex_init (&this->priv->lock);
+
+#if GST_GL_HAVE_WINDOW_X11 && defined (HAVE_QT_X11)
+  if (QString::fromUtf8 ("xcb") == app->platformName())
+    this->priv->display = (GstGLDisplay *)
+        gst_gl_display_x11_new_with_display (QX11Info::display ());
+#endif
+
+  if (!this->priv->display)
+    this->priv->display = gst_gl_display_new ();
+
+  connect(this, SIGNAL(windowChanged(QQuickWindow*)), this,
+          SLOT(handleWindowChanged(QQuickWindow*)));
+
+  GST_DEBUG ("%p init Qt Video Item", this);
+}
+
+QtGLVideoItem::~QtGLVideoItem()
+{
+  g_mutex_clear (&this->priv->lock);
+
+  g_free (this->priv);
+  this->priv = NULL;
+}
+
+void
+QtGLVideoItem::setDAR(gint num, gint den)
+{
+  this->priv->par_n = num;
+  this->priv->par_d = den;
+}
+
+void
+QtGLVideoItem::getDAR(gint * num, gint * den)
+{
+  if (num)
+    *num = this->priv->par_n;
+  if (den)
+    *den = this->priv->par_d;
+}
+
+void
+QtGLVideoItem::setForceAspectRatio(bool far)
+{
+  this->priv->force_aspect_ratio = far;
+}
+
+bool
+QtGLVideoItem::getForceAspectRatio()
+{
+  return this->priv->force_aspect_ratio;
+}
+
+QSGNode *
+QtGLVideoItem::updatePaintNode(QSGNode * oldNode,
+    UpdatePaintNodeData * updatePaintNodeData)
+{
+  QSGSimpleTextureNode *texNode = static_cast<QSGSimpleTextureNode *> (oldNode);
+  GstVideoRectangle src, dst, result;
+  GstQSGTexture *tex;
+
+  g_mutex_lock (&this->priv->lock);
+  gst_gl_context_activate (this->priv->other_context, TRUE);
+
+  GST_TRACE ("%p updatePaintNode", this);
+
+  if (!this->priv->caps) {
+    g_mutex_unlock (&this->priv->lock);
+    return NULL;
+  }
+
+  if (!texNode) {
+    texNode = new QSGSimpleTextureNode ();
+    texNode->setOwnsTexture (true);
+  } else {
+    tex = static_cast<GstQSGTexture *> (texNode->texture());
+  }
+
+  tex = new GstQSGTexture ();
+  tex->setCaps (this->priv->caps);
+  tex->setBuffer (this->priv->buffer);
+  texNode->setTexture (tex);
+
+  if (this->priv->force_aspect_ratio) {
+    src.w = this->priv->display_width;
+    src.h = this->priv->display_height;
+
+    dst.x = boundingRect().x();
+    dst.y = boundingRect().y();
+    dst.w = boundingRect().width();
+    dst.h = boundingRect().height();
+
+    gst_video_sink_center_rect (src, dst, &result, TRUE);
+  } else {
+    result.x = boundingRect().x();
+    result.y = boundingRect().y();
+    result.w = boundingRect().width();
+    result.h = boundingRect().height();
+  }
+
+  texNode->setRect (QRectF (result.x, result.y, result.w, result.h));
+
+  gst_gl_context_activate (this->priv->other_context, FALSE);
+  g_mutex_unlock (&this->priv->lock);
+
+  return texNode;
+}
+
+static void
+_reset (QtGLVideoItem * qt_item)
+{
+  gst_buffer_replace (&qt_item->priv->buffer, NULL);
+
+  gst_caps_replace (&qt_item->priv->caps, NULL);
+
+  qt_item->priv->negotiated = FALSE;
+  qt_item->priv->initted = FALSE;
+}
+
+void
+qt_item_set_buffer (QtGLVideoItem * widget, GstBuffer * buffer)
+{
+  g_return_if_fail (widget != NULL);
+  g_return_if_fail (widget->priv->negotiated);
+
+  g_mutex_lock (&widget->priv->lock);
+
+  gst_buffer_replace (&widget->priv->buffer, buffer);
+
+  QMetaObject::invokeMethod(widget, "update", Qt::QueuedConnection);
+
+  g_mutex_unlock (&widget->priv->lock);
+}
+
+void
+QtGLVideoItem::onSceneGraphInitialized ()
+{
+  GstGLPlatform platform;
+  GstGLAPI gl_api;
+  guintptr gl_handle;
+
+  GST_DEBUG ("scene graph initialization with Qt GL context %p",
+      this->window()->openglContext ());
+
+  if (this->priv->qt_context == this->window()->openglContext ())
+    return;
+
+  this->priv->qt_context = this->window()->openglContext ();
+  if (this->priv->qt_context == NULL) {
+    g_assert_not_reached ();
+    return;
+  }
+
+#if GST_GL_HAVE_WINDOW_X11 && defined (HAVE_QT_X11)
+  if (GST_IS_GL_DISPLAY_X11 (this->priv->display)) {
+    platform = GST_GL_PLATFORM_GLX;
+    gl_api = gst_gl_context_get_current_gl_api (platform, NULL, NULL);
+    gl_handle = gst_gl_context_get_current_gl_context (platform);
+    if (gl_handle)
+      this->priv->other_context =
+          gst_gl_context_new_wrapped (this->priv->display, gl_handle,
+          platform, gl_api);
+  }
+#endif
+#if GST_GL_HAVE_WINDOW_WAYLAND
+  if (GST_IS_GL_DISPLAY_WAYLAND (this->priv->display)) {
+    platform = GST_GL_PLATFORM_EGL;
+    gl_api = gst_gl_context_get_current_gl_api (platform, NULL, NULL);
+    gl_handle = gst_gl_context_get_current_gl_context (platform);
+    if (gl_handle)
+      this->priv->other_context =
+          gst_gl_context_new_wrapped (this->priv->display, gl_handle,
+          platform, gl_api);
+  }
+#endif
+
+  (void) platform;
+  (void) gl_api;
+  (void) gl_handle;
+
+  if (this->priv->other_context) {
+    GError *error = NULL;
+
+    gst_gl_context_activate (this->priv->other_context, TRUE);
+    if (!gst_gl_context_fill_info (this->priv->other_context, &error)) {
+      GST_ERROR ("%p failed to retreive qt context info: %s", this, error->message);
+      g_object_unref (this->priv->other_context);
+      this->priv->other_context = NULL;
+    } else {
+      gst_gl_display_filter_gl_api (this->priv->display, gst_gl_context_get_gl_api (this->priv->other_context));
+      gst_gl_context_activate (this->priv->other_context, FALSE);
+    }
+  }
+
+  GST_DEBUG ("%p created wrapped GL context %" GST_PTR_FORMAT, this,
+      this->priv->other_context);
+}
+
+void
+QtGLVideoItem::onSceneGraphInvalidated ()
+{
+  GST_FIXME ("%p scene graph invalidated", this);
+}
+
+gboolean
+qt_item_init_winsys (QtGLVideoItem * widget)
+{
+  g_return_val_if_fail (widget != NULL, FALSE);
+
+  g_mutex_lock (&widget->priv->lock);
+
+  if (widget->priv->display && widget->priv->qt_context
+      && widget->priv->other_context && widget->priv->context) {
+    /* already have the necessary state */
+    g_mutex_unlock (&widget->priv->lock);
+    return TRUE;
+  }
+
+  if (!GST_IS_GL_DISPLAY (widget->priv->display)) {
+    GST_ERROR ("%p failed to retreive display connection %" GST_PTR_FORMAT,
+        widget, widget->priv->display);
+    g_mutex_unlock (&widget->priv->lock);
+    return FALSE;
+  }
+
+  if (!GST_GL_IS_CONTEXT (widget->priv->other_context)) {
+    GST_ERROR ("%p failed to retreive wrapped context %" GST_PTR_FORMAT, widget,
+        widget->priv->other_context);
+    g_mutex_unlock (&widget->priv->lock);
+    return FALSE;
+  }
+
+  widget->priv->context = gst_gl_context_new (widget->priv->display);
+
+  if (!widget->priv->context) {
+    g_mutex_unlock (&widget->priv->lock);
+    return FALSE;
+  }
+
+  gst_gl_context_create (widget->priv->context, widget->priv->other_context,
+      NULL);
+
+  g_mutex_unlock (&widget->priv->lock);
+  return TRUE;
+}
+
+void
+QtGLVideoItem::handleWindowChanged(QQuickWindow *win)
+{
+  if (win) {
+    connect(win, SIGNAL(sceneGraphInitialized()), this, SLOT(onSceneGraphInitialized()), Qt::DirectConnection);
+    connect(win, SIGNAL(sceneGraphInvalidated()), this, SLOT(onSceneGraphInvalidated()), Qt::DirectConnection);
+  } else {
+    this->priv->qt_context = NULL;
+  }
+}
+
+static gboolean
+_calculate_par (QtGLVideoItem * widget, GstVideoInfo * info)
+{
+  gboolean ok;
+  gint width, height;
+  gint par_n, par_d;
+  gint display_par_n, display_par_d;
+  guint display_ratio_num, display_ratio_den;
+
+  width = GST_VIDEO_INFO_WIDTH (info);
+  height = GST_VIDEO_INFO_HEIGHT (info);
+
+  par_n = GST_VIDEO_INFO_PAR_N (info);
+  par_d = GST_VIDEO_INFO_PAR_D (info);
+
+  if (!par_n)
+    par_n = 1;
+
+  /* get display's PAR */
+  if (widget->priv->par_n != 0 && widget->priv->par_d != 0) {
+    display_par_n = widget->priv->par_n;
+    display_par_d = widget->priv->par_d;
+  } else {
+    display_par_n = 1;
+    display_par_d = 1;
+  }
+
+  ok = gst_video_calculate_display_ratio (&display_ratio_num,
+      &display_ratio_den, width, height, par_n, par_d, display_par_n,
+      display_par_d);
+
+  if (!ok)
+    return FALSE;
+
+  GST_LOG ("PAR: %u/%u DAR:%u/%u", par_n, par_d, display_par_n, display_par_d);
+
+  if (height % display_ratio_den == 0) {
+    GST_DEBUG ("keeping video height");
+    widget->priv->display_width = (guint)
+        gst_util_uint64_scale_int (height, display_ratio_num,
+        display_ratio_den);
+    widget->priv->display_height = height;
+  } else if (width % display_ratio_num == 0) {
+    GST_DEBUG ("keeping video width");
+    widget->priv->display_width = width;
+    widget->priv->display_height = (guint)
+        gst_util_uint64_scale_int (width, display_ratio_den, display_ratio_num);
+  } else {
+    GST_DEBUG ("approximating while keeping video height");
+    widget->priv->display_width = (guint)
+        gst_util_uint64_scale_int (height, display_ratio_num,
+        display_ratio_den);
+    widget->priv->display_height = height;
+  }
+  GST_DEBUG ("scaling to %dx%d", widget->priv->display_width,
+      widget->priv->display_height);
+
+  return TRUE;
+}
+
+gboolean
+qt_item_set_caps (QtGLVideoItem * widget, GstCaps * caps)
+{
+  GstVideoInfo v_info;
+
+  g_return_val_if_fail (widget != NULL, FALSE);
+  g_return_val_if_fail (GST_IS_CAPS (caps), FALSE);
+  g_return_val_if_fail (gst_caps_is_fixed (caps), FALSE);
+
+  if (widget->priv->caps && gst_caps_is_equal_fixed (widget->priv->caps, caps))
+    return TRUE;
+
+  if (!gst_video_info_from_caps (&v_info, caps))
+    return FALSE;
+
+  g_mutex_lock (&widget->priv->lock);
+
+  _reset (widget);
+
+  gst_caps_replace (&widget->priv->caps, caps);
+
+  if (!_calculate_par (widget, &v_info)) {
+    g_mutex_unlock (&widget->priv->lock);
+    return FALSE;
+  }
+
+  widget->priv->v_info = v_info;
+  widget->priv->negotiated = TRUE;
+
+  g_mutex_unlock (&widget->priv->lock);
+
+  return TRUE;
+}
+
+GstGLContext *
+qt_item_get_qt_context (QtGLVideoItem * qt_item)
+{
+  g_return_val_if_fail (qt_item != NULL, NULL);
+
+  if (!qt_item->priv->other_context)
+    return NULL;
+
+  return (GstGLContext *) gst_object_ref (qt_item->priv->other_context);
+}
+
+GstGLContext *
+qt_item_get_context (QtGLVideoItem * qt_item)
+{
+  g_return_val_if_fail (qt_item != NULL, NULL);
+
+  if (!qt_item->priv->context)
+    return NULL;
+
+  return (GstGLContext *) gst_object_ref (qt_item->priv->context);
+}
+
+GstGLDisplay *
+qt_item_get_display (QtGLVideoItem * qt_item)
+{
+  g_return_val_if_fail (qt_item != NULL, NULL);
+
+  if (!qt_item->priv->display)
+    return NULL;
+
+  return (GstGLDisplay *) gst_object_ref (qt_item->priv->display);
+}
diff --git a/ext/qt/qtitem.h b/ext/qt/qtitem.h
new file mode 100644
index 0000000..afd2869
--- /dev/null
+++ b/ext/qt/qtitem.h
@@ -0,0 +1,72 @@
+/*
+ * GStreamer
+ * Copyright (C) 2015 Matthew Waters <matthew@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.
+ */
+
+#ifndef __QT_ITEM_H__
+#define __QT_ITEM_H__
+
+#include <gst/gst.h>
+#include <gst/gl/gl.h>
+#include <QQuickItem>
+#include <QOpenGLContext>
+#include <QOpenGLFunctions>
+
+typedef struct _QtGLVideoItemPrivate QtGLVideoItemPrivate;
+
+class QtGLVideoItem : public QQuickItem, protected QOpenGLFunctions
+{
+    Q_OBJECT
+public:
+    QtGLVideoItem();
+    ~QtGLVideoItem();
+
+    void setDAR(gint, gint);
+    void getDAR(gint *, gint *);
+    void setForceAspectRatio(bool);
+    bool getForceAspectRatio();
+
+    /* private for C interface ... */
+    QtGLVideoItemPrivate *priv;
+
+private Q_SLOTS:
+    void handleWindowChanged(QQuickWindow * win);
+    void onSceneGraphInitialized();
+    void onSceneGraphInvalidated();
+
+protected:
+    QSGNode * updatePaintNode (QSGNode * oldNode, UpdatePaintNodeData * updatePaintNodeData);
+
+private:
+    void setViewportSize(const QSize &size);
+    void shareContext();
+
+    QSize m_viewportSize;
+};
+
+extern "C"
+{
+void            qt_item_set_buffer (QtGLVideoItem * widget, GstBuffer * buffer);
+gboolean        qt_item_set_caps (QtGLVideoItem * widget, GstCaps * caps);
+gboolean        qt_item_init_winsys (QtGLVideoItem * widget);
+GstGLContext *  qt_item_get_qt_context (QtGLVideoItem * qt_item);
+GstGLContext *  qt_item_get_context (QtGLVideoItem * qt_item);
+GstGLDisplay *  qt_item_get_display (QtGLVideoItem * qt_item);
+}
+
+#endif /* __QT_ITEM_H__ */
diff --git a/ext/resindvd/Makefile.in b/ext/resindvd/Makefile.in
index d330e85..ab78a9f 100644
--- a/ext/resindvd/Makefile.in
+++ b/ext/resindvd/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -18,7 +18,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -83,8 +93,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/resindvd
-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 \
@@ -122,6 +130,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -237,6 +247,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -254,8 +265,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -284,8 +293,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -333,11 +340,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -521,6 +531,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -599,7 +610,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -639,6 +655,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -797,7 +814,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/resindvd/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/resindvd/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1170,6 +1186,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/ext/rsvg/Makefile.in b/ext/rsvg/Makefile.in
index 31de414..6f755d1 100644
--- a/ext/rsvg/Makefile.in
+++ b/ext/rsvg/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/rsvg
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -229,6 +239,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -246,8 +257,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -276,8 +285,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -325,11 +332,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -513,6 +523,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -591,7 +602,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -631,6 +647,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -771,7 +788,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/rsvg/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/rsvg/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1096,6 +1112,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/ext/rsvg/gstrsvgdec.c b/ext/rsvg/gstrsvgdec.c
index a17c935..17ebcb1 100644
--- a/ext/rsvg/gstrsvgdec.c
+++ b/ext/rsvg/gstrsvgdec.c
@@ -104,6 +104,9 @@
 {
   GstVideoDecoder *decoder = GST_VIDEO_DECODER (rsvg);
   gst_video_decoder_set_packetized (decoder, FALSE);
+  gst_video_decoder_set_use_default_pad_acceptcaps (GST_VIDEO_DECODER_CAST
+      (rsvg), TRUE);
+  GST_PAD_SET_ACCEPT_TEMPLATE (GST_VIDEO_DECODER_SINK_PAD (rsvg));
 }
 
 static void
@@ -203,8 +206,7 @@
 
 
   if (!gst_video_frame_map (&vframe,
-          &gst_video_decoder_get_output_state (decoder)->info,
-          frame->output_buffer, GST_MAP_READWRITE)) {
+          &output_state->info, frame->output_buffer, GST_MAP_READWRITE)) {
     GST_ERROR_OBJECT (rsvg, "Failed to get SVG image");
     g_object_unref (handle);
     gst_video_codec_state_unref (output_state);
diff --git a/ext/rtmp/Makefile.in b/ext/rtmp/Makefile.in
index 899ad61..55341e7 100644
--- a/ext/rtmp/Makefile.in
+++ b/ext/rtmp/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/rtmp
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -229,6 +239,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp README
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -246,8 +257,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -276,8 +285,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -325,11 +332,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -513,6 +523,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -591,7 +602,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -631,6 +647,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -762,7 +779,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/rtmp/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/rtmp/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1087,6 +1103,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/ext/sbc/Makefile.in b/ext/sbc/Makefile.in
index c798ac7..c9b853b 100644
--- a/ext/sbc/Makefile.in
+++ b/ext/sbc/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/sbc
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -229,6 +239,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -246,8 +257,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -276,8 +285,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -325,11 +332,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -513,6 +523,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -591,7 +602,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -631,6 +647,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -778,7 +795,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/sbc/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/sbc/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1103,6 +1119,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/ext/sbc/gstsbcdec.c b/ext/sbc/gstsbcdec.c
index 9e2eb5b..5031dd9 100644
--- a/ext/sbc/gstsbcdec.c
+++ b/ext/sbc/gstsbcdec.c
@@ -236,6 +236,9 @@
 gst_sbc_dec_init (GstSbcDec * dec)
 {
   gst_audio_decoder_set_needs_format (GST_AUDIO_DECODER (dec), TRUE);
+  gst_audio_decoder_set_use_default_pad_acceptcaps (GST_AUDIO_DECODER_CAST
+      (dec), TRUE);
+  GST_PAD_SET_ACCEPT_TEMPLATE (GST_AUDIO_DECODER_SINK_PAD (dec));
 
   dec->samples_per_frame = 0;
   dec->frame_len = 0;
diff --git a/ext/sbc/gstsbcenc.c b/ext/sbc/gstsbcenc.c
index 7aef4db..02ca1be 100644
--- a/ext/sbc/gstsbcenc.c
+++ b/ext/sbc/gstsbcenc.c
@@ -362,6 +362,7 @@
 static void
 gst_sbc_enc_init (GstSbcEnc * self)
 {
+  GST_PAD_SET_ACCEPT_TEMPLATE (GST_AUDIO_ENCODER_SINK_PAD (self));
   self->subbands = 0;
   self->blocks = 0;
   self->rate = 0;
diff --git a/ext/schroedinger/Makefile.in b/ext/schroedinger/Makefile.in
index 7a260b0..a9957f2 100644
--- a/ext/schroedinger/Makefile.in
+++ b/ext/schroedinger/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/schroedinger
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -230,6 +240,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -247,8 +258,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -277,8 +286,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -326,11 +333,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -514,6 +524,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -592,7 +603,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -632,6 +648,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -780,7 +797,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/schroedinger/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/schroedinger/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1113,6 +1129,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/ext/schroedinger/gstschrodec.c b/ext/schroedinger/gstschrodec.c
index 15065af..6ac6ae9 100644
--- a/ext/schroedinger/gstschrodec.c
+++ b/ext/schroedinger/gstschrodec.c
@@ -155,6 +155,9 @@
 
   schro_dec->decoder = schro_decoder_new ();
   gst_video_decoder_set_packetized (GST_VIDEO_DECODER (schro_dec), FALSE);
+  gst_video_decoder_set_use_default_pad_acceptcaps (GST_VIDEO_DECODER_CAST
+      (schro_dec), TRUE);
+  GST_PAD_SET_ACCEPT_TEMPLATE (GST_VIDEO_DECODER_SINK_PAD (schro_dec));
   schro_dec->header_read = FALSE;
 }
 
diff --git a/ext/schroedinger/gstschroenc.c b/ext/schroedinger/gstschroenc.c
index f1a7493..6cd761f 100644
--- a/ext/schroedinger/gstschroenc.c
+++ b/ext/schroedinger/gstschroenc.c
@@ -240,6 +240,8 @@
 {
   GST_DEBUG ("gst_schro_enc_init");
 
+  GST_PAD_SET_ACCEPT_TEMPLATE (GST_VIDEO_ENCODER_SINK_PAD (schro_enc));
+
   /* Normally, we'd create the encoder in ->start(), but we use the
    * encoder to store object properties.  So it needs to be created
    * here. */
diff --git a/ext/sdl/Makefile.in b/ext/sdl/Makefile.in
index 0420f9f..98a5fb2 100644
--- a/ext/sdl/Makefile.in
+++ b/ext/sdl/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/sdl
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -228,6 +238,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -245,8 +256,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -275,8 +284,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -324,11 +331,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -512,6 +522,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -590,7 +601,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -630,6 +646,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -773,7 +790,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/sdl/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/sdl/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1098,6 +1114,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/ext/smoothstreaming/Makefile.in b/ext/smoothstreaming/Makefile.in
index 929f9cc..387e9da 100644
--- a/ext/smoothstreaming/Makefile.in
+++ b/ext/smoothstreaming/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/smoothstreaming
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -234,6 +244,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -251,8 +262,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -281,8 +290,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -330,11 +337,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -518,6 +528,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -596,7 +607,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -636,6 +652,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -782,7 +799,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/smoothstreaming/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/smoothstreaming/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1107,6 +1123,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/ext/sndfile/Makefile.in b/ext/sndfile/Makefile.in
index ea8715c..41153e8 100644
--- a/ext/sndfile/Makefile.in
+++ b/ext/sndfile/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/sndfile
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -229,6 +239,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -246,8 +257,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -276,8 +285,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -325,11 +332,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -513,6 +523,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -591,7 +602,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -631,6 +647,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -762,7 +779,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/sndfile/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/sndfile/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1079,6 +1095,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/ext/sndio/Makefile.in b/ext/sndio/Makefile.in
index 0861908..4609ec6 100644
--- a/ext/sndio/Makefile.in
+++ b/ext/sndio/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/sndio
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -228,6 +238,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -245,8 +256,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -275,8 +284,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -324,11 +331,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -512,6 +522,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -590,7 +601,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -630,6 +646,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -764,7 +781,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/sndio/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/sndio/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1089,6 +1105,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/ext/soundtouch/Makefile.in b/ext/soundtouch/Makefile.in
index 6662450..88d9055 100644
--- a/ext/soundtouch/Makefile.in
+++ b/ext/soundtouch/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/soundtouch
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -248,6 +258,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -265,8 +276,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -295,8 +304,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -344,11 +351,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -532,6 +542,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -610,7 +621,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -650,6 +666,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -786,7 +803,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/soundtouch/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/soundtouch/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1135,6 +1151,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/ext/spandsp/Makefile.in b/ext/spandsp/Makefile.in
index 1c1810a..2e7438a 100644
--- a/ext/spandsp/Makefile.in
+++ b/ext/spandsp/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/spandsp
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -230,6 +240,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -247,8 +258,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -277,8 +286,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -326,11 +333,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -514,6 +524,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -592,7 +603,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -632,6 +648,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -765,7 +782,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/spandsp/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/spandsp/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1090,6 +1106,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/ext/spc/Makefile.in b/ext/spc/Makefile.in
index bfc96dd..f668607 100644
--- a/ext/spc/Makefile.in
+++ b/ext/spc/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/spc
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -227,6 +237,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -244,8 +255,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -274,8 +283,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -323,11 +330,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -511,6 +521,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -589,7 +600,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -629,6 +645,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -760,7 +777,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/spc/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/spc/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1077,6 +1093,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/ext/srtp/Makefile.in b/ext/srtp/Makefile.in
index c679aee..6bb4d7e 100644
--- a/ext/srtp/Makefile.in
+++ b/ext/srtp/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -23,7 +23,17 @@
 #glib_gen_basename=colorbalance
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -87,9 +97,6 @@
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
-DIST_COMMON = $(top_srcdir)/common/gst-glib-gen.mak \
-	$(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp
 subdir = ext/srtp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
@@ -128,6 +135,7 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -238,6 +246,8 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in \
+	$(top_srcdir)/common/gst-glib-gen.mak $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -255,8 +265,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -285,8 +293,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -334,11 +340,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -522,6 +531,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -600,7 +610,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -640,6 +655,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -790,7 +806,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/srtp/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/srtp/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -799,7 +814,7 @@
 	    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/gst-glib-gen.mak:
+$(top_srcdir)/common/gst-glib-gen.mak $(am__empty):
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -1128,6 +1143,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # these are all the rules generating the relevant files
 $(glib_gen_basename)-marshal.h: $(glib_gen_basename)-marshal.list
diff --git a/ext/srtp/gstsrtpdec.c b/ext/srtp/gstsrtpdec.c
index 31999cb..2b814a4 100644
--- a/ext/srtp/gstsrtpdec.c
+++ b/ext/srtp/gstsrtpdec.c
@@ -126,6 +126,8 @@
 GST_DEBUG_CATEGORY_STATIC (gst_srtp_dec_debug);
 #define GST_CAT_DEFAULT gst_srtp_dec_debug
 
+#define DEFAULT_REPLAY_WINDOW_SIZE 128
+
 /* Filter signals and args */
 enum
 {
@@ -139,25 +141,10 @@
 
 enum
 {
-  PROP_0
+  PROP_0,
+  PROP_REPLAY_WINDOW_SIZE
 };
 
-typedef struct _ValidateBufferItData
-{
-  GstSrtpDecSsrcStream **stream;
-  GstSrtpDec *filter;
-  guint32 *ssrc;
-  gboolean *is_rtcp;
-} ValidateBufferItData;
-
-typedef struct _DecodeBufferItData
-{
-  GstSrtpDec *filter;
-  GstPad *pad;
-  guint32 ssrc;
-  gboolean is_rtcp;
-} DecodeBufferItData;
-
 /* the capabilities of the inputs and outputs.
  *
  * describe the real formats here.
@@ -194,6 +181,11 @@
 
 G_DEFINE_TYPE (GstSrtpDec, gst_srtp_dec, GST_TYPE_ELEMENT);
 
+static void gst_srtp_dec_set_property (GObject * object, guint prop_id,
+    const GValue * value, GParamSpec * pspec);
+static void gst_srtp_dec_get_property (GObject * object, guint prop_id,
+    GValue * value, GParamSpec * pspec);
+
 static void gst_srtp_dec_clear_streams (GstSrtpDec * filter);
 static void gst_srtp_dec_remove_stream (GstSrtpDec * filter, guint ssrc);
 
@@ -218,11 +210,6 @@
 static GstFlowReturn gst_srtp_dec_chain_rtcp (GstPad * pad,
     GstObject * parent, GstBuffer * buf);
 
-static GstFlowReturn gst_srtp_dec_chain_list_rtp (GstPad * pad,
-    GstObject * parent, GstBufferList * buf_list);
-static GstFlowReturn gst_srtp_dec_chain_list_rtcp (GstPad * pad,
-    GstObject * parent, GstBufferList * buf_list);
-
 static GstStateChangeReturn gst_srtp_dec_change_state (GstElement * element,
     GstStateChange transition);
 
@@ -252,10 +239,15 @@
 static void
 gst_srtp_dec_class_init (GstSrtpDecClass * klass)
 {
+  GObjectClass *gobject_class;
   GstElementClass *gstelement_class;
 
+  gobject_class = (GObjectClass *) klass;
   gstelement_class = (GstElementClass *) klass;
 
+  gobject_class->set_property = gst_srtp_dec_set_property;
+  gobject_class->get_property = gst_srtp_dec_get_property;
+
   gst_element_class_add_pad_template (gstelement_class,
       gst_static_pad_template_get (&rtp_src_template));
   gst_element_class_add_pad_template (gstelement_class,
@@ -277,6 +269,13 @@
   klass->clear_streams = GST_DEBUG_FUNCPTR (gst_srtp_dec_clear_streams);
   klass->remove_stream = GST_DEBUG_FUNCPTR (gst_srtp_dec_remove_stream);
 
+  /* Install properties */
+  g_object_class_install_property (gobject_class, PROP_REPLAY_WINDOW_SIZE,
+      g_param_spec_uint ("replay-window-size", "Replay window size",
+          "Size of the replay protection window",
+          64, 0x8000, DEFAULT_REPLAY_WINDOW_SIZE,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
   /* Install signals */
   /**
    * GstSrtpDec::request-key:
@@ -358,6 +357,8 @@
 static void
 gst_srtp_dec_init (GstSrtpDec * filter)
 {
+  filter->replay_window_size = DEFAULT_REPLAY_WINDOW_SIZE;
+
   filter->rtp_sinkpad =
       gst_pad_new_from_static_template (&rtp_sink_template, "rtp_sink");
   gst_pad_set_event_function (filter->rtp_sinkpad,
@@ -368,8 +369,6 @@
       GST_DEBUG_FUNCPTR (gst_srtp_dec_iterate_internal_links_rtp));
   gst_pad_set_chain_function (filter->rtp_sinkpad,
       GST_DEBUG_FUNCPTR (gst_srtp_dec_chain_rtp));
-  gst_pad_set_chain_list_function (filter->rtp_sinkpad,
-      GST_DEBUG_FUNCPTR (gst_srtp_dec_chain_list_rtp));
 
   filter->rtp_srcpad =
       gst_pad_new_from_static_template (&rtp_src_template, "rtp_src");
@@ -393,8 +392,6 @@
       GST_DEBUG_FUNCPTR (gst_srtp_dec_iterate_internal_links_rtcp));
   gst_pad_set_chain_function (filter->rtcp_sinkpad,
       GST_DEBUG_FUNCPTR (gst_srtp_dec_chain_rtcp));
-  gst_pad_set_chain_list_function (filter->rtcp_sinkpad,
-      GST_DEBUG_FUNCPTR (gst_srtp_dec_chain_list_rtcp));
 
   filter->rtcp_srcpad =
       gst_pad_new_from_static_template (&rtcp_src_template, "rtcp_src");
@@ -412,6 +409,46 @@
 }
 
 static void
+gst_srtp_dec_set_property (GObject * object, guint prop_id,
+    const GValue * value, GParamSpec * pspec)
+{
+  GstSrtpDec *filter = GST_SRTP_DEC (object);
+
+  GST_OBJECT_LOCK (filter);
+
+  switch (prop_id) {
+    case PROP_REPLAY_WINDOW_SIZE:
+      filter->replay_window_size = g_value_get_uint (value);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
+
+  GST_OBJECT_UNLOCK (filter);
+}
+
+static void
+gst_srtp_dec_get_property (GObject * object, guint prop_id,
+    GValue * value, GParamSpec * pspec)
+{
+  GstSrtpDec *filter = GST_SRTP_DEC (object);
+
+  GST_OBJECT_LOCK (filter);
+
+  switch (prop_id) {
+    case PROP_REPLAY_WINDOW_SIZE:
+      g_value_set_uint (value, filter->replay_window_size);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
+
+  GST_OBJECT_UNLOCK (filter);
+}
+
+static void
 gst_srtp_dec_remove_stream (GstSrtpDec * filter, guint ssrc)
 {
   GstSrtpDecSsrcStream *stream = NULL;
@@ -545,6 +582,7 @@
 
   policy.ssrc.value = ssrc;
   policy.ssrc.type = ssrc_specific;
+  policy.window_size = filter->replay_window_size;
   policy.next = NULL;
 
   /* If it is the first stream, create the session
@@ -1165,6 +1203,7 @@
   GST_OBJECT_LOCK (filter);
 
   /* Check if this stream exists, if not create a new stream */
+
   if (!(stream = validate_buffer (filter, buf, &ssrc, &is_rtcp))) {
     GST_OBJECT_UNLOCK (filter);
     GST_WARNING_OBJECT (filter, "Invalid buffer, dropping");
@@ -1212,107 +1251,6 @@
   return ret;
 }
 
-static gboolean
-validate_buffer_it (GstBuffer ** buffer, guint index, gpointer user_data)
-{
-  ValidateBufferItData *data = user_data;
-
-  if (!(*data->stream =
-          validate_buffer (data->filter, *buffer, data->ssrc, data->is_rtcp))) {
-    GST_WARNING_OBJECT (data->filter, "Invalid buffer, dropping");
-    gst_buffer_replace (buffer, NULL);
-  }
-
-  return TRUE;
-}
-
-static gboolean
-decode_buffer_it (GstBuffer ** buffer, guint index, gpointer user_data)
-{
-  DecodeBufferItData *data = user_data;
-
-  if (!gst_srtp_dec_decode_buffer (data->filter, data->pad, *buffer,
-          data->is_rtcp, data->ssrc)) {
-    GST_WARNING_OBJECT (data->filter, "Error decoding buffer, dropping");
-    gst_buffer_replace (buffer, NULL);
-  }
-
-  return TRUE;
-}
-
-static GstFlowReturn
-gst_srtp_dec_chain_list (GstPad * pad, GstObject * parent,
-    GstBufferList * buf_list, gboolean is_rtcp)
-{
-  GstSrtpDec *filter = GST_SRTP_DEC (parent);
-  GstPad *otherpad;
-  GstSrtpDecSsrcStream *stream = NULL;
-  GstFlowReturn ret = GST_FLOW_OK;
-  guint32 ssrc = 0;
-  ValidateBufferItData validate_data;
-  DecodeBufferItData decode_data;
-
-  validate_data.stream = &stream;
-  validate_data.filter = filter;
-  validate_data.ssrc = &ssrc;
-  validate_data.is_rtcp = &is_rtcp;
-
-  decode_data.filter = filter;
-  decode_data.pad = pad;
-
-  GST_OBJECT_LOCK (filter);
-
-  /* Check if this stream exists, if not create a new stream */
-  gst_buffer_list_foreach (buf_list, validate_buffer_it, &validate_data);
-
-  if (!gst_buffer_list_length (buf_list)) {
-    GST_OBJECT_LOCK (filter);
-    gst_buffer_list_unref (buf_list);
-    return GST_FLOW_OK;
-  }
-
-  if (!STREAM_HAS_CRYPTO (stream)) {
-    GST_OBJECT_UNLOCK (filter);
-    goto push_out;
-  }
-
-  decode_data.ssrc = ssrc;
-  decode_data.is_rtcp = is_rtcp;
-
-  gst_buffer_list_foreach (buf_list, decode_buffer_it, &decode_data);
-
-  GST_OBJECT_UNLOCK (filter);
-
-  if (!gst_buffer_list_length (buf_list)) {
-    gst_buffer_list_unref (buf_list);
-    return GST_FLOW_OK;
-  }
-
-  /* If all is well, we may have reached soft limit */
-  if (gst_srtp_get_soft_limit_reached ())
-    request_key_with_signal (filter, ssrc, SIGNAL_SOFT_LIMIT);
-
-push_out:
-  /* Push buffer list to source pad */
-  if (is_rtcp) {
-    otherpad = filter->rtcp_srcpad;
-    if (!filter->rtcp_has_segment)
-      gst_srtp_dec_push_early_events (filter, filter->rtcp_srcpad,
-          filter->rtp_srcpad, TRUE);
-  } else {
-    otherpad = filter->rtp_srcpad;
-    if (!filter->rtp_has_segment)
-      gst_srtp_dec_push_early_events (filter, filter->rtp_srcpad,
-          filter->rtcp_srcpad, FALSE);
-  }
-
-  GST_LOG_OBJECT (pad, "Pushing buffer chain of %d",
-      gst_buffer_list_length (buf_list));
-  ret = gst_pad_push_list (otherpad, buf_list);
-
-  return ret;
-}
-
 static GstFlowReturn
 gst_srtp_dec_chain_rtp (GstPad * pad, GstObject * parent, GstBuffer * buf)
 {
@@ -1325,21 +1263,6 @@
   return gst_srtp_dec_chain (pad, parent, buf, TRUE);
 }
 
-static GstFlowReturn
-gst_srtp_dec_chain_list_rtp (GstPad * pad, GstObject * parent,
-    GstBufferList * buf_list)
-{
-  return gst_srtp_dec_chain_list (pad, parent, buf_list, FALSE);
-}
-
-static GstFlowReturn
-gst_srtp_dec_chain_list_rtcp (GstPad * pad, GstObject * parent,
-    GstBufferList * buf_list)
-{
-  return gst_srtp_dec_chain_list (pad, parent, buf_list, TRUE);
-}
-
-
 static GstStateChangeReturn
 gst_srtp_dec_change_state (GstElement * element, GstStateChange transition)
 {
diff --git a/ext/srtp/gstsrtpdec.h b/ext/srtp/gstsrtpdec.h
index 41862e0..644092a 100644
--- a/ext/srtp/gstsrtpdec.h
+++ b/ext/srtp/gstsrtpdec.h
@@ -71,6 +71,8 @@
 {
   GstElement element;
 
+  guint replay_window_size;
+
   GstPad *rtp_sinkpad, *rtp_srcpad;
   GstPad *rtcp_sinkpad, *rtcp_srcpad;
 
diff --git a/ext/srtp/gstsrtpenc.c b/ext/srtp/gstsrtpenc.c
index 8489da4..eb00886 100644
--- a/ext/srtp/gstsrtpenc.c
+++ b/ext/srtp/gstsrtpenc.c
@@ -162,12 +162,6 @@
   PROP_ALLOW_REPEAT_TX
 };
 
-typedef struct ValidateBufferItData
-{
-  GstSrtpEnc *filter;
-  gboolean is_rtcp;
-} ValidateBufferItData;
-
 typedef struct ProcessBufferItData
 {
   GstSrtpEnc *filter;
@@ -970,34 +964,6 @@
   filter->key_changed = TRUE;
 }
 
-static gboolean
-gst_srtp_enc_check_buffer (GstSrtpEnc * filter, GstBuffer * buf,
-    gboolean is_rtcp)
-{
-  if (!is_rtcp) {
-    GstRTPBuffer rtpbuf = GST_RTP_BUFFER_INIT;
-
-    if (!gst_rtp_buffer_map (buf, GST_MAP_READ, &rtpbuf)) {
-      GST_ELEMENT_ERROR (filter, STREAM, WRONG_TYPE, (NULL),
-          ("Could not map RTP buffer"));
-      return FALSE;
-    }
-
-    gst_rtp_buffer_unmap (&rtpbuf);
-  } else {
-    GstRTCPBuffer rtcpbuf = GST_RTCP_BUFFER_INIT;
-
-    if (!gst_rtcp_buffer_map (buf, GST_MAP_READ, &rtcpbuf)) {
-      GST_ELEMENT_ERROR (filter, STREAM, WRONG_TYPE, (NULL),
-          ("Could not map RTCP buffer"));
-      return FALSE;
-    }
-    gst_rtcp_buffer_unmap (&rtcpbuf);
-  }
-
-  return TRUE;
-}
-
 static GstFlowReturn
 gst_srtp_enc_check_set_caps (GstSrtpEnc * filter, GstPad * pad,
     gboolean is_rtcp)
@@ -1109,10 +1075,6 @@
   GstPad *otherpad;
   GstBuffer *bufout = NULL;
 
-  if (!gst_srtp_enc_check_buffer (filter, buf, is_rtcp)) {
-    goto fail;
-  }
-
   if ((ret = gst_srtp_enc_check_set_caps (filter, pad, is_rtcp)) != GST_FLOW_OK) {
     goto out;
   }
@@ -1163,19 +1125,6 @@
 }
 
 static gboolean
-validate_buffer_it (GstBuffer ** buffer, guint index, gpointer user_data)
-{
-  ValidateBufferItData *data = user_data;
-
-  if (!gst_srtp_enc_check_buffer (data->filter, *buffer, data->is_rtcp)) {
-    GST_WARNING_OBJECT (data->filter, "Invalid buffer, dropping");
-    gst_buffer_replace (buffer, NULL);
-  }
-
-  return TRUE;
-}
-
-static gboolean
 process_buffer_it (GstBuffer ** buffer, guint index, gpointer user_data)
 {
   ProcessBufferItData *data = user_data;
@@ -1200,17 +1149,11 @@
   GstFlowReturn ret = GST_FLOW_OK;
   GstPad *otherpad;
   GstBufferList *out_list = NULL;
-  ValidateBufferItData validate_data;
   ProcessBufferItData process_data;
 
-  validate_data.filter = filter;
-  validate_data.is_rtcp = is_rtcp;
-
   GST_LOG_OBJECT (pad, "Buffer chain with list of %d",
       gst_buffer_list_length (buf_list));
 
-  gst_buffer_list_foreach (buf_list, validate_buffer_it, &validate_data);
-
   if (!gst_buffer_list_length (buf_list))
     goto out;
 
diff --git a/ext/teletextdec/Makefile.in b/ext/teletextdec/Makefile.in
index 254863f..0d69582 100644
--- a/ext/teletextdec/Makefile.in
+++ b/ext/teletextdec/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/teletextdec
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -229,6 +239,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -246,8 +257,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -276,8 +285,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -325,11 +332,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -513,6 +523,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -591,7 +602,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -631,6 +647,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -762,7 +779,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/teletextdec/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/teletextdec/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1079,6 +1095,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/ext/timidity/Makefile.in b/ext/timidity/Makefile.in
index 42359ec..307fd9f 100644
--- a/ext/timidity/Makefile.in
+++ b/ext/timidity/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -83,8 +93,6 @@
 @USE_TIMIDITY_TRUE@am__append_1 = libgsttimidity.la
 @USE_WILDMIDI_TRUE@am__append_2 = libgstwildmidi.la
 subdir = ext/timidity
-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 \
@@ -122,6 +130,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -246,6 +256,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp README
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -263,8 +274,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -293,8 +302,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -342,11 +349,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -530,6 +540,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -608,7 +619,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -648,6 +664,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -796,7 +813,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/timidity/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/timidity/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1116,6 +1132,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/ext/voaacenc/Makefile.in b/ext/voaacenc/Makefile.in
index b4c53f8..105a234 100644
--- a/ext/voaacenc/Makefile.in
+++ b/ext/voaacenc/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/voaacenc
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -229,6 +239,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -246,8 +257,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -276,8 +285,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -325,11 +332,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -513,6 +523,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -591,7 +602,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -631,6 +647,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -781,7 +798,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/voaacenc/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/voaacenc/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1098,6 +1114,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/ext/voaacenc/gstvoaacenc.c b/ext/voaacenc/gstvoaacenc.c
index a7fa260..315f373 100644
--- a/ext/voaacenc/gstvoaacenc.c
+++ b/ext/voaacenc/gstvoaacenc.c
@@ -26,7 +26,7 @@
  * <refsect2>
  * <title>Example launch line</title>
  * |[
- * gst-launch filesrc location=abc.wav ! wavparse ! audioresample ! audioconvert ! voaacenc ! filesink location=abc.aac
+ * gst-launch-1.0 filesrc location=abc.wav ! wavparse ! audioresample ! audioconvert ! voaacenc ! filesink location=abc.aac
  * ]|
  * </refsect2>
  */
@@ -66,13 +66,19 @@
                     "88200, " \
                     "96000"
 
+/* voaacenc only supports 1 or 2 channels */
 static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink",
     GST_PAD_SINK,
     GST_PAD_ALWAYS,
     GST_STATIC_CAPS ("audio/x-raw, "
         "format = (string) " GST_AUDIO_NE (S16) ", "
         "layout = (string) interleaved, "
-        "rate = (int) { " SAMPLE_RATES " }, " "channels = (int) [1, 2]")
+        "rate = (int) { " SAMPLE_RATES " }, " "channels = (int) 1;"
+        "audio/x-raw, "
+        "format = (string) " GST_AUDIO_NE (S16) ", "
+        "layout = (string) interleaved, "
+        "rate = (int) { " SAMPLE_RATES " }, " "channels = (int) 2, "
+        "channel-mask=(bitmask)0x3")
     );
 
 static GstStaticPadTemplate src_template = GST_STATIC_PAD_TEMPLATE ("src",
@@ -98,7 +104,6 @@
     GstAudioInfo * info);
 static GstFlowReturn gst_voaacenc_handle_frame (GstAudioEncoder * enc,
     GstBuffer * in_buf);
-static GstCaps *gst_voaacenc_getcaps (GstAudioEncoder * enc, GstCaps * filter);
 
 G_DEFINE_TYPE (GstVoAacEnc, gst_voaacenc, GST_TYPE_AUDIO_ENCODER);
 
@@ -150,7 +155,6 @@
   base_class->stop = GST_DEBUG_FUNCPTR (gst_voaacenc_stop);
   base_class->set_format = GST_DEBUG_FUNCPTR (gst_voaacenc_set_format);
   base_class->handle_frame = GST_DEBUG_FUNCPTR (gst_voaacenc_handle_frame);
-  base_class->getcaps = GST_DEBUG_FUNCPTR (gst_voaacenc_getcaps);
 
   g_object_class_install_property (object_class, PROP_BITRATE,
       g_param_spec_int ("bitrate",
@@ -173,6 +177,7 @@
 static void
 gst_voaacenc_init (GstVoAacEnc * voaacenc)
 {
+  GST_PAD_SET_ACCEPT_TEMPLATE (GST_AUDIO_ENCODER_SINK_PAD (voaacenc));
   voaacenc->bitrate = VOAAC_ENC_DEFAULT_BITRATE;
   voaacenc->output_format = VOAAC_ENC_DEFAULT_OUTPUTFORMAT;
 
@@ -240,76 +245,6 @@
       GST_AUDIO_CHANNEL_POSITION_LFE1}
 };
 
-static gpointer
-gst_voaacenc_generate_sink_caps (gpointer data)
-{
-  GstCaps *caps;
-  gint i, c;
-  static const int rates[] = {
-    8000, 11025, 12000, 16000, 22050, 24000,
-    32000, 44100, 48000, 64000, 88200, 96000
-  };
-  GValue rates_arr = { 0, };
-  GValue tmp = { 0, };
-  GstStructure *s, *t;
-
-  g_value_init (&rates_arr, GST_TYPE_LIST);
-  g_value_init (&tmp, G_TYPE_INT);
-  for (i = 0; i < G_N_ELEMENTS (rates); i++) {
-    g_value_set_int (&tmp, rates[i]);
-    gst_value_list_append_value (&rates_arr, &tmp);
-  }
-  g_value_unset (&tmp);
-
-  s = gst_structure_new ("audio/x-raw",
-      "format", G_TYPE_STRING, GST_AUDIO_NE (S16),
-      "layout", G_TYPE_STRING, "interleaved", NULL);
-  gst_structure_set_value (s, "rate", &rates_arr);
-
-  caps = gst_caps_new_empty ();
-
-  for (i = 1; i <= 2 /* VOAAC_ENC_MAX_CHANNELS */ ; i++) {
-    guint64 channel_mask = 0;
-    t = gst_structure_copy (s);
-
-    gst_structure_set (t, "channels", G_TYPE_INT, i, NULL);
-    if (i > 1) {
-      for (c = 0; c < i; c++)
-        channel_mask |=
-            G_GUINT64_CONSTANT (1) << aac_channel_positions[i - 1][c];
-
-      gst_structure_set (t, "channel-mask", GST_TYPE_BITMASK, channel_mask,
-          NULL);
-    }
-    gst_caps_append_structure (caps, t);
-  }
-
-  gst_structure_free (s);
-  g_value_unset (&rates_arr);
-
-  GST_DEBUG ("generated sink caps: %" GST_PTR_FORMAT, caps);
-  return caps;
-}
-
-static GstCaps *
-gst_voaacenc_get_sink_caps (void)
-{
-  static GOnce g_once = G_ONCE_INIT;
-  GstCaps *caps;
-
-  g_once (&g_once, gst_voaacenc_generate_sink_caps, NULL);
-  caps = g_once.retval;
-
-  return caps;
-}
-
-static GstCaps *
-gst_voaacenc_getcaps (GstAudioEncoder * benc, GstCaps * filter)
-{
-  return gst_audio_encoder_proxy_getcaps (benc, gst_voaacenc_get_sink_caps (),
-      filter);
-}
-
 /* check downstream caps to configure format */
 static void
 gst_voaacenc_negotiate (GstVoAacEnc * voaacenc)
@@ -376,18 +311,20 @@
     caps = gst_caps_new_simple ("audio/mpeg",
         "mpegversion", G_TYPE_INT, VOAAC_ENC_MPEGVERSION,
         "channels", G_TYPE_INT, voaacenc->channels,
-        "rate", G_TYPE_INT, voaacenc->rate,
-        "stream-format", G_TYPE_STRING,
-        (voaacenc->output_format ? "adts" : "raw")
-        , NULL);
+        "rate", G_TYPE_INT, voaacenc->rate, NULL);
 
     gst_codec_utils_aac_caps_set_level_and_profile (caps, map.data,
         VOAAC_ENC_CODECDATA_LEN);
     gst_buffer_unmap (codec_data, &map);
 
     if (!voaacenc->output_format) {
-      gst_caps_set_simple (caps, "codec_data", GST_TYPE_BUFFER, codec_data,
-          NULL);
+      gst_caps_set_simple (caps,
+          "stream-format", G_TYPE_STRING, "raw",
+          "codec_data", GST_TYPE_BUFFER, codec_data, NULL);
+    } else {
+      gst_caps_set_simple (caps,
+          "stream-format", G_TYPE_STRING, "adts",
+          "framed", G_TYPE_BOOLEAN, TRUE, NULL);
     }
     gst_buffer_unref (codec_data);
   }
diff --git a/ext/voamrwbenc/Makefile.in b/ext/voamrwbenc/Makefile.in
index 6a6d6f8..ade88e2 100644
--- a/ext/voamrwbenc/Makefile.in
+++ b/ext/voamrwbenc/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -17,7 +17,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -82,8 +92,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/voamrwbenc
-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 \
@@ -121,6 +129,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -230,6 +240,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -247,8 +258,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -277,8 +286,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -326,11 +333,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -514,6 +524,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -592,7 +603,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -632,6 +648,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -775,7 +792,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/voamrwbenc/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/voamrwbenc/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1113,6 +1129,8 @@
 	mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
 	uninstall-am uninstall-pluginLTLIBRARIES uninstall-presetDATA
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/ext/voamrwbenc/gstvoamrwbenc.c b/ext/voamrwbenc/gstvoamrwbenc.c
index 305f845..ae09f06 100644
--- a/ext/voamrwbenc/gstvoamrwbenc.c
+++ b/ext/voamrwbenc/gstvoamrwbenc.c
@@ -190,6 +190,8 @@
 static void
 gst_voamrwbenc_init (GstVoAmrWbEnc * amrwbenc)
 {
+  GST_PAD_SET_ACCEPT_TEMPLATE (GST_AUDIO_ENCODER_SINK_PAD (amrwbenc));
+
   /* init rest */
   amrwbenc->handle = NULL;
   amrwbenc->channels = 0;
diff --git a/ext/wayland/Makefile.in b/ext/wayland/Makefile.in
index 058a601..5c75d21 100644
--- a/ext/wayland/Makefile.in
+++ b/ext/wayland/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/wayland
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -235,6 +245,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -252,8 +263,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -282,8 +291,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -331,11 +338,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -519,6 +529,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -597,7 +608,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -637,6 +653,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -793,7 +810,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/wayland/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/wayland/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1151,6 +1167,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 %-protocol.c : %.xml
 	$(wayland_scanner) code < $< > $@
diff --git a/ext/webp/Makefile.in b/ext/webp/Makefile.in
index 6573d85..b9af9d0 100644
--- a/ext/webp/Makefile.in
+++ b/ext/webp/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/webp
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -229,6 +239,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -246,8 +257,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -276,8 +285,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -325,11 +332,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -513,6 +523,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -591,7 +602,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -631,6 +647,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -771,7 +788,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/webp/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/webp/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1096,6 +1112,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/ext/webp/gstwebpdec.c b/ext/webp/gstwebpdec.c
index 585840d..6877cd4 100644
--- a/ext/webp/gstwebpdec.c
+++ b/ext/webp/gstwebpdec.c
@@ -139,6 +139,9 @@
   dec->bypass_filtering = FALSE;
   dec->no_fancy_upsampling = FALSE;
   dec->use_threads = FALSE;
+  gst_video_decoder_set_use_default_pad_acceptcaps (GST_VIDEO_DECODER_CAST
+      (dec), TRUE);
+  GST_PAD_SET_ACCEPT_TEMPLATE (GST_VIDEO_DECODER_SINK_PAD (dec));
 }
 
 static gboolean
diff --git a/ext/webp/gstwebpenc.c b/ext/webp/gstwebpenc.c
index b813e4e..75891ea 100644
--- a/ext/webp/gstwebpenc.c
+++ b/ext/webp/gstwebpenc.c
@@ -163,6 +163,8 @@
 static void
 gst_webp_enc_init (GstWebpEnc * webpenc)
 {
+  GST_PAD_SET_ACCEPT_TEMPLATE (GST_VIDEO_ENCODER_SINK_PAD (webpenc));
+
   webpenc->lossless = DEFAULT_LOSSLESS;
   webpenc->quality = DEFAULT_QUALITY;
   webpenc->speed = DEFAULT_SPEED;
diff --git a/ext/x265/Makefile.in b/ext/x265/Makefile.in
index d77dbb5..3287a9f 100644
--- a/ext/x265/Makefile.in
+++ b/ext/x265/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/x265
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -227,6 +237,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -244,8 +255,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -274,8 +283,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -323,11 +330,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -511,6 +521,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -589,7 +600,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -629,6 +645,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -770,7 +787,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/x265/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/x265/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1079,6 +1095,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/ext/x265/gstx265enc.c b/ext/x265/gstx265enc.c
index 47b95a6..08a4a3e 100644
--- a/ext/x265/gstx265enc.c
+++ b/ext/x265/gstx265enc.c
@@ -297,6 +297,32 @@
   return caps;
 }
 
+static gboolean
+gst_x265_enc_sink_query (GstVideoEncoder * enc, GstQuery * query)
+{
+  gboolean res;
+
+  switch (GST_QUERY_TYPE (query)) {
+    case GST_QUERY_ACCEPT_CAPS:{
+      GstCaps *acceptable, *caps;
+
+      acceptable = gst_x265_enc_get_supported_input_caps ();
+      gst_query_parse_accept_caps (query, &caps);
+
+      gst_query_set_accept_caps_result (query,
+          gst_caps_is_subset (caps, acceptable));
+      gst_caps_unref (acceptable);
+      res = TRUE;
+    }
+      break;
+    default:
+      res = GST_VIDEO_ENCODER_CLASS (parent_class)->sink_query (enc, query);
+      break;
+  }
+
+  return res;
+}
+
 static GstCaps *
 gst_x265_enc_sink_getcaps (GstVideoEncoder * enc, GstCaps * filter)
 {
@@ -336,6 +362,7 @@
   gstencoder_class->flush = GST_DEBUG_FUNCPTR (gst_x265_enc_flush);
   gstencoder_class->finish = GST_DEBUG_FUNCPTR (gst_x265_enc_finish);
   gstencoder_class->getcaps = GST_DEBUG_FUNCPTR (gst_x265_enc_sink_getcaps);
+  gstencoder_class->sink_query = GST_DEBUG_FUNCPTR (gst_x265_enc_sink_query);
   gstencoder_class->propose_allocation =
       GST_DEBUG_FUNCPTR (gst_x265_enc_propose_allocation);
 
@@ -735,6 +762,7 @@
   x265_nal *nal, *vps_nal;
   guint32 i_nal;
   int header_return;
+  gboolean ret = TRUE;
 
   GST_DEBUG_OBJECT (encoder, "set profile, level and tier");
 
@@ -756,12 +784,12 @@
           vps_nal->payload + 6, vps_nal->sizeBytes - 6)) {
     GST_ELEMENT_ERROR (encoder, STREAM, ENCODE, ("Encode x265 failed."),
         ("Failed to find correct level, tier or profile in VPS"));
-    return FALSE;
+    ret = FALSE;
   }
 
   x265_nal_free (vps_nal);
 
-  return TRUE;
+  return ret;
 }
 
 static GstBuffer *
@@ -893,7 +921,6 @@
 {
   GstX265Enc *encoder = GST_X265_ENC (video_enc);
   GstVideoInfo *info = &state->info;
-  gboolean level_ok = TRUE;
 
   /* If the encoder is initialized, do not reinitialize it again if not
    * necessary */
@@ -917,9 +944,6 @@
     gst_video_codec_state_unref (encoder->input_state);
   encoder->input_state = gst_video_codec_state_ref (state);
 
-  if (!level_ok)
-    return FALSE;
-
   if (!gst_x265_enc_init_encoder (encoder))
     return FALSE;
 
diff --git a/ext/xvid/Makefile.in b/ext/xvid/Makefile.in
index ff9e6fc..506ae2d 100644
--- a/ext/xvid/Makefile.in
+++ b/ext/xvid/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/xvid
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -228,6 +238,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -245,8 +256,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -275,8 +284,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -324,11 +331,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -512,6 +522,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -590,7 +601,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -630,6 +646,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -761,7 +778,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/xvid/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/xvid/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1086,6 +1102,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/ext/zbar/Makefile.in b/ext/zbar/Makefile.in
index 03ad90c..c0ee679 100644
--- a/ext/zbar/Makefile.in
+++ b/ext/zbar/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/zbar
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -228,6 +238,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -245,8 +256,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -275,8 +284,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -324,11 +331,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -512,6 +522,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -590,7 +601,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -630,6 +646,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -761,7 +778,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/zbar/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/zbar/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1070,6 +1086,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst-libs/Makefile.in b/gst-libs/Makefile.in
index cc789e9..5a5dfb9 100644
--- a/gst-libs/Makefile.in
+++ b/gst-libs/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -14,7 +14,17 @@
 
 @SET_MAKE@
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -79,7 +89,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst-libs
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
 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 \
@@ -117,6 +126,7 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -176,6 +186,7 @@
 ETAGS = etags
 CTAGS = ctags
 DIST_SUBDIRS = $(SUBDIRS)
+am__DIST_COMMON = $(srcdir)/Makefile.in
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 am__relativize = \
   dir0=`pwd`; \
@@ -218,8 +229,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -248,8 +257,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -297,11 +304,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -485,6 +495,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -563,7 +574,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -603,6 +619,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -727,7 +744,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst-libs/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst-libs/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1022,6 +1038,8 @@
 	mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
 	ps ps-am tags tags-am uninstall uninstall-am
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst-libs/gst/Makefile.in b/gst-libs/gst/Makefile.in
index ba6cd3e..8cdcc8d 100644
--- a/gst-libs/gst/Makefile.in
+++ b/gst-libs/gst/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -15,7 +15,17 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -80,8 +90,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst-libs/gst
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(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 \
@@ -119,6 +127,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -178,6 +188,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 am__relativize = \
   dir0=`pwd`; \
@@ -220,8 +231,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -250,8 +259,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -299,11 +306,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -487,6 +497,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -565,7 +576,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -605,6 +621,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -742,7 +759,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst-libs/gst/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst-libs/gst/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1037,6 +1053,8 @@
 	mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
 	ps ps-am tags tags-am uninstall uninstall-am
 
+.PRECIOUS: Makefile
+
 
 #dependencies
 video: base
diff --git a/gst-libs/gst/adaptivedemux/Makefile.in b/gst-libs/gst/adaptivedemux/Makefile.in
index 5c4da16..c23b356 100644
--- a/gst-libs/gst/adaptivedemux/Makefile.in
+++ b/gst-libs/gst/adaptivedemux/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst-libs/gst/adaptivedemux
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -231,6 +241,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -248,8 +259,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -278,8 +287,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -327,11 +334,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -515,6 +525,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -593,7 +604,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -633,6 +649,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -775,7 +792,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst-libs/gst/adaptivedemux/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst-libs/gst/adaptivedemux/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1084,6 +1100,8 @@
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
 	tags tags-am uninstall uninstall-am uninstall-libLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst-libs/gst/adaptivedemux/gstadaptivedemux.c b/gst-libs/gst/adaptivedemux/gstadaptivedemux.c
index 28a0808..249eae6 100644
--- a/gst-libs/gst/adaptivedemux/gstadaptivedemux.c
+++ b/gst-libs/gst/adaptivedemux/gstadaptivedemux.c
@@ -122,6 +122,7 @@
   gint64 next_update;
 
   gboolean exposing;
+  guint32 segment_seqnum;
 };
 
 static GstBinClass *parent_class = NULL;
@@ -332,6 +333,9 @@
   demux->priv->input_adapter = gst_adapter_new ();
   demux->downloader = gst_uri_downloader_new ();
   demux->stream_struct_size = sizeof (GstAdaptiveDemuxStream);
+  demux->priv->segment_seqnum = gst_util_seqnum_next ();
+  demux->have_group_id = FALSE;
+  demux->group_id = G_MAXUINT;
 
   gst_segment_init (&demux->segment, GST_FORMAT_TIME);
 
@@ -592,6 +596,7 @@
   demux->have_group_id = FALSE;
   demux->group_id = G_MAXUINT;
   demux->priv->exposing = FALSE;
+  demux->priv->segment_seqnum = gst_util_seqnum_next ();
 }
 
 static void
@@ -762,14 +767,19 @@
 
     offset = gst_adaptive_demux_stream_get_presentation_offset (demux, stream);
     stream->segment = demux->segment;
-    stream->segment.start = stream->segment.position = stream->segment.time =
-        stream->fragment.timestamp + offset;
 
-    stream->segment.base =
-        gst_segment_to_running_time (&demux->segment, GST_FORMAT_TIME,
-        stream->segment.start);
+    if (first_segment)
+      demux->segment.start = demux->segment.position = demux->segment.time =
+          stream->fragment.timestamp;
+    stream->segment.start += offset;
+
+    if (first_segment)
+      stream->segment.base =
+          gst_segment_to_running_time (&stream->segment, GST_FORMAT_TIME,
+          stream->segment.start);
 
     stream->pending_segment = gst_event_new_segment (&stream->segment);
+    gst_event_set_seqnum (stream->pending_segment, demux->priv->segment_seqnum);
   }
 
   gst_element_no_more_pads (GST_ELEMENT_CAST (demux));
@@ -867,6 +877,11 @@
     stream->pending_segment = NULL;
   }
 
+  if (stream->pending_events) {
+    g_list_free_full (stream->pending_events, (GDestroyNotify) gst_event_unref);
+    stream->pending_events = NULL;
+  }
+
   if (stream->src_srcpad) {
     gst_object_unref (stream->src_srcpad);
     stream->src_srcpad = NULL;
@@ -940,7 +955,6 @@
       GstSeekType start_type, stop_type;
       gint64 start, stop;
       guint32 seqnum;
-      GList *iter;
       gboolean update;
       gboolean ret = TRUE;
       GstSegment oldsegment;
@@ -1005,20 +1019,11 @@
       GST_MANIFEST_LOCK (demux);
       ret = demux_class->seek (demux, event);
 
-      if (ret) {
-        GstEvent *seg_evt;
-
-        seg_evt = gst_event_new_segment (&demux->segment);
-        gst_event_set_seqnum (seg_evt, seqnum);
-        for (iter = demux->streams; iter; iter = g_list_next (iter)) {
-          GstAdaptiveDemuxStream *stream = iter->data;
-
-          gst_event_replace (&stream->pending_segment, seg_evt);
-        }
-        gst_event_unref (seg_evt);
-      } else {
+      if (!ret) {
         /* Is there anything else we can do if it fails? */
         gst_segment_copy_into (&oldsegment, &demux->segment);
+      } else {
+        demux->priv->segment_seqnum = seqnum;
       }
 
       if (flags & GST_SEEK_FLAG_FLUSH) {
@@ -1029,8 +1034,26 @@
         gst_event_set_seqnum (fevent, seqnum);
         gst_adaptive_demux_push_src_event (demux, fevent);
       }
+
       if (demux->next_streams) {
-        gst_adaptive_demux_expose_streams (demux, TRUE);
+        gst_adaptive_demux_expose_streams (demux, FALSE);
+      } else {
+        GList *iter;
+
+        for (iter = demux->streams; iter; iter = g_list_next (iter)) {
+          GstAdaptiveDemuxStream *stream = iter->data;
+          GstEvent *seg_evt;
+          GstClockTime offset;
+
+          stream->segment = demux->segment;
+          offset =
+              gst_adaptive_demux_stream_get_presentation_offset (demux, stream);
+          stream->segment.start += offset;
+          seg_evt = gst_event_new_segment (&stream->segment);
+          gst_event_set_seqnum (seg_evt, demux->priv->segment_seqnum);
+          gst_event_replace (&stream->pending_segment, seg_evt);
+          gst_event_unref (seg_evt);
+        }
       }
 
       /* Restart the demux */
@@ -1120,7 +1143,7 @@
         }
       }
       GST_MANIFEST_UNLOCK (demux);
-      GST_DEBUG_OBJECT (demux, "GST_QUERY_DURATION returns %s with duration %"
+      GST_LOG_OBJECT (demux, "GST_QUERY_DURATION returns %s with duration %"
           GST_TIME_FORMAT, ret ? "TRUE" : "FALSE", GST_TIME_ARGS (duration));
       break;
     }
@@ -1278,6 +1301,13 @@
   stream->pending_tags = tags;
 }
 
+void
+gst_adaptive_demux_stream_queue_event (GstAdaptiveDemuxStream * stream,
+    GstEvent * event)
+{
+  stream->pending_events = g_list_append (stream->pending_events, event);
+}
+
 static guint64
 _update_average_bitrate (GstAdaptiveDemux * demux,
     GstAdaptiveDemuxStream * stream, guint64 new_bitrate)
@@ -1429,6 +1459,15 @@
     gst_pad_push_event (stream->pad, gst_event_new_tag (stream->pending_tags));
     stream->pending_tags = NULL;
   }
+  while (stream->pending_events != NULL) {
+    GstEvent *event = stream->pending_events->data;
+
+    if (!gst_pad_push_event (stream->pad, event))
+      GST_ERROR_OBJECT (stream->pad, "Failed to send pending event");
+
+    stream->pending_events =
+        g_list_delete_link (stream->pending_events, stream->pending_events);
+  }
 
   ret = gst_pad_push (stream->pad, buffer);
   GST_LOG_OBJECT (stream->pad, "Push result: %d %s", ret,
@@ -1606,6 +1645,9 @@
       break;
     }
 
+    GST_DEBUG_OBJECT (demux, "No fragment left but live playlist, wait a bit");
+    g_cond_wait (&demux->manifest_cond, GST_MANIFEST_GET_LOCK (demux));
+
     /* Got a new fragment or not live anymore? */
     if (gst_adaptive_demux_stream_has_next_fragment (demux, stream)) {
       GST_DEBUG_OBJECT (demux, "new fragment available, "
@@ -1620,9 +1662,6 @@
       ret = FALSE;
       break;
     }
-
-    GST_DEBUG_OBJECT (demux, "No fragment left but live playlist, wait a bit");
-    g_cond_wait (&demux->manifest_cond, GST_MANIFEST_GET_LOCK (demux));
   }
   GST_DEBUG_OBJECT (demux, "Retrying now");
   return ret;
@@ -1913,12 +1952,22 @@
         stream->last_ret, gst_flow_get_name (stream->last_ret));
     if (ret != GST_FLOW_OK) {
       /* TODO check if we are truly stoping */
-      if (ret != GST_FLOW_ERROR && gst_adaptive_demux_is_live (demux)) {
+      if (ret == GST_FLOW_CUSTOM_ERROR && gst_adaptive_demux_is_live (demux)) {
         if (++stream->download_error_count <= MAX_DOWNLOAD_ERROR_COUNT) {
           /* looks like there is no way of knowing when a live stream has ended
            * Have to assume we are falling behind and cause a manifest reload */
+          GST_DEBUG_OBJECT (stream->pad,
+              "Converting error of live stream to EOS");
           return GST_FLOW_EOS;
         }
+      } else if (ret == GST_FLOW_CUSTOM_ERROR
+          && !gst_adaptive_demux_stream_has_next_fragment (demux, stream)) {
+        /* If this is the last fragment, consider failures EOS and not actual
+         * errors. Due to rounding errors in the durations, the last fragment
+         * might not actually exist */
+        GST_DEBUG_OBJECT (stream->pad,
+            "Converting error for last fragment to EOS");
+        return GST_FLOW_EOS;
       }
     }
   }
@@ -1987,7 +2036,7 @@
   if (G_UNLIKELY (stream->restart_download)) {
     GstSegment segment;
     GstEvent *seg_event;
-    GstClockTime cur, ts;
+    GstClockTime cur, ts, offset;
     gint64 pos;
 
     GST_DEBUG_OBJECT (stream->pad,
@@ -2034,7 +2083,11 @@
         segment.position = ts;
       }
     }
-    seg_event = gst_event_new_segment (&segment);
+    stream->segment = segment;
+    offset = gst_adaptive_demux_stream_get_presentation_offset (demux, stream);
+    stream->segment.start += offset;
+    seg_event = gst_event_new_segment (&stream->segment);
+    gst_event_set_seqnum (seg_event, demux->priv->segment_seqnum);
     GST_DEBUG_OBJECT (stream->pad, "Sending restart segment: %"
         GST_PTR_FORMAT, seg_event);
     gst_pad_push_event (stream->pad, seg_event);
diff --git a/gst-libs/gst/adaptivedemux/gstadaptivedemux.h b/gst-libs/gst/adaptivedemux/gstadaptivedemux.h
index 9303a84..dc8fabe 100644
--- a/gst-libs/gst/adaptivedemux/gstadaptivedemux.h
+++ b/gst-libs/gst/adaptivedemux/gstadaptivedemux.h
@@ -118,6 +118,7 @@
   GstEvent *pending_segment;
   GstTagList *pending_tags;
   gboolean need_header;
+  GList *pending_events;
 
   GstFlowReturn last_ret;
   GError *last_error;
@@ -427,6 +428,9 @@
 GstFlowReturn
 gst_adaptive_demux_stream_advance_fragment (GstAdaptiveDemux * demux,
     GstAdaptiveDemuxStream * stream, GstClockTime duration);
+void gst_adaptive_demux_stream_queue_event (GstAdaptiveDemuxStream * stream,
+    GstEvent * event);
+
 GstFlowReturn
 gst_adaptive_demux_stream_advance_fragment_unlocked (GstAdaptiveDemux * demux,
     GstAdaptiveDemuxStream * stream, GstClockTime duration);
diff --git a/gst-libs/gst/base/Makefile.in b/gst-libs/gst/base/Makefile.in
index e26202d..8de3f18 100644
--- a/gst-libs/gst/base/Makefile.in
+++ b/gst-libs/gst/base/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst-libs/gst/base
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -229,6 +239,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -246,8 +257,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -276,8 +285,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -325,11 +332,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -513,6 +523,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -591,7 +602,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -631,6 +647,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -768,7 +785,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst-libs/gst/base/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst-libs/gst/base/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1076,6 +1092,8 @@
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
 	tags tags-am uninstall uninstall-am uninstall-libLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst-libs/gst/base/gstaggregator.c b/gst-libs/gst/base/gstaggregator.c
index 095be73..a0a8776 100644
--- a/gst-libs/gst/base/gstaggregator.c
+++ b/gst-libs/gst/base/gstaggregator.c
@@ -71,6 +71,33 @@
 
 #include "gstaggregator.h"
 
+typedef enum
+{
+  GST_AGGREGATOR_START_TIME_SELECTION_ZERO,
+  GST_AGGREGATOR_START_TIME_SELECTION_FIRST,
+  GST_AGGREGATOR_START_TIME_SELECTION_SET
+} GstAggregatorStartTimeSelection;
+
+static GType
+gst_aggregator_start_time_selection_get_type (void)
+{
+  static GType gtype = 0;
+
+  if (gtype == 0) {
+    static const GEnumValue values[] = {
+      {GST_AGGREGATOR_START_TIME_SELECTION_ZERO,
+          "Start at 0 running time (default)", "zero"},
+      {GST_AGGREGATOR_START_TIME_SELECTION_FIRST,
+          "Start at first observed input running time", "first"},
+      {GST_AGGREGATOR_START_TIME_SELECTION_SET,
+          "Set start time with start-time property", "set"},
+      {0, NULL, NULL}
+    };
+
+    gtype = g_enum_register_static ("GstAggregatorStartTimeSelection", values);
+  }
+  return gtype;
+}
 
 /*  Might become API */
 static void gst_aggregator_merge_tags (GstAggregator * aggregator,
@@ -188,7 +215,13 @@
   gboolean pending_flush_stop;
   gboolean pending_eos;
 
-  GstBuffer *buffer;
+  GQueue buffers;
+  GstClockTime head_position;
+  GstClockTime tail_position;
+  GstClockTime head_time;
+  GstClockTime tail_time;
+  GstClockTime time_level;
+
   gboolean eos;
 
   GMutex lock;
@@ -208,6 +241,15 @@
   aggpad->priv->pending_eos = FALSE;
   aggpad->priv->eos = FALSE;
   aggpad->priv->flow_return = GST_FLOW_OK;
+  GST_OBJECT_LOCK (aggpad);
+  gst_segment_init (&aggpad->segment, GST_FORMAT_UNDEFINED);
+  gst_segment_init (&aggpad->clip_segment, GST_FORMAT_UNDEFINED);
+  GST_OBJECT_UNLOCK (aggpad);
+  aggpad->priv->head_position = GST_CLOCK_TIME_NONE;
+  aggpad->priv->tail_position = GST_CLOCK_TIME_NONE;
+  aggpad->priv->head_time = GST_CLOCK_TIME_NONE;
+  aggpad->priv->tail_time = GST_CLOCK_TIME_NONE;
+  aggpad->priv->time_level = 0;
   PAD_UNLOCK (aggpad);
 
   if (klass->flush)
@@ -255,8 +297,12 @@
   GMutex src_lock;
   GCond src_cond;
 
+  gboolean first_buffer;
+  GstAggregatorStartTimeSelection start_time_selection;
+  GstClockTime start_time;
+
   /* properties */
-  gint64 latency;
+  gint64 latency;               /* protected by both src_lock and all pad locks */
 };
 
 typedef struct
@@ -268,15 +314,22 @@
   gboolean one_actually_seeked;
 } EventData;
 
-#define DEFAULT_LATENCY        0
+#define DEFAULT_LATENCY              0
+#define DEFAULT_START_TIME_SELECTION GST_AGGREGATOR_START_TIME_SELECTION_ZERO
+#define DEFAULT_START_TIME           (-1)
 
 enum
 {
   PROP_0,
   PROP_LATENCY,
+  PROP_START_TIME_SELECTION,
+  PROP_START_TIME,
   PROP_LAST
 };
 
+static GstFlowReturn gst_aggregator_pad_chain_internal (GstAggregator * self,
+    GstAggregatorPad * aggpad, GstBuffer * buffer, gboolean head);
+
 /**
  * gst_aggregator_iterate_sinkpads:
  * @self: The #GstAggregator
@@ -357,6 +410,12 @@
 }
 
 static gboolean
+gst_aggregator_pad_queue_is_empty (GstAggregatorPad * pad)
+{
+  return (g_queue_peek_tail (&pad->priv->buffers) == NULL);
+}
+
+static gboolean
 gst_aggregator_check_pads_ready (GstAggregator * self)
 {
   GstAggregatorPad *pad;
@@ -374,7 +433,16 @@
     pad = l->data;
 
     PAD_LOCK (pad);
-    if (pad->priv->buffer == NULL && !pad->priv->eos) {
+
+    /* In live mode, having a single pad with buffers is enough to
+     * generate a start time from it. In non-live mode all pads need
+     * to have a buffer
+     */
+    if (self->priv->peer_latency_live &&
+        !gst_aggregator_pad_queue_is_empty (pad))
+      self->priv->first_buffer = FALSE;
+
+    if (gst_aggregator_pad_queue_is_empty (pad) && !pad->priv->eos) {
       PAD_UNLOCK (pad);
       goto pad_not_ready;
     }
@@ -382,6 +450,8 @@
 
   }
 
+  self->priv->first_buffer = FALSE;
+
   GST_OBJECT_UNLOCK (self);
   GST_LOG_OBJECT (self, "pads are ready");
   return TRUE;
@@ -407,6 +477,7 @@
   self->priv->send_stream_start = TRUE;
   self->priv->send_segment = TRUE;
   gst_segment_init (&self->segment, GST_FORMAT_TIME);
+  self->priv->first_buffer = TRUE;
   GST_OBJECT_UNLOCK (self);
 }
 
@@ -567,9 +638,19 @@
 
   start = gst_aggregator_get_next_time (self);
 
+  /* If we're not live, or if we use the running time
+   * of the first buffer as start time, we wait until
+   * all pads have buffers.
+   * Otherwise (i.e. if we are live!), we wait on the clock
+   * and if a pad does not have a buffer in time we ignore
+   * that pad.
+   */
   if (!GST_CLOCK_TIME_IS_VALID (latency) ||
       !GST_IS_CLOCK (GST_ELEMENT_CLOCK (self)) ||
-      !GST_CLOCK_TIME_IS_VALID (start)) {
+      !GST_CLOCK_TIME_IS_VALID (start) ||
+      (self->priv->first_buffer
+          && self->priv->start_time_selection ==
+          GST_AGGREGATOR_START_TIME_SELECTION_FIRST)) {
     /* We wake up here when something happened, and below
      * then check if we're ready now. If we return FALSE,
      * we will be directly called again.
@@ -602,7 +683,6 @@
         GST_TIME_ARGS (start), GST_TIME_ARGS (latency),
         GST_TIME_ARGS (gst_clock_get_time (clock)));
 
-
     self->priv->aggregate_id = gst_clock_new_single_shot_id (clock, time);
     gst_object_unref (clock);
     SRC_UNLOCK (self);
@@ -635,16 +715,69 @@
   return res;
 }
 
+static gboolean
+check_events (GstAggregator * self, GstAggregatorPad * pad, gpointer user_data)
+{
+  GstEvent *event = NULL;
+  GstAggregatorClass *klass = NULL;
+  gboolean *processed_event = user_data;
+
+  do {
+    event = NULL;
+
+    PAD_LOCK (pad);
+    if (gst_aggregator_pad_queue_is_empty (pad) && pad->priv->pending_eos) {
+      pad->priv->pending_eos = FALSE;
+      pad->priv->eos = TRUE;
+    }
+    if (GST_IS_EVENT (g_queue_peek_tail (&pad->priv->buffers))) {
+      event = g_queue_pop_tail (&pad->priv->buffers);
+      PAD_BROADCAST_EVENT (pad);
+    }
+    PAD_UNLOCK (pad);
+    if (event) {
+      if (processed_event)
+        *processed_event = TRUE;
+      if (klass == NULL)
+        klass = GST_AGGREGATOR_GET_CLASS (self);
+
+      GST_LOG_OBJECT (pad, "Processing %" GST_PTR_FORMAT, event);
+      klass->sink_event (self, pad, event);
+    }
+  } while (event != NULL);
+
+  return TRUE;
+}
+
 static void
 gst_aggregator_pad_set_flushing (GstAggregatorPad * aggpad,
-    GstFlowReturn flow_return)
+    GstFlowReturn flow_return, gboolean full)
 {
+  GList *item;
+
   PAD_LOCK (aggpad);
   if (flow_return == GST_FLOW_NOT_LINKED)
     aggpad->priv->flow_return = MIN (flow_return, aggpad->priv->flow_return);
   else
     aggpad->priv->flow_return = flow_return;
-  gst_buffer_replace (&aggpad->priv->buffer, NULL);
+
+  item = g_queue_peek_head_link (&aggpad->priv->buffers);
+  while (item) {
+    GList *next = item->next;
+
+    /* In partial flush, we do like the pad, we get rid of non-sticky events
+     * and EOS/SEGMENT.
+     */
+    if (full || GST_IS_BUFFER (item->data) ||
+        GST_EVENT_TYPE (item->data) == GST_EVENT_EOS ||
+        GST_EVENT_TYPE (item->data) == GST_EVENT_SEGMENT ||
+        !GST_EVENT_IS_STICKY (item->data)) {
+      gst_mini_object_unref (item->data);
+      g_queue_delete_link (&aggpad->priv->buffers, item);
+    }
+    item = next;
+  }
+
   PAD_BROADCAST_EVENT (aggpad);
   PAD_UNLOCK (aggpad);
 }
@@ -664,12 +797,18 @@
   GST_LOG_OBJECT (self, "Checking aggregate");
   while (priv->send_eos && priv->running) {
     GstFlowReturn flow_return;
+    gboolean processed_event = FALSE;
+
+    gst_aggregator_iterate_sinkpads (self, check_events, NULL);
 
     if (!gst_aggregator_wait_and_check (self, &timeout))
       continue;
 
-    GST_TRACE_OBJECT (self, "Actually aggregating!");
+    gst_aggregator_iterate_sinkpads (self, check_events, &processed_event);
+    if (processed_event)
+      continue;
 
+    GST_TRACE_OBJECT (self, "Actually aggregating!");
     flow_return = klass->aggregate (self, timeout);
 
     GST_OBJECT_LOCK (self);
@@ -694,7 +833,7 @@
       for (item = GST_ELEMENT (self)->sinkpads; item; item = item->next) {
         GstAggregatorPad *aggpad = GST_AGGREGATOR_PAD (item->data);
 
-        gst_aggregator_pad_set_flushing (aggpad, flow_return);
+        gst_aggregator_pad_set_flushing (aggpad, flow_return, TRUE);
       }
       GST_OBJECT_UNLOCK (self);
       break;
@@ -825,7 +964,7 @@
   GstAggregatorPrivate *priv = self->priv;
   GstAggregatorPadPrivate *padpriv = aggpad->priv;
 
-  gst_aggregator_pad_set_flushing (aggpad, GST_FLOW_FLUSHING);
+  gst_aggregator_pad_set_flushing (aggpad, GST_FLOW_FLUSHING, FALSE);
 
   PAD_FLUSH_LOCK (aggpad);
   PAD_LOCK (aggpad);
@@ -860,10 +999,44 @@
     gst_event_unref (event);
   }
   PAD_FLUSH_UNLOCK (aggpad);
-
-  gst_aggregator_pad_drop_buffer (aggpad);
 }
 
+/* Must be called with the the PAD_LOCK held */
+static void
+update_time_level (GstAggregatorPad * aggpad, gboolean head)
+{
+  if (head) {
+    if (GST_CLOCK_TIME_IS_VALID (aggpad->priv->head_position) &&
+        aggpad->clip_segment.format == GST_FORMAT_TIME)
+      aggpad->priv->head_time =
+          gst_segment_to_running_time (&aggpad->clip_segment,
+          GST_FORMAT_TIME, aggpad->priv->head_position);
+    else
+      aggpad->priv->head_time = GST_CLOCK_TIME_NONE;
+  } else {
+    if (GST_CLOCK_TIME_IS_VALID (aggpad->priv->tail_position) &&
+        aggpad->segment.format == GST_FORMAT_TIME)
+      aggpad->priv->tail_time =
+          gst_segment_to_running_time (&aggpad->segment,
+          GST_FORMAT_TIME, aggpad->priv->tail_position);
+    else
+      aggpad->priv->tail_time = aggpad->priv->head_time;
+  }
+
+  if (aggpad->priv->head_time == GST_CLOCK_TIME_NONE ||
+      aggpad->priv->tail_time == GST_CLOCK_TIME_NONE) {
+    aggpad->priv->time_level = 0;
+    return;
+  }
+
+  if (aggpad->priv->tail_time > aggpad->priv->head_time)
+    aggpad->priv->time_level = 0;
+  else
+    aggpad->priv->time_level = aggpad->priv->head_time -
+        aggpad->priv->tail_time;
+}
+
+
 /* GstAggregator vmethods default implementations */
 static gboolean
 gst_aggregator_default_sink_event (GstAggregator * self,
@@ -924,7 +1097,7 @@
        */
       SRC_LOCK (self);
       PAD_LOCK (aggpad);
-      if (!aggpad->priv->buffer) {
+      if (gst_aggregator_pad_queue_is_empty (aggpad)) {
         aggpad->priv->eos = TRUE;
       } else {
         aggpad->priv->pending_eos = TRUE;
@@ -937,9 +1110,12 @@
     }
     case GST_EVENT_SEGMENT:
     {
+      PAD_LOCK (aggpad);
       GST_OBJECT_LOCK (aggpad);
       gst_event_copy_segment (event, &aggpad->segment);
+      update_time_level (aggpad, FALSE);
       GST_OBJECT_UNLOCK (aggpad);
+      PAD_UNLOCK (aggpad);
 
       GST_OBJECT_LOCK (self);
       self->priv->seqnum = gst_event_get_seqnum (event);
@@ -952,19 +1128,40 @@
     }
     case GST_EVENT_GAP:
     {
-      GstClockTime pts;
+      GstClockTime pts, endpts;
       GstClockTime duration;
       GstBuffer *gapbuf;
 
       gst_event_parse_gap (event, &pts, &duration);
       gapbuf = gst_buffer_new ();
 
+      if (GST_CLOCK_TIME_IS_VALID (duration))
+        endpts = pts + duration;
+      else
+        endpts = GST_CLOCK_TIME_NONE;
+
+      GST_OBJECT_LOCK (aggpad);
+      res = gst_segment_clip (&aggpad->segment, GST_FORMAT_TIME, pts, endpts,
+          &pts, &endpts);
+      GST_OBJECT_UNLOCK (aggpad);
+
+      if (!res) {
+        GST_WARNING_OBJECT (self, "GAP event outside segment, dropping");
+        goto eat;
+      }
+
+      if (GST_CLOCK_TIME_IS_VALID (endpts) && GST_CLOCK_TIME_IS_VALID (pts))
+        duration = endpts - pts;
+      else
+        duration = GST_CLOCK_TIME_NONE;
+
       GST_BUFFER_PTS (gapbuf) = pts;
       GST_BUFFER_DURATION (gapbuf) = duration;
       GST_BUFFER_FLAG_SET (gapbuf, GST_BUFFER_FLAG_GAP);
       GST_BUFFER_FLAG_SET (gapbuf, GST_BUFFER_FLAG_DROPPABLE);
 
-      if (gst_pad_chain (pad, gapbuf) != GST_FLOW_OK) {
+      if (gst_aggregator_pad_chain_internal (self, aggpad, gapbuf, FALSE) !=
+          GST_FLOW_OK) {
         GST_WARNING_OBJECT (self, "Failed to chain gap buffer");
         res = FALSE;
       }
@@ -1096,9 +1293,10 @@
   GST_INFO_OBJECT (pad, "Removing pad");
 
   SRC_LOCK (self);
-  gst_aggregator_pad_set_flushing (aggpad, GST_FLOW_FLUSHING);
+  gst_aggregator_pad_set_flushing (aggpad, GST_FLOW_FLUSHING, TRUE);
   gst_element_remove_pad (element, pad);
 
+  self->priv->has_peer_latency = FALSE;
   SRC_BROADCAST (self);
   SRC_UNLOCK (self);
 }
@@ -1143,6 +1341,7 @@
   }
 
   GST_DEBUG_OBJECT (element, "Adding pad %s", GST_PAD_NAME (agg_pad));
+  self->priv->has_peer_latency = FALSE;
 
   if (priv->running)
     gst_pad_set_active (GST_PAD (agg_pad), TRUE);
@@ -1196,7 +1395,7 @@
   min += self->priv->sub_latency_min;
   if (GST_CLOCK_TIME_IS_VALID (self->priv->sub_latency_max)
       && GST_CLOCK_TIME_IS_VALID (max))
-    max += self->priv->sub_latency_max;
+    max += self->priv->sub_latency_max + our_latency;
   else
     max = GST_CLOCK_TIME_NONE;
 
@@ -1461,6 +1660,9 @@
 
   gst_segment_do_seek (&self->segment, rate, fmt, flags, start_type, start,
       stop_type, stop, NULL);
+
+  /* Seeking sets a position */
+  self->priv->first_buffer = FALSE;
   GST_OBJECT_UNLOCK (self);
 
   /* forward the seek upstream */
@@ -1601,41 +1803,36 @@
 gst_aggregator_set_latency_property (GstAggregator * self, gint64 latency)
 {
   gboolean changed;
-  GstClockTime min, max;
 
   g_return_if_fail (GST_IS_AGGREGATOR (self));
   g_return_if_fail (GST_CLOCK_TIME_IS_VALID (latency));
 
   SRC_LOCK (self);
-  if (self->priv->peer_latency_live) {
-    min = self->priv->peer_latency_min;
-    max = self->priv->peer_latency_max;
-    /* add our own */
-    min += latency;
-    min += self->priv->sub_latency_min;
-    if (GST_CLOCK_TIME_IS_VALID (self->priv->sub_latency_max)
-        && GST_CLOCK_TIME_IS_VALID (max))
-      max += self->priv->sub_latency_max;
-    else
-      max = GST_CLOCK_TIME_NONE;
+  changed = (self->priv->latency != latency);
 
-    if (GST_CLOCK_TIME_IS_VALID (max) && min > max) {
-      GST_ELEMENT_WARNING (self, CORE, NEGOTIATION,
-          ("%s", "Latency too big"),
-          ("The requested latency value is too big for the latency in the "
-              "current pipeline.  Limiting to %" G_GINT64_FORMAT, max));
-      /* FIXME: This could in theory become negative, but in
-       * that case all is lost anyway */
-      latency -= min - max;
-      /* FIXME: shouldn't we g_object_notify() the change here? */
+  if (changed) {
+    GList *item;
+
+    GST_OBJECT_LOCK (self);
+    /* First lock all the pads */
+    for (item = GST_ELEMENT_CAST (self)->sinkpads; item; item = item->next) {
+      GstAggregatorPad *aggpad = GST_AGGREGATOR_PAD (item->data);
+      PAD_LOCK (aggpad);
     }
+
+    self->priv->latency = latency;
+
+    SRC_BROADCAST (self);
+
+    /* Now wake up the pads */
+    for (item = GST_ELEMENT_CAST (self)->sinkpads; item; item = item->next) {
+      GstAggregatorPad *aggpad = GST_AGGREGATOR_PAD (item->data);
+      PAD_BROADCAST_EVENT (aggpad);
+      PAD_UNLOCK (aggpad);
+    }
+    GST_OBJECT_UNLOCK (self);
   }
 
-  changed = (self->priv->latency != latency);
-  self->priv->latency = latency;
-
-  if (changed)
-    SRC_BROADCAST (self);
   SRC_UNLOCK (self);
 
   if (changed)
@@ -1678,6 +1875,12 @@
     case PROP_LATENCY:
       gst_aggregator_set_latency_property (agg, g_value_get_int64 (value));
       break;
+    case PROP_START_TIME_SELECTION:
+      agg->priv->start_time_selection = g_value_get_enum (value);
+      break;
+    case PROP_START_TIME:
+      agg->priv->start_time = g_value_get_uint64 (value);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -1694,6 +1897,12 @@
     case PROP_LATENCY:
       g_value_set_int64 (value, gst_aggregator_get_latency_property (agg));
       break;
+    case PROP_START_TIME_SELECTION:
+      g_value_set_enum (value, agg->priv->start_time_selection);
+      break;
+    case PROP_START_TIME:
+      g_value_set_uint64 (value, agg->priv->start_time);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -1741,6 +1950,19 @@
           (G_MAXLONG == G_MAXINT64) ? G_MAXINT64 : (G_MAXLONG * GST_SECOND - 1),
           DEFAULT_LATENCY, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
+  g_object_class_install_property (gobject_class, PROP_START_TIME_SELECTION,
+      g_param_spec_enum ("start-time-selection", "Start Time Selection",
+          "Decides which start time is output",
+          gst_aggregator_start_time_selection_get_type (),
+          DEFAULT_START_TIME_SELECTION,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  g_object_class_install_property (gobject_class, PROP_START_TIME,
+      g_param_spec_uint64 ("start-time", "Start Time",
+          "Start time to use if start-time-selection=set", 0,
+          G_MAXUINT64,
+          DEFAULT_START_TIME, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
   GST_DEBUG_REGISTER_FUNCPTR (gst_aggregator_stop_pad);
 }
 
@@ -1783,6 +2005,8 @@
   gst_element_add_pad (GST_ELEMENT (self), self->srcpad);
 
   self->priv->latency = DEFAULT_LATENCY;
+  self->priv->start_time_selection = DEFAULT_START_TIME_SELECTION;
+  self->priv->start_time = DEFAULT_START_TIME;
 
   g_mutex_init (&self->priv->src_lock);
   g_cond_init (&self->priv->src_cond);
@@ -1816,14 +2040,60 @@
   return type;
 }
 
+/* Must be called with PAD lock held */
+static gboolean
+gst_aggregator_pad_has_space (GstAggregator * self, GstAggregatorPad * aggpad)
+{
+  /* Empty queue always has space */
+  if (g_queue_get_length (&aggpad->priv->buffers) == 0)
+    return TRUE;
+
+  /* zero latency, if there is a buffer, it's full */
+  if (self->priv->latency == 0)
+    return FALSE;
+
+  /* Allow no more buffers than the latency */
+  return (aggpad->priv->time_level <= self->priv->latency);
+}
+
+/* Must be called with the PAD_LOCK held */
+static void
+apply_buffer (GstAggregatorPad * aggpad, GstBuffer * buffer, gboolean head)
+{
+  GstClockTime timestamp;
+
+  if (GST_BUFFER_DTS_IS_VALID (buffer))
+    timestamp = GST_BUFFER_DTS (buffer);
+  else
+    timestamp = GST_BUFFER_PTS (buffer);
+
+  if (timestamp == GST_CLOCK_TIME_NONE) {
+    if (head)
+      timestamp = aggpad->priv->head_position;
+    else
+      timestamp = aggpad->priv->tail_position;
+  }
+
+  /* add duration */
+  if (GST_BUFFER_DURATION_IS_VALID (buffer))
+    timestamp += GST_BUFFER_DURATION (buffer);
+
+  if (head)
+    aggpad->priv->head_position = timestamp;
+  else
+    aggpad->priv->tail_position = timestamp;
+
+  update_time_level (aggpad, head);
+}
+
 static GstFlowReturn
-gst_aggregator_pad_chain (GstPad * pad, GstObject * object, GstBuffer * buffer)
+gst_aggregator_pad_chain_internal (GstAggregator * self,
+    GstAggregatorPad * aggpad, GstBuffer * buffer, gboolean head)
 {
   GstBuffer *actual_buf = buffer;
-  GstAggregator *self = GST_AGGREGATOR (object);
-  GstAggregatorPad *aggpad = GST_AGGREGATOR_PAD (pad);
-  GstAggregatorClass *aggclass = GST_AGGREGATOR_GET_CLASS (object);
+  GstAggregatorClass *aggclass = GST_AGGREGATOR_GET_CLASS (self);
   GstFlowReturn flow_return;
+  GstClockTime buf_pts;
 
   GST_DEBUG_OBJECT (aggpad, "Start chaining a buffer %" GST_PTR_FORMAT, buffer);
 
@@ -1837,33 +2107,102 @@
   if (aggpad->priv->pending_eos == TRUE)
     goto eos;
 
-  while (aggpad->priv->buffer && aggpad->priv->flow_return == GST_FLOW_OK)
-    PAD_WAIT_EVENT (aggpad);
-
   flow_return = aggpad->priv->flow_return;
   if (flow_return != GST_FLOW_OK)
     goto flushing;
 
   PAD_UNLOCK (aggpad);
 
-  if (aggclass->clip) {
+  if (aggclass->clip && head) {
     aggclass->clip (self, aggpad, buffer, &actual_buf);
   }
 
-  SRC_LOCK (self);
-  PAD_LOCK (aggpad);
-  if (aggpad->priv->buffer)
-    gst_buffer_unref (aggpad->priv->buffer);
-  aggpad->priv->buffer = actual_buf;
+  if (actual_buf == NULL) {
+    GST_LOG_OBJECT (actual_buf, "Buffer dropped by clip function");
+    goto done;
+  }
 
-  flow_return = aggpad->priv->flow_return;
+  buf_pts = GST_BUFFER_PTS (actual_buf);
+
+  for (;;) {
+    SRC_LOCK (self);
+    PAD_LOCK (aggpad);
+    if (gst_aggregator_pad_has_space (self, aggpad)
+        && aggpad->priv->flow_return == GST_FLOW_OK) {
+      if (head)
+        g_queue_push_head (&aggpad->priv->buffers, actual_buf);
+      else
+        g_queue_push_tail (&aggpad->priv->buffers, actual_buf);
+      apply_buffer (aggpad, actual_buf, head);
+      actual_buf = buffer = NULL;
+      SRC_BROADCAST (self);
+      break;
+    }
+
+    flow_return = aggpad->priv->flow_return;
+    if (flow_return != GST_FLOW_OK) {
+      SRC_UNLOCK (self);
+      goto flushing;
+    }
+    GST_DEBUG_OBJECT (aggpad, "Waiting for buffer to be consumed");
+    SRC_UNLOCK (self);
+    PAD_WAIT_EVENT (aggpad);
+
+    PAD_UNLOCK (aggpad);
+  }
+
+  if (self->priv->first_buffer) {
+    GstClockTime start_time;
+
+    switch (self->priv->start_time_selection) {
+      case GST_AGGREGATOR_START_TIME_SELECTION_ZERO:
+      default:
+        start_time = 0;
+        break;
+      case GST_AGGREGATOR_START_TIME_SELECTION_FIRST:
+        if (aggpad->segment.format == GST_FORMAT_TIME) {
+          start_time = buf_pts;
+          if (start_time != -1) {
+            start_time = MAX (start_time, aggpad->segment.start);
+            start_time =
+                gst_segment_to_running_time (&aggpad->segment, GST_FORMAT_TIME,
+                start_time);
+          }
+        } else {
+          start_time = 0;
+          GST_WARNING_OBJECT (aggpad,
+              "Ignoring request of selecting the first start time "
+              "as the segment is a %s segment instead of a time segment",
+              gst_format_get_name (aggpad->segment.format));
+        }
+        break;
+      case GST_AGGREGATOR_START_TIME_SELECTION_SET:
+        start_time = self->priv->start_time;
+        if (start_time == -1)
+          start_time = 0;
+        break;
+    }
+
+    if (start_time != -1) {
+      if (self->segment.position == -1)
+        self->segment.position = start_time;
+      else
+        self->segment.position = MIN (start_time, self->segment.position);
+      self->segment.start = MIN (start_time, self->segment.start);
+      self->segment.time = MIN (start_time, self->segment.time);
+
+      GST_DEBUG_OBJECT (self, "Selecting start time %" GST_TIME_FORMAT,
+          GST_TIME_ARGS (start_time));
+    }
+  }
 
   PAD_UNLOCK (aggpad);
-  PAD_FLUSH_UNLOCK (aggpad);
-
-  SRC_BROADCAST (self);
   SRC_UNLOCK (self);
 
+done:
+
+  PAD_FLUSH_UNLOCK (aggpad);
+
   GST_DEBUG_OBJECT (aggpad, "Done chaining");
 
   return flow_return;
@@ -1872,9 +2211,10 @@
   PAD_UNLOCK (aggpad);
   PAD_FLUSH_UNLOCK (aggpad);
 
-  gst_buffer_unref (buffer);
   GST_DEBUG_OBJECT (aggpad, "Pad is %s, dropping buffer",
       gst_flow_get_name (flow_return));
+  if (buffer)
+    gst_buffer_unref (buffer);
 
   return flow_return;
 
@@ -1883,11 +2223,18 @@
   PAD_FLUSH_UNLOCK (aggpad);
 
   gst_buffer_unref (buffer);
-  GST_DEBUG_OBJECT (pad, "We are EOS already...");
+  GST_DEBUG_OBJECT (aggpad, "We are EOS already...");
 
   return GST_FLOW_EOS;
 }
 
+static GstFlowReturn
+gst_aggregator_pad_chain (GstPad * pad, GstObject * object, GstBuffer * buffer)
+{
+  return gst_aggregator_pad_chain_internal (GST_AGGREGATOR_CAST (object),
+      GST_AGGREGATOR_PAD_CAST (pad), buffer, TRUE);
+}
+
 static gboolean
 gst_aggregator_pad_query_func (GstPad * pad, GstObject * parent,
     GstQuery * query)
@@ -1898,8 +2245,11 @@
   if (GST_QUERY_IS_SERIALIZED (query)) {
     PAD_LOCK (aggpad);
 
-    while (aggpad->priv->buffer && aggpad->priv->flow_return == GST_FLOW_OK)
+    while (!gst_aggregator_pad_queue_is_empty (aggpad)
+        && aggpad->priv->flow_return == GST_FLOW_OK) {
+      GST_DEBUG_OBJECT (aggpad, "Waiting for buffer to be consumed");
       PAD_WAIT_EVENT (aggpad);
+    }
 
     if (aggpad->priv->flow_return != GST_FLOW_OK)
       goto flushing;
@@ -1921,31 +2271,49 @@
 gst_aggregator_pad_event_func (GstPad * pad, GstObject * parent,
     GstEvent * event)
 {
+  GstAggregator *self = GST_AGGREGATOR (parent);
   GstAggregatorPad *aggpad = GST_AGGREGATOR_PAD (pad);
   GstAggregatorClass *klass = GST_AGGREGATOR_GET_CLASS (parent);
 
   if (GST_EVENT_IS_SERIALIZED (event) && GST_EVENT_TYPE (event) != GST_EVENT_EOS
-      && GST_EVENT_TYPE (event) != GST_EVENT_SEGMENT_DONE) {
+      /* && GST_EVENT_TYPE (event) != GST_EVENT_SEGMENT_DONE */ ) {
+    SRC_LOCK (self);
     PAD_LOCK (aggpad);
 
-
-    while (aggpad->priv->buffer && aggpad->priv->flow_return == GST_FLOW_OK)
-      PAD_WAIT_EVENT (aggpad);
-
     if (aggpad->priv->flow_return != GST_FLOW_OK
         && GST_EVENT_TYPE (event) != GST_EVENT_FLUSH_STOP)
       goto flushing;
 
+    if (GST_EVENT_TYPE (event) == GST_EVENT_SEGMENT) {
+      GST_OBJECT_LOCK (aggpad);
+      gst_event_copy_segment (event, &aggpad->clip_segment);
+      aggpad->priv->head_position = aggpad->clip_segment.position;
+      update_time_level (aggpad, TRUE);
+      GST_OBJECT_UNLOCK (aggpad);
+    }
+
+    if (!gst_aggregator_pad_queue_is_empty (aggpad) &&
+        GST_EVENT_TYPE (event) != GST_EVENT_FLUSH_STOP) {
+      GST_DEBUG_OBJECT (aggpad, "Store event in queue: %" GST_PTR_FORMAT,
+          event);
+      g_queue_push_head (&aggpad->priv->buffers, event);
+      event = NULL;
+      SRC_BROADCAST (self);
+    }
     PAD_UNLOCK (aggpad);
+    SRC_UNLOCK (self);
   }
 
-  return klass->sink_event (GST_AGGREGATOR (parent),
-      GST_AGGREGATOR_PAD (pad), event);
+  if (event)
+    return klass->sink_event (self, aggpad, event);
+  else
+    return TRUE;
 
 flushing:
   GST_DEBUG_OBJECT (aggpad, "Pad is %s, dropping event",
       gst_flow_get_name (aggpad->priv->flow_return));
   PAD_UNLOCK (aggpad);
+  SRC_UNLOCK (self);
   if (GST_EVENT_IS_STICKY (event))
     gst_pad_store_sticky_event (pad, event);
   gst_event_unref (event);
@@ -1956,10 +2324,14 @@
 gst_aggregator_pad_activate_mode_func (GstPad * pad,
     GstObject * parent, GstPadMode mode, gboolean active)
 {
+  GstAggregator *self = GST_AGGREGATOR (parent);
   GstAggregatorPad *aggpad = GST_AGGREGATOR_PAD (pad);
 
   if (active == FALSE) {
-    gst_aggregator_pad_set_flushing (aggpad, GST_FLOW_FLUSHING);
+    SRC_LOCK (self);
+    gst_aggregator_pad_set_flushing (aggpad, GST_FLOW_FLUSHING, TRUE);
+    SRC_BROADCAST (self);
+    SRC_UNLOCK (self);
   } else {
     PAD_LOCK (aggpad);
     aggpad->priv->flow_return = GST_FLOW_OK;
@@ -2007,7 +2379,7 @@
 {
   GstAggregatorPad *pad = (GstAggregatorPad *) object;
 
-  gst_aggregator_pad_drop_buffer (pad);
+  gst_aggregator_pad_set_flushing (pad, GST_FLOW_FLUSHING, TRUE);
 
   G_OBJECT_CLASS (gst_aggregator_pad_parent_class)->dispose (object);
 }
@@ -2031,7 +2403,7 @@
       G_TYPE_INSTANCE_GET_PRIVATE (pad, GST_TYPE_AGGREGATOR_PAD,
       GstAggregatorPadPrivate);
 
-  pad->priv->buffer = NULL;
+  g_queue_init (&pad->priv->buffers);
   g_cond_init (&pad->priv->event_cond);
 
   g_mutex_init (&pad->priv->flush_lock);
@@ -2053,11 +2425,13 @@
   GstBuffer *buffer = NULL;
 
   PAD_LOCK (pad);
-  if (pad->priv->buffer) {
+  if (GST_IS_BUFFER (g_queue_peek_tail (&pad->priv->buffers)))
+    buffer = g_queue_pop_tail (&pad->priv->buffers);
+
+  if (buffer) {
+    apply_buffer (pad, buffer, FALSE);
     GST_TRACE_OBJECT (pad, "Consuming buffer");
-    buffer = pad->priv->buffer;
-    pad->priv->buffer = NULL;
-    if (pad->priv->pending_eos) {
+    if (gst_aggregator_pad_queue_is_empty (pad) && pad->priv->pending_eos) {
       pad->priv->pending_eos = FALSE;
       pad->priv->eos = TRUE;
     }
@@ -2105,8 +2479,14 @@
   GstBuffer *buffer = NULL;
 
   PAD_LOCK (pad);
-  if (pad->priv->buffer)
-    buffer = gst_buffer_ref (pad->priv->buffer);
+  buffer = g_queue_peek_tail (&pad->priv->buffers);
+  /* The tail should always be a buffer, because if it is an event,
+   * it will be consumed immeditaly in gst_aggregator_steal_buffer */
+
+  if (GST_IS_BUFFER (buffer))
+    gst_buffer_ref (buffer);
+  else
+    buffer = NULL;
   PAD_UNLOCK (pad);
 
   return buffer;
diff --git a/gst-libs/gst/base/gstaggregator.h b/gst-libs/gst/base/gstaggregator.h
index cdfa9c2..9401d0c 100644
--- a/gst-libs/gst/base/gstaggregator.h
+++ b/gst-libs/gst/base/gstaggregator.h
@@ -71,6 +71,8 @@
 
   /* Protected by the OBJECT_LOCK */
   GstSegment segment;
+  /* Segment to use in the clip function, before the queue */
+  GstSegment clip_segment;
 
   /* < Private > */
   GstAggregatorPadPrivate   *  priv;
diff --git a/gst-libs/gst/basecamerabinsrc/Makefile.in b/gst-libs/gst/basecamerabinsrc/Makefile.in
index b2dd110..f08c0b0 100644
--- a/gst-libs/gst/basecamerabinsrc/Makefile.in
+++ b/gst-libs/gst/basecamerabinsrc/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,9 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst-libs/gst/basecamerabinsrc
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp \
-	$(libgstbasecamerabinsrc_@GST_API_VERSION@include_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 \
@@ -121,6 +128,9 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am \
+	$(libgstbasecamerabinsrc_@GST_API_VERSION@include_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -218,6 +228,7 @@
   esac
 HEADERS = $(libgstbasecamerabinsrc_@GST_API_VERSION@include_HEADERS)
 am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -235,8 +246,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -265,8 +274,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -314,11 +321,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -502,6 +512,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -580,7 +591,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -620,6 +636,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -767,7 +784,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst-libs/gst/basecamerabinsrc/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst-libs/gst/basecamerabinsrc/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1070,6 +1086,8 @@
 	uninstall-am uninstall-libLTLIBRARIES \
 	uninstall-libgstbasecamerabinsrc_@GST_API_VERSION@includeHEADERS
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst-libs/gst/codecparsers/Makefile.in b/gst-libs/gst/codecparsers/Makefile.in
index 22aae5a..db54f60 100644
--- a/gst-libs/gst/codecparsers/Makefile.in
+++ b/gst-libs/gst/codecparsers/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,10 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst-libs/gst/codecparsers
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp \
-	$(libgstcodecparsers_@GST_API_VERSION@include_HEADERS) \
-	$(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 \
@@ -122,6 +128,9 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am \
+	$(libgstcodecparsers_@GST_API_VERSION@include_HEADERS) \
+	$(noinst_HEADERS) $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -247,6 +256,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -264,8 +274,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -294,8 +302,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -343,11 +349,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -531,6 +540,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -609,7 +619,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -649,6 +664,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -810,7 +826,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst-libs/gst/codecparsers/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst-libs/gst/codecparsers/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1240,6 +1255,8 @@
 	uninstall-am uninstall-libLTLIBRARIES \
 	uninstall-libgstcodecparsers_@GST_API_VERSION@includeHEADERS
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst-libs/gst/codecparsers/gsth264parser.c b/gst-libs/gst/codecparsers/gsth264parser.c
index 2648194..4092acb 100644
--- a/gst-libs/gst/codecparsers/gsth264parser.c
+++ b/gst-libs/gst/codecparsers/gsth264parser.c
@@ -1845,8 +1845,10 @@
   if (res == GST_H264_PARSER_OK) {
     GST_DEBUG ("adding sequence parameter set with id: %d to array", sps->id);
 
-    if (!gst_h264_sps_copy (&nalparser->sps[sps->id], sps))
+    if (!gst_h264_sps_copy (&nalparser->sps[sps->id], sps)) {
+      gst_h264_sps_clear (sps);
       return GST_H264_PARSER_ERROR;
+    }
     nalparser->last_sps = &nalparser->sps[sps->id];
   }
   return res;
@@ -1899,6 +1901,7 @@
 
 error:
   GST_WARNING ("error parsing \"Subset sequence parameter set\"");
+  gst_h264_sps_clear (sps);
   sps->valid = FALSE;
   return GST_H264_PARSER_ERROR;
 }
diff --git a/gst-libs/gst/codecparsers/gsth264parser.h b/gst-libs/gst/codecparsers/gsth264parser.h
index 2dcb1b7..be5194f 100644
--- a/gst-libs/gst/codecparsers/gsth264parser.h
+++ b/gst-libs/gst/codecparsers/gsth264parser.h
@@ -127,9 +127,11 @@
  * @GST_H264_NAL_FILLER_DATA: Filler data nal lunit
  * @GST_H264_NAL_SPS_EXT: Sequence parameter set (SPS) extension NAL unit
  * @GST_H264_NAL_PREFIX_UNIT: Prefix NAL unit
- * @GST_H264_NAL_SUBSET_SPS: Subset sequence parameter set (SPS) NAL unit
+ * @GST_H264_NAL_SUBSET_SPS: Subset sequence parameter set (SSPS) NAL unit
+ * @GST_H264_NAL_DEPTH_SPS: Depth parameter set (DPS) NAL unit
  * @GST_H264_NAL_SLICE_AUX: Auxiliary coded picture without partitioning NAL unit
  * @GST_H264_NAL_SLICE_EXT: Coded slice extension NAL unit
+ * @GST_H264_NAL_SLICE_DEPTH: Coded slice extension for depth or 3D-AVC texture view
  *
  * Indicates the type of H264 Nal Units
  */
@@ -151,8 +153,10 @@
   GST_H264_NAL_SPS_EXT      = 13,
   GST_H264_NAL_PREFIX_UNIT  = 14,
   GST_H264_NAL_SUBSET_SPS   = 15,
+  GST_H264_NAL_DEPTH_SPS    = 16,
   GST_H264_NAL_SLICE_AUX    = 19,
-  GST_H264_NAL_SLICE_EXT    = 20
+  GST_H264_NAL_SLICE_EXT    = 20,
+  GST_H264_NAL_SLICE_DEPTH  = 21
 } GstH264NalUnitType;
 
 /**
diff --git a/gst-libs/gst/codecparsers/gsth265parser.c b/gst-libs/gst/codecparsers/gsth265parser.c
index 563fedf..51d8b99 100644
--- a/gst-libs/gst/codecparsers/gsth265parser.c
+++ b/gst-libs/gst/codecparsers/gsth265parser.c
@@ -885,7 +885,7 @@
   READ_UINT8 (nr, rpl_mod->ref_pic_list_modification_flag_l0, 1);
 
   if (rpl_mod->ref_pic_list_modification_flag_l0) {
-    for (i = 0; i < slice->num_ref_idx_l0_active_minus1; i++) {
+    for (i = 0; i <= slice->num_ref_idx_l0_active_minus1; i++) {
       READ_UINT32 (nr, rpl_mod->list_entry_l0[i], n);
       CHECK_ALLOWED_MAX (rpl_mod->list_entry_l0[i], (NumPocTotalCurr - 1));
     }
@@ -934,7 +934,7 @@
   }
 
   if (sps->chroma_format_idc != 0)
-    READ_SE_ALLOWED (nr, p->delta_chroma_log2_weight_denom, 0, 7);
+    READ_SE_ALLOWED (nr, p->delta_chroma_log2_weight_denom, -7, 7);
 
   for (i = 0; i <= slice->num_ref_idx_l0_active_minus1; i++)
     READ_UINT8 (nr, p->luma_weight_l0_flag[i], 1);
diff --git a/gst-libs/gst/codecparsers/gstmpegvideometa.c b/gst-libs/gst/codecparsers/gstmpegvideometa.c
index 7f5926f..f7b2f87 100644
--- a/gst-libs/gst/codecparsers/gstmpegvideometa.c
+++ b/gst-libs/gst/codecparsers/gstmpegvideometa.c
@@ -60,6 +60,38 @@
     g_slice_free (GstMpegVideoQuantMatrixExt, mpeg_video_meta->quantext);
 }
 
+static gboolean
+gst_mpeg_video_meta_transform (GstBuffer * dest, GstMeta * meta,
+    GstBuffer * buffer, GQuark type, gpointer data)
+{
+  GstMpegVideoMeta *smeta, *dmeta;
+
+  smeta = (GstMpegVideoMeta *) meta;
+
+  if (GST_META_TRANSFORM_IS_COPY (type)) {
+    GstMetaTransformCopy *copy = data;
+
+    if (!copy->region) {
+      /* only copy if the complete data is copied as well */
+      dmeta =
+          gst_buffer_add_mpeg_video_meta (dest, smeta->sequencehdr,
+          smeta->sequenceext, smeta->sequencedispext, smeta->pichdr,
+          smeta->picext, smeta->quantext);
+
+      if (!dmeta)
+        return FALSE;
+
+      dmeta->num_slices = smeta->num_slices;
+      dmeta->slice_offset = smeta->slice_offset;
+    }
+  } else {
+    /* return FALSE, if transform type is not supported */
+    return FALSE;
+  }
+
+  return TRUE;
+}
+
 GType
 gst_mpeg_video_meta_api_get_type (void)
 {
@@ -86,7 +118,7 @@
         "GstMpegVideoMeta", sizeof (GstMpegVideoMeta),
         (GstMetaInitFunction) gst_mpeg_video_meta_init,
         (GstMetaFreeFunction) gst_mpeg_video_meta_free,
-        (GstMetaTransformFunction) NULL);
+        (GstMetaTransformFunction) gst_mpeg_video_meta_transform);
     g_once_init_leave (&mpeg_video_meta_info, meta);
   }
 
diff --git a/gst-libs/gst/gl/Makefile.am b/gst-libs/gst/gl/Makefile.am
index 023f468..36f3bf7 100644
--- a/gst-libs/gst/gl/Makefile.am
+++ b/gst-libs/gst/gl/Makefile.am
@@ -16,19 +16,21 @@
 	gstglbufferpool.c \
 	gstglfilter.c \
 	gstglbasefilter.c \
-        gstglshader.c \
-        gstglshadervariables.c \
-        gstglcolorconvert.c \
-        gstgldownload.c \
-        gstglupload.c \
-        gstgluploadmeta.c \
-        gstglwindow.c \
-        gstglapi.c \
-        gstglfeature.c \
-        gstglutils.c \
-        gstglframebuffer.c \
-        gstglsyncmeta.c \
-        gstglviewconvert.c
+	gstglshader.c \
+	gstglshadervariables.c \
+	gstglcolorconvert.c \
+	gstgldownload.c \
+	gstglupload.c \
+	gstgluploadmeta.c \
+	gstglwindow.c \
+	gstglapi.c \
+	gstglfeature.c \
+	gstglutils.c \
+	gstglframebuffer.c \
+	gstglsyncmeta.c \
+	gstglviewconvert.c \
+	gstgloverlaycompositor.c \
+	utils/opengl_versions.h
 
 libgstgl_@GST_API_VERSION@includedir = $(includedir)/gstreamer-@GST_API_VERSION@/gst/gl
 libgstgl_@GST_API_VERSION@include_HEADERS = \
@@ -52,6 +54,7 @@
 	gstglframebuffer.h \
 	gstglsyncmeta.h \
 	gstglviewconvert.h \
+	gstgloverlaycompositor.h \
 	gstgl_fwd.h \
 	gl.h
 
diff --git a/gst-libs/gst/gl/Makefile.in b/gst-libs/gst/gl/Makefile.in
index 6f00a01..d5378ea 100644
--- a/gst-libs/gst/gl/Makefile.in
+++ b/gst-libs/gst/gl/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -17,7 +17,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -98,9 +108,6 @@
 @USE_EGL_TRUE@am__append_15 = egl
 @USE_EGL_TRUE@am__append_16 = egl/libgstgl-egl.la
 subdir = gst-libs/gst/gl
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp \
-	$(libgstgl_@GST_API_VERSION@include_HEADERS) $(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 \
@@ -138,6 +145,9 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am \
+	$(libgstgl_@GST_API_VERSION@include_HEADERS) $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -201,7 +211,8 @@
 	libgstgl_@GST_API_VERSION@_la-gstglutils.lo \
 	libgstgl_@GST_API_VERSION@_la-gstglframebuffer.lo \
 	libgstgl_@GST_API_VERSION@_la-gstglsyncmeta.lo \
-	libgstgl_@GST_API_VERSION@_la-gstglviewconvert.lo
+	libgstgl_@GST_API_VERSION@_la-gstglviewconvert.lo \
+	libgstgl_@GST_API_VERSION@_la-gstgloverlaycompositor.lo
 libgstgl_@GST_API_VERSION@_la_OBJECTS =  \
 	$(am_libgstgl_@GST_API_VERSION@_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
@@ -291,6 +302,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 am__relativize = \
   dir0=`pwd`; \
@@ -333,8 +345,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -363,8 +373,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -412,11 +420,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -600,6 +611,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -678,7 +690,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -718,6 +735,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -841,19 +859,21 @@
 	gstglbufferpool.c \
 	gstglfilter.c \
 	gstglbasefilter.c \
-        gstglshader.c \
-        gstglshadervariables.c \
-        gstglcolorconvert.c \
-        gstgldownload.c \
-        gstglupload.c \
-        gstgluploadmeta.c \
-        gstglwindow.c \
-        gstglapi.c \
-        gstglfeature.c \
-        gstglutils.c \
-        gstglframebuffer.c \
-        gstglsyncmeta.c \
-        gstglviewconvert.c
+	gstglshader.c \
+	gstglshadervariables.c \
+	gstglcolorconvert.c \
+	gstgldownload.c \
+	gstglupload.c \
+	gstgluploadmeta.c \
+	gstglwindow.c \
+	gstglapi.c \
+	gstglfeature.c \
+	gstglutils.c \
+	gstglframebuffer.c \
+	gstglsyncmeta.c \
+	gstglviewconvert.c \
+	gstgloverlaycompositor.c \
+	utils/opengl_versions.h
 
 libgstgl_@GST_API_VERSION@includedir = $(includedir)/gstreamer-@GST_API_VERSION@/gst/gl
 libgstgl_@GST_API_VERSION@include_HEADERS = \
@@ -877,6 +897,7 @@
 	gstglframebuffer.h \
 	gstglsyncmeta.h \
 	gstglviewconvert.h \
+	gstgloverlaycompositor.h \
 	gstgl_fwd.h \
 	gl.h
 
@@ -932,7 +953,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst-libs/gst/gl/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst-libs/gst/gl/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1007,6 +1027,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstgl_@GST_API_VERSION@_la-gstglfilter.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstgl_@GST_API_VERSION@_la-gstglframebuffer.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstgl_@GST_API_VERSION@_la-gstglmemory.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstgl_@GST_API_VERSION@_la-gstgloverlaycompositor.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstgl_@GST_API_VERSION@_la-gstglshader.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstgl_@GST_API_VERSION@_la-gstglshadervariables.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstgl_@GST_API_VERSION@_la-gstglsyncmeta.Plo@am__quote@
@@ -1180,6 +1201,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) $(libgstgl_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstgl_@GST_API_VERSION@_la-gstglviewconvert.lo `test -f 'gstglviewconvert.c' || echo '$(srcdir)/'`gstglviewconvert.c
 
+libgstgl_@GST_API_VERSION@_la-gstgloverlaycompositor.lo: gstgloverlaycompositor.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) $(libgstgl_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstgl_@GST_API_VERSION@_la-gstgloverlaycompositor.lo -MD -MP -MF $(DEPDIR)/libgstgl_@GST_API_VERSION@_la-gstgloverlaycompositor.Tpo -c -o libgstgl_@GST_API_VERSION@_la-gstgloverlaycompositor.lo `test -f 'gstgloverlaycompositor.c' || echo '$(srcdir)/'`gstgloverlaycompositor.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstgl_@GST_API_VERSION@_la-gstgloverlaycompositor.Tpo $(DEPDIR)/libgstgl_@GST_API_VERSION@_la-gstgloverlaycompositor.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstgloverlaycompositor.c' object='libgstgl_@GST_API_VERSION@_la-gstgloverlaycompositor.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) $(libgstgl_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstgl_@GST_API_VERSION@_la-gstgloverlaycompositor.lo `test -f 'gstgloverlaycompositor.c' || echo '$(srcdir)/'`gstgloverlaycompositor.c
+
 mostlyclean-libtool:
 	-rm -f *.lo
 
@@ -1564,6 +1592,8 @@
 	uninstall-nodist_configexecincludeHEADERS \
 	uninstall-typelibsDATA
 
+.PRECIOUS: Makefile
+
 
 @HAVE_INTROSPECTION_TRUE@GstGL-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstgl-@GST_API_VERSION@.la
 @HAVE_INTROSPECTION_TRUE@	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" GI_SCANNER_DISABLE_CACHE=yes\
diff --git a/gst-libs/gst/gl/android/Makefile.in b/gst-libs/gst/gl/android/Makefile.in
index acbd94e..a627df6 100644
--- a/gst-libs/gst/gl/android/Makefile.in
+++ b/gst-libs/gst/gl/android/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst-libs/gst/gl/android
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp $(libgstglandroidinclude_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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(libgstglandroidinclude_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -226,6 +236,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -243,8 +254,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -273,8 +282,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -322,11 +329,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -510,6 +520,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -588,7 +599,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -628,6 +644,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -773,7 +790,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst-libs/gst/gl/android/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst-libs/gst/gl/android/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1079,6 +1095,8 @@
 	mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
 	uninstall-am uninstall-libgstglandroidincludeHEADERS
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst-libs/gst/gl/android/gstglwindow_android_egl.c b/gst-libs/gst/gl/android/gstglwindow_android_egl.c
index 14e07e1..4e57f4c 100644
--- a/gst-libs/gst/gl/android/gstglwindow_android_egl.c
+++ b/gst-libs/gst/gl/android/gstglwindow_android_egl.c
@@ -69,15 +69,15 @@
 
 /* Must be called in the gl thread */
 GstGLWindowAndroidEGL *
-gst_gl_window_android_egl_new (void)
+gst_gl_window_android_egl_new (GstGLDisplay * display)
 {
-  GstGLWindowAndroidEGL *window;
+  if ((gst_gl_display_get_handle_type (display) & GST_GL_DISPLAY_TYPE_EGL) == 0)
+    /* we require an egl display to create android windows */
+    return NULL;
 
   GST_DEBUG ("creating Android EGL window");
 
-  window = g_object_new (GST_GL_TYPE_WINDOW_ANDROID_EGL, NULL);
-
-  return window;
+  return g_object_new (GST_GL_TYPE_WINDOW_ANDROID_EGL, NULL);
 }
 
 static void
diff --git a/gst-libs/gst/gl/android/gstglwindow_android_egl.h b/gst-libs/gst/gl/android/gstglwindow_android_egl.h
index 341cd20..eaada44 100644
--- a/gst-libs/gst/gl/android/gstglwindow_android_egl.h
+++ b/gst-libs/gst/gl/android/gstglwindow_android_egl.h
@@ -23,6 +23,7 @@
 #define __GST_GL_WINDOW_ANDROID_EGL_H__
 
 #include <gst/gl/gl.h>
+#include <gst/gl/egl/gstegl.h>
 
 G_BEGIN_DECLS
 
@@ -57,7 +58,7 @@
 
 GType gst_gl_window_android_egl_get_type     (void);
 
-GstGLWindowAndroidEGL * gst_gl_window_android_egl_new  (void);
+GstGLWindowAndroidEGL * gst_gl_window_android_egl_new  (GstGLDisplay * display);
 
 G_END_DECLS
 
diff --git a/gst-libs/gst/gl/cocoa/Makefile.in b/gst-libs/gst/gl/cocoa/Makefile.in
index b2e73c3..ffac779 100644
--- a/gst-libs/gst/gl/cocoa/Makefile.in
+++ b/gst-libs/gst/gl/cocoa/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,9 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst-libs/gst/gl/cocoa
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp $(libgstgl_cocoainclude_HEADERS) \
-	$(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 \
@@ -121,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(libgstgl_cocoainclude_HEADERS) \
+	$(noinst_HEADERS) $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -229,6 +238,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -246,8 +256,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -276,8 +284,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -325,11 +331,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -513,6 +522,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -591,7 +601,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -631,6 +646,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -793,7 +809,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst-libs/gst/gl/cocoa/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst-libs/gst/gl/cocoa/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1123,6 +1138,8 @@
 	mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
 	uninstall-am uninstall-libgstgl_cocoaincludeHEADERS
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst-libs/gst/gl/cocoa/gstglcaopengllayer.m b/gst-libs/gst/gl/cocoa/gstglcaopengllayer.m
index 8ba1e1b..9362bca 100644
--- a/gst-libs/gst/gl/cocoa/gstglcaopengllayer.m
+++ b/gst-libs/gst/gl/cocoa/gstglcaopengllayer.m
@@ -117,7 +117,7 @@
   display = gst_gl_context_get_display (GST_GL_CONTEXT (self->gst_gl_context));
   self->draw_context = gst_gl_context_new_wrapped (display,
       (guintptr) self->gl_context, GST_GL_PLATFORM_CGL,
-      gst_gl_context_get_current_gl_api (NULL, NULL));
+      gst_gl_context_get_current_gl_api (GST_GL_PLATFORM_CGL, NULL, NULL));
   gst_object_unref (display);
 
   if (!self->draw_context) {
diff --git a/gst-libs/gst/gl/cocoa/gstglcontext_cocoa.h b/gst-libs/gst/gl/cocoa/gstglcontext_cocoa.h
index 6b79bc4..22069ee 100644
--- a/gst-libs/gst/gl/cocoa/gstglcontext_cocoa.h
+++ b/gst-libs/gst/gl/cocoa/gstglcontext_cocoa.h
@@ -60,7 +60,7 @@
 
 GType gst_gl_context_cocoa_get_type (void);
 
-GstGLContextCocoa * gst_gl_context_cocoa_new (void);
+GstGLContextCocoa * gst_gl_context_cocoa_new (GstGLDisplay * display);
 guintptr gst_gl_context_cocoa_get_current_context (void);
 CGLPixelFormatObj gst_gl_context_cocoa_get_pixel_format (GstGLContextCocoa *context);
 void gst_gl_context_cocoa_dump_pixel_format (CGLPixelFormatObj fmt);
diff --git a/gst-libs/gst/gl/cocoa/gstglcontext_cocoa.m b/gst-libs/gst/gl/cocoa/gstglcontext_cocoa.m
index 769395a..bde90f1 100644
--- a/gst-libs/gst/gl/cocoa/gstglcontext_cocoa.m
+++ b/gst-libs/gst/gl/cocoa/gstglcontext_cocoa.m
@@ -72,11 +72,13 @@
 
 /* Must be called in the gl thread */
 GstGLContextCocoa *
-gst_gl_context_cocoa_new (void)
+gst_gl_context_cocoa_new (GstGLDisplay * display)
 {
-  GstGLContextCocoa *context = g_object_new (GST_GL_TYPE_CONTEXT_COCOA, NULL);
+  if ((gst_gl_display_get_handle_type (display) & GST_GL_DISPLAY_TYPE_COCOA) == 0)
+    /* we require an cocoa display to create CGL contexts */
+    return NULL;
 
-  return context;
+  return g_object_new (GST_GL_TYPE_CONTEXT_COCOA, NULL);
 }
 
 struct pixel_attr
diff --git a/gst-libs/gst/gl/cocoa/gstglwindow_cocoa.h b/gst-libs/gst/gl/cocoa/gstglwindow_cocoa.h
index 775c291..21c5917 100644
--- a/gst-libs/gst/gl/cocoa/gstglwindow_cocoa.h
+++ b/gst-libs/gst/gl/cocoa/gstglwindow_cocoa.h
@@ -58,7 +58,7 @@
 
 GType gst_gl_window_cocoa_get_type     (void);
 
-GstGLWindowCocoa * gst_gl_window_cocoa_new (void);
+GstGLWindowCocoa * gst_gl_window_cocoa_new (GstGLDisplay * display);
 
 void gst_gl_window_cocoa_draw_thread (GstGLWindowCocoa *window_cocoa);
 
diff --git a/gst-libs/gst/gl/cocoa/gstglwindow_cocoa.m b/gst-libs/gst/gl/cocoa/gstglwindow_cocoa.m
index 52abfca..975fe5a 100644
--- a/gst-libs/gst/gl/cocoa/gstglwindow_cocoa.m
+++ b/gst-libs/gst/gl/cocoa/gstglwindow_cocoa.m
@@ -129,13 +129,14 @@
   G_OBJECT_CLASS (parent_class)->finalize (object);
 }
 
-/* Must be called in the gl thread */
 GstGLWindowCocoa *
-gst_gl_window_cocoa_new (void)
+gst_gl_window_cocoa_new (GstGLDisplay * display)
 {
-  GstGLWindowCocoa *window = g_object_new (GST_GL_TYPE_WINDOW_COCOA, NULL);
+  if ((gst_gl_display_get_handle_type (display) & GST_GL_DISPLAY_TYPE_COCOA) == 0)
+    /* we require an cocoa display to create CGL windows */
+    return NULL;
 
-  return window;
+  return g_object_new (GST_GL_TYPE_WINDOW_COCOA, NULL);
 }
 
 /* Must be called from the main thread */
diff --git a/gst-libs/gst/gl/dispmanx/Makefile.in b/gst-libs/gst/gl/dispmanx/Makefile.in
index 960cad8..a21d7e6 100644
--- a/gst-libs/gst/gl/dispmanx/Makefile.in
+++ b/gst-libs/gst/gl/dispmanx/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst-libs/gst/gl/dispmanx
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -198,6 +208,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -215,8 +226,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -245,8 +254,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -294,11 +301,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -482,6 +492,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -560,7 +571,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -600,6 +616,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -743,7 +760,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst-libs/gst/gl/dispmanx/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst-libs/gst/gl/dispmanx/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1024,6 +1040,8 @@
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
 	tags tags-am uninstall uninstall-am
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst-libs/gst/gl/dispmanx/gstglwindow_dispmanx_egl.c b/gst-libs/gst/gl/dispmanx/gstglwindow_dispmanx_egl.c
index a1be53d..99fd741 100644
--- a/gst-libs/gst/gl/dispmanx/gstglwindow_dispmanx_egl.c
+++ b/gst-libs/gst/gl/dispmanx/gstglwindow_dispmanx_egl.c
@@ -83,29 +83,28 @@
 static void
 gst_gl_window_dispmanx_egl_init (GstGLWindowDispmanxEGL * window_egl)
 {
+  window_egl->egldisplay = EGL_DEFAULT_DISPLAY;
+
+  window_egl->visible = FALSE;
+  window_egl->display = 0;
+  window_egl->dp_width = 0;
+  window_egl->dp_height = 0;
+  window_egl->native.element = 0;
+  window_egl->native.width = 0;
+  window_egl->native.height = 0;
 }
 
 /* Must be called in the gl thread */
 GstGLWindowDispmanxEGL *
-gst_gl_window_dispmanx_egl_new (void)
+gst_gl_window_dispmanx_egl_new (GstGLDisplay * display)
 {
-  GstGLWindowDispmanxEGL *window;
+  if ((gst_gl_display_get_handle_type (display) & GST_GL_DISPLAY_TYPE_EGL) == 0)
+    /* we require an egl display to create dispmanx windows */
+    return NULL;
 
   GST_DEBUG ("creating Dispmanx EGL window");
 
-  window = g_object_new (GST_GL_TYPE_WINDOW_DISPMANX_EGL, NULL);
-
-  window->egldisplay = EGL_DEFAULT_DISPLAY;
-
-  window->visible = FALSE;
-  window->display = 0;
-  window->dp_width = 0;
-  window->dp_height = 0;
-  window->native.element = 0;
-  window->native.width = 0;
-  window->native.height = 0;
-
-  return window;
+  return g_object_new (GST_GL_TYPE_WINDOW_DISPMANX_EGL, NULL);
 }
 
 static void
@@ -133,8 +132,8 @@
   gint ret = graphics_get_display_size (0, &window_egl->dp_width,
       &window_egl->dp_height);
   if (ret < 0) {
-    g_set_error (error, GST_GL_WINDOW_ERROR, GST_GL_WINDOW_ERROR_RESOURCE_UNAVAILABLE,
-        "Can't open display");
+    g_set_error (error, GST_GL_WINDOW_ERROR,
+        GST_GL_WINDOW_ERROR_RESOURCE_UNAVAILABLE, "Can't open display");
     return FALSE;
   }
   GST_DEBUG ("Got display size: %dx%d\n", window_egl->dp_width,
@@ -236,8 +235,8 @@
     vc_dispmanx_update_submit_sync (dispman_update);
 
     if (GST_GL_WINDOW (window_egl)->resize)
-      GST_GL_WINDOW (window_egl)->resize (GST_GL_WINDOW (window_egl)->
-          resize_data, width, height);
+      GST_GL_WINDOW (window_egl)->
+          resize (GST_GL_WINDOW (window_egl)->resize_data, width, height);
   }
 
   window_egl->native.width = width;
diff --git a/gst-libs/gst/gl/dispmanx/gstglwindow_dispmanx_egl.h b/gst-libs/gst/gl/dispmanx/gstglwindow_dispmanx_egl.h
index b25c219..df23eb5 100644
--- a/gst-libs/gst/gl/dispmanx/gstglwindow_dispmanx_egl.h
+++ b/gst-libs/gst/gl/dispmanx/gstglwindow_dispmanx_egl.h
@@ -23,8 +23,25 @@
 
 #include <gst/video/gstvideosink.h>
 #include <gst/gl/gl.h>
+#include <gst/gl/egl/gstegl.h>
+
+#if defined (USE_EGL_RPI) && defined(__GNUC__)
+#ifndef __VCCOREVER__
+#define __VCCOREVER__ 0x04000000
+#endif
+
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wredundant-decls"
+#pragma GCC optimize ("gnu89-inline")
+#endif
+
 #include <bcm_host.h>
 
+#if defined (USE_EGL_RPI) && defined(__GNUC__)
+#pragma GCC reset_options
+#pragma GCC diagnostic pop
+#endif
+
 G_BEGIN_DECLS
 
 #define GST_GL_TYPE_WINDOW_DISPMANX_EGL         (gst_gl_window_dispmanx_egl_get_type())
@@ -66,7 +83,7 @@
 
 GType gst_gl_window_dispmanx_egl_get_type     (void);
 
-GstGLWindowDispmanxEGL * gst_gl_window_dispmanx_egl_new  (void);
+GstGLWindowDispmanxEGL * gst_gl_window_dispmanx_egl_new  (GstGLDisplay * display);
 gboolean gst_gl_window_dispmanx_egl_create_window (GstGLWindowDispmanxEGL * window_egl);
 
 G_END_DECLS
diff --git a/gst-libs/gst/gl/eagl/Makefile.in b/gst-libs/gst/gl/eagl/Makefile.in
index eecc4dd..64dcb2e 100644
--- a/gst-libs/gst/gl/eagl/Makefile.in
+++ b/gst-libs/gst/gl/eagl/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst-libs/gst/gl/eagl
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -198,6 +208,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -215,8 +226,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -245,8 +254,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -294,11 +301,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -482,6 +492,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -560,7 +571,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -600,6 +616,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -755,7 +772,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst-libs/gst/gl/eagl/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst-libs/gst/gl/eagl/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1044,6 +1060,8 @@
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
 	tags tags-am uninstall uninstall-am
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst-libs/gst/gl/eagl/gstglcontext_eagl.h b/gst-libs/gst/gl/eagl/gstglcontext_eagl.h
index c8997ff..bd6cd20 100644
--- a/gst-libs/gst/gl/eagl/gstglcontext_eagl.h
+++ b/gst-libs/gst/gl/eagl/gstglcontext_eagl.h
@@ -57,7 +57,7 @@
 
 GType gst_gl_context_eagl_get_type (void);
 
-GstGLContextEagl * gst_gl_context_eagl_new (void);
+GstGLContextEagl * gst_gl_context_eagl_new (GstGLDisplay * display);
 
 void gst_gl_context_eagl_update_layer (GstGLContext * context);
 void gst_gl_context_eagl_resize (GstGLContextEagl * eagl_context);
diff --git a/gst-libs/gst/gl/eagl/gstglcontext_eagl.m b/gst-libs/gst/gl/eagl/gstglcontext_eagl.m
index 9fb29e6..dce8168 100644
--- a/gst-libs/gst/gl/eagl/gstglcontext_eagl.m
+++ b/gst-libs/gst/gl/eagl/gstglcontext_eagl.m
@@ -92,11 +92,10 @@
 
 /* Must be called in the gl thread */
 GstGLContextEagl *
-gst_gl_context_eagl_new (void)
+gst_gl_context_eagl_new (GstGLDisplay * display)
 {
-  GstGLContextEagl *context = g_object_new (GST_GL_TYPE_CONTEXT_EAGL, NULL);
-
-  return context;
+  /* there isn't actually a display type for eagl yet? */
+  return g_object_new (GST_GL_TYPE_CONTEXT_EAGL, NULL);
 }
 
 void
@@ -143,12 +142,12 @@
 void
 gst_gl_context_eagl_update_layer (GstGLContext * context)
 {
-  __block GLuint framebuffer;
-  __block GLuint color_renderbuffer;
-  __block GLuint depth_renderbuffer;
-  __block GLint width;
-  __block GLint height;
-  __block CAEAGLLayer *eagl_layer;
+  GLuint framebuffer;
+  GLuint color_renderbuffer;
+  GLuint depth_renderbuffer;
+  GLint width;
+  GLint height;
+  CAEAGLLayer *eagl_layer;
   GLenum status;
   GstGLContextEagl *context_eagl = GST_GL_CONTEXT_EAGL (context);
   GstGLContextEaglPrivate *priv = context_eagl->priv;
@@ -168,33 +167,31 @@
   if (priv->eagl_layer)
     gst_gl_context_eagl_release_layer (context);
 
-  dispatch_sync (dispatch_get_main_queue (), ^{
-      eagl_layer = (CAEAGLLayer *)[window_handle layer];
-      [EAGLContext setCurrentContext:priv->eagl_context];
+  eagl_layer = (CAEAGLLayer *)[window_handle layer];
+  [EAGLContext setCurrentContext:priv->eagl_context];
 
-      /* Allocate framebuffer */
-      glGenFramebuffers (1, &framebuffer);
-      glBindFramebuffer (GL_FRAMEBUFFER, framebuffer);
-      /* Allocate color render buffer */
-      glGenRenderbuffers (1, &color_renderbuffer);
-      glBindRenderbuffer (GL_RENDERBUFFER, color_renderbuffer);
-      [priv->eagl_context renderbufferStorage: GL_RENDERBUFFER fromDrawable:eagl_layer];
-      glFramebufferRenderbuffer (GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
-          GL_RENDERBUFFER, color_renderbuffer);
-      /* Get renderbuffer width/height */
-      glGetRenderbufferParameteriv (GL_RENDERBUFFER, GL_RENDERBUFFER_WIDTH,
-          &width);
-      glGetRenderbufferParameteriv (GL_RENDERBUFFER, GL_RENDERBUFFER_HEIGHT,
-          &height);
-      /* allocate depth render buffer */
-      glGenRenderbuffers (1, &depth_renderbuffer);
-      glBindRenderbuffer (GL_RENDERBUFFER, depth_renderbuffer);
-      glRenderbufferStorage (GL_RENDERBUFFER, GL_DEPTH_COMPONENT16, width,
-          height);
-      glFramebufferRenderbuffer (GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT,
-          GL_RENDERBUFFER, depth_renderbuffer);
-      [EAGLContext setCurrentContext:nil];
-  });
+  /* Allocate framebuffer */
+  glGenFramebuffers (1, &framebuffer);
+  glBindFramebuffer (GL_FRAMEBUFFER, framebuffer);
+  /* Allocate color render buffer */
+  glGenRenderbuffers (1, &color_renderbuffer);
+  glBindRenderbuffer (GL_RENDERBUFFER, color_renderbuffer);
+  [priv->eagl_context renderbufferStorage: GL_RENDERBUFFER fromDrawable:eagl_layer];
+  glFramebufferRenderbuffer (GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
+      GL_RENDERBUFFER, color_renderbuffer);
+  /* Get renderbuffer width/height */
+  glGetRenderbufferParameteriv (GL_RENDERBUFFER, GL_RENDERBUFFER_WIDTH,
+      &width);
+  glGetRenderbufferParameteriv (GL_RENDERBUFFER, GL_RENDERBUFFER_HEIGHT,
+      &height);
+  /* allocate depth render buffer */
+  glGenRenderbuffers (1, &depth_renderbuffer);
+  glBindRenderbuffer (GL_RENDERBUFFER, depth_renderbuffer);
+  glRenderbufferStorage (GL_RENDERBUFFER, GL_DEPTH_COMPONENT16, width,
+      height);
+  glFramebufferRenderbuffer (GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT,
+      GL_RENDERBUFFER, depth_renderbuffer);
+  [EAGLContext setCurrentContext:nil];
 
   [EAGLContext setCurrentContext:priv->eagl_context];
 
@@ -224,19 +221,17 @@
   GstGLContextEagl *context_eagl = GST_GL_CONTEXT_EAGL (context);
   GstGLContextEaglPrivate *priv = context_eagl->priv;
 
-  dispatch_sync (dispatch_get_main_queue (), ^{
-    if (other_context) {
-      EAGLContext *external_gl_context = (EAGLContext *)
-          gst_gl_context_get_gl_context (other_context);
-      EAGLSharegroup *share_group = [external_gl_context sharegroup];
+  if (other_context) {
+    EAGLContext *external_gl_context = (EAGLContext *)
+        gst_gl_context_get_gl_context (other_context);
+    EAGLSharegroup *share_group = [external_gl_context sharegroup];
 
-      priv->eagl_context = [[EAGLContext alloc] initWithAPI: kEAGLRenderingAPIOpenGLES2 sharegroup:share_group];
-      [share_group release];
-    } else {
-      priv->eagl_context = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES2];
-    }
-  });
-  
+    priv->eagl_context = [[EAGLContext alloc] initWithAPI: kEAGLRenderingAPIOpenGLES2 sharegroup:share_group];
+    [share_group release];
+  } else {
+    priv->eagl_context = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES2];
+  }
+
   priv->eagl_layer = NULL;
   priv->framebuffer = 0;
   priv->color_renderbuffer = 0;
@@ -285,16 +280,14 @@
     return TRUE;
   }
   
-  dispatch_sync (dispatch_get_main_queue (), ^{
-    CAEAGLLayer *eagl_layer;
-    NSDictionary * dict =[NSDictionary dictionaryWithObjectsAndKeys:
-	    [NSNumber numberWithBool:NO], kEAGLDrawablePropertyRetainedBacking,
-		kEAGLColorFormatRGBA8, kEAGLDrawablePropertyColorFormat, nil];
+  CAEAGLLayer *eagl_layer;
+  NSDictionary * dict =[NSDictionary dictionaryWithObjectsAndKeys:
+      [NSNumber numberWithBool:NO], kEAGLDrawablePropertyRetainedBacking,
+      kEAGLColorFormatRGBA8, kEAGLDrawablePropertyColorFormat, nil];
 
-    eagl_layer = (CAEAGLLayer *)[window_handle layer];
-    [eagl_layer setOpaque:YES];
-    [eagl_layer setDrawableProperties:dict];
-  });
+  eagl_layer = (CAEAGLLayer *)[window_handle layer];
+  [eagl_layer setOpaque:YES];
+  [eagl_layer setDrawableProperties:dict];
 
   gst_object_unref (window);
 
diff --git a/gst-libs/gst/gl/eagl/gstglwindow_eagl.h b/gst-libs/gst/gl/eagl/gstglwindow_eagl.h
index 6e71b7e..ce3d0b3 100644
--- a/gst-libs/gst/gl/eagl/gstglwindow_eagl.h
+++ b/gst-libs/gst/gl/eagl/gstglwindow_eagl.h
@@ -57,7 +57,7 @@
 
 GType gst_gl_window_eagl_get_type     (void);
 
-GstGLWindowEagl * gst_gl_window_eagl_new (void);
+GstGLWindowEagl * gst_gl_window_eagl_new (GstGLDisplay * display);
 
 G_END_DECLS
 
diff --git a/gst-libs/gst/gl/eagl/gstglwindow_eagl.m b/gst-libs/gst/gl/eagl/gstglwindow_eagl.m
index 7ccffa8..359b2b5 100644
--- a/gst-libs/gst/gl/eagl/gstglwindow_eagl.m
+++ b/gst-libs/gst/gl/eagl/gstglwindow_eagl.m
@@ -84,11 +84,10 @@
 
 /* Must be called in the gl thread */
 GstGLWindowEagl *
-gst_gl_window_eagl_new (void)
+gst_gl_window_eagl_new (GstGLDisplay * display)
 {
-  GstGLWindowEagl *window = g_object_new (GST_GL_TYPE_WINDOW_EAGL, NULL);
-
-  return window;
+  /* there isn't an eagl display type */
+  return g_object_new (GST_GL_TYPE_WINDOW_EAGL, NULL);
 }
 
 static guintptr
diff --git a/gst-libs/gst/gl/egl/Makefile.am b/gst-libs/gst/gl/egl/Makefile.am
index e72aadd..b808178 100644
--- a/gst-libs/gst/gl/egl/Makefile.am
+++ b/gst-libs/gst/gl/egl/Makefile.am
@@ -13,7 +13,8 @@
 libgstgl_eglinclude_HEADERS = \
 	gstgldisplay_egl.h \
 	gstglcontext_egl.h \
-	gsteglimagememory.h
+	gsteglimagememory.h \
+	gstegl.h
 
 libgstgl_egl_la_CFLAGS = \
 	-I$(top_srcdir)/gst-libs \
diff --git a/gst-libs/gst/gl/egl/Makefile.in b/gst-libs/gst/gl/egl/Makefile.in
index d4c6e3f..2cf521d 100644
--- a/gst-libs/gst/gl/egl/Makefile.in
+++ b/gst-libs/gst/gl/egl/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,9 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst-libs/gst/gl/egl
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp $(libgstgl_eglinclude_HEADERS) \
-	$(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 \
@@ -121,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(libgstgl_eglinclude_HEADERS) \
+	$(noinst_HEADERS) $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -228,6 +237,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -245,8 +255,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -275,8 +283,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -324,11 +330,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -512,6 +521,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -590,7 +600,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -630,6 +645,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -749,7 +765,8 @@
 libgstgl_eglinclude_HEADERS = \
 	gstgldisplay_egl.h \
 	gstglcontext_egl.h \
-	gsteglimagememory.h
+	gsteglimagememory.h \
+	gstegl.h
 
 libgstgl_egl_la_CFLAGS = \
 	-I$(top_srcdir)/gst-libs \
@@ -779,7 +796,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst-libs/gst/gl/egl/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst-libs/gst/gl/egl/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1101,6 +1117,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-libgstgl_eglincludeHEADERS
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst-libs/gst/gl/egl/gstegl.h b/gst-libs/gst/gl/egl/gstegl.h
new file mode 100644
index 0000000..4fc2f3d
--- /dev/null
+++ b/gst-libs/gst/gl/egl/gstegl.h
@@ -0,0 +1,47 @@
+/*
+ * GStreamer
+ * Copyright (C) 2015 Matthew Waters <matthew@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.
+ */
+
+#ifndef _GST_EGL_H_
+#define _GST_EGL_H_
+
+#include <gst/gl/gstglconfig.h>
+
+#if defined (USE_EGL_RPI) && defined(__GNUC__)
+#ifndef __VCCOREVER__
+#define __VCCOREVER__ 0x04000000
+#endif
+
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wredundant-decls"
+#pragma GCC optimize ("gnu89-inline")
+#endif
+
+#ifndef EGL_EGLEXT_PROTOTYPES
+#define EGL_EGLEXT_PROTOTYPES 1
+#endif
+#include <EGL/egl.h>
+#include <EGL/eglext.h>
+
+#if defined (USE_EGL_RPI) && defined(__GNUC__)
+#pragma GCC reset_options
+#pragma GCC diagnostic pop
+#endif
+
+#endif /* _GST_EGL_H_ */
diff --git a/gst-libs/gst/gl/egl/gstglcontext_egl.c b/gst-libs/gst/gl/egl/gstglcontext_egl.c
index 14be7c6..3a4aa35 100644
--- a/gst-libs/gst/gl/egl/gstglcontext_egl.c
+++ b/gst-libs/gst/gl/egl/gstglcontext_egl.c
@@ -29,6 +29,7 @@
  */
 
 #include "gstglcontext_egl.h"
+#include <gst/gl/egl/gstegl.h>
 
 #if GST_GL_HAVE_WINDOW_X11
 #include "../x11/gstglwindow_x11.h"
@@ -99,11 +100,11 @@
 
 /* Must be called in the gl thread */
 GstGLContextEGL *
-gst_gl_context_egl_new (void)
+gst_gl_context_egl_new (GstGLDisplay * display)
 {
-  GstGLContextEGL *window = g_object_new (GST_GL_TYPE_CONTEXT_EGL, NULL);
-
-  return window;
+  /* XXX: display type could theoretically be anything, as long as
+   * eglGetDisplay supports it. */
+  return g_object_new (GST_GL_TYPE_CONTEXT_EGL, NULL);
 }
 
 static const gchar *
@@ -388,14 +389,14 @@
         gst_gl_context_egl_get_error_string ());
     goto failure;
   }
+  /* FIXME do we want a window vfunc ? */
+#if GST_GL_HAVE_WINDOW_X11
+  if (GST_GL_IS_WINDOW_X11 (context->window)) {
+    gst_gl_window_x11_create_window ((GstGLWindowX11 *) context->window);
+  }
+#endif
 
   if (other_context == NULL) {
-    /* FIXME do we want a window vfunc ? */
-#if GST_GL_HAVE_WINDOW_X11
-    if (GST_GL_IS_WINDOW_X11 (context->window)) {
-      gst_gl_window_x11_create_window ((GstGLWindowX11 *) context->window);
-    }
-#endif
 #if GST_GL_HAVE_WINDOW_WAYLAND
     if (GST_GL_IS_WINDOW_WAYLAND_EGL (context->window)) {
       gst_gl_window_wayland_egl_create_window ((GstGLWindowWaylandEGL *)
@@ -621,13 +622,40 @@
 }
 
 gpointer
-gst_gl_context_egl_get_proc_address (GstGLContext * context, const gchar * name)
+gst_gl_context_egl_get_proc_address (GstGLAPI gl_api, const gchar * name)
 {
   gpointer result = NULL;
   static GOnce g_once = G_ONCE_INIT;
-  GstGLAPI gl_api = gst_gl_context_get_gl_api (context);
 
-  result = gst_gl_context_default_get_proc_address (gl_api, name);
+#ifdef __APPLE__
+#if GST_GL_HAVE_OPENGL && !defined(GST_GL_LIBGL_MODULE_NAME)
+  if (!result && (gl_api & (GST_GL_API_OPENGL | GST_GL_API_OPENGL3))) {
+    static GModule *module_opengl = NULL;
+    if (g_once_init_enter (&module_opengl)) {
+      GModule *setup_module_opengl =
+          g_module_open ("libGL.dylib", G_MODULE_BIND_LAZY);
+      g_once_init_leave (&module_opengl, setup_module_opengl);
+    }
+    if (module_opengl)
+      g_module_symbol (module_opengl, name, &result);
+  }
+#endif
+#if GST_GL_HAVE_GLES2 && !defined(GST_GL_LIBGLESV2_MODULE_NAME)
+  if (!result && (gl_api & (GST_GL_API_GLES2))) {
+    static GModule *module_gles2 = NULL;
+    if (g_once_init_enter (&module_gles2)) {
+      GModule *setup_module_gles2 =
+          g_module_open ("libGLESv2.dylib", G_MODULE_BIND_LAZY);
+      g_once_init_leave (&module_gles2, setup_module_gles2);
+    }
+    if (module_gles2)
+      g_module_symbol (module_gles2, name, &result);
+  }
+#endif
+#endif // __APPLE__
+
+  if (!result)
+    result = gst_gl_context_default_get_proc_address (gl_api, name);
 
   g_once (&g_once, load_egl_module, NULL);
 
diff --git a/gst-libs/gst/gl/egl/gstglcontext_egl.h b/gst-libs/gst/gl/egl/gstglcontext_egl.h
index 82119fc..88b8bd7 100644
--- a/gst-libs/gst/gl/egl/gstglcontext_egl.h
+++ b/gst-libs/gst/gl/egl/gstglcontext_egl.h
@@ -23,12 +23,14 @@
 
 #include <gst/gst.h>
 #include <gst/gl/gl.h>
+#include <gst/gl/egl/gstegl.h>
 
 G_BEGIN_DECLS
 
 typedef struct _GstGLContextEGL GstGLContextEGL;
 typedef struct _GstGLContextEGLClass GstGLContextEGLClass;
 
+GType gst_gl_context_egl_get_type     (void);
 #define GST_GL_TYPE_CONTEXT_EGL         (gst_gl_context_egl_get_type())
 #define GST_GL_CONTEXT_EGL(o)           (G_TYPE_CHECK_INSTANCE_CAST((o), GST_GL_TYPE_CONTEXT_EGL, GstGLContextEGL))
 #define GST_GL_CONTEXT_EGL_CLASS(k)     (G_TYPE_CHECK_CLASS((k), GST_GL_TYPE_CONTEXT_EGL, GstGLContextEGLClass))
@@ -58,10 +60,9 @@
   GstGLContextClass parent;
 };
 
-GType gst_gl_context_egl_get_type     (void);
-GstGLContextEGL *   gst_gl_context_egl_new                  (void);
+GstGLContextEGL *   gst_gl_context_egl_new                  (GstGLDisplay * display);
 guintptr            gst_gl_context_egl_get_current_context  (void);
-gpointer            gst_gl_context_egl_get_proc_address     (GstGLContext * context, const gchar * name);
+gpointer            gst_gl_context_egl_get_proc_address     (GstGLAPI gl_api, const gchar * name);
 
 /* TODO:
  * add support for EGL_NO_CONTEXT
diff --git a/gst-libs/gst/gl/egl/gstgldisplay_egl.h b/gst-libs/gst/gl/egl/gstgldisplay_egl.h
index 2e47319..18c7e4f 100644
--- a/gst-libs/gst/gl/egl/gstgldisplay_egl.h
+++ b/gst-libs/gst/gl/egl/gstgldisplay_egl.h
@@ -23,6 +23,7 @@
 
 #include <gst/gst.h>
 #include <gst/gl/gstgldisplay.h>
+#include <gst/gl/egl/gstegl.h>
 
 G_BEGIN_DECLS
 
diff --git a/gst-libs/gst/gl/gl.h b/gst-libs/gst/gl/gl.h
index d6dcb51..4b1e8ef 100644
--- a/gst-libs/gst/gl/gl.h
+++ b/gst-libs/gst/gl/gl.h
@@ -48,5 +48,6 @@
 #include <gst/gl/gstglfilter.h>
 #include <gst/gl/gstglshadervariables.h>
 #include <gst/gl/gstglsyncmeta.h>
+#include <gst/gl/gstgloverlaycompositor.h>
 
 #endif /* __GST_GL_H__ */
diff --git a/gst-libs/gst/gl/glprototypes/Makefile.in b/gst-libs/gst/gl/glprototypes/Makefile.in
index c3514ec..05a72a1 100644
--- a/gst-libs/gst/gl/glprototypes/Makefile.in
+++ b/gst-libs/gst/gl/glprototypes/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -15,7 +15,17 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -80,8 +90,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst-libs/gst/gl/glprototypes
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(prototype_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 \
@@ -119,6 +127,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(prototype_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -190,6 +200,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in README
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -207,8 +218,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -237,8 +246,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -286,11 +293,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -474,6 +484,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -552,7 +563,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -592,6 +608,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -733,7 +750,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst-libs/gst/gl/glprototypes/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst-libs/gst/gl/glprototypes/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -980,6 +996,8 @@
 	ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-prototypeHEADERS
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst-libs/gst/gl/glprototypes/opengl.h b/gst-libs/gst/gl/glprototypes/opengl.h
index 24ba20d..ac47d52 100644
--- a/gst-libs/gst/gl/glprototypes/opengl.h
+++ b/gst-libs/gst/gl/glprototypes/opengl.h
@@ -57,6 +57,8 @@
                      (double near_val, double far_val))
 GST_GL_EXT_FUNCTION (void, DrawBuffer,
                      (GLenum mode))
+GST_GL_EXT_FUNCTION (void, ClearDepth,
+                     (double depth))
 GST_GL_EXT_END ()
 
 GST_GL_EXT_BEGIN (only_in_big_gl_compat,
diff --git a/gst-libs/gst/gl/gstgl_fwd.h b/gst-libs/gst/gl/gstgl_fwd.h
index cbf20e1..cb29c6d 100644
--- a/gst-libs/gst/gl/gstgl_fwd.h
+++ b/gst-libs/gst/gl/gstgl_fwd.h
@@ -78,6 +78,9 @@
 typedef struct _GstGLViewConvertClass GstGLViewConvertClass;
 typedef struct _GstGLViewConvertPrivate GstGLViewConvertPrivate;
 
+typedef struct _GstGLOverlayCompositor GstGLOverlayCompositor;
+typedef struct _GstGLOverlayCompositorClass GstGLOverlayCompositorClass;
+
 G_END_DECLS
 
 #endif /* __GST_GL_FWD_H__ */
diff --git a/gst-libs/gst/gl/gstglapi.h b/gst-libs/gst/gl/gstglapi.h
index c260590..5ef1c65 100644
--- a/gst-libs/gst/gl/gstglapi.h
+++ b/gst-libs/gst/gl/gstglapi.h
@@ -23,37 +23,12 @@
 
 #include <gst/gl/gstglconfig.h>
 
-#if GST_GL_HAVE_PLATFORM_EGL
-
-#if defined (USE_EGL_RPI) && defined(__GNUC__)
-#ifndef __VCCOREVER__
-#define __VCCOREVER__ 0x04000000
-#endif
-
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wredundant-decls"
-#pragma GCC optimize ("gnu89-inline")
-#endif
-
-#ifndef EGL_EGLEXT_PROTOTYPES
-#define EGL_EGLEXT_PROTOTYPES 1
-#endif
-#include <EGL/egl.h>
-#include <EGL/eglext.h>
-
-#if defined (USE_EGL_RPI) && defined(__GNUC__)
-#pragma GCC reset_options
-#pragma GCC diagnostic pop
-#endif
-
-#endif
-
 /* OpenGL 2.0 for Embedded Systems */
 #if GST_GL_HAVE_GLES2
 #ifndef GL_GLEXT_PROTOTYPES
 #define GL_GLEXT_PROTOTYPES 1
 #endif
-# ifdef __APPLE__
+# ifdef HAVE_IOS
 #  include <OpenGLES/ES2/gl.h>
 #  include <OpenGLES/ES2/glext.h>
 # else
diff --git a/gst-libs/gst/gl/gstglbasebuffer.c b/gst-libs/gst/gl/gstglbasebuffer.c
index 827c64e..61091b8 100644
--- a/gst-libs/gst/gl/gstglbasebuffer.c
+++ b/gst-libs/gst/gl/gstglbasebuffer.c
@@ -132,6 +132,8 @@
       align, offset, size);
 
   mem->context = gst_object_ref (context);
+  mem->data = NULL;
+  mem->alloc_data = NULL;
 
   g_mutex_init (&mem->lock);
 
@@ -173,6 +175,8 @@
   if (gl_mem->data)
     return gl_mem;
 
+  GST_CAT_LOG (GST_CAT_GL_BASE_BUFFER, "%p attempting allocation of data "
+      "pointer of size %" G_GSIZE_FORMAT, gl_mem, mem->maxsize);
   gl_mem->alloc_data = g_try_malloc (mem->maxsize);
 
   if (gl_mem->alloc_data == NULL) {
@@ -182,6 +186,9 @@
 
   gl_mem->data = _align_data (gl_mem->alloc_data, mem->align, &mem->maxsize);
 
+  GST_CAT_DEBUG (GST_CAT_GL_BASE_BUFFER, "%p allocated data pointer alloc %p, "
+      "data %p", gl_mem, gl_mem->alloc_data, gl_mem->data);
+
   return gl_mem;
 }
 
diff --git a/gst-libs/gst/gl/gstglbasefilter.c b/gst-libs/gst/gl/gstglbasefilter.c
index ff6c5e4..c89d836 100644
--- a/gst-libs/gst/gl/gstglbasefilter.c
+++ b/gst-libs/gst/gl/gstglbasefilter.c
@@ -339,14 +339,8 @@
       filter->context =
           gst_gl_display_get_gl_context_for_thread (filter->display, NULL);
       if (!filter->context) {
-        filter->context = gst_gl_context_new (filter->display);
-        if (!filter->context) {
-          GST_OBJECT_UNLOCK (filter->display);
-          goto context_null_error;
-        }
-
-        if (!gst_gl_context_create (filter->context,
-                filter->priv->other_context, &error)) {
+        if (!gst_gl_display_create_context (filter->display,
+                filter->priv->other_context, &filter->context, &error)) {
           GST_OBJECT_UNLOCK (filter->display);
           goto context_error;
         }
@@ -372,12 +366,6 @@
         (NULL));
     return FALSE;
   }
-context_null_error:
-  {
-    GST_ELEMENT_ERROR (trans, RESOURCE, FAILED,
-        ("Failed to create context."), (NULL));
-    return FALSE;
-  }
 error:
   {
     GST_ELEMENT_ERROR (trans, LIBRARY, INIT,
diff --git a/gst-libs/gst/gl/gstglcolorconvert.c b/gst-libs/gst/gl/gstglcolorconvert.c
index da903f4..5915a39 100644
--- a/gst-libs/gst/gl/gstglcolorconvert.c
+++ b/gst-libs/gst/gl/gstglcolorconvert.c
@@ -320,6 +320,35 @@
       "}"
 };
 
+/* RGB to NV12/NV21 conversion */
+/* NV12: u, v
+   NV21: v, u */
+static const char frag_RGB_to_NV12_NV21[] = {
+    "#ifdef GL_ES\n"
+    "precision mediump float;\n"
+    "#endif\n"
+    "varying vec2 v_texcoord;\n"
+    "uniform sampler2D tex;\n"
+    "uniform vec2 tex_scale0;\n"
+    "uniform vec2 tex_scale1;\n"
+    "uniform vec2 tex_scale2;\n"
+    RGB_TO_YUV_COEFFICIENTS
+    "void main(void) {\n"
+    "  float y, u, v;\n"
+    "  vec4 texel, uv_texel;\n"
+    "  texel = texture2D(tex, v_texcoord * tex_scale0).%c%c%c%c;\n"
+    "  uv_texel = texture2D(tex, v_texcoord * tex_scale0 * 2.0).%c%c%c%c;\n"
+    "  y = dot(texel.rgb, coeff1);\n"
+    "  u = dot(uv_texel.rgb, coeff2);\n"
+    "  v = dot(uv_texel.rgb, coeff3);\n"
+    "  y += offset.x;\n"
+    "  u += offset.y;\n"
+    "  v += offset.z;\n"
+    "  gl_FragData[0] = vec4(y, 0.0, 0.0, 1.0);\n"
+    "  gl_FragData[1] = vec4(%c, %c, 0.0, 1.0);\n"
+    "}"
+};
+
 /* YUY2:r,g,a
    UYVY:a,b,r */
 static const gchar frag_YUY2_UYVY_to_RGB[] =
@@ -731,10 +760,13 @@
       (GST_CAPS_FEATURE_MEMORY_GL_MEMORY, GST_GL_COLOR_CONVERT_FORMATS));
 
   caps = gst_gl_color_convert_caps_remove_format_info (caps);
+
   result = gst_caps_intersect (caps, templ);
   gst_caps_unref (caps);
   gst_caps_unref (templ);
 
+  result = gst_gl_overlay_compositor_add_caps (result);
+
   if (filter) {
     GstCaps *tmp;
 
@@ -1125,6 +1157,20 @@
           "u", "y", "v", "y");
       info->out_n_textures = 1;
       break;
+    case GST_VIDEO_FORMAT_NV12:
+      info->frag_prog = g_strdup_printf (frag_RGB_to_NV12_NV21,
+          pixel_order[0], pixel_order[1], pixel_order[2], pixel_order[3],
+          pixel_order[0], pixel_order[1], pixel_order[2], pixel_order[3],
+          'u', 'v');
+      info->out_n_textures = 2;
+      break;
+    case GST_VIDEO_FORMAT_NV21:
+      info->frag_prog = g_strdup_printf (frag_RGB_to_NV12_NV21,
+          pixel_order[0], pixel_order[1], pixel_order[2], pixel_order[3],
+          pixel_order[0], pixel_order[1], pixel_order[2], pixel_order[3],
+          'v', 'u');
+      info->out_n_textures = 2;
+      break;
     default:
       break;
   }
@@ -1664,6 +1710,7 @@
   GstVideoInfo *in_info = &convert->in_info;
   gboolean res = TRUE;
   gint views, v;
+  GstVideoOverlayCompositionMeta *composition_meta;
 
   convert->outbuf = NULL;
 
@@ -1702,6 +1749,14 @@
       gst_gl_sync_meta_set_sync_point (sync_meta, convert->context);
   }
 
+  composition_meta =
+      gst_buffer_get_video_overlay_composition_meta (convert->inbuf);
+  if (composition_meta) {
+    GST_DEBUG ("found video overlay composition meta, appliying on output.");
+    gst_buffer_add_video_overlay_composition_meta
+        (convert->outbuf, composition_meta->overlay);
+  }
+
   convert->priv->result = res;
   return;
 }
@@ -1714,7 +1769,7 @@
   guint out_width, out_height;
   gint i;
 
-  GLint viewport_dim[4];
+  GLint viewport_dim[4] = { 0 };
 
   GLenum multipleRT[] = {
     GL_COLOR_ATTACHMENT0,
diff --git a/gst-libs/gst/gl/gstglcolorconvert.h b/gst-libs/gst/gl/gstglcolorconvert.h
index 4aa8985..8e66be4 100644
--- a/gst-libs/gst/gl/gstglcolorconvert.h
+++ b/gst-libs/gst/gl/gstglcolorconvert.h
@@ -98,6 +98,11 @@
     GST_VIDEO_CAPS_MAKE_WITH_FEATURES (GST_CAPS_FEATURE_MEMORY_GL_MEMORY, \
         GST_GL_COLOR_CONVERT_FORMATS)
 
+#define GST_GL_COLOR_CONVERT_VIDEO_OVERLAY_COMPOSITION_CAPS \
+    GST_VIDEO_CAPS_MAKE_WITH_FEATURES (GST_CAPS_FEATURE_MEMORY_GL_MEMORY \
+        "," GST_CAPS_FEATURE_META_GST_VIDEO_OVERLAY_COMPOSITION, \
+        GST_GL_COLOR_CONVERT_FORMATS)
+
 GstGLColorConvert * gst_gl_color_convert_new (GstGLContext * context);
 
 GstCaps *   gst_gl_color_convert_transform_caps (GstGLContext * convert,
diff --git a/gst-libs/gst/gl/gstglcontext.c b/gst-libs/gst/gl/gstglcontext.c
index 637ecdf..9ec30ca 100644
--- a/gst-libs/gst/gl/gstglcontext.c
+++ b/gst-libs/gst/gl/gstglcontext.c
@@ -40,15 +40,15 @@
 #define _GNU_SOURCE
 #endif
 
-#ifndef GL_NUM_EXTENSIONS
-#define GL_NUM_EXTENSIONS 0x0000821d
-#endif
-
 #include <gmodule.h>
 
 #include "gl.h"
 #include "gstglcontext.h"
 
+#ifndef GL_NUM_EXTENSIONS
+#define GL_NUM_EXTENSIONS 0x0000821d
+#endif
+
 #if GST_GL_HAVE_PLATFORM_GLX
 #include "x11/gstglcontext_glx.h"
 #endif
@@ -133,6 +133,35 @@
 #error "Add module loading support for GLES3"
 #endif
 
+/* Context sharedness es tracked by a unique id stored in each context object
+ * in order track complex creation/deletion scenarios.  As a result, sharedness
+ * can only be successfully validated between two GstGLContext's where one is
+ * not a wrapped context.
+ *
+ * As there is no API at the winsys level to tell whether two OpenGL contexts
+ * can share GL resources, this is the next best thing.
+ */
+static volatile guint sharegroup_idx;
+
+static guint
+_new_sharegroup_id (void)
+{
+  guint current, ret;
+
+  do {
+    current = g_atomic_int_get (&sharegroup_idx);
+    ret = current + 1;
+
+    /* 0 is special */
+    if (ret == 0)
+      ret++;
+  } while (!g_atomic_int_compare_and_exchange (&sharegroup_idx, current, ret));
+
+  GST_TRACE ("generated new share group id %u", ret);
+
+  return ret;
+}
+
 #define GST_CAT_DEFAULT gst_gl_context_debug
 GST_DEBUG_CATEGORY (GST_CAT_DEFAULT);
 
@@ -145,8 +174,6 @@
 static void _init_debug (void);
 
 static gpointer gst_gl_context_create_thread (GstGLContext * context);
-static gpointer _default_get_proc_address (GstGLContext * context,
-    const gchar * name);
 static void gst_gl_context_finalize (GObject * object);
 
 struct _GstGLContextPrivate
@@ -163,6 +190,7 @@
   gboolean alive;
 
   GWeakRef other_context_ref;
+  guint sharegroup_id;
   GError **error;
 
   gint gl_major;
@@ -239,7 +267,8 @@
 {
   g_type_class_add_private (klass, sizeof (GstGLContextPrivate));
 
-  klass->get_proc_address = GST_DEBUG_FUNCPTR (_default_get_proc_address);
+  klass->get_proc_address =
+      GST_DEBUG_FUNCPTR (gst_gl_context_default_get_proc_address);
 
   G_OBJECT_CLASS (klass)->finalize = gst_gl_context_finalize;
 
@@ -282,24 +311,24 @@
       ", user choice:%s", display, user_choice);
 #if GST_GL_HAVE_PLATFORM_CGL
   if (!context && (!user_choice || g_strstr_len (user_choice, 5, "cgl")))
-    context = GST_GL_CONTEXT (gst_gl_context_cocoa_new ());
+    context = GST_GL_CONTEXT (gst_gl_context_cocoa_new (display));
 #endif
 #if GST_GL_HAVE_PLATFORM_GLX
   if (!context && (!user_choice || g_strstr_len (user_choice, 3, "glx")))
-    context = GST_GL_CONTEXT (gst_gl_context_glx_new ());
+    context = GST_GL_CONTEXT (gst_gl_context_glx_new (display));
 #endif
 #if GST_GL_HAVE_PLATFORM_EGL
   if (!context && (!user_choice || g_strstr_len (user_choice, 7, "egl")))
-    context = GST_GL_CONTEXT (gst_gl_context_egl_new ());
+    context = GST_GL_CONTEXT (gst_gl_context_egl_new (display));
 #endif
 #if GST_GL_HAVE_PLATFORM_WGL
   if (!context && (!user_choice || g_strstr_len (user_choice, 3, "wgl"))) {
-    context = GST_GL_CONTEXT (gst_gl_context_wgl_new ());
+    context = GST_GL_CONTEXT (gst_gl_context_wgl_new (display));
   }
 #endif
 #if GST_GL_HAVE_PLATFORM_EAGL
   if (!context && (!user_choice || g_strstr_len (user_choice, 5, "eagl")))
-    context = GST_GL_CONTEXT (gst_gl_context_eagl_new ());
+    context = GST_GL_CONTEXT (gst_gl_context_eagl_new (display));
 #endif
 
   if (!context) {
@@ -359,6 +388,7 @@
   context = (GstGLContext *) context_wrap;
 
   context->display = gst_object_ref (display);
+  context->priv->sharegroup_id = _new_sharegroup_id ();
   context_wrap->handle = handle;
   context_wrap->platform = context_type;
   context_wrap->available_apis = available_apis;
@@ -381,7 +411,7 @@
   if (context_type == GST_GL_PLATFORM_CGL) {
     context_class->get_current_context =
         gst_gl_context_cocoa_get_current_context;
-    context_class->get_proc_address = _default_get_proc_address;
+    context_class->get_proc_address = gst_gl_context_default_get_proc_address;
   }
 #endif
 #if GST_GL_HAVE_PLATFORM_WGL
@@ -394,7 +424,7 @@
   if (context_type == GST_GL_PLATFORM_EAGL) {
     context_class->get_current_context =
         gst_gl_context_eagl_get_current_context;
-    context_class->get_proc_address = _default_get_proc_address;
+    context_class->get_proc_address = gst_gl_context_default_get_proc_address;
   }
 #endif
 
@@ -449,8 +479,35 @@
   return handle;
 }
 
+gpointer
+gst_gl_context_get_proc_address_with_platform (GstGLPlatform context_type,
+    GstGLAPI gl_api, const gchar * name)
+{
+  gpointer ret = NULL;
+
+#if GST_GL_HAVE_PLATFORM_GLX
+  if (!ret && (context_type & GST_GL_PLATFORM_GLX) != 0)
+    ret = gst_gl_context_glx_get_proc_address (gl_api, name);
+#endif
+#if GST_GL_HAVE_PLATFORM_EGL
+  if (!ret && (context_type & GST_GL_PLATFORM_EGL) != 0)
+    ret = gst_gl_context_egl_get_proc_address (gl_api, name);
+#endif
+#if GST_GL_HAVE_PLATFORM_WGL
+  if (!ret && (context_type & GST_GL_PLATFORM_WGL) != 0)
+    ret = gst_gl_context_wgl_get_proc_address (gl_api, name);
+#endif
+  /* CGL and EAGL rely on the default impl */
+
+  if (!ret)
+    ret = gst_gl_context_default_get_proc_address (gl_api, name);
+
+  return ret;
+}
+
 /**
  * gst_gl_context_get_current_gl_api:
+ * @platform: the #GstGLPlatform to retreive the API for
  * @major: (out): (allow-none): the major version
  * @minor: (out): (allow-none): the minor version
  *
@@ -463,7 +520,8 @@
  * Since: 1.6
  */
 GstGLAPI
-gst_gl_context_get_current_gl_api (guint * major, guint * minor)
+gst_gl_context_get_current_gl_api (GstGLPlatform platform, guint * major,
+    guint * minor)
 {
   const GLubyte *(*GetString) (GLenum name);
 #if GST_GL_HAVE_OPENGL
@@ -477,10 +535,13 @@
 
   while (ret != GST_GL_API_NONE) {
     /* FIXME: attempt to delve into the platform specific GetProcAddress */
-    GetString = gst_gl_context_default_get_proc_address (ret, "glGetString");
+    GetString =
+        gst_gl_context_get_proc_address_with_platform (platform, ret,
+        "glGetString");
 #if GST_GL_HAVE_OPENGL
     GetIntegerv =
-        gst_gl_context_default_get_proc_address (ret, "glGetIntegerv");
+        gst_gl_context_get_proc_address_with_platform (platform, ret,
+        "glGetIntegerv");
 #endif
     if (!GetString) {
       goto next;
@@ -692,14 +753,6 @@
   return context_class->get_gl_api (context);
 }
 
-static gpointer
-_default_get_proc_address (GstGLContext * context, const gchar * name)
-{
-  GstGLAPI gl_api = gst_gl_context_get_gl_api (context);
-
-  return gst_gl_context_default_get_proc_address (gl_api, name);
-}
-
 /**
  * gst_gl_context_get_proc_address:
  * @context: a #GstGLContext
@@ -720,12 +773,14 @@
 {
   gpointer ret;
   GstGLContextClass *context_class;
+  GstGLAPI gl_api;
 
   g_return_val_if_fail (GST_GL_IS_CONTEXT (context), NULL);
   context_class = GST_GL_CONTEXT_GET_CLASS (context);
   g_return_val_if_fail (context_class->get_proc_address != NULL, NULL);
 
-  ret = context_class->get_proc_address (context, name);
+  gl_api = gst_gl_context_get_gl_api (context);
+  ret = context_class->get_proc_address (gl_api, name);
 
   return ret;
 }
@@ -822,53 +877,13 @@
   return gst_object_ref (context->window);
 }
 
-static gboolean
-_share_group_descendant (GstGLContext * context, GstGLContext * other_context,
-    GstGLContext ** root)
-{
-  GstGLContext *next = gst_object_ref (context);
-  GstGLContext *prev = NULL;
-
-  /* given a context tree where --> means "has other gl context":
-   *
-   * a-->b-->c-->d
-   *    /   /
-   *   e   /
-   *      /
-   * f-->g
-   *
-   * return TRUE if @other_context is a descendant of @context
-   *
-   * e.g. [a, b], [f, d], [e, c] are all descendants
-   * but [b, a], [d, f], [e, f] are not descendants.  Provide the root node (d)
-   * so that we can check if two chains end up at the end with the same
-   * GstGLContext
-   */
-
-  while (next != NULL) {
-    if (next == other_context) {
-      gst_object_unref (next);
-      if (root)
-        *root = NULL;
-      return TRUE;
-    }
-
-    prev = next;
-    next = g_weak_ref_get (&next->priv->other_context_ref);
-    gst_object_unref (prev);
-  }
-
-  if (root != NULL)
-    *root = prev;
-
-  return FALSE;
-}
-
 /**
  * gst_gl_context_can_share:
  * @context: a #GstGLContext
  * @other_context: another #GstGLContext
  *
+ * Note: This will always fail for two wrapped #GstGLContext's
+ *
  * Returns: whether @context and @other_context are able to share OpenGL
  *      resources.
  *
@@ -877,16 +892,12 @@
 gboolean
 gst_gl_context_can_share (GstGLContext * context, GstGLContext * other_context)
 {
-  GstGLContext *root1, *root2;
-
   g_return_val_if_fail (GST_GL_IS_CONTEXT (context), FALSE);
   g_return_val_if_fail (GST_GL_IS_CONTEXT (other_context), FALSE);
 
   /* check if the contexts are descendants or the root nodes are the same */
-  return context == other_context
-      || _share_group_descendant (context, other_context, &root1)
-      || _share_group_descendant (other_context, context, &root2)
-      || ((root1 != NULL || root2 != NULL) && root1 == root2);
+  return context->priv->sharegroup_id != 0
+      && context->priv->sharegroup_id == other_context->priv->sharegroup_id;
 }
 
 /**
@@ -926,6 +937,10 @@
   if (!context->priv->created) {
     g_weak_ref_set (&context->priv->other_context_ref, other_context);
     context->priv->error = error;
+    if (other_context == NULL)
+      context->priv->sharegroup_id = _new_sharegroup_id ();
+    else
+      context->priv->sharegroup_id = other_context->priv->sharegroup_id;
 
     context->priv->gl_thread = g_thread_new ("gstglcontext",
         (GThreadFunc) gst_gl_context_create_thread, context);
@@ -1179,7 +1194,8 @@
   const GstGLFuncs *gl = context->gl_vtable;
   GString *ext_g_str = g_string_sized_new (1024);
   const gchar *ext_const_c_str = NULL;
-  int i, n;
+  GLint i = 0;
+  GLint n = 0;
 
   gl->GetIntegerv (GL_NUM_EXTENSIONS, &n);
 
@@ -1258,7 +1274,7 @@
 
   if (context_class->choose_format &&
       !context_class->choose_format (context, error)) {
-    GST_WARNING ("Failed to choose format");
+    GST_WARNING_OBJECT (context, "Failed to choose format");
     g_assert (error == NULL || *error != NULL);
     g_free (compiled_api_s);
     g_free (user_api_s);
@@ -1574,7 +1590,8 @@
 static void
 _gst_gl_context_thread_run_generic (RunGenericData * data)
 {
-  GST_TRACE ("running function:%p data:%p", data->func, data->data);
+  GST_TRACE_OBJECT (data->context, "running function:%p data:%p", data->func,
+      data->data);
 
   data->func (data->context, data->data);
 }
diff --git a/gst-libs/gst/gl/gstglcontext.h b/gst-libs/gst/gl/gstglcontext.h
index 1ee2e72..16b9d11 100644
--- a/gst-libs/gst/gl/gstglcontext.h
+++ b/gst-libs/gst/gl/gstglcontext.h
@@ -100,7 +100,7 @@
   guintptr      (*get_gl_context)     (GstGLContext *context);
   GstGLAPI      (*get_gl_api)         (GstGLContext *context);
   GstGLPlatform (*get_gl_platform)    (GstGLContext *context);
-  gpointer      (*get_proc_address)   (GstGLContext *context, const gchar *name);
+  gpointer      (*get_proc_address)   (GstGLAPI gl_api, const gchar *name);
   gboolean      (*activate)           (GstGLContext *context, gboolean activate);
   gboolean      (*choose_format)      (GstGLContext *context, GError **error);
   gboolean      (*create_context)     (GstGLContext *context, GstGLAPI gl_api,
@@ -136,6 +136,7 @@
 void          gst_gl_context_destroy          (GstGLContext *context);
 
 gpointer      gst_gl_context_default_get_proc_address (GstGLAPI gl_api, const gchar *name);
+gpointer      gst_gl_context_get_proc_address_with_platform (GstGLPlatform, GstGLAPI gl_api, const gchar *name);
 
 gboolean      gst_gl_context_set_window (GstGLContext *context, GstGLWindow *window);
 GstGLWindow * gst_gl_context_get_window (GstGLContext *context);
@@ -145,7 +146,7 @@
 gboolean      gst_gl_context_check_feature (GstGLContext *context, const gchar *feature);
 
 guintptr      gst_gl_context_get_current_gl_context     (GstGLPlatform platform);
-GstGLAPI      gst_gl_context_get_current_gl_api         (guint *major, guint *minor);
+GstGLAPI      gst_gl_context_get_current_gl_api         (GstGLPlatform platform, guint *major, guint *minor);
 
 gboolean gst_gl_context_fill_info (GstGLContext * context, GError ** error);
 
diff --git a/gst-libs/gst/gl/gstglfilter.c b/gst-libs/gst/gl/gstglfilter.c
index 63f5bad..600b7c7 100644
--- a/gst-libs/gst/gl/gstglfilter.c
+++ b/gst-libs/gst/gl/gstglfilter.c
@@ -159,11 +159,6 @@
 gst_gl_filter_reset (GstGLFilter * filter)
 {
   gst_caps_replace (&filter->out_caps, NULL);
-
-  if (filter->pool) {
-    gst_object_unref (filter->pool);
-    filter->pool = NULL;
-  }
 }
 
 static gboolean
@@ -729,7 +724,6 @@
 {
   GstGLFilter *filter = GST_GL_FILTER (trans);
   GstGLContext *context = GST_GL_BASE_FILTER (filter)->context;
-  GstStructure *config;
   GstCaps *caps;
   guint size;
   gboolean need_pool;
@@ -740,43 +734,29 @@
     goto no_caps;
 
   if (need_pool) {
-    if (filter->pool) {
-      GstCaps *pcaps;
+    GstBufferPool *pool;
+    GstStructure *config;
+    GstVideoInfo info;
 
-      /* we had a pool, check caps */
-      GST_DEBUG_OBJECT (filter, "check existing pool caps");
-      config = gst_buffer_pool_get_config (filter->pool);
-      gst_buffer_pool_config_get_params (config, &pcaps, &size, NULL, NULL);
+    if (!gst_video_info_from_caps (&info, caps))
+      goto invalid_caps;
 
-      if (!gst_caps_is_equal (caps, pcaps)) {
-        GST_DEBUG_OBJECT (filter, "pool has different caps");
-        /* different caps, we can't use this pool */
-        gst_object_unref (filter->pool);
-        filter->pool = NULL;
-      }
-      gst_structure_free (config);
+    /* the normal size of a frame */
+    size = info.size;
+
+    GST_DEBUG_OBJECT (filter, "create new pool");
+    pool = gst_gl_buffer_pool_new (context);
+
+    config = gst_buffer_pool_get_config (pool);
+    gst_buffer_pool_config_set_params (config, caps, size, 0, 0);
+
+    if (!gst_buffer_pool_set_config (pool, config)) {
+      g_object_unref (pool);
+      goto config_failed;
     }
 
-    if (filter->pool == NULL) {
-      GstVideoInfo info;
-
-      if (!gst_video_info_from_caps (&info, caps))
-        goto invalid_caps;
-
-      /* the normal size of a frame */
-      size = info.size;
-
-      GST_DEBUG_OBJECT (filter, "create new pool");
-      filter->pool = gst_gl_buffer_pool_new (context);
-
-      config = gst_buffer_pool_get_config (filter->pool);
-      gst_buffer_pool_config_set_params (config, caps, size, 0, 0);
-
-      if (!gst_buffer_pool_set_config (filter->pool, config))
-        goto config_failed;
-    }
-
-    gst_query_add_allocation_pool (query, filter->pool, size, 1, 0);
+    gst_query_add_allocation_pool (query, pool, size, 1, 0);
+    g_object_unref (pool);
   }
 
   if (context->gl_vtable->FenceSync)
@@ -1144,37 +1124,7 @@
 
   GST_DEBUG ("drawing texture:%u dimensions:%ux%u", texture, width, height);
 
-#if GST_GL_HAVE_OPENGL
-  if (gst_gl_context_get_gl_api (context) & GST_GL_API_OPENGL) {
-    GLfloat verts[] = { -1.0f, -1.0f,
-      1.0f, -1.0f,
-      1.0f, 1.0f,
-      -1.0f, 1.0f
-    };
-    GLfloat texcoords[] = { 0.0f, 0.0f,
-      1.0f, 0.0f,
-      1.0f, 1.0f,
-      0.0f, 1.0f
-    };
-
-    gl->ActiveTexture (GL_TEXTURE0);
-    gl->BindTexture (GL_TEXTURE_2D, texture);
-
-    gl->EnableClientState (GL_VERTEX_ARRAY);
-    gl->VertexPointer (2, GL_FLOAT, 0, &verts);
-
-    gl->ClientActiveTexture (GL_TEXTURE0);
-    gl->EnableClientState (GL_TEXTURE_COORD_ARRAY);
-    gl->TexCoordPointer (2, GL_FLOAT, 0, &texcoords);
-
-    gl->DrawArrays (GL_TRIANGLE_FAN, 0, 4);
-
-    gl->DisableClientState (GL_VERTEX_ARRAY);
-    gl->DisableClientState (GL_TEXTURE_COORD_ARRAY);
-  }
-#endif
-  if (gst_gl_context_get_gl_api (context) & (GST_GL_API_GLES2 |
-          GST_GL_API_OPENGL3)) {
+  {
     if (!filter->vertex_buffer) {
       if (gl->GenVertexArrays) {
         gl->GenVertexArrays (1, &filter->vao);
diff --git a/gst-libs/gst/gl/gstglfilter.h b/gst-libs/gst/gl/gstglfilter.h
index af91e55..94ab333 100644
--- a/gst-libs/gst/gl/gstglfilter.h
+++ b/gst-libs/gst/gl/gstglfilter.h
@@ -58,8 +58,6 @@
 {
   GstGLBaseFilter    parent;
 
-  GstBufferPool     *pool;
-
   GstVideoInfo       in_info;
   GstVideoInfo       out_info;
 
diff --git a/gst-libs/gst/gl/gstglframebuffer.c b/gst-libs/gst/gl/gstglframebuffer.c
index 7e958ca..fb706f5 100644
--- a/gst-libs/gst/gl/gstglframebuffer.c
+++ b/gst-libs/gst/gl/gstglframebuffer.c
@@ -173,7 +173,7 @@
     GLuint texture_fbo, GLCB_V2 cb, gpointer stuff)
 {
   const GstGLFuncs *gl;
-  GLint viewport_dim[4];
+  GLint viewport_dim[4] = { 0 };
 
   g_return_val_if_fail (GST_IS_GL_FRAMEBUFFER (frame), FALSE);
   g_return_val_if_fail (texture_fbo_width > 0 && texture_fbo_height > 0, FALSE);
diff --git a/gst-libs/gst/gl/gstglmemory.c b/gst-libs/gst/gl/gstglmemory.c
index d2f7687..5d3f73a 100644
--- a/gst-libs/gst/gl/gstglmemory.c
+++ b/gst-libs/gst/gl/gstglmemory.c
@@ -740,18 +740,20 @@
 _pbo_download_transfer (GstGLMemory * gl_mem, GstMapInfo * info, gsize size)
 {
   GstGLBaseBufferAllocatorClass *alloc_class;
-  gpointer data;
-
-  GST_DEBUG ("downloading texture %u using pbo %u", gl_mem->tex_id,
-      gl_mem->mem.id);
+  gpointer data = NULL;
 
   alloc_class =
       GST_GL_BASE_BUFFER_ALLOCATOR_CLASS (gst_gl_allocator_parent_class);
 
   /* texture -> pbo */
-  if (info->flags & GST_MAP_READ)
+  if (info->flags & GST_MAP_READ
+      && gl_mem->transfer_state & GST_GL_MEMORY_TRANSFER_NEED_DOWNLOAD) {
+    GST_CAT_TRACE (GST_CAT_GL_MEMORY, "attempting download of texture %u "
+        "using pbo %u", gl_mem->tex_id, gl_mem->mem.id);
+
     if (!_read_pixels_to_pbo (gl_mem))
       return NULL;
+  }
 
   /* get a cpu accessible mapping from the pbo */
   gl_mem->mem.target = GL_PIXEL_PACK_BUFFER;
@@ -779,12 +781,13 @@
       && gl_mem->tex_type != GST_VIDEO_GL_TEXTURE_TYPE_LUMINANCE_ALPHA)
     return NULL;
 
-  gst_gl_base_buffer_alloc_data ((GstGLBaseBuffer *) gl_mem);
-
   if (info->flags & GST_MAP_READ
       && gl_mem->transfer_state & GST_GL_MEMORY_TRANSFER_NEED_DOWNLOAD) {
     guint format, type;
 
+    GST_CAT_TRACE (GST_CAT_GL_MEMORY, "attempting download of texture %u "
+        "using glGetTexImage", gl_mem->tex_id);
+
     format = gst_gl_format_from_gl_texture_type (gl_mem->tex_type);
     type = GL_UNSIGNED_BYTE;
     if (gl_mem->tex_type == GST_VIDEO_GL_TEXTURE_TYPE_RGB16)
@@ -805,10 +808,10 @@
   if (size != -1 && size != ((GstMemory *) gl_mem)->maxsize)
     return NULL;
 
-  gst_gl_base_buffer_alloc_data ((GstGLBaseBuffer *) gl_mem);
-
   if (info->flags & GST_MAP_READ
       && gl_mem->transfer_state & GST_GL_MEMORY_TRANSFER_NEED_DOWNLOAD) {
+    GST_CAT_TRACE (GST_CAT_GL_MEMORY, "attempting download of texture %u "
+        "using glReadPixels", gl_mem->tex_id);
     if (!_gl_mem_read_pixels (gl_mem, gl_mem->mem.data))
       return NULL;
   }
@@ -819,9 +822,13 @@
 static gpointer
 _gl_mem_map_cpu_access (GstGLMemory * gl_mem, GstMapInfo * info, gsize size)
 {
-  gpointer data;
+  gpointer data = NULL;
 
-  data = _pbo_download_transfer (gl_mem, info, size);
+  gst_gl_base_buffer_alloc_data ((GstGLBaseBuffer *) gl_mem);
+
+  if (!data && gl_mem->mem.id
+      && CONTEXT_SUPPORTS_PBO_DOWNLOAD (gl_mem->mem.context))
+    data = _pbo_download_transfer (gl_mem, info, size);
   if (!data)
     data = _gl_mem_download_get_tex_image (gl_mem, info, size);
 
@@ -1347,7 +1354,9 @@
   GstGLBaseBuffer *mem = (GstGLBaseBuffer *) gl_mem;
 
   g_mutex_lock (&mem->lock);
-  _read_pixels_to_pbo (gl_mem);
+  if (_read_pixels_to_pbo (gl_mem))
+    GST_CAT_TRACE (GST_CAT_GL_MEMORY, "optimistic download of texture %u "
+        "using pbo %u", gl_mem->tex_id, gl_mem->mem.id);
   g_mutex_unlock (&mem->lock);
 }
 
@@ -1499,22 +1508,26 @@
  * @valign: a #GstVideoInfo
  * @data: a list of per plane data pointers
  * @textures: (transfer out): a list of #GstGLMemory
+ * @user_data: user data for the destroy function
+ * @notify: A function called each time a memory is freed
  *
  * Wraps per plane data pointer in @data into the corresponding entry in
- * @textures based on @info and padding from @valign.
+ * @textures based on @info and padding from @valign. Note that the @notify
+ * will be called as many time as there is planes.
  *
  * Returns: whether the memory's were sucessfully created.
  */
 gboolean
 gst_gl_memory_setup_wrapped (GstGLContext * context, GstVideoInfo * info,
     GstVideoAlignment * valign, gpointer data[GST_VIDEO_MAX_PLANES],
-    GstGLMemory * textures[GST_VIDEO_MAX_PLANES])
+    GstGLMemory * textures[GST_VIDEO_MAX_PLANES], gpointer user_data,
+    GDestroyNotify notify)
 {
   gint i;
 
   for (i = 0; i < GST_VIDEO_INFO_N_PLANES (info); i++) {
     textures[i] = (GstGLMemory *) gst_gl_memory_wrapped (context, info, i,
-        valign, data[i], NULL, NULL);
+        valign, data[i], user_data, notify);
   }
 
   return TRUE;
diff --git a/gst-libs/gst/gl/gstglmemory.h b/gst-libs/gst/gl/gstglmemory.h
index d124c7c..7bc4607 100644
--- a/gst-libs/gst/gl/gstglmemory.h
+++ b/gst-libs/gst/gl/gstglmemory.h
@@ -142,7 +142,9 @@
                                            GstVideoInfo * info,
                                            GstVideoAlignment *valign,
                                            gpointer data[GST_VIDEO_MAX_PLANES],
-                                           GstGLMemory *textures[GST_VIDEO_MAX_PLANES]);
+                                           GstGLMemory *textures[GST_VIDEO_MAX_PLANES],
+                                           gpointer user_data,
+                                           GDestroyNotify notify);
 
 gint          gst_gl_memory_get_texture_width  (GstGLMemory * gl_mem);
 gint          gst_gl_memory_get_texture_height (GstGLMemory * gl_mem);
diff --git a/gst-libs/gst/gl/gstgloverlaycompositor.c b/gst-libs/gst/gl/gstgloverlaycompositor.c
new file mode 100644
index 0000000..97a4aab
--- /dev/null
+++ b/gst-libs/gst/gl/gstgloverlaycompositor.c
@@ -0,0 +1,608 @@
+/*
+ * GStreamer
+ * Copyright (C) 2015 Lubosz Sarnecki <lubosz.sarnecki@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 <stdio.h>
+
+#include "gl.h"
+#include "gstgloverlaycompositor.h"
+
+GST_DEBUG_CATEGORY_STATIC (gst_gl_overlay_compositor_debug);
+#define GST_CAT_DEFAULT gst_gl_overlay_compositor_debug
+
+/*****************************************************************************
+ * GstGLCompositionOverlay object is internally used by GstGLOverlayCompositor
+ *****************************************************************************/
+
+#define GST_TYPE_GL_COMPOSITION_OVERLAY (gst_gl_composition_overlay_get_type())
+#define GST_GL_COMPOSITION_OVERLAY(obj) \
+  (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_GL_COMPOSITION_OVERLAY,\
+                              GstGLCompositionOverlay))
+
+typedef struct _GstGLCompositionOverlay GstGLCompositionOverlay;
+typedef struct _GstGLCompositionOverlayClass GstGLCompositionOverlayClass;
+
+static GType gst_gl_composition_overlay_get_type (void);
+
+/* *INDENT-OFF* */
+const gchar *fragment_shader =
+  "#ifdef GL_ES\n"
+  "precision mediump float;\n"
+  "#endif\n"
+  "varying vec2 v_texcoord;\n"
+  "uniform sampler2D tex;\n"
+  "void main(void)\n"
+  "{\n"
+  "  vec4 t = texture2D(tex, v_texcoord);\n"
+#if G_BYTE_ORDER == G_LITTLE_ENDIAN
+  "  gl_FragColor = t.bgra;\n"
+#else
+  "  gl_FragColor = t.gbar;\n"
+#endif
+  "}";
+/* *INDENT-ON* */
+
+struct _GstGLCompositionOverlay
+{
+  GstObject parent;
+  GstGLContext *context;
+
+  GLuint vao;
+  GLuint index_buffer;
+  GLuint position_buffer;
+  GLuint texcoord_buffer;
+  GLint position_attrib;
+  GLint texcoord_attrib;
+
+  GLfloat positions[16];
+
+  GLuint texture_id;
+  GstGLMemory *gl_memory;
+  GstVideoOverlayRectangle *rectangle;
+};
+
+struct _GstGLCompositionOverlayClass
+{
+  GstObjectClass object_class;
+};
+
+G_DEFINE_TYPE (GstGLCompositionOverlay, gst_gl_composition_overlay,
+    GST_TYPE_OBJECT);
+
+static void
+gst_gl_composition_overlay_init_vertex_buffer (GstGLContext * context,
+    gpointer overlay_pointer)
+{
+  const GstGLFuncs *gl = context->gl_vtable;
+  GstGLCompositionOverlay *overlay =
+      (GstGLCompositionOverlay *) overlay_pointer;
+
+  /* *INDENT-OFF* */
+  static const GLfloat texcoords[] = {
+      1.0f, 0.0f,
+      0.0f, 0.0f,
+      0.0f, 1.0f,
+      1.0f, 1.0f
+  };
+
+  static const GLushort indices[] = {
+    0, 1, 2, 0, 2, 3
+  };
+  /* *INDENT-ON* */
+
+  if (gl->GenVertexArrays) {
+    gl->GenVertexArrays (1, &overlay->vao);
+    gl->BindVertexArray (overlay->vao);
+  }
+
+  gl->GenBuffers (1, &overlay->position_buffer);
+  gl->BindBuffer (GL_ARRAY_BUFFER, overlay->position_buffer);
+  gl->BufferData (GL_ARRAY_BUFFER, 4 * 4 * sizeof (GLfloat), overlay->positions,
+      GL_STATIC_DRAW);
+
+  /* Load the vertex position */
+  gl->VertexAttribPointer (overlay->position_attrib, 4, GL_FLOAT, GL_FALSE,
+      4 * sizeof (GLfloat), NULL);
+
+  gl->GenBuffers (1, &overlay->texcoord_buffer);
+  gl->BindBuffer (GL_ARRAY_BUFFER, overlay->texcoord_buffer);
+  gl->BufferData (GL_ARRAY_BUFFER, 4 * 2 * sizeof (GLfloat), texcoords,
+      GL_STATIC_DRAW);
+
+  /* Load the texture coordinate */
+  gl->VertexAttribPointer (overlay->texcoord_attrib, 2, GL_FLOAT, GL_FALSE,
+      2 * sizeof (GLfloat), NULL);
+
+  gl->GenBuffers (1, &overlay->index_buffer);
+  gl->BindBuffer (GL_ELEMENT_ARRAY_BUFFER, overlay->index_buffer);
+  gl->BufferData (GL_ELEMENT_ARRAY_BUFFER, sizeof (indices), indices,
+      GL_STATIC_DRAW);
+
+  gl->EnableVertexAttribArray (overlay->position_attrib);
+  gl->EnableVertexAttribArray (overlay->texcoord_attrib);
+
+  if (gl->GenVertexArrays) {
+    gl->BindVertexArray (0);
+  }
+
+  gl->BindBuffer (GL_ELEMENT_ARRAY_BUFFER, 0);
+  gl->BindBuffer (GL_ARRAY_BUFFER, 0);
+}
+
+static void
+gst_gl_composition_overlay_free_vertex_buffer (GstGLContext * context,
+    gpointer overlay_pointer)
+{
+  const GstGLFuncs *gl = context->gl_vtable;
+  GstGLCompositionOverlay *overlay =
+      (GstGLCompositionOverlay *) overlay_pointer;
+  if (overlay->vao) {
+    gl->DeleteVertexArrays (1, &overlay->vao);
+    overlay->vao = 0;
+  }
+
+  if (overlay->position_buffer) {
+    gl->DeleteBuffers (1, &overlay->position_buffer);
+    overlay->position_buffer = 0;
+  }
+
+  if (overlay->texcoord_buffer) {
+    gl->DeleteBuffers (1, &overlay->position_buffer);
+    overlay->position_buffer = 0;
+  }
+
+  if (overlay->index_buffer) {
+    gl->DeleteBuffers (1, &overlay->index_buffer);
+    overlay->index_buffer = 0;
+  }
+}
+
+static void
+gst_gl_composition_overlay_bind_vertex_buffer (GstGLCompositionOverlay *
+    overlay)
+{
+  const GstGLFuncs *gl = overlay->context->gl_vtable;
+  gl->BindBuffer (GL_ARRAY_BUFFER, overlay->position_buffer);
+  gl->VertexAttribPointer (overlay->position_attrib, 4, GL_FLOAT, GL_FALSE,
+      4 * sizeof (GLfloat), NULL);
+
+  gl->BindBuffer (GL_ARRAY_BUFFER, overlay->texcoord_buffer);
+  gl->VertexAttribPointer (overlay->texcoord_attrib, 2, GL_FLOAT, GL_FALSE,
+      2 * sizeof (GLfloat), NULL);
+
+  gl->BindBuffer (GL_ELEMENT_ARRAY_BUFFER, overlay->index_buffer);
+
+  gl->EnableVertexAttribArray (overlay->position_attrib);
+  gl->EnableVertexAttribArray (overlay->texcoord_attrib);
+}
+
+static void
+gst_gl_composition_overlay_finalize (GObject * object)
+{
+  GstGLCompositionOverlay *overlay;
+
+  overlay = GST_GL_COMPOSITION_OVERLAY (object);
+
+  if (overlay->gl_memory)
+    gst_memory_unref ((GstMemory *) overlay->gl_memory);
+
+  if (overlay->context) {
+    gst_gl_context_thread_add (overlay->context,
+        gst_gl_composition_overlay_free_vertex_buffer, overlay);
+    gst_object_unref (overlay->context);
+  }
+
+  G_OBJECT_CLASS (gst_gl_composition_overlay_parent_class)->finalize (object);
+}
+
+
+static void
+gst_gl_composition_overlay_class_init (GstGLCompositionOverlayClass * klass)
+{
+  G_OBJECT_CLASS (klass)->finalize = gst_gl_composition_overlay_finalize;
+}
+
+static void
+gst_gl_composition_overlay_init (GstGLCompositionOverlay * overlay)
+{
+}
+
+static void
+gst_gl_composition_overlay_add_transformation (GstGLCompositionOverlay *
+    overlay, GstBuffer * video_buffer)
+{
+  gint comp_x, comp_y;
+  guint comp_width, comp_height;
+  GstVideoMeta *meta;
+  guint width, height;
+
+  float rel_x, rel_y, rel_w, rel_h;
+
+  meta = gst_buffer_get_video_meta (video_buffer);
+
+  gst_video_overlay_rectangle_get_render_rectangle (overlay->rectangle,
+      &comp_x, &comp_y, &comp_width, &comp_height);
+
+  width = meta->width;
+  height = meta->height;
+
+  /* calculate relative position */
+  rel_x = (float) comp_x / (float) width;
+  rel_y = (float) comp_y / (float) height;
+
+  rel_w = (float) comp_width / (float) width;
+  rel_h = (float) comp_height / (float) height;
+
+  /* transform from [0,1] to [-1,1], invert y axis */
+  rel_x = rel_x * 2.0 - 1.0;
+  rel_y = (1.0 - rel_y) * 2.0 - 1.0;
+  rel_w = rel_w * 2.0;
+  rel_h = rel_h * 2.0;
+
+  /* initialize position array */
+  overlay->positions[0] = rel_x + rel_w;
+  overlay->positions[1] = rel_y;
+  overlay->positions[2] = 0.0;
+  overlay->positions[3] = 1.0;
+  overlay->positions[4] = rel_x;
+  overlay->positions[5] = rel_y;
+  overlay->positions[6] = 0.0;
+  overlay->positions[7] = 1.0;
+  overlay->positions[8] = rel_x;
+  overlay->positions[9] = rel_y - rel_h;
+  overlay->positions[10] = 0.0;
+  overlay->positions[11] = 1.0;
+  overlay->positions[12] = rel_x + rel_w;
+  overlay->positions[13] = rel_y - rel_h;
+  overlay->positions[14] = 0.0;
+  overlay->positions[15] = 1.0;
+
+  gst_gl_context_thread_add (overlay->context,
+      gst_gl_composition_overlay_free_vertex_buffer, overlay);
+
+  gst_gl_context_thread_add (overlay->context,
+      gst_gl_composition_overlay_init_vertex_buffer, overlay);
+
+  GST_DEBUG
+      ("overlay position: (%d,%d) size: %dx%d video size: %dx%d",
+      comp_x, comp_y, comp_width, comp_height, meta->width, meta->height);
+}
+
+/* helper object API functions */
+
+static GstGLCompositionOverlay *
+gst_gl_composition_overlay_new (GstGLContext * context,
+    GstVideoOverlayRectangle * rectangle,
+    GLint position_attrib, GLint texcoord_attrib)
+{
+  GstGLCompositionOverlay *overlay =
+      g_object_new (GST_TYPE_GL_COMPOSITION_OVERLAY, NULL);
+
+  overlay->gl_memory = NULL;
+  overlay->texture_id = -1;
+  overlay->rectangle = rectangle;
+  overlay->context = gst_object_ref (context);
+  overlay->vao = 0;
+  overlay->position_attrib = position_attrib;
+  overlay->texcoord_attrib = texcoord_attrib;
+
+  GST_DEBUG_OBJECT (overlay, "Created new GstGLCompositionOverlay");
+
+  return overlay;
+}
+
+static void
+_video_frame_unmap_and_free (gpointer user_data)
+{
+  GstVideoFrame *frame = user_data;
+
+  gst_video_frame_unmap (frame);
+  g_slice_free (GstVideoFrame, frame);
+}
+
+static void
+gst_gl_composition_overlay_upload (GstGLCompositionOverlay * overlay,
+    GstBuffer * buf)
+{
+  GstGLMemory *comp_gl_memory = NULL;
+  GstBuffer *comp_buffer = NULL;
+  GstBuffer *overlay_buffer = NULL;
+  GstVideoInfo vinfo;
+  GstVideoMeta *vmeta;
+  GstVideoFrame *comp_frame;
+  GstVideoFrame gl_frame;
+
+  comp_buffer =
+      gst_video_overlay_rectangle_get_pixels_unscaled_argb (overlay->rectangle,
+      GST_VIDEO_OVERLAY_FORMAT_FLAG_PREMULTIPLIED_ALPHA);
+
+  comp_frame = g_slice_new (GstVideoFrame);
+
+  vmeta = gst_buffer_get_video_meta (comp_buffer);
+  gst_video_info_set_format (&vinfo, vmeta->format, vmeta->width,
+      vmeta->height);
+  vinfo.stride[0] = vmeta->stride[0];
+
+  if (gst_video_frame_map (comp_frame, &vinfo, comp_buffer, GST_MAP_READ)) {
+    gst_gl_composition_overlay_add_transformation (overlay, buf);
+
+    comp_gl_memory =
+        gst_gl_memory_wrapped (overlay->context, &comp_frame->info, 0, NULL,
+        comp_frame->data[0], comp_frame, _video_frame_unmap_and_free);
+
+    overlay_buffer = gst_buffer_new ();
+    gst_buffer_append_memory (overlay_buffer, (GstMemory *) comp_gl_memory);
+
+    if (!gst_video_frame_map (&gl_frame, &comp_frame->info, overlay_buffer,
+            GST_MAP_READ | GST_MAP_GL)) {
+      gst_buffer_unref (overlay_buffer);
+      _video_frame_unmap_and_free (comp_frame);
+      GST_WARNING_OBJECT (overlay, "Cannot upload overlay texture");
+      return;
+    }
+
+    gst_memory_ref ((GstMemory *) comp_gl_memory);
+    overlay->gl_memory = comp_gl_memory;
+    overlay->texture_id = comp_gl_memory->tex_id;
+
+    gst_buffer_unref (overlay_buffer);
+    gst_video_frame_unmap (&gl_frame);
+
+    GST_DEBUG ("uploaded overlay texture %d", overlay->texture_id);
+  } else {
+    g_slice_free (GstVideoFrame, comp_frame);
+  }
+}
+
+static void
+gst_gl_composition_overlay_draw (GstGLCompositionOverlay * overlay,
+    GstGLShader * shader)
+{
+  const GstGLFuncs *gl = overlay->context->gl_vtable;
+  if (gl->GenVertexArrays)
+    gl->BindVertexArray (overlay->vao);
+  else
+    gst_gl_composition_overlay_bind_vertex_buffer (overlay);
+
+  if (overlay->texture_id != -1)
+    gl->BindTexture (GL_TEXTURE_2D, overlay->texture_id);
+  gl->DrawElements (GL_TRIANGLES, 6, GL_UNSIGNED_SHORT, 0);
+}
+
+
+/********************************************************************
+ * GstGLOverlayCompositor object, the public helper object to render
+ * GstVideoCompositionOverlayMeta
+ ********************************************************************/
+
+#define DEBUG_INIT \
+  GST_DEBUG_CATEGORY_INIT (gst_gl_overlay_compositor_debug, \
+      "gloverlaycompositor", 0, "overlaycompositor");
+
+G_DEFINE_TYPE_WITH_CODE (GstGLOverlayCompositor, gst_gl_overlay_compositor,
+    GST_TYPE_OBJECT, DEBUG_INIT);
+
+static void gst_gl_overlay_compositor_finalize (GObject * object);
+static gboolean _is_rectangle_in_overlays (GList * overlays,
+    GstVideoOverlayRectangle * rectangle);
+static gboolean _is_overlay_in_rectangles (GstVideoOverlayComposition *
+    composition, GstGLCompositionOverlay * overlay);
+
+static void
+gst_gl_overlay_compositor_class_init (GstGLOverlayCompositorClass * klass)
+{
+  G_OBJECT_CLASS (klass)->finalize = gst_gl_overlay_compositor_finalize;
+}
+
+static void
+gst_gl_overlay_compositor_init (GstGLOverlayCompositor * compositor)
+{
+}
+
+static void
+gst_gl_overlay_compositor_init_gl (GstGLContext * context,
+    gpointer compositor_pointer)
+{
+  GstGLOverlayCompositor *compositor =
+      (GstGLOverlayCompositor *) compositor_pointer;
+
+  if (!gst_gl_shader_compile_with_default_v_and_check (compositor->shader,
+          fragment_shader, &compositor->position_attrib,
+          &compositor->texcoord_attrib)) {
+    GST_ERROR ("could not initialize shader.");
+  }
+}
+
+GstGLOverlayCompositor *
+gst_gl_overlay_compositor_new (GstGLContext * context)
+{
+  GstGLOverlayCompositor *compositor =
+      g_object_new (GST_TYPE_GL_OVERLAY_COMPOSITOR, NULL);
+
+  compositor->context = gst_object_ref (context);
+
+  compositor->shader = gst_gl_shader_new (compositor->context);
+
+  gst_gl_context_thread_add (compositor->context,
+      gst_gl_overlay_compositor_init_gl, compositor);
+
+  GST_DEBUG_OBJECT (compositor, "Created new GstGLOverlayCompositor");
+
+  return compositor;
+}
+
+static void
+gst_gl_overlay_compositor_finalize (GObject * object)
+{
+  GstGLOverlayCompositor *compositor;
+
+  compositor = GST_GL_OVERLAY_COMPOSITOR (object);
+
+  gst_gl_overlay_compositor_free_overlays (compositor);
+
+  if (compositor->context)
+    gst_object_unref (compositor->context);
+
+  if (compositor->shader) {
+    gst_object_unref (compositor->shader);
+    compositor->shader = NULL;
+  }
+
+  G_OBJECT_CLASS (gst_gl_overlay_compositor_parent_class)->finalize (object);
+}
+
+static gboolean
+_is_rectangle_in_overlays (GList * overlays,
+    GstVideoOverlayRectangle * rectangle)
+{
+  GList *l;
+
+  for (l = overlays; l != NULL; l = l->next) {
+    GstGLCompositionOverlay *overlay = (GstGLCompositionOverlay *) l->data;
+    if (overlay->rectangle == rectangle)
+      return TRUE;
+  }
+  return FALSE;
+}
+
+static gboolean
+_is_overlay_in_rectangles (GstVideoOverlayComposition * composition,
+    GstGLCompositionOverlay * overlay)
+{
+  guint i;
+
+  for (i = 0; i < gst_video_overlay_composition_n_rectangles (composition); i++) {
+    GstVideoOverlayRectangle *rectangle =
+        gst_video_overlay_composition_get_rectangle (composition, i);
+    if (overlay->rectangle == rectangle)
+      return TRUE;
+  }
+  return FALSE;
+}
+
+
+void
+gst_gl_overlay_compositor_free_overlays (GstGLOverlayCompositor * compositor)
+{
+  GList *l = compositor->overlays;
+  while (l != NULL) {
+    GList *next = l->next;
+    GstGLCompositionOverlay *overlay = (GstGLCompositionOverlay *) l->data;
+    compositor->overlays = g_list_delete_link (compositor->overlays, l);
+    gst_object_unref (overlay);
+    l = next;
+  }
+  g_list_free (compositor->overlays);
+  compositor->overlays = NULL;
+}
+
+void
+gst_gl_overlay_compositor_upload_overlays (GstGLOverlayCompositor * compositor,
+    GstBuffer * buf)
+{
+  GstVideoOverlayCompositionMeta *composition_meta;
+
+  composition_meta = gst_buffer_get_video_overlay_composition_meta (buf);
+  if (composition_meta) {
+    GstVideoOverlayComposition *composition = NULL;
+    guint num_overlays, i;
+    GList *l = compositor->overlays;
+
+    GST_DEBUG ("GstVideoOverlayCompositionMeta found.");
+
+    composition = composition_meta->overlay;
+    num_overlays = gst_video_overlay_composition_n_rectangles (composition);
+
+    /* add new overlays to list */
+    for (i = 0; i < num_overlays; i++) {
+      GstVideoOverlayRectangle *rectangle =
+          gst_video_overlay_composition_get_rectangle (composition, i);
+
+      if (!_is_rectangle_in_overlays (compositor->overlays, rectangle)) {
+        GstGLCompositionOverlay *overlay =
+            gst_gl_composition_overlay_new (compositor->context, rectangle,
+            compositor->position_attrib, compositor->texcoord_attrib);
+
+        gst_gl_composition_overlay_upload (overlay, buf);
+
+        compositor->overlays = g_list_append (compositor->overlays, overlay);
+      }
+    }
+
+    /* remove old overlays from list */
+    while (l != NULL) {
+      GList *next = l->next;
+      GstGLCompositionOverlay *overlay = (GstGLCompositionOverlay *) l->data;
+      if (!_is_overlay_in_rectangles (composition, overlay)) {
+        compositor->overlays = g_list_delete_link (compositor->overlays, l);
+        gst_object_unref (overlay);
+      }
+      l = next;
+    }
+  } else {
+    gst_gl_overlay_compositor_free_overlays (compositor);
+  }
+}
+
+void
+gst_gl_overlay_compositor_draw_overlays (GstGLOverlayCompositor * compositor)
+{
+  const GstGLFuncs *gl = compositor->context->gl_vtable;
+  if (compositor->overlays != NULL) {
+    GList *l;
+
+    gl->Enable (GL_BLEND);
+    gl->BlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+
+    gst_gl_shader_use (compositor->shader);
+    gl->ActiveTexture (GL_TEXTURE0);
+    gst_gl_shader_set_uniform_1i (compositor->shader, "tex", 0);
+
+    for (l = compositor->overlays; l != NULL; l = l->next) {
+      GstGLCompositionOverlay *overlay = (GstGLCompositionOverlay *) l->data;
+      gst_gl_composition_overlay_draw (overlay, compositor->shader);
+    }
+
+    gl->BindTexture (GL_TEXTURE_2D, 0);
+    gl->Disable (GL_BLEND);
+  }
+}
+
+GstCaps *
+gst_gl_overlay_compositor_add_caps (GstCaps * caps)
+{
+  GstCaps *composition_caps;
+  int i;
+
+  composition_caps = gst_caps_copy (caps);
+
+  for (i = 0; i < gst_caps_get_size (composition_caps); i++) {
+    GstCapsFeatures *f = gst_caps_get_features (composition_caps, i);
+    gst_caps_features_add (f,
+        GST_CAPS_FEATURE_META_GST_VIDEO_OVERLAY_COMPOSITION);
+  }
+
+  caps = gst_caps_merge (composition_caps, caps);
+
+  return caps;
+}
diff --git a/gst-libs/gst/gl/gstgloverlaycompositor.h b/gst-libs/gst/gl/gstgloverlaycompositor.h
new file mode 100644
index 0000000..dcecb49
--- /dev/null
+++ b/gst-libs/gst/gl/gstgloverlaycompositor.h
@@ -0,0 +1,78 @@
+/*
+ * GStreamer
+ * Copyright (C) 2015 Lubosz Sarnecki <lubosz.sarnecki@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.
+ */
+
+#ifndef __GST_GL_OVERLAY_COMPOSITOR_H__
+#define __GST_GL_OVERLAY_COMPOSITOR_H__
+
+#include <gst/video/video.h>
+#include <gst/gl/gstgl_fwd.h>
+
+#define GST_TYPE_GL_OVERLAY_COMPOSITOR (gst_gl_overlay_compositor_get_type())
+#define GST_GL_OVERLAY_COMPOSITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_GL_OVERLAY_COMPOSITOR,GstGLOverlayCompositor))
+#define GST_GL_OVERLAY_COMPOSITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_GL_OVERLAY_COMPOSITOR,GstGLOverlayCompositorClass))
+#define GST_IS_GL_OVERLAY_COMPOSITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_GL_OVERLAY_COMPOSITOR))
+#define GST_IS_GL_OVERLAY_COMPOSITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_GL_OVERLAY_COMPOSITOR))
+#define GST_GL_OVERLAY_COMPOSITOR_CAST(obj) ((GstGLOverlayCompositor*)(obj))
+
+G_BEGIN_DECLS
+
+GType gst_gl_overlay_compositor_get_type (void);
+
+/**
+ * GstGLOverlayCompositor
+ *
+ * Opaque #GstGLOverlayCompositor object
+ */
+struct _GstGLOverlayCompositor
+{
+  GstObject parent;
+  GstGLContext *context;
+  guint last_window_width;
+  guint last_window_height;
+
+  GList * overlays;
+ 
+  GstGLShader *shader;
+  GLint  position_attrib;
+  GLint  texcoord_attrib;
+};
+
+/**
+ * GstGLOverlayCompositorClass:
+ *
+ */
+struct _GstGLOverlayCompositorClass
+{
+  GstObjectClass object_class;
+};
+
+GstGLOverlayCompositor *gst_gl_overlay_compositor_new (GstGLContext * context);
+
+void gst_gl_overlay_compositor_free_overlays (GstGLOverlayCompositor * compositor);
+
+void gst_gl_overlay_compositor_upload_overlays (GstGLOverlayCompositor * compositor,
+        GstBuffer * buf);
+
+void gst_gl_overlay_compositor_draw_overlays (GstGLOverlayCompositor * compositor);
+
+GstCaps * gst_gl_overlay_compositor_add_caps(GstCaps * caps);
+
+G_END_DECLS
+#endif /* __GST_GL_OVERLAY_COMPOSITOR_H__ */
diff --git a/gst-libs/gst/gl/gstglshader.c b/gst-libs/gst/gl/gstglshader.c
index 016e475..a41bf38 100644
--- a/gst-libs/gst/gl/gstglshader.c
+++ b/gst-libs/gst/gl/gstglshader.c
@@ -522,6 +522,7 @@
     /* compile */
     gl->CompileShader (priv->vertex_handle);
     /* check everything is ok */
+    status = GL_FALSE;
     gl->GetShaderiv (priv->vertex_handle, GL_COMPILE_STATUS, &status);
 
     priv->vtable.GetShaderInfoLog (priv->vertex_handle,
@@ -561,6 +562,7 @@
     /* compile */
     gl->CompileShader (priv->fragment_handle);
     /* check everything is ok */
+    status = GL_FALSE;
     priv->vtable.GetShaderiv (priv->fragment_handle,
         GL_COMPILE_STATUS, &status);
 
@@ -587,6 +589,7 @@
 
   /* if nothing failed link shaders */
   gl->LinkProgram (priv->program_handle);
+  status = GL_FALSE;
   priv->vtable.GetProgramiv (priv->program_handle, GL_LINK_STATUS, &status);
 
   priv->vtable.GetProgramInfoLog (priv->program_handle,
diff --git a/gst-libs/gst/gl/gstglsyncmeta.c b/gst-libs/gst/gl/gstglsyncmeta.c
index dd195cc..f680353 100644
--- a/gst-libs/gst/gl/gstglsyncmeta.c
+++ b/gst-libs/gst/gl/gstglsyncmeta.c
@@ -69,9 +69,11 @@
       gl->DeleteSync (sync_meta->glsync);
     }
     sync_meta->glsync = gl->FenceSync (GL_SYNC_GPU_COMMANDS_COMPLETE, 0);
+    gl->Flush ();
     GST_LOG ("setting sync object %p", sync_meta->glsync);
+  } else {
+    gl->Finish ();
   }
-  gl->Flush ();
 }
 
 void
@@ -132,7 +134,11 @@
        * metas after data */
       gst_gl_sync_meta_set_sync_point (dmeta, smeta->context);
     }
+  } else {
+    /* return FALSE, if transform type is not supported */
+    return FALSE;
   }
+
   return TRUE;
 }
 
diff --git a/gst-libs/gst/gl/gstglupload.c b/gst-libs/gst/gl/gstglupload.c
index c37eed3..0addca1 100644
--- a/gst-libs/gst/gl/gstglupload.c
+++ b/gst-libs/gst/gl/gstglupload.c
@@ -50,6 +50,17 @@
 GST_DEBUG_CATEGORY_STATIC (gst_gl_upload_debug);
 #define GST_CAT_DEFAULT gst_gl_upload_debug
 
+#define DEBUG_INIT \
+  GST_DEBUG_CATEGORY_INIT (gst_gl_upload_debug, "glupload", 0, "upload");
+
+G_DEFINE_TYPE_WITH_CODE (GstGLUpload, gst_gl_upload, GST_TYPE_OBJECT,
+    DEBUG_INIT);
+static void gst_gl_upload_finalize (GObject * object);
+static void gst_gl_upload_release_buffer_unlocked (GstGLUpload * upload);
+
+#define GST_GL_UPLOAD_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), \
+    GST_TYPE_GL_UPLOAD, GstGLUploadPrivate))
+
 /* Define the maximum number of planes we can upload - handle 2 views per buffer */
 #define GST_GL_UPLOAD_MAX_PLANES (GST_VIDEO_MAX_PLANES * 2)
 
@@ -142,26 +153,17 @@
     GstCaps * out_caps)
 {
   struct GLMemoryUpload *upload = impl;
-  GstCapsFeatures *features, *gl_features;
-  gboolean ret = TRUE;
+  GstCapsFeatures *features;
   int i;
 
-  gl_features =
-      gst_caps_features_from_string (GST_CAPS_FEATURE_MEMORY_GL_MEMORY);
-
   features = gst_caps_get_features (out_caps, 0);
-  if (!gst_caps_features_is_equal (features, gl_features))
-    ret = FALSE;
+  if (!gst_caps_features_contains (features, GST_CAPS_FEATURE_MEMORY_GL_MEMORY))
+    return FALSE;
 
   features = gst_caps_get_features (in_caps, 0);
-  if (!gst_caps_features_is_equal (features, gl_features)
-      && !gst_caps_features_is_equal (features,
-          GST_CAPS_FEATURES_MEMORY_SYSTEM_MEMORY))
-    ret = FALSE;
-
-  gst_caps_features_free (gl_features);
-
-  if (!ret)
+  if (!gst_caps_features_contains (features, GST_CAPS_FEATURE_MEMORY_GL_MEMORY)
+      && !gst_caps_features_contains (features,
+          GST_CAPS_FEATURE_MEMORY_SYSTEM_MEMORY))
     return FALSE;
 
   if (buffer) {
@@ -229,9 +231,13 @@
     /* the normal size of a frame */
     size = info.size;
     gst_buffer_pool_config_set_params (config, caps, size, 0, 0);
+    gst_buffer_pool_config_add_option (config,
+        GST_BUFFER_POOL_OPTION_GL_SYNC_META);
 
-    if (!gst_buffer_pool_set_config (pool, config))
+    if (!gst_buffer_pool_set_config (pool, config)) {
+      gst_object_unref (pool);
       goto config_failed;
+    }
 
     gst_query_add_allocation_pool (query, pool, size, 1, 0);
   }
@@ -346,26 +352,18 @@
     GstCaps * out_caps)
 {
   struct EGLImageUpload *image = impl;
-  GstCapsFeatures *features, *gl_features;
+  GstCapsFeatures *features;
   gboolean ret = TRUE;
   int i;
 
-  gl_features =
-      gst_caps_features_from_string (GST_CAPS_FEATURE_MEMORY_EGL_IMAGE);
   features = gst_caps_get_features (in_caps, 0);
-  if (!gst_caps_features_is_equal (features, gl_features))
+  if (!gst_caps_features_contains (features, GST_CAPS_FEATURE_MEMORY_EGL_IMAGE))
     ret = FALSE;
 
-  gst_caps_features_free (gl_features);
-
-  gl_features =
-      gst_caps_features_from_string (GST_CAPS_FEATURE_MEMORY_GL_MEMORY);
   features = gst_caps_get_features (out_caps, 0);
-  if (!gst_caps_features_is_equal (features, gl_features))
+  if (!gst_caps_features_contains (features, GST_CAPS_FEATURE_MEMORY_GL_MEMORY))
     ret = FALSE;
 
-  gst_caps_features_free (gl_features);
-
   if (!ret)
     return FALSE;
 
@@ -530,28 +528,20 @@
     GstCaps * in_caps, GstCaps * out_caps)
 {
   struct GLUploadMeta *upload = impl;
-  GstCapsFeatures *features, *gl_features;
+  GstCapsFeatures *features;
   GstVideoGLTextureUploadMeta *meta;
   gboolean ret = TRUE;
 
   features = gst_caps_get_features (in_caps, 0);
-  gl_features =
-      gst_caps_features_from_string
-      (GST_CAPS_FEATURE_META_GST_VIDEO_GL_TEXTURE_UPLOAD_META);
 
-  if (!gst_caps_features_is_equal (features, gl_features))
+  if (!gst_caps_features_contains (features,
+          GST_CAPS_FEATURE_META_GST_VIDEO_GL_TEXTURE_UPLOAD_META))
     ret = FALSE;
 
-  gst_caps_features_free (gl_features);
-
-  gl_features =
-      gst_caps_features_from_string (GST_CAPS_FEATURE_MEMORY_GL_MEMORY);
   features = gst_caps_get_features (out_caps, 0);
-  if (!gst_caps_features_is_equal (features, gl_features))
+  if (!gst_caps_features_contains (features, GST_CAPS_FEATURE_MEMORY_GL_MEMORY))
     ret = FALSE;
 
-  gst_caps_features_free (gl_features);
-
   if (!ret)
     return ret;
 
@@ -708,12 +698,65 @@
   &_upload_meta_upload_free
 };
 
+struct RawUploadFrame
+{
+  gint ref_count;
+  GstVideoFrame frame;
+};
+
 struct RawUpload
 {
   GstGLUpload *upload;
-  GstVideoFrame in_frame;
+  struct RawUploadFrame *in_frame;
 };
 
+static struct RawUploadFrame *
+_raw_upload_frame_new (struct RawUpload *raw, GstBuffer * buffer)
+{
+  struct RawUploadFrame *frame;
+  GstVideoInfo *info;
+  gint i;
+
+  if (!buffer)
+    return NULL;
+
+  frame = g_slice_new (struct RawUploadFrame);
+  frame->ref_count = 1;
+
+  if (!gst_video_frame_map (&frame->frame, &raw->upload->priv->in_info,
+          buffer, GST_MAP_READ)) {
+    g_slice_free (struct RawUploadFrame, frame);
+    return NULL;
+  }
+
+  raw->upload->priv->in_info = frame->frame.info;
+  info = &raw->upload->priv->in_info;
+
+  /* Recalculate the offsets (and size) */
+  info->size = 0;
+  for (i = 0; i < GST_VIDEO_INFO_N_PLANES (info); i++) {
+    info->offset[i] = info->size;
+    info->size += gst_gl_get_plane_data_size (info, NULL, i);
+  }
+
+  return frame;
+}
+
+static void
+_raw_upload_frame_ref (struct RawUploadFrame *frame)
+{
+  g_atomic_int_inc (&frame->ref_count);
+}
+
+static void
+_raw_upload_frame_unref (struct RawUploadFrame *frame)
+{
+  if (g_atomic_int_dec_and_test (&frame->ref_count)) {
+    gst_video_frame_unmap (&frame->frame);
+    g_slice_free (struct RawUploadFrame, frame);
+  }
+}
+
 static gpointer
 _raw_data_upload_new (GstGLUpload * upload)
 {
@@ -744,29 +787,15 @@
     GstCaps * out_caps)
 {
   struct RawUpload *raw = impl;
-  GstCapsFeatures *features, *gl_features;
-  gboolean ret = TRUE;
+  GstCapsFeatures *features;
 
-  gl_features =
-      gst_caps_features_from_string (GST_CAPS_FEATURE_MEMORY_GL_MEMORY);
   features = gst_caps_get_features (out_caps, 0);
-  if (!gst_caps_features_is_equal (features, gl_features))
-    ret = FALSE;
+  if (!gst_caps_features_contains (features, GST_CAPS_FEATURE_MEMORY_GL_MEMORY))
+    return FALSE;
 
-  gst_caps_features_free (gl_features);
+  raw->in_frame = _raw_upload_frame_new (raw, buffer);
 
-  if (!ret)
-    return ret;
-
-  if (buffer) {
-    if (!gst_video_frame_map (&raw->in_frame, &raw->upload->priv->in_info,
-            buffer, GST_MAP_READ))
-      return FALSE;
-
-    raw->upload->priv->in_info = raw->in_frame.info;
-  }
-
-  return TRUE;
+  return (raw->in_frame != NULL);
 }
 
 static void
@@ -792,10 +821,13 @@
     max_planes *= GST_VIDEO_INFO_VIEWS (in_info);
 
   gst_gl_memory_setup_wrapped (raw->upload->context,
-      &raw->upload->priv->in_info, NULL, raw->in_frame.data, in_tex);
+      &raw->upload->priv->in_info, NULL, raw->in_frame->frame.data, in_tex,
+      raw->in_frame, (GDestroyNotify) _raw_upload_frame_unref);
 
+  /* FIXME Use a buffer pool to cache the generated textures */
   *outbuf = gst_buffer_new ();
   for (i = 0; i < max_planes; i++) {
+    _raw_upload_frame_ref (raw->in_frame);
     gst_buffer_append_memory (*outbuf, (GstMemory *) in_tex[i]);
   }
 
@@ -806,8 +838,8 @@
 _raw_data_upload_release (gpointer impl, GstBuffer * buffer)
 {
   struct RawUpload *raw = impl;
-
-  gst_video_frame_unmap (&raw->in_frame);
+  _raw_upload_frame_unref (raw->in_frame);
+  raw->in_frame = NULL;
 }
 
 static void
@@ -859,23 +891,12 @@
   }
 
   ret = gst_caps_simplify (ret);
-
+  ret = gst_gl_overlay_compositor_add_caps (ret);
   g_mutex_unlock (&upload_global_lock);
 
   return ret;
 }
 
-#define DEBUG_INIT \
-  GST_DEBUG_CATEGORY_INIT (gst_gl_upload_debug, "glupload", 0, "upload");
-
-G_DEFINE_TYPE_WITH_CODE (GstGLUpload, gst_gl_upload, GST_TYPE_OBJECT,
-    DEBUG_INIT);
-static void gst_gl_upload_finalize (GObject * object);
-static void gst_gl_upload_release_buffer_unlocked (GstGLUpload * upload);
-
-#define GST_GL_UPLOAD_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), \
-    GST_TYPE_GL_UPLOAD, GstGLUploadPrivate))
-
 static void
 gst_gl_upload_class_init (GstGLUploadClass * klass)
 {
@@ -965,13 +986,17 @@
   tmp = gst_caps_new_empty ();
 
   for (i = 0; i < G_N_ELEMENTS (upload_methods); i++) {
-    GstCaps *tmp2 =
-        upload_methods[i]->transform_caps (context, direction, caps);
+    GstCaps *tmp2;
+
+    tmp2 = upload_methods[i]->transform_caps (context, direction, caps);
 
     if (tmp2)
       tmp = gst_caps_merge (tmp, tmp2);
   }
 
+  tmp = gst_gl_overlay_compositor_add_caps (tmp);
+
+
   if (filter) {
     result = gst_caps_intersect_full (filter, tmp, GST_CAPS_INTERSECT_FIRST);
     gst_caps_unref (tmp);
diff --git a/gst-libs/gst/gl/gstglviewconvert.c b/gst-libs/gst/gl/gstglviewconvert.c
index f48e3a5..ebe4ed3 100644
--- a/gst-libs/gst/gl/gstglviewconvert.c
+++ b/gst-libs/gst/gl/gstglviewconvert.c
@@ -1586,7 +1586,7 @@
   GstGLFuncs *gl;
   guint out_width, out_height;
   gint out_views, i;
-  GLint viewport_dim[4];
+  GLint viewport_dim[4] = { 0 };
   GLenum multipleRT[] = {
     GL_COLOR_ATTACHMENT0,
     GL_COLOR_ATTACHMENT1,
diff --git a/gst-libs/gst/gl/gstglwindow.c b/gst-libs/gst/gl/gstglwindow.c
index 403eed6..a69b10d 100644
--- a/gst-libs/gst/gl/gstglwindow.c
+++ b/gst-libs/gst/gl/gstglwindow.c
@@ -272,7 +272,7 @@
 
 #if GST_GL_HAVE_WINDOW_COCOA
   if (!window && (!user_choice || g_strstr_len (user_choice, 5, "cocoa")))
-    window = GST_GL_WINDOW (gst_gl_window_cocoa_new ());
+    window = GST_GL_WINDOW (gst_gl_window_cocoa_new (display));
 #endif
 #if GST_GL_HAVE_WINDOW_X11
   if (!window && (!user_choice || g_strstr_len (user_choice, 3, "x11")))
@@ -280,23 +280,23 @@
 #endif
 #if GST_GL_HAVE_WINDOW_WIN32
   if (!window && (!user_choice || g_strstr_len (user_choice, 5, "win32")))
-    window = GST_GL_WINDOW (gst_gl_window_win32_new ());
+    window = GST_GL_WINDOW (gst_gl_window_win32_new (display));
 #endif
 #if GST_GL_HAVE_WINDOW_WAYLAND
   if (!window && (!user_choice || g_strstr_len (user_choice, 7, "wayland")))
-    window = GST_GL_WINDOW (gst_gl_window_wayland_egl_new ());
+    window = GST_GL_WINDOW (gst_gl_window_wayland_egl_new (display));
 #endif
 #if GST_GL_HAVE_WINDOW_DISPMANX
   if (!window && (!user_choice || g_strstr_len (user_choice, 8, "dispmanx")))
-    window = GST_GL_WINDOW (gst_gl_window_dispmanx_egl_new ());
+    window = GST_GL_WINDOW (gst_gl_window_dispmanx_egl_new (display));
 #endif
 #if GST_GL_HAVE_WINDOW_ANDROID
   if (!window && (!user_choice || g_strstr_len (user_choice, 7, "android")))
-    window = GST_GL_WINDOW (gst_gl_window_android_egl_new ());
+    window = GST_GL_WINDOW (gst_gl_window_android_egl_new (display));
 #endif
 #if GST_GL_HAVE_WINDOW_EAGL
   if (!window && (!user_choice || g_strstr_len (user_choice, 4, "eagl")))
-    window = GST_GL_WINDOW (gst_gl_window_eagl_new ());
+    window = GST_GL_WINDOW (gst_gl_window_eagl_new (display));
 #endif
   if (!window) {
     /* subclass returned a NULL window */
diff --git a/gst-libs/gst/gl/utils/opengl_versions.h b/gst-libs/gst/gl/utils/opengl_versions.h
new file mode 100644
index 0000000..beeeab6
--- /dev/null
+++ b/gst-libs/gst/gl/utils/opengl_versions.h
@@ -0,0 +1,53 @@
+/*
+ * GStreamer
+ * Copyright (C) 2015 Matthew Waters <matthew@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.
+ */
+
+#ifndef _OPENGL_VERSIONS_H_
+#define _OPENGL_VERSIONS_H_
+
+/* list of known OpenGL versions */
+/* *INDENT-OFF* */
+static const struct { int major, minor; } opengl_versions[] = {
+   {4, 5},
+   {4, 4},
+   {4, 3},
+   {4, 2},
+   {4, 1},
+   {4, 0},
+
+   {3, 3},
+   {3, 2},
+   {3, 1},
+   {3, 0},
+
+   {2, 1},
+   {2, 0},
+
+   {1, 5},
+   {1, 4},
+   {1, 3},
+   {1, 2},
+   {1, 1},
+   {1, 0},
+
+   {0, 0} /* end of list */
+};
+/* *INDENT-ON* */
+
+#endif /* _OPENGL_VERSIONS_H_ */
diff --git a/gst-libs/gst/gl/wayland/Makefile.in b/gst-libs/gst/gl/wayland/Makefile.in
index edfdb2d..54497fa 100644
--- a/gst-libs/gst/gl/wayland/Makefile.in
+++ b/gst-libs/gst/gl/wayland/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst-libs/gst/gl/wayland
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -200,6 +210,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -217,8 +228,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -247,8 +256,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -296,11 +303,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -484,6 +494,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -562,7 +573,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -602,6 +618,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -749,7 +766,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst-libs/gst/gl/wayland/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst-libs/gst/gl/wayland/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1046,6 +1062,8 @@
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
 	tags tags-am uninstall uninstall-am
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst-libs/gst/gl/wayland/gstglwindow_wayland_egl.c b/gst-libs/gst/gl/wayland/gstglwindow_wayland_egl.c
index bfa7741..592c03c 100644
--- a/gst-libs/gst/gl/wayland/gstglwindow_wayland_egl.c
+++ b/gst-libs/gst/gl/wayland/gstglwindow_wayland_egl.c
@@ -290,8 +290,8 @@
           wl_shell_get_shell_surface (display->shell,
           window_egl->window.surface);
       if (window_egl->window.queue)
-        wl_proxy_set_queue ((struct wl_proxy *) window_egl->
-            window.shell_surface, window_egl->window.queue);
+        wl_proxy_set_queue ((struct wl_proxy *) window_egl->window.
+            shell_surface, window_egl->window.queue);
 
       wl_shell_surface_add_listener (window_egl->window.shell_surface,
           &shell_surface_listener, window_egl);
@@ -351,15 +351,16 @@
 
 /* Must be called in the gl thread */
 GstGLWindowWaylandEGL *
-gst_gl_window_wayland_egl_new (void)
+gst_gl_window_wayland_egl_new (GstGLDisplay * display)
 {
-  GstGLWindowWaylandEGL *window;
+  if ((gst_gl_display_get_handle_type (display) & GST_GL_DISPLAY_TYPE_WAYLAND)
+      == 0)
+    /* we require a wayland display to create wayland surfaces */
+    return NULL;
 
   GST_DEBUG ("creating Wayland EGL window");
 
-  window = g_object_new (GST_GL_TYPE_WINDOW_WAYLAND_EGL, NULL);
-
-  return window;
+  return g_object_new (GST_GL_TYPE_WINDOW_WAYLAND_EGL, NULL);
 }
 
 static void
@@ -381,9 +382,17 @@
 static gboolean
 gst_gl_window_wayland_egl_open (GstGLWindow * window, GError ** error)
 {
-  GstGLDisplayWayland *display = GST_GL_DISPLAY_WAYLAND (window->display);
+  GstGLDisplayWayland *display;
   GstGLWindowWaylandEGL *window_egl = GST_GL_WINDOW_WAYLAND_EGL (window);
 
+  if (!GST_IS_GL_DISPLAY_WAYLAND (window->display)) {
+    g_set_error (error, GST_GL_WINDOW_ERROR,
+        GST_GL_WINDOW_ERROR_RESOURCE_UNAVAILABLE,
+        "Failed to retrieve Wayland display (wrong type?)");
+    return FALSE;
+  }
+  display = GST_GL_DISPLAY_WAYLAND (window->display);
+
   if (!display->display) {
     g_set_error (error, GST_GL_WINDOW_ERROR,
         GST_GL_WINDOW_ERROR_RESOURCE_UNAVAILABLE,
diff --git a/gst-libs/gst/gl/wayland/gstglwindow_wayland_egl.h b/gst-libs/gst/gl/wayland/gstglwindow_wayland_egl.h
index c7889e1..f76b5b0 100644
--- a/gst-libs/gst/gl/wayland/gstglwindow_wayland_egl.h
+++ b/gst-libs/gst/gl/wayland/gstglwindow_wayland_egl.h
@@ -97,7 +97,7 @@
 
 GType gst_gl_window_wayland_egl_get_type     (void);
 
-GstGLWindowWaylandEGL * gst_gl_window_wayland_egl_new  (void);
+GstGLWindowWaylandEGL * gst_gl_window_wayland_egl_new  (GstGLDisplay * display);
 
 void gst_gl_window_wayland_egl_create_window (GstGLWindowWaylandEGL * window_egl);
 
diff --git a/gst-libs/gst/gl/win32/Makefile.in b/gst-libs/gst/gl/win32/Makefile.in
index 8a34918..c60b9e7 100644
--- a/gst-libs/gst/gl/win32/Makefile.in
+++ b/gst-libs/gst/gl/win32/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -83,8 +93,6 @@
 @USE_WGL_TRUE@am__append_1 = gstglcontext_wgl.c
 @USE_WGL_TRUE@am__append_2 = gstglcontext_wgl.h
 subdir = gst-libs/gst/gl/win32
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp $(am__noinst_HEADERS_DIST)
 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 \
@@ -122,6 +130,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__noinst_HEADERS_DIST) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -205,6 +215,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -222,8 +233,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -252,8 +261,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -301,11 +308,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -489,6 +499,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -567,7 +578,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -607,6 +623,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -752,7 +769,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst-libs/gst/gl/win32/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst-libs/gst/gl/win32/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1049,6 +1065,8 @@
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
 	tags tags-am uninstall uninstall-am
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst-libs/gst/gl/win32/gstglcontext_wgl.c b/gst-libs/gst/gl/win32/gstglcontext_wgl.c
index a2570fc..3c2f34a 100644
--- a/gst-libs/gst/gl/win32/gstglcontext_wgl.c
+++ b/gst-libs/gst/gl/win32/gstglcontext_wgl.c
@@ -31,8 +31,19 @@
 #include "gstglcontext_wgl.h"
 #include <GL/wglext.h>
 
+#include "../utils/opengl_versions.h"
+
+struct _GstGLContextWGLPrivate
+{
+  PFNWGLCREATECONTEXTATTRIBSARBPROC wglCreateContextAttribsARB;
+
+  GstGLAPI context_api;
+};
+
 #define gst_gl_context_wgl_parent_class parent_class
 G_DEFINE_TYPE (GstGLContextWGL, gst_gl_context_wgl, GST_GL_TYPE_CONTEXT);
+#define GST_GL_CONTEXT_WGL_GET_PRIVATE(o) \
+  (G_TYPE_INSTANCE_GET_PRIVATE((o), GST_GL_TYPE_CONTEXT_WGL, GstGLContextWGLPrivate))
 
 static guintptr gst_gl_context_wgl_get_gl_context (GstGLContext * context);
 static void gst_gl_context_wgl_swap_buffers (GstGLContext * context);
@@ -52,6 +63,8 @@
 {
   GstGLContextClass *context_class = (GstGLContextClass *) klass;
 
+  g_type_class_add_private (klass, sizeof (GstGLContextWGLPrivate));
+
   context_class->get_gl_context =
       GST_DEBUG_FUNCPTR (gst_gl_context_wgl_get_gl_context);
   context_class->choose_format =
@@ -74,15 +87,59 @@
 static void
 gst_gl_context_wgl_init (GstGLContextWGL * context_wgl)
 {
+  context_wgl->priv = GST_GL_CONTEXT_WGL_GET_PRIVATE (context_wgl);
+
+  context_wgl->priv->context_api = GST_GL_API_OPENGL | GST_GL_API_OPENGL3;
 }
 
 /* Must be called in the gl thread */
 GstGLContextWGL *
-gst_gl_context_wgl_new (void)
+gst_gl_context_wgl_new (GstGLDisplay * display)
 {
-  GstGLContextWGL *context = g_object_new (GST_GL_TYPE_CONTEXT_WGL, NULL);
+  if ((gst_gl_display_get_handle_type (display) & GST_GL_DISPLAY_TYPE_WIN32) ==
+      0)
+    /* we require an win32 display handle to create WGL contexts */
+    return NULL;
 
-  return context;
+  return g_object_new (GST_GL_TYPE_CONTEXT_WGL, NULL);
+}
+
+static HGLRC
+_create_context_with_flags (GstGLContextWGL * context_wgl, HDC dpy,
+    HGLRC share_context, gint major, gint minor, gint contextFlags,
+    gint profileMask)
+{
+  HGLRC ret;
+#define N_ATTRIBS 20
+  gint attribs[N_ATTRIBS];
+  gint n = 0;
+
+  if (major) {
+    attribs[n++] = WGL_CONTEXT_MAJOR_VERSION_ARB;
+    attribs[n++] = major;
+  }
+  if (minor) {
+    attribs[n++] = WGL_CONTEXT_MINOR_VERSION_ARB;
+    attribs[n++] = minor;
+  }
+  if (contextFlags) {
+    attribs[n++] = WGL_CONTEXT_FLAGS_ARB;
+    attribs[n++] = contextFlags;
+  }
+  if (profileMask) {
+    attribs[n++] = WGL_CONTEXT_PROFILE_MASK_ARB;
+    attribs[n++] = profileMask;
+  }
+  attribs[n++] = 0;
+
+  g_assert (n < N_ATTRIBS);
+#undef N_ATTRIBS
+
+  ret =
+      context_wgl->priv->wglCreateContextAttribsARB (dpy, share_context,
+      attribs);
+
+  return ret;
 }
 
 static gboolean
@@ -92,7 +149,7 @@
   GstGLWindow *window;
   GstGLContextWGL *context_wgl;
   HGLRC external_gl_context = NULL;
-  PFNWGLCREATECONTEXTATTRIBSARBPROC wglCreateContextAttribsARB = NULL;
+  HGLRC trampoline;
   HDC device;
 
   context_wgl = GST_GL_CONTEXT_WGL (context);
@@ -109,45 +166,81 @@
     external_gl_context = (HGLRC) gst_gl_context_get_gl_context (other_context);
   }
 
-  context_wgl->wgl_context = wglCreateContext (device);
-  if (context_wgl->wgl_context)
+  trampoline = wglCreateContext (device);
+  if (trampoline)
     GST_DEBUG ("gl context created: %" G_GUINTPTR_FORMAT,
-        (guintptr) context_wgl->wgl_context);
+        (guintptr) trampoline);
   else {
     g_set_error (error, GST_GL_CONTEXT_ERROR,
         GST_GL_CONTEXT_ERROR_CREATE_CONTEXT, "failed to create glcontext:0x%x",
         (unsigned int) GetLastError ());
     goto failure;
   }
-  g_assert (context_wgl->wgl_context);
+  g_assert (trampoline);
 
+  /* get extension functions */
+  wglMakeCurrent (device, trampoline);
 
-  if (external_gl_context) {
+  context_wgl->priv->wglCreateContextAttribsARB =
+      (PFNWGLCREATECONTEXTATTRIBSARBPROC)
+      wglGetProcAddress ("wglCreateContextAttribsARB");
 
-    wglMakeCurrent (device, context_wgl->wgl_context);
+  wglMakeCurrent (device, 0);
+  wglDeleteContext (trampoline);
+  trampoline = NULL;
 
-    wglCreateContextAttribsARB = (PFNWGLCREATECONTEXTATTRIBSARBPROC)
-        wglGetProcAddress ("wglCreateContextAttribsARB");
+  if (context_wgl->priv->wglCreateContextAttribsARB != NULL
+      && gl_api & GST_GL_API_OPENGL3) {
+    gint i;
 
-    if (wglCreateContextAttribsARB != NULL) {
-      wglMakeCurrent (device, 0);
-      wglDeleteContext (context_wgl->wgl_context);
-      context_wgl->wgl_context =
-          wglCreateContextAttribsARB (device, external_gl_context, 0);
-      if (context_wgl->wgl_context == NULL) {
+    for (i = 0; i < G_N_ELEMENTS (opengl_versions); i++) {
+      gint profileMask = 0;
+      gint contextFlags = 0;
+
+      if ((opengl_versions[i].major > 3
+              || (opengl_versions[i].major == 3
+                  && opengl_versions[i].minor >= 2))) {
+        profileMask |= WGL_CONTEXT_CORE_PROFILE_BIT_ARB;
+        contextFlags |= WGL_CONTEXT_DEBUG_BIT_ARB;
+      } else {
+        break;
+      }
+
+      GST_DEBUG_OBJECT (context, "trying to create a GL %d.%d context",
+          opengl_versions[i].major, opengl_versions[i].minor);
+
+      context_wgl->wgl_context = _create_context_with_flags (context_wgl,
+          device, external_gl_context, opengl_versions[i].major,
+          opengl_versions[i].minor, contextFlags, profileMask);
+
+      if (context_wgl->wgl_context) {
+        context_wgl->priv->context_api = GST_GL_API_OPENGL3;
+        break;
+      }
+    }
+  }
+
+  if (!context_wgl->wgl_context) {
+    context_wgl->wgl_context = wglCreateContext (device);
+
+    if (!context_wgl->wgl_context) {
+      g_set_error (error, GST_GL_CONTEXT_ERROR,
+          GST_GL_CONTEXT_ERROR_CREATE_CONTEXT,
+          "Failed to create WGL context 0x%x", (unsigned int) GetLastError ());
+      goto failure;
+    }
+
+    if (external_gl_context) {
+      if (!wglShareLists (external_gl_context, context_wgl->wgl_context)) {
         g_set_error (error, GST_GL_CONTEXT_ERROR,
             GST_GL_CONTEXT_ERROR_CREATE_CONTEXT,
-            "failed to share context through wglCreateContextAttribsARB 0x%x",
+            "failed to share contexts through wglShareLists 0x%x",
             (unsigned int) GetLastError ());
         goto failure;
       }
-    } else if (!wglShareLists (external_gl_context, context_wgl->wgl_context)) {
-      g_set_error (error, GST_GL_CONTEXT_ERROR,
-          GST_GL_CONTEXT_ERROR_CREATE_CONTEXT,
-          "failed to share contexts through wglShareLists 0x%x",
-          (unsigned int) GetLastError ());
-      goto failure;
     }
+
+    context_wgl->priv->context_api = GST_GL_API_OPENGL;
   }
 
   GST_LOG ("gl context id: %" G_GUINTPTR_FORMAT,
@@ -274,7 +367,9 @@
 GstGLAPI
 gst_gl_context_wgl_get_gl_api (GstGLContext * context)
 {
-  return GST_GL_API_OPENGL;
+  GstGLContextWGL *context_wgl = GST_GL_CONTEXT_WGL (context);
+
+  return context_wgl->priv->context_api;
 }
 
 static GstGLPlatform
@@ -284,10 +379,9 @@
 }
 
 gpointer
-gst_gl_context_wgl_get_proc_address (GstGLContext * context, const gchar * name)
+gst_gl_context_wgl_get_proc_address (GstGLAPI gl_api, const gchar * name)
 {
   gpointer result;
-  GstGLAPI gl_api = gst_gl_context_get_gl_api (context);
 
   if (!(result = gst_gl_context_default_get_proc_address (gl_api, name))) {
     result = wglGetProcAddress ((LPCSTR) name);
diff --git a/gst-libs/gst/gl/win32/gstglcontext_wgl.h b/gst-libs/gst/gl/win32/gstglcontext_wgl.h
index 8d9758c..64bf141 100644
--- a/gst-libs/gst/gl/win32/gstglcontext_wgl.h
+++ b/gst-libs/gst/gl/win32/gstglcontext_wgl.h
@@ -34,6 +34,7 @@
 
 typedef struct _GstGLContextWGL        GstGLContextWGL;
 typedef struct _GstGLContextWGLClass   GstGLContextWGLClass;
+typedef struct _GstGLContextWGLPrivate GstGLContextWGLPrivate;
 
 struct _GstGLContextWGL {
   /*< private >*/
@@ -42,6 +43,8 @@
   HGLRC wgl_context;
   HGLRC external_gl_context;
 
+  GstGLContextWGLPrivate *priv;
+
   gpointer _reserved[GST_PADDING];
 };
 
@@ -55,9 +58,9 @@
 
 GType gst_gl_context_wgl_get_type     (void);
 
-GstGLContextWGL *   gst_gl_context_wgl_new                  (void);
+GstGLContextWGL *   gst_gl_context_wgl_new                  (GstGLDisplay * display);
 guintptr            gst_gl_context_wgl_get_current_context  (void);
-gpointer            gst_gl_context_wgl_get_proc_address     (GstGLContext * context, const gchar * name);
+gpointer            gst_gl_context_wgl_get_proc_address     (GstGLAPI gl_api, const gchar * name);
 
 G_END_DECLS
 
diff --git a/gst-libs/gst/gl/win32/gstglwindow_win32.c b/gst-libs/gst/gl/win32/gstglwindow_win32.c
index 7d93305..29d97f2 100644
--- a/gst-libs/gst/gl/win32/gstglwindow_win32.c
+++ b/gst-libs/gst/gl/win32/gstglwindow_win32.c
@@ -92,11 +92,14 @@
 }
 
 GstGLWindowWin32 *
-gst_gl_window_win32_new (void)
+gst_gl_window_win32_new (GstGLDisplay * display)
 {
-  GstGLWindowWin32 *window = g_object_new (GST_GL_TYPE_WINDOW_WIN32, NULL);
+  if ((gst_gl_display_get_handle_type (display) & GST_GL_DISPLAY_TYPE_WIN32) ==
+      0)
+    /* we require an win32 display to create win32 windows */
+    return NULL;
 
-  return window;
+  return g_object_new (GST_GL_TYPE_WINDOW_WIN32, NULL);
 }
 
 static void
diff --git a/gst-libs/gst/gl/win32/gstglwindow_win32.h b/gst-libs/gst/gl/win32/gstglwindow_win32.h
index 50a90fb..080a4d4 100644
--- a/gst-libs/gst/gl/win32/gstglwindow_win32.h
+++ b/gst-libs/gst/gl/win32/gstglwindow_win32.h
@@ -77,7 +77,7 @@
 
 GType gst_gl_window_win32_get_type     (void);
 
-GstGLWindowWin32 * gst_gl_window_win32_new          (void);
+GstGLWindowWin32 * gst_gl_window_win32_new          (GstGLDisplay * display);
 
 gboolean gst_gl_window_win32_create_window (GstGLWindowWin32 * window_win32, GError ** error);
 
diff --git a/gst-libs/gst/gl/x11/Makefile.in b/gst-libs/gst/gl/x11/Makefile.in
index 196502f..c9b2311 100644
--- a/gst-libs/gst/gl/x11/Makefile.in
+++ b/gst-libs/gst/gl/x11/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -83,9 +93,6 @@
 @USE_GLX_TRUE@am__append_1 = gstglcontext_glx.c
 @USE_GLX_TRUE@am__append_2 = gstglcontext_glx.h
 subdir = gst-libs/gst/gl/x11
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp $(libgstgl_x11include_HEADERS) \
-	$(am__noinst_HEADERS_DIST)
 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 \
@@ -123,6 +130,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(libgstgl_x11include_HEADERS) \
+	$(am__noinst_HEADERS_DIST) $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -235,6 +244,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -252,8 +262,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -282,8 +290,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -331,11 +337,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -519,6 +528,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -597,7 +607,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -637,6 +652,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -781,7 +797,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst-libs/gst/gl/x11/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst-libs/gst/gl/x11/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1111,6 +1126,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-libgstgl_x11includeHEADERS
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst-libs/gst/gl/x11/gstglcontext_glx.c b/gst-libs/gst/gl/x11/gstglcontext_glx.c
index 9348227..bc83230 100644
--- a/gst-libs/gst/gl/x11/gstglcontext_glx.c
+++ b/gst-libs/gst/gl/x11/gstglcontext_glx.c
@@ -36,8 +36,9 @@
 
 #include <gst/gl/gl.h>
 #include "gstglcontext_glx.h"
+#include "../utils/opengl_versions.h"
 
-#define GST_CAT_DEFAULT gst_gl_window_debug
+#define GST_CAT_DEFAULT gst_gl_context_debug
 
 #define gst_gl_context_glx_parent_class parent_class
 G_DEFINE_TYPE (GstGLContextGLX, gst_gl_context_glx, GST_GL_TYPE_CONTEXT);
@@ -105,11 +106,13 @@
 }
 
 GstGLContextGLX *
-gst_gl_context_glx_new (void)
+gst_gl_context_glx_new (GstGLDisplay * display)
 {
-  GstGLContextGLX *context = g_object_new (GST_GL_TYPE_CONTEXT_GLX, NULL);
+  if ((gst_gl_display_get_handle_type (display) & GST_GL_DISPLAY_TYPE_X11) == 0)
+    /* we require an x11 display handle to create GLX contexts */
+    return NULL;
 
-  return context;
+  return g_object_new (GST_GL_TYPE_CONTEXT_GLX, NULL);
 }
 
 static inline void
@@ -135,6 +138,51 @@
   GST_DEBUG ("stencil: %d", val);
 }
 
+static GLXContext
+_create_context_with_flags (GstGLContextGLX * context_glx, Display * dpy,
+    GLXFBConfig fbconfig, GLXContext share_context, gint major, gint minor,
+    gint contextFlags, gint profileMask)
+{
+  GLXContext ret;
+#define N_ATTRIBS 20
+  gint attribs[N_ATTRIBS];
+  int x_error = 0;
+  gint n = 0;
+
+  if (major) {
+    attribs[n++] = GLX_CONTEXT_MAJOR_VERSION_ARB;
+    attribs[n++] = major;
+  }
+  if (minor) {
+    attribs[n++] = GLX_CONTEXT_MINOR_VERSION_ARB;
+    attribs[n++] = minor;
+  }
+  if (contextFlags) {
+    attribs[n++] = GLX_CONTEXT_FLAGS_ARB;
+    attribs[n++] = contextFlags;
+  }
+#ifdef GLX_ARB_create_context_profile
+  if (profileMask) {
+    attribs[n++] = GLX_CONTEXT_PROFILE_MASK_ARB;
+    attribs[n++] = profileMask;
+  }
+#endif
+  attribs[n++] = None;
+
+  g_assert (n < N_ATTRIBS);
+#undef N_ATTRIBS
+
+  gst_gl_window_x11_trap_x_errors ();
+  ret = context_glx->priv->glXCreateContextAttribsARB (dpy, fbconfig,
+      share_context, True, attribs);
+  x_error = gst_gl_window_x11_untrap_x_errors ();
+
+  if (x_error)
+    ret = 0;
+
+  return ret;
+}
+
 static gboolean
 gst_gl_context_glx_create_context (GstGLContext * context,
     GstGLAPI gl_api, GstGLContext * other_context, GError ** error)
@@ -145,7 +193,6 @@
   GstGLDisplay *display;
   gboolean create_context;
   const char *glx_exts;
-  int x_error = 0;
   Display *device;
   guintptr external_gl_context = 0;
 
@@ -173,55 +220,38 @@
       (gpointer) glXGetProcAddressARB ((const GLubyte *)
       "glXCreateContextAttribsARB");
 
-  if (create_context && context_glx->priv->glXCreateContextAttribsARB) {
-    int context_attribs_3[] = {
-      GLX_CONTEXT_MAJOR_VERSION_ARB, 3,
-      GLX_CONTEXT_MINOR_VERSION_ARB, 1,
-      GLX_CONTEXT_FLAGS_ARB, GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB,
-#if !defined(GST_DISABLE_GST_DEBUG)
-      GLX_CONTEXT_FLAGS_ARB, GLX_CONTEXT_DEBUG_BIT_ARB,
-#endif
-      None
-    };
+  if (!context_glx->glx_context && gl_api & GST_GL_API_OPENGL3 && create_context
+      && context_glx->priv->glXCreateContextAttribsARB) {
+    gint i;
 
-    int context_attribs_pre_3[] = {
-      GLX_CONTEXT_MAJOR_VERSION_ARB, 1,
-      GLX_CONTEXT_MINOR_VERSION_ARB, 4,
-      None
-    };
+    for (i = 0; i < G_N_ELEMENTS (opengl_versions); i++) {
+      gint profileMask = 0;
+      gint contextFlags = 0;
 
-    if (gl_api & GST_GL_API_OPENGL3) {
-      GST_DEBUG_OBJECT (window, "trying to create a GL 3.1 core context");
-      gst_gl_window_x11_trap_x_errors ();
-      context_glx->glx_context =
-          context_glx->priv->glXCreateContextAttribsARB (device,
-          context_glx->priv->fbconfigs[0], (GLXContext) external_gl_context,
-          True, context_attribs_3);
+      if ((opengl_versions[i].major > 3
+              || (opengl_versions[i].major == 3
+                  && opengl_versions[i].minor >= 2))) {
+        profileMask |= GLX_CONTEXT_CORE_PROFILE_BIT_ARB;
+        contextFlags |= GLX_CONTEXT_DEBUG_BIT_ARB;
+      } else {
+        break;
+      }
 
-      x_error = gst_gl_window_x11_untrap_x_errors ();
+      GST_DEBUG_OBJECT (context, "trying to create a GL %d.%d context",
+          opengl_versions[i].major, opengl_versions[i].minor);
 
-      if (x_error != 0)
-        context_glx->glx_context = NULL;
-      context_glx->priv->context_api = GST_GL_API_OPENGL3;
+      context_glx->glx_context = _create_context_with_flags (context_glx,
+          device, context_glx->priv->fbconfigs[0],
+          (GLXContext) external_gl_context, opengl_versions[i].major,
+          opengl_versions[i].minor, contextFlags, profileMask);
+
+      if (context_glx->glx_context) {
+        context_glx->priv->context_api = GST_GL_API_OPENGL3;
+        break;
+      }
     }
-
-    if (gl_api & GST_GL_API_OPENGL && context_glx->glx_context == NULL) {
-      GST_DEBUG_OBJECT (window, "trying to create a GL 1.4 context");
-
-      gst_gl_window_x11_trap_x_errors ();
-      context_glx->glx_context =
-          context_glx->priv->glXCreateContextAttribsARB (device,
-          context_glx->priv->fbconfigs[0], (GLXContext) external_gl_context,
-          True, context_attribs_pre_3);
-
-      x_error = gst_gl_window_x11_untrap_x_errors ();
-
-      if (x_error != 0)
-        context_glx->glx_context = NULL;
-      context_glx->priv->context_api = GST_GL_API_OPENGL;
-    }
-
-  } else {
+  }
+  if (!context_glx->glx_context && gl_api & GST_GL_API_OPENGL) {
     context_glx->glx_context =
         glXCreateContext (device, window_x11->visual_info,
         (GLXContext) external_gl_context, TRUE);
@@ -426,10 +456,9 @@
 }
 
 gpointer
-gst_gl_context_glx_get_proc_address (GstGLContext * context, const gchar * name)
+gst_gl_context_glx_get_proc_address (GstGLAPI gl_api, const gchar * name)
 {
   gpointer result;
-  GstGLAPI gl_api = gst_gl_context_get_gl_api (context);
 
   if (!(result = gst_gl_context_default_get_proc_address (gl_api, name))) {
     result = glXGetProcAddressARB ((const GLubyte *) name);
diff --git a/gst-libs/gst/gl/x11/gstglcontext_glx.h b/gst-libs/gst/gl/x11/gstglcontext_glx.h
index 9b8c890..e015108 100644
--- a/gst-libs/gst/gl/x11/gstglcontext_glx.h
+++ b/gst-libs/gst/gl/x11/gstglcontext_glx.h
@@ -59,9 +59,9 @@
 
 GType gst_gl_context_glx_get_type     (void);
 
-GstGLContextGLX *   gst_gl_context_glx_new                  (void);
+GstGLContextGLX *   gst_gl_context_glx_new                  (GstGLDisplay * display);
 guintptr            gst_gl_context_glx_get_current_context  (void);
-gpointer            gst_gl_context_glx_get_proc_address     (GstGLContext * context, const gchar * name);
+gpointer            gst_gl_context_glx_get_proc_address     (GstGLAPI gl_api, const gchar * name);
 
 G_END_DECLS
 
diff --git a/gst-libs/gst/gl/x11/gstglwindow_x11.c b/gst-libs/gst/gl/x11/gstglwindow_x11.c
index 5782eea..e9d5391 100644
--- a/gst-libs/gst/gl/x11/gstglwindow_x11.c
+++ b/gst-libs/gst/gl/x11/gstglwindow_x11.c
@@ -130,17 +130,14 @@
 GstGLWindowX11 *
 gst_gl_window_x11_new (GstGLDisplay * display)
 {
-  GstGLWindowX11 *window = NULL;
-
-  if ((display->type & GST_GL_DISPLAY_TYPE_X11) == GST_GL_DISPLAY_TYPE_NONE) {
+  if ((gst_gl_display_get_handle_type (display) & GST_GL_DISPLAY_TYPE_X11)
+      == GST_GL_DISPLAY_TYPE_NONE) {
     GST_INFO ("Wrong display type %u for this window type %u", display->type,
         GST_GL_DISPLAY_TYPE_X11);
     return NULL;
   }
 
-  window = g_object_new (GST_GL_TYPE_WINDOW_X11, NULL);
-
-  return window;
+  return g_object_new (GST_GL_TYPE_WINDOW_X11, NULL);
 }
 
 gboolean
diff --git a/gst-libs/gst/insertbin/Makefile.in b/gst-libs/gst/insertbin/Makefile.in
index 66a738f..a2d9821 100644
--- a/gst-libs/gst/insertbin/Makefile.in
+++ b/gst-libs/gst/insertbin/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -17,7 +17,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -82,9 +92,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst-libs/gst/insertbin
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp \
-	$(libgstinsertbin_@GST_API_VERSION@include_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 \
@@ -122,6 +129,9 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am \
+	$(libgstinsertbin_@GST_API_VERSION@include_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -217,6 +227,7 @@
 DATA = $(gir_DATA) $(typelibs_DATA)
 HEADERS = $(libgstinsertbin_@GST_API_VERSION@include_HEADERS)
 am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -234,8 +245,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -264,8 +273,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -313,11 +320,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -501,6 +511,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -579,7 +590,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -619,6 +635,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -778,7 +795,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst-libs/gst/insertbin/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst-libs/gst/insertbin/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1112,6 +1128,8 @@
 	uninstall-libgstinsertbin_@GST_API_VERSION@includeHEADERS \
 	uninstall-typelibsDATA
 
+.PRECIOUS: Makefile
+
 
 @HAVE_INTROSPECTION_TRUE@GstInsertBin-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstinsertbin-@GST_API_VERSION@.la
 @HAVE_INTROSPECTION_TRUE@	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)"  GI_SCANNER_DISABLE_CACHE=yes\
diff --git a/gst-libs/gst/interfaces/Makefile.in b/gst-libs/gst/interfaces/Makefile.in
index 1fc0bea..57e878b 100644
--- a/gst-libs/gst/interfaces/Makefile.in
+++ b/gst-libs/gst/interfaces/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -24,7 +24,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -88,9 +98,6 @@
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
-DIST_COMMON = $(top_srcdir)/common/gst-glib-gen.mak \
-	$(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp $(libgstphotographyinclude_HEADERS)
 subdir = gst-libs/gst/interfaces
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
@@ -129,6 +136,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am \
+	$(libgstphotographyinclude_HEADERS) $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -247,6 +256,8 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in \
+	$(top_srcdir)/common/gst-glib-gen.mak $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -264,8 +275,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -294,8 +303,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -343,11 +350,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -531,6 +541,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -609,7 +620,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -649,6 +665,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -818,7 +835,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst-libs/gst/interfaces/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst-libs/gst/interfaces/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -827,7 +843,7 @@
 	    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/gst-glib-gen.mak:
+$(top_srcdir)/common/gst-glib-gen.mak $(am__empty):
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -1188,6 +1204,8 @@
 	uninstall-libgstphotographyincludeHEADERS \
 	uninstall-nodist_libgstphotographyincludeHEADERS
 
+.PRECIOUS: Makefile
+
 
 # these are all the rules generating the relevant files
 $(glib_gen_basename)-marshal.h: $(glib_gen_basename)-marshal.list
diff --git a/gst-libs/gst/mpegts/Makefile.in b/gst-libs/gst/mpegts/Makefile.in
index 0e7db42..923612f 100644
--- a/gst-libs/gst/mpegts/Makefile.in
+++ b/gst-libs/gst/mpegts/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -25,7 +25,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -90,11 +100,6 @@
 host_triplet = @host@
 target_triplet = @target@
 @HAVE_INTROSPECTION_TRUE@am__append_1 = $(BUILT_GIRSOURCES) $(typelibs_DATA)
-DIST_COMMON = $(top_srcdir)/common/gst-glib-gen.mak \
-	$(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp \
-	$(libgstmpegts_@GST_API_VERSION@include_HEADERS) \
-	$(noinst_HEADERS)
 subdir = gst-libs/gst/mpegts
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
@@ -133,6 +138,9 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am \
+	$(libgstmpegts_@GST_API_VERSION@include_HEADERS) \
+	$(noinst_HEADERS) $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -256,6 +264,8 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in \
+	$(top_srcdir)/common/gst-glib-gen.mak $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -273,8 +283,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -303,8 +311,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -352,11 +358,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -540,6 +549,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -618,7 +628,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -658,6 +673,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -851,7 +867,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst-libs/gst/mpegts/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst-libs/gst/mpegts/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -860,7 +875,7 @@
 	    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/gst-glib-gen.mak:
+$(top_srcdir)/common/gst-glib-gen.mak $(am__empty):
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -1302,6 +1317,8 @@
 	uninstall-nodist_libgstmpegts_@GST_API_VERSION@includeHEADERS \
 	uninstall-typelibsDATA
 
+.PRECIOUS: Makefile
+
 
 @HAVE_INTROSPECTION_TRUE@GstMpegts-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstmpegts-@GST_API_VERSION@.la
 @HAVE_INTROSPECTION_TRUE@	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)"  GI_SCANNER_DISABLE_CACHE=yes\
diff --git a/gst-libs/gst/uridownloader/Makefile.in b/gst-libs/gst/uridownloader/Makefile.in
index 9b560af..ecef986 100644
--- a/gst-libs/gst/uridownloader/Makefile.in
+++ b/gst-libs/gst/uridownloader/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,9 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst-libs/gst/uridownloader
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp \
-	$(libgsturidownloader_@GST_API_VERSION@include_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 \
@@ -121,6 +128,9 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am \
+	$(libgsturidownloader_@GST_API_VERSION@include_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -215,6 +225,7 @@
   esac
 HEADERS = $(libgsturidownloader_@GST_API_VERSION@include_HEADERS)
 am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -232,8 +243,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -262,8 +271,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -311,11 +318,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -499,6 +509,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -577,7 +588,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -617,6 +633,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -765,7 +782,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst-libs/gst/uridownloader/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst-libs/gst/uridownloader/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1060,6 +1076,8 @@
 	uninstall-am uninstall-libLTLIBRARIES \
 	uninstall-libgsturidownloader_@GST_API_VERSION@includeHEADERS
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst-libs/gst/uridownloader/gstfragment.c b/gst-libs/gst/uridownloader/gstfragment.c
index 3f9552b..6d41593 100644
--- a/gst-libs/gst/uridownloader/gstfragment.c
+++ b/gst-libs/gst/uridownloader/gstfragment.c
@@ -167,6 +167,7 @@
   fragment->name = g_strdup ("");
   fragment->completed = FALSE;
   fragment->discontinuous = FALSE;
+  fragment->headers = NULL;
 }
 
 GstFragment *
@@ -183,6 +184,8 @@
   g_free (fragment->uri);
   g_free (fragment->redirect_uri);
   g_free (fragment->name);
+  if (fragment->headers)
+    gst_structure_free (fragment->headers);
   g_mutex_clear (&fragment->priv->lock);
 
   G_OBJECT_CLASS (gst_fragment_parent_class)->finalize (gobject);
diff --git a/gst-libs/gst/uridownloader/gstfragment.h b/gst-libs/gst/uridownloader/gstfragment.h
index bdf04f3..a8e0a54 100644
--- a/gst-libs/gst/uridownloader/gstfragment.h
+++ b/gst-libs/gst/uridownloader/gstfragment.h
@@ -44,6 +44,8 @@
   gchar * uri;                  /* URI of the fragment */
   gchar * redirect_uri;         /* Redirect target if any */
   gboolean redirect_permanent;  /* If the redirect is permanent */
+  gint64 range_start;
+  gint64 range_end;
 
   gchar * name;                 /* Name of the fragment */
   gboolean completed;           /* Whether the fragment is complete or not */
@@ -53,6 +55,7 @@
   guint64 stop_time;            /* Stop time of the fragment */
   gboolean index;               /* Index of the fragment */
   gboolean discontinuous;       /* Whether this fragment is discontinuous or not */
+  GstStructure *headers;        /* HTTP request/response headers */
 
   GstFragmentPrivate *priv;
 };
diff --git a/gst-libs/gst/uridownloader/gsturidownloader.c b/gst-libs/gst/uridownloader/gsturidownloader.c
index 3d5a215..72e5e79 100644
--- a/gst-libs/gst/uridownloader/gsturidownloader.c
+++ b/gst-libs/gst/uridownloader/gsturidownloader.c
@@ -178,6 +178,20 @@
       gst_event_unref (event);
       break;
     }
+    case GST_EVENT_CUSTOM_DOWNSTREAM_STICKY:{
+      const GstStructure *str;
+      str = gst_event_get_structure (event);
+      if (gst_structure_has_name (str, "http-headers")) {
+        GST_OBJECT_LOCK (downloader);
+        if (downloader->priv->download != NULL) {
+          if (downloader->priv->download->headers)
+            gst_structure_free (downloader->priv->download->headers);
+          downloader->priv->download->headers = gst_structure_copy (str);
+        }
+        GST_OBJECT_UNLOCK (downloader);
+      }
+    }
+      /* falls through */
     default:
       ret = gst_pad_event_default (pad, parent, event);
       break;
@@ -428,6 +442,23 @@
   return TRUE;
 }
 
+static gboolean
+gst_uri_downloader_set_method (GstUriDownloader * downloader,
+    const gchar * method)
+{
+  GObjectClass *gobject_class;
+
+  if (!downloader->priv->urisrc)
+    return FALSE;
+
+  gobject_class = G_OBJECT_GET_CLASS (downloader->priv->urisrc);
+  if (g_object_class_find_property (gobject_class, "method")) {
+    g_object_set (downloader->priv->urisrc, "method", method, NULL);
+    return TRUE;
+  }
+  return FALSE;
+}
+
 GstFragment *
 gst_uri_downloader_fetch_uri (GstUriDownloader * downloader,
     const gchar * uri, const gchar * referer, gboolean compress,
@@ -477,6 +508,8 @@
   if (downloader->priv->download)
     g_object_unref (downloader->priv->download);
   downloader->priv->download = gst_fragment_new ();
+  downloader->priv->download->range_start = range_start;
+  downloader->priv->download->range_end = range_end;
   GST_OBJECT_UNLOCK (downloader);
   ret = gst_element_set_state (downloader->priv->urisrc, GST_STATE_READY);
   GST_OBJECT_LOCK (downloader);
@@ -490,9 +523,16 @@
     goto quit;
   }
 
-  if (!gst_uri_downloader_set_range (downloader, range_start, range_end)) {
-    GST_WARNING_OBJECT (downloader, "Failed to set range");
-    goto quit;
+  if (range_start < 0 && range_end < 0) {
+    if (!gst_uri_downloader_set_method (downloader, "HEAD")) {
+      GST_WARNING_OBJECT (downloader, "Failed to set HTTP method");
+      goto quit;
+    }
+  } else {
+    if (!gst_uri_downloader_set_range (downloader, range_start, range_end)) {
+      GST_WARNING_OBJECT (downloader, "Failed to set range");
+      goto quit;
+    }
   }
 
   GST_OBJECT_UNLOCK (downloader);
@@ -531,9 +571,13 @@
   download = downloader->priv->download;
   downloader->priv->download = NULL;
   if (!downloader->priv->got_buffer) {
-    g_object_unref (download);
-    download = NULL;
-    GST_ERROR_OBJECT (downloader, "Didn't retrieve a buffer before EOS");
+    if (download->range_start < 0 && download->range_end < 0) {
+      /* HEAD request, so we don't expect a response */
+    } else {
+      g_object_unref (download);
+      download = NULL;
+      GST_ERROR_OBJECT (downloader, "Didn't retrieve a buffer before EOS");
+    }
   }
 
   if (download != NULL)
diff --git a/gst-libs/gst/video/Makefile.in b/gst-libs/gst/video/Makefile.in
index a765289..ab39faa 100644
--- a/gst-libs/gst/video/Makefile.in
+++ b/gst-libs/gst/video/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst-libs/gst/video
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -235,6 +245,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -252,8 +263,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -282,8 +291,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -331,11 +338,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -519,6 +529,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -597,7 +608,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -637,6 +653,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -784,7 +801,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst-libs/gst/video/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst-libs/gst/video/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1093,6 +1109,8 @@
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
 	tags tags-am uninstall uninstall-am uninstall-libLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst-libs/gst/video/gstvideoaggregator.c b/gst-libs/gst/video/gstvideoaggregator.c
index 2943036..b8d29ee 100644
--- a/gst-libs/gst/video/gstvideoaggregator.c
+++ b/gst-libs/gst/video/gstvideoaggregator.c
@@ -604,12 +604,11 @@
   if (GST_VIDEO_INFO_FPS_N (&vagg->info) != GST_VIDEO_INFO_FPS_N (&info) ||
       GST_VIDEO_INFO_FPS_D (&vagg->info) != GST_VIDEO_INFO_FPS_D (&info)) {
     if (agg->segment.position != -1) {
-      vagg->priv->ts_offset = agg->segment.position - agg->segment.start;
       vagg->priv->nframes = 0;
+      /* The timestamp offset will be updated based on the
+       * segment position the next time we aggregate */
       GST_DEBUG_OBJECT (vagg,
-          "Updating timestamp offset to %" GST_TIME_FORMAT " for segment %"
-          GST_SEGMENT_FORMAT, GST_TIME_ARGS (vagg->priv->ts_offset),
-          &agg->segment);
+          "Resetting frame counter because of framerate change");
     }
     gst_videoaggregator_reset_qos (vagg);
   }
@@ -866,7 +865,7 @@
         "framerate", GST_TYPE_FRACTION_RANGE, 0, 1, G_MAXINT, 1, NULL);
 
     gst_structure_remove_fields (s, "colorimetry", "chroma-site", "format",
-        NULL);
+        "pixel-aspect-ratio", NULL);
   }
 
   if (filter) {
@@ -1368,6 +1367,11 @@
   }
 
   output_start_time = gst_videoaggregator_get_next_time (agg);
+  if (vagg->priv->nframes == 0) {
+    vagg->priv->ts_offset = output_start_time;
+    GST_DEBUG_OBJECT (vagg, "New ts offset %" GST_TIME_FORMAT,
+        GST_TIME_ARGS (output_start_time));
+  }
 
   if (GST_VIDEO_INFO_FPS_N (&vagg->info) == 0)
     output_end_time = -1;
@@ -1376,7 +1380,7 @@
         vagg->priv->ts_offset +
         gst_util_uint64_scale_round (vagg->priv->nframes + 1,
         GST_SECOND * GST_VIDEO_INFO_FPS_D (&vagg->info),
-        GST_VIDEO_INFO_FPS_N (&vagg->info)) + agg->segment.start;
+        GST_VIDEO_INFO_FPS_N (&vagg->info));
 
   if (agg->segment.stop != -1)
     output_end_time = MIN (output_end_time, agg->segment.stop);
@@ -1617,68 +1621,6 @@
 }
 
 static GstFlowReturn
-gst_videoaggregator_sink_clip (GstAggregator * agg,
-    GstAggregatorPad * bpad, GstBuffer * buf, GstBuffer ** outbuf)
-{
-  GstVideoAggregatorPad *pad = GST_VIDEO_AGGREGATOR_PAD (bpad);
-  GstClockTime start_time, end_time;
-  GstBuffer *pbuf;
-
-  start_time = GST_BUFFER_TIMESTAMP (buf);
-  if (start_time == -1) {
-    GST_WARNING_OBJECT (pad, "Timestamped buffers required!");
-    gst_buffer_unref (buf);
-    *outbuf = NULL;
-    return GST_FLOW_ERROR;
-  }
-
-  end_time = GST_BUFFER_DURATION (buf);
-  if (end_time == -1 && GST_VIDEO_INFO_FPS_N (&pad->info) != 0)
-    end_time =
-        gst_util_uint64_scale_int_round (GST_SECOND,
-        GST_VIDEO_INFO_FPS_D (&pad->info), GST_VIDEO_INFO_FPS_N (&pad->info));
-  if (end_time == -1) {
-    *outbuf = buf;
-    return GST_FLOW_OK;
-  }
-
-  GST_OBJECT_LOCK (bpad);
-
-  start_time = MAX (start_time, bpad->segment.start);
-  start_time =
-      gst_segment_to_running_time (&bpad->segment, GST_FORMAT_TIME, start_time);
-
-  end_time += GST_BUFFER_TIMESTAMP (buf);
-  if (bpad->segment.stop != -1)
-    end_time = MIN (end_time, bpad->segment.stop);
-  end_time =
-      gst_segment_to_running_time (&bpad->segment, GST_FORMAT_TIME, end_time);
-
-  /* Convert to the output segment rate */
-  if (ABS (agg->segment.rate) != 1.0) {
-    end_time *= ABS (agg->segment.rate);
-  }
-
-  pbuf = gst_aggregator_pad_get_buffer (bpad);
-  if (pbuf != NULL) {
-    gst_buffer_unref (pbuf);
-
-    if (end_time < pad->priv->end_time) {
-      gst_buffer_unref (buf);
-      *outbuf = NULL;
-      goto done;
-    }
-  }
-
-  *outbuf = buf;
-
-done:
-
-  GST_OBJECT_UNLOCK (bpad);
-  return GST_FLOW_OK;
-}
-
-static GstFlowReturn
 gst_videoaggregator_flush (GstAggregator * agg)
 {
   GList *l;
@@ -1894,7 +1836,7 @@
         "framerate", GST_TYPE_FRACTION_RANGE, 0, 1, G_MAXINT, 1, NULL);
 
     gst_structure_remove_fields (s, "colorimetry", "chroma-site", "format",
-        NULL);
+        "pixel-aspect-ratio", NULL);
   }
 
   modified_caps = gst_caps_intersect (accepted_caps, template_caps);
@@ -2021,7 +1963,6 @@
   agg_class->sink_query = gst_videoaggregator_sink_query;
   agg_class->sink_event = gst_videoaggregator_sink_event;
   agg_class->flush = gst_videoaggregator_flush;
-  agg_class->clip = gst_videoaggregator_sink_clip;
   agg_class->aggregate = gst_videoaggregator_aggregate;
   agg_class->src_event = gst_videoaggregator_src_event;
   agg_class->src_query = gst_videoaggregator_src_query;
diff --git a/gst-libs/gst/wayland/Makefile.in b/gst-libs/gst/wayland/Makefile.in
index e4774d5..52e6d1b 100644
--- a/gst-libs/gst/wayland/Makefile.in
+++ b/gst-libs/gst/wayland/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst-libs/gst/wayland
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -229,6 +239,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -246,8 +257,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -276,8 +285,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -325,11 +332,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -513,6 +523,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -591,7 +602,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -631,6 +647,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -779,7 +796,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst-libs/gst/wayland/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst-libs/gst/wayland/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1087,6 +1103,8 @@
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
 	tags tags-am uninstall uninstall-am uninstall-libLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst-plugins-bad.doap b/gst-plugins-bad.doap
index ddbb7fa..c811a12 100644
--- a/gst-plugins-bad.doap
+++ b/gst-plugins-bad.doap
@@ -21,7 +21,7 @@
  <category></category>
  <bug-database rdf:resource="http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer&amp;component=gst-plugins-bad" />
  <screenshots></screenshots>
- <mailing-list rdf:resource="http://lists.sourceforge.net/lists/listinfo/gstreamer-devel/" />
+ <mailing-list rdf:resource="http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" />
  <programming-language>C</programming-language>
  <license rdf:resource="http://usefulinc.com/doap/licenses/lgpl"/>
  <download-page rdf:resource="http://gstreamer.freedesktop.org/download/" />
@@ -35,6 +35,16 @@
 
  <release>
   <Version>
+   <revision>1.5.90</revision>
+   <branch>1.5</branch>
+   <name></name>
+   <created>2015-08-19</created>
+   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-1.5.90.tar.xz" />
+  </Version>
+ </release>
+
+ <release>
+  <Version>
    <revision>1.5.2</revision>
    <branch>1.5</branch>
    <name></name>
diff --git a/gst-plugins-bad.spec b/gst-plugins-bad.spec
index d498ecc..9851dfd 100644
--- a/gst-plugins-bad.spec
+++ b/gst-plugins-bad.spec
@@ -6,7 +6,7 @@
 
 Summary: GStreamer streaming media framework "bad" plug-ins
 Name: %{gstreamer}-plugins-bad
-Version: 1.5.2
+Version: 1.5.90
 Release: 1.gst
 # The freeze and nfs plugins are LGPLv2 (only)
 License: LGPLv2+ and LGPLv2
diff --git a/gst/Makefile.in b/gst/Makefile.in
index ecc544b..fb1e477 100644
--- a/gst/Makefile.in
+++ b/gst/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -19,7 +19,17 @@
 # descending into all subdirectories a second time, but only after the first
 # (parallel) run has finished, so it should go right through the second time.
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -83,8 +93,6 @@
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
-DIST_COMMON = $(top_srcdir)/common/parallel-subdirs.mak \
-	$(srcdir)/Makefile.in $(srcdir)/Makefile.am
 subdir = gst
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
@@ -123,6 +131,7 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -181,6 +190,8 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in \
+	$(top_srcdir)/common/parallel-subdirs.mak
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 am__relativize = \
   dir0=`pwd`; \
@@ -223,8 +234,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -253,8 +262,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -302,11 +309,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -490,6 +500,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -568,7 +579,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -608,6 +624,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -733,7 +750,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -742,7 +758,7 @@
 	    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/parallel-subdirs.mak:
+$(top_srcdir)/common/parallel-subdirs.mak $(am__empty):
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -1029,6 +1045,8 @@
 	mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
 	ps ps-am tags tags-am uninstall uninstall-am
 
+.PRECIOUS: Makefile
+
 
 .PHONY: independent-subdirs $(SUBDIRS)
 
diff --git a/gst/accurip/Makefile.in b/gst/accurip/Makefile.in
index dc77e85..d344c45 100644
--- a/gst/accurip/Makefile.in
+++ b/gst/accurip/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/accurip
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -227,6 +237,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -244,8 +255,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -274,8 +283,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -323,11 +330,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -511,6 +521,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -589,7 +600,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -629,6 +645,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -767,7 +784,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/accurip/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/accurip/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1076,6 +1092,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/adpcmdec/Makefile.in b/gst/adpcmdec/Makefile.in
index 2cb499e..668a20b 100644
--- a/gst/adpcmdec/Makefile.in
+++ b/gst/adpcmdec/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -15,7 +15,17 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -80,8 +90,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/adpcmdec
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -119,6 +127,7 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -225,6 +234,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -242,8 +252,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -272,8 +280,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -321,11 +327,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -509,6 +518,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -587,7 +597,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -627,6 +642,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -765,7 +781,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/adpcmdec/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/adpcmdec/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1074,6 +1089,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/adpcmdec/adpcmdec.c b/gst/adpcmdec/adpcmdec.c
index 9e735f3..83289ba 100644
--- a/gst/adpcmdec/adpcmdec.c
+++ b/gst/adpcmdec/adpcmdec.c
@@ -456,6 +456,9 @@
 adpcmdec_init (ADPCMDec * dec)
 {
   gst_audio_decoder_set_needs_format (GST_AUDIO_DECODER (dec), TRUE);
+  gst_audio_decoder_set_use_default_pad_acceptcaps (GST_AUDIO_DECODER_CAST
+      (dec), TRUE);
+  GST_PAD_SET_ACCEPT_TEMPLATE (GST_AUDIO_DECODER_SINK_PAD (dec));
 }
 
 static void
diff --git a/gst/adpcmenc/Makefile.in b/gst/adpcmenc/Makefile.in
index cb74496..57f0fe7 100644
--- a/gst/adpcmenc/Makefile.in
+++ b/gst/adpcmenc/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -15,7 +15,17 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -80,8 +90,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/adpcmenc
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -119,6 +127,7 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -225,6 +234,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -242,8 +252,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -272,8 +280,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -321,11 +327,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -509,6 +518,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -587,7 +597,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -627,6 +642,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -764,7 +780,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/adpcmenc/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/adpcmenc/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1073,6 +1088,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/adpcmenc/adpcmenc.c b/gst/adpcmenc/adpcmenc.c
index 36d336c..def90cf 100644
--- a/gst/adpcmenc/adpcmenc.c
+++ b/gst/adpcmenc/adpcmenc.c
@@ -421,6 +421,8 @@
 static void
 adpcmenc_init (ADPCMEnc * enc)
 {
+  GST_PAD_SET_ACCEPT_TEMPLATE (GST_AUDIO_ENCODER_SINK_PAD (enc));
+
   /* Set defaults. */
   enc->blocksize = DEFAULT_ADPCM_BLOCK_SIZE;
   enc->layout = DEFAULT_ADPCM_LAYOUT;
diff --git a/gst/aiff/Makefile.in b/gst/aiff/Makefile.in
index 65a8718..9bfb6ef 100644
--- a/gst/aiff/Makefile.in
+++ b/gst/aiff/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/aiff
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -228,6 +238,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -245,8 +256,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -275,8 +284,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -324,11 +331,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -512,6 +522,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -590,7 +601,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -630,6 +646,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -770,7 +787,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/aiff/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/aiff/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1095,6 +1111,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/asfmux/Makefile.in b/gst/asfmux/Makefile.in
index f627dc5..a32eee5 100644
--- a/gst/asfmux/Makefile.in
+++ b/gst/asfmux/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -18,7 +18,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -83,8 +93,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/asfmux
-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 \
@@ -122,6 +130,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -232,6 +242,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -249,8 +260,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -279,8 +288,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -328,11 +335,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -516,6 +526,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -594,7 +605,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -634,6 +650,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -783,7 +800,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/asfmux/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/asfmux/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1124,6 +1140,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/asfmux/gstasfmux.c b/gst/asfmux/gstasfmux.c
index 7614de5..c77f8b6 100644
--- a/gst/asfmux/gstasfmux.c
+++ b/gst/asfmux/gstasfmux.c
@@ -1265,6 +1265,31 @@
   if (padding < ASF_PADDING_OBJECT_SIZE)
     padding = 0;
 
+  /* if not streaming, check if downstream is seekable */
+  if (!asfmux->prop_streamable) {
+    gboolean seekable;
+    GstQuery *query;
+
+    query = gst_query_new_seeking (GST_FORMAT_BYTES);
+    if (gst_pad_peer_query (asfmux->srcpad, query)) {
+      gst_query_parse_seeking (query, NULL, &seekable, NULL, NULL);
+      GST_INFO_OBJECT (asfmux, "downstream is %sseekable",
+          seekable ? "" : "not ");
+    } else {
+      /* assume seeking is not supported if query not handled downstream */
+      GST_WARNING_OBJECT (asfmux, "downstream did not handle seeking query");
+      seekable = FALSE;
+    }
+    if (!seekable) {
+      asfmux->prop_streamable = TRUE;
+      g_object_notify (G_OBJECT (asfmux), "streamable");
+      GST_WARNING_OBJECT (asfmux, "downstream is not seekable, but "
+          "streamable=false. Will ignore that and create streamable output "
+          "instead");
+    }
+    gst_query_unref (query);
+  }
+
   /* from this point we started writing the headers */
   GST_INFO_OBJECT (asfmux, "Writing headers");
   asfmux->state = GST_ASF_MUX_STATE_HEADERS;
@@ -1277,8 +1302,12 @@
   gst_pad_set_caps (asfmux->srcpad, caps);
   gst_caps_unref (caps);
 
-  /* let downstream know we think in BYTES and expect to do seeking later */
-  gst_segment_init (&segment, GST_FORMAT_BYTES);
+  /* send a BYTE format segment if we're going to seek to fix up the headers
+   * later, otherwise send a TIME segment */
+  if (asfmux->prop_streamable)
+    gst_segment_init (&segment, GST_FORMAT_TIME);
+  else
+    gst_segment_init (&segment, GST_FORMAT_BYTES);
   gst_pad_push_event (asfmux->srcpad, gst_event_new_segment (&segment));
 
   gst_asf_generate_file_id (&asfmux->file_id);
diff --git a/gst/audiofxbad/Makefile.in b/gst/audiofxbad/Makefile.in
index 753f2e0..47a9edd 100644
--- a/gst/audiofxbad/Makefile.in
+++ b/gst/audiofxbad/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -15,7 +15,17 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -80,8 +90,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/audiofxbad
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -119,6 +127,7 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -227,6 +236,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -244,8 +254,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -274,8 +282,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -323,11 +329,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -511,6 +520,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -589,7 +599,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -629,6 +644,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -767,7 +783,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/audiofxbad/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/audiofxbad/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1084,6 +1099,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/audiomixer/Makefile.in b/gst/audiomixer/Makefile.in
index 8c01adc..3f77bc6 100644
--- a/gst/audiomixer/Makefile.in
+++ b/gst/audiomixer/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -38,7 +38,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -102,8 +112,6 @@
 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/audiomixer
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
@@ -142,6 +150,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -256,6 +266,8 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/common/orc.mak \
+	$(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -273,8 +285,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -303,8 +313,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -352,11 +360,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -540,6 +551,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -618,7 +630,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -658,6 +675,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -810,7 +828,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/audiomixer/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/audiomixer/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -819,7 +836,7 @@
 	    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_srcdir)/common/orc.mak $(am__empty):
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -1151,6 +1168,8 @@
 	tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 orc-update: tmp-orc.c $(ORC_SOURCE).h
 	$(top_srcdir)/common/gst-indent tmp-orc.c
diff --git a/gst/audiomixer/gstaudioaggregator.c b/gst/audiomixer/gstaudioaggregator.c
index eb2fb1e..ca06a66 100644
--- a/gst/audiomixer/gstaudioaggregator.c
+++ b/gst/audiomixer/gstaudioaggregator.c
@@ -723,7 +723,7 @@
   bpf = GST_AUDIO_INFO_BPF (&pad->info);
 
   GST_OBJECT_LOCK (bpad);
-  *out = gst_audio_buffer_clip (buffer, &bpad->segment, rate, bpf);
+  *out = gst_audio_buffer_clip (buffer, &bpad->clip_segment, rate, bpf);
   GST_OBJECT_UNLOCK (bpad);
 
   return GST_FLOW_OK;
@@ -739,7 +739,6 @@
   GstClockTime start_time, end_time;
   gboolean discont = FALSE;
   guint64 start_offset, end_offset;
-  GstClockTime timestamp, stream_time = GST_CLOCK_TIME_NONE;
   gint rate, bpf;
 
   GstAggregatorPad *aggpad = GST_AGGREGATOR_PAD (pad);
@@ -762,15 +761,6 @@
     goto done;
   }
 
-  timestamp = GST_BUFFER_PTS (inbuf);
-  stream_time = gst_segment_to_stream_time (&aggpad->segment, GST_FORMAT_TIME,
-      timestamp);
-
-  /* sync object properties on stream time */
-  /* TODO: Ideally we would want to do that on every sample */
-  if (GST_CLOCK_TIME_IS_VALID (stream_time))
-    gst_object_sync_values (GST_OBJECT (pad), stream_time);
-
   start_time = GST_BUFFER_PTS (inbuf);
   end_time =
       start_time + gst_util_uint64_scale_ceil (pad->priv->size, GST_SECOND,
@@ -953,8 +943,8 @@
 gst_audio_aggregator_create_output_buffer (GstAudioAggregator * aagg,
     guint num_frames)
 {
-  GstBuffer *outbuf = gst_buffer_new_and_alloc (num_frames *
-      GST_AUDIO_INFO_BPF (&aagg->info));
+  GstBuffer *outbuf = gst_buffer_new_allocate (NULL, num_frames *
+      GST_AUDIO_INFO_BPF (&aagg->info), NULL);
   GstMapInfo outmap;
 
   gst_buffer_map (outbuf, &outmap, GST_MAP_WRITE);
@@ -964,6 +954,29 @@
   return outbuf;
 }
 
+static gboolean
+sync_pad_values (GstAudioAggregator * aagg, GstAudioAggregatorPad * pad)
+{
+  GstAggregatorPad *bpad = GST_AGGREGATOR_PAD (pad);
+  GstClockTime timestamp, stream_time;
+
+  if (pad->priv->buffer == NULL)
+    return TRUE;
+
+  timestamp = GST_BUFFER_PTS (pad->priv->buffer);
+  GST_OBJECT_LOCK (bpad);
+  stream_time = gst_segment_to_stream_time (&bpad->segment, GST_FORMAT_TIME,
+      timestamp);
+  GST_OBJECT_UNLOCK (bpad);
+
+  /* sync object properties on stream time */
+  /* TODO: Ideally we would want to do that on every sample */
+  if (GST_CLOCK_TIME_IS_VALID (stream_time))
+    gst_object_sync_values (GST_OBJECT (pad), stream_time);
+
+  return TRUE;
+}
+
 static GstFlowReturn
 gst_audio_aggregator_aggregate (GstAggregator * agg, gboolean timeout)
 {
@@ -1011,9 +1024,9 @@
   element = GST_ELEMENT (agg);
   aagg = GST_AUDIO_AGGREGATOR (agg);
 
-  blocksize = gst_util_uint64_scale (aagg->priv->output_buffer_duration,
-      GST_AUDIO_INFO_RATE (&aagg->info), GST_SECOND);
-  blocksize = MAX (1, blocksize);
+  /* Sync pad properties to the stream time */
+  gst_aggregator_iterate_sinkpads (agg,
+      (GstAggregatorPadForeachFunc) GST_DEBUG_FUNCPTR (sync_pad_values), NULL);
 
   GST_AUDIO_AGGREGATOR_LOCK (aagg);
   GST_OBJECT_LOCK (agg);
@@ -1062,6 +1075,9 @@
   rate = GST_AUDIO_INFO_RATE (&aagg->info);
   bpf = GST_AUDIO_INFO_BPF (&aagg->info);
 
+  blocksize = gst_util_uint64_scale (aagg->priv->output_buffer_duration,
+      GST_AUDIO_INFO_RATE (&aagg->info), GST_SECOND);
+  blocksize = MAX (1, blocksize);
 
   /* for the next timestamp, use the sample counter, which will
    * never accumulate rounding errors */
@@ -1255,6 +1271,20 @@
   aagg->priv->offset = next_offset;
   agg->segment.position = next_timestamp;
 
+  /* If there was a timeout and there was a gap in data in out of the streams,
+   * then it's a very good time to for a resync with the timestamps.
+   */
+  if (timeout) {
+    for (iter = element->sinkpads; iter; iter = iter->next) {
+      GstAudioAggregatorPad *pad = GST_AUDIO_AGGREGATOR_PAD (iter->data);
+
+      GST_OBJECT_LOCK (pad);
+      if (pad->priv->output_offset < aagg->priv->offset)
+        pad->priv->output_offset = -1;
+      GST_OBJECT_UNLOCK (pad);
+    }
+  }
+
   GST_OBJECT_UNLOCK (agg);
 
   /* send it out */
diff --git a/gst/audiomixer/gstaudiointerleave.c b/gst/audiomixer/gstaudiointerleave.c
index 01ce19c..39b86e8 100644
--- a/gst/audiomixer/gstaudiointerleave.c
+++ b/gst/audiomixer/gstaudiointerleave.c
@@ -514,6 +514,11 @@
     GstStructure *s;
     gboolean ret;
 
+    if (self->sinkcaps == NULL || self->channels == 0) {
+      /* In this case, let the base class handle it */
+      goto not_negotiated;
+    }
+
     srccaps = gst_caps_copy (self->sinkcaps);
     s = gst_caps_get_structure (srccaps, 0);
 
@@ -535,6 +540,8 @@
 
     self->new_caps = FALSE;
   }
+
+not_negotiated:
   GST_OBJECT_UNLOCK (aggregator);
 
   return GST_AGGREGATOR_CLASS (parent_class)->aggregate (aggregator, timeout);
diff --git a/gst/audiovisualizers/Makefile.in b/gst/audiovisualizers/Makefile.in
index 0c5f0c0..0ac6a19 100644
--- a/gst/audiovisualizers/Makefile.in
+++ b/gst/audiovisualizers/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/audiovisualizers
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -236,6 +246,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp README
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -253,8 +264,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -283,8 +292,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -332,11 +339,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -520,6 +530,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -598,7 +609,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -638,6 +654,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -784,7 +801,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/audiovisualizers/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/audiovisualizers/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1133,6 +1149,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/autoconvert/Makefile.in b/gst/autoconvert/Makefile.in
index ec15aa8..44062ab 100644
--- a/gst/autoconvert/Makefile.in
+++ b/gst/autoconvert/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/autoconvert
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -229,6 +239,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -246,8 +257,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -276,8 +285,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -325,11 +332,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -513,6 +523,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -591,7 +602,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -631,6 +647,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -762,7 +779,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/autoconvert/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/autoconvert/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1087,6 +1103,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/bayer/Makefile.in b/gst/bayer/Makefile.in
index a0b826b..f9c0d09 100644
--- a/gst/bayer/Makefile.in
+++ b/gst/bayer/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -37,7 +37,17 @@
 #
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -101,8 +111,6 @@
 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
 subdir = gst/bayer
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
@@ -141,6 +149,7 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -251,6 +260,8 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/common/orc.mak \
+	$(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -268,8 +279,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -298,8 +307,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -349,11 +356,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -537,6 +547,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -615,7 +626,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -655,6 +671,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -808,7 +825,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/bayer/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/bayer/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -817,7 +833,7 @@
 	    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_srcdir)/common/orc.mak $(am__empty):
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -1149,6 +1165,8 @@
 	tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 orc-update: tmp-orc.c $(ORC_SOURCE).h
 	$(top_srcdir)/common/gst-indent tmp-orc.c
diff --git a/gst/bayer/gstbayer2rgb.c b/gst/bayer/gstbayer2rgb.c
index 036ac2a..e159ca2 100644
--- a/gst/bayer/gstbayer2rgb.c
+++ b/gst/bayer/gstbayer2rgb.c
@@ -462,14 +462,25 @@
   GstVideoFrame frame;
 
   GST_DEBUG ("transforming buffer");
-  gst_buffer_map (inbuf, &map, GST_MAP_READ);
-  gst_video_frame_map (&frame, &filter->info, outbuf, GST_MAP_WRITE);
+
+  if (!gst_buffer_map (inbuf, &map, GST_MAP_READ))
+    goto map_failed;
+
+  if (!gst_video_frame_map (&frame, &filter->info, outbuf, GST_MAP_WRITE)) {
+    gst_buffer_unmap (inbuf, &map);
+    goto map_failed;
+  }
 
   output = GST_VIDEO_FRAME_PLANE_DATA (&frame, 0);
-  gst_bayer2rgb_process (filter, output, filter->width * 4,
+  gst_bayer2rgb_process (filter, output, frame.info.stride[0],
       map.data, filter->width);
+
   gst_video_frame_unmap (&frame);
   gst_buffer_unmap (inbuf, &map);
 
   return GST_FLOW_OK;
+
+map_failed:
+  GST_WARNING_OBJECT (base, "Could not map buffer, skipping");
+  return GST_FLOW_OK;
 }
diff --git a/gst/bayer/gstrgb2bayer.c b/gst/bayer/gstrgb2bayer.c
index 5da9b47..495f151 100644
--- a/gst/bayer/gstrgb2bayer.c
+++ b/gst/bayer/gstrgb2bayer.c
@@ -243,15 +243,20 @@
   int width = rgb2bayer->width;
   GstVideoFrame frame;
 
-  gst_video_frame_map (&frame, &rgb2bayer->info, inbuf, GST_MAP_READ);
+  if (!gst_video_frame_map (&frame, &rgb2bayer->info, inbuf, GST_MAP_READ))
+    goto map_failed;
 
-  gst_buffer_map (outbuf, &map, GST_MAP_READ);
+  if (!gst_buffer_map (outbuf, &map, GST_MAP_READ)) {
+    gst_video_frame_unmap (&frame);
+    goto map_failed;
+  }
+
   dest = map.data;
   src = GST_VIDEO_FRAME_PLANE_DATA (&frame, 0);
 
   for (j = 0; j < height; j++) {
     guint8 *dest_line = dest + width * j;
-    guint8 *src_line = src + width * 4 * j;
+    guint8 *src_line = src + frame.info.stride[0] * j;
 
     for (i = 0; i < width; i++) {
       int is_blue = ((j & 1) << 1) | (i & 1);
@@ -264,8 +269,13 @@
       }
     }
   }
+
   gst_buffer_unmap (outbuf, &map);
   gst_video_frame_unmap (&frame);
 
   return GST_FLOW_OK;
+
+map_failed:
+  GST_WARNING_OBJECT (trans, "Could not map buffer, skipping");
+  return GST_FLOW_OK;
 }
diff --git a/gst/camerabin2/Makefile.in b/gst/camerabin2/Makefile.in
index c4cd040..ab02d94 100644
--- a/gst/camerabin2/Makefile.in
+++ b/gst/camerabin2/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/camerabin2
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -235,6 +245,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -252,8 +263,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -282,8 +291,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -331,11 +338,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -519,6 +529,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -597,7 +608,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -637,6 +653,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -789,7 +806,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/camerabin2/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/camerabin2/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1138,6 +1154,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/camerabin2/gstwrappercamerabinsrc.c b/gst/camerabin2/gstwrappercamerabinsrc.c
index 40d7858..7796107 100644
--- a/gst/camerabin2/gstwrappercamerabinsrc.c
+++ b/gst/camerabin2/gstwrappercamerabinsrc.c
@@ -581,7 +581,7 @@
 
     if (!(self->digitalzoom = g_object_new (GST_TYPE_DIGITAL_ZOOM, NULL))) {
       GST_ELEMENT_ERROR (self, CORE, MISSING_PLUGIN,
-          (_("Digitalzoom element cound't be created")), (NULL));
+          (_("Digitalzoom element couldn't be created")), (NULL));
 
       goto done;
     }
diff --git a/gst/cdxaparse/Makefile.in b/gst/cdxaparse/Makefile.in
index e35636e..e538604 100644
--- a/gst/cdxaparse/Makefile.in
+++ b/gst/cdxaparse/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/cdxaparse
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -228,6 +238,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -245,8 +256,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -275,8 +284,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -324,11 +331,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -512,6 +522,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -590,7 +601,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -630,6 +646,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -776,7 +793,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/cdxaparse/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/cdxaparse/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1093,6 +1109,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/coloreffects/Makefile.in b/gst/coloreffects/Makefile.in
index 532cbe8..22610c3 100644
--- a/gst/coloreffects/Makefile.in
+++ b/gst/coloreffects/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/coloreffects
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -229,6 +239,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -246,8 +257,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -276,8 +285,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -325,11 +332,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -513,6 +523,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -591,7 +602,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -631,6 +647,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -774,7 +791,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/coloreffects/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/coloreffects/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1099,6 +1115,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/compositor/Makefile.in b/gst/compositor/Makefile.in
index ff4e010..f7a3d89 100644
--- a/gst/compositor/Makefile.in
+++ b/gst/compositor/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -38,7 +38,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -102,8 +112,6 @@
 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/compositor
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
@@ -142,6 +150,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -257,6 +267,8 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/common/orc.mak \
+	$(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -274,8 +286,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -304,8 +314,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -353,11 +361,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -541,6 +552,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -619,7 +631,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -659,6 +676,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -822,7 +840,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/compositor/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/compositor/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -831,7 +848,7 @@
 	    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_srcdir)/common/orc.mak $(am__empty):
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -1155,6 +1172,8 @@
 	tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 orc-update: tmp-orc.c $(ORC_SOURCE).h
 	$(top_srcdir)/common/gst-indent tmp-orc.c
diff --git a/gst/dataurisrc/Makefile.in b/gst/dataurisrc/Makefile.in
index 0ddbb5b..fadd8d4 100644
--- a/gst/dataurisrc/Makefile.in
+++ b/gst/dataurisrc/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -15,7 +15,17 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -80,8 +90,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/dataurisrc
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -119,6 +127,7 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -225,6 +234,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -242,8 +252,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -272,8 +280,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -321,11 +327,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -509,6 +518,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -587,7 +597,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -627,6 +642,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -757,7 +773,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/dataurisrc/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/dataurisrc/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1066,6 +1081,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/dccp/Makefile.in b/gst/dccp/Makefile.in
index b4426dc..56e0372 100644
--- a/gst/dccp/Makefile.in
+++ b/gst/dccp/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -18,7 +18,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -83,8 +93,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/dccp
-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 \
@@ -122,6 +130,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -234,6 +244,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -251,8 +262,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -281,8 +290,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -330,11 +337,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -518,6 +528,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -596,7 +607,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -636,6 +652,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -785,7 +802,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/dccp/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/dccp/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1134,6 +1150,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/debugutils/Makefile.in b/gst/debugutils/Makefile.in
index 679992e..1aaf46f 100644
--- a/gst/debugutils/Makefile.in
+++ b/gst/debugutils/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -24,7 +24,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -88,9 +98,6 @@
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
-DIST_COMMON = $(top_srcdir)/common/gst-glib-gen.mak \
-	$(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp $(noinst_HEADERS)
 subdir = gst/debugutils
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
@@ -129,6 +136,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -250,6 +259,8 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in \
+	$(top_srcdir)/common/gst-glib-gen.mak $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -267,8 +278,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -297,8 +306,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -346,11 +353,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -534,6 +544,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -612,7 +623,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -652,6 +668,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -812,7 +829,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/debugutils/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/debugutils/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -821,7 +837,7 @@
 	    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/gst-glib-gen.mak:
+$(top_srcdir)/common/gst-glib-gen.mak $(am__empty):
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -1190,6 +1206,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # these are all the rules generating the relevant files
 $(glib_gen_basename)-marshal.h: $(glib_gen_basename)-marshal.list
diff --git a/gst/dvbsuboverlay/Makefile.in b/gst/dvbsuboverlay/Makefile.in
index be05c88..843e6ac 100644
--- a/gst/dvbsuboverlay/Makefile.in
+++ b/gst/dvbsuboverlay/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/dvbsuboverlay
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp $(noinst_HEADERS) TODO
 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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -228,6 +238,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp TODO
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -245,8 +256,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -275,8 +284,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -324,11 +331,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -512,6 +522,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -590,7 +601,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -630,6 +646,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -761,7 +778,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/dvbsuboverlay/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/dvbsuboverlay/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1078,6 +1094,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/dvdspu/Makefile.in b/gst/dvdspu/Makefile.in
index 0b52bd2..ac4bb6c 100644
--- a/gst/dvdspu/Makefile.in
+++ b/gst/dvdspu/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/dvdspu
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -231,6 +241,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -248,8 +259,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -278,8 +287,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -327,11 +334,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -515,6 +525,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -593,7 +604,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -633,6 +649,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -767,7 +784,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/dvdspu/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/dvdspu/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1108,6 +1124,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/dvdspu/gstdvdspu.c b/gst/dvdspu/gstdvdspu.c
index f126f34..62ee544 100644
--- a/gst/dvdspu/gstdvdspu.c
+++ b/gst/dvdspu/gstdvdspu.c
@@ -283,7 +283,9 @@
   if (peer) {
     res = gst_pad_send_event (peer, event);
     gst_object_unref (peer);
-  }
+  } else
+    gst_event_unref (event);
+
   return res;
 }
 
@@ -455,8 +457,10 @@
 
       gst_event_copy_segment (event, &seg);
 
-      if (seg.format != GST_FORMAT_TIME)
+      if (seg.format != GST_FORMAT_TIME) {
+        gst_event_unref (event);
         return FALSE;
+      }
 
       /* Only print updates if they have an end time (don't print start_time
        * updates */
diff --git a/gst/dvdspu/gstspu-pgs.c b/gst/dvdspu/gstspu-pgs.c
index 785f79c..7e86a29 100644
--- a/gst/dvdspu/gstspu-pgs.c
+++ b/gst/dvdspu/gstspu-pgs.c
@@ -683,6 +683,7 @@
   guint8 *pos, *end;
   guint8 type;
   guint16 packet_len;
+  gint remaining;
 
   gst_buffer_map (buf, &map, GST_MAP_READ);
 
@@ -703,7 +704,6 @@
     pos += 2;
 
     if (pos + packet_len > end) {
-      gst_buffer_unmap (buf, &map);
       PGS_DUMP ("Invalid packet length %u (only have %u bytes)\n", packet_len,
           end - pos);
       goto error;
@@ -716,7 +716,9 @@
   } while (pos + 3 <= end);
 
   PGS_DUMP ("End dumping command buffer with %u bytes remaining\n", end - pos);
-  return (pos - map.data);
+  remaining = (gint) (pos - map.data);
+  gst_buffer_unmap (buf, &map);
+  return remaining;
 
   /* ERRORS */
 error:
@@ -777,6 +779,7 @@
 gboolean
 gstspu_pgs_handle_dvd_event (GstDVDSpu * dvdspu, GstEvent * event)
 {
+  gst_event_unref (event);
   return FALSE;
 }
 
diff --git a/gst/faceoverlay/Makefile.in b/gst/faceoverlay/Makefile.in
index a15cabd..f9dccae 100644
--- a/gst/faceoverlay/Makefile.in
+++ b/gst/faceoverlay/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/faceoverlay
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -228,6 +238,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -245,8 +256,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -275,8 +284,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -324,11 +331,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -512,6 +522,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -590,7 +601,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -630,6 +646,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -767,7 +784,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/faceoverlay/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/faceoverlay/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1076,6 +1092,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/festival/Makefile.in b/gst/festival/Makefile.in
index 014aff8..fc37190 100644
--- a/gst/festival/Makefile.in
+++ b/gst/festival/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/festival
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -227,6 +237,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -244,8 +255,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -274,8 +283,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -323,11 +330,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -511,6 +521,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -589,7 +600,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -629,6 +645,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -764,7 +781,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/festival/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/festival/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1073,6 +1089,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/fieldanalysis/Makefile.in b/gst/fieldanalysis/Makefile.in
index 49448d1..4fa3b81 100644
--- a/gst/fieldanalysis/Makefile.in
+++ b/gst/fieldanalysis/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -38,7 +38,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -102,8 +112,6 @@
 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/fieldanalysis
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
@@ -142,6 +150,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -255,6 +265,8 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/common/orc.mak \
+	$(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -272,8 +284,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -302,8 +312,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -351,11 +359,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -539,6 +550,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -617,7 +629,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -657,6 +674,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -810,7 +828,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/fieldanalysis/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/fieldanalysis/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -819,7 +836,7 @@
 	    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_srcdir)/common/orc.mak $(am__empty):
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -1135,6 +1152,8 @@
 	tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 orc-update: tmp-orc.c $(ORC_SOURCE).h
 	$(top_srcdir)/common/gst-indent tmp-orc.c
diff --git a/gst/freeverb/Makefile.in b/gst/freeverb/Makefile.in
index e5b6518..f9dd05e 100644
--- a/gst/freeverb/Makefile.in
+++ b/gst/freeverb/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -17,7 +17,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -82,8 +92,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/freeverb
-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 \
@@ -121,6 +129,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -230,6 +240,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -247,8 +258,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -277,8 +286,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -326,11 +333,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -514,6 +524,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -592,7 +603,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -632,6 +648,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -781,7 +798,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/freeverb/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/freeverb/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1111,6 +1127,8 @@
 	mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
 	uninstall-am uninstall-pluginLTLIBRARIES uninstall-presetDATA
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/frei0r/Makefile.in b/gst/frei0r/Makefile.in
index eaa1aa1..545ff16 100644
--- a/gst/frei0r/Makefile.in
+++ b/gst/frei0r/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/frei0r
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -231,6 +241,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -248,8 +259,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -278,8 +287,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -327,11 +334,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -515,6 +525,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -593,7 +604,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -633,6 +649,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -771,7 +788,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/frei0r/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/frei0r/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1104,6 +1120,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/frei0r/gstfrei0r.c b/gst/frei0r/gstfrei0r.c
index 756172e..e55fb05 100644
--- a/gst/frei0r/gstfrei0r.c
+++ b/gst/frei0r/gstfrei0r.c
@@ -258,12 +258,8 @@
   f0r_instance_t *instance = ftable->construct (width, height);
   gint i;
 
-  for (i = 0; i < n_properties; i++) {
-    if (properties[i].info.type == F0R_PARAM_STRING)
-      ftable->set_param_value (instance, property_cache[i].data.s, i);
-    else
-      ftable->set_param_value (instance, &property_cache[i].data, i);
-  }
+  for (i = 0; i < n_properties; i++)
+    ftable->set_param_value (instance, &property_cache[i].data, i);
 
   return instance;
 }
diff --git a/gst/gaudieffects/Makefile.in b/gst/gaudieffects/Makefile.in
index 167df89..227b1ec 100644
--- a/gst/gaudieffects/Makefile.in
+++ b/gst/gaudieffects/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -38,7 +38,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -102,8 +112,6 @@
 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/gaudieffects
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
@@ -142,6 +150,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -261,6 +271,8 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/common/orc.mak \
+	$(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -278,8 +290,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -308,8 +318,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -357,11 +365,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -545,6 +556,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -623,7 +635,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -663,6 +680,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -837,7 +855,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/gaudieffects/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/gaudieffects/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -846,7 +863,7 @@
 	    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_srcdir)/common/orc.mak $(am__empty):
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -1218,6 +1235,8 @@
 	tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 orc-update: tmp-orc.c $(ORC_SOURCE).h
 	$(top_srcdir)/common/gst-indent tmp-orc.c
diff --git a/gst/gdp/Makefile.in b/gst/gdp/Makefile.in
index 876fe3d..0be57b4 100644
--- a/gst/gdp/Makefile.in
+++ b/gst/gdp/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/gdp
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -229,6 +239,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp README
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -246,8 +257,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -276,8 +285,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -325,11 +332,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -513,6 +523,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -591,7 +602,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -631,6 +647,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -772,7 +789,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/gdp/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/gdp/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1105,6 +1121,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/geometrictransform/Makefile.in b/gst/geometrictransform/Makefile.in
index d2d3433..2a16924 100644
--- a/gst/geometrictransform/Makefile.in
+++ b/gst/geometrictransform/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/geometrictransform
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -250,6 +260,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -267,8 +278,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -297,8 +306,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -346,11 +353,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -534,6 +544,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -612,7 +623,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -652,6 +668,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -828,7 +845,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/geometrictransform/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/geometrictransform/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1289,6 +1305,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/hdvparse/Makefile.in b/gst/hdvparse/Makefile.in
index 6c2e848..fa0f8c3 100644
--- a/gst/hdvparse/Makefile.in
+++ b/gst/hdvparse/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/hdvparse
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -227,6 +237,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -244,8 +255,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -274,8 +283,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -323,11 +330,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -511,6 +521,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -589,7 +600,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -629,6 +645,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -764,7 +781,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/hdvparse/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/hdvparse/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1073,6 +1089,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/id3tag/Makefile.in b/gst/id3tag/Makefile.in
index a24ca34..2ccf543 100644
--- a/gst/id3tag/Makefile.in
+++ b/gst/id3tag/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/id3tag
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -228,6 +238,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -245,8 +256,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -275,8 +284,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -324,11 +331,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -512,6 +522,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -590,7 +601,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -630,6 +646,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -770,7 +787,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/id3tag/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/id3tag/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1087,6 +1103,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/inter/Makefile.in b/gst/inter/Makefile.in
index c6c2eb5..5a6b3ec 100644
--- a/gst/inter/Makefile.in
+++ b/gst/inter/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -17,7 +17,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -83,8 +93,6 @@
 target_triplet = @target@
 noinst_PROGRAMS = gstintertest$(EXEEXT)
 subdir = gst/inter
-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 \
@@ -122,6 +130,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -244,6 +254,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -261,8 +272,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -291,8 +300,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -340,11 +347,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -528,6 +538,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -606,7 +617,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -646,6 +662,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -817,7 +834,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/inter/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/inter/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1210,6 +1226,8 @@
 	mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
 	uninstall-am uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/interlace/Makefile.in b/gst/interlace/Makefile.in
index 8e80485..ddb170d 100644
--- a/gst/interlace/Makefile.in
+++ b/gst/interlace/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -15,7 +15,17 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -80,8 +90,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/interlace
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -119,6 +127,7 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -225,6 +234,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -242,8 +252,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -272,8 +280,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -321,11 +327,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -509,6 +518,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -587,7 +597,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -627,6 +642,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -766,7 +782,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/interlace/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/interlace/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1075,6 +1090,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/ivfparse/Makefile.in b/gst/ivfparse/Makefile.in
index c6bfb8b..2d9a3dd 100644
--- a/gst/ivfparse/Makefile.in
+++ b/gst/ivfparse/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/ivfparse
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -227,6 +237,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -244,8 +255,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -274,8 +283,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -323,11 +330,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -511,6 +521,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -589,7 +600,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -629,6 +645,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -766,7 +783,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/ivfparse/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/ivfparse/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1075,6 +1091,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/ivtc/Makefile.in b/gst/ivtc/Makefile.in
index f5470b1..dacfe22 100644
--- a/gst/ivtc/Makefile.in
+++ b/gst/ivtc/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -15,7 +15,17 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -80,8 +90,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/ivtc
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -119,6 +127,7 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -226,6 +235,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -243,8 +253,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -273,8 +281,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -322,11 +328,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -510,6 +519,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -588,7 +598,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -628,6 +643,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -765,7 +781,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/ivtc/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/ivtc/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1082,6 +1097,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/jp2kdecimator/Makefile.in b/gst/jp2kdecimator/Makefile.in
index bed38e4..b2ecf4c 100644
--- a/gst/jp2kdecimator/Makefile.in
+++ b/gst/jp2kdecimator/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/jp2kdecimator
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -229,6 +239,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -246,8 +257,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -276,8 +285,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -325,11 +332,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -513,6 +523,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -591,7 +602,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -631,6 +647,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -769,7 +786,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/jp2kdecimator/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/jp2kdecimator/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1086,6 +1102,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/jpegformat/Makefile.in b/gst/jpegformat/Makefile.in
index 6752cd1..a504fc1 100644
--- a/gst/jpegformat/Makefile.in
+++ b/gst/jpegformat/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/jpegformat
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -229,6 +239,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -246,8 +257,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -276,8 +285,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -325,11 +332,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -513,6 +523,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -591,7 +602,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -631,6 +647,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -766,7 +783,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/jpegformat/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/jpegformat/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1091,6 +1107,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/librfb/Makefile.in b/gst/librfb/Makefile.in
index 9c1de80..1eee6e9 100644
--- a/gst/librfb/Makefile.in
+++ b/gst/librfb/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -18,7 +18,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -83,8 +93,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/librfb
-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 \
@@ -122,6 +130,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -237,6 +247,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -254,8 +265,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -284,8 +293,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -333,11 +340,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -521,6 +531,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -599,7 +610,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -639,6 +655,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -788,7 +805,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/librfb/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/librfb/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1135,6 +1151,8 @@
 	mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
 	uninstall-am uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/liveadder/Makefile.in b/gst/liveadder/Makefile.in
index 7c773c4..6ba2757 100644
--- a/gst/liveadder/Makefile.in
+++ b/gst/liveadder/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/liveadder
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -227,6 +237,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -244,8 +255,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -274,8 +283,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -323,11 +330,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -511,6 +521,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -589,7 +600,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -629,6 +645,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -763,7 +780,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/liveadder/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/liveadder/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1072,6 +1088,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/liveadder/liveadder.c b/gst/liveadder/liveadder.c
index e456ff8..a660419 100644
--- a/gst/liveadder/liveadder.c
+++ b/gst/liveadder/liveadder.c
@@ -558,7 +558,8 @@
       reset_pad_private (pad);
       GST_OBJECT_UNLOCK (adder);
       ret = gst_pad_push_event (adder->srcpad, event);
-      ret = gst_live_adder_src_activate_mode (adder->srcpad, GST_OBJECT (adder),
+      ret &=
+          gst_live_adder_src_activate_mode (adder->srcpad, GST_OBJECT (adder),
           GST_PAD_MODE_PUSH, TRUE);
       break;
     case GST_EVENT_EOS:
@@ -822,24 +823,19 @@
 static gboolean
 forward_event (GstLiveAdder * adder, GstEvent * event)
 {
-  gboolean ret;
   GstIterator *it;
   GValue vret = { 0 };
 
   GST_LOG_OBJECT (adder, "Forwarding event %p (%s)", event,
       GST_EVENT_TYPE_NAME (event));
 
-  ret = TRUE;
-
   g_value_init (&vret, G_TYPE_BOOLEAN);
   g_value_set_boolean (&vret, TRUE);
   it = gst_element_iterate_sink_pads (GST_ELEMENT_CAST (adder));
   gst_iterator_fold (it, forward_event_func, &vret, event);
   gst_iterator_free (it);
 
-  ret = g_value_get_boolean (&vret);
-
-  return ret;
+  return g_value_get_boolean (&vret);
 }
 
 
@@ -880,8 +876,16 @@
   return (guint) ret;
 }
 
+static GstClockTime
+gst_live_adder_length_to_duration (GstLiveAdder * adder, guint size)
+{
+  return GST_FRAMES_TO_CLOCK_TIME ((size /
+          GST_AUDIO_INFO_BPF (&adder->info)),
+      GST_AUDIO_INFO_RATE (&adder->info));
+}
+
 static GstFlowReturn
-gst_live_live_adder_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer)
+gst_live_adder_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer)
 {
   GstLiveAdder *adder = GST_LIVE_ADDER (parent);
   GstLiveAdderPadPrivate *padprivate = NULL;
@@ -889,6 +893,9 @@
   GList *item = NULL;
   GstClockTime skip = 0;
   gint64 drift = 0;             /* Positive if new buffer after old buffer */
+  gsize buffer_size = 0;
+  gsize subbuffer_size = 0;
+  gsize offset = 0;
 
   GST_OBJECT_LOCK (adder);
 
@@ -1041,9 +1048,19 @@
       GstClockTime subbuffer_duration = GST_BUFFER_TIMESTAMP (oldbuffer) -
           (GST_BUFFER_TIMESTAMP (buffer) + skip);
 
+      buffer_size = gst_buffer_get_size (buffer);
+      offset = gst_live_adder_length_from_duration (adder, skip);
+      subbuffer_size = gst_live_adder_length_from_duration (adder,
+          subbuffer_duration);
+
+      if (offset + subbuffer_size > buffer_size) {
+        subbuffer_size = buffer_size - offset;
+        subbuffer_duration = gst_live_adder_length_to_duration (adder,
+            subbuffer_size);
+      }
+
       subbuffer = gst_buffer_copy_region (buffer, GST_BUFFER_COPY_ALL,
-          gst_live_adder_length_from_duration (adder, skip),
-          gst_live_adder_length_from_duration (adder, subbuffer_duration));
+          offset, subbuffer_size);
 
       GST_BUFFER_TIMESTAMP (subbuffer) = GST_BUFFER_TIMESTAMP (buffer) + skip;
       GST_BUFFER_DURATION (subbuffer) = subbuffer_duration;
@@ -1094,10 +1111,22 @@
     if (skip) {
       GstClockTime subbuffer_duration = GST_BUFFER_DURATION (buffer) - skip;
       GstClockTime subbuffer_ts = GST_BUFFER_TIMESTAMP (buffer) + skip;
-      GstBuffer *new_buffer = gst_buffer_copy_region (buffer,
-          GST_BUFFER_COPY_ALL,
-          gst_live_adder_length_from_duration (adder, skip),
-          gst_live_adder_length_from_duration (adder, subbuffer_duration));
+      GstBuffer *new_buffer;
+
+      buffer_size = gst_buffer_get_size (buffer);
+      offset = gst_live_adder_length_from_duration (adder, skip);
+      subbuffer_size = gst_live_adder_length_from_duration (adder,
+          subbuffer_duration);
+
+      if (offset + subbuffer_size > buffer_size) {
+        subbuffer_size = buffer_size - offset;
+        subbuffer_duration = gst_live_adder_length_to_duration (adder,
+            subbuffer_size);
+      }
+
+      new_buffer = gst_buffer_copy_region (buffer,
+          GST_BUFFER_COPY_ALL, offset, subbuffer_size);
+
       gst_buffer_unref (buffer);
       buffer = new_buffer;
       GST_BUFFER_PTS (buffer) = subbuffer_ts;
@@ -1373,7 +1402,7 @@
 
   gst_pad_set_element_private (newpad, padprivate);
 
-  gst_pad_set_chain_function (newpad, gst_live_live_adder_chain);
+  gst_pad_set_chain_function (newpad, gst_live_adder_chain);
 
 
   if (!gst_pad_set_active (newpad, TRUE))
diff --git a/gst/midi/Makefile.in b/gst/midi/Makefile.in
index eae5c35..336fb06 100644
--- a/gst/midi/Makefile.in
+++ b/gst/midi/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/midi
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -228,6 +238,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -245,8 +256,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -275,8 +284,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -324,11 +331,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -512,6 +522,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -590,7 +601,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -630,6 +646,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -770,7 +787,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/midi/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/midi/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1087,6 +1103,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/mpegdemux/Makefile.in b/gst/mpegdemux/Makefile.in
index f0bcc77..b1c1517 100644
--- a/gst/mpegdemux/Makefile.in
+++ b/gst/mpegdemux/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/mpegdemux
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -229,6 +239,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -246,8 +257,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -276,8 +285,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -325,11 +332,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -513,6 +523,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -591,7 +602,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -631,6 +647,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -777,7 +794,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/mpegdemux/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/mpegdemux/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1102,6 +1118,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/mpegdemux/gstmpegdemux.c b/gst/mpegdemux/gstmpegdemux.c
old mode 100644
new mode 100755
index ab9b364..eb2848b
--- a/gst/mpegdemux/gstmpegdemux.c
+++ b/gst/mpegdemux/gstmpegdemux.c
@@ -822,6 +822,9 @@
           continue;
       }
 
+      if (temp == NULL)
+        continue;
+
       g_snprintf (cur_stream_name, 32, "audio-%d-language", i);
       lang_code = gst_structure_get_string (structure, cur_stream_name);
       if (lang_code) {
@@ -855,6 +858,8 @@
       /* Retrieve the subpicture stream to force pad creation */
       temp = gst_ps_demux_get_stream (demux, 0x20 + stream_id,
           ST_PS_DVD_SUBPICTURE);
+      if (temp == NULL)
+        continue;
 
       g_snprintf (cur_stream_name, 32, "subpicture-%d-language", i);
       lang_code = gst_structure_get_string (structure, cur_stream_name);
diff --git a/gst/mpegpsmux/Makefile.in b/gst/mpegpsmux/Makefile.in
index 50fde3b..3995fa8 100644
--- a/gst/mpegpsmux/Makefile.in
+++ b/gst/mpegpsmux/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/mpegpsmux
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -230,6 +240,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -247,8 +258,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -277,8 +286,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -326,11 +333,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -514,6 +524,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -592,7 +603,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -632,6 +648,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -778,7 +795,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/mpegpsmux/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/mpegpsmux/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1119,6 +1135,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/mpegtsdemux/Makefile.in b/gst/mpegtsdemux/Makefile.in
index 0f05afd..5583562 100644
--- a/gst/mpegtsdemux/Makefile.in
+++ b/gst/mpegtsdemux/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/mpegtsdemux
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp $(noinst_HEADERS) TODO
 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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -235,6 +245,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp TODO
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -252,8 +263,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -282,8 +291,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -331,11 +338,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -519,6 +529,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -597,7 +608,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -637,6 +653,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -792,7 +809,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/mpegtsdemux/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/mpegtsdemux/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1141,6 +1157,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/mpegtsdemux/gstmpegdesc.h b/gst/mpegtsdemux/gstmpegdesc.h
index 282ce35..d1256a6 100644
--- a/gst/mpegtsdemux/gstmpegdesc.h
+++ b/gst/mpegtsdemux/gstmpegdesc.h
@@ -231,5 +231,6 @@
 #define DRF_ID_CUEI       0x43554549
 #define DRF_ID_ETV1       0x45545631
 #define DRF_ID_HEVC       0x48455643
+#define DRF_ID_KLVA       0x4b4c5641   /* defined in RP217 */
 
 #endif /* __GST_MPEG_DESC_H__ */
diff --git a/gst/mpegtsdemux/mpegtsbase.c b/gst/mpegtsdemux/mpegtsbase.c
index 4751028..d46a47e 100644
--- a/gst/mpegtsdemux/mpegtsbase.c
+++ b/gst/mpegtsdemux/mpegtsbase.c
@@ -959,7 +959,7 @@
 
   /* Early exit if it's not from the present/following table_id */
   if (section->table_id != GST_MTS_TABLE_ID_EVENT_INFORMATION_ACTUAL_TS_PRESENT
-      || section->table_id !=
+      && section->table_id !=
       GST_MTS_TABLE_ID_EVENT_INFORMATION_OTHER_TS_PRESENT)
     return TRUE;
 
@@ -1110,7 +1110,14 @@
       return res;
 
     mpegts_base_flush (base, FALSE);
-    mpegts_packetizer_flush (base->packetizer, FALSE);
+    /* In the case of discontinuities in push-mode with TIME segment
+     * we want to drop all previous observations (hard:TRUE) from
+     * the packetizer */
+    if (base->mode == BASE_MODE_PUSHING
+        && base->segment.format == GST_FORMAT_TIME)
+      mpegts_packetizer_flush (base->packetizer, TRUE);
+    else
+      mpegts_packetizer_flush (base->packetizer, FALSE);
   }
 
   mpegts_packetizer_push (base->packetizer, buf);
@@ -1234,7 +1241,6 @@
   if (!gst_pad_peer_query_duration (base->sinkpad, format, &tmpval))
     goto beach;
   upstream_size = tmpval;
-  done = FALSE;
 
   /* The scanning takes place on the last 2048kB. Considering PCR should
    * be present at least every 100ms, this should cope with streams
@@ -1243,7 +1249,7 @@
 
   /* Find last PCR value, searching backwards by chunks of 300 MPEG-ts packets */
   for (seek_pos = MAX (0, upstream_size - 56400);
-      seek_pos >= reverse_limit && !done; seek_pos -= 56400) {
+      seek_pos >= reverse_limit; seek_pos -= 56400) {
     mpegts_packetizer_clear (base->packetizer);
     GST_DEBUG ("Grabbing %" G_GUINT64_FORMAT " => %" G_GUINT64_FORMAT, seek_pos,
         seek_pos + 56400);
@@ -1267,7 +1273,6 @@
       if (base->packetizer->nb_seen_offsets > initial_pcr_seen) {
         GST_DEBUG ("Got last PCR(s) (total seen:%d)",
             base->packetizer->nb_seen_offsets);
-        done = TRUE;
         break;
       }
     }
diff --git a/gst/mpegtsdemux/pesparse.c b/gst/mpegtsdemux/pesparse.c
index 08ec9a3..1d7a3b6 100644
--- a/gst/mpegtsdemux/pesparse.c
+++ b/gst/mpegtsdemux/pesparse.c
@@ -53,7 +53,7 @@
   guint32 val32;
   guint8 val8, flags;
 
-  g_return_val_if_fail (res != NULL, PES_PARSING_BAD);
+  g_assert (res != NULL);
 
   /* The smallest valid PES header is 6 bytes (prefix + stream_id + length) */
   if (G_UNLIKELY (length < 6))
diff --git a/gst/mpegtsdemux/tsdemux.c b/gst/mpegtsdemux/tsdemux.c
index b06bf4b..217d5ad 100644
--- a/gst/mpegtsdemux/tsdemux.c
+++ b/gst/mpegtsdemux/tsdemux.c
@@ -1196,6 +1196,12 @@
               "stream-format", G_TYPE_STRING, "byte-stream",
               "alignment", G_TYPE_STRING, "nal", NULL);
           break;
+        case DRF_ID_KLVA:
+          sparse = TRUE;
+          is_private = TRUE;
+          caps = gst_caps_new_simple ("meta/x-klv",
+              "parsed", G_TYPE_BOOLEAN, TRUE, NULL);
+          break;
       }
       if (caps)
         break;
@@ -1851,7 +1857,7 @@
       stream->expected_size -= header.header_size;
     } else {
       /* next packet will have to complete this one */
-      GST_ERROR ("invalid header and packet size combination");
+      GST_WARNING ("invalid header and packet size combination, empty packet");
       stream->expected_size = 0;
     }
   }
diff --git a/gst/mpegtsmux/Makefile.in b/gst/mpegtsmux/Makefile.in
index 503db42..dce91a1 100644
--- a/gst/mpegtsmux/Makefile.in
+++ b/gst/mpegtsmux/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/mpegtsmux
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -248,6 +258,7 @@
 ETAGS = etags
 CTAGS = ctags
 DIST_SUBDIRS = $(SUBDIRS)
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 am__relativize = \
   dir0=`pwd`; \
@@ -290,8 +301,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -320,8 +329,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -369,11 +376,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -557,6 +567,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -635,7 +646,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -675,6 +691,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -820,7 +837,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/mpegtsmux/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/mpegtsmux/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1219,6 +1235,8 @@
 	tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/mpegtsmux/mpegtsmux.c b/gst/mpegtsmux/mpegtsmux.c
index 71e2cd8..c3a0dbb 100644
--- a/gst/mpegtsmux/mpegtsmux.c
+++ b/gst/mpegtsmux/mpegtsmux.c
@@ -130,7 +130,9 @@
         "mpegversion = (int) { 1, 2 };"
         "audio/mpeg, "
         "framed = (boolean) TRUE, "
-        "mpegversion = (int) 4, stream-format = (string) { raw, adts };"
+        "mpegversion = (int) 4, stream-format = (string) adts;"
+        "audio/mpeg, "
+        "mpegversion = (int) 4, stream-format = (string) raw;"
         "audio/x-lpcm, "
         "width = (int) { 16, 20, 24 }, "
         "rate = (int) { 48000, 96000 }, "
@@ -140,7 +142,7 @@
         "mute = (boolean) { FALSE, TRUE }; "
         "audio/x-ac3, framed = (boolean) TRUE;"
         "audio/x-dts, framed = (boolean) TRUE;"
-        "subpicture/x-dvb;" "application/x-teletext"));
+        "subpicture/x-dvb; application/x-teletext; meta/x-klv, parsed=true"));
 
 static GstStaticPadTemplate mpegtsmux_src_factory =
 GST_STATIC_PAD_TEMPLATE ("src",
@@ -330,7 +332,6 @@
 static void
 mpegtsmux_pad_reset (MpegTsPadData * pad_data)
 {
-  pad_data->pid = 0;
   pad_data->dts = GST_CLOCK_STIME_NONE;
   pad_data->prog_id = -1;
 #if 0
@@ -361,6 +362,7 @@
 static void
 mpegtsmux_reset (MpegTsMux * mux, gboolean alloc)
 {
+  GstBuffer *buf;
   GSList *walk;
 
   mux->first = TRUE;
@@ -395,19 +397,9 @@
   }
   mux->programs = g_hash_table_new (g_direct_hash, g_direct_equal);
 
-  if (mux->streamheader) {
-    GstBuffer *buf;
-    GList *sh;
+  while ((buf = g_queue_pop_head (&mux->streamheader)))
+    gst_buffer_unref (buf);
 
-    sh = mux->streamheader;
-    while (sh) {
-      buf = sh->data;
-      gst_buffer_unref (buf);
-      sh = g_list_next (sh);
-    }
-    g_list_free (mux->streamheader);
-    mux->streamheader = NULL;
-  }
   gst_event_replace (&mux->force_key_unit_event, NULL);
   gst_buffer_replace (&mux->out_buffer, NULL);
 
@@ -675,6 +667,8 @@
     st = TSMUX_ST_PS_TELETEXT;
     /* needs a particularly sized layout */
     ts_data->prepare_func = mpegtsmux_prepare_teletext;
+  } else if (strcmp (mt, "meta/x-klv") == 0) {
+    st = TSMUX_ST_PS_KLV;
   }
 
   if (st != TSMUX_ST_RESERVED) {
@@ -880,6 +874,19 @@
       forward = gst_tag_list_get_scope (list) == GST_TAG_SCOPE_GLOBAL;
       break;
     }
+    case GST_EVENT_STREAM_START:{
+      GstStreamFlags flags;
+
+      gst_event_parse_stream_flags (event, &flags);
+
+      /* Don't wait for data on sparse inputs like metadata streams */
+      if ((flags & GST_STREAM_FLAG_SPARSE)) {
+        GST_COLLECT_PADS_STATE_UNSET (data, GST_COLLECT_PADS_STATE_LOCKED);
+        gst_collect_pads_set_waiting (pads, data, FALSE);
+        GST_COLLECT_PADS_STATE_SET (data, GST_COLLECT_PADS_STATE_LOCKED);
+      }
+      break;
+    }
     default:
       break;
   }
@@ -1130,6 +1137,7 @@
 
   if (G_UNLIKELY (best == NULL)) {
     /* EOS */
+    GST_INFO_OBJECT (mux, "EOS");
     /* drain some possibly cached data */
     new_packet_m2ts (mux, NULL, -1);
     mpegtsmux_push_packets (mux, TRUE);
@@ -1225,6 +1233,12 @@
     GST_OBJECT_UNLOCK (mux);
 #endif
   }
+
+  if (best->stream->is_meta && gst_buffer_get_size (buf) > (G_MAXUINT16 - 3)) {
+    GST_WARNING_OBJECT (mux, "KLV meta unit too big, splitting not supported");
+    return GST_FLOW_OK;
+  }
+
   GST_DEBUG_OBJECT (mux, "delta: %d", delta);
 
   stream_data = stream_data_new (buf);
@@ -1362,8 +1376,11 @@
       } else {
         hbuf = gst_buffer_copy (buf);
       }
-      mux->streamheader = g_list_append (mux->streamheader, hbuf);
-    } else if (mux->streamheader) {
+      GST_LOG_OBJECT (mux,
+          "Collecting packet with pid 0x%04x into streamheaders", pid);
+
+      g_queue_push_tail (&mux->streamheader, hbuf);
+    } else if (!g_queue_is_empty (&mux->streamheader)) {
       mpegtsmux_set_header_on_caps (mux);
       mux->streamheader_sent = TRUE;
     }
@@ -1664,26 +1681,22 @@
   GValue array = { 0 };
   GValue value = { 0 };
   GstCaps *caps;
-  GList *sh;
 
   caps = gst_caps_make_writable (gst_pad_get_current_caps (mux->srcpad));
   structure = gst_caps_get_structure (caps, 0);
 
   g_value_init (&array, GST_TYPE_ARRAY);
 
-  sh = mux->streamheader;
-  while (sh) {
-    buf = sh->data;
+  GST_LOG_OBJECT (mux, "setting %u packets into streamheader",
+      g_queue_get_length (&mux->streamheader));
+
+  while ((buf = g_queue_pop_head (&mux->streamheader))) {
     g_value_init (&value, GST_TYPE_BUFFER);
     gst_value_take_buffer (&value, buf);
     gst_value_array_append_value (&array, &value);
     g_value_unset (&value);
-    sh = g_list_next (sh);
   }
 
-  g_list_free (mux->streamheader);
-  mux->streamheader = NULL;
-
   gst_structure_set_value (structure, "streamheader", &array);
   gst_pad_set_caps (mux->srcpad, caps);
   g_value_unset (&array);
diff --git a/gst/mpegtsmux/mpegtsmux.h b/gst/mpegtsmux/mpegtsmux.h
index f54342d..169892c 100644
--- a/gst/mpegtsmux/mpegtsmux.h
+++ b/gst/mpegtsmux/mpegtsmux.h
@@ -147,7 +147,7 @@
 
   /* write callback handling/state */
   GstFlowReturn last_flow_ret;
-  GList *streamheader;
+  GQueue streamheader;
   gboolean streamheader_sent;
   gboolean is_delta;
   gboolean is_header;
diff --git a/gst/mpegtsmux/tsmux/Makefile.in b/gst/mpegtsmux/tsmux/Makefile.in
index bfac3b2..e7b9f72 100644
--- a/gst/mpegtsmux/tsmux/Makefile.in
+++ b/gst/mpegtsmux/tsmux/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/mpegtsmux/tsmux
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -199,6 +209,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -216,8 +227,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -246,8 +255,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -295,11 +302,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -483,6 +493,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -561,7 +572,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -601,6 +617,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -733,7 +750,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/mpegtsmux/tsmux/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/mpegtsmux/tsmux/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1022,6 +1038,8 @@
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
 	tags tags-am uninstall uninstall-am
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/mpegtsmux/tsmux/tsmuxstream.c b/gst/mpegtsmux/tsmux/tsmuxstream.c
index ad58ca7..1094c3e 100644
--- a/gst/mpegtsmux/tsmux/tsmuxstream.c
+++ b/gst/mpegtsmux/tsmux/tsmuxstream.c
@@ -191,6 +191,15 @@
           TSMUX_PACKET_FLAG_PES_DATA_ALIGNMENT;
 
       break;
+    case TSMUX_ST_PS_KLV:
+      /* FIXME: assign sequential extended IDs? */
+      stream->id = 0xBD;
+      stream->stream_type = TSMUX_ST_PRIVATE_DATA;
+      stream->is_meta = TRUE;
+      stream->pi.flags |=
+          TSMUX_PACKET_FLAG_PES_FULL_HEADER |
+          TSMUX_PACKET_FLAG_PES_DATA_ALIGNMENT;
+      break;
     default:
       g_critical ("Stream type 0x%0x not yet implemented", stream_type);
       break;
@@ -901,6 +910,11 @@
         g_ptr_array_add (pmt_stream->descriptors, descriptor);
         break;
       }
+      if (stream->is_meta) {
+        descriptor = gst_mpegts_descriptor_from_registration ("KLVA", NULL, 0);
+        GST_ERROR ("adding KLVA registration descriptor!");
+        g_ptr_array_add (pmt_stream->descriptors, descriptor);
+      }
     default:
       break;
   }
diff --git a/gst/mpegtsmux/tsmux/tsmuxstream.h b/gst/mpegtsmux/tsmux/tsmuxstream.h
index 5640df6..c355ae2 100644
--- a/gst/mpegtsmux/tsmux/tsmuxstream.h
+++ b/gst/mpegtsmux/tsmux/tsmuxstream.h
@@ -140,6 +140,7 @@
   TSMUX_ST_PS_AUDIO_LPCM              = 0x8b,
   TSMUX_ST_PS_DVB_SUBPICTURE          = 0x8c,
   TSMUX_ST_PS_TELETEXT                = 0x8d,
+  TSMUX_ST_PS_KLV                     = 0x8e,    /* only used internally */
   TSMUX_ST_PS_DVD_SUBPICTURE          = 0xff,
 
   /* Non-standard definitions */
@@ -206,6 +207,8 @@
 
   gboolean is_dvb_sub;
   gchar language[4];
+
+  gboolean is_meta;
 };
 
 /* stream management */
diff --git a/gst/mve/Makefile.in b/gst/mve/Makefile.in
index 5662584..29423d5 100644
--- a/gst/mve/Makefile.in
+++ b/gst/mve/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/mve
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp $(noinst_HEADERS) TODO
 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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -231,6 +241,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp TODO
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -248,8 +259,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -278,8 +287,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -327,11 +334,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -515,6 +525,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -593,7 +604,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -633,6 +649,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -775,7 +792,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/mve/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/mve/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1148,6 +1164,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/mxf/Makefile.in b/gst/mxf/Makefile.in
index 1a68b15..61bd94a 100644
--- a/gst/mxf/Makefile.in
+++ b/gst/mxf/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/mxf
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -235,6 +245,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -252,8 +263,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -282,8 +291,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -331,11 +338,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -519,6 +529,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -597,7 +608,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -637,6 +653,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -806,7 +823,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/mxf/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/mxf/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1243,6 +1259,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/nuvdemux/Makefile.in b/gst/nuvdemux/Makefile.in
index e9584f0..ba238d0 100644
--- a/gst/nuvdemux/Makefile.in
+++ b/gst/nuvdemux/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/nuvdemux
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -226,6 +236,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -243,8 +254,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -273,8 +282,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -322,11 +329,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -510,6 +520,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -588,7 +599,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -628,6 +644,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -759,7 +776,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/nuvdemux/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/nuvdemux/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1068,6 +1084,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/onvif/Makefile.in b/gst/onvif/Makefile.in
index 23d6639..c3d21ce 100644
--- a/gst/onvif/Makefile.in
+++ b/gst/onvif/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -15,7 +15,17 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -80,8 +90,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/onvif
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -119,6 +127,7 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -227,6 +236,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -244,8 +254,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -274,8 +282,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -323,11 +329,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -511,6 +520,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -589,7 +599,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -629,6 +644,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -767,7 +783,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/onvif/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/onvif/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1092,6 +1107,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/patchdetect/Makefile.in b/gst/patchdetect/Makefile.in
index 4239312..d4c47ea 100644
--- a/gst/patchdetect/Makefile.in
+++ b/gst/patchdetect/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/patchdetect
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -229,6 +239,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -246,8 +257,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -276,8 +285,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -325,11 +332,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -513,6 +523,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -591,7 +602,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -631,6 +647,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -774,7 +791,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/patchdetect/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/patchdetect/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1083,6 +1099,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/pcapparse/Makefile.in b/gst/pcapparse/Makefile.in
index 543cadf..cff3f2d 100644
--- a/gst/pcapparse/Makefile.in
+++ b/gst/pcapparse/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/pcapparse
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -229,6 +239,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -246,8 +257,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -276,8 +285,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -325,11 +332,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -513,6 +523,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -591,7 +602,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -631,6 +647,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -766,7 +783,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/pcapparse/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/pcapparse/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1091,6 +1107,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/pcapparse/gstpcapparse.c b/gst/pcapparse/gstpcapparse.c
index 1a5388e..11a443e 100644
--- a/gst/pcapparse/gstpcapparse.c
+++ b/gst/pcapparse/gstpcapparse.c
@@ -480,13 +480,15 @@
             GstBuffer *out_buf;
             guintptr offset = payload_data - data;
 
-            self->cur_packet_size -= offset;
-            self->cur_packet_size -= payload_size;
-
             gst_adapter_unmap (self->adapter);
             gst_adapter_flush (self->adapter, offset);
-            out_buf = gst_adapter_take_buffer_fast (self->adapter,
-                payload_size);
+            /* we don't use _take_buffer_fast() on purpose here, we need a
+             * buffer with a single memory, since the RTP depayloaders expect
+             * the complete RTP header to be in the first memory if there are
+             * multiple ones and we can't guarantee that with _fast() */
+            out_buf = gst_adapter_take_buffer (self->adapter, payload_size);
+            gst_adapter_flush (self->adapter,
+                self->cur_packet_size - offset - payload_size);
 
             if (GST_CLOCK_TIME_IS_VALID (self->cur_ts)) {
               if (!GST_CLOCK_TIME_IS_VALID (self->base_ts))
@@ -588,7 +590,7 @@
       if (self->caps)
         gst_pad_set_caps (self->src_pad, self->caps);
       gst_segment_init (&segment, GST_FORMAT_TIME);
-      segment.start = self->cur_ts;
+      segment.start = self->base_ts;
       gst_pad_push_event (self->src_pad, gst_event_new_segment (&segment));
       self->newsegment_sent = TRUE;
     }
diff --git a/gst/pnm/Makefile.in b/gst/pnm/Makefile.in
index adf57ca..1f6893b 100644
--- a/gst/pnm/Makefile.in
+++ b/gst/pnm/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/pnm
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -229,6 +239,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -246,8 +257,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -276,8 +285,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -325,11 +332,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -513,6 +523,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -591,7 +602,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -631,6 +647,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -762,7 +779,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/pnm/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/pnm/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1095,6 +1111,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/pnm/gstpnmdec.c b/gst/pnm/gstpnmdec.c
index b4bf3d2..6963e5e 100644
--- a/gst/pnm/gstpnmdec.c
+++ b/gst/pnm/gstpnmdec.c
@@ -108,6 +108,10 @@
   /* Initialize decoder */
   s->buf = NULL;
   gst_pnmdec_flush (s);
+
+  gst_video_decoder_set_use_default_pad_acceptcaps (GST_VIDEO_DECODER_CAST
+      (s), TRUE);
+  GST_PAD_SET_ACCEPT_TEMPLATE (GST_VIDEO_DECODER_SINK_PAD (s));
 }
 
 static GstFlowReturn
diff --git a/gst/pnm/gstpnmenc.c b/gst/pnm/gstpnmenc.c
index 1c059c8..8a0461c 100644
--- a/gst/pnm/gstpnmenc.c
+++ b/gst/pnm/gstpnmenc.c
@@ -111,6 +111,8 @@
 static void
 gst_pnmenc_init (GstPnmenc * s)
 {
+  GST_PAD_SET_ACCEPT_TEMPLATE (GST_VIDEO_ENCODER_SINK_PAD (s));
+
   /* Set default encoding as RAW as ASCII takes up 4 time more bytes */
   s->info.encoding = GST_PNM_ENCODING_RAW;
 }
diff --git a/gst/rawparse/Makefile.in b/gst/rawparse/Makefile.in
index e2f365e..38bbe7d 100644
--- a/gst/rawparse/Makefile.in
+++ b/gst/rawparse/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/rawparse
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -229,6 +239,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp README
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -246,8 +257,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -276,8 +285,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -325,11 +332,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -513,6 +523,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -591,7 +602,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -631,6 +647,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -780,7 +797,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/rawparse/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/rawparse/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1113,6 +1129,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/rawparse/gstrawparse.c b/gst/rawparse/gstrawparse.c
index ad2607b..0308890 100644
--- a/gst/rawparse/gstrawparse.c
+++ b/gst/rawparse/gstrawparse.c
@@ -810,14 +810,13 @@
 
     GST_DEBUG_OBJECT (rp, "converted start - stop to time");
 
-    format = GST_FORMAT_TIME;
-
     gst_event_unref (event);
   } else {
-    format = GST_FORMAT_TIME;
     flags = 0;
   }
 
+  format = GST_FORMAT_TIME;
+
   flush = ((flags & GST_SEEK_FLAG_FLUSH) != 0);
 
   /* start flushing up and downstream so that the loop function pauses and we
diff --git a/gst/removesilence/Makefile.in b/gst/removesilence/Makefile.in
index d1e011a..5788c02 100644
--- a/gst/removesilence/Makefile.in
+++ b/gst/removesilence/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/removesilence
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -229,6 +239,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -246,8 +257,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -276,8 +285,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -325,11 +332,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -513,6 +523,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -591,7 +602,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -631,6 +647,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -765,7 +782,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/removesilence/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/removesilence/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1082,6 +1098,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/rtp/Makefile.in b/gst/rtp/Makefile.in
index 0cd2e74..36780b5 100644
--- a/gst/rtp/Makefile.in
+++ b/gst/rtp/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/rtp
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -231,6 +241,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -248,8 +259,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -278,8 +287,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -327,11 +334,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -515,6 +525,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -593,7 +604,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -633,6 +649,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -782,7 +799,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/rtp/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/rtp/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1107,6 +1123,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/rtp/gstrtph265depay.c b/gst/rtp/gstrtph265depay.c
index 941a5db..bfc2e13 100644
--- a/gst/rtp/gstrtph265depay.c
+++ b/gst/rtp/gstrtph265depay.c
@@ -27,6 +27,7 @@
 
 #include <gst/base/gstbitreader.h>
 #include <gst/rtp/gstrtpbuffer.h>
+#include <gst/video/video.h>
 #include "gstrtph265depay.h"
 
 GST_DEBUG_CATEGORY_STATIC (rtph265depay_debug);
@@ -103,7 +104,7 @@
     element, GstStateChange transition);
 
 static GstBuffer *gst_rtp_h265_depay_process (GstRTPBaseDepayload * depayload,
-    GstBuffer * buf);
+    GstRTPBuffer * rtp);
 static gboolean gst_rtp_h265_depay_setcaps (GstRTPBaseDepayload * filter,
     GstCaps * caps);
 static gboolean gst_rtp_h265_depay_handle_event (GstRTPBaseDepayload * depay,
@@ -133,7 +134,7 @@
       "Jurgen Slowack <jurgenslowack@gmail.com>");
   gstelement_class->change_state = gst_rtp_h265_depay_change_state;
 
-  gstrtpbasedepayload_class->process = gst_rtp_h265_depay_process;
+  gstrtpbasedepayload_class->process_rtp_packet = gst_rtp_h265_depay_process;
   gstrtpbasedepayload_class->set_caps = gst_rtp_h265_depay_setcaps;
   gstrtpbasedepayload_class->handle_event = gst_rtp_h265_depay_handle_event;
 }
@@ -530,10 +531,99 @@
     gst_buffer_unref (codec_data);
   }
 
-  res = gst_pad_set_caps (GST_RTP_BASE_DEPAYLOAD_SRCPAD (rtph265depay),
-      srccaps);
+  if (gst_pad_has_current_caps (GST_RTP_BASE_DEPAYLOAD_SRCPAD (rtph265depay))) {
+    GstCaps *old_caps =
+        gst_pad_get_current_caps (GST_RTP_BASE_DEPAYLOAD_SRCPAD (rtph265depay));
+
+    /* Only update the caps if they are not equal. For
+     * AVC we don't update caps if only the codec_data
+     * changes. This is the same behaviour as in h264parse
+     * and gstrtph264depay
+     */
+    if (rtph265depay->byte_stream) {
+      if (!gst_caps_is_equal (srccaps, old_caps))
+        res =
+            gst_pad_set_caps (GST_RTP_BASE_DEPAYLOAD_SRCPAD (rtph265depay),
+            srccaps);
+      else
+        res = TRUE;
+    } else {
+      GstCaps *tmp_caps = gst_caps_copy (srccaps);
+      GstStructure *old_s, *tmp_s;
+
+      old_s = gst_caps_get_structure (old_caps, 0);
+      tmp_s = gst_caps_get_structure (tmp_caps, 0);
+      if (gst_structure_has_field (old_s, "codec_data"))
+        gst_structure_set_value (tmp_s, "codec_data",
+            gst_structure_get_value (old_s, "codec_data"));
+
+      if (!gst_caps_is_equal (old_caps, tmp_caps))
+        res =
+            gst_pad_set_caps (GST_RTP_BASE_DEPAYLOAD_SRCPAD (rtph265depay),
+            srccaps);
+      else
+        res = TRUE;
+
+      gst_caps_unref (tmp_caps);
+    }
+  } else {
+    res =
+        gst_pad_set_caps (GST_RTP_BASE_DEPAYLOAD_SRCPAD (rtph265depay),
+        srccaps);
+  }
+
   gst_caps_unref (srccaps);
 
+  /* Insert SPS and PPS into the stream on next opportunity */
+  if (rtph265depay->sps->len > 0 || rtph265depay->pps->len > 0) {
+    gint i;
+    GstBuffer *codec_data;
+    GstMapInfo map;
+    guint8 *data;
+    guint len = 0;
+
+    for (i = 0; i < rtph265depay->sps->len; i++) {
+      len += 4 + gst_buffer_get_size (g_ptr_array_index (rtph265depay->sps, i));
+    }
+
+    for (i = 0; i < rtph265depay->pps->len; i++) {
+      len += 4 + gst_buffer_get_size (g_ptr_array_index (rtph265depay->pps, i));
+    }
+
+    codec_data = gst_buffer_new_and_alloc (len);
+    gst_buffer_map (codec_data, &map, GST_MAP_WRITE);
+    data = map.data;
+
+    for (i = 0; i < rtph265depay->sps->len; i++) {
+      GstBuffer *sps_buf = g_ptr_array_index (rtph265depay->sps, i);
+      guint sps_size = gst_buffer_get_size (sps_buf);
+
+      if (rtph265depay->byte_stream)
+        memcpy (data, sync_bytes, sizeof (sync_bytes));
+      else
+        GST_WRITE_UINT32_BE (data, sps_size);
+      gst_buffer_extract (sps_buf, 0, data + 4, -1);
+      data += 4 + sps_size;
+    }
+
+    for (i = 0; i < rtph265depay->pps->len; i++) {
+      GstBuffer *pps_buf = g_ptr_array_index (rtph265depay->pps, i);
+      guint pps_size = gst_buffer_get_size (pps_buf);
+
+      if (rtph265depay->byte_stream)
+        memcpy (data, sync_bytes, sizeof (sync_bytes));
+      else
+        GST_WRITE_UINT32_BE (data, pps_size);
+      gst_buffer_extract (pps_buf, 0, data + 4, -1);
+      data += 4 + pps_size;
+    }
+
+    gst_buffer_unmap (codec_data, &map);
+    if (rtph265depay->codec_data)
+      gst_buffer_unref (rtph265depay->codec_data);
+    rtph265depay->codec_data = codec_data;
+  }
+
   if (res)
     rtph265depay->new_codec_data = FALSE;
 
@@ -636,7 +726,7 @@
       gst_buffer_map (pps, &ppsmap, GST_MAP_READ);
       parse_pps (&ppsmap, &tmp_sps_id, &tmp_pps_id);
 
-      if (sps_id == tmp_sps_id && pps_id == tmp_pps_id) {
+      if (pps_id == tmp_pps_id) {
         if (map.size == ppsmap.size &&
             memcmp (map.data, ppsmap.data, ppsmap.size) == 0) {
           GST_LOG_OBJECT (rtph265, "Unchanged PPS %u:%u, not updating", sps_id,
@@ -849,6 +939,60 @@
 
 #define NAL_TYPE_IS_KEY(nt) (NAL_TYPE_IS_PARAMETER_SET(nt) || NAL_TYPE_IS_CODED_SLICE_SEGMENT(nt))
 
+static gboolean
+foreach_metadata_copy (GstBuffer * inbuf, GstMeta ** meta, gpointer user_data)
+{
+  CopyMetaData *data = user_data;
+  GstElement *element = data->element;
+  GstBuffer *outbuf = data->outbuf;
+  const GstMetaInfo *info = (*meta)->info;
+  const gchar *const *tags = gst_meta_api_type_get_tags (info->api);
+
+  if (!tags || (g_strv_length ((gchar **) tags) == 1
+          && gst_meta_api_type_has_tag (info->api,
+              g_quark_from_string (GST_META_TAG_VIDEO_STR)))) {
+    GstMetaTransformCopy copy_data = { FALSE, 0, -1 };
+    GST_DEBUG_OBJECT (element, "copy metadata %s", g_type_name (info->api));
+    /* simply copy then */
+    info->transform_func (outbuf, *meta, inbuf,
+        _gst_meta_transform_copy, &copy_data);
+  } else {
+    GST_DEBUG_OBJECT (element, "not copying metadata %s",
+        g_type_name (info->api));
+  }
+
+  return TRUE;
+}
+
+/* TODO: Should probably make copy_tag an array at some point */
+void
+gst_rtp_copy_meta (GstElement * element, GstBuffer * outbuf, GstBuffer * inbuf,
+    GQuark copy_tag)
+{
+  CopyMetaData data = { element, outbuf, copy_tag };
+
+  gst_buffer_foreach_meta (inbuf, foreach_metadata_copy, &data);
+}
+
+static gboolean
+foreach_metadata_drop (GstBuffer * inbuf, GstMeta ** meta, gpointer user_data)
+{
+  GstRtpH265Depay *depay = user_data;
+  const GstMetaInfo *info = (*meta)->info;
+  const gchar *const *tags = gst_meta_api_type_get_tags (info->api);
+
+  if (!tags || (g_strv_length ((gchar **) tags) == 1
+          && gst_meta_api_type_has_tag (info->api,
+              g_quark_from_string (GST_META_TAG_VIDEO_STR)))) {
+    GST_DEBUG_OBJECT (depay, "keeping metadata %s", g_type_name (info->api));
+  } else {
+    GST_DEBUG_OBJECT (depay, "dropping metadata %s", g_type_name (info->api));
+    *meta = NULL;
+  }
+
+  return TRUE;
+}
+
 static GstBuffer *
 gst_rtp_h265_depay_handle_nal (GstRtpH265Depay * rtph265depay, GstBuffer * nal,
     GstClockTime in_timestamp, gboolean marker)
@@ -948,13 +1092,18 @@
     /* prepend codec_data */
     if (rtph265depay->codec_data) {
       GST_DEBUG_OBJECT (depayload, "prepending codec_data");
+      gst_rtp_copy_meta (GST_ELEMENT_CAST (rtph265depay),
+          rtph265depay->codec_data, outbuf,
+          g_quark_from_static_string (GST_META_TAG_VIDEO_STR));
       outbuf = gst_buffer_append (rtph265depay->codec_data, outbuf);
       rtph265depay->codec_data = NULL;
       out_keyframe = TRUE;
     }
     outbuf = gst_buffer_make_writable (outbuf);
 
-    GST_BUFFER_TIMESTAMP (outbuf) = out_timestamp;
+    gst_buffer_foreach_meta (outbuf, foreach_metadata_drop, depayload);
+
+    GST_BUFFER_PTS (outbuf) = out_timestamp;
 
     if (out_keyframe)
       GST_BUFFER_FLAG_UNSET (outbuf, GST_BUFFER_FLAG_DELTA_UNIT);
@@ -1016,17 +1165,17 @@
 }
 
 static GstBuffer *
-gst_rtp_h265_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
+gst_rtp_h265_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp)
 {
   GstRtpH265Depay *rtph265depay;
+  GstBuffer *buf;
   GstBuffer *outbuf = NULL;
   guint8 nal_unit_type;
-  GstRTPBuffer rtp = { NULL };
 
   rtph265depay = GST_RTP_H265_DEPAY (depayload);
 
   /* flush remaining data on discont */
-  if (GST_BUFFER_IS_DISCONT (buf)) {
+  if (GST_BUFFER_IS_DISCONT (rtp->buffer)) {
     gst_adapter_clear (rtph265depay->adapter);
     rtph265depay->wait_start = TRUE;
     rtph265depay->current_fu_type = 0;
@@ -1047,13 +1196,12 @@
     gboolean donl_present = FALSE;
 #endif
 
-    timestamp = GST_BUFFER_TIMESTAMP (buf);
+    timestamp = GST_BUFFER_PTS (rtp->buffer);
 
-    gst_rtp_buffer_map (buf, GST_MAP_READ, &rtp);
-
-    payload_len = gst_rtp_buffer_get_payload_len (&rtp);
-    payload = gst_rtp_buffer_get_payload (&rtp);
-    marker = gst_rtp_buffer_get_marker (&rtp);
+    payload_len = gst_rtp_buffer_get_payload_len (rtp);
+    payload = gst_rtp_buffer_get_payload (rtp);
+    buf = gst_rtp_buffer_get_payload_buffer (rtp);
+    marker = gst_rtp_buffer_get_marker (rtp);
 
     GST_DEBUG_OBJECT (rtph265depay, "receiving %d bytes", payload_len);
 
@@ -1160,17 +1308,26 @@
           memcpy (map.data + sizeof (sync_bytes), payload, nalu_size);
           gst_buffer_unmap (outbuf, &map);
 
-          gst_adapter_push (rtph265depay->adapter, outbuf);
+          gst_rtp_copy_meta (GST_ELEMENT_CAST (rtph265depay), outbuf, buf,
+              g_quark_from_static_string (GST_META_TAG_VIDEO_STR));
+
+          outbuf =
+              gst_rtp_h265_depay_handle_nal (rtph265depay, outbuf, timestamp,
+              marker);
+          if (outbuf)
+            gst_adapter_push (rtph265depay->adapter, outbuf);
 
           payload += nalu_size;
           payload_len -= nalu_size;
         }
 
         outsize = gst_adapter_available (rtph265depay->adapter);
-        outbuf = gst_adapter_take_buffer (rtph265depay->adapter, outsize);
-
-        outbuf = gst_rtp_h265_depay_handle_nal (rtph265depay, outbuf, timestamp,
-            marker);
+        if (outsize > 0) {
+          outbuf = gst_adapter_take_buffer (rtph265depay->adapter, outsize);
+          outbuf =
+              gst_rtp_h265_depay_handle_nal (rtph265depay, outbuf, timestamp,
+              marker);
+        }
         break;
       }
       case 49:
@@ -1252,6 +1409,9 @@
           map.data[sizeof (sync_bytes) + 1] = nal_header & 0xff;
           gst_buffer_unmap (outbuf, &map);
 
+          gst_rtp_copy_meta (GST_ELEMENT_CAST (rtph265depay), outbuf, buf,
+              g_quark_from_static_string (GST_META_TAG_VIDEO_STR));
+
           GST_DEBUG_OBJECT (rtph265depay, "queueing %d bytes", outsize);
 
           /* and assemble in the adapter */
@@ -1269,6 +1429,9 @@
           outbuf = gst_buffer_new_and_alloc (outsize);
           gst_buffer_fill (outbuf, 0, payload, outsize);
 
+          gst_rtp_copy_meta (GST_ELEMENT_CAST (rtph265depay), outbuf, buf,
+              g_quark_from_static_string (GST_META_TAG_VIDEO_STR));
+
           GST_DEBUG_OBJECT (rtph265depay, "queueing %d bytes", outsize);
 
           /* and assemble in the adapter */
@@ -1312,27 +1475,31 @@
         memcpy (map.data + sizeof (sync_bytes), payload, nalu_size);
         gst_buffer_unmap (outbuf, &map);
 
+        gst_rtp_copy_meta (GST_ELEMENT_CAST (rtph265depay), outbuf, buf,
+            g_quark_from_static_string (GST_META_TAG_VIDEO_STR));
+
         outbuf = gst_rtp_h265_depay_handle_nal (rtph265depay, outbuf, timestamp,
             marker);
         break;
       }
     }
-    gst_rtp_buffer_unmap (&rtp);
   }
 
+  gst_buffer_unref (buf);
+
   return outbuf;
 
   /* ERRORS */
 empty_packet:
   {
     GST_DEBUG_OBJECT (rtph265depay, "empty packet");
-    gst_rtp_buffer_unmap (&rtp);
+    gst_buffer_unref (buf);
     return NULL;
   }
 waiting_start:
   {
     GST_DEBUG_OBJECT (rtph265depay, "waiting for start");
-    gst_rtp_buffer_unmap (&rtp);
+    gst_buffer_unref (buf);
     return NULL;
   }
 #if 0
@@ -1340,7 +1507,7 @@
   {
     GST_ELEMENT_ERROR (rtph265depay, STREAM, FORMAT,
         (NULL), ("DONL field present not supported yet"));
-    gst_rtp_buffer_unmap (&rtp);
+    gst_buffer_unref (buf);
     return NULL;
   }
 #endif
@@ -1348,7 +1515,7 @@
   {
     GST_ELEMENT_ERROR (rtph265depay, STREAM, FORMAT,
         (NULL), ("NAL unit type %d not supported yet", nal_unit_type));
-    gst_rtp_buffer_unmap (&rtp);
+    gst_buffer_unref (buf);
     return NULL;
   }
 }
diff --git a/gst/rtp/gstrtph265depay.h b/gst/rtp/gstrtph265depay.h
index ed49329..9f50ac6 100644
--- a/gst/rtp/gstrtph265depay.h
+++ b/gst/rtp/gstrtph265depay.h
@@ -87,6 +87,15 @@
   GstRTPBaseDepayloadClass parent_class;
 };
 
+typedef struct
+{
+  GstElement *element;
+  GstBuffer *outbuf;
+  GQuark copy_tag;
+} CopyMetaData;
+
+void gst_rtp_copy_meta (GstElement * element, GstBuffer *outbuf, GstBuffer *inbuf, GQuark copy_tag);
+
 GType gst_rtp_h265_depay_get_type (void);
 
 gboolean gst_rtp_h265_depay_plugin_init (GstPlugin * plugin);
diff --git a/gst/rtp/gstrtph265pay.c b/gst/rtp/gstrtph265pay.c
index 171a242..b17b091 100644
--- a/gst/rtp/gstrtph265pay.c
+++ b/gst/rtp/gstrtph265pay.c
@@ -27,6 +27,7 @@
 
 #include <gst/rtp/gstrtpbuffer.h>
 #include <gst/pbutils/pbutils.h>
+#include <gst/video/video.h>
 
 /* Included to not duplicate gst_rtp_h265_add_vps_sps_pps () */
 #include "gstrtph265depay.h"
@@ -874,7 +875,7 @@
     /* Not critical here; but throw a warning */
     if (ret != GST_FLOW_OK) {
       sent_all_vps_sps_pps = FALSE;
-      GST_WARNING ("Problem pushing VPS");
+      GST_WARNING_OBJECT (basepayload, "Problem pushing VPS");
     }
   }
   for (i = 0; i < rtph265pay->sps->len; i++) {
@@ -888,7 +889,7 @@
     /* Not critical here; but throw a warning */
     if (ret != GST_FLOW_OK) {
       sent_all_vps_sps_pps = FALSE;
-      GST_WARNING ("Problem pushing SPS");
+      GST_WARNING_OBJECT (basepayload, "Problem pushing SPS");
     }
   }
   for (i = 0; i < rtph265pay->pps->len; i++) {
@@ -995,8 +996,10 @@
      * checking when we need to send SPS/PPS but convert to running_time first. */
     rtph265pay->send_vps_sps_pps = FALSE;
     ret = gst_rtp_h265_pay_send_vps_sps_pps (basepayload, rtph265pay, dts, pts);
-    if (ret != GST_FLOW_OK)
+    if (ret != GST_FLOW_OK) {
+      gst_buffer_unref (paybuf);
       return ret;
+    }
   }
 
   packet_len = gst_rtp_buffer_calc_packet_len (size, 0, 0);
@@ -1025,6 +1028,8 @@
     GST_BUFFER_DTS (outbuf) = dts;
 
     /* insert payload memory block */
+    gst_rtp_copy_meta (GST_ELEMENT_CAST (rtph265pay), outbuf, paybuf,
+        g_quark_from_static_string (GST_META_TAG_VIDEO_STR));
     outbuf = gst_buffer_append (outbuf, paybuf);
 
     list = gst_buffer_list_new ();
@@ -1047,8 +1052,6 @@
     pos += 2;
     size -= 2;
 
-    ret = GST_FLOW_OK;
-
     GST_DEBUG_OBJECT (basepayload, "Using FU fragmentation for data size=%d",
         size);
 
@@ -1094,14 +1097,13 @@
       gst_rtp_buffer_unmap (&rtp);
 
       /* insert payload memory block */
-      gst_buffer_append (outbuf,
-          gst_buffer_copy_region (paybuf, GST_BUFFER_COPY_MEMORY, pos,
-              limitedSize));
-
+      gst_rtp_copy_meta (GST_ELEMENT_CAST (rtph265pay), outbuf, paybuf,
+          g_quark_from_static_string (GST_META_TAG_VIDEO_STR));
+      gst_buffer_copy_into (outbuf, paybuf, GST_BUFFER_COPY_MEMORY, pos,
+          limitedSize);
       /* add the buffer to the buffer list */
       gst_buffer_list_add (list, outbuf);
 
-
       size -= limitedSize;
       pos += limitedSize;
       ii++;
@@ -1210,7 +1212,7 @@
         end_of_au = TRUE;
       }
 
-      paybuf = gst_buffer_copy_region (buffer, GST_BUFFER_COPY_MEMORY, offset,
+      paybuf = gst_buffer_copy_region (buffer, GST_BUFFER_COPY_ALL, offset,
           nal_len);
 
       ret =
@@ -1431,6 +1433,13 @@
       rtph265pay->send_vps_sps_pps = FALSE;
       gst_adapter_clear (rtph265pay->adapter);
       break;
+    default:
+      break;
+  }
+
+  ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition);
+
+  switch (transition) {
     case GST_STATE_CHANGE_PAUSED_TO_READY:
       rtph265pay->last_vps_sps_pps = -1;
       gst_rtp_h265_pay_clear_vps_sps_pps (rtph265pay);
@@ -1439,8 +1448,6 @@
       break;
   }
 
-  ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition);
-
   return ret;
 }
 
diff --git a/gst/sdi/Makefile.in b/gst/sdi/Makefile.in
index 7b1712c..f2962b0 100644
--- a/gst/sdi/Makefile.in
+++ b/gst/sdi/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/sdi
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -228,6 +238,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -245,8 +256,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -275,8 +284,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -324,11 +331,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -512,6 +522,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -590,7 +601,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -630,6 +646,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -766,7 +783,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/sdi/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/sdi/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1091,6 +1107,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/sdp/Makefile.in b/gst/sdp/Makefile.in
index 89d1f70..986d442 100644
--- a/gst/sdp/Makefile.in
+++ b/gst/sdp/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/sdp
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -229,6 +239,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -246,8 +257,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -276,8 +285,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -325,11 +332,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -513,6 +523,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -591,7 +602,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -631,6 +647,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -765,7 +782,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/sdp/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/sdp/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1082,6 +1098,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/sdp/gstsdpdemux.c b/gst/sdp/gstsdpdemux.c
index df3e69e..67e4afd 100644
--- a/gst/sdp/gstsdpdemux.c
+++ b/gst/sdp/gstsdpdemux.c
@@ -524,7 +524,7 @@
 {
   gchar *p, *t;
 
-  t = p = (gchar *) rtpmap;
+  p = (gchar *) rtpmap;
 
   PARSE_INT (p, " ", *payload);
   if (*payload == -1)
@@ -668,8 +668,13 @@
       /* <param>[=<value>] are separated with ';' */
       pairs = g_strsplit (p, ";", 0);
       for (i = 0; pairs[i]; i++) {
-        gchar *valpos, *key;
-        const gchar *val;
+        gchar *valpos;
+        const gchar *key, *val;
+        gint j;
+        const gchar *reserved_keys[] =
+            { "media", "payload", "clock-rate", "encoding-name",
+          "encoding-params"
+        };
 
         /* the key may not have a '=', the value can have other '='s */
         valpos = strstr (pairs[i], "=");
@@ -684,6 +689,19 @@
         }
         /* strip the key of spaces, convert key to lowercase but not the value. */
         key = g_strstrip (pairs[i]);
+
+        /* skip keys from the fmtp, which we already use ourselves for the
+         * caps. Some software is adding random things like clock-rate into
+         * the fmtp, and we would otherwise here set a string-typed clock-rate
+         * in the caps... and thus fail to create valid RTP caps
+         */
+        for (j = 0; j < G_N_ELEMENTS (reserved_keys); j++) {
+          if (g_ascii_strcasecmp (reserved_keys[j], key) == 0) {
+            key = "";
+            break;
+          }
+        }
+
         if (strlen (key) > 1) {
           tmp = g_ascii_strdown (key, -1);
           gst_structure_set (s, tmp, G_TYPE_STRING, val, NULL);
@@ -1258,7 +1276,7 @@
 static gboolean
 gst_sdp_demux_start (GstSDPDemux * demux)
 {
-  guint8 *data;
+  guint8 *data = NULL;
   guint size;
   gint i, n_streams;
   GstSDPMessage sdp = { 0 };
@@ -1273,6 +1291,9 @@
   GST_DEBUG_OBJECT (demux, "parse SDP...");
 
   size = gst_adapter_available (demux->adapter);
+  if (size == 0)
+    goto no_data;
+
   data = gst_adapter_take (demux->adapter, size);
 
   gst_sdp_message_init (&sdp);
@@ -1416,6 +1437,12 @@
         ("Could not create RTP session manager."));
     goto done;
   }
+no_data:
+  {
+    GST_ELEMENT_ERROR (demux, STREAM, TYPE_NOT_FOUND, (NULL),
+        ("Empty SDP message."));
+    goto done;
+  }
 could_not_parse:
   {
     GST_ELEMENT_ERROR (demux, STREAM, TYPE_NOT_FOUND, (NULL),
diff --git a/gst/segmentclip/Makefile.in b/gst/segmentclip/Makefile.in
index 9e48d7f..8768162 100644
--- a/gst/segmentclip/Makefile.in
+++ b/gst/segmentclip/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/segmentclip
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -231,6 +241,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -248,8 +259,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -278,8 +287,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -327,11 +334,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -515,6 +525,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -593,7 +604,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -633,6 +649,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -764,7 +781,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/segmentclip/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/segmentclip/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1097,6 +1113,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/siren/Makefile.in b/gst/siren/Makefile.in
index f5fb4f7..73491fb 100644
--- a/gst/siren/Makefile.in
+++ b/gst/siren/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -15,7 +15,17 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -80,8 +90,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/siren
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -119,6 +127,7 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -230,6 +239,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -247,8 +257,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -277,8 +285,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -326,11 +332,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -514,6 +523,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -592,7 +602,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -632,6 +647,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -772,7 +788,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/siren/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/siren/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1145,6 +1160,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/siren/gstsirendec.c b/gst/siren/gstsirendec.c
index 7a3ae4b..ab0635a 100644
--- a/gst/siren/gstsirendec.c
+++ b/gst/siren/gstsirendec.c
@@ -96,6 +96,9 @@
 gst_siren_dec_init (GstSirenDec * dec)
 {
   gst_audio_decoder_set_needs_format (GST_AUDIO_DECODER (dec), TRUE);
+  gst_audio_decoder_set_use_default_pad_acceptcaps (GST_AUDIO_DECODER_CAST
+      (dec), TRUE);
+  GST_PAD_SET_ACCEPT_TEMPLATE (GST_AUDIO_DECODER_SINK_PAD (dec));
 }
 
 static gboolean
diff --git a/gst/siren/gstsirenenc.c b/gst/siren/gstsirenenc.c
index 20e3c03..69b4d80 100644
--- a/gst/siren/gstsirenenc.c
+++ b/gst/siren/gstsirenenc.c
@@ -92,6 +92,7 @@
 static void
 gst_siren_enc_init (GstSirenEnc * enc)
 {
+  GST_PAD_SET_ACCEPT_TEMPLATE (GST_AUDIO_ENCODER_SINK_PAD (enc));
 }
 
 static gboolean
diff --git a/gst/smooth/Makefile.in b/gst/smooth/Makefile.in
index 8b0e346..aad1c77 100644
--- a/gst/smooth/Makefile.in
+++ b/gst/smooth/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/smooth
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -227,6 +237,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -244,8 +255,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -274,8 +283,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -323,11 +330,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -511,6 +521,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -589,7 +600,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -629,6 +645,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -768,7 +785,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/smooth/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/smooth/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1077,6 +1093,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/speed/Makefile.in b/gst/speed/Makefile.in
index 53fff72..dab4ce5 100644
--- a/gst/speed/Makefile.in
+++ b/gst/speed/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/speed
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -227,6 +237,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -244,8 +255,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -274,8 +283,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -323,11 +330,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -511,6 +521,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -589,7 +600,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -629,6 +645,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -760,7 +777,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/speed/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/speed/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1069,6 +1085,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 #if HAVE_GTK
 #noinst_PROGRAMS = demo-mp3
diff --git a/gst/stereo/Makefile.in b/gst/stereo/Makefile.in
index 6398f5e..2edef69 100644
--- a/gst/stereo/Makefile.in
+++ b/gst/stereo/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/stereo
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -227,6 +237,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -244,8 +255,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -274,8 +283,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -323,11 +330,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -511,6 +521,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -589,7 +600,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -629,6 +645,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -760,7 +777,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/stereo/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/stereo/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1069,6 +1085,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/subenc/Makefile.in b/gst/subenc/Makefile.in
index 4a15c57..643cd53 100644
--- a/gst/subenc/Makefile.in
+++ b/gst/subenc/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/subenc
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -227,6 +237,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -244,8 +255,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -274,8 +283,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -323,11 +330,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -511,6 +521,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -589,7 +600,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -629,6 +645,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -767,7 +784,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/subenc/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/subenc/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1092,6 +1108,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/tta/Makefile.in b/gst/tta/Makefile.in
index 1bae8ba..bf21b11 100644
--- a/gst/tta/Makefile.in
+++ b/gst/tta/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/tta
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -228,6 +238,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -245,8 +256,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -275,8 +284,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -324,11 +331,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -512,6 +522,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -590,7 +601,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -630,6 +646,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -766,7 +783,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/tta/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/tta/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1091,6 +1107,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/videofilters/Makefile.in b/gst/videofilters/Makefile.in
index 9f4072e..0aec3f2 100644
--- a/gst/videofilters/Makefile.in
+++ b/gst/videofilters/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/videofilters
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -233,6 +243,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -250,8 +261,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -280,8 +289,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -329,11 +336,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -517,6 +527,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -595,7 +606,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -635,6 +651,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -790,7 +807,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/videofilters/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/videofilters/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1123,6 +1139,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/videomeasure/Makefile.in b/gst/videomeasure/Makefile.in
index 4e16505..514d883 100644
--- a/gst/videomeasure/Makefile.in
+++ b/gst/videomeasure/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/videomeasure
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -231,6 +241,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -248,8 +259,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -278,8 +287,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -327,11 +334,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -515,6 +525,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -593,7 +604,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -633,6 +649,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -775,7 +792,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/videomeasure/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/videomeasure/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1100,6 +1116,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/videoparsers/Makefile.in b/gst/videoparsers/Makefile.in
index 40af85a..892f0af 100644
--- a/gst/videoparsers/Makefile.in
+++ b/gst/videoparsers/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/videoparsers
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -240,6 +250,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -257,8 +268,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -287,8 +296,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -336,11 +343,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -524,6 +534,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -602,7 +613,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -642,6 +658,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -801,7 +818,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/videoparsers/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/videoparsers/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1190,6 +1206,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/videoparsers/gstdiracparse.c b/gst/videoparsers/gstdiracparse.c
index 9307f10..ea3cd9d 100644
--- a/gst/videoparsers/gstdiracparse.c
+++ b/gst/videoparsers/gstdiracparse.c
@@ -138,6 +138,7 @@
   gst_base_parse_set_min_frame_size (GST_BASE_PARSE (diracparse), 13);
   gst_base_parse_set_pts_interpolation (GST_BASE_PARSE (diracparse), FALSE);
   GST_PAD_SET_ACCEPT_INTERSECT (GST_BASE_PARSE_SINK_PAD (diracparse));
+  GST_PAD_SET_ACCEPT_TEMPLATE (GST_BASE_PARSE_SINK_PAD (diracparse));
 }
 
 void
@@ -403,8 +404,8 @@
         GST_TAG_VIDEO_CODEC, caps);
     gst_caps_unref (caps);
 
-    gst_pad_push_event (GST_BASE_PARSE_SRC_PAD (diracparse),
-        gst_event_new_tag (taglist));
+    gst_base_parse_merge_tags (parse, taglist, GST_TAG_MERGE_REPLACE);
+    gst_tag_list_unref (taglist);
 
     /* also signals the end of first-frame processing */
     diracparse->sent_codec_tag = TRUE;
diff --git a/gst/videoparsers/gsth263parse.c b/gst/videoparsers/gsth263parse.c
index 454e84b..eb6290b 100644
--- a/gst/videoparsers/gsth263parse.c
+++ b/gst/videoparsers/gsth263parse.c
@@ -97,6 +97,7 @@
 gst_h263_parse_init (GstH263Parse * h263parse)
 {
   GST_PAD_SET_ACCEPT_INTERSECT (GST_BASE_PARSE_SINK_PAD (h263parse));
+  GST_PAD_SET_ACCEPT_TEMPLATE (GST_BASE_PARSE_SINK_PAD (h263parse));
 }
 
 static gboolean
@@ -277,6 +278,8 @@
 
   gst_pad_set_caps (GST_BASE_PARSE_SRC_PAD (GST_BASE_PARSE (h263parse)), caps);
   gst_caps_unref (caps);
+  if (sink_caps)
+    gst_caps_unref (sink_caps);
 }
 
 static GstFlowReturn
@@ -444,8 +447,8 @@
         GST_TAG_VIDEO_CODEC, caps);
     gst_caps_unref (caps);
 
-    gst_pad_push_event (GST_BASE_PARSE_SRC_PAD (h263parse),
-        gst_event_new_tag (taglist));
+    gst_base_parse_merge_tags (parse, taglist, GST_TAG_MERGE_REPLACE);
+    gst_tag_list_unref (taglist);
 
     /* also signals the end of first-frame processing */
     h263parse->sent_codec_tag = TRUE;
diff --git a/gst/videoparsers/gsth264parse.c b/gst/videoparsers/gsth264parse.c
index 06e4831..b43a81a 100644
--- a/gst/videoparsers/gsth264parse.c
+++ b/gst/videoparsers/gsth264parse.c
@@ -164,6 +164,7 @@
   h264parse->frame_out = gst_adapter_new ();
   gst_base_parse_set_pts_interpolation (GST_BASE_PARSE (h264parse), FALSE);
   GST_PAD_SET_ACCEPT_INTERSECT (GST_BASE_PARSE_SINK_PAD (h264parse));
+  GST_PAD_SET_ACCEPT_TEMPLATE (GST_BASE_PARSE_SINK_PAD (h264parse));
 }
 
 
@@ -492,13 +493,18 @@
   "Filler Data",
   "SPS extension",
   "Prefix",
-  "SPS Subset"
+  "SPS Subset",
+  "Depth Parameter Set",
+  "Reserved", "Reserved",
+  "Slice Aux Unpartitioned",
+  "Slice Extension",
+  "Slice Depth/3D-AVC Extension"
 };
 
 static const gchar *
 _nal_name (GstH264NalUnitType nal_type)
 {
-  if (nal_type <= GST_H264_NAL_SUBSET_SPS)
+  if (nal_type <= GST_H264_NAL_SLICE_DEPTH)
     return nal_names[nal_type];
   return "Invalid";
 }
@@ -740,6 +746,7 @@
       }
 
       gst_h264_parser_store_nal (h264parse, sps.id, nal_type, nalu);
+      gst_h264_sps_clear (&sps);
       h264parse->state |= GST_H264_PARSE_STATE_GOT_SPS;
       h264parse->header |= TRUE;
       break;
@@ -856,6 +863,12 @@
             h264parse->idr_pos);
       }
       break;
+    case GST_H264_NAL_AU_DELIMITER:
+      /* Just accumulate AU Delimiter, whether it's before SPS or not */
+      pres = gst_h264_parser_parse_nal (nalparser, nalu);
+      if (pres != GST_H264_PARSER_OK)
+        return FALSE;
+      break;
     default:
       /* drop anything before the initial SPS */
       if (!GST_H264_PARSE_STATE_VALID (h264parse, GST_H264_PARSE_STATE_GOT_SPS))
@@ -2200,8 +2213,8 @@
         GST_TAG_VIDEO_CODEC, caps);
     gst_caps_unref (caps);
 
-    gst_pad_push_event (GST_BASE_PARSE_SRC_PAD (h264parse),
-        gst_event_new_tag (taglist));
+    gst_base_parse_merge_tags (parse, taglist, GST_TAG_MERGE_REPLACE);
+    gst_tag_list_unref (taglist);
 
     /* also signals the end of first-frame processing */
     h264parse->sent_codec_tag = TRUE;
diff --git a/gst/videoparsers/gsth265parse.c b/gst/videoparsers/gsth265parse.c
index 896b7e8..ecb8cf6 100644
--- a/gst/videoparsers/gsth265parse.c
+++ b/gst/videoparsers/gsth265parse.c
@@ -141,6 +141,7 @@
   h265parse->frame_out = gst_adapter_new ();
   gst_base_parse_set_pts_interpolation (GST_BASE_PARSE (h265parse), FALSE);
   GST_PAD_SET_ACCEPT_INTERSECT (GST_BASE_PARSE_SINK_PAD (h265parse));
+  GST_PAD_SET_ACCEPT_TEMPLATE (GST_BASE_PARSE_SINK_PAD (h265parse));
 }
 
 
@@ -496,7 +497,7 @@
   GstH265ParserResult pres = GST_H265_PARSER_ERROR;
 
   /* nothing to do for broken input */
-  if (G_UNLIKELY (nalu->size < 3)) {
+  if (G_UNLIKELY (nalu->size < 2)) {
     GST_DEBUG_OBJECT (h265parse, "not processing nal size %u", nalu->size);
     return;
   }
@@ -693,7 +694,7 @@
   /* coded slice NAL starts a picture,
    * i.e. other types become aggregated in front of it */
   h265parse->picture_start |= ((nal_type >= GST_H265_NAL_SLICE_TRAIL_N
-          && nal_type <= GST_H265_NAL_SLICE_TRAIL_R)
+          && nal_type <= GST_H265_NAL_SLICE_RASL_R)
       || (nal_type >= GST_H265_NAL_SLICE_BLA_W_LP
           && nal_type <= RESERVED_IRAP_NAL_TYPE_MAX));
 
@@ -711,7 +712,7 @@
   /* Any VCL Nal unit with first_slice_segment_in_pic_flag == 1 considered start of frame */
   complete |= h265parse->picture_start
       && (((nal_type >= GST_H265_NAL_SLICE_TRAIL_N
-              && nal_type <= GST_H265_NAL_SLICE_TRAIL_R)
+              && nal_type <= GST_H265_NAL_SLICE_RASL_R)
           || (nal_type >= GST_H265_NAL_SLICE_BLA_W_LP
               && nal_type <= RESERVED_IRAP_NAL_TYPE_MAX))
       && (nnalu.data[nnalu.offset + 2] & 0x80));
@@ -1273,6 +1274,109 @@
   }
 }
 
+static GstCaps *
+get_compatible_profile_caps (GstH265SPS * sps)
+{
+  GstCaps *caps = NULL;
+  const gchar **profiles = NULL;
+  gint i;
+  GValue compat_profiles = G_VALUE_INIT;
+  g_value_init (&compat_profiles, GST_TYPE_LIST);
+
+  switch (sps->profile_tier_level.profile_idc) {
+    case GST_H265_PROFILE_MAIN_10:
+      if (sps->profile_tier_level.profile_compatibility_flag[1]) {
+        if (sps->profile_tier_level.profile_compatibility_flag[3]) {
+          static const gchar *profile_array[] =
+              { "main", "main-still-picture", NULL };
+          profiles = profile_array;
+        } else {
+          static const gchar *profile_array[] = { "main", NULL };
+          profiles = profile_array;
+        }
+      }
+      break;
+    case GST_H265_PROFILE_MAIN:
+      if (sps->profile_tier_level.profile_compatibility_flag[3]) {
+        static const gchar *profile_array[] =
+            { "main-still-picture", "main-10", NULL
+        };
+        profiles = profile_array;
+      } else {
+        static const gchar *profile_array[] = { "main-10", NULL };
+        profiles = profile_array;
+      }
+      break;
+    case GST_H265_PROFILE_MAIN_STILL_PICTURE:
+    {
+      static const gchar *profile_array[] = { "main", "main-10", NULL
+      };
+      profiles = profile_array;
+    }
+      break;
+    default:
+      break;
+  }
+
+  if (profiles) {
+    GValue value = G_VALUE_INIT;
+    caps = gst_caps_new_empty_simple ("video/x-h265");
+    for (i = 0; profiles[i]; i++) {
+      g_value_init (&value, G_TYPE_STRING);
+      g_value_set_string (&value, profiles[i]);
+      gst_value_list_append_value (&compat_profiles, &value);
+      g_value_unset (&value);
+    }
+    gst_caps_set_value (caps, "profile", &compat_profiles);
+    g_value_unset (&compat_profiles);
+  }
+
+  return caps;
+}
+
+/* if downstream didn't support the exact profile indicated in sps header,
+ * check for the compatible profiles also */
+static void
+ensure_caps_profile (GstH265Parse * h265parse, GstCaps * caps, GstH265SPS * sps)
+{
+  GstCaps *filter_caps, *peer_caps, *compat_caps;
+
+  filter_caps = gst_caps_new_empty_simple ("video/x-h265");
+  peer_caps =
+      gst_pad_peer_query_caps (GST_BASE_PARSE_SRC_PAD (h265parse), filter_caps);
+
+  if (peer_caps && !gst_caps_can_intersect (caps, peer_caps)) {
+    GstStructure *structure;
+
+    compat_caps = get_compatible_profile_caps (sps);
+    if (compat_caps != NULL) {
+      GstCaps *res_caps = NULL;
+
+      res_caps = gst_caps_intersect (peer_caps, compat_caps);
+
+      if (res_caps && !gst_caps_is_empty (res_caps)) {
+        const gchar *profile_str = NULL;
+
+        res_caps = gst_caps_fixate (res_caps);
+        structure = gst_caps_get_structure (res_caps, 0);
+        profile_str = gst_structure_get_string (structure, "profile");
+        if (profile_str) {
+          gst_caps_set_simple (caps, "profile", G_TYPE_STRING, profile_str,
+              NULL);
+          GST_DEBUG_OBJECT (h265parse,
+              "Setting compatible profile %s to the caps", profile_str);
+        }
+      }
+      if (res_caps)
+        gst_caps_unref (res_caps);
+      gst_caps_unref (compat_caps);
+    }
+  }
+  if (peer_caps)
+    gst_caps_unref (peer_caps);
+  gst_caps_unref (filter_caps);
+}
+
 static void
 gst_h265_parse_update_src_caps (GstH265Parse * h265parse, GstCaps * caps)
 {
@@ -1445,6 +1549,9 @@
       level = get_level_string (sps->profile_tier_level.level_idc);
       if (level != NULL)
         gst_caps_set_simple (caps, "level", G_TYPE_STRING, level, NULL);
+
+      /* relax the profile constraint to find a suitable decoder */
+      ensure_caps_profile (h265parse, caps, sps);
     }
 
     src_caps = gst_pad_get_current_caps (GST_BASE_PARSE_SRC_PAD (h265parse));
@@ -1665,8 +1772,8 @@
         GST_TAG_VIDEO_CODEC, caps);
     gst_caps_unref (caps);
 
-    gst_pad_push_event (GST_BASE_PARSE_SRC_PAD (h265parse),
-        gst_event_new_tag (taglist));
+    gst_base_parse_merge_tags (parse, taglist, GST_TAG_MERGE_REPLACE);
+    gst_tag_list_unref (taglist);
 
     /* also signals the end of first-frame processing */
     h265parse->sent_codec_tag = TRUE;
@@ -1945,8 +2052,8 @@
   }
 
   if (format == h265parse->format && align == h265parse->align) {
-    /* do not set CAPS and passthrough mode if VPS/SPS/PPS have not been parsed */
-    if (h265parse->have_vps && h265parse->have_sps && h265parse->have_pps) {
+    /* do not set CAPS and passthrough mode if SPS/PPS have not been parsed */
+    if (h265parse->have_sps && h265parse->have_pps) {
       gst_base_parse_set_passthrough (parse, TRUE);
 
       /* we did parse codec-data and might supplement src caps */
diff --git a/gst/videoparsers/gstmpeg4videoparse.c b/gst/videoparsers/gstmpeg4videoparse.c
index 3188439..53db2d5 100644
--- a/gst/videoparsers/gstmpeg4videoparse.c
+++ b/gst/videoparsers/gstmpeg4videoparse.c
@@ -187,6 +187,7 @@
 
   gst_base_parse_set_pts_interpolation (GST_BASE_PARSE (parse), FALSE);
   GST_PAD_SET_ACCEPT_INTERSECT (GST_BASE_PARSE_SINK_PAD (parse));
+  GST_PAD_SET_ACCEPT_TEMPLATE (GST_BASE_PARSE_SINK_PAD (parse));
 }
 
 static void
@@ -729,8 +730,8 @@
         GST_TAG_VIDEO_CODEC, caps);
     gst_caps_unref (caps);
 
-    gst_pad_push_event (GST_BASE_PARSE_SRC_PAD (mp4vparse),
-        gst_event_new_tag (taglist));
+    gst_base_parse_merge_tags (parse, taglist, GST_TAG_MERGE_REPLACE);
+    gst_tag_list_unref (taglist);
 
     /* also signals the end of first-frame processing */
     mp4vparse->sent_codec_tag = TRUE;
diff --git a/gst/videoparsers/gstmpegvideoparse.c b/gst/videoparsers/gstmpegvideoparse.c
index bf166d0..54ee13b 100644
--- a/gst/videoparsers/gstmpegvideoparse.c
+++ b/gst/videoparsers/gstmpegvideoparse.c
@@ -177,6 +177,7 @@
 
   gst_base_parse_set_pts_interpolation (GST_BASE_PARSE (parse), FALSE);
   GST_PAD_SET_ACCEPT_INTERSECT (GST_BASE_PARSE_SINK_PAD (parse));
+  GST_PAD_SET_ACCEPT_TEMPLATE (GST_BASE_PARSE_SINK_PAD (parse));
 }
 
 static void
@@ -953,8 +954,8 @@
         GST_TAG_VIDEO_CODEC, caps);
     gst_caps_unref (caps);
 
-    gst_pad_push_event (GST_BASE_PARSE_SRC_PAD (parse),
-        gst_event_new_tag (taglist));
+    gst_base_parse_merge_tags (parse, taglist, GST_TAG_MERGE_REPLACE);
+    gst_tag_list_unref (taglist);
 
     mpvparse->send_codec_tag = FALSE;
   }
diff --git a/gst/videoparsers/gstpngparse.c b/gst/videoparsers/gstpngparse.c
index d266bd3..e08fe71 100644
--- a/gst/videoparsers/gstpngparse.c
+++ b/gst/videoparsers/gstpngparse.c
@@ -82,6 +82,8 @@
 static void
 gst_png_parse_init (GstPngParse * pngparse)
 {
+  GST_PAD_SET_ACCEPT_INTERSECT (GST_BASE_PARSE_SINK_PAD (pngparse));
+  GST_PAD_SET_ACCEPT_TEMPLATE (GST_BASE_PARSE_SINK_PAD (pngparse));
 }
 
 static gboolean
@@ -221,6 +223,8 @@
           } else {
             GST_WARNING_OBJECT (pngparse, "No framerate set");
           }
+
+          gst_caps_unref (sink_caps);
         }
 
         if (!gst_pad_set_caps (GST_BASE_PARSE_SRC_PAD (parse), caps))
@@ -263,8 +267,8 @@
         GST_TAG_VIDEO_CODEC, caps);
     gst_caps_unref (caps);
 
-    gst_pad_push_event (GST_BASE_PARSE_SRC_PAD (pngparse),
-        gst_event_new_tag (taglist));
+    gst_base_parse_merge_tags (parse, taglist, GST_TAG_MERGE_REPLACE);
+    gst_tag_list_unref (taglist);
 
     /* also signals the end of first-frame processing */
     pngparse->sent_codec_tag = TRUE;
diff --git a/gst/videoparsers/gstvc1parse.c b/gst/videoparsers/gstvc1parse.c
index 7583c77..63de4e9 100644
--- a/gst/videoparsers/gstvc1parse.c
+++ b/gst/videoparsers/gstvc1parse.c
@@ -252,6 +252,7 @@
 
   gst_vc1_parse_reset (vc1parse);
   GST_PAD_SET_ACCEPT_INTERSECT (GST_BASE_PARSE_SINK_PAD (vc1parse));
+  GST_PAD_SET_ACCEPT_TEMPLATE (GST_BASE_PARSE_SINK_PAD (vc1parse));
 }
 
 static void
@@ -1707,8 +1708,8 @@
         GST_TAG_VIDEO_CODEC, caps);
     gst_caps_unref (caps);
 
-    gst_pad_push_event (GST_BASE_PARSE_SRC_PAD (vc1parse),
-        gst_event_new_tag (taglist));
+    gst_base_parse_merge_tags (parse, taglist, GST_TAG_MERGE_REPLACE);
+    gst_tag_list_unref (taglist);
 
     /* also signals the end of first-frame processing */
     vc1parse->sent_codec_tag = TRUE;
diff --git a/gst/videosignal/Makefile.in b/gst/videosignal/Makefile.in
index cbb12d6..e88fc21 100644
--- a/gst/videosignal/Makefile.in
+++ b/gst/videosignal/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -15,7 +15,17 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -80,8 +90,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/videosignal
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -119,6 +127,7 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -229,6 +238,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -246,8 +256,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -276,8 +284,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -325,11 +331,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -513,6 +522,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -591,7 +601,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -631,6 +646,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -768,7 +784,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/videosignal/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/videosignal/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1101,6 +1116,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/vmnc/Makefile.in b/gst/vmnc/Makefile.in
index bfb968d..0cc5231 100644
--- a/gst/vmnc/Makefile.in
+++ b/gst/vmnc/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/vmnc
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -227,6 +237,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -244,8 +255,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -274,8 +283,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -323,11 +330,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -511,6 +521,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -589,7 +600,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -629,6 +645,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -762,7 +779,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/vmnc/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/vmnc/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1071,6 +1087,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/vmnc/vmncdec.c b/gst/vmnc/vmncdec.c
index 54a42ed..34e63c7 100644
--- a/gst/vmnc/vmncdec.c
+++ b/gst/vmnc/vmncdec.c
@@ -105,6 +105,9 @@
 static void
 gst_vmnc_dec_init (GstVMncDec * dec)
 {
+  gst_video_decoder_set_use_default_pad_acceptcaps (GST_VIDEO_DECODER_CAST
+      (dec), TRUE);
+  GST_PAD_SET_ACCEPT_TEMPLATE (GST_VIDEO_DECODER_SINK_PAD (dec));
 }
 
 static gboolean
diff --git a/gst/y4m/Makefile.in b/gst/y4m/Makefile.in
index 684bc59..9c771e4 100644
--- a/gst/y4m/Makefile.in
+++ b/gst/y4m/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/y4m
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -227,6 +237,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -244,8 +255,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -274,8 +283,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -323,11 +330,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -511,6 +521,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -589,7 +600,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -629,6 +645,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -763,7 +780,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/y4m/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/y4m/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1072,6 +1088,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/yadif/Makefile.in b/gst/yadif/Makefile.in
index 1610b77..0762330 100644
--- a/gst/yadif/Makefile.in
+++ b/gst/yadif/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -15,7 +15,17 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -80,8 +90,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/yadif
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -119,6 +127,7 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -226,6 +235,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -243,8 +253,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -273,8 +281,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -322,11 +328,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -510,6 +519,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -588,7 +598,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -628,6 +643,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -763,7 +779,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/yadif/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/yadif/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1088,6 +1103,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/install-sh b/install-sh
index 377bb86..59990a1 100755
--- a/install-sh
+++ b/install-sh
@@ -1,7 +1,7 @@
 #!/bin/sh
 # install - install a program, script, or datafile
 
-scriptversion=2011-11-20.07; # UTC
+scriptversion=2014-09-12.12; # UTC
 
 # This originates from X11R5 (mit/util/scripts/install.sh), which was
 # later released in X11R6 (xc/config/util/install.sh) with the
@@ -41,19 +41,15 @@
 # This script is compatible with the BSD install script, but was written
 # from scratch.
 
+tab='	'
 nl='
 '
-IFS=" ""	$nl"
+IFS=" $tab$nl"
 
-# set DOITPROG to echo to test this script
+# Set DOITPROG to "echo" to test this script.
 
-# Don't use :- since 4.3BSD and earlier shells don't like it.
 doit=${DOITPROG-}
-if test -z "$doit"; then
-  doit_exec=exec
-else
-  doit_exec=$doit
-fi
+doit_exec=${doit:-exec}
 
 # Put in absolute file names if you don't have them in your path;
 # or use environment vars.
@@ -68,17 +64,6 @@
 rmprog=${RMPROG-rm}
 stripprog=${STRIPPROG-strip}
 
-posix_glob='?'
-initialize_posix_glob='
-  test "$posix_glob" != "?" || {
-    if (set -f) 2>/dev/null; then
-      posix_glob=
-    else
-      posix_glob=:
-    fi
-  }
-'
-
 posix_mkdir=
 
 # Desired mode of installed file.
@@ -97,7 +82,7 @@
 dst_arg=
 
 copy_on_change=false
-no_target_directory=
+is_target_a_directory=possibly
 
 usage="\
 Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
@@ -137,46 +122,57 @@
     -d) dir_arg=true;;
 
     -g) chgrpcmd="$chgrpprog $2"
-	shift;;
+        shift;;
 
     --help) echo "$usage"; exit $?;;
 
     -m) mode=$2
-	case $mode in
-	  *' '* | *'	'* | *'
-'*	  | *'*'* | *'?'* | *'['*)
-	    echo "$0: invalid mode: $mode" >&2
-	    exit 1;;
-	esac
-	shift;;
+        case $mode in
+          *' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*)
+            echo "$0: invalid mode: $mode" >&2
+            exit 1;;
+        esac
+        shift;;
 
     -o) chowncmd="$chownprog $2"
-	shift;;
+        shift;;
 
     -s) stripcmd=$stripprog;;
 
-    -t) dst_arg=$2
-	# Protect names problematic for 'test' and other utilities.
-	case $dst_arg in
-	  -* | [=\(\)!]) dst_arg=./$dst_arg;;
-	esac
-	shift;;
+    -t)
+        is_target_a_directory=always
+        dst_arg=$2
+        # Protect names problematic for 'test' and other utilities.
+        case $dst_arg in
+          -* | [=\(\)!]) dst_arg=./$dst_arg;;
+        esac
+        shift;;
 
-    -T) no_target_directory=true;;
+    -T) is_target_a_directory=never;;
 
     --version) echo "$0 $scriptversion"; exit $?;;
 
-    --)	shift
-	break;;
+    --) shift
+        break;;
 
-    -*)	echo "$0: invalid option: $1" >&2
-	exit 1;;
+    -*) echo "$0: invalid option: $1" >&2
+        exit 1;;
 
     *)  break;;
   esac
   shift
 done
 
+# We allow the use of options -d and -T together, by making -d
+# take the precedence; this is for compatibility with GNU install.
+
+if test -n "$dir_arg"; then
+  if test -n "$dst_arg"; then
+    echo "$0: target directory not allowed when installing a directory." >&2
+    exit 1
+  fi
+fi
+
 if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
   # When -d is used, all remaining arguments are directories to create.
   # When -t is used, the destination is already specified.
@@ -208,6 +204,15 @@
 fi
 
 if test -z "$dir_arg"; then
+  if test $# -gt 1 || test "$is_target_a_directory" = always; then
+    if test ! -d "$dst_arg"; then
+      echo "$0: $dst_arg: Is not a directory." >&2
+      exit 1
+    fi
+  fi
+fi
+
+if test -z "$dir_arg"; then
   do_exit='(exit $ret); exit $ret'
   trap "ret=129; $do_exit" 1
   trap "ret=130; $do_exit" 2
@@ -223,16 +228,16 @@
 
     *[0-7])
       if test -z "$stripcmd"; then
-	u_plus_rw=
+        u_plus_rw=
       else
-	u_plus_rw='% 200'
+        u_plus_rw='% 200'
       fi
       cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
     *)
       if test -z "$stripcmd"; then
-	u_plus_rw=
+        u_plus_rw=
       else
-	u_plus_rw=,u+rw
+        u_plus_rw=,u+rw
       fi
       cp_umask=$mode$u_plus_rw;;
   esac
@@ -269,41 +274,15 @@
     # If destination is a directory, append the input filename; won't work
     # if double slashes aren't ignored.
     if test -d "$dst"; then
-      if test -n "$no_target_directory"; then
-	echo "$0: $dst_arg: Is a directory" >&2
-	exit 1
+      if test "$is_target_a_directory" = never; then
+        echo "$0: $dst_arg: Is a directory" >&2
+        exit 1
       fi
       dstdir=$dst
       dst=$dstdir/`basename "$src"`
       dstdir_status=0
     else
-      # Prefer dirname, but fall back on a substitute if dirname fails.
-      dstdir=`
-	(dirname "$dst") 2>/dev/null ||
-	expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	     X"$dst" : 'X\(//\)[^/]' \| \
-	     X"$dst" : 'X\(//\)$' \| \
-	     X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
-	echo X"$dst" |
-	    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-		   s//\1/
-		   q
-		 }
-		 /^X\(\/\/\)[^/].*/{
-		   s//\1/
-		   q
-		 }
-		 /^X\(\/\/\)$/{
-		   s//\1/
-		   q
-		 }
-		 /^X\(\/\).*/{
-		   s//\1/
-		   q
-		 }
-		 s/.*/./; q'
-      `
-
+      dstdir=`dirname "$dst"`
       test -d "$dstdir"
       dstdir_status=$?
     fi
@@ -314,74 +293,81 @@
   if test $dstdir_status != 0; then
     case $posix_mkdir in
       '')
-	# Create intermediate dirs using mode 755 as modified by the umask.
-	# This is like FreeBSD 'install' as of 1997-10-28.
-	umask=`umask`
-	case $stripcmd.$umask in
-	  # Optimize common cases.
-	  *[2367][2367]) mkdir_umask=$umask;;
-	  .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
+        # Create intermediate dirs using mode 755 as modified by the umask.
+        # This is like FreeBSD 'install' as of 1997-10-28.
+        umask=`umask`
+        case $stripcmd.$umask in
+          # Optimize common cases.
+          *[2367][2367]) mkdir_umask=$umask;;
+          .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
 
-	  *[0-7])
-	    mkdir_umask=`expr $umask + 22 \
-	      - $umask % 100 % 40 + $umask % 20 \
-	      - $umask % 10 % 4 + $umask % 2
-	    `;;
-	  *) mkdir_umask=$umask,go-w;;
-	esac
+          *[0-7])
+            mkdir_umask=`expr $umask + 22 \
+              - $umask % 100 % 40 + $umask % 20 \
+              - $umask % 10 % 4 + $umask % 2
+            `;;
+          *) mkdir_umask=$umask,go-w;;
+        esac
 
-	# With -d, create the new directory with the user-specified mode.
-	# Otherwise, rely on $mkdir_umask.
-	if test -n "$dir_arg"; then
-	  mkdir_mode=-m$mode
-	else
-	  mkdir_mode=
-	fi
+        # With -d, create the new directory with the user-specified mode.
+        # Otherwise, rely on $mkdir_umask.
+        if test -n "$dir_arg"; then
+          mkdir_mode=-m$mode
+        else
+          mkdir_mode=
+        fi
 
-	posix_mkdir=false
-	case $umask in
-	  *[123567][0-7][0-7])
-	    # POSIX mkdir -p sets u+wx bits regardless of umask, which
-	    # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
-	    ;;
-	  *)
-	    tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
-	    trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
+        posix_mkdir=false
+        case $umask in
+          *[123567][0-7][0-7])
+            # POSIX mkdir -p sets u+wx bits regardless of umask, which
+            # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
+            ;;
+          *)
+            # $RANDOM is not portable (e.g. dash);  use it when possible to
+            # lower collision chance
+            tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
+            trap 'ret=$?; rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null; exit $ret' 0
 
-	    if (umask $mkdir_umask &&
-		exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
-	    then
-	      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-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
-		     d????-?r-*) different_mode=700;;
-		     d????-?--*) different_mode=755;;
-		     *) false;;
-		   esac &&
-		   $mkdirprog -m$different_mode -p -- "$tmpdir" && {
-		     ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
-		     test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
-		   }
-		 }
-	      then posix_mkdir=:
-	      fi
-	      rmdir "$tmpdir/d" "$tmpdir"
-	    else
-	      # Remove any dirs left behind by ancient mkdir implementations.
-	      rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
-	    fi
-	    trap '' 0;;
-	esac;;
+            # As "mkdir -p" follows symlinks and we work in /tmp possibly;  so
+            # create the $tmpdir first (and fail if unsuccessful) to make sure
+            # that nobody tries to guess the $tmpdir name.
+            if (umask $mkdir_umask &&
+                $mkdirprog $mkdir_mode "$tmpdir" &&
+                exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1
+            then
+              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-writable bit of parent directory when it shouldn't.
+                   # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
+                   test_tmpdir="$tmpdir/a"
+                   ls_ld_tmpdir=`ls -ld "$test_tmpdir"`
+                   case $ls_ld_tmpdir in
+                     d????-?r-*) different_mode=700;;
+                     d????-?--*) different_mode=755;;
+                     *) false;;
+                   esac &&
+                   $mkdirprog -m$different_mode -p -- "$test_tmpdir" && {
+                     ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"`
+                     test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
+                   }
+                 }
+              then posix_mkdir=:
+              fi
+              rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir"
+            else
+              # Remove any dirs left behind by ancient mkdir implementations.
+              rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null
+            fi
+            trap '' 0;;
+        esac;;
     esac
 
     if
       $posix_mkdir && (
-	umask $mkdir_umask &&
-	$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
+        umask $mkdir_umask &&
+        $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
       )
     then :
     else
@@ -391,53 +377,51 @@
       # directory the slow way, step by step, checking for races as we go.
 
       case $dstdir in
-	/*) prefix='/';;
-	[-=\(\)!]*) prefix='./';;
-	*)  prefix='';;
+        /*) prefix='/';;
+        [-=\(\)!]*) prefix='./';;
+        *)  prefix='';;
       esac
 
-      eval "$initialize_posix_glob"
-
       oIFS=$IFS
       IFS=/
-      $posix_glob set -f
+      set -f
       set fnord $dstdir
       shift
-      $posix_glob set +f
+      set +f
       IFS=$oIFS
 
       prefixes=
 
       for d
       do
-	test X"$d" = X && continue
+        test X"$d" = X && continue
 
-	prefix=$prefix$d
-	if test -d "$prefix"; then
-	  prefixes=
-	else
-	  if $posix_mkdir; then
-	    (umask=$mkdir_umask &&
-	     $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
-	    # Don't fail if two instances are running concurrently.
-	    test -d "$prefix" || exit 1
-	  else
-	    case $prefix in
-	      *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
-	      *) qprefix=$prefix;;
-	    esac
-	    prefixes="$prefixes '$qprefix'"
-	  fi
-	fi
-	prefix=$prefix/
+        prefix=$prefix$d
+        if test -d "$prefix"; then
+          prefixes=
+        else
+          if $posix_mkdir; then
+            (umask=$mkdir_umask &&
+             $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
+            # Don't fail if two instances are running concurrently.
+            test -d "$prefix" || exit 1
+          else
+            case $prefix in
+              *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
+              *) qprefix=$prefix;;
+            esac
+            prefixes="$prefixes '$qprefix'"
+          fi
+        fi
+        prefix=$prefix/
       done
 
       if test -n "$prefixes"; then
-	# Don't fail if two instances are running concurrently.
-	(umask $mkdir_umask &&
-	 eval "\$doit_exec \$mkdirprog $prefixes") ||
-	  test -d "$dstdir" || exit 1
-	obsolete_mkdir_used=true
+        # Don't fail if two instances are running concurrently.
+        (umask $mkdir_umask &&
+         eval "\$doit_exec \$mkdirprog $prefixes") ||
+          test -d "$dstdir" || exit 1
+        obsolete_mkdir_used=true
       fi
     fi
   fi
@@ -472,15 +456,12 @@
 
     # If -C, don't bother to copy if it wouldn't change the file.
     if $copy_on_change &&
-       old=`LC_ALL=C ls -dlL "$dst"	2>/dev/null` &&
-       new=`LC_ALL=C ls -dlL "$dsttmp"	2>/dev/null` &&
-
-       eval "$initialize_posix_glob" &&
-       $posix_glob set -f &&
+       old=`LC_ALL=C ls -dlL "$dst"     2>/dev/null` &&
+       new=`LC_ALL=C ls -dlL "$dsttmp"  2>/dev/null` &&
+       set -f &&
        set X $old && old=:$2:$4:$5:$6 &&
        set X $new && new=:$2:$4:$5:$6 &&
-       $posix_glob set +f &&
-
+       set +f &&
        test "$old" = "$new" &&
        $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
     then
@@ -493,24 +474,24 @@
       # to itself, or perhaps because mv is so ancient that it does not
       # support -f.
       {
-	# Now remove or move aside any old file at destination location.
-	# We try this two ways since rm can't unlink itself on some
-	# systems and the destination file might be busy for other
-	# reasons.  In this case, the final cleanup might fail but the new
-	# file should still install successfully.
-	{
-	  test ! -f "$dst" ||
-	  $doit $rmcmd -f "$dst" 2>/dev/null ||
-	  { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
-	    { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
-	  } ||
-	  { echo "$0: cannot unlink or rename $dst" >&2
-	    (exit 1); exit 1
-	  }
-	} &&
+        # Now remove or move aside any old file at destination location.
+        # We try this two ways since rm can't unlink itself on some
+        # systems and the destination file might be busy for other
+        # reasons.  In this case, the final cleanup might fail but the new
+        # file should still install successfully.
+        {
+          test ! -f "$dst" ||
+          $doit $rmcmd -f "$dst" 2>/dev/null ||
+          { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
+            { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
+          } ||
+          { echo "$0: cannot unlink or rename $dst" >&2
+            (exit 1); exit 1
+          }
+        } &&
 
-	# Now rename the file to the real destination.
-	$doit $mvcmd "$dsttmp" "$dst"
+        # Now rename the file to the real destination.
+        $doit $mvcmd "$dsttmp" "$dst"
       }
     fi || exit 1
 
diff --git a/m4/Makefile.in b/m4/Makefile.in
index ef6cbad..a8992d6 100644
--- a/m4/Makefile.in
+++ b/m4/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -14,7 +14,17 @@
 
 @SET_MAKE@
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -79,7 +89,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = m4
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am 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 \
@@ -117,6 +126,7 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -141,6 +151,7 @@
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+am__DIST_COMMON = $(srcdir)/Makefile.in README
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -158,8 +169,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -188,8 +197,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -237,11 +244,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -425,6 +435,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -503,7 +514,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -543,6 +559,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -697,7 +714,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu m4/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu m4/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -872,6 +888,8 @@
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
 	tags-am uninstall uninstall-am
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/missing b/missing
index db98974..f62bbae 100755
--- a/missing
+++ b/missing
@@ -3,7 +3,7 @@
 
 scriptversion=2013-10-28.13; # UTC
 
-# Copyright (C) 1996-2013 Free Software Foundation, Inc.
+# Copyright (C) 1996-2014 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
diff --git a/pkgconfig/Makefile.in b/pkgconfig/Makefile.in
index ad62bdb..df0f44d 100644
--- a/pkgconfig/Makefile.in
+++ b/pkgconfig/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -15,7 +15,17 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -82,23 +92,6 @@
 @HAVE_GST_GL_TRUE@am__append_1 = gstreamer-gl-@GST_API_VERSION@.pc
 @HAVE_GST_GL_TRUE@am__append_2 = gstreamer-gl-@GST_API_VERSION@-uninstalled.pc
 subdir = pkgconfig
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(srcdir)/gstreamer-plugins-bad.pc.in \
-	$(srcdir)/gstreamer-plugins-bad-uninstalled.pc.in \
-	$(srcdir)/gstreamer-codecparsers.pc.in \
-	$(srcdir)/gstreamer-codecparsers-uninstalled.pc.in \
-	$(srcdir)/gstreamer-insertbin.pc.in \
-	$(srcdir)/gstreamer-insertbin-uninstalled.pc.in \
-	$(srcdir)/gstreamer-gl.pc.in \
-	$(srcdir)/gstreamer-gl-uninstalled.pc.in \
-	$(srcdir)/gstreamer-mpegts.pc.in \
-	$(srcdir)/gstreamer-mpegts-uninstalled.pc.in \
-	$(srcdir)/gstreamer-wayland.pc.in \
-	$(srcdir)/gstreamer-wayland-uninstalled.pc.in \
-	$(srcdir)/gstreamer-bad-base.pc.in \
-	$(srcdir)/gstreamer-bad-base-uninstalled.pc.in \
-	$(srcdir)/gstreamer-bad-video.pc.in \
-	$(srcdir)/gstreamer-bad-video-uninstalled.pc.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -136,6 +129,7 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES = gstreamer-plugins-bad.pc \
@@ -197,6 +191,23 @@
 am__installdirs = "$(DESTDIR)$(pkgconfigdir)"
 DATA = $(pkgconfig_DATA)
 am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+am__DIST_COMMON = $(srcdir)/Makefile.in \
+	$(srcdir)/gstreamer-bad-base-uninstalled.pc.in \
+	$(srcdir)/gstreamer-bad-base.pc.in \
+	$(srcdir)/gstreamer-bad-video-uninstalled.pc.in \
+	$(srcdir)/gstreamer-bad-video.pc.in \
+	$(srcdir)/gstreamer-codecparsers-uninstalled.pc.in \
+	$(srcdir)/gstreamer-codecparsers.pc.in \
+	$(srcdir)/gstreamer-gl-uninstalled.pc.in \
+	$(srcdir)/gstreamer-gl.pc.in \
+	$(srcdir)/gstreamer-insertbin-uninstalled.pc.in \
+	$(srcdir)/gstreamer-insertbin.pc.in \
+	$(srcdir)/gstreamer-mpegts-uninstalled.pc.in \
+	$(srcdir)/gstreamer-mpegts.pc.in \
+	$(srcdir)/gstreamer-plugins-bad-uninstalled.pc.in \
+	$(srcdir)/gstreamer-plugins-bad.pc.in \
+	$(srcdir)/gstreamer-wayland-uninstalled.pc.in \
+	$(srcdir)/gstreamer-wayland.pc.in
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -214,8 +225,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -244,8 +253,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -293,11 +300,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -481,6 +491,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -559,7 +570,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -599,6 +615,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -749,7 +766,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu pkgconfig/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu pkgconfig/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -983,6 +999,8 @@
 	mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \
 	uninstall-am uninstall-pkgconfigDATA
 
+.PRECIOUS: Makefile
+
 
 all-local: $(pcverfiles) $(pcverfiles_uninstalled)
 
diff --git a/po/af.gmo b/po/af.gmo
index 44f8cd2..762d782 100644
--- a/po/af.gmo
+++ b/po/af.gmo
Binary files differ
diff --git a/po/af.po b/po/af.po
index 362a875..7effccb 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: 2015-06-24 22:59+0200\n"
+"POT-Creation-Date: 2015-08-19 12:49+0300\n"
 "PO-Revision-Date: 2004-03-18 14:16+0200\n"
 "Last-Translator: Petri Jooste <rkwjpj@puk.ac.za>\n"
 "Language-Team: Afrikaans <i18n@af.org.za>\n"
@@ -165,7 +165,7 @@
 msgid "File location is set to NULL, please set it to a valid filename"
 msgstr ""
 
-msgid "Digitalzoom element cound't be created"
+msgid "Digitalzoom element couldn't be created"
 msgstr ""
 
 msgid "Subpicture format was not configured before data flow"
diff --git a/po/az.gmo b/po/az.gmo
index 2c39b5e..2ca25a2 100644
--- a/po/az.gmo
+++ b/po/az.gmo
Binary files differ
diff --git a/po/az.po b/po/az.po
index 1df8550..620c0f8 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: 2015-06-24 22:59+0200\n"
+"POT-Creation-Date: 2015-08-19 12:49+0300\n"
 "PO-Revision-Date: 2004-03-19 18:29+0200\n"
 "Last-Translator: Metin Amiroff <metin@karegen.com>\n"
 "Language-Team: Azerbaijani <translation-team-az@lists.sourceforge.net>\n"
@@ -166,7 +166,7 @@
 msgid "File location is set to NULL, please set it to a valid filename"
 msgstr ""
 
-msgid "Digitalzoom element cound't be created"
+msgid "Digitalzoom element couldn't be created"
 msgstr ""
 
 msgid "Subpicture format was not configured before data flow"
diff --git a/po/bg.gmo b/po/bg.gmo
index 259810a..dce3890 100644
--- a/po/bg.gmo
+++ b/po/bg.gmo
Binary files differ
diff --git a/po/bg.po b/po/bg.po
index 3c9d531..b084995 100644
--- a/po/bg.po
+++ b/po/bg.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-bad 0.10.21.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-06-24 22:59+0200\n"
+"POT-Creation-Date: 2015-08-19 12:49+0300\n"
 "PO-Revision-Date: 2011-04-26 22:30+0300\n"
 "Last-Translator: Alexander Shopov <ash@kambanaria.org>\n"
 "Language-Team: Bulgarian <dict@fsa-bg.org>\n"
@@ -167,7 +167,7 @@
 msgid "File location is set to NULL, please set it to a valid filename"
 msgstr ""
 
-msgid "Digitalzoom element cound't be created"
+msgid "Digitalzoom element couldn't be created"
 msgstr ""
 
 msgid "Subpicture format was not configured before data flow"
diff --git a/po/ca.gmo b/po/ca.gmo
index c1cbcb4..4a12079 100644
--- a/po/ca.gmo
+++ b/po/ca.gmo
Binary files differ
diff --git a/po/ca.po b/po/ca.po
index 72d298a..12553cc 100644
--- a/po/ca.po
+++ b/po/ca.po
@@ -9,7 +9,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-bad 0.10.21.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-06-24 22:59+0200\n"
+"POT-Creation-Date: 2015-08-19 12:49+0300\n"
 "PO-Revision-Date: 2012-01-01 14:19+0100\n"
 "Last-Translator: Gil Forcada <gforcada@gnome.org>\n"
 "Language-Team: Catalan <ca@dodds.net>\n"
@@ -168,7 +168,7 @@
 msgid "File location is set to NULL, please set it to a valid filename"
 msgstr ""
 
-msgid "Digitalzoom element cound't be created"
+msgid "Digitalzoom element couldn't be created"
 msgstr ""
 
 msgid "Subpicture format was not configured before data flow"
diff --git a/po/cs.gmo b/po/cs.gmo
index be2a9dd..6b4c0e4 100644
--- a/po/cs.gmo
+++ b/po/cs.gmo
Binary files differ
diff --git a/po/cs.po b/po/cs.po
index c73205e..cda9805 100644
--- a/po/cs.po
+++ b/po/cs.po
@@ -11,7 +11,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-bad 1.5.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-06-24 22:59+0200\n"
+"POT-Creation-Date: 2015-08-19 12:49+0300\n"
 "PO-Revision-Date: 2015-06-17 14:19+0200\n"
 "Last-Translator: Marek Černocký <marek@manet.cz>\n"
 "Language-Team: Czech <translation-team-cs@lists.sourceforge.net>\n"
@@ -190,7 +190,8 @@
 "Umístění souboru je nastavené prázdné, nastavte jej prosím na platný název "
 "souboru"
 
-msgid "Digitalzoom element cound't be created"
+#, fuzzy
+msgid "Digitalzoom element couldn't be created"
 msgstr "Nelze vytvořit prvek digitalzoom"
 
 msgid "Subpicture format was not configured before data flow"
diff --git a/po/da.gmo b/po/da.gmo
index afb46f0..1ea8840 100644
--- a/po/da.gmo
+++ b/po/da.gmo
Binary files differ
diff --git a/po/da.po b/po/da.po
index baf7aa9..ce28dbe 100644
--- a/po/da.po
+++ b/po/da.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-bad-1.4.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-06-24 22:59+0200\n"
+"POT-Creation-Date: 2015-08-19 12:49+0300\n"
 "PO-Revision-Date: 2014-08-29 11:28+0200\n"
 "Last-Translator: Joe Hansen <joedalton2@yahoo.dk>\n"
 "Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
@@ -182,7 +182,7 @@
 msgid "File location is set to NULL, please set it to a valid filename"
 msgstr "Filplacering er sat til NULL, sæt den venligst til et gyldigt filnavn"
 
-msgid "Digitalzoom element cound't be created"
+msgid "Digitalzoom element couldn't be created"
 msgstr ""
 
 msgid "Subpicture format was not configured before data flow"
diff --git a/po/de.gmo b/po/de.gmo
index 33d8987..108e7d8 100644
--- a/po/de.gmo
+++ b/po/de.gmo
Binary files differ
diff --git a/po/de.po b/po/de.po
index 8ddda05..9326a32 100644
--- a/po/de.po
+++ b/po/de.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-bad 1.5.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-06-24 22:59+0200\n"
+"POT-Creation-Date: 2015-08-19 12:49+0300\n"
 "PO-Revision-Date: 2015-06-11 20:57+0100\n"
 "Last-Translator: Christian Kirbach <christian.kirbach@gmail.com>\n"
 "Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
@@ -195,7 +195,8 @@
 "Dateiort ist als NULL festgelegt. Bitte legen Sie einen gültigen Dateinamen "
 "fest"
 
-msgid "Digitalzoom element cound't be created"
+#, fuzzy
+msgid "Digitalzoom element couldn't be created"
 msgstr "Element für Digitalzoom konnte nicht angelegt werden"
 
 msgid "Subpicture format was not configured before data flow"
diff --git a/po/el.gmo b/po/el.gmo
index 92c1a6c..f440402 100644
--- a/po/el.gmo
+++ b/po/el.gmo
Binary files differ
diff --git a/po/el.po b/po/el.po
index acde167..c1ea4af 100644
--- a/po/el.po
+++ b/po/el.po
@@ -9,7 +9,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-bad 0.10.21.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-06-24 22:59+0200\n"
+"POT-Creation-Date: 2015-08-19 12:49+0300\n"
 "PO-Revision-Date: 2012-05-05 19:17+0100\n"
 "Last-Translator: Savvas Radevic <vicedar@gmail.com>\n"
 "Language-Team: Greek <team@lists.gnome.gr>\n"
@@ -169,7 +169,7 @@
 msgid "File location is set to NULL, please set it to a valid filename"
 msgstr ""
 
-msgid "Digitalzoom element cound't be created"
+msgid "Digitalzoom element couldn't be created"
 msgstr ""
 
 msgid "Subpicture format was not configured before data flow"
diff --git a/po/en_GB.gmo b/po/en_GB.gmo
index 75f8d84..90161b8 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 9521fe2..754dcb4 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: 2015-06-24 22:59+0200\n"
+"POT-Creation-Date: 2015-08-19 12:49+0300\n"
 "PO-Revision-Date: 2004-04-26 10:41-0400\n"
 "Last-Translator: Gareth Owen <gowen72@yahoo.com>\n"
 "Language-Team: English (British) <en_gb@li.org>\n"
@@ -164,7 +164,7 @@
 msgid "File location is set to NULL, please set it to a valid filename"
 msgstr ""
 
-msgid "Digitalzoom element cound't be created"
+msgid "Digitalzoom element couldn't be created"
 msgstr ""
 
 msgid "Subpicture format was not configured before data flow"
diff --git a/po/eo.gmo b/po/eo.gmo
index 62670a8..af1c9da 100644
--- a/po/eo.gmo
+++ b/po/eo.gmo
Binary files differ
diff --git a/po/eo.po b/po/eo.po
index 79f6d82..189046f 100644
--- a/po/eo.po
+++ b/po/eo.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-bad 0.10.21.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-06-24 22:59+0200\n"
+"POT-Creation-Date: 2015-08-19 12:49+0300\n"
 "PO-Revision-Date: 2011-06-04 22:18+0200\n"
 "Last-Translator: Kristjan SCHMIDT <kristjan.schmidt@googlemail.com>\n"
 "Language-Team: Esperanto <translation-team-eo@lists.sourceforge.net>\n"
@@ -166,7 +166,7 @@
 msgid "File location is set to NULL, please set it to a valid filename"
 msgstr ""
 
-msgid "Digitalzoom element cound't be created"
+msgid "Digitalzoom element couldn't be created"
 msgstr ""
 
 msgid "Subpicture format was not configured before data flow"
diff --git a/po/es.gmo b/po/es.gmo
index e41e3cf..b512330 100644
--- a/po/es.gmo
+++ b/po/es.gmo
Binary files differ
diff --git a/po/es.po b/po/es.po
index d96db7d..632e63e 100644
--- a/po/es.po
+++ b/po/es.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-bad 0.10.21.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-06-24 22:59+0200\n"
+"POT-Creation-Date: 2015-08-19 12:49+0300\n"
 "PO-Revision-Date: 2011-10-02 15:47+0200\n"
 "Last-Translator: Jorge González González <aloriel@gmail.com>\n"
 "Language-Team: Spanish <es@li.org>\n"
@@ -166,7 +166,7 @@
 msgid "File location is set to NULL, please set it to a valid filename"
 msgstr ""
 
-msgid "Digitalzoom element cound't be created"
+msgid "Digitalzoom element couldn't be created"
 msgstr ""
 
 msgid "Subpicture format was not configured before data flow"
diff --git a/po/eu.gmo b/po/eu.gmo
index 6e8499f..30504ea 100644
--- a/po/eu.gmo
+++ b/po/eu.gmo
Binary files differ
diff --git a/po/eu.po b/po/eu.po
index 0ce9487..7ba14ae 100644
--- a/po/eu.po
+++ b/po/eu.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-bad-0.10.17.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-06-24 22:59+0200\n"
+"POT-Creation-Date: 2015-08-19 12:49+0300\n"
 "PO-Revision-Date: 2010-03-25 12:30+0100\n"
 "Last-Translator: Mikel Olasagasti Uranga <hey_neken@mundurat.net>\n"
 "Language-Team: Basque <translation-team-eu@lists.sourceforge.net>\n"
@@ -167,7 +167,7 @@
 msgid "File location is set to NULL, please set it to a valid filename"
 msgstr ""
 
-msgid "Digitalzoom element cound't be created"
+msgid "Digitalzoom element couldn't be created"
 msgstr ""
 
 msgid "Subpicture format was not configured before data flow"
diff --git a/po/fi.gmo b/po/fi.gmo
index e4838a4..a489993 100644
--- a/po/fi.gmo
+++ b/po/fi.gmo
Binary files differ
diff --git a/po/fi.po b/po/fi.po
index 7965174..eec1903 100644
--- a/po/fi.po
+++ b/po/fi.po
@@ -11,7 +11,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-bad 0.10.13.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-06-24 22:59+0200\n"
+"POT-Creation-Date: 2015-08-19 12:49+0300\n"
 "PO-Revision-Date: 2009-08-12 22:13+0300\n"
 "Last-Translator: Tommi Vainikainen <Tommi.Vainikainen@iki.fi>\n"
 "Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>\n"
@@ -170,7 +170,7 @@
 msgid "File location is set to NULL, please set it to a valid filename"
 msgstr ""
 
-msgid "Digitalzoom element cound't be created"
+msgid "Digitalzoom element couldn't be created"
 msgstr ""
 
 msgid "Subpicture format was not configured before data flow"
diff --git a/po/fr.gmo b/po/fr.gmo
index 65b1c5a..f7fa545 100644
--- a/po/fr.gmo
+++ b/po/fr.gmo
Binary files differ
diff --git a/po/fr.po b/po/fr.po
index 8179510..efd5f4a 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -9,7 +9,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-bad 1.4.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-06-24 22:59+0200\n"
+"POT-Creation-Date: 2015-08-19 12:49+0300\n"
 "PO-Revision-Date: 2015-04-26 19:24+0200\n"
 "Last-Translator: Stéphane Aulery <lkppo@free.fr>\n"
 "Language-Team: French <traduc@traduc.org>\n"
@@ -164,7 +164,7 @@
 msgid "File location is set to NULL, please set it to a valid filename"
 msgstr ""
 
-msgid "Digitalzoom element cound't be created"
+msgid "Digitalzoom element couldn't be created"
 msgstr ""
 
 msgid "Subpicture format was not configured before data flow"
diff --git a/po/gl.gmo b/po/gl.gmo
index c99adb0..4a0c7e5 100644
--- a/po/gl.gmo
+++ b/po/gl.gmo
Binary files differ
diff --git a/po/gl.po b/po/gl.po
index 5985077..f331009 100644
--- a/po/gl.po
+++ b/po/gl.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-bad 0.10.21.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-06-24 22:59+0200\n"
+"POT-Creation-Date: 2015-08-19 12:49+0300\n"
 "PO-Revision-Date: 2011-09-05 12:50+0200\n"
 "Last-Translator: Fran Dieguez <frandieguez@ubuntu.com>\n"
 "Language-Team: Galician <proxecto@trasno.net>\n"
@@ -168,7 +168,7 @@
 msgid "File location is set to NULL, please set it to a valid filename"
 msgstr ""
 
-msgid "Digitalzoom element cound't be created"
+msgid "Digitalzoom element couldn't be created"
 msgstr ""
 
 msgid "Subpicture format was not configured before data flow"
diff --git a/po/gst-plugins-bad-1.0.pot b/po/gst-plugins-bad-1.0.pot
index 8337e98..f1487e1 100644
--- a/po/gst-plugins-bad-1.0.pot
+++ b/po/gst-plugins-bad-1.0.pot
@@ -5,9 +5,9 @@
 #, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-bad 1.5.2\n"
+"Project-Id-Version: gst-plugins-bad 1.5.90\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-06-24 22:59+0200\n"
+"POT-Creation-Date: 2015-08-19 12:49+0300\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -165,7 +165,7 @@
 msgstr ""
 
 #: ext/smoothstreaming/gstmssdemux.c:380
-#: gst-libs/gst/adaptivedemux/gstadaptivedemux.c:520
+#: gst-libs/gst/adaptivedemux/gstadaptivedemux.c:524
 msgid "This file contains no playable streams."
 msgstr ""
 
@@ -193,7 +193,7 @@
 msgid "Internal data flow error."
 msgstr ""
 
-#: gst/asfmux/gstasfmux.c:1803
+#: gst/asfmux/gstasfmux.c:1832
 msgid "Generated file has a larger preroll time than its streams duration"
 msgstr ""
 
@@ -208,25 +208,25 @@
 msgstr ""
 
 #: gst/camerabin2/gstwrappercamerabinsrc.c:584
-msgid "Digitalzoom element cound't be created"
+msgid "Digitalzoom element couldn't be created"
 msgstr ""
 
-#: gst/dvdspu/gstdvdspu.c:1036
+#: gst/dvdspu/gstdvdspu.c:1040
 msgid "Subpicture format was not configured before data flow"
 msgstr ""
 
-#: gst-libs/gst/adaptivedemux/gstadaptivedemux.c:1931
+#: gst-libs/gst/adaptivedemux/gstadaptivedemux.c:1980
 msgid "Failed to get fragment URL."
 msgstr ""
 
-#: gst-libs/gst/adaptivedemux/gstadaptivedemux.c:2121
-#: gst-libs/gst/adaptivedemux/gstadaptivedemux.c:2285
-#: gst/mpegtsdemux/mpegtsbase.c:1337 gst/mpegtsdemux/mpegtsbase.c:1341
+#: gst-libs/gst/adaptivedemux/gstadaptivedemux.c:2174
+#: gst-libs/gst/adaptivedemux/gstadaptivedemux.c:2338
+#: gst/mpegtsdemux/mpegtsbase.c:1342 gst/mpegtsdemux/mpegtsbase.c:1346
 #: gst/nuvdemux/gstnuvdemux.c:736
 msgid "Internal data stream error."
 msgstr ""
 
-#: gst-libs/gst/adaptivedemux/gstadaptivedemux.c:2222
+#: gst-libs/gst/adaptivedemux/gstadaptivedemux.c:2275
 msgid "Couldn't download fragments"
 msgstr ""
 
diff --git a/po/hr.gmo b/po/hr.gmo
index 9b51ae0..323ced9 100644
--- a/po/hr.gmo
+++ b/po/hr.gmo
Binary files differ
diff --git a/po/hr.po b/po/hr.po
index e6c9304..343764c 100644
--- a/po/hr.po
+++ b/po/hr.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-bad 0.10.21.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-06-24 22:59+0200\n"
+"POT-Creation-Date: 2015-08-19 12:49+0300\n"
 "PO-Revision-Date: 2012-04-16 02:06+0200\n"
 "Last-Translator: Tomislav Krznar <tomislav.krznar@gmail.com>\n"
 "Language-Team: Croatian <lokalizacija@linux.hr>\n"
@@ -166,7 +166,7 @@
 msgid "File location is set to NULL, please set it to a valid filename"
 msgstr ""
 
-msgid "Digitalzoom element cound't be created"
+msgid "Digitalzoom element couldn't be created"
 msgstr ""
 
 msgid "Subpicture format was not configured before data flow"
diff --git a/po/hu.gmo b/po/hu.gmo
index ff57fb5..4f7233e 100644
--- a/po/hu.gmo
+++ b/po/hu.gmo
Binary files differ
diff --git a/po/hu.po b/po/hu.po
index fa5e454..b7588dc 100644
--- a/po/hu.po
+++ b/po/hu.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-bad 1.5.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-06-24 22:59+0200\n"
+"POT-Creation-Date: 2015-08-19 12:49+0300\n"
 "PO-Revision-Date: 2015-06-14 08:15+0200\n"
 "Last-Translator: Balázs Úr <urbalazs@gmail.com>\n"
 "Language-Team: Hungarian <translation-team-hu@lists.sourceforge.net>\n"
@@ -191,7 +191,8 @@
 "A fájl helye NULL értékre lett állítva, kérjük állítsa be egy érvényes "
 "fájlnévre"
 
-msgid "Digitalzoom element cound't be created"
+#, fuzzy
+msgid "Digitalzoom element couldn't be created"
 msgstr "A digitális nagyítás elemet nem sikerült létrehozni"
 
 msgid "Subpicture format was not configured before data flow"
diff --git a/po/id.gmo b/po/id.gmo
index 1bdb44f..db1e578 100644
--- a/po/id.gmo
+++ b/po/id.gmo
Binary files differ
diff --git a/po/id.po b/po/id.po
index cf8602c..1e3f213 100644
--- a/po/id.po
+++ b/po/id.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-bad 1.3.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-06-24 22:59+0200\n"
+"POT-Creation-Date: 2015-08-19 12:49+0300\n"
 "PO-Revision-Date: 2014-05-31 22:16+0700\n"
 "Last-Translator: Andhika Padmawan <andhika.padmawan@gmail.com>\n"
 "Language-Team: Indonesian <translation-team-id@lists.sourceforge.net>\n"
@@ -165,7 +165,7 @@
 msgid "File location is set to NULL, please set it to a valid filename"
 msgstr "Lokasi berkas diisi NULL, harap isi dengan nama berkas yang valid"
 
-msgid "Digitalzoom element cound't be created"
+msgid "Digitalzoom element couldn't be created"
 msgstr ""
 
 msgid "Subpicture format was not configured before data flow"
diff --git a/po/it.gmo b/po/it.gmo
index da13c2f..3da9c06 100644
--- a/po/it.gmo
+++ b/po/it.gmo
Binary files differ
diff --git a/po/it.po b/po/it.po
index 521a5ac..c7e678f 100644
--- a/po/it.po
+++ b/po/it.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-bad 0.10.13.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-06-24 22:59+0200\n"
+"POT-Creation-Date: 2015-08-19 12:49+0300\n"
 "PO-Revision-Date: 2009-08-14 00:12+0200\n"
 "Last-Translator: Luca Ferretti <elle.uca@infinito.it>\n"
 "Language-Team: Italian <tp@lists.linux.it>\n"
@@ -164,7 +164,7 @@
 msgid "File location is set to NULL, please set it to a valid filename"
 msgstr ""
 
-msgid "Digitalzoom element cound't be created"
+msgid "Digitalzoom element couldn't be created"
 msgstr ""
 
 msgid "Subpicture format was not configured before data flow"
diff --git a/po/ja.gmo b/po/ja.gmo
index 33f0553..b48c8d6 100644
--- a/po/ja.gmo
+++ b/po/ja.gmo
Binary files differ
diff --git a/po/ja.po b/po/ja.po
index 0a54822..f04d3b3 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-bad 0.10.21.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-06-24 22:59+0200\n"
+"POT-Creation-Date: 2015-08-19 12:49+0300\n"
 "PO-Revision-Date: 2011-04-26 19:38+0900\n"
 "Last-Translator: Makoto Kato <makoto.kt@gmail.com>\n"
 "Language-Team: Japanese <translation-team-ja@lists.sourceforge.net>\n"
@@ -166,7 +166,7 @@
 msgid "File location is set to NULL, please set it to a valid filename"
 msgstr ""
 
-msgid "Digitalzoom element cound't be created"
+msgid "Digitalzoom element couldn't be created"
 msgstr ""
 
 msgid "Subpicture format was not configured before data flow"
diff --git a/po/ky.gmo b/po/ky.gmo
index d2b94f9..a64671a 100644
--- a/po/ky.gmo
+++ b/po/ky.gmo
Binary files differ
diff --git a/po/ky.po b/po/ky.po
index 5f09118..9a6b054 100644
--- a/po/ky.po
+++ b/po/ky.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-bad 0.10.5\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-06-24 22:59+0200\n"
+"POT-Creation-Date: 2015-08-19 12:49+0300\n"
 "PO-Revision-Date: 2007-11-13 17:16+0600\n"
 "Last-Translator: Ilyas Bakirov <just_ilyas@yahoo.com>\n"
 "Language-Team: Kirghiz <i18n-team-ky-kyrgyz@lists.sourceforge.net>\n"
@@ -163,7 +163,7 @@
 msgid "File location is set to NULL, please set it to a valid filename"
 msgstr ""
 
-msgid "Digitalzoom element cound't be created"
+msgid "Digitalzoom element couldn't be created"
 msgstr ""
 
 msgid "Subpicture format was not configured before data flow"
diff --git a/po/lt.gmo b/po/lt.gmo
index 01a0ddc..13fc28a 100644
--- a/po/lt.gmo
+++ b/po/lt.gmo
Binary files differ
diff --git a/po/lt.po b/po/lt.po
index 76dff97..e02e538 100644
--- a/po/lt.po
+++ b/po/lt.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-bad-0.10.6.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-06-24 22:59+0200\n"
+"POT-Creation-Date: 2015-08-19 12:49+0300\n"
 "PO-Revision-Date: 2008-05-14 02:13+0300\n"
 "Last-Translator: Gintautas Miliauskas <gintas@akl.lt>\n"
 "Language-Team: Lithuanian <komp_lt@konferencijos.lt>\n"
@@ -168,7 +168,7 @@
 msgid "File location is set to NULL, please set it to a valid filename"
 msgstr ""
 
-msgid "Digitalzoom element cound't be created"
+msgid "Digitalzoom element couldn't be created"
 msgstr ""
 
 msgid "Subpicture format was not configured before data flow"
diff --git a/po/lv.gmo b/po/lv.gmo
index 5e3957e..93fe6b7 100644
--- a/po/lv.gmo
+++ b/po/lv.gmo
Binary files differ
diff --git a/po/lv.po b/po/lv.po
index ec5c2ec..3be8e06 100644
--- a/po/lv.po
+++ b/po/lv.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-bad 1.2.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-06-24 22:59+0200\n"
+"POT-Creation-Date: 2015-08-19 12:49+0300\n"
 "PO-Revision-Date: 2014-04-20 15:52+0300\n"
 "Last-Translator: Rihards Prieditis <rprieditis@gmail.com>\n"
 "Language-Team: Latvian <translation-team-lv@lists.sourceforge.net>\n"
@@ -171,7 +171,7 @@
 msgstr ""
 "Datnes vieta ir iestatīta uz NULL, lūdzu, iestatiet derīgu datnes nosaukumu"
 
-msgid "Digitalzoom element cound't be created"
+msgid "Digitalzoom element couldn't be created"
 msgstr ""
 
 msgid "Subpicture format was not configured before data flow"
diff --git a/po/mt.gmo b/po/mt.gmo
index 51246b5..f8fa35e 100644
--- a/po/mt.gmo
+++ b/po/mt.gmo
Binary files differ
diff --git a/po/mt.po b/po/mt.po
index ad6864c..decddb5 100644
--- a/po/mt.po
+++ b/po/mt.po
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-bad-0.10.8.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-06-24 22:59+0200\n"
+"POT-Creation-Date: 2015-08-19 12:49+0300\n"
 "PO-Revision-Date: 2008-10-26 20:27+0100\n"
 "Last-Translator: Michel Bugeja <michelbugeja@rabatmalta.com>\n"
 "Language-Team: Maltese <translation-team-mt@lists.sourceforge.net>\n"
@@ -166,7 +166,7 @@
 msgid "File location is set to NULL, please set it to a valid filename"
 msgstr ""
 
-msgid "Digitalzoom element cound't be created"
+msgid "Digitalzoom element couldn't be created"
 msgstr ""
 
 msgid "Subpicture format was not configured before data flow"
diff --git a/po/nb.gmo b/po/nb.gmo
index 02eebb2..39a807c 100644
--- a/po/nb.gmo
+++ b/po/nb.gmo
Binary files differ
diff --git a/po/nb.po b/po/nb.po
index be0fdcf..7987bff 100644
--- a/po/nb.po
+++ b/po/nb.po
@@ -6,10 +6,10 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-bad 1.4.1\n"
+"Project-Id-Version: gst-plugins-bad 1.5.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-06-24 22:59+0200\n"
-"PO-Revision-Date: 2015-06-03 09:39+0100\n"
+"POT-Creation-Date: 2015-08-19 12:49+0300\n"
+"PO-Revision-Date: 2015-07-11 01:15+0100\n"
 "Last-Translator: Johnny A. Solbu <johnny@solbu.net>\n"
 "Language-Team: Norwegian Bokmaal <i18n-nb@lister.ping.uio.no>\n"
 "Language: nb_NO\n"
@@ -24,7 +24,6 @@
 msgid "default GStreamer sound events audiosink"
 msgstr "standard GStreamer lydhendelser-audiosink"
 
-#, fuzzy
 msgid ""
 "GStreamer can play audio using any number of output elements. Some possible "
 "choices are osssink, pulsesink and alsasink. The audiosink can be a partial "
@@ -128,7 +127,7 @@
 msgstr "Beskriver valgt visualiseringselement."
 
 msgid "OpenCV failed to load template image"
-msgstr ""
+msgstr "OpenCV kunne ikke laste mal-bilde"
 
 msgid "Could not read title information for DVD."
 msgstr "Kunne ikke lese tittelinformasjonen til DVD-en."
@@ -182,8 +181,9 @@
 msgstr ""
 "Filplassering er satt til NULL, vennligst sett den til et gyldig filnavn"
 
-msgid "Digitalzoom element cound't be created"
-msgstr ""
+#, fuzzy
+msgid "Digitalzoom element couldn't be created"
+msgstr "Digitalzoom element kunne ikke opprettes"
 
 msgid "Subpicture format was not configured before data flow"
 msgstr "Underbildeformat er ikke konfigurert før dataflyt"
diff --git a/po/nl.gmo b/po/nl.gmo
index 155edbb..a5e60ad 100644
--- a/po/nl.gmo
+++ b/po/nl.gmo
Binary files differ
diff --git a/po/nl.po b/po/nl.po
index 32b5058..6064e06 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-bad 1.4.0\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-06-24 22:59+0200\n"
+"POT-Creation-Date: 2015-08-19 12:49+0300\n"
 "PO-Revision-Date: 2014-07-22 10:49+0200\n"
 "Last-Translator: Freek de Kruijf <f.de.kruijf@gmail.com>\n"
 "Language-Team: Dutch <vertaling@vrijschrift.org>\n"
@@ -168,7 +168,7 @@
 msgstr ""
 "Locatie van bestand is op NUL gezet, stel het in op een geldige bestandsnaam"
 
-msgid "Digitalzoom element cound't be created"
+msgid "Digitalzoom element couldn't be created"
 msgstr ""
 
 msgid "Subpicture format was not configured before data flow"
diff --git a/po/or.gmo b/po/or.gmo
index 1fff465..e957053 100644
--- a/po/or.gmo
+++ b/po/or.gmo
Binary files differ
diff --git a/po/or.po b/po/or.po
index e90bae6..bae6ea8 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: 2015-06-24 22:59+0200\n"
+"POT-Creation-Date: 2015-08-19 12:49+0300\n"
 "PO-Revision-Date: 2004-09-27 13:32+0530\n"
 "Last-Translator: Gora Mohanty <gora_mohanty@yahoo.co.in>\n"
 "Language-Team: Oriya <gora_mohanty@yahoo.co.in>\n"
@@ -166,7 +166,7 @@
 msgid "File location is set to NULL, please set it to a valid filename"
 msgstr ""
 
-msgid "Digitalzoom element cound't be created"
+msgid "Digitalzoom element couldn't be created"
 msgstr ""
 
 msgid "Subpicture format was not configured before data flow"
diff --git a/po/pl.gmo b/po/pl.gmo
index f331f3d..feb622b 100644
--- a/po/pl.gmo
+++ b/po/pl.gmo
Binary files differ
diff --git a/po/pl.po b/po/pl.po
index e04f919..2199a5f 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-bad 1.5.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-06-24 22:59+0200\n"
+"POT-Creation-Date: 2015-08-19 12:49+0300\n"
 "PO-Revision-Date: 2015-06-10 22:06+0200\n"
 "Last-Translator: Jakub Bogusz <qboosh@pld-linux.org>\n"
 "Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
@@ -185,7 +185,8 @@
 msgstr ""
 "Położenie pliku ustawiono na NULL, proszę ustawić na poprawną nazwę pliku"
 
-msgid "Digitalzoom element cound't be created"
+#, fuzzy
+msgid "Digitalzoom element couldn't be created"
 msgstr "Nie udało się utworzyć elementu Digitalzoom"
 
 msgid "Subpicture format was not configured before data flow"
diff --git a/po/pt_BR.gmo b/po/pt_BR.gmo
index 07e61ab..bd3dff4 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 7317ff3..133cac2 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-bad-1.4.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-06-24 22:59+0200\n"
+"POT-Creation-Date: 2015-08-19 12:49+0300\n"
 "PO-Revision-Date: 2015-02-01 18:24-0200\n"
 "Last-Translator: Fabrício Godoy <skarllot@gmail.com>\n"
 "Language-Team: Brazilian Portuguese <ldpbr-translation@lists.sourceforge."
@@ -193,7 +193,7 @@
 msgstr ""
 "A localização do arquivo está NULA, favor definir um nome de arquivo válido"
 
-msgid "Digitalzoom element cound't be created"
+msgid "Digitalzoom element couldn't be created"
 msgstr ""
 
 msgid "Subpicture format was not configured before data flow"
diff --git a/po/ro.gmo b/po/ro.gmo
index 2da68af..47083b2 100644
--- a/po/ro.gmo
+++ b/po/ro.gmo
Binary files differ
diff --git a/po/ro.po b/po/ro.po
index 37c1ddb..426a093 100644
--- a/po/ro.po
+++ b/po/ro.po
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-bad 0.10.18.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-06-24 22:59+0200\n"
+"POT-Creation-Date: 2015-08-19 12:49+0300\n"
 "PO-Revision-Date: 2010-08-16 03:11+0300\n"
 "Last-Translator: Lucian Adrian Grijincu <lucian.grijincu@gmail.com>\n"
 "Language-Team: Romanian <translation-team-ro@lists.sourceforge.net>\n"
@@ -165,7 +165,7 @@
 msgid "File location is set to NULL, please set it to a valid filename"
 msgstr ""
 
-msgid "Digitalzoom element cound't be created"
+msgid "Digitalzoom element couldn't be created"
 msgstr ""
 
 msgid "Subpicture format was not configured before data flow"
diff --git a/po/ru.gmo b/po/ru.gmo
index 58fb8ae..e8c2e3b 100644
--- a/po/ru.gmo
+++ b/po/ru.gmo
Binary files differ
diff --git a/po/ru.po b/po/ru.po
index 24b2ec6..4cd37b0 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-bad 1.5.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-06-24 22:59+0200\n"
+"POT-Creation-Date: 2015-08-19 12:49+0300\n"
 "PO-Revision-Date: 2015-06-13 12:00+0300\n"
 "Last-Translator: Yuri Kozlov <yuray@komyakino.ru>\n"
 "Language-Team: Russian <gnu@mx.ru>\n"
@@ -183,7 +183,8 @@
 msgid "File location is set to NULL, please set it to a valid filename"
 msgstr "Расположение файла равно NULL, укажите правильное имя файла"
 
-msgid "Digitalzoom element cound't be created"
+#, fuzzy
+msgid "Digitalzoom element couldn't be created"
 msgstr "Невозможно создать элемент Digitalzoom"
 
 msgid "Subpicture format was not configured before data flow"
diff --git a/po/sk.gmo b/po/sk.gmo
index b177edb..c061bdf 100644
--- a/po/sk.gmo
+++ b/po/sk.gmo
Binary files differ
diff --git a/po/sk.po b/po/sk.po
index 9b1d6c2..e19ae37 100644
--- a/po/sk.po
+++ b/po/sk.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-bad 1.2.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-06-24 22:59+0200\n"
+"POT-Creation-Date: 2015-08-19 12:49+0300\n"
 "PO-Revision-Date: 2014-01-30 10:44+0100\n"
 "Last-Translator: Peter Tuharsky <tuharsky@misbb.sk>\n"
 "Language-Team: Slovak <sk-i18n@lists.linux.sk>\n"
@@ -171,7 +171,7 @@
 "Umiestnenie súboru je nastavené na NULOVÉ, prosím nastavte platný názov "
 "súboru"
 
-msgid "Digitalzoom element cound't be created"
+msgid "Digitalzoom element couldn't be created"
 msgstr ""
 
 msgid "Subpicture format was not configured before data flow"
diff --git a/po/sl.gmo b/po/sl.gmo
index 717bf07..7ac0af2 100644
--- a/po/sl.gmo
+++ b/po/sl.gmo
Binary files differ
diff --git a/po/sl.po b/po/sl.po
index 190b566..f2edf19 100644
--- a/po/sl.po
+++ b/po/sl.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-bad 0.10.21.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-06-24 22:59+0200\n"
+"POT-Creation-Date: 2015-08-19 12:49+0300\n"
 "PO-Revision-Date: 2011-04-26 15:21+0100\n"
 "Last-Translator: Klemen Košir <klemen.kosir@gmx.com>\n"
 "Language-Team: Slovenian <translation-team-sl@lists.sourceforge.net>\n"
@@ -171,7 +171,7 @@
 msgid "File location is set to NULL, please set it to a valid filename"
 msgstr ""
 
-msgid "Digitalzoom element cound't be created"
+msgid "Digitalzoom element couldn't be created"
 msgstr ""
 
 msgid "Subpicture format was not configured before data flow"
diff --git a/po/sq.gmo b/po/sq.gmo
index 1c77a6e..7733c20 100644
--- a/po/sq.gmo
+++ b/po/sq.gmo
Binary files differ
diff --git a/po/sq.po b/po/sq.po
index 14155ec..a496b0e 100644
--- a/po/sq.po
+++ b/po/sq.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-bad 0.10.7.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-06-24 22:59+0200\n"
+"POT-Creation-Date: 2015-08-19 12:49+0300\n"
 "PO-Revision-Date: 2008-08-15 16:07+0200\n"
 "Last-Translator: Laurent Dhima <laurenti@alblinux.net>\n"
 "Language-Team: Albanian <translation-team-sq@lists.sourceforge.net>\n"
@@ -165,7 +165,7 @@
 msgid "File location is set to NULL, please set it to a valid filename"
 msgstr ""
 
-msgid "Digitalzoom element cound't be created"
+msgid "Digitalzoom element couldn't be created"
 msgstr ""
 
 msgid "Subpicture format was not configured before data flow"
diff --git a/po/sr.gmo b/po/sr.gmo
index 5c9281e..8139c31 100644
--- a/po/sr.gmo
+++ b/po/sr.gmo
Binary files differ
diff --git a/po/sr.po b/po/sr.po
index 1041a34..f81b369 100644
--- a/po/sr.po
+++ b/po/sr.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-bad-1.4.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-06-24 22:59+0200\n"
+"POT-Creation-Date: 2015-08-19 12:49+0300\n"
 "PO-Revision-Date: 2014-09-13 10:39+0200\n"
 "Last-Translator: Мирослав Николић <miroslavnikolic@rocketmail.com>\n"
 "Language-Team: Serbian <(nothing)>\n"
@@ -183,7 +183,7 @@
 msgstr ""
 "Место датотеке је подешено на НИШТА, подесите га на исправан назив датотеке"
 
-msgid "Digitalzoom element cound't be created"
+msgid "Digitalzoom element couldn't be created"
 msgstr ""
 
 msgid "Subpicture format was not configured before data flow"
diff --git a/po/sv.gmo b/po/sv.gmo
index 42ad299..b0b4a84 100644
--- a/po/sv.gmo
+++ b/po/sv.gmo
Binary files differ
diff --git a/po/sv.po b/po/sv.po
index 3b3fc9e..0246116 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-bad 1.4.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-06-24 22:59+0200\n"
+"POT-Creation-Date: 2015-08-19 12:49+0300\n"
 "PO-Revision-Date: 2014-09-19 02:43+0200\n"
 "Last-Translator: Sebastian Rasmussen <sebras@gmail.com>\n"
 "Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
@@ -182,7 +182,7 @@
 msgstr ""
 "Filposition är satt till NULL, vänligen sätt den till ett giltigt filnamn"
 
-msgid "Digitalzoom element cound't be created"
+msgid "Digitalzoom element couldn't be created"
 msgstr ""
 
 msgid "Subpicture format was not configured before data flow"
diff --git a/po/tr.gmo b/po/tr.gmo
index 42e0e05..b4a61ac 100644
--- a/po/tr.gmo
+++ b/po/tr.gmo
Binary files differ
diff --git a/po/tr.po b/po/tr.po
index bfbbc27..124939d 100644
--- a/po/tr.po
+++ b/po/tr.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-bad-1.4.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-06-24 22:59+0200\n"
+"POT-Creation-Date: 2015-08-19 12:49+0300\n"
 "PO-Revision-Date: 2015-01-10 21:07+0100\n"
 "Last-Translator: Volkan Gezer <volkangezer@gmail.com>\n"
 "Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n"
@@ -167,7 +167,7 @@
 "Dosya konumunuz BOŞ bir değere ayarlı, lütfen geçerli bir dosya adı için "
 "ayarlayın"
 
-msgid "Digitalzoom element cound't be created"
+msgid "Digitalzoom element couldn't be created"
 msgstr ""
 
 msgid "Subpicture format was not configured before data flow"
diff --git a/po/uk.gmo b/po/uk.gmo
index 76ee015..42a8818 100644
--- a/po/uk.gmo
+++ b/po/uk.gmo
Binary files differ
diff --git a/po/uk.po b/po/uk.po
index 63eb0df..8b17b80 100644
--- a/po/uk.po
+++ b/po/uk.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-bad 1.5.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-06-24 22:59+0200\n"
+"POT-Creation-Date: 2015-08-19 12:49+0300\n"
 "PO-Revision-Date: 2015-06-10 22:48+0300\n"
 "Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
 "Language-Team: Ukrainian <translation-team-uk@lists.sourceforge.net>\n"
@@ -192,7 +192,8 @@
 "Значенням розташування файла є NULL. Будь ласка, встановіть чинне значення "
 "назви файла."
 
-msgid "Digitalzoom element cound't be created"
+#, fuzzy
+msgid "Digitalzoom element couldn't be created"
 msgstr "Не вдалося створити елемент цифрового масштабування"
 
 msgid "Subpicture format was not configured before data flow"
diff --git a/po/vi.gmo b/po/vi.gmo
index 0233f60..8986ae6 100644
--- a/po/vi.gmo
+++ b/po/vi.gmo
Binary files differ
diff --git a/po/vi.po b/po/vi.po
index 7d0f69d..0d9ce54 100644
--- a/po/vi.po
+++ b/po/vi.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-bad 1.5.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-06-24 22:59+0200\n"
+"POT-Creation-Date: 2015-08-19 12:49+0300\n"
 "PO-Revision-Date: 2015-06-11 08:37+0700\n"
 "Last-Translator: Trần Ngọc Quân <vnwildman@gmail.com>\n"
 "Language-Team: Vietnamese <translation-team-vi@lists.sourceforge.net>\n"
@@ -184,7 +184,8 @@
 msgstr ""
 "Vị trí tập tin được đặt thành “NULL”. xin hãy đặt một tên tập tin hợp lệ"
 
-msgid "Digitalzoom element cound't be created"
+#, fuzzy
+msgid "Digitalzoom element couldn't be created"
 msgstr "Không thể tạo phần tử thu phóng số"
 
 msgid "Subpicture format was not configured before data flow"
diff --git a/po/zh_CN.gmo b/po/zh_CN.gmo
index 3d9a6a3..78ed7f9 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 411f413..4886660 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -9,7 +9,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-bad 0.10.16.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-06-24 22:59+0200\n"
+"POT-Creation-Date: 2015-08-19 12:49+0300\n"
 "PO-Revision-Date: 2009-11-20 18:12中国标准时间\n"
 "Last-Translator: Ji ZhengYu <zhengyuji@gmail.com>\n"
 "Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
@@ -166,7 +166,7 @@
 msgid "File location is set to NULL, please set it to a valid filename"
 msgstr ""
 
-msgid "Digitalzoom element cound't be created"
+msgid "Digitalzoom element couldn't be created"
 msgstr ""
 
 msgid "Subpicture format was not configured before data flow"
diff --git a/sys/Makefile.in b/sys/Makefile.in
index d9d6221..71ddec0 100644
--- a/sys/Makefile.in
+++ b/sys/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -19,7 +19,17 @@
 # descending into all subdirectories a second time, but only after the first
 # (parallel) run has finished, so it should go right through the second time.
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -83,8 +93,6 @@
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
-DIST_COMMON = $(top_srcdir)/common/parallel-subdirs.mak \
-	$(srcdir)/Makefile.in $(srcdir)/Makefile.am
 subdir = sys
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
@@ -123,6 +131,7 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -181,6 +190,8 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in \
+	$(top_srcdir)/common/parallel-subdirs.mak
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 am__relativize = \
   dir0=`pwd`; \
@@ -223,8 +234,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -253,8 +262,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -302,11 +309,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -490,6 +500,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -568,7 +579,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -608,6 +624,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -795,7 +812,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu sys/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu sys/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -804,7 +820,7 @@
 	    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/parallel-subdirs.mak:
+$(top_srcdir)/common/parallel-subdirs.mak $(am__empty):
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -1091,6 +1107,8 @@
 	mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
 	ps ps-am tags tags-am uninstall uninstall-am
 
+.PRECIOUS: Makefile
+
 
 .PHONY: independent-subdirs $(SUBDIRS)
 
diff --git a/sys/acmenc/Makefile.in b/sys/acmenc/Makefile.in
index 03d4d49..e5ac373 100644
--- a/sys/acmenc/Makefile.in
+++ b/sys/acmenc/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -15,7 +15,17 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -80,8 +90,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = sys/acmenc
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -119,6 +127,7 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -225,6 +234,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -242,8 +252,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -272,8 +280,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -321,11 +327,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -509,6 +518,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -587,7 +597,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -627,6 +642,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -766,7 +782,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu sys/acmenc/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu sys/acmenc/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1075,6 +1090,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/sys/acmmp3dec/Makefile.in b/sys/acmmp3dec/Makefile.in
index 1c208d7..4964201 100644
--- a/sys/acmmp3dec/Makefile.in
+++ b/sys/acmmp3dec/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -15,7 +15,17 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -80,8 +90,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = sys/acmmp3dec
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -119,6 +127,7 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -225,6 +234,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -242,8 +252,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -272,8 +280,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -321,11 +327,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -509,6 +518,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -587,7 +597,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -627,6 +642,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -766,7 +782,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu sys/acmmp3dec/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu sys/acmmp3dec/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1075,6 +1090,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/sys/androidmedia/Makefile.in b/sys/androidmedia/Makefile.in
index 330211e..4bca9ff 100644
--- a/sys/androidmedia/Makefile.in
+++ b/sys/androidmedia/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = sys/androidmedia
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -232,6 +242,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -249,8 +260,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -279,8 +288,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -328,11 +335,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -516,6 +526,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -594,7 +605,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -634,6 +650,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -791,7 +808,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu sys/androidmedia/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu sys/androidmedia/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1132,6 +1148,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/sys/androidmedia/gstamc-constants.h b/sys/androidmedia/gstamc-constants.h
index ae52464..cc43f61 100644
--- a/sys/androidmedia/gstamc-constants.h
+++ b/sys/androidmedia/gstamc-constants.h
@@ -118,6 +118,41 @@
 
 enum
 {
+  HEVCProfileMain    = 0x01,
+  HEVCProfileMain10  = 0x02
+};
+
+enum
+{
+  HEVCMainTierLevel1  = 0x1,
+  HEVCHighTierLevel1  = 0x2,
+  HEVCMainTierLevel2  = 0x4,
+  HEVCHighTierLevel2  = 0x8,
+  HEVCMainTierLevel21 = 0x10,
+  HEVCHighTierLevel21 = 0x20,
+  HEVCMainTierLevel3  = 0x40,
+  HEVCHighTierLevel3  = 0x80,
+  HEVCMainTierLevel31 = 0x100,
+  HEVCHighTierLevel31 = 0x200,
+  HEVCMainTierLevel4  = 0x400,
+  HEVCHighTierLevel4  = 0x800,
+  HEVCMainTierLevel41 = 0x1000,
+  HEVCHighTierLevel41 = 0x2000,
+  HEVCMainTierLevel5  = 0x4000,
+  HEVCHighTierLevel5  = 0x8000,
+  HEVCMainTierLevel51 = 0x10000,
+  HEVCHighTierLevel51 = 0x20000,
+  HEVCMainTierLevel52 = 0x40000,
+  HEVCHighTierLevel52 = 0x80000,
+  HEVCMainTierLevel6  = 0x100000,
+  HEVCHighTierLevel6  = 0x200000,
+  HEVCMainTierLevel61 = 0x400000,
+  HEVCHighTierLevel61 = 0x800000,
+  HEVCMainTierLevel62 = 0x1000000
+};
+
+enum
+{
   AVCProfileBaseline = 0x01,
   AVCProfileMain = 0x02,
   AVCProfileExtended = 0x04,
diff --git a/sys/androidmedia/gstamc.c b/sys/androidmedia/gstamc.c
index 862e74f..88dc968 100644
--- a/sys/androidmedia/gstamc.c
+++ b/sys/androidmedia/gstamc.c
@@ -962,7 +962,7 @@
     goto done;
 
   *data = (*env)->GetDirectBufferAddress (env, v);
-  if (!data) {
+  if (*data == NULL) {
     gst_amc_jni_set_error (env, err, GST_LIBRARY_ERROR,
         GST_LIBRARY_ERROR_FAILED, "Failed get buffer address");
     goto done;
@@ -2539,6 +2539,109 @@
 {
   gint id;
   const gchar *str;
+} hevc_profile_mapping_table[] = {
+  {
+  HEVCProfileMain, "main"}, {
+  HEVCProfileMain10, "main-10"}
+};
+
+const gchar *
+gst_amc_hevc_profile_to_string (gint profile)
+{
+  gint i;
+
+  for (i = 0; i < G_N_ELEMENTS (hevc_profile_mapping_table); i++) {
+    if (hevc_profile_mapping_table[i].id == profile) {
+      return hevc_profile_mapping_table[i].str;
+    }
+  }
+
+  return NULL;
+}
+
+gint
+gst_amc_hevc_profile_from_string (const gchar * profile)
+{
+  gint i;
+
+  g_return_val_if_fail (profile != NULL, -1);
+
+  for (i = 0; i < G_N_ELEMENTS (hevc_profile_mapping_table); i++) {
+    if (strcmp (hevc_profile_mapping_table[i].str, profile) == 0)
+      return hevc_profile_mapping_table[i].id;
+  }
+
+  return -1;
+}
+
+static const struct
+{
+  gint id;
+  const gchar *tier_str;
+  const gchar *level_str;
+} hevc_tier_level_mapping_table[] = {
+  {
+  HEVCMainTierLevel1, "main", "1"}, {
+  HEVCMainTierLevel2, "main", "2"}, {
+  HEVCMainTierLevel21, "main", "2.1"}, {
+  HEVCMainTierLevel3, "main", "3"}, {
+  HEVCMainTierLevel31, "main", "3.1"}, {
+  HEVCMainTierLevel4, "main", "4"}, {
+  HEVCMainTierLevel41, "main", "4.1"}, {
+  HEVCMainTierLevel5, "main", "5"}, {
+  HEVCMainTierLevel51, "main", "5.1"}, {
+  HEVCMainTierLevel52, "main", "5.2"}, {
+  HEVCMainTierLevel6, "main", "6"}, {
+  HEVCMainTierLevel61, "main", "6.1"}, {
+  HEVCMainTierLevel62, "main", "6.2"}, {
+  HEVCHighTierLevel1, "high", "1"}, {
+  HEVCHighTierLevel2, "high", "2"}, {
+  HEVCHighTierLevel21, "high", "2.1"}, {
+  HEVCHighTierLevel3, "high", "3"}, {
+  HEVCHighTierLevel31, "high", "3.1"}, {
+  HEVCHighTierLevel4, "high", "4"}, {
+  HEVCHighTierLevel41, "high", "4.1"}, {
+  HEVCHighTierLevel5, "high", "5"}, {
+  HEVCHighTierLevel51, "high", "5.1"}, {
+  HEVCHighTierLevel52, "high", "5.2"}, {
+  HEVCHighTierLevel6, "high", "6"}, {
+  HEVCHighTierLevel61, "high", "6.1"}
+};
+
+const gchar *
+gst_amc_hevc_tier_level_to_string (gint tier_level, const gchar ** tier)
+{
+  gint i;
+
+  for (i = 0; i < G_N_ELEMENTS (hevc_tier_level_mapping_table); i++) {
+    if (hevc_tier_level_mapping_table[i].id == tier_level)
+      *tier = hevc_tier_level_mapping_table[i].tier_str;
+    return hevc_tier_level_mapping_table[i].level_str;
+  }
+
+  return NULL;
+}
+
+gint
+gst_amc_hevc_tier_level_from_string (const gchar * tier, const gchar * level)
+{
+  gint i;
+
+  g_return_val_if_fail (level != NULL, -1);
+
+  for (i = 0; i < G_N_ELEMENTS (hevc_tier_level_mapping_table); i++) {
+    if (strcmp (hevc_tier_level_mapping_table[i].tier_str, tier) == 0 &&
+        strcmp (hevc_tier_level_mapping_table[i].level_str, level) == 0)
+      return hevc_tier_level_mapping_table[i].id;
+  }
+
+  return -1;
+}
+
+static const struct
+{
+  gint id;
+  const gchar *str;
   const gchar *alt_str;
 } avc_profile_mapping_table[] = {
   {
@@ -2757,7 +2860,7 @@
 }
 
 gint
-gst_amc_avc_mpeg4_profile_from_string (const gchar * profile)
+gst_amc_mpeg4_profile_from_string (const gchar * profile)
 {
   gint i;
 
@@ -3582,6 +3685,74 @@
           } else {
             gst_structure_free (tmp);
           }
+        } else if (strcmp (type->mime, "video/hevc") == 0) {
+          gint j;
+          gboolean have_profile_level = FALSE;
+
+          tmp = gst_structure_new ("video/x-h265",
+              "width", GST_TYPE_INT_RANGE, 16, 4096,
+              "height", GST_TYPE_INT_RANGE, 16, 4096,
+              "framerate", GST_TYPE_FRACTION_RANGE,
+              0, 1, G_MAXINT, 1,
+              "parsed", G_TYPE_BOOLEAN, TRUE,
+              "stream-format", G_TYPE_STRING, "byte-stream",
+              "alignment", G_TYPE_STRING, "au", NULL);
+
+          if (type->n_profile_levels) {
+            for (j = type->n_profile_levels - 1; j >= 0; j--) {
+              const gchar *profile;
+
+              profile =
+                  gst_amc_hevc_profile_to_string (type->profile_levels[j].
+                  profile);
+
+              if (!profile) {
+                GST_ERROR ("Unable to map H265 profile 0x%08x",
+                    type->profile_levels[j].profile);
+                continue;
+              }
+
+              tmp2 = gst_structure_copy (tmp);
+              gst_structure_set (tmp2, "profile", G_TYPE_STRING, profile, NULL);
+
+              /* FIXME: Implement tier/level support here */
+#if 0
+              if (codec_info->is_encoder) {
+                const gchar *level, *tier;
+                gint k;
+                GValue va = { 0, };
+                GValue v = { 0, };
+
+                g_value_init (&va, GST_TYPE_LIST);
+                g_value_init (&v, G_TYPE_STRING);
+                for (k = 1; k <= type->profile_levels[j].level && k != 0;
+                    k <<= 1) {
+                  level = gst_amc_hevc_tier_level_to_string (k, &tier);
+                  if (!level)
+                    continue;
+
+                  g_value_set_string (&v, level);
+                  gst_value_list_append_value (&va, &v);
+                  g_value_reset (&v);
+                }
+
+                gst_structure_set_value (tmp2, "level", &va);
+
+                g_value_unset (&va);
+                g_value_unset (&v);
+              }
+#endif
+
+              encoded_ret = gst_caps_merge_structure (encoded_ret, tmp2);
+              have_profile_level = TRUE;
+            }
+          }
+
+          if (!have_profile_level) {
+            encoded_ret = gst_caps_merge_structure (encoded_ret, tmp);
+          } else {
+            gst_structure_free (tmp);
+          }
         } else if (strcmp (type->mime, "video/x-vnd.on2.vp8") == 0) {
           tmp = gst_structure_new ("video/x-vp8",
               "width", GST_TYPE_INT_RANGE, 16, 4096,
diff --git a/sys/androidmedia/gstamc.h b/sys/androidmedia/gstamc.h
index 88d49fb..a3fb9bc 100644
--- a/sys/androidmedia/gstamc.h
+++ b/sys/androidmedia/gstamc.h
@@ -147,12 +147,16 @@
 gint gst_amc_avc_profile_from_string (const gchar *profile);
 const gchar * gst_amc_avc_level_to_string (gint level);
 gint gst_amc_avc_level_from_string (const gchar *level);
+const gchar * gst_amc_hevc_profile_to_string (gint profile);
+gint gst_amc_hevc_profile_from_string (const gchar *profile);
+const gchar * gst_amc_hevc_tier_level_to_string (gint tier_level, const gchar ** tier);
+gint gst_amc_hevc_tier_level_from_string (const gchar * tier, const gchar *level);
 gint gst_amc_h263_profile_to_gst_id (gint profile);
 gint gst_amc_h263_profile_from_gst_id (gint profile);
 gint gst_amc_h263_level_to_gst_id (gint level);
 gint gst_amc_h263_level_from_gst_id (gint level);
 const gchar * gst_amc_mpeg4_profile_to_string (gint profile);
-gint gst_amc_avc_mpeg4_profile_from_string (const gchar *profile);
+gint gst_amc_mpeg4_profile_from_string (const gchar *profile);
 const gchar * gst_amc_mpeg4_level_to_string (gint level);
 gint gst_amc_mpeg4_level_from_string (const gchar *level);
 const gchar * gst_amc_aac_profile_to_string (gint profile);
diff --git a/sys/androidmedia/gstamcvideodec.c b/sys/androidmedia/gstamcvideodec.c
index 33bed1c..eb30e7a 100644
--- a/sys/androidmedia/gstamcvideodec.c
+++ b/sys/androidmedia/gstamcvideodec.c
@@ -172,6 +172,8 @@
     return "video/3gpp";
   } else if (strcmp (name, "video/x-h264") == 0) {
     return "video/avc";
+  } else if (strcmp (name, "video/x-h265") == 0) {
+    return "video/hevc";
   } else if (strcmp (name, "video/x-vp8") == 0) {
     return "video/x-vnd.on2.vp8";
   } else if (strcmp (name, "video/x-divx") == 0) {
diff --git a/sys/androidmedia/gstamcvideoenc.c b/sys/androidmedia/gstamcvideoenc.c
index 8a6dd44..4a42a30 100644
--- a/sys/androidmedia/gstamcvideoenc.c
+++ b/sys/androidmedia/gstamcvideoenc.c
@@ -185,7 +185,7 @@
 
       if (profile_string) {
         amc_profile.key = "profile";    /* named profile ? */
-        amc_profile.id = gst_amc_avc_mpeg4_profile_from_string (profile_string);
+        amc_profile.id = gst_amc_mpeg4_profile_from_string (profile_string);
       }
 
       if (level_string) {
@@ -261,9 +261,8 @@
     /* gst_amc_format_set_int (format, amc_level.key, amc_level.id); */
   }
 
-  if (encoder->i_frame_int)
-    gst_amc_format_set_int (format, "i-frame-interval", encoder->i_frame_int,
-        &err);
+  gst_amc_format_set_int (format, "i-frame-interval", encoder->i_frame_int,
+      &err);
   if (err)
     GST_ELEMENT_WARNING_FROM_ERROR (encoder, err);
 
diff --git a/sys/androidmedia/gstjniutils.c b/sys/androidmedia/gstjniutils.c
index b21ae51..f936027 100644
--- a/sys/androidmedia/gstjniutils.c
+++ b/sys/androidmedia/gstjniutils.c
@@ -630,7 +630,7 @@
 
   if (java_vm) {
     GST_DEBUG ("Java VM already provided by the application");
-    return TRUE;
+    return initialize_classes ();
   }
 
   /* Returns TRUE if we can safely
diff --git a/sys/applemedia-nonpublic/Makefile.in b/sys/applemedia-nonpublic/Makefile.in
index 8b2d201..0af28ae 100644
--- a/sys/applemedia-nonpublic/Makefile.in
+++ b/sys/applemedia-nonpublic/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -90,8 +100,6 @@
 @HAVE_IOS_FALSE@	mioapi.c
 
 subdir = sys/applemedia-nonpublic
-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 \
@@ -129,6 +137,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -269,6 +279,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -286,8 +297,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -316,8 +325,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -365,11 +372,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -553,6 +563,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -631,7 +642,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -671,6 +687,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -849,7 +866,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu sys/applemedia-nonpublic/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu sys/applemedia-nonpublic/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1246,6 +1262,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/sys/applemedia/Makefile.in b/sys/applemedia/Makefile.in
index dc71579..27d405d 100644
--- a/sys/applemedia/Makefile.in
+++ b/sys/applemedia/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -109,8 +119,6 @@
 
 @HAVE_VIDEOTOOLBOX_TRUE@am__append_9 = -Wl,-weak_framework -Wl,VideoToolbox
 subdir = sys/applemedia
-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 \
@@ -148,6 +156,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -292,6 +302,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -309,8 +320,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -339,8 +348,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -388,11 +395,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -576,6 +586,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -654,7 +665,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -694,6 +710,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -867,7 +884,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu sys/applemedia/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu sys/applemedia/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1296,6 +1312,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/sys/applemedia/avsamplevideosink.m b/sys/applemedia/avsamplevideosink.m
index 199e659..610b40a 100644
--- a/sys/applemedia/avsamplevideosink.m
+++ b/sys/applemedia/avsamplevideosink.m
@@ -157,10 +157,11 @@
 gst_av_sample_video_sink_finalize (GObject * object)
 {
   GstAVSampleVideoSink *av_sink = GST_AV_SAMPLE_VIDEO_SINK (object);
+  __block AVSampleBufferDisplayLayer *layer = av_sink->layer;
 
-  if (av_sink->layer) {
+  if (layer) {
     dispatch_async (dispatch_get_main_queue (), ^{
-      [av_sink->layer release];
+      [layer release];
     });
   }
 
@@ -748,11 +749,13 @@
     _request_data (av_sink);
   g_mutex_unlock (&av_sink->render_lock);
 
+#if defined(MAC_OS_X_VERSION_MAX_ALLOWED) && MAC_OS_X_VERSION_MAX_ALLOWED >= 1010
   if ([av_sink->layer status] == AVQueuedSampleBufferRenderingStatusFailed) {
     GST_ERROR_OBJECT (av_sink, "failed to enqueue buffer on layer, %s",
         [[[av_sink->layer error] description] UTF8String]);
     return GST_FLOW_ERROR;
   }
+#endif
 
   return ret;
 }
diff --git a/sys/applemedia/coremediabuffer.c b/sys/applemedia/coremediabuffer.c
index 1070da5..681fe14 100644
--- a/sys/applemedia/coremediabuffer.c
+++ b/sys/applemedia/coremediabuffer.c
@@ -152,18 +152,24 @@
 {
   OSStatus status;
   gchar *data = NULL;
-  UInt32 size;
+  size_t offset = 0, length_at_offset, total_length;
 
-  status = CMBlockBufferGetDataPointer (block_buf, 0, 0, 0, &data);
-  if (status != noErr) {
-    return FALSE;
-  }
+  /* CMBlockBuffer can contain multiple non-continuous memory blocks */
+  do {
+    status =
+        CMBlockBufferGetDataPointer (block_buf, offset, &length_at_offset,
+        &total_length, &data);
+    if (status != kCMBlockBufferNoErr) {
+      return FALSE;
+    }
 
-  size = CMBlockBufferGetDataLength (block_buf);
+    /* retaining the CMBlockBuffer so it won't go away for the lifetime of the GstMemory */
+    gst_buffer_append_memory (buf,
+        gst_memory_new_wrapped (0, data, length_at_offset, 0, length_at_offset,
+            (gpointer) CFRetain (block_buf), (GDestroyNotify) CFRelease));
 
-  gst_buffer_append_memory (buf,
-      gst_memory_new_wrapped (GST_MEMORY_FLAG_NO_SHARE, data,
-          size, 0, size, NULL, NULL));
+    offset += length_at_offset;
+  } while (offset < total_length);
 
   return TRUE;
 }
diff --git a/sys/applemedia/iosassetsrc.m b/sys/applemedia/iosassetsrc.m
index 53422ba..9cf7498 100644
--- a/sys/applemedia/iosassetsrc.m
+++ b/sys/applemedia/iosassetsrc.m
@@ -29,7 +29,7 @@
  * <refsect2>
  * <title>Example launch line</title>
  * |[
- * gst-launch iosassetsrc uri=assets-library://asset/asset.M4V?id=11&ext=M4V ! decodebin2 ! autoaudiosink
+ * gst-launch iosassetsrc uri=assets-library://asset/asset.M4V?id=11&ext=M4V ! decodebin ! autoaudiosink
  * ]| Plays asset with id a song.ogg from local dir.
  * </refsect2>
  */
diff --git a/sys/applemedia/vtdec.c b/sys/applemedia/vtdec.c
index d77c4f1..6a6240b 100644
--- a/sys/applemedia/vtdec.c
+++ b/sys/applemedia/vtdec.c
@@ -543,31 +543,92 @@
     return NULL;
 }
 
+/* Custom FreeBlock function for CMBlockBuffer */
+static void
+cm_block_buffer_freeblock (void *refCon, void *doomedMemoryBlock,
+    size_t sizeInBytes)
+{
+  GstMapInfo *info = (GstMapInfo *) refCon;
+
+  gst_memory_unmap (info->memory, info);
+  gst_memory_unref (info->memory);
+  g_slice_free (GstMapInfo, info);
+}
+
+static CMBlockBufferRef
+cm_block_buffer_from_gst_buffer (GstBuffer * buf, GstMapFlags flags)
+{
+  OSStatus status;
+  CMBlockBufferRef bbuf;
+  CMBlockBufferCustomBlockSource blockSource;
+  guint memcount, i;
+
+  /* Initialize custom block source structure */
+  blockSource.version = kCMBlockBufferCustomBlockSourceVersion;
+  blockSource.AllocateBlock = NULL;
+  blockSource.FreeBlock = cm_block_buffer_freeblock;
+
+  /* Determine number of memory blocks */
+  memcount = gst_buffer_n_memory (buf);
+  status = CMBlockBufferCreateEmpty (NULL, memcount, 0, &bbuf);
+  if (status != kCMBlockBufferNoErr) {
+    GST_ERROR ("CMBlockBufferCreateEmpty returned %d", (int) status);
+    return NULL;
+  }
+
+  /* Go over all GstMemory objects and add them to the CMBlockBuffer */
+  for (i = 0; i < memcount; ++i) {
+    GstMemory *mem;
+    GstMapInfo *info;
+
+    mem = gst_buffer_get_memory (buf, i);
+
+    info = g_slice_new (GstMapInfo);
+    if (!gst_memory_map (mem, info, flags)) {
+      GST_ERROR ("failed mapping memory");
+      g_slice_free (GstMapInfo, info);
+      gst_memory_unref (mem);
+      CFRelease (bbuf);
+      return NULL;
+    }
+
+    blockSource.refCon = info;
+    status =
+        CMBlockBufferAppendMemoryBlock (bbuf, info->data, info->size, NULL,
+        &blockSource, 0, info->size, 0);
+    if (status != kCMBlockBufferNoErr) {
+      GST_ERROR ("CMBlockBufferAppendMemoryBlock returned %d", (int) status);
+      gst_memory_unmap (mem, info);
+      g_slice_free (GstMapInfo, info);
+      gst_memory_unref (mem);
+      CFRelease (bbuf);
+      return NULL;
+    }
+  }
+
+  return bbuf;
+}
+
 static CMSampleBufferRef
 cm_sample_buffer_from_gst_buffer (GstVtdec * vtdec, GstBuffer * buf)
 {
   OSStatus status;
   CMBlockBufferRef bbuf = NULL;
   CMSampleBufferRef sbuf = NULL;
-  GstMapInfo map;
   CMSampleTimingInfo sample_timing;
   CMSampleTimingInfo time_array[1];
 
   g_return_val_if_fail (vtdec->format_description, NULL);
 
-  gst_buffer_map (buf, &map, GST_MAP_READ);
+  /* create a block buffer */
+  bbuf = cm_block_buffer_from_gst_buffer (buf, GST_MAP_READ);
+  if (bbuf == NULL) {
+    GST_ELEMENT_ERROR (vtdec, RESOURCE, FAILED, (NULL),
+        ("failed creating CMBlockBuffer"));
+    return NULL;
+  }
 
-  /* create a block buffer,  the CoreMedia equivalent of GstMemory */
-  status = CMBlockBufferCreateWithMemoryBlock (NULL,
-      map.data, (gint64) map.size, kCFAllocatorNull, NULL, 0, (gint64) map.size,
-      FALSE, &bbuf);
-
-  gst_buffer_unmap (buf, &map);
-
-  if (status != noErr)
-    goto block_error;
-
-  /* create a sample buffer, the CoreMedia equivalent of GstBuffer */
+  /* create a sample buffer */
   if (GST_BUFFER_DURATION_IS_VALID (buf))
     sample_timing.duration = CMTimeMake (GST_BUFFER_DURATION (buf), GST_SECOND);
   else
@@ -591,25 +652,13 @@
       CMSampleBufferCreate (NULL, bbuf, TRUE, 0, 0, vtdec->format_description,
       1, 1, time_array, 0, NULL, &sbuf);
   CFRelease (bbuf);
-  if (status != noErr)
-    goto sample_error;
+  if (status != noErr) {
+    GST_ELEMENT_ERROR (vtdec, RESOURCE, FAILED, (NULL),
+        ("CMSampleBufferCreate returned %d", (int) status));
+    return NULL;
+  }
 
-out:
   return sbuf;
-
-block_error:
-  GST_ELEMENT_ERROR (vtdec, RESOURCE, FAILED, (NULL),
-      ("CMBlockBufferCreateWithMemoryBlock returned %d", (int) status));
-  goto out;
-
-sample_error:
-  GST_ELEMENT_ERROR (vtdec, RESOURCE, FAILED, (NULL),
-      ("CMSampleBufferCreate returned %d", (int) status));
-
-  if (bbuf)
-    CFRelease (bbuf);
-
-  goto out;
 }
 
 static gint
diff --git a/sys/avc/Makefile.in b/sys/avc/Makefile.in
index 21b415b..b69c6d1 100644
--- a/sys/avc/Makefile.in
+++ b/sys/avc/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = sys/avc
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -228,6 +238,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -245,8 +256,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -275,8 +284,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -324,11 +331,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -512,6 +522,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -590,7 +601,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -630,6 +646,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -776,7 +793,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu sys/avc/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu sys/avc/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1093,6 +1109,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/sys/bluez/Makefile.am b/sys/bluez/Makefile.am
index cc90176..c6b13db 100644
--- a/sys/bluez/Makefile.am
+++ b/sys/bluez/Makefile.am
@@ -7,18 +7,23 @@
 	gstavdtpsrc.c \
 	gstavdtputil.c
 
+nodist_libgstbluez_la_SOURCES = \
+	$(BUILT_SOURCES)
+
 libgstbluez_la_CFLAGS = $(GST_PLUGINS_BAD_CFLAGS) \
 	$(GST_PLUGINS_BASE_CFLAGS) \
 	$(GST_BASE_CFLAGS) \
 	$(GST_CFLAGS) \
-	$(DBUS_CFLAGS)
+	$(GIO_CFLAGS) \
+	$(GIO_UNIX_CFLAGS)
 libgstbluez_la_LIBADD = \
 	$(GST_PLUGINS_BASE_LIBS) \
 	-lgstaudio-$(GST_API_VERSION) \
 	-lgstrtp-$(GST_API_VERSION) \
 	$(GST_BASE_LIBS) \
 	$(GST_LIBS) \
-	$(DBUS_LIBS)
+	$(GIO_LIBS) \
+	$(GIO_UNIX_LIBS)
 libgstbluez_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
 libgstbluez_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 
@@ -28,3 +33,19 @@
 	gstavdtpsink.h \
 	gstavdtpsrc.h \
 	gstavdtputil.h
+
+BUILT_SOURCES = \
+	bluez.h \
+	bluez.c
+
+CLEANFILES = $(BUILT_SOURCES)
+
+EXTRA_DIST = org.bluez.xml
+
+bluez.h: bluez.c
+bluez.c: org.bluez.xml
+	$(AM_V_GEN) $(GDBUS_CODEGEN) \
+        --c-namespace=Bluez \
+        --generate-c-code=bluez \
+        --interface-prefix=org.bluez \
+        $<
diff --git a/sys/bluez/Makefile.in b/sys/bluez/Makefile.in
index 422c462..8cbf7cb 100644
--- a/sys/bluez/Makefile.in
+++ b/sys/bluez/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = sys/bluez
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -156,11 +166,14 @@
 am__DEPENDENCIES_1 =
 libgstbluez_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
-	$(am__DEPENDENCIES_1)
+	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
 am_libgstbluez_la_OBJECTS = libgstbluez_la-bluez-plugin.lo \
 	libgstbluez_la-gsta2dpsink.lo libgstbluez_la-gstavdtpsink.lo \
 	libgstbluez_la-gstavdtpsrc.lo libgstbluez_la-gstavdtputil.lo
-libgstbluez_la_OBJECTS = $(am_libgstbluez_la_OBJECTS)
+am__objects_1 = libgstbluez_la-bluez.lo
+nodist_libgstbluez_la_OBJECTS = $(am__objects_1)
+libgstbluez_la_OBJECTS = $(am_libgstbluez_la_OBJECTS) \
+	$(nodist_libgstbluez_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
@@ -203,7 +216,7 @@
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD    " $@;
 am__v_CCLD_1 = 
-SOURCES = $(libgstbluez_la_SOURCES)
+SOURCES = $(libgstbluez_la_SOURCES) $(nodist_libgstbluez_la_SOURCES)
 DIST_SOURCES = $(libgstbluez_la_SOURCES)
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
@@ -230,6 +243,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -247,8 +261,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -277,8 +289,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -326,11 +336,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -514,6 +527,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -592,7 +606,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -632,6 +651,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -748,11 +768,15 @@
 	gstavdtpsrc.c \
 	gstavdtputil.c
 
+nodist_libgstbluez_la_SOURCES = \
+	$(BUILT_SOURCES)
+
 libgstbluez_la_CFLAGS = $(GST_PLUGINS_BAD_CFLAGS) \
 	$(GST_PLUGINS_BASE_CFLAGS) \
 	$(GST_BASE_CFLAGS) \
 	$(GST_CFLAGS) \
-	$(DBUS_CFLAGS)
+	$(GIO_CFLAGS) \
+	$(GIO_UNIX_CFLAGS)
 
 libgstbluez_la_LIBADD = \
 	$(GST_PLUGINS_BASE_LIBS) \
@@ -760,7 +784,8 @@
 	-lgstrtp-$(GST_API_VERSION) \
 	$(GST_BASE_LIBS) \
 	$(GST_LIBS) \
-	$(DBUS_LIBS)
+	$(GIO_LIBS) \
+	$(GIO_UNIX_LIBS)
 
 libgstbluez_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
 libgstbluez_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
@@ -771,7 +796,14 @@
 	gstavdtpsrc.h \
 	gstavdtputil.h
 
-all: all-am
+BUILT_SOURCES = \
+	bluez.h \
+	bluez.c
+
+CLEANFILES = $(BUILT_SOURCES)
+EXTRA_DIST = org.bluez.xml
+all: $(BUILT_SOURCES)
+	$(MAKE) $(AM_MAKEFLAGS) all-am
 
 .SUFFIXES:
 .SUFFIXES: .c .lo .o .obj
@@ -787,7 +819,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu sys/bluez/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu sys/bluez/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -851,6 +882,7 @@
 	-rm -f *.tab.c
 
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstbluez_la-bluez-plugin.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstbluez_la-bluez.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstbluez_la-gsta2dpsink.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstbluez_la-gstavdtpsink.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstbluez_la-gstavdtpsrc.Plo@am__quote@
@@ -915,6 +947,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 $(libgstbluez_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstbluez_la_CFLAGS) $(CFLAGS) -c -o libgstbluez_la-gstavdtputil.lo `test -f 'gstavdtputil.c' || echo '$(srcdir)/'`gstavdtputil.c
 
+libgstbluez_la-bluez.lo: bluez.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstbluez_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstbluez_la_CFLAGS) $(CFLAGS) -MT libgstbluez_la-bluez.lo -MD -MP -MF $(DEPDIR)/libgstbluez_la-bluez.Tpo -c -o libgstbluez_la-bluez.lo `test -f 'bluez.c' || echo '$(srcdir)/'`bluez.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstbluez_la-bluez.Tpo $(DEPDIR)/libgstbluez_la-bluez.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='bluez.c' object='libgstbluez_la-bluez.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 $(libgstbluez_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstbluez_la_CFLAGS) $(CFLAGS) -c -o libgstbluez_la-bluez.lo `test -f 'bluez.c' || echo '$(srcdir)/'`bluez.c
+
 mostlyclean-libtool:
 	-rm -f *.lo
 
@@ -1004,13 +1043,15 @@
 	  fi; \
 	done
 check-am: all-am
-check: check-am
+check: $(BUILT_SOURCES)
+	$(MAKE) $(AM_MAKEFLAGS) check-am
 all-am: Makefile $(LTLIBRARIES) $(HEADERS)
 installdirs:
 	for dir in "$(DESTDIR)$(plugindir)"; do \
 	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
 	done
-install: install-am
+install: $(BUILT_SOURCES)
+	$(MAKE) $(AM_MAKEFLAGS) install-am
 install-exec: install-exec-am
 install-data: install-data-am
 uninstall: uninstall-am
@@ -1032,6 +1073,7 @@
 mostlyclean-generic:
 
 clean-generic:
+	-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
 
 distclean-generic:
 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
@@ -1040,6 +1082,7 @@
 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-pluginLTLIBRARIES \
@@ -1111,7 +1154,7 @@
 
 uninstall-am: uninstall-pluginLTLIBRARIES
 
-.MAKE: install-am install-strip
+.MAKE: all check install install-am install-strip
 
 .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
 	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
@@ -1128,6 +1171,16 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
+
+bluez.h: bluez.c
+bluez.c: org.bluez.xml
+	$(AM_V_GEN) $(GDBUS_CODEGEN) \
+        --c-namespace=Bluez \
+        --generate-c-code=bluez \
+        --interface-prefix=org.bluez \
+        $<
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/sys/bluez/gstavdtpsink.c b/sys/bluez/gstavdtpsink.c
index b549caa..70dc742 100644
--- a/sys/bluez/gstavdtpsink.c
+++ b/sys/bluez/gstavdtpsink.c
@@ -34,8 +34,6 @@
 #include <fcntl.h>
 #include <netinet/in.h>
 
-#include <dbus/dbus.h>
-
 #include "a2dp-codecs.h"
 
 #include "gstavdtpsink.h"
@@ -263,7 +261,7 @@
   if (self->conn.transport == NULL)
     return FALSE;
 
-  if (!gst_avdtp_connection_acquire (&self->conn)) {
+  if (!gst_avdtp_connection_acquire (&self->conn, FALSE)) {
     GST_ERROR_OBJECT (self, "Failed to acquire connection");
     return FALSE;
   }
diff --git a/sys/bluez/gstavdtpsrc.c b/sys/bluez/gstavdtpsrc.c
index 311c407..fee5505 100644
--- a/sys/bluez/gstavdtpsrc.c
+++ b/sys/bluez/gstavdtpsrc.c
@@ -39,7 +39,7 @@
 enum
 {
   PROP_0,
-  PROP_TRANSPORT
+  PROP_TRANSPORT,
 };
 
 #define parent_class gst_avdtp_src_parent_class
@@ -199,7 +199,7 @@
       value = gst_structure_get_value (structure, "mpegversion");
       if (!value || !G_VALUE_HOLDS_INT (value)) {
         GST_ERROR_OBJECT (avdtpsrc, "Failed to get mpegversion");
-        goto fail;
+        return NULL;
       }
       gst_caps_set_simple (caps, "mpegversion", G_TYPE_INT,
           g_value_get_int (value), NULL);
@@ -207,7 +207,7 @@
       value = gst_structure_get_value (structure, "channels");
       if (!value || !G_VALUE_HOLDS_INT (value)) {
         GST_ERROR_OBJECT (avdtpsrc, "Failed to get channels");
-        goto fail;
+        return NULL;
       }
       gst_caps_set_simple (caps, "channels", G_TYPE_INT,
           g_value_get_int (value), NULL);
@@ -215,7 +215,7 @@
       value = gst_structure_get_value (structure, "base-profile");
       if (!value || !G_VALUE_HOLDS_STRING (value)) {
         GST_ERROR_OBJECT (avdtpsrc, "Failed to get base-profile");
-        goto fail;
+        return NULL;
       }
       gst_caps_set_simple (caps, "base-profile", G_TYPE_STRING,
           g_value_get_string (value), NULL);
@@ -228,7 +228,7 @@
     value = gst_structure_get_value (structure, "rate");
     if (!value || !G_VALUE_HOLDS_INT (value)) {
       GST_ERROR_OBJECT (avdtpsrc, "Failed to get sample rate");
-      goto fail;
+      return NULL;
     }
     rate = g_value_get_int (value);
 
@@ -245,12 +245,6 @@
   }
 
   return ret;
-
-fail:
-  if (ret)
-    gst_caps_unref (ret);
-
-  return NULL;
 }
 
 static gboolean
@@ -262,7 +256,7 @@
    * connection to figure out what format the device is going to send us.
    */
 
-  if (!gst_avdtp_connection_acquire (&avdtpsrc->conn)) {
+  if (!gst_avdtp_connection_acquire (&avdtpsrc->conn, FALSE)) {
     GST_ERROR_OBJECT (avdtpsrc, "Failed to acquire connection");
     return FALSE;
   }
diff --git a/sys/bluez/gstavdtputil.c b/sys/bluez/gstavdtputil.c
index 787a063..52a90a5 100644
--- a/sys/bluez/gstavdtputil.c
+++ b/sys/bluez/gstavdtputil.c
@@ -36,98 +36,131 @@
 #include <bluetooth/bluetooth.h>
 #include "a2dp-codecs.h"
 
+#include <gio/gunixfdlist.h>
 #include <gst/gst.h>
 #include "gstavdtputil.h"
+#include "bluez.h"
 
 #define TEMPLATE_MAX_BITPOOL 64
 
 GST_DEBUG_CATEGORY_EXTERN (avdtp_debug);
 #define GST_CAT_DEFAULT avdtp_debug
 
-gboolean
-gst_avdtp_connection_acquire (GstAvdtpConnection * conn)
+static void gst_avdtp_connection_transport_release (GstAvdtpConnection * conn);
+
+static gboolean
+on_state_change (BluezMediaTransport1 * proxy, GParamSpec * pspec,
+    GstAvdtpConnection * conn)
 {
-  DBusMessage *msg, *reply;
-  DBusError err;
-#ifdef HAVE_BLUEZ4
-  const char *access_type = "rw";
-#endif
+  const gchar *newstate;
+  gboolean is_idle;
+
+  newstate = bluez_media_transport1_get_state (proxy);
+  is_idle = g_str_equal (newstate, "idle");
+
+  if (!conn->data.is_acquired && !is_idle) {
+    GST_DEBUG ("Re-acquiring connection");
+    gst_avdtp_connection_acquire (conn, TRUE);
+
+  } else if (is_idle) {
+    /* We don't know if we need to release the transport -- that may have been
+     * done for us by bluez already! Or not ... so release it just in case, but
+     * mark its stale beforehand to suppress any errors. */
+    GST_DEBUG ("Marking connection stale");
+    conn->data.is_acquired = FALSE;
+    gst_avdtp_connection_transport_release (conn);
+
+  } else
+    GST_DEBUG ("State is %s, acquired is %s", newstate,
+        conn->data.is_acquired ? "true" : "false");
+
+  return TRUE;
+}
+
+gboolean
+gst_avdtp_connection_acquire (GstAvdtpConnection * conn, gboolean use_try)
+{
+  GVariant *handle = NULL;
+  GUnixFDList *fd_list = NULL;
+  GError *err = NULL;
   int fd;
   uint16_t imtu, omtu;
 
-  dbus_error_init (&err);
-
   if (conn->transport == NULL) {
     GST_ERROR ("No transport specified");
     return FALSE;
   }
 
-  if (conn->data.conn == NULL)
-    conn->data.conn = dbus_bus_get (DBUS_BUS_SYSTEM, &err);
+  if (conn->data.conn == NULL) {
+    conn->data.conn =
+        bluez_media_transport1_proxy_new_for_bus_sync (G_BUS_TYPE_SYSTEM,
+        G_DBUS_PROXY_FLAGS_NONE, "org.bluez", conn->transport, NULL, &err);
 
-#ifdef HAVE_BLUEZ4
-  msg = dbus_message_new_method_call ("org.bluez", conn->transport,
-      "org.bluez.MediaTransport", "Acquire");
+    if (conn->data.conn == NULL) {
+      GST_ERROR ("Failed to create proxy for media transport: %s",
+          err && err->message ? err->message : "Unknown error");
+      return FALSE;
+    }
 
-  dbus_message_append_args (msg, DBUS_TYPE_STRING, &access_type,
-      DBUS_TYPE_INVALID);
-#else
-  msg = dbus_message_new_method_call ("org.bluez", conn->transport,
-      "org.bluez.MediaTransport1", "Acquire");
-#endif
+    g_signal_connect (conn->data.conn, "notify::state",
+        G_CALLBACK (on_state_change), conn);
+  }
 
-  reply = dbus_connection_send_with_reply_and_block (conn->data.conn,
-      msg, -1, &err);
+  if (conn->data.is_acquired) {
+    GST_INFO ("Transport is already acquired");
+    return TRUE;
+  }
 
-  dbus_message_unref (msg);
+  if (use_try) {
+    if (!bluez_media_transport1_call_try_acquire_sync (conn->data.conn,
+            NULL, &handle, &imtu, &omtu, &fd_list, NULL, &err))
+      goto fail;
+  } else {
+    if (!bluez_media_transport1_call_acquire_sync (conn->data.conn,
+            NULL, &handle, &imtu, &omtu, &fd_list, NULL, &err))
+      goto fail;
+  }
 
-  if (dbus_error_is_set (&err))
+  fd = g_unix_fd_list_get (fd_list, g_variant_get_handle (handle), &err);
+  if (fd < 0)
     goto fail;
 
-  if (dbus_message_get_args (reply, &err, DBUS_TYPE_UNIX_FD, &fd,
-          DBUS_TYPE_UINT16, &imtu,
-          DBUS_TYPE_UINT16, &omtu, DBUS_TYPE_INVALID) == FALSE)
-    goto fail;
-
-  dbus_message_unref (reply);
-
+  g_variant_unref (handle);
+  g_object_unref (fd_list);
   conn->stream = g_io_channel_unix_new (fd);
   g_io_channel_set_encoding (conn->stream, NULL, NULL);
   g_io_channel_set_close_on_unref (conn->stream, TRUE);
   conn->data.link_mtu = omtu;
+  conn->data.is_acquired = TRUE;
 
   return TRUE;
 
 fail:
-  GST_ERROR ("Failed to acquire transport stream: %s", err.message);
+  GST_ERROR ("Failed to %s transport stream: %s", use_try ? "try_acquire" :
+      "acquire", err && err->message ? err->message : "unknown error");
 
-  dbus_error_free (&err);
+  g_clear_error (&err);
+  if (handle)
+    g_variant_unref (handle);
 
-  if (reply)
-    dbus_message_unref (reply);
-
+  conn->data.is_acquired = FALSE;
   return FALSE;
 }
 
 static void
 gst_avdtp_connection_transport_release (GstAvdtpConnection * conn)
 {
-  DBusMessage *msg;
-#ifdef HAVE_BLUEZ4
-  const char *access_type = "rw";
+  GError *err = NULL;
 
-  msg = dbus_message_new_method_call ("org.bluez", conn->transport,
-      "org.bluez.MediaTransport", "Release");
+  if (!bluez_media_transport1_call_release_sync (conn->data.conn, NULL, &err)) {
+    /* We don't care about errors if the transport was already marked stale */
+    if (!conn->data.is_acquired)
+      return;
 
-  dbus_message_append_args (msg, DBUS_TYPE_STRING, &access_type,
-      DBUS_TYPE_INVALID);
-#else
-  msg = dbus_message_new_method_call ("org.bluez", conn->transport,
-      "org.bluez.MediaTransport1", "Release");
-#endif
-  dbus_connection_send (conn->data.conn, msg, NULL);
-
-  dbus_message_unref (msg);
+    GST_ERROR ("Failed to release transport stream: %s", err->message ?
+        err->message : "unknown error");
+  }
+  conn->data.is_acquired = FALSE;
 }
 
 void
@@ -153,9 +186,7 @@
     if (conn->transport)
       gst_avdtp_connection_transport_release (conn);
 
-    dbus_connection_unref (conn->data.conn);
-
-    conn->data.conn = NULL;
+    g_clear_object (&conn->data.conn);
   }
 }
 
@@ -194,145 +225,22 @@
   conn->transport = g_strdup (transport);
 }
 
-static gboolean
-gst_avdtp_connection_parse_property (GstAvdtpConnection * conn,
-    DBusMessageIter * i)
-{
-  const char *key;
-  DBusMessageIter variant_i;
-
-  if (dbus_message_iter_get_arg_type (i) != DBUS_TYPE_STRING) {
-    GST_ERROR ("Property name not a string.");
-    return FALSE;
-  }
-
-  dbus_message_iter_get_basic (i, &key);
-
-  if (!dbus_message_iter_next (i)) {
-    GST_ERROR ("Property value missing");
-    return FALSE;
-  }
-
-  if (dbus_message_iter_get_arg_type (i) != DBUS_TYPE_VARIANT) {
-    GST_ERROR ("Property value not a variant.");
-    return FALSE;
-  }
-
-  dbus_message_iter_recurse (i, &variant_i);
-
-  switch (dbus_message_iter_get_arg_type (&variant_i)) {
-    case DBUS_TYPE_BYTE:{
-      uint8_t value;
-      dbus_message_iter_get_basic (&variant_i, &value);
-
-      if (g_str_equal (key, "Codec") == TRUE)
-        conn->data.codec = value;
-
-      break;
-    }
-    case DBUS_TYPE_STRING:{
-      const char *value;
-      dbus_message_iter_get_basic (&variant_i, &value);
-
-      if (g_str_equal (key, "UUID") == TRUE) {
-        g_free (conn->data.uuid);
-        conn->data.uuid = g_strdup (value);
-      }
-
-      break;
-    }
-    case DBUS_TYPE_ARRAY:{
-      DBusMessageIter array_i;
-      char *value;
-      int size;
-
-      dbus_message_iter_recurse (&variant_i, &array_i);
-      dbus_message_iter_get_fixed_array (&array_i, &value, &size);
-
-      if (g_str_equal (key, "Configuration")) {
-        g_free (conn->data.config);
-        conn->data.config = g_new0 (guint8, size);
-        conn->data.config_size = size;
-        memcpy (conn->data.config, value, size);
-      }
-
-      break;
-    }
-  }
-
-  return TRUE;
-}
-
 gboolean
 gst_avdtp_connection_get_properties (GstAvdtpConnection * conn)
 {
-  DBusMessage *msg, *reply;
-  DBusMessageIter arg_i, ele_i;
-  DBusError err;
-#ifndef HAVE_BLUEZ4
-  const char *interface;
-#endif
+  GVariant *var;
 
-  dbus_error_init (&err);
+  conn->data.codec = bluez_media_transport1_get_codec (conn->data.conn);
 
-#ifdef HAVE_BLUEZ4
-  msg = dbus_message_new_method_call ("org.bluez", conn->transport,
-      "org.bluez.MediaTransport", "GetProperties");
-#else
-  msg = dbus_message_new_method_call ("org.bluez", conn->transport,
-      "org.freedesktop.DBus.Properties", "GetAll");
-#endif
-  if (!msg) {
-    GST_ERROR ("D-Bus Memory allocation failed");
-    return FALSE;
-  }
-#ifndef HAVE_BLUEZ4
-  interface = "org.bluez.MediaTransport1";
-  dbus_message_append_args (msg, DBUS_TYPE_STRING, &interface,
-        DBUS_TYPE_INVALID);
-#endif
-  reply = dbus_connection_send_with_reply_and_block (conn->data.conn,
-      msg, -1, &err);
+  conn->data.uuid = bluez_media_transport1_dup_uuid (conn->data.conn);
 
-  dbus_message_unref (msg);
-
-  if (dbus_error_is_set (&err)) {
-    GST_ERROR ("GetProperties failed: %s", err.message);
-    dbus_error_free (&err);
-    return FALSE;
-  }
-
-  if (!dbus_message_iter_init (reply, &arg_i)) {
-    GST_ERROR ("GetProperties reply has no arguments.");
-    goto fail;
-  }
-
-  if (dbus_message_iter_get_arg_type (&arg_i) != DBUS_TYPE_ARRAY) {
-    GST_ERROR ("GetProperties argument is not an array.");
-    goto fail;
-  }
-
-  dbus_message_iter_recurse (&arg_i, &ele_i);
-  while (dbus_message_iter_get_arg_type (&ele_i) != DBUS_TYPE_INVALID) {
-
-    if (dbus_message_iter_get_arg_type (&ele_i) == DBUS_TYPE_DICT_ENTRY) {
-      DBusMessageIter dict_i;
-
-      dbus_message_iter_recurse (&ele_i, &dict_i);
-
-      gst_avdtp_connection_parse_property (conn, &dict_i);
-    }
-
-    if (!dbus_message_iter_next (&ele_i))
-      break;
-  }
+  var = bluez_media_transport1_dup_configuration (conn->data.conn);
+  conn->data.config_size = g_variant_get_size (var);
+  conn->data.config = g_new0 (guint8, conn->data.config_size);
+  g_variant_store (var, conn->data.config);
+  g_variant_unref (var);
 
   return TRUE;
-
-fail:
-  dbus_message_unref (reply);
-  return FALSE;
-
 }
 
 static GstStructure *
diff --git a/sys/bluez/gstavdtputil.h b/sys/bluez/gstavdtputil.h
index b551781..1319441 100644
--- a/sys/bluez/gstavdtputil.h
+++ b/sys/bluez/gstavdtputil.h
@@ -27,20 +27,23 @@
 
 #include <glib.h>
 
-#include <dbus/dbus.h>
+#include "bluez.h"
 
 G_BEGIN_DECLS
+
 #define DEFAULT_CODEC_BUFFER_SIZE 2048
 #define TEMPLATE_MAX_BITPOOL_STR "64"
-    struct bluetooth_data
+
+struct bluetooth_data
 {
   guint link_mtu;
 
-  DBusConnection *conn;
+  BluezMediaTransport1 *conn;
   guint8 codec;                 /* Bluetooth transport configuration */
   gchar *uuid;
   guint8 *config;
   gint config_size;
+  gboolean is_acquired;
 
   gchar buffer[DEFAULT_CODEC_BUFFER_SIZE];      /* Codec transfer buffer */
 };
@@ -56,7 +59,8 @@
   struct bluetooth_data data;
 };
 
-gboolean gst_avdtp_connection_acquire (GstAvdtpConnection * conn);
+gboolean gst_avdtp_connection_acquire (GstAvdtpConnection * conn,
+    gboolean use_try);
 void gst_avdtp_connection_release (GstAvdtpConnection * conn);
 void gst_avdtp_connection_reset (GstAvdtpConnection * conn);
 gboolean gst_avdtp_connection_get_properties (GstAvdtpConnection * conn);
diff --git a/sys/bluez/org.bluez.xml b/sys/bluez/org.bluez.xml
new file mode 100644
index 0000000..ff52ee3
--- /dev/null
+++ b/sys/bluez/org.bluez.xml
@@ -0,0 +1,29 @@
+<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"
+"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
+
+<node>
+<interface name="org.bluez.MediaTransport1">
+    <method name="Acquire">
+        <annotation name="org.gtk.GDBus.C.UnixFD" value="true" />
+        <arg name="fd" type="h" direction="out"/>
+        <arg name="mtu_r" type="q" direction="out"/>
+        <arg name="mtu_w" type="q" direction="out"/>
+    </method>
+    <method name="TryAcquire">
+        <annotation name="org.gtk.GDBus.C.UnixFD" value="true" />
+        <arg name="fd" type="h" direction="out"/>
+        <arg name="mtu_r" type="q" direction="out"/>
+        <arg name="mtu_w" type="q" direction="out"/>
+    </method>
+    <method name="Release"></method>
+    <property name="Device" type="o" access="read"></property>
+    <property name="UUID" type="s" access="read"></property>
+    <property name="Codec" type="y" access="read"></property>
+    <property name="Configuration" type="ay" access="read">
+        <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true" />
+    </property>
+    <property name="State" type="s" access="read"></property>
+    <property name="Delay" type="q" access="read"></property>
+    <property name="Volume" type="q" access="readwrite"></property>
+</interface>
+</node>
diff --git a/sys/d3dvideosink/Makefile.in b/sys/d3dvideosink/Makefile.in
index 8385be0..a727e9c 100644
--- a/sys/d3dvideosink/Makefile.in
+++ b/sys/d3dvideosink/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = sys/d3dvideosink
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -229,6 +239,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -246,8 +257,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -276,8 +285,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -325,11 +332,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -513,6 +523,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -591,7 +602,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -631,6 +647,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -767,7 +784,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu sys/d3dvideosink/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu sys/d3dvideosink/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1084,6 +1100,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/sys/decklink/Makefile.in b/sys/decklink/Makefile.in
index f32cfde..53ac450 100644
--- a/sys/decklink/Makefile.in
+++ b/sys/decklink/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -90,8 +100,6 @@
 @DECKLINK_OSX_FALSE@	linux/DeckLinkAPIDispatch.cpp
 
 subdir = sys/decklink
-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 \
@@ -129,6 +137,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -249,6 +259,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -266,8 +277,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -296,8 +305,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -345,11 +352,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -533,6 +543,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -611,7 +622,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -651,6 +667,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -825,7 +842,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu sys/decklink/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu sys/decklink/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1208,6 +1224,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/sys/directsound/Makefile.in b/sys/directsound/Makefile.in
index 8d38d03..fdd983f 100644
--- a/sys/directsound/Makefile.in
+++ b/sys/directsound/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = sys/directsound
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -231,6 +241,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -248,8 +259,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -278,8 +287,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -327,11 +334,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -515,6 +525,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -593,7 +604,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -633,6 +649,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -769,7 +786,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu sys/directsound/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu sys/directsound/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1086,6 +1102,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/sys/dshowdecwrapper/Makefile.in b/sys/dshowdecwrapper/Makefile.in
index d6298dd..8bfd38d 100644
--- a/sys/dshowdecwrapper/Makefile.in
+++ b/sys/dshowdecwrapper/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = sys/dshowdecwrapper
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -233,6 +243,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -250,8 +261,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -280,8 +289,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -329,11 +336,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -517,6 +527,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -595,7 +606,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -635,6 +651,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -773,7 +790,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu sys/dshowdecwrapper/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu sys/dshowdecwrapper/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1114,6 +1130,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/sys/dshowsrcwrapper/Makefile.in b/sys/dshowsrcwrapper/Makefile.in
index 190f145..6432de3 100644
--- a/sys/dshowsrcwrapper/Makefile.in
+++ b/sys/dshowsrcwrapper/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -17,7 +17,17 @@
 # This plugin isn't buildable with autotools at this point in time, so just
 # ensure everything's listed in EXTRA_DIST
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -82,7 +92,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = sys/dshowsrcwrapper
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
 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 \
@@ -120,6 +129,7 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -144,6 +154,7 @@
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+am__DIST_COMMON = $(srcdir)/Makefile.in
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -161,8 +172,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -191,8 +200,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -240,11 +247,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -428,6 +438,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -506,7 +517,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -546,6 +562,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -680,7 +697,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu sys/dshowsrcwrapper/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu sys/dshowsrcwrapper/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -855,6 +871,8 @@
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
 	tags-am uninstall uninstall-am
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/sys/dshowvideosink/Makefile.in b/sys/dshowvideosink/Makefile.in
index 77f75e1..36bbb0f 100644
--- a/sys/dshowvideosink/Makefile.in
+++ b/sys/dshowvideosink/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -17,7 +17,17 @@
 # This plugin isn't buildable with autotools at this point in time, so just
 # ensure everything's listed in EXTRA_DIST
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -82,7 +92,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = sys/dshowvideosink
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am 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 \
@@ -120,6 +129,7 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -144,6 +154,7 @@
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+am__DIST_COMMON = $(srcdir)/Makefile.in README
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -161,8 +172,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -191,8 +200,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -240,11 +247,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -428,6 +438,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -506,7 +517,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -546,6 +562,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -675,7 +692,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu sys/dshowvideosink/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu sys/dshowvideosink/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -850,6 +866,8 @@
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
 	tags-am uninstall uninstall-am
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/sys/dvb/Makefile.in b/sys/dvb/Makefile.in
index e20217e..0055c53 100644
--- a/sys/dvb/Makefile.in
+++ b/sys/dvb/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = sys/dvb
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp $(noinst_HEADERS) AUTHORS 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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -236,6 +246,8 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp AUTHORS \
+	README
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -253,8 +265,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -283,8 +293,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -332,11 +340,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -520,6 +531,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -598,7 +610,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -638,6 +655,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -801,7 +819,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu sys/dvb/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu sys/dvb/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1214,6 +1231,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/sys/fbdev/Makefile.in b/sys/fbdev/Makefile.in
index a7c4a39..5eb4836 100644
--- a/sys/fbdev/Makefile.in
+++ b/sys/fbdev/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = sys/fbdev
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -227,6 +237,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -244,8 +255,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -274,8 +283,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -323,11 +330,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -511,6 +521,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -589,7 +600,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -629,6 +645,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -768,7 +785,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu sys/fbdev/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu sys/fbdev/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1077,6 +1093,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/sys/linsys/Makefile.in b/sys/linsys/Makefile.in
index e6d6031..3478663 100644
--- a/sys/linsys/Makefile.in
+++ b/sys/linsys/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = sys/linsys
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -229,6 +239,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -246,8 +257,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -276,8 +285,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -325,11 +332,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -513,6 +523,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -591,7 +602,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -631,6 +647,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -780,7 +797,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu sys/linsys/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu sys/linsys/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1105,6 +1121,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/sys/opensles/Makefile.in b/sys/opensles/Makefile.in
index 0d5e80a..8cc3763 100644
--- a/sys/opensles/Makefile.in
+++ b/sys/opensles/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = sys/opensles
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -230,6 +240,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -247,8 +258,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -277,8 +286,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -326,11 +333,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -514,6 +524,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -592,7 +603,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -632,6 +648,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -779,7 +796,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu sys/opensles/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu sys/opensles/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1120,6 +1136,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/sys/pvr2d/Makefile.in b/sys/pvr2d/Makefile.in
index 454a2ab..ab882d3 100644
--- a/sys/pvr2d/Makefile.in
+++ b/sys/pvr2d/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = sys/pvr2d
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -231,6 +241,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -248,8 +259,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -278,8 +287,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -327,11 +334,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -515,6 +525,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -593,7 +604,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -633,6 +649,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -777,7 +794,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu sys/pvr2d/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu sys/pvr2d/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1102,6 +1118,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/sys/shm/Makefile.in b/sys/shm/Makefile.in
index 94a7c60..b5379e8 100644
--- a/sys/shm/Makefile.in
+++ b/sys/shm/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = sys/shm
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -229,6 +239,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -246,8 +257,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -276,8 +285,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -325,11 +332,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -513,6 +523,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -591,7 +602,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -631,6 +647,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -762,7 +779,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu sys/shm/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu sys/shm/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1103,6 +1119,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/sys/uvch264/Makefile.in b/sys/uvch264/Makefile.in
index 2304961..eff5c04 100644
--- a/sys/uvch264/Makefile.in
+++ b/sys/uvch264/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = sys/uvch264
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -233,6 +243,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -250,8 +261,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -280,8 +289,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -329,11 +336,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -517,6 +527,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -595,7 +606,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -635,6 +651,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -789,7 +806,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu sys/uvch264/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu sys/uvch264/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1122,6 +1138,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/sys/vcd/Makefile.in b/sys/vcd/Makefile.in
index edeaef8..070e6bd 100644
--- a/sys/vcd/Makefile.in
+++ b/sys/vcd/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = sys/vcd
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -227,6 +237,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -244,8 +255,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -274,8 +283,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -323,11 +330,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -511,6 +521,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -589,7 +600,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -629,6 +645,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -760,7 +777,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu sys/vcd/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu sys/vcd/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1069,6 +1085,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/sys/vdpau/Makefile.in b/sys/vdpau/Makefile.in
index 0d82c02..8b0a83a 100644
--- a/sys/vdpau/Makefile.in
+++ b/sys/vdpau/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = sys/vdpau
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -235,6 +245,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -252,8 +263,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -282,8 +291,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -331,11 +338,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -519,6 +529,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -597,7 +608,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -637,6 +653,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -796,7 +813,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu sys/vdpau/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu sys/vdpau/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1166,6 +1182,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
  # \
  # 	h264/gsth264dpb.c \
  # 	h264/gstvdph264dec.c
diff --git a/sys/wasapi/Makefile.in b/sys/wasapi/Makefile.in
index 871f470..db9df2d 100644
--- a/sys/wasapi/Makefile.in
+++ b/sys/wasapi/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = sys/wasapi
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -231,6 +241,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -248,8 +259,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -278,8 +287,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -327,11 +334,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -515,6 +525,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -593,7 +604,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -633,6 +649,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -774,7 +791,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu sys/wasapi/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu sys/wasapi/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1107,6 +1123,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/sys/wininet/Makefile.in b/sys/wininet/Makefile.in
index 26d62e8..17a0c24 100644
--- a/sys/wininet/Makefile.in
+++ b/sys/wininet/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = sys/wininet
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -227,6 +237,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -244,8 +255,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -274,8 +283,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -323,11 +330,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -511,6 +521,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -589,7 +600,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -629,6 +645,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -760,7 +777,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu sys/wininet/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu sys/wininet/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1069,6 +1085,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/sys/winks/Makefile.in b/sys/winks/Makefile.in
index 77bf7cb..8649d79 100644
--- a/sys/winks/Makefile.in
+++ b/sys/winks/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = sys/winks
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -232,6 +242,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -249,8 +260,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -279,8 +288,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -328,11 +335,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -516,6 +526,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -594,7 +605,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -634,6 +650,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -776,7 +793,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu sys/winks/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu sys/winks/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1125,6 +1141,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/sys/winscreencap/Makefile.in b/sys/winscreencap/Makefile.in
index f809131..4f6e123 100644
--- a/sys/winscreencap/Makefile.in
+++ b/sys/winscreencap/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = sys/winscreencap
-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 \
@@ -120,6 +128,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -231,6 +241,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -248,8 +259,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -278,8 +287,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -327,11 +334,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -515,6 +525,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -593,7 +604,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -633,6 +649,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -768,7 +785,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu sys/winscreencap/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu sys/winscreencap/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1093,6 +1109,8 @@
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/sys/winscreencap/gstdx9screencapsrc.c b/sys/winscreencap/gstdx9screencapsrc.c
index ade21c7..9a856e0 100644
--- a/sys/winscreencap/gstdx9screencapsrc.c
+++ b/sys/winscreencap/gstdx9screencapsrc.c
@@ -76,15 +76,16 @@
 static void gst_dx9screencapsrc_get_property (GObject * object,
     guint prop_id, GValue * value, GParamSpec * pspec);
 
-static GstCaps * gst_dx9screencapsrc_fixate (GstBaseSrc * bsrc, GstCaps * caps);
+static GstCaps *gst_dx9screencapsrc_fixate (GstBaseSrc * bsrc, GstCaps * caps);
 static gboolean gst_dx9screencapsrc_set_caps (GstBaseSrc * bsrc,
     GstCaps * caps);
-static GstCaps *gst_dx9screencapsrc_get_caps (GstBaseSrc * bsrc, GstCaps * filter);
+static GstCaps *gst_dx9screencapsrc_get_caps (GstBaseSrc * bsrc,
+    GstCaps * filter);
 static gboolean gst_dx9screencapsrc_start (GstBaseSrc * bsrc);
 static gboolean gst_dx9screencapsrc_stop (GstBaseSrc * bsrc);
 
-static void gst_dx9screencapsrc_get_times (GstBaseSrc * basesrc,
-    GstBuffer * buffer, GstClockTime * start, GstClockTime * end);
+static gboolean gst_dx9screencapsrc_unlock (GstBaseSrc * bsrc);
+
 static GstFlowReturn gst_dx9screencapsrc_create (GstPushSrc * src,
     GstBuffer ** buf);
 
@@ -106,11 +107,11 @@
   go_class->set_property = GST_DEBUG_FUNCPTR (gst_dx9screencapsrc_set_property);
   go_class->get_property = GST_DEBUG_FUNCPTR (gst_dx9screencapsrc_get_property);
 
-  bs_class->get_times = GST_DEBUG_FUNCPTR (gst_dx9screencapsrc_get_times);
   bs_class->get_caps = GST_DEBUG_FUNCPTR (gst_dx9screencapsrc_get_caps);
   bs_class->set_caps = GST_DEBUG_FUNCPTR (gst_dx9screencapsrc_set_caps);
   bs_class->start = GST_DEBUG_FUNCPTR (gst_dx9screencapsrc_start);
   bs_class->stop = GST_DEBUG_FUNCPTR (gst_dx9screencapsrc_stop);
+  bs_class->unlock = GST_DEBUG_FUNCPTR (gst_dx9screencapsrc_unlock);
   bs_class->fixate = GST_DEBUG_FUNCPTR (gst_dx9screencapsrc_fixate);
 
   ps_class->create = GST_DEBUG_FUNCPTR (gst_dx9screencapsrc_create);
@@ -153,7 +154,6 @@
 gst_dx9screencapsrc_init (GstDX9ScreenCapSrc * src)
 {
   /* Set src element inital values... */
-  src->frames = 0;
   src->surface = NULL;
   src->d3d9_device = NULL;
   src->capture_x = 0;
@@ -309,7 +309,7 @@
 {
   GstDX9ScreenCapSrc *src = GST_DX9SCREENCAPSRC (bsrc);
   RECT rect_dst;
-  GstCaps * caps;
+  GstCaps *caps;
 
   if (src->monitor >= IDirect3D9_GetAdapterCount (g_d3d9) ||
       FAILED (IDirect3D9_GetAdapterDisplayMode (g_d3d9, src->monitor,
@@ -352,7 +352,8 @@
       "pixel-aspect-ratio", GST_TYPE_FRACTION, 1, 1, NULL);
 
   if (filter) {
-    GstCaps * tmp = gst_caps_intersect_full (filter, caps, GST_CAPS_INTERSECT_FIRST);
+    GstCaps *tmp =
+        gst_caps_intersect_full (filter, caps, GST_CAPS_INTERSECT_FIRST);
     gst_caps_unref (caps);
     caps = tmp;
   }
@@ -367,6 +368,8 @@
   D3DPRESENT_PARAMETERS d3dpp;
   HRESULT res;
 
+  src->frame_number = -1;
+
   ZeroMemory (&d3dpp, sizeof (D3DPRESENT_PARAMETERS));
   d3dpp.Windowed = TRUE;
   d3dpp.Flags = D3DPRESENTFLAG_LOCKABLE_BACKBUFFER;
@@ -380,8 +383,6 @@
   d3dpp.PresentationInterval = D3DPRESENT_INTERVAL_DEFAULT;
   d3dpp.FullScreen_RefreshRateInHz = D3DPRESENT_RATE_DEFAULT;
 
-  src->frames = 0;
-
   res = IDirect3D9_CreateDevice (g_d3d9, src->monitor, D3DDEVTYPE_HAL,
       GetDesktopWindow (), D3DCREATE_SOFTWARE_VERTEXPROCESSING,
       &d3dpp, &src->d3d9_device);
@@ -407,21 +408,19 @@
   return TRUE;
 }
 
-static void
-gst_dx9screencapsrc_get_times (GstBaseSrc * basesrc,
-    GstBuffer * buffer, GstClockTime * start, GstClockTime * end)
+static gboolean
+gst_dx9screencapsrc_unlock (GstBaseSrc * bsrc)
 {
-  GstClockTime timestamp;
+  GstDX9ScreenCapSrc *src = GST_DX9SCREENCAPSRC (bsrc);
 
-  timestamp = GST_BUFFER_TIMESTAMP (buffer);
-
-  if (GST_CLOCK_TIME_IS_VALID (timestamp)) {
-    GstClockTime duration = GST_BUFFER_DURATION (buffer);
-
-    if (GST_CLOCK_TIME_IS_VALID (duration))
-      *end = timestamp + duration;
-    *start = timestamp;
+  GST_OBJECT_LOCK (src);
+  if (src->clock_id) {
+    GST_DEBUG_OBJECT (src, "Waking up waiting clock");
+    gst_clock_id_unschedule (src->clock_id);
   }
+  GST_OBJECT_UNLOCK (src);
+
+  return TRUE;
 }
 
 static GstFlowReturn
@@ -432,12 +431,12 @@
   gint new_buf_size, i;
   gint width, height, stride;
   GstClock *clock;
-  GstClockTime time = GST_CLOCK_TIME_NONE;
-  GstClockTime buf_time;
+  GstClockTime buf_time, buf_dur;
   D3DLOCKED_RECT locked_rect;
   LPBYTE p_dst, p_src;
   HRESULT hres;
   GstMapInfo map;
+  guint64 frame_number;
 
   if (G_UNLIKELY (!src->d3d9_device)) {
     GST_ELEMENT_ERROR (src, CORE, NEGOTIATION, (NULL),
@@ -447,30 +446,82 @@
 
   clock = gst_element_get_clock (GST_ELEMENT (src));
   if (clock != NULL) {
+    GstClockTime time, base_time;
+
     /* Calculate sync time. */
-    GstClockTime base_time;
-    GstClockTime frame_time =
-        gst_util_uint64_scale_int (src->frames * GST_SECOND,
-        src->rate_denominator, src->rate_numerator);
 
     time = gst_clock_get_time (clock);
     base_time = gst_element_get_base_time (GST_ELEMENT (src));
-    buf_time = MAX (time - base_time, frame_time);
+    buf_time = time - base_time;
+
+    if (src->rate_numerator) {
+      frame_number = gst_util_uint64_scale (buf_time,
+          src->rate_numerator, GST_SECOND * src->rate_denominator);
+    } else {
+      frame_number = -1;
+    }
   } else {
     buf_time = GST_CLOCK_TIME_NONE;
+    frame_number = -1;
   }
 
+  if (frame_number != -1 && frame_number == src->frame_number) {
+    GstClockID id;
+    GstClockReturn ret;
+
+    /* Need to wait for the next frame */
+    frame_number += 1;
+
+    /* Figure out what the next frame time is */
+    buf_time = gst_util_uint64_scale (frame_number,
+        src->rate_denominator * GST_SECOND, src->rate_numerator);
+
+    id = gst_clock_new_single_shot_id (clock,
+        buf_time + gst_element_get_base_time (GST_ELEMENT (src)));
+    GST_OBJECT_LOCK (src);
+    src->clock_id = id;
+    GST_OBJECT_UNLOCK (src);
+
+    GST_DEBUG_OBJECT (src, "Waiting for next frame time %" G_GUINT64_FORMAT,
+        buf_time);
+    ret = gst_clock_id_wait (id, NULL);
+    GST_OBJECT_LOCK (src);
+
+    gst_clock_id_unref (id);
+    src->clock_id = NULL;
+    if (ret == GST_CLOCK_UNSCHEDULED) {
+      /* Got woken up by the unlock function */
+      GST_OBJECT_UNLOCK (src);
+      return GST_FLOW_FLUSHING;
+    }
+    GST_OBJECT_UNLOCK (src);
+
+    /* Duration is a complete 1/fps frame duration */
+    buf_dur =
+        gst_util_uint64_scale_int (GST_SECOND, src->rate_denominator,
+        src->rate_numerator);
+  } else if (frame_number != -1) {
+    GstClockTime next_buf_time;
+
+    GST_DEBUG_OBJECT (src, "No need to wait for next frame time %"
+        G_GUINT64_FORMAT " next frame = %" G_GINT64_FORMAT " prev = %"
+        G_GINT64_FORMAT, buf_time, frame_number, src->frame_number);
+    next_buf_time = gst_util_uint64_scale (frame_number + 1,
+        src->rate_denominator * GST_SECOND, src->rate_numerator);
+    /* Frame duration is from now until the next expected capture time */
+    buf_dur = next_buf_time - buf_time;
+  } else {
+    buf_dur = GST_CLOCK_TIME_NONE;
+  }
+  src->frame_number = frame_number;
+
   height = (src->src_rect.bottom - src->src_rect.top);
   width = (src->src_rect.right - src->src_rect.left);
   new_buf_size = width * 4 * height;
-  if (G_UNLIKELY (src->rate_numerator == 0 && src->frames == 1)) {
-    GST_DEBUG_OBJECT (src, "eos: 0 framerate, frame %d", (gint) src->frames);
-    return GST_FLOW_EOS;
-  }
 
   GST_LOG_OBJECT (src,
-      "creating buffer of %d bytes with %dx%d image for frame %d",
-      new_buf_size, width, height, (gint) src->frames);
+      "creating buffer of %d bytes with %dx%d image",
+      new_buf_size, width, height);
 
   /* Do screen capture and put it into buffer...
    * Aquire front buffer, and lock it
@@ -506,22 +557,7 @@
   IDirect3DSurface9_UnlockRect (src->surface);
 
   GST_BUFFER_TIMESTAMP (new_buf) = buf_time;
-  if (src->rate_numerator) {
-    GST_BUFFER_DURATION (new_buf) =
-        gst_util_uint64_scale_int (GST_SECOND,
-        src->rate_denominator, src->rate_numerator);
-
-    if (clock) {
-      GST_BUFFER_DURATION (new_buf) = MAX (GST_BUFFER_DURATION (new_buf),
-          gst_clock_get_time (clock) - time);
-    }
-  } else {
-    GST_BUFFER_DURATION (new_buf) = GST_CLOCK_TIME_NONE;
-  }
-
-  GST_BUFFER_OFFSET (new_buf) = src->frames;
-  src->frames++;
-  GST_BUFFER_OFFSET_END (new_buf) = src->frames;
+  GST_BUFFER_DURATION (new_buf) = buf_dur;
 
   if (clock != NULL)
     gst_object_unref (clock);
@@ -529,4 +565,3 @@
   *buf = new_buf;
   return GST_FLOW_OK;
 }
-
diff --git a/sys/winscreencap/gstdx9screencapsrc.h b/sys/winscreencap/gstdx9screencapsrc.h
index 915d008..07622a9 100644
--- a/sys/winscreencap/gstdx9screencapsrc.h
+++ b/sys/winscreencap/gstdx9screencapsrc.h
@@ -63,7 +63,8 @@
   /* Runtime variables */
   RECT screen_rect;
   RECT src_rect;
-  gint64 frames;
+  guint64 frame_number;
+  GstClockID clock_id;
 
   D3DDISPLAYMODE disp_mode;
   IDirect3DSurface9 *surface;
diff --git a/sys/winscreencap/gstgdiscreencapsrc.c b/sys/winscreencap/gstgdiscreencapsrc.c
index 6eea0fb..92d9ec2 100644
--- a/sys/winscreencap/gstgdiscreencapsrc.c
+++ b/sys/winscreencap/gstgdiscreencapsrc.c
@@ -76,15 +76,15 @@
 static void gst_gdiscreencapsrc_get_property (GObject * object, guint prop_id,
     GValue * value, GParamSpec * pspec);
 
-static GstCaps * gst_gdiscreencapsrc_fixate (GstBaseSrc * bsrc, GstCaps * caps);
+static GstCaps *gst_gdiscreencapsrc_fixate (GstBaseSrc * bsrc, GstCaps * caps);
 static gboolean gst_gdiscreencapsrc_set_caps (GstBaseSrc * bsrc,
     GstCaps * caps);
-static GstCaps *gst_gdiscreencapsrc_get_caps (GstBaseSrc * bsrc, GstCaps * filter);
+static GstCaps *gst_gdiscreencapsrc_get_caps (GstBaseSrc * bsrc,
+    GstCaps * filter);
 static gboolean gst_gdiscreencapsrc_start (GstBaseSrc * bsrc);
 static gboolean gst_gdiscreencapsrc_stop (GstBaseSrc * bsrc);
+static gboolean gst_gdiscreencapsrc_unlock (GstBaseSrc * bsrc);
 
-static void gst_gdiscreencapsrc_get_times (GstBaseSrc * basesrc,
-    GstBuffer * buffer, GstClockTime * start, GstClockTime * end);
 static GstFlowReturn gst_gdiscreencapsrc_create (GstPushSrc * src,
     GstBuffer ** buf);
 
@@ -109,11 +109,11 @@
   go_class->set_property = GST_DEBUG_FUNCPTR (gst_gdiscreencapsrc_set_property);
   go_class->get_property = GST_DEBUG_FUNCPTR (gst_gdiscreencapsrc_get_property);
 
-  bs_class->get_times = GST_DEBUG_FUNCPTR (gst_gdiscreencapsrc_get_times);
   bs_class->get_caps = GST_DEBUG_FUNCPTR (gst_gdiscreencapsrc_get_caps);
   bs_class->set_caps = GST_DEBUG_FUNCPTR (gst_gdiscreencapsrc_set_caps);
   bs_class->start = GST_DEBUG_FUNCPTR (gst_gdiscreencapsrc_start);
   bs_class->stop = GST_DEBUG_FUNCPTR (gst_gdiscreencapsrc_stop);
+  bs_class->unlock = GST_DEBUG_FUNCPTR (gst_gdiscreencapsrc_unlock);
   bs_class->fixate = GST_DEBUG_FUNCPTR (gst_gdiscreencapsrc_fixate);
 
   ps_class->create = GST_DEBUG_FUNCPTR (gst_gdiscreencapsrc_create);
@@ -160,8 +160,6 @@
 gst_gdiscreencapsrc_init (GstGDIScreenCapSrc * src)
 {
   /* Set src element inital values... */
-
-  src->frames = 0;
   src->dibMem = NULL;
   src->hBitmap = (HBITMAP) INVALID_HANDLE_VALUE;
   src->memDC = (HDC) INVALID_HANDLE_VALUE;
@@ -372,9 +370,10 @@
       "height", G_TYPE_INT, rect_dst.bottom - rect_dst.top,
       "framerate", GST_TYPE_FRACTION_RANGE, 1, G_MAXINT, G_MAXINT, 1,
       "pixel-aspect-ratio", GST_TYPE_FRACTION, 1, 1, NULL);
-  
+
   if (filter) {
-    GstCaps * tmp = gst_caps_intersect_full (filter, caps, GST_CAPS_INTERSECT_FIRST);
+    GstCaps *tmp =
+        gst_caps_intersect_full (filter, caps, GST_CAPS_INTERSECT_FIRST);
     gst_caps_unref (caps);
     caps = tmp;
   }
@@ -387,7 +386,7 @@
 {
   GstGDIScreenCapSrc *src = GST_GDISCREENCAPSRC (bsrc);
 
-  src->frames = 0;
+  src->frame_number = -1;
 
   return TRUE;
 }
@@ -397,26 +396,22 @@
 {
   GstGDIScreenCapSrc *src = GST_GDISCREENCAPSRC (bsrc);
 
-  src->frames = 0;
-
   return TRUE;
 }
 
-static void
-gst_gdiscreencapsrc_get_times (GstBaseSrc * basesrc, GstBuffer * buffer,
-    GstClockTime * start, GstClockTime * end)
+static gboolean
+gst_gdiscreencapsrc_unlock (GstBaseSrc * bsrc)
 {
-  GstClockTime timestamp;
+  GstGDIScreenCapSrc *src = GST_GDISCREENCAPSRC (bsrc);
 
-  timestamp = GST_BUFFER_TIMESTAMP (buffer);
-
-  if (GST_CLOCK_TIME_IS_VALID (timestamp)) {
-    GstClockTime duration = GST_BUFFER_DURATION (buffer);
-
-    if (GST_CLOCK_TIME_IS_VALID (duration))
-      *end = timestamp + duration;
-    *start = timestamp;
+  GST_OBJECT_LOCK (src);
+  if (src->clock_id) {
+    GST_DEBUG_OBJECT (src, "Waking up waiting clock");
+    gst_clock_id_unschedule (src->clock_id);
   }
+  GST_OBJECT_UNLOCK (src);
+
+  return TRUE;
 }
 
 static GstFlowReturn
@@ -426,64 +421,105 @@
   GstBuffer *new_buf;
   gint new_buf_size;
   GstClock *clock;
-  GstClockTime time = GST_CLOCK_TIME_NONE;
-  GstClockTime base_time;
+  GstClockTime buf_time, buf_dur;
+  guint64 frame_number;
 
   if (G_UNLIKELY (!src->info.bmiHeader.biWidth ||
           !src->info.bmiHeader.biHeight)) {
     GST_ELEMENT_ERROR (src, CORE, NEGOTIATION, (NULL),
         ("format wasn't negotiated before create function"));
     return GST_FLOW_NOT_NEGOTIATED;
-  } else if (G_UNLIKELY (src->rate_numerator == 0 && src->frames == 1)) {
-    GST_DEBUG_OBJECT (src, "eos: 0 framerate, frame %d", (gint) src->frames);
-    return GST_FLOW_EOS;
   }
 
   new_buf_size = GST_ROUND_UP_4 (src->info.bmiHeader.biWidth * 3) *
       (-src->info.bmiHeader.biHeight);
 
   GST_LOG_OBJECT (src,
-      "creating buffer of %d bytes with %dx%d image for frame %d",
+      "creating buffer of %d bytes with %dx%d image",
       new_buf_size, (gint) src->info.bmiHeader.biWidth,
-      (gint) (-src->info.bmiHeader.biHeight), (gint) src->frames);
+      (gint) (-src->info.bmiHeader.biHeight));
 
   new_buf = gst_buffer_new_and_alloc (new_buf_size);
+
   clock = gst_element_get_clock (GST_ELEMENT (src));
-  if (clock) {
+  if (clock != NULL) {
+    GstClockTime time, base_time;
+
     /* Calculate sync time. */
-    GstClockTime frame_time =
-        gst_util_uint64_scale_int (src->frames * GST_SECOND,
-        src->rate_denominator, src->rate_numerator);
 
     time = gst_clock_get_time (clock);
     base_time = gst_element_get_base_time (GST_ELEMENT (src));
-    GST_BUFFER_TIMESTAMP (new_buf) = MAX (time - base_time, frame_time);
+    buf_time = time - base_time;
+
+    if (src->rate_numerator) {
+      frame_number = gst_util_uint64_scale (buf_time,
+          src->rate_numerator, GST_SECOND * src->rate_denominator);
+    } else {
+      frame_number = -1;
+    }
   } else {
-    GST_BUFFER_TIMESTAMP (new_buf) = GST_CLOCK_TIME_NONE;
+    buf_time = GST_CLOCK_TIME_NONE;
+    frame_number = -1;
   }
 
+  if (frame_number != -1 && frame_number == src->frame_number) {
+    GstClockID id;
+    GstClockReturn ret;
+
+    /* Need to wait for the next frame */
+    frame_number += 1;
+
+    /* Figure out what the next frame time is */
+    buf_time = gst_util_uint64_scale (frame_number,
+        src->rate_denominator * GST_SECOND, src->rate_numerator);
+
+    id = gst_clock_new_single_shot_id (clock,
+        buf_time + gst_element_get_base_time (GST_ELEMENT (src)));
+    GST_OBJECT_LOCK (src);
+    src->clock_id = id;
+    GST_OBJECT_UNLOCK (src);
+
+    GST_DEBUG_OBJECT (src, "Waiting for next frame time %" G_GUINT64_FORMAT,
+        buf_time);
+    ret = gst_clock_id_wait (id, NULL);
+    GST_OBJECT_LOCK (src);
+
+    gst_clock_id_unref (id);
+    src->clock_id = NULL;
+    if (ret == GST_CLOCK_UNSCHEDULED) {
+      /* Got woken up by the unlock function */
+      GST_OBJECT_UNLOCK (src);
+      return GST_FLOW_FLUSHING;
+    }
+    GST_OBJECT_UNLOCK (src);
+
+    /* Duration is a complete 1/fps frame duration */
+    buf_dur =
+        gst_util_uint64_scale_int (GST_SECOND, src->rate_denominator,
+        src->rate_numerator);
+  } else if (frame_number != -1) {
+    GstClockTime next_buf_time;
+
+    GST_DEBUG_OBJECT (src, "No need to wait for next frame time %"
+        G_GUINT64_FORMAT " next frame = %" G_GINT64_FORMAT " prev = %"
+        G_GINT64_FORMAT, buf_time, frame_number, src->frame_number);
+    next_buf_time = gst_util_uint64_scale (frame_number + 1,
+        src->rate_denominator * GST_SECOND, src->rate_numerator);
+    /* Frame duration is from now until the next expected capture time */
+    buf_dur = next_buf_time - buf_time;
+  } else {
+    buf_dur = GST_CLOCK_TIME_NONE;
+  }
+  src->frame_number = frame_number;
+
+  GST_BUFFER_TIMESTAMP (new_buf) = buf_time;
+  GST_BUFFER_DURATION (new_buf) = buf_dur;
+
   /* Do screen capture and put it into buffer... */
   gst_gdiscreencapsrc_screen_capture (src, new_buf);
 
-  if (src->rate_numerator) {
-    GST_BUFFER_DURATION (new_buf) =
-        gst_util_uint64_scale_int (GST_SECOND,
-        src->rate_denominator, src->rate_numerator);
-    if (clock) {
-      GST_BUFFER_DURATION (new_buf) =
-          MAX (GST_BUFFER_DURATION (new_buf),
-          gst_clock_get_time (clock) - time);
-    }
-  } else {
-    /* NONE means forever */
-    GST_BUFFER_DURATION (new_buf) = GST_CLOCK_TIME_NONE;
-  }
   gst_object_unref (clock);
 
-  GST_BUFFER_OFFSET (new_buf) = src->frames;
-  src->frames++;
-  GST_BUFFER_OFFSET_END (new_buf) = src->frames;
-
   *buf = new_buf;
   return GST_FLOW_OK;
 }
diff --git a/sys/winscreencap/gstgdiscreencapsrc.h b/sys/winscreencap/gstgdiscreencapsrc.h
index 492785b..085e532 100644
--- a/sys/winscreencap/gstgdiscreencapsrc.h
+++ b/sys/winscreencap/gstgdiscreencapsrc.h
@@ -62,7 +62,9 @@
   /* Runtime variables */
   RECT screen_rect;
   RECT src_rect;
-  gint64 frames;
+  guint64 frame_number;
+  GstClockID clock_id;
+
   BITMAPINFO info;
   BYTE *dibMem;
   HBITMAP hBitmap;
diff --git a/test-driver b/test-driver
index d306056..8e575b0 100755
--- a/test-driver
+++ b/test-driver
@@ -3,7 +3,7 @@
 
 scriptversion=2013-07-13.22; # UTC
 
-# Copyright (C) 2011-2013 Free Software Foundation, Inc.
+# Copyright (C) 2011-2014 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
@@ -106,11 +106,14 @@
 # Test script is run here.
 "$@" >$log_file 2>&1
 estatus=$?
+
 if test $enable_hard_errors = no && test $estatus -eq 99; then
-  estatus=1
+  tweaked_estatus=1
+else
+  tweaked_estatus=$estatus
 fi
 
-case $estatus:$expect_failure in
+case $tweaked_estatus:$expect_failure in
   0:yes) col=$red res=XPASS recheck=yes gcopy=yes;;
   0:*)   col=$grn res=PASS  recheck=no  gcopy=no;;
   77:*)  col=$blu res=SKIP  recheck=no  gcopy=yes;;
@@ -119,6 +122,12 @@
   *:*)   col=$red res=FAIL  recheck=yes gcopy=yes;;
 esac
 
+# Report the test outcome and exit status in the logs, so that one can
+# know whether the test passed or failed simply by looking at the '.log'
+# file, without the need of also peaking into the corresponding '.trs'
+# file (automake bug#11814).
+echo "$res $test_name (exit status: $estatus)" >>$log_file
+
 # Report outcome to console.
 echo "${col}${res}${std}: $test_name"
 
diff --git a/tests/Makefile.in b/tests/Makefile.in
index 323ec9c..40f7030 100644
--- a/tests/Makefile.in
+++ b/tests/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -14,7 +14,17 @@
 
 @SET_MAKE@
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -79,7 +89,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = tests
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
 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 \
@@ -117,6 +126,7 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -175,6 +185,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 am__relativize = \
   dir0=`pwd`; \
@@ -217,8 +228,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -247,8 +256,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -296,11 +303,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -484,6 +494,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -562,7 +573,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -602,6 +618,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -731,7 +748,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu tests/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1026,6 +1042,8 @@
 	mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
 	ps ps-am tags tags-am uninstall uninstall-am
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/tests/check/Makefile.am b/tests/check/Makefile.am
index 295791b..1e5c23a 100644
--- a/tests/check/Makefile.am
+++ b/tests/check/Makefile.am
@@ -19,8 +19,7 @@
 	    decklinksink dtlssrtpdec dtlssrtpenc dvbsrc dvbbasebin dfbvideosink festival fluidsynth gsettingsvideosrc \
 	    gsettingsvideosink gsettingsaudiosrc gsettingsaudiosink linsyssdisrc linsyssdisink nassink \
 	    rsndvdbin sdlaudiosink sdlvideosink vcdsrc rfbsrc vdpauyuvvideo vdpauvideoyuv \
-	    vdpaumpegdec vdpaumpeg4dec vdpauh264dec vdpauvideopostprocess vdpausink neonhttpsrc \
-	    gtksink gtkglsink"
+	    vdpaumpegdec vdpaumpeg4dec vdpauh264dec vdpauvideopostprocess vdpausink neonhttpsrc"
 
 plugindir = $(libdir)/gstreamer-@GST_API_VERSION@
 
@@ -265,6 +264,7 @@
 	$(check_mpg123) \
 	elements/mxfdemux \
 	elements/mxfmux \
+	elements/pcapparse \
 	elements/rtponvif \
 	elements/id3mux \
 	pipelines/mxf \
@@ -296,8 +296,11 @@
 	-UG_DISABLE_ASSERT -UG_DISABLE_CAST_CHECKS
 LDADD = $(GST_CHECK_LIBS)
 
-elements_audiomixer_LDADD = $(GST_BASE_LIBS) -lgstbase-@GST_API_VERSION@ $(LDADD)
-elements_audiomixer_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(AM_CFLAGS)
+generic_states_CFLAGS = $(AM_CFLAGS) $(GMODULE_NO_EXPORT_CFLAGS)
+generic_states_LDADD = $(LDADD) $(GMODULE_NO_EXPORT_LIBS)
+
+elements_audiomixer_LDADD = $(GST_BASE_LIBS) $(GST_CONTROLLER_LIBS) -lgstbase-@GST_API_VERSION@ $(LDADD)
+elements_audiomixer_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CONTROLLER_CFLAGS) $(AM_CFLAGS)
 
 elements_audiointerleave_LDADD = $(GST_BASE_LIBS) -lgstbase-@GST_API_VERSION@ -lgstaudio-@GST_API_VERSION@ $(LDADD)
 elements_audiointerleave_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(AM_CFLAGS)
@@ -317,6 +320,8 @@
 
 elements_h264parse_LDADD = libparser.la $(LDADD)
 
+elements_pcapparse_LDADD = libparser.la $(LDADD)
+
 libs_mpegvideoparser_CFLAGS = \
 	$(GST_PLUGINS_BAD_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) \
 	-DGST_USE_UNSTABLE_API \
diff --git a/tests/check/Makefile.in b/tests/check/Makefile.in
index 4cd1db9..803b3d8 100644
--- a/tests/check/Makefile.in
+++ b/tests/check/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -17,7 +17,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,9 +91,6 @@
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
-DIST_COMMON = $(top_srcdir)/common/check.mak $(srcdir)/Makefile.in \
-	$(srcdir)/Makefile.am $(top_srcdir)/depcomp $(noinst_HEADERS) \
-	$(top_srcdir)/test-driver
 noinst_PROGRAMS = pipelines/streamheader$(EXEEXT) $(am__EXEEXT_27)
 check_PROGRAMS = generic/states$(EXEEXT) $(am__EXEEXT_1) \
 	$(am__EXEEXT_2) $(am__EXEEXT_3) $(am__EXEEXT_4) \
@@ -103,15 +110,15 @@
 	elements/mpegvideoparse$(EXEEXT) \
 	elements/mpeg4videoparse$(EXEEXT) $(am__EXEEXT_18) \
 	elements/mxfdemux$(EXEEXT) elements/mxfmux$(EXEEXT) \
-	elements/rtponvif$(EXEEXT) elements/id3mux$(EXEEXT) \
-	pipelines/mxf$(EXEEXT) $(am__EXEEXT_19) \
-	libs/mpegvideoparser$(EXEEXT) libs/mpegts$(EXEEXT) \
-	libs/h264parser$(EXEEXT) libs/vp8parser$(EXEEXT) \
-	libs/aggregator$(EXEEXT) $(am__EXEEXT_20) \
-	libs/vc1parser$(EXEEXT) $(am__EXEEXT_21) $(am__EXEEXT_22) \
-	elements/viewfinderbin$(EXEEXT) $(am__EXEEXT_23) \
-	$(am__EXEEXT_24) libs/insertbin$(EXEEXT) $(am__EXEEXT_25) \
-	$(am__EXEEXT_26)
+	elements/pcapparse$(EXEEXT) elements/rtponvif$(EXEEXT) \
+	elements/id3mux$(EXEEXT) pipelines/mxf$(EXEEXT) \
+	$(am__EXEEXT_19) libs/mpegvideoparser$(EXEEXT) \
+	libs/mpegts$(EXEEXT) libs/h264parser$(EXEEXT) \
+	libs/vp8parser$(EXEEXT) libs/aggregator$(EXEEXT) \
+	$(am__EXEEXT_20) libs/vc1parser$(EXEEXT) $(am__EXEEXT_21) \
+	$(am__EXEEXT_22) elements/viewfinderbin$(EXEEXT) \
+	$(am__EXEEXT_23) $(am__EXEEXT_24) libs/insertbin$(EXEEXT) \
+	$(am__EXEEXT_25) $(am__EXEEXT_26)
 subdir = tests/check
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
@@ -150,6 +157,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -234,7 +243,7 @@
 elements_audiomixer_OBJECTS =  \
 	elements/elements_audiomixer-audiomixer.$(OBJEXT)
 elements_audiomixer_DEPENDENCIES = $(am__DEPENDENCIES_1) \
-	$(am__DEPENDENCIES_2)
+	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
 elements_audiomixer_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
 	$(elements_audiomixer_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
@@ -450,6 +459,9 @@
 elements_opus_OBJECTS = elements/opus.$(OBJEXT)
 elements_opus_LDADD = $(LDADD)
 elements_opus_DEPENDENCIES = $(am__DEPENDENCIES_1)
+elements_pcapparse_SOURCES = elements/pcapparse.c
+elements_pcapparse_OBJECTS = elements/pcapparse.$(OBJEXT)
+elements_pcapparse_DEPENDENCIES = libparser.la $(am__DEPENDENCIES_2)
 elements_rtponvif_SOURCES = elements/rtponvif.c
 elements_rtponvif_OBJECTS =  \
 	elements/elements_rtponvif-rtponvif.$(OBJEXT)
@@ -517,9 +529,13 @@
 elements_zbar_LDADD = $(LDADD)
 elements_zbar_DEPENDENCIES = $(am__DEPENDENCIES_1)
 generic_states_SOURCES = generic/states.c
-generic_states_OBJECTS = generic/states.$(OBJEXT)
-generic_states_LDADD = $(LDADD)
-generic_states_DEPENDENCIES = $(am__DEPENDENCIES_1)
+generic_states_OBJECTS = generic/generic_states-states.$(OBJEXT)
+generic_states_DEPENDENCIES = $(am__DEPENDENCIES_2) \
+	$(am__DEPENDENCIES_1)
+generic_states_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+	$(generic_states_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o \
+	$@
 libs_aggregator_SOURCES = libs/aggregator.c
 libs_aggregator_OBJECTS = libs/libs_aggregator-aggregator.$(OBJEXT)
 libs_aggregator_DEPENDENCIES = $(top_builddir)/gst-libs/gst/base/libgstbadbase-@GST_API_VERSION@.la \
@@ -718,15 +734,15 @@
 	elements/mpegtsmux.c elements/mpegvideoparse.c \
 	elements/mpg123audiodec.c elements/mplex.c elements/mxfdemux.c \
 	elements/mxfmux.c elements/neonhttpsrc.c elements/ofa.c \
-	elements/opus.c elements/rtponvif.c elements/schroenc.c \
-	elements/shm.c elements/templatematch.c elements/timidity.c \
-	elements/uvch264demux.c elements/viewfinderbin.c \
-	elements/voaacenc.c elements/voamrwbenc.c elements/x265enc.c \
-	elements/zbar.c generic/states.c libs/aggregator.c \
-	libs/gstglcolorconvert.c libs/gstglcontext.c \
-	libs/gstglmemory.c libs/gstglupload.c libs/h264parser.c \
-	libs/insertbin.c libs/mpegts.c libs/mpegvideoparser.c \
-	libs/vc1parser.c libs/vp8parser.c \
+	elements/opus.c elements/pcapparse.c elements/rtponvif.c \
+	elements/schroenc.c elements/shm.c elements/templatematch.c \
+	elements/timidity.c elements/uvch264demux.c \
+	elements/viewfinderbin.c elements/voaacenc.c \
+	elements/voamrwbenc.c elements/x265enc.c elements/zbar.c \
+	generic/states.c libs/aggregator.c libs/gstglcolorconvert.c \
+	libs/gstglcontext.c libs/gstglmemory.c libs/gstglupload.c \
+	libs/h264parser.c libs/insertbin.c libs/mpegts.c \
+	libs/mpegvideoparser.c libs/vc1parser.c libs/vp8parser.c \
 	$(nodist_orc_audiomixer_SOURCES) $(nodist_orc_bayer_SOURCES) \
 	$(nodist_orc_compositor_SOURCES) pipelines/mimic.c \
 	pipelines/mxf.c pipelines/streamheader.c
@@ -748,16 +764,16 @@
 	elements/mpegtsmux.c elements/mpegvideoparse.c \
 	elements/mpg123audiodec.c elements/mplex.c elements/mxfdemux.c \
 	elements/mxfmux.c elements/neonhttpsrc.c elements/ofa.c \
-	elements/opus.c elements/rtponvif.c elements/schroenc.c \
-	elements/shm.c elements/templatematch.c elements/timidity.c \
-	elements/uvch264demux.c elements/viewfinderbin.c \
-	elements/voaacenc.c elements/voamrwbenc.c elements/x265enc.c \
-	elements/zbar.c generic/states.c libs/aggregator.c \
-	libs/gstglcolorconvert.c libs/gstglcontext.c \
-	libs/gstglmemory.c libs/gstglupload.c libs/h264parser.c \
-	libs/insertbin.c libs/mpegts.c libs/mpegvideoparser.c \
-	libs/vc1parser.c libs/vp8parser.c pipelines/mimic.c \
-	pipelines/mxf.c pipelines/streamheader.c
+	elements/opus.c elements/pcapparse.c elements/rtponvif.c \
+	elements/schroenc.c elements/shm.c elements/templatematch.c \
+	elements/timidity.c elements/uvch264demux.c \
+	elements/viewfinderbin.c elements/voaacenc.c \
+	elements/voamrwbenc.c elements/x265enc.c elements/zbar.c \
+	generic/states.c libs/aggregator.c libs/gstglcolorconvert.c \
+	libs/gstglcontext.c libs/gstglmemory.c libs/gstglupload.c \
+	libs/h264parser.c libs/insertbin.c libs/mpegts.c \
+	libs/mpegvideoparser.c libs/vc1parser.c libs/vp8parser.c \
+	pipelines/mimic.c pipelines/mxf.c pipelines/streamheader.c
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
     n|no|NO) false;; \
@@ -987,6 +1003,8 @@
 TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver
 TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \
 	$(TEST_LOG_FLAGS)
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/common/check.mak \
+	$(top_srcdir)/depcomp $(top_srcdir)/test-driver
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -1004,8 +1022,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -1034,8 +1050,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -1083,11 +1097,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -1271,6 +1288,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -1349,7 +1367,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -1389,6 +1412,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -1517,8 +1541,7 @@
 	    decklinksink dtlssrtpdec dtlssrtpenc dvbsrc dvbbasebin dfbvideosink festival fluidsynth gsettingsvideosrc \
 	    gsettingsvideosink gsettingsaudiosrc gsettingsaudiosink linsyssdisrc linsyssdisink nassink \
 	    rsndvdbin sdlaudiosink sdlvideosink vcdsrc rfbsrc vdpauyuvvideo vdpauvideoyuv \
-	    vdpaumpegdec vdpaumpeg4dec vdpauh264dec vdpauvideopostprocess vdpausink neonhttpsrc \
-	    gtksink gtkglsink"
+	    vdpaumpegdec vdpaumpeg4dec vdpauh264dec vdpauvideopostprocess vdpausink neonhttpsrc"
 
 
 # the core dumps of some machines have PIDs appended
@@ -1613,8 +1636,10 @@
 	-UG_DISABLE_ASSERT -UG_DISABLE_CAST_CHECKS
 
 LDADD = $(GST_CHECK_LIBS)
-elements_audiomixer_LDADD = $(GST_BASE_LIBS) -lgstbase-@GST_API_VERSION@ $(LDADD)
-elements_audiomixer_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(AM_CFLAGS)
+generic_states_CFLAGS = $(AM_CFLAGS) $(GMODULE_NO_EXPORT_CFLAGS)
+generic_states_LDADD = $(LDADD) $(GMODULE_NO_EXPORT_LIBS)
+elements_audiomixer_LDADD = $(GST_BASE_LIBS) $(GST_CONTROLLER_LIBS) -lgstbase-@GST_API_VERSION@ $(LDADD)
+elements_audiomixer_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CONTROLLER_CFLAGS) $(AM_CFLAGS)
 elements_audiointerleave_LDADD = $(GST_BASE_LIBS) -lgstbase-@GST_API_VERSION@ -lgstaudio-@GST_API_VERSION@ $(LDADD)
 elements_audiointerleave_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(AM_CFLAGS)
 
@@ -1629,6 +1654,7 @@
 elements_mpeg4videoparse_LDADD = libparser.la $(LDADD)
 elements_h263parse_LDADD = libparser.la $(LDADD)
 elements_h264parse_LDADD = libparser.la $(LDADD)
+elements_pcapparse_LDADD = libparser.la $(LDADD)
 libs_mpegvideoparser_CFLAGS = \
 	$(GST_PLUGINS_BAD_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) \
 	-DGST_USE_UNSTABLE_API \
@@ -1859,7 +1885,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/check/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu tests/check/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1868,7 +1893,7 @@
 	    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/check.mak:
+$(top_srcdir)/common/check.mak $(am__empty):
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -2158,6 +2183,12 @@
 elements/opus$(EXEEXT): $(elements_opus_OBJECTS) $(elements_opus_DEPENDENCIES) $(EXTRA_elements_opus_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/opus$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(elements_opus_OBJECTS) $(elements_opus_LDADD) $(LIBS)
+elements/pcapparse.$(OBJEXT): elements/$(am__dirstamp) \
+	elements/$(DEPDIR)/$(am__dirstamp)
+
+elements/pcapparse$(EXEEXT): $(elements_pcapparse_OBJECTS) $(elements_pcapparse_DEPENDENCIES) $(EXTRA_elements_pcapparse_DEPENDENCIES) elements/$(am__dirstamp)
+	@rm -f elements/pcapparse$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(elements_pcapparse_OBJECTS) $(elements_pcapparse_LDADD) $(LIBS)
 elements/elements_rtponvif-rtponvif.$(OBJEXT):  \
 	elements/$(am__dirstamp) elements/$(DEPDIR)/$(am__dirstamp)
 
@@ -2230,12 +2261,12 @@
 generic/$(DEPDIR)/$(am__dirstamp):
 	@$(MKDIR_P) generic/$(DEPDIR)
 	@: > generic/$(DEPDIR)/$(am__dirstamp)
-generic/states.$(OBJEXT): generic/$(am__dirstamp) \
+generic/generic_states-states.$(OBJEXT): generic/$(am__dirstamp) \
 	generic/$(DEPDIR)/$(am__dirstamp)
 
 generic/states$(EXEEXT): $(generic_states_OBJECTS) $(generic_states_DEPENDENCIES) $(EXTRA_generic_states_DEPENDENCIES) generic/$(am__dirstamp)
 	@rm -f generic/states$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(generic_states_OBJECTS) $(generic_states_LDADD) $(LIBS)
+	$(AM_V_CCLD)$(generic_states_LINK) $(generic_states_OBJECTS) $(generic_states_LDADD) $(LIBS)
 libs/$(am__dirstamp):
 	@$(MKDIR_P) libs
 	@: > libs/$(am__dirstamp)
@@ -2414,6 +2445,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/neonhttpsrc.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/ofa.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/opus.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/pcapparse.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/schroenc.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/shm.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/templatematch.Po@am__quote@
@@ -2421,7 +2453,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/voamrwbenc.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/x265enc.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/zbar.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@generic/$(DEPDIR)/states.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@generic/$(DEPDIR)/generic_states-states.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@libs/$(DEPDIR)/libs_aggregator-aggregator.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@libs/$(DEPDIR)/libs_gstglcolorconvert-gstglcolorconvert.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@libs/$(DEPDIR)/libs_gstglcontext-gstglcontext.Po@am__quote@
@@ -2765,6 +2797,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) $(elements_voaacenc_CFLAGS) $(CFLAGS) -c -o elements/elements_voaacenc-voaacenc.obj `if test -f 'elements/voaacenc.c'; then $(CYGPATH_W) 'elements/voaacenc.c'; else $(CYGPATH_W) '$(srcdir)/elements/voaacenc.c'; fi`
 
+generic/generic_states-states.o: generic/states.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(generic_states_CFLAGS) $(CFLAGS) -MT generic/generic_states-states.o -MD -MP -MF generic/$(DEPDIR)/generic_states-states.Tpo -c -o generic/generic_states-states.o `test -f 'generic/states.c' || echo '$(srcdir)/'`generic/states.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) generic/$(DEPDIR)/generic_states-states.Tpo generic/$(DEPDIR)/generic_states-states.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='generic/states.c' object='generic/generic_states-states.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) $(generic_states_CFLAGS) $(CFLAGS) -c -o generic/generic_states-states.o `test -f 'generic/states.c' || echo '$(srcdir)/'`generic/states.c
+
+generic/generic_states-states.obj: generic/states.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(generic_states_CFLAGS) $(CFLAGS) -MT generic/generic_states-states.obj -MD -MP -MF generic/$(DEPDIR)/generic_states-states.Tpo -c -o generic/generic_states-states.obj `if test -f 'generic/states.c'; then $(CYGPATH_W) 'generic/states.c'; else $(CYGPATH_W) '$(srcdir)/generic/states.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) generic/$(DEPDIR)/generic_states-states.Tpo generic/$(DEPDIR)/generic_states-states.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='generic/states.c' object='generic/generic_states-states.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) $(generic_states_CFLAGS) $(CFLAGS) -c -o generic/generic_states-states.obj `if test -f 'generic/states.c'; then $(CYGPATH_W) 'generic/states.c'; else $(CYGPATH_W) '$(srcdir)/generic/states.c'; fi`
+
 libs/libs_aggregator-aggregator.o: libs/aggregator.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_aggregator_CFLAGS) $(CFLAGS) -MT libs/libs_aggregator-aggregator.o -MD -MP -MF libs/$(DEPDIR)/libs_aggregator-aggregator.Tpo -c -o libs/libs_aggregator-aggregator.o `test -f 'libs/aggregator.c' || echo '$(srcdir)/'`libs/aggregator.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) libs/$(DEPDIR)/libs_aggregator-aggregator.Tpo libs/$(DEPDIR)/libs_aggregator-aggregator.Po
@@ -3068,7 +3114,7 @@
 	if test -n "$$am__remaking_logs"; then \
 	  echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \
 	       "recursion detected" >&2; \
-	else \
+	elif test -n "$$redo_logs"; then \
 	  am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \
 	fi; \
 	if $(am__make_dryrun); then :; else \
@@ -3473,6 +3519,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)
+elements/pcapparse.log: elements/pcapparse$(EXEEXT)
+	@p='elements/pcapparse$(EXEEXT)'; \
+	b='elements/pcapparse'; \
+	$(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/rtponvif.log: elements/rtponvif$(EXEEXT)
 	@p='elements/rtponvif$(EXEEXT)'; \
 	b='elements/rtponvif'; \
@@ -3831,6 +3884,8 @@
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
 	recheck tags tags-am uninstall uninstall-am
 
+.PRECIOUS: Makefile
+
 
 # keep target around, since it's referenced in the modules' Makefiles
 clean-local-check:
diff --git a/tests/check/elements/audiointerleave.c b/tests/check/elements/audiointerleave.c
index 41788e1..b4c504f 100644
--- a/tests/check/elements/audiointerleave.c
+++ b/tests/check/elements/audiointerleave.c
@@ -34,6 +34,8 @@
 #include <gst/audio/audio.h>
 #include <gst/audio/audio-enumtypes.h>
 
+#include <gst/check/gstharness.h>
+
 static void
 gst_check_setup_events_audiointerleave (GstPad * srcpad, GstElement * element,
     GstCaps * caps, GstFormat format, const gchar * stream_id)
@@ -436,11 +438,11 @@
 {
   gint n = GPOINTER_TO_INT (user_data);
   gfloat *data;
-  gint i;
-  gsize size;
+  gint i, num_samples;
   GstCaps *caps;
   guint64 mask;
   GstAudioChannelPosition pos;
+  GstMapInfo map;
 
   fail_unless (gst_buffer_is_writable (buffer));
 
@@ -469,18 +471,18 @@
   gst_pad_set_caps (pad, caps);
   gst_caps_unref (caps);
 
-  size = 48000 * sizeof (gfloat);
-  data = g_malloc (size);
-  for (i = 0; i < 48000; i++)
+  fail_unless (gst_buffer_map (buffer, &map, GST_MAP_WRITE));
+  fail_unless (map.size % sizeof (gfloat) == 0);
+
+  fail_unless (map.size > 480);
+
+  num_samples = map.size / sizeof (gfloat);
+  data = (gfloat *) map.data;
+
+  for (i = 0; i < num_samples; i++)
     data[i] = (n % 2 == 0) ? -1.0 : 1.0;
 
-  gst_buffer_append_memory (buffer, gst_memory_new_wrapped (0, data,
-          size, 0, size, data, g_free));
-
-  GST_BUFFER_OFFSET (buffer) = GST_BUFFER_OFFSET_NONE;
-  GST_BUFFER_TIMESTAMP (buffer) = GST_CLOCK_TIME_NONE;
-  GST_BUFFER_OFFSET_END (buffer) = GST_BUFFER_OFFSET_NONE;
-  GST_BUFFER_DURATION (buffer) = GST_SECOND;
+  gst_buffer_unmap (buffer, &map);
 }
 
 static void
@@ -518,7 +520,7 @@
       gst_util_uint64_scale (map.size, GST_SECOND,
           48000 * 2 * sizeof (gfloat)) >= GST_BUFFER_DURATION (buffer) - 1);
 
-  if (n == 0) {
+  if (n == 0 || n == 3) {
     GstAudioChannelPosition pos[2] =
         { GST_AUDIO_CHANNEL_POSITION_NONE, GST_AUDIO_CHANNEL_POSITION_NONE };
     gst_audio_channel_positions_to_mask (pos, 2, FALSE, &mask);
@@ -536,23 +538,25 @@
     g_assert_not_reached ();
   }
 
-  caps = gst_caps_new_simple ("audio/x-raw",
-      "format", G_TYPE_STRING, GST_AUDIO_NE (F32),
-      "channels", G_TYPE_INT, 2, "rate", G_TYPE_INT, 48000,
-      "layout", G_TYPE_STRING, "interleaved",
-      "channel-mask", GST_TYPE_BITMASK, mask, NULL);
+  if (pad) {
+    caps = gst_caps_new_simple ("audio/x-raw",
+        "format", G_TYPE_STRING, GST_AUDIO_NE (F32),
+        "channels", G_TYPE_INT, 2, "rate", G_TYPE_INT, 48000,
+        "layout", G_TYPE_STRING, "interleaved",
+        "channel-mask", GST_TYPE_BITMASK, mask, NULL);
 
-  ccaps = gst_pad_get_current_caps (pad);
-  fail_unless (gst_caps_is_equal (caps, ccaps));
-  gst_caps_unref (ccaps);
-  gst_caps_unref (caps);
-
+    ccaps = gst_pad_get_current_caps (pad);
+    fail_unless (gst_caps_is_equal (caps, ccaps));
+    gst_caps_unref (ccaps);
+    gst_caps_unref (caps);
+  }
 #ifdef HAVE_VALGRIND
   if (!(RUNNING_ON_VALGRIND))
 #endif
     for (i = 0; i < map.size / sizeof (float); i += 2) {
       fail_unless_equals_float (data[i], -1.0);
-      fail_unless_equals_float (data[i + 1], 1.0);
+      if (n != 3)
+        fail_unless_equals_float (data[i + 1], 1.0);
     }
   have_data += map.size;
 
@@ -578,6 +582,9 @@
   src1 = gst_element_factory_make ("fakesrc", "src1");
   fail_unless (src1 != NULL);
   g_object_set (src1, "num-buffers", 4, NULL);
+  g_object_set (src1, "sizetype", 2,
+      "sizemax", (int) 48000 * sizeof (gfloat),
+      "datarate", (int) 48000 * sizeof (gfloat), NULL);
   g_object_set (src1, "signal-handoffs", TRUE, NULL);
   g_object_set (src1, "format", GST_FORMAT_TIME, NULL);
   g_signal_connect (src1, "handoff", G_CALLBACK (src_handoff_float32),
@@ -587,6 +594,9 @@
   src2 = gst_element_factory_make ("fakesrc", "src2");
   fail_unless (src2 != NULL);
   g_object_set (src2, "num-buffers", 4, NULL);
+  g_object_set (src2, "sizetype", 2,
+      "sizemax", (int) 48000 * sizeof (gfloat),
+      "datarate", (int) 48000 * sizeof (gfloat), NULL);
   g_object_set (src2, "signal-handoffs", TRUE, NULL);
   g_object_set (src2, "format", GST_FORMAT_TIME, NULL);
   g_signal_connect (src2, "handoff", G_CALLBACK (src_handoff_float32),
@@ -675,6 +685,9 @@
   src1 = gst_element_factory_make ("fakesrc", "src1");
   fail_unless (src1 != NULL);
   g_object_set (src1, "num-buffers", 4, NULL);
+  g_object_set (src1, "sizetype", 2,
+      "sizemax", (int) 48000 * sizeof (gfloat),
+      "datarate", (int) 48000 * sizeof (gfloat), NULL);
   g_object_set (src1, "signal-handoffs", TRUE, NULL);
   g_object_set (src1, "format", GST_FORMAT_TIME, NULL);
   g_signal_connect (src1, "handoff",
@@ -684,6 +697,9 @@
   src2 = gst_element_factory_make ("fakesrc", "src2");
   fail_unless (src2 != NULL);
   g_object_set (src2, "num-buffers", 4, NULL);
+  g_object_set (src2, "sizetype", 2,
+      "sizemax", (int) 48000 * sizeof (gfloat),
+      "datarate", (int) 48000 * sizeof (gfloat), NULL);
   g_object_set (src2, "signal-handoffs", TRUE, NULL);
   g_object_set (src2, "format", GST_FORMAT_TIME, NULL);
   g_signal_connect (src2, "handoff",
@@ -764,6 +780,9 @@
   fail_unless (src1 != NULL);
   g_object_set (src1, "num-buffers", 4, NULL);
   g_object_set (src1, "signal-handoffs", TRUE, NULL);
+  g_object_set (src1, "sizetype", 2,
+      "sizemax", (int) 48000 * sizeof (gfloat),
+      "datarate", (int) 48000 * sizeof (gfloat), NULL);
   g_object_set (src1, "format", GST_FORMAT_TIME, NULL);
   g_signal_connect (src1, "handoff",
       G_CALLBACK (src_handoff_float32_audiointerleaved), GINT_TO_POINTER (0));
@@ -773,6 +792,9 @@
   fail_unless (src2 != NULL);
   g_object_set (src2, "num-buffers", 4, NULL);
   g_object_set (src2, "signal-handoffs", TRUE, NULL);
+  g_object_set (src2, "sizetype", 2,
+      "sizemax", (int) 48000 * sizeof (gfloat),
+      "datarate", (int) 48000 * sizeof (gfloat), NULL);
   g_object_set (src2, "format", GST_FORMAT_TIME, NULL);
   g_signal_connect (src2, "handoff",
       G_CALLBACK (src_handoff_float32_audiointerleaved), GINT_TO_POINTER (1));
@@ -862,6 +884,9 @@
   fail_unless (src1 != NULL);
   g_object_set (src1, "num-buffers", 4, NULL);
   g_object_set (src1, "signal-handoffs", TRUE, NULL);
+  g_object_set (src1, "sizetype", 2,
+      "sizemax", (int) 48000 * sizeof (gfloat),
+      "datarate", (int) 48000 * sizeof (gfloat), NULL);
   g_object_set (src1, "format", GST_FORMAT_TIME, NULL);
   g_signal_connect (src1, "handoff",
       G_CALLBACK (src_handoff_float32_audiointerleaved), GINT_TO_POINTER (0));
@@ -871,6 +896,9 @@
   fail_unless (src2 != NULL);
   g_object_set (src2, "num-buffers", 4, NULL);
   g_object_set (src2, "signal-handoffs", TRUE, NULL);
+  g_object_set (src2, "sizetype", 2,
+      "sizemax", (int) 48000 * sizeof (gfloat),
+      "datarate", (int) 48000 * sizeof (gfloat), NULL);
   g_object_set (src2, "format", GST_FORMAT_TIME, NULL);
   g_signal_connect (src2, "handoff",
       G_CALLBACK (src_handoff_float32_audiointerleaved), GINT_TO_POINTER (1));
@@ -933,6 +961,148 @@
 
 GST_END_TEST;
 
+static void
+forward_check_event (GstHarness * h, GstHarness * hsrc, GstEventType type)
+{
+  GstEvent *e;
+
+  e = gst_harness_pull_event (hsrc);
+  fail_unless (GST_EVENT_TYPE (e) == type);
+  gst_harness_push_event (h, e);
+}
+
+GST_START_TEST (test_audiointerleave_2ch_smallbuf)
+{
+  GstElement *audiointerleave;
+  GstHarness *hsrc;
+  GstHarness *h;
+  GstHarness *h2;
+  GstBuffer *buffer;
+  GstQuery *q;
+  gint i;
+  GstEvent *ev;
+  GstCaps *ecaps, *caps;
+
+  audiointerleave = gst_element_factory_make ("audiointerleave", NULL);
+
+  g_object_set (audiointerleave, "latency", GST_SECOND / 2,
+      "output-buffer-duration", GST_SECOND / 4, NULL);
+
+  h = gst_harness_new_with_element (audiointerleave, "sink_0", "src");
+  gst_harness_use_testclock (h);
+
+  h2 = gst_harness_new_with_element (audiointerleave, "sink_1", NULL);
+  gst_harness_set_src_caps_str (h2, "audio/x-raw, "
+      "format=" GST_AUDIO_NE (F32) ", channels=(int)1,"
+      " layout=interleaved, rate=48000, channel-mask=(bitmask)8");
+
+  hsrc = gst_harness_new ("fakesrc");
+  gst_harness_use_testclock (hsrc);
+  g_object_set (hsrc->element,
+      "is-live", TRUE,
+      "sync", TRUE,
+      "signal-handoffs", TRUE,
+      "format", GST_FORMAT_TIME,
+      "sizetype", 2,
+      "sizemax", (int) 480 * sizeof (gfloat),
+      "datarate", (int) 48000 * sizeof (gfloat), NULL);
+  g_signal_connect (hsrc->element, "handoff",
+      G_CALLBACK (src_handoff_float32_audiointerleaved), GINT_TO_POINTER (2));
+  gst_harness_play (hsrc);
+
+  gst_harness_crank_single_clock_wait (hsrc);
+  forward_check_event (h, hsrc, GST_EVENT_STREAM_START);
+  forward_check_event (h, hsrc, GST_EVENT_CAPS);
+  forward_check_event (h, hsrc, GST_EVENT_SEGMENT);
+  gst_harness_push (h, gst_harness_pull (hsrc));        /* buffer */
+
+  for (i = 0; i < 24; i++) {
+    gst_harness_crank_single_clock_wait (hsrc);
+    forward_check_event (h, hsrc, GST_EVENT_CAPS);
+    gst_harness_push (h, gst_harness_pull (hsrc));      /* buffer */
+  }
+
+  gst_harness_crank_single_clock_wait (h);
+
+
+  gst_event_unref (gst_harness_pull_event (h)); /* stream-start */
+  ev = gst_harness_pull_event (h);      /* caps */
+  fail_unless_equals_int (GST_EVENT_CAPS, GST_EVENT_TYPE (ev));
+
+  caps = gst_caps_new_simple ("audio/x-raw",
+      "format", G_TYPE_STRING, GST_AUDIO_NE (F32),
+      "channels", G_TYPE_INT, 2,
+      "layout", G_TYPE_STRING, "interleaved",
+      "rate", G_TYPE_INT, 48000, "channel-mask", GST_TYPE_BITMASK, 0x9, NULL);
+
+  gst_event_parse_caps (ev, &ecaps);
+  gst_check_caps_equal (ecaps, caps);
+  gst_caps_unref (caps);
+  gst_event_unref (ev);
+
+  for (i = 0; i < 24; i++)
+    gst_harness_crank_single_clock_wait (h);
+  fail_unless_equals_uint64 (gst_clock_get_time (GST_ELEMENT_CLOCK
+          (h->element)), 750 * GST_MSECOND);
+
+  /*  Check that the queue is really empty */
+  q = gst_query_new_drain ();
+  gst_pad_peer_query (h->srcpad, q);
+  gst_query_unref (q);
+
+  buffer = gst_harness_pull (h);
+  sink_handoff_float32 (NULL, buffer, NULL, GUINT_TO_POINTER (3));
+  gst_buffer_unref (buffer);
+  fail_unless_equals_int (gst_harness_buffers_received (h), 1);
+
+  for (i = 0; i < 50; i++) {
+    gst_harness_crank_single_clock_wait (hsrc);
+    forward_check_event (h, hsrc, GST_EVENT_CAPS);
+    gst_harness_push (h, gst_harness_pull (hsrc));      /* buffer */
+  }
+  for (i = 0; i < 25; i++)
+    gst_harness_crank_single_clock_wait (h);
+  fail_unless_equals_uint64 (gst_clock_get_time (GST_ELEMENT_CLOCK
+          (h->element)), 1000 * GST_MSECOND);
+  buffer = gst_harness_pull (h);
+  sink_handoff_float32 (NULL, buffer, NULL, GUINT_TO_POINTER (3));
+  gst_buffer_unref (buffer);
+  fail_unless_equals_int (gst_harness_buffers_received (h), 2);
+
+  for (i = 0; i < 25; i++) {
+    gst_harness_crank_single_clock_wait (hsrc);
+    forward_check_event (h, hsrc, GST_EVENT_CAPS);
+    gst_harness_push (h, gst_harness_pull (hsrc));      /* buffer */
+  }
+  for (i = 0; i < 25; i++)
+    gst_harness_crank_single_clock_wait (h);
+  fail_unless_equals_uint64 (gst_clock_get_time (GST_ELEMENT_CLOCK
+          (h->element)), 1250 * GST_MSECOND);
+  buffer = gst_harness_pull (h);
+  sink_handoff_float32 (NULL, buffer, NULL, GUINT_TO_POINTER (3));
+  gst_buffer_unref (buffer);
+  fail_unless_equals_int (gst_harness_buffers_received (h), 3);
+
+  gst_harness_push_event (h, gst_event_new_eos ());
+
+  for (i = 0; i < 25; i++)
+    gst_harness_crank_single_clock_wait (h);
+  fail_unless_equals_uint64 (gst_clock_get_time (GST_ELEMENT_CLOCK
+          (h->element)), 1500 * GST_MSECOND);
+  buffer = gst_harness_pull (h);
+  sink_handoff_float32 (NULL, buffer, NULL, GUINT_TO_POINTER (3));
+  gst_buffer_unref (buffer);
+
+  fail_unless_equals_int (gst_harness_buffers_received (h), 4);
+
+  gst_harness_teardown (h2);
+  gst_harness_teardown (h);
+  gst_harness_teardown (hsrc);
+  gst_object_unref (audiointerleave);
+}
+
+GST_END_TEST;
+
 static Suite *
 audiointerleave_suite (void)
 {
@@ -951,6 +1121,7 @@
   tcase_add_test (tc_chain, test_audiointerleave_2ch_pipeline_input_chanpos);
   tcase_add_test (tc_chain, test_audiointerleave_2ch_pipeline_custom_chanpos);
   tcase_add_test (tc_chain, test_audiointerleave_2ch_pipeline_no_chanpos);
+  tcase_add_test (tc_chain, test_audiointerleave_2ch_smallbuf);
 
   return s;
 }
diff --git a/tests/check/elements/audiomixer.c b/tests/check/elements/audiomixer.c
index ddfdbe1..8fe329d 100644
--- a/tests/check/elements/audiomixer.c
+++ b/tests/check/elements/audiomixer.c
@@ -35,6 +35,8 @@
 #include <gst/check/gstconsistencychecker.h>
 #include <gst/audio/audio.h>
 #include <gst/base/gstbasesrc.h>
+#include <gst/controller/gstdirectcontrolbinding.h>
+#include <gst/controller/gstinterpolationcontrolsource.h>
 
 static GMainLoop *main_loop;
 
@@ -1835,6 +1837,79 @@
 
 GST_END_TEST;
 
+static void
+set_pad_volume_fade (GstPad * pad, GstClockTime start, gdouble start_value,
+    GstClockTime end, gdouble end_value)
+{
+  GstControlSource *cs;
+  GstTimedValueControlSource *tvcs;
+
+  cs = gst_interpolation_control_source_new ();
+  fail_unless (gst_object_add_control_binding (GST_OBJECT_CAST (pad),
+          gst_direct_control_binding_new_absolute (GST_OBJECT_CAST (pad),
+              "volume", cs)));
+
+  /* set volume interpolation mode */
+  g_object_set (cs, "mode", GST_INTERPOLATION_MODE_LINEAR, NULL);
+
+  tvcs = (GstTimedValueControlSource *) cs;
+  fail_unless (gst_timed_value_control_source_set (tvcs, start, start_value));
+  fail_unless (gst_timed_value_control_source_set (tvcs, end, end_value));
+  gst_object_unref (cs);
+}
+
+GST_START_TEST (test_sinkpad_property_controller)
+{
+  GstBus *bus;
+  GstMessage *msg;
+  GstElement *pipeline, *sink, *mix, *src1;
+  GstPad *srcpad, *sinkpad;
+  GError *error = NULL;
+  gchar *debug;
+
+  pipeline = gst_pipeline_new ("pipeline");
+  mix = gst_element_factory_make ("audiomixer", "audiomixer");
+  sink = gst_element_factory_make ("fakesink", "sink");
+  src1 = gst_element_factory_make ("audiotestsrc", "src1");
+  g_object_set (src1, "num-buffers", 100, NULL);
+  gst_bin_add_many (GST_BIN (pipeline), src1, mix, sink, NULL);
+  fail_unless (gst_element_link (mix, sink));
+
+  srcpad = gst_element_get_static_pad (src1, "src");
+  sinkpad = gst_element_get_request_pad (mix, "sink_0");
+  fail_unless (gst_pad_link (srcpad, sinkpad) == GST_PAD_LINK_OK);
+  set_pad_volume_fade (sinkpad, 0, 0, 1.0, 2.0);
+  gst_object_unref (sinkpad);
+  gst_object_unref (srcpad);
+
+  gst_element_set_state (pipeline, GST_STATE_PLAYING);
+
+  bus = gst_pipeline_get_bus (GST_PIPELINE (pipeline));
+  msg = gst_bus_timed_pop_filtered (bus, GST_CLOCK_TIME_NONE,
+      GST_MESSAGE_EOS | GST_MESSAGE_ERROR);
+  switch (GST_MESSAGE_TYPE (msg)) {
+    case GST_MESSAGE_ERROR:
+      gst_message_parse_error (msg, &error, &debug);
+      g_printerr ("ERROR from element %s: %s\n",
+          GST_OBJECT_NAME (msg->src), error->message);
+      g_printerr ("Debug info: %s\n", debug);
+      g_error_free (error);
+      g_free (debug);
+      break;
+    case GST_MESSAGE_EOS:
+      break;
+    default:
+      g_assert_not_reached ();
+  }
+  gst_message_unref (msg);
+  g_object_unref (bus);
+
+  gst_element_set_state (pipeline, GST_STATE_NULL);
+  gst_object_unref (pipeline);
+}
+
+GST_END_TEST;
+
 static Suite *
 audiomixer_suite (void)
 {
@@ -1859,6 +1934,7 @@
   tcase_add_test (tc_chain, test_sync_discont);
   tcase_add_test (tc_chain, test_sync_unaligned);
   tcase_add_test (tc_chain, test_segment_base_handling);
+  tcase_add_test (tc_chain, test_sinkpad_property_controller);
 
   /* Use a longer timeout */
 #ifdef HAVE_VALGRIND
diff --git a/tests/check/elements/compositor.c b/tests/check/elements/compositor.c
index a63ce7f..a949d38 100644
--- a/tests/check/elements/compositor.c
+++ b/tests/check/elements/compositor.c
@@ -1328,8 +1328,6 @@
 
 GST_END_TEST;
 
-static gint buffers_sent = 0;
-
 static void
 _pipeline_eos (GstBus * bus, GstMessage * message, GstPipeline * bin)
 {
@@ -1349,7 +1347,7 @@
   GST_INFO ("buffer recvd");
   gst_sample_unref (sample);
 
-  if (*buffers_recvd > buffers_sent)
+  if (*buffers_recvd > 5)
     g_main_loop_quit (main_loop);
 
   return GST_FLOW_OK;
@@ -1372,9 +1370,8 @@
   bus = gst_element_get_bus (bin);
   gst_bus_add_signal_watch_full (bus, G_PRIORITY_HIGH);
 
-  buffers_sent = 5;
   src = gst_element_factory_make ("videotestsrc", NULL);
-  g_object_set (src, "num-buffers", buffers_sent, NULL);
+  g_object_set (src, "num-buffers", 5, NULL);
   compositor = gst_element_factory_make ("compositor", NULL);
   appsink = gst_element_factory_make ("appsink", NULL);
   g_object_set (appsink, "emit-signals", TRUE, NULL);
@@ -1413,7 +1410,7 @@
   state_res = gst_element_set_state (bin, GST_STATE_NULL);
   ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE);
 
-  ck_assert_msg (buffers_recvd > buffers_sent, "Did not receive more buffers"
+  ck_assert_msg (buffers_recvd > 5, "Did not receive more buffers"
       " than were sent");
 
   /* cleanup */
@@ -1425,6 +1422,169 @@
 
 GST_END_TEST;
 
+typedef struct
+{
+  gint buffers_sent;
+  GstClockTime first_pts;
+  gboolean first;
+  gboolean drop;
+} TestStartTimeSelectionData;
+
+static GstPadProbeReturn
+drop_buffer_cb (GstPad * pad, GstPadProbeInfo * info, gpointer user_data)
+{
+  TestStartTimeSelectionData *data = user_data;
+
+  if (data->drop) {
+    data->buffers_sent = data->buffers_sent + 1;
+    if (data->buffers_sent < 4)
+      return GST_PAD_PROBE_DROP;
+  }
+
+  data->first_pts = GST_BUFFER_PTS (info->data);
+
+  return GST_PAD_PROBE_REMOVE;
+}
+
+static GstFlowReturn
+first_buffer_received_cb (GstElement * appsink, gpointer user_data)
+{
+  TestStartTimeSelectionData *data = user_data;
+  GstSample *sample;
+  GstBuffer *buffer;
+
+  g_signal_emit_by_name (appsink, "pull-sample", &sample);
+  ck_assert_msg (sample != NULL, "NULL sample received!");
+
+  buffer = gst_sample_get_buffer (sample);
+  if (!data->first) {
+    fail_unless_equals_uint64 (GST_BUFFER_PTS (buffer), 0);
+  } else {
+    fail_unless_equals_uint64 (GST_BUFFER_PTS (buffer), data->first_pts);
+  }
+
+  gst_sample_unref (sample);
+
+  g_main_loop_quit (main_loop);
+
+  return GST_FLOW_EOS;
+}
+
+static void
+run_test_start_time (gboolean first, gboolean drop, gboolean unlinked)
+{
+  gboolean res;
+  GstPadLinkReturn link_res;
+  GstStateChangeReturn state_res;
+  GstElement *bin, *src, *compositor, *appsink;
+  GstPad *srcpad, *sinkpad;
+  GstBus *bus;
+  TestStartTimeSelectionData data = { 0, GST_CLOCK_TIME_NONE, first, drop };
+
+  GST_INFO ("preparing test");
+
+  /* build pipeline */
+  bin = gst_pipeline_new ("pipeline");
+  bus = gst_element_get_bus (bin);
+  gst_bus_add_signal_watch_full (bus, G_PRIORITY_HIGH);
+
+  src = gst_element_factory_make ("videotestsrc", NULL);
+
+  srcpad = gst_element_get_static_pad (src, "src");
+  gst_pad_add_probe (srcpad, GST_PAD_PROBE_TYPE_BUFFER, drop_buffer_cb, &data,
+      NULL);
+  gst_object_unref (srcpad);
+
+  g_object_set (src, "is-live", TRUE, NULL);
+  compositor = gst_element_factory_make ("compositor", NULL);
+  g_object_set (compositor, "start-time-selection", (first ? 1 : 0), NULL);
+  appsink = gst_element_factory_make ("appsink", NULL);
+  g_object_set (appsink, "emit-signals", TRUE, NULL);
+  gst_bin_add_many (GST_BIN (bin), src, compositor, appsink, NULL);
+
+  res = gst_element_link (compositor, appsink);
+  ck_assert_msg (res == TRUE, "Could not link compositor with appsink");
+  srcpad = gst_element_get_static_pad (src, "src");
+  sinkpad = gst_element_get_request_pad (compositor, "sink_%u");
+  link_res = gst_pad_link (srcpad, sinkpad);
+  ck_assert_msg (GST_PAD_LINK_SUCCESSFUL (link_res), "videotestsrc -> "
+      "compositor pad  link failed: %i", link_res);
+  gst_object_unref (sinkpad);
+  gst_object_unref (srcpad);
+
+  if (unlinked) {
+    sinkpad = gst_element_get_request_pad (compositor, "sink_%u");
+    gst_object_unref (sinkpad);
+  }
+
+  GST_INFO ("pipeline built, connecting signals");
+
+  state_res = gst_element_set_state (bin, GST_STATE_PLAYING);
+  ck_assert_msg (state_res != GST_STATE_CHANGE_FAILURE, "Pipeline didn't play");
+
+  main_loop = g_main_loop_new (NULL, FALSE);
+  g_signal_connect (bus, "message::error", G_CALLBACK (message_received), bin);
+  g_signal_connect (bus, "message::warning", G_CALLBACK (message_received),
+      bin);
+  g_signal_connect (bus, "message::eos", G_CALLBACK (_pipeline_eos), bin);
+  g_signal_connect (appsink, "new-sample",
+      G_CALLBACK (first_buffer_received_cb), &data);
+
+  GST_INFO ("starting test");
+  g_main_loop_run (main_loop);
+
+  state_res = gst_element_set_state (bin, GST_STATE_NULL);
+  ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE);
+
+  /* cleanup */
+  g_main_loop_unref (main_loop);
+  gst_bus_remove_signal_watch (bus);
+  gst_object_unref (bus);
+  gst_object_unref (bin);
+}
+
+GST_START_TEST (test_start_time_zero_live_drop_0)
+{
+  run_test_start_time (FALSE, FALSE, FALSE);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_start_time_zero_live_drop_3)
+{
+  run_test_start_time (FALSE, TRUE, FALSE);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_start_time_zero_live_drop_3_unlinked_1)
+{
+  run_test_start_time (FALSE, TRUE, TRUE);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_start_time_first_live_drop_0)
+{
+  run_test_start_time (TRUE, FALSE, FALSE);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_start_time_first_live_drop_3)
+{
+  run_test_start_time (TRUE, TRUE, FALSE);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_start_time_first_live_drop_3_unlinked_1)
+{
+  run_test_start_time (TRUE, TRUE, TRUE);
+}
+
+GST_END_TEST;
+
 static Suite *
 compositor_suite (void)
 {
@@ -1446,6 +1606,12 @@
   tcase_add_test (tc_chain, test_segment_base_handling);
   tcase_add_test (tc_chain, test_obscured_skipped);
   tcase_add_test (tc_chain, test_ignore_eos);
+  tcase_add_test (tc_chain, test_start_time_zero_live_drop_0);
+  tcase_add_test (tc_chain, test_start_time_zero_live_drop_3);
+  tcase_add_test (tc_chain, test_start_time_zero_live_drop_3_unlinked_1);
+  tcase_add_test (tc_chain, test_start_time_first_live_drop_0);
+  tcase_add_test (tc_chain, test_start_time_first_live_drop_3);
+  tcase_add_test (tc_chain, test_start_time_first_live_drop_3_unlinked_1);
 
   /* Use a longer timeout */
 #ifdef HAVE_VALGRIND
diff --git a/tests/check/elements/dash_mpd.c b/tests/check/elements/dash_mpd.c
index 9eec345..ee5b6cb 100644
--- a/tests/check/elements/dash_mpd.c
+++ b/tests/check/elements/dash_mpd.c
@@ -53,14 +53,14 @@
   const gchar *xml =
       "<?xml version=\"1.0\"?>"
       "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
-      " profiles=\"urn:mpeg:dash:profile:isoff-main:2011\"> </MPD>";
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\"> </MPD>";
 
   gboolean ret;
   GstMpdClient *mpdclient = gst_mpd_client_new ();
 
   ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
-
   assert_equals_int (ret, TRUE);
+
   /* check that unset elements with default values are properly configured */
   assert_equals_int (mpdclient->mpd_node->type, GST_MPD_FILE_TYPE_STATIC);
 
@@ -80,27 +80,26 @@
   const gchar *xml =
       "<?xml version=\"1.0\"?>"
       "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
-      " profiles=\"urn:mpeg:dash:profile:isoff-main:2011\""
-      " schemaLocation=\"TestSchemaLocation\""
-      " xmlns:xsi=\"TestNamespaceXSI\""
-      " xmlns:ext=\"TestNamespaceEXT\""
-      " id=\"testId\""
-      " type=\"static\""
-      " availabilityStartTime=\"2015-03-24T1:10:50\""
-      " availabilityEndTime=\"2015-03-24T1:10:50\""
-      " mediaPresentationDuration=\"P0Y1M2DT12H10M20.5S\""
-      " minimumUpdatePeriod=\"P0Y1M2DT12H10M20.5S\""
-      " minBufferTime=\"P0Y1M2DT12H10M20.5S\""
-      " timeShiftBufferDepth=\"P0Y1M2DT12H10M20.5S\""
-      " suggestedPresentationDelay=\"P0Y1M2DT12H10M20.5S\""
-      " maxSegmentDuration=\"P0Y1M2DT12H10M20.5S\""
-      " maxSubsegmentDuration=\"P0Y1M2DT12H10M20.5S\"></MPD>";
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\""
+      "     schemaLocation=\"TestSchemaLocation\""
+      "     xmlns:xsi=\"TestNamespaceXSI\""
+      "     xmlns:ext=\"TestNamespaceEXT\""
+      "     id=\"testId\""
+      "     type=\"static\""
+      "     availabilityStartTime=\"2015-03-24T1:10:50\""
+      "     availabilityEndTime=\"2015-03-24T1:10:50\""
+      "     mediaPresentationDuration=\"P0Y1M2DT12H10M20.5S\""
+      "     minimumUpdatePeriod=\"P0Y1M2DT12H10M20.5S\""
+      "     minBufferTime=\"P0Y1M2DT12H10M20.5S\""
+      "     timeShiftBufferDepth=\"P0Y1M2DT12H10M20.5S\""
+      "     suggestedPresentationDelay=\"P0Y1M2DT12H10M20.5S\""
+      "     maxSegmentDuration=\"P0Y1M2DT12H10M20.5S\""
+      "     maxSubsegmentDuration=\"P0Y1M2DT12H10M20.5S\"></MPD>";
 
   gboolean ret;
   GstMpdClient *mpdclient = gst_mpd_client_new ();
 
   ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
-
   assert_equals_int (ret, TRUE);
 
   assert_equals_string (mpdclient->mpd_node->default_namespace,
@@ -159,25 +158,26 @@
  * Test parsing the ProgramInformation attributes
  *
  */
-GST_START_TEST (dash_mpdparser_program_information)
+GST_START_TEST (dash_mpdparser_programInformation)
 {
   GstProgramInformationNode *program;
   const gchar *xml =
       "<?xml version=\"1.0\"?>"
       "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
-      " profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
-      "<ProgramInformation lang=\"en\""
-      " moreInformationURL=\"TestMoreInformationUrl\">"
-      "<Title>TestTitle</Title>"
-      "<Source>TestSource</Source>"
-      "<Copyright>TestCopyright</Copyright> </ProgramInformation> </MPD>";
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
+      "  <ProgramInformation lang=\"en\""
+      "                      moreInformationURL=\"TestMoreInformationUrl\">"
+      "    <Title>TestTitle</Title>"
+      "    <Source>TestSource</Source>"
+      "    <Copyright>TestCopyright</Copyright>"
+      "  </ProgramInformation> </MPD>";
 
   gboolean ret;
   GstMpdClient *mpdclient = gst_mpd_client_new ();
 
   ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
-
   assert_equals_int (ret, TRUE);
+
   program =
       (GstProgramInformationNode *) mpdclient->mpd_node->ProgramInfo->data;
   assert_equals_string (program->lang, "en");
@@ -195,22 +195,22 @@
  * Test parsing the BaseURL attributes
  *
  */
-GST_START_TEST (dash_mpdparser_base_URL)
+GST_START_TEST (dash_mpdparser_baseURL)
 {
   GstBaseURL *baseURL;
   const gchar *xml =
       "<?xml version=\"1.0\"?>"
       "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
-      " profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
-      "<BaseURL serviceLocation=\"TestServiceLocation\""
-      " byteRange=\"TestByteRange\">TestBaseURL</BaseURL></MPD>";
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
+      "  <BaseURL serviceLocation=\"TestServiceLocation\""
+      "     byteRange=\"TestByteRange\">TestBaseURL</BaseURL></MPD>";
 
   gboolean ret;
   GstMpdClient *mpdclient = gst_mpd_client_new ();
 
   ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
-
   assert_equals_int (ret, TRUE);
+
   baseURL = (GstBaseURL *) mpdclient->mpd_node->BaseURLs->data;
   assert_equals_string (baseURL->baseURL, "TestBaseURL");
   assert_equals_string (baseURL->serviceLocation, "TestServiceLocation");
@@ -222,7 +222,7 @@
 GST_END_TEST;
 
 /*
- * Test parsing the location attributes
+ * Test parsing the Location attributes
  *
  */
 GST_START_TEST (dash_mpdparser_location)
@@ -231,15 +231,15 @@
   const gchar *xml =
       "<?xml version=\"1.0\"?>"
       "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
-      " profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
-      "<Location>TestLocation</Location></MPD>";
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
+      "  <Location>TestLocation</Location></MPD>";
 
   gboolean ret;
   GstMpdClient *mpdclient = gst_mpd_client_new ();
 
   ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
-
   assert_equals_int (ret, TRUE);
+
   location = (gchar *) mpdclient->mpd_node->Locations->data;
   assert_equals_string (location, "TestLocation");
 
@@ -249,7 +249,7 @@
 GST_END_TEST;
 
 /*
- * Test parsing metrics attributes
+ * Test parsing Metrics attributes
  *
  */
 GST_START_TEST (dash_mpdparser_metrics)
@@ -258,24 +258,25 @@
   const gchar *xml =
       "<?xml version=\"1.0\"?>"
       "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
-      " profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
-      "<Metrics metrics=\"TestMetric\"></Metrics></MPD>";
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
+      "  <Metrics metrics=\"TestMetric\"></Metrics></MPD>";
 
   gboolean ret;
   GstMpdClient *mpdclient = gst_mpd_client_new ();
 
   ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
-
   assert_equals_int (ret, TRUE);
+
   metricsNode = (GstMetricsNode *) mpdclient->mpd_node->Metrics->data;
   assert_equals_string (metricsNode->metrics, "TestMetric");
+
   gst_mpd_client_free (mpdclient);
 }
 
 GST_END_TEST;
 
 /*
- * Test parsing metrics range attributes
+ * Test parsing Metrics Range attributes
  *
  */
 GST_START_TEST (dash_mpdparser_metrics_range)
@@ -285,16 +286,18 @@
   const gchar *xml =
       "<?xml version=\"1.0\"?>"
       "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
-      " profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
-      "<Metrics><Range starttime=\"P0Y1M2DT12H10M20.5S\""
-      " duration=\"P0Y1M2DT12H10M20.1234567S\"></Range></Metrics></MPD>";
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
+      "  <Metrics>"
+      "    <Range starttime=\"P0Y1M2DT12H10M20.5S\""
+      "           duration=\"P0Y1M2DT12H10M20.1234567S\">"
+      "    </Range></Metrics></MPD>";
 
   gboolean ret;
   GstMpdClient *mpdclient = gst_mpd_client_new ();
 
   ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
-
   assert_equals_int (ret, TRUE);
+
   metricsNode = (GstMetricsNode *) mpdclient->mpd_node->Metrics->data;
   assert_equals_pointer (metricsNode->metrics, NULL);
   metricsRangeNode = (GstMetricsRangeNode *) metricsNode->MetricsRanges->data;
@@ -309,7 +312,7 @@
 GST_END_TEST;
 
 /*
- * Test parsing metrics reporting attributes
+ * Test parsing Metrics Reporting attributes
  *
  */
 GST_START_TEST (dash_mpdparser_metrics_reporting)
@@ -318,15 +321,15 @@
   const gchar *xml =
       "<?xml version=\"1.0\"?>"
       "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
-      " profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
-      "<Metrics><Reporting></Reporting></Metrics></MPD>";
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
+      "  <Metrics><Reporting></Reporting></Metrics></MPD>";
 
   gboolean ret;
   GstMpdClient *mpdclient = gst_mpd_client_new ();
 
   ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
-
   assert_equals_int (ret, TRUE);
+
   metricsNode = (GstMetricsNode *) mpdclient->mpd_node->Metrics->data;
   assert_equals_pointer (metricsNode->metrics, NULL);
 
@@ -345,17 +348,18 @@
   const gchar *xml =
       "<?xml version=\"1.0\"?>"
       "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
-      " profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
-      "<Period id=\"TestId\" start=\"P0Y1M2DT12H10M20.1234567S\""
-      " duration=\"P0Y1M2DT12H10M20.7654321S\""
-      " bitstreamSwitching=\"true\"></Period></MPD>";
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
+      "  <Period id=\"TestId\""
+      "          start=\"P0Y1M2DT12H10M20.1234567S\""
+      "          duration=\"P0Y1M2DT12H10M20.7654321S\""
+      "          bitstreamSwitching=\"true\"></Period></MPD>";
 
   gboolean ret;
   GstMpdClient *mpdclient = gst_mpd_client_new ();
 
   ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
-
   assert_equals_int (ret, TRUE);
+
   periodNode = (GstPeriodNode *) mpdclient->mpd_node->Periods->data;
   assert_equals_string (periodNode->id, "TestId");
   assert_equals_int64 (periodNode->start,
@@ -380,16 +384,18 @@
   const gchar *xml =
       "<?xml version=\"1.0\"?>"
       "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
-      " profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
-      "<Period><BaseURL serviceLocation=\"TestServiceLocation\""
-      " byteRange=\"TestByteRange\">TestBaseURL</BaseURL></Period></MPD>";
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
+      "  <Period>"
+      "    <BaseURL serviceLocation=\"TestServiceLocation\""
+      "             byteRange=\"TestByteRange\">TestBaseURL</BaseURL>"
+      "  </Period></MPD>";
 
   gboolean ret;
   GstMpdClient *mpdclient = gst_mpd_client_new ();
 
   ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
-
   assert_equals_int (ret, TRUE);
+
   periodNode = (GstPeriodNode *) mpdclient->mpd_node->Periods->data;
   baseURL = (GstBaseURL *) periodNode->BaseURLs->data;
   assert_equals_string (baseURL->baseURL, "TestBaseURL");
@@ -412,18 +418,20 @@
   const gchar *xml =
       "<?xml version=\"1.0\"?>"
       "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
-      " profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
-      "<Period><SegmentBase timescale=\"123456\""
-      " presentationTimeOffset=\"123456789\""
-      " indexRange=\"100-200\""
-      " indexRangeExact=\"true\"></SegmentBase></Period></MPD>";
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
+      "  <Period>"
+      "    <SegmentBase timescale=\"123456\""
+      "                 presentationTimeOffset=\"123456789\""
+      "                 indexRange=\"100-200\""
+      "                 indexRangeExact=\"true\">"
+      "    </SegmentBase></Period></MPD>";
 
   gboolean ret;
   GstMpdClient *mpdclient = gst_mpd_client_new ();
 
   ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
-
   assert_equals_int (ret, TRUE);
+
   periodNode = (GstPeriodNode *) mpdclient->mpd_node->Periods->data;
   segmentBase = periodNode->SegmentBase;
   assert_equals_uint64 (segmentBase->timescale, 123456);
@@ -449,17 +457,19 @@
   const gchar *xml =
       "<?xml version=\"1.0\"?>"
       "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
-      " profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
-      "<Period><SegmentBase><Initialisation"
-      " sourceURL=\"TestSourceURL\""
-      " range=\"100-200\"></Initialisation></SegmentBase></Period></MPD>";
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
+      "  <Period>"
+      "    <SegmentBase>"
+      "      <Initialisation sourceURL=\"TestSourceURL\""
+      "                      range=\"100-200\">"
+      "      </Initialisation></SegmentBase></Period></MPD>";
 
   gboolean ret;
   GstMpdClient *mpdclient = gst_mpd_client_new ();
 
   ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
-
   assert_equals_int (ret, TRUE);
+
   periodNode = (GstPeriodNode *) mpdclient->mpd_node->Periods->data;
   segmentBase = periodNode->SegmentBase;
   initialization = segmentBase->Initialization;
@@ -484,17 +494,19 @@
   const gchar *xml =
       "<?xml version=\"1.0\"?>"
       "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
-      " profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
-      "<Period><SegmentBase><RepresentationIndex"
-      " sourceURL=\"TestSourceURL\""
-      " range=\"100-200\"></RepresentationIndex></SegmentBase></Period></MPD>";
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
+      "  <Period>"
+      "    <SegmentBase>"
+      "      <RepresentationIndex sourceURL=\"TestSourceURL\""
+      "                           range=\"100-200\">"
+      "      </RepresentationIndex></SegmentBase></Period></MPD>";
 
   gboolean ret;
   GstMpdClient *mpdclient = gst_mpd_client_new ();
 
   ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
-
   assert_equals_int (ret, TRUE);
+
   periodNode = (GstPeriodNode *) mpdclient->mpd_node->Periods->data;
   segmentBase = periodNode->SegmentBase;
   representationIndex = segmentBase->RepresentationIndex;
@@ -518,15 +530,15 @@
   const gchar *xml =
       "<?xml version=\"1.0\"?>"
       "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
-      " profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
-      "<Period><SegmentList></SegmentList></Period></MPD>";
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
+      "  <Period><SegmentList></SegmentList></Period></MPD>";
 
   gboolean ret;
   GstMpdClient *mpdclient = gst_mpd_client_new ();
 
   ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
-
   assert_equals_int (ret, TRUE);
+
   periodNode = (GstPeriodNode *) mpdclient->mpd_node->Periods->data;
   segmentList = periodNode->SegmentList;
   fail_if (segmentList == NULL);
@@ -548,16 +560,18 @@
   const gchar *xml =
       "<?xml version=\"1.0\"?>"
       "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
-      " profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
-      "<Period><SegmentList duration=\"10\" startNumber=\"11\">"
-      "</SegmentList></Period></MPD>";
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
+      "  <Period>"
+      "    <SegmentList duration=\"10\""
+      "                 startNumber=\"11\">"
+      "    </SegmentList></Period></MPD>";
 
   gboolean ret;
   GstMpdClient *mpdclient = gst_mpd_client_new ();
 
   ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
-
   assert_equals_int (ret, TRUE);
+
   periodNode = (GstPeriodNode *) mpdclient->mpd_node->Periods->data;
   segmentList = periodNode->SegmentList;
   multSegBaseType = segmentList->MultSegBaseType;
@@ -583,18 +597,20 @@
   const gchar *xml =
       "<?xml version=\"1.0\"?>"
       "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
-      " profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
-      "<Period><SegmentList timescale=\"10\""
-      " presentationTimeOffset=\"11\""
-      " indexRange=\"20-21\""
-      " indexRangeExact=\"false\"></SegmentList></Period></MPD>";
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
+      "  <Period>"
+      "    <SegmentList timescale=\"10\""
+      "                 presentationTimeOffset=\"11\""
+      "                 indexRange=\"20-21\""
+      "                 indexRangeExact=\"false\">"
+      "    </SegmentList></Period></MPD>";
 
   gboolean ret;
   GstMpdClient *mpdclient = gst_mpd_client_new ();
 
   ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
-
   assert_equals_int (ret, TRUE);
+
   periodNode = (GstPeriodNode *) mpdclient->mpd_node->Periods->data;
   segmentList = periodNode->SegmentList;
   multSegBaseType = segmentList->MultSegBaseType;
@@ -624,16 +640,18 @@
   const gchar *xml =
       "<?xml version=\"1.0\"?>"
       "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
-      " profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
-      "<Period><SegmentList><SegmentTimeline "
-      " ></SegmentTimeline></SegmentList></Period></MPD>";
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
+      "  <Period>"
+      "    <SegmentList>"
+      "      <SegmentTimeline>"
+      "      </SegmentTimeline></SegmentList></Period></MPD>";
 
   gboolean ret;
   GstMpdClient *mpdclient = gst_mpd_client_new ();
 
   ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
-
   assert_equals_int (ret, TRUE);
+
   periodNode = (GstPeriodNode *) mpdclient->mpd_node->Periods->data;
   segmentList = periodNode->SegmentList;
   multSegBaseType = segmentList->MultSegBaseType;
@@ -660,16 +678,19 @@
   const gchar *xml =
       "<?xml version=\"1.0\"?>"
       "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
-      " profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
-      "<Period><SegmentList><SegmentTimeline><S t=\"1\" d=\"2\" r=\"3\">"
-      "</S></SegmentTimeline></SegmentList></Period></MPD>";
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
+      "  <Period>"
+      "    <SegmentList>"
+      "      <SegmentTimeline>"
+      "        <S t=\"1\" d=\"2\" r=\"3\">"
+      "        </S></SegmentTimeline></SegmentList></Period></MPD>";
 
   gboolean ret;
   GstMpdClient *mpdclient = gst_mpd_client_new ();
 
   ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
-
   assert_equals_int (ret, TRUE);
+
   periodNode = (GstPeriodNode *) mpdclient->mpd_node->Periods->data;
   segmentList = periodNode->SegmentList;
   multSegBaseType = segmentList->MultSegBaseType;
@@ -698,17 +719,19 @@
   const gchar *xml =
       "<?xml version=\"1.0\"?>"
       "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
-      " profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
-      "<Period><SegmentList><BitstreamSwitching"
-      " sourceURL=\"TestSourceURL\" range=\"100-200\""
-      "></BitstreamSwitching></SegmentList></Period></MPD>";
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
+      "  <Period>"
+      "    <SegmentList>"
+      "      <BitstreamSwitching sourceURL=\"TestSourceURL\""
+      "                          range=\"100-200\">"
+      "      </BitstreamSwitching></SegmentList></Period></MPD>";
 
   gboolean ret;
   GstMpdClient *mpdclient = gst_mpd_client_new ();
 
   ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
-
   assert_equals_int (ret, TRUE);
+
   periodNode = (GstPeriodNode *) mpdclient->mpd_node->Periods->data;
   segmentList = periodNode->SegmentList;
   multSegBaseType = segmentList->MultSegBaseType;
@@ -734,18 +757,21 @@
   const gchar *xml =
       "<?xml version=\"1.0\"?>"
       "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
-      " profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
-      "<Period><SegmentList><SegmentURL"
-      " media=\"TestMedia\" mediaRange=\"100-200\""
-      " index=\"TestIndex\" indexRange=\"300-400\""
-      "></SegmentURL></SegmentList></Period></MPD>";
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
+      "  <Period>"
+      "    <SegmentList>"
+      "      <SegmentURL media=\"TestMedia\""
+      "                  mediaRange=\"100-200\""
+      "                  index=\"TestIndex\""
+      "                  indexRange=\"300-400\">"
+      "      </SegmentURL></SegmentList></Period></MPD>";
 
   gboolean ret;
   GstMpdClient *mpdclient = gst_mpd_client_new ();
 
   ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
-
   assert_equals_int (ret, TRUE);
+
   periodNode = (GstPeriodNode *) mpdclient->mpd_node->Periods->data;
   segmentList = periodNode->SegmentList;
   segmentURL = (GstSegmentURLNode *) segmentList->SegmentURL->data;
@@ -772,19 +798,20 @@
   const gchar *xml =
       "<?xml version=\"1.0\"?>"
       "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
-      " profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
-      "<Period><SegmentTemplate"
-      " media=\"TestMedia\" index=\"TestIndex\""
-      " initialization=\"TestInitialization\""
-      " bitstreamSwitching=\"TestBitstreamSwitching\""
-      "></SegmentTemplate></Period></MPD>";
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
+      "  <Period>"
+      "    <SegmentTemplate media=\"TestMedia\""
+      "                     index=\"TestIndex\""
+      "                     initialization=\"TestInitialization\""
+      "                     bitstreamSwitching=\"TestBitstreamSwitching\">"
+      "    </SegmentTemplate></Period></MPD>";
 
   gboolean ret;
   GstMpdClient *mpdclient = gst_mpd_client_new ();
 
   ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
-
   assert_equals_int (ret, TRUE);
+
   periodNode = (GstPeriodNode *) mpdclient->mpd_node->Periods->data;
   segmentTemplate = periodNode->SegmentTemplate;
   assert_equals_string (segmentTemplate->media, "TestMedia");
@@ -810,17 +837,18 @@
   const gchar *xml =
       "<?xml version=\"1.0\"?>"
       "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
-      " profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
-      "<Period><SegmentTemplate"
-      " duration=\"10\" startNumber=\"11\""
-      "></SegmentTemplate></Period></MPD>";
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
+      "  <Period>"
+      "    <SegmentTemplate duration=\"10\""
+      "                     startNumber=\"11\">"
+      "    </SegmentTemplate></Period></MPD>";
 
   gboolean ret;
   GstMpdClient *mpdclient = gst_mpd_client_new ();
 
   ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
-
   assert_equals_int (ret, TRUE);
+
   periodNode = (GstPeriodNode *) mpdclient->mpd_node->Periods->data;
   segmentTemplate = periodNode->SegmentTemplate;
   multSegBaseType = segmentTemplate->MultSegBaseType;
@@ -846,18 +874,20 @@
   const gchar *xml =
       "<?xml version=\"1.0\"?>"
       "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
-      " profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
-      "<Period><SegmentTemplate timescale=\"123456\""
-      " presentationTimeOffset=\"123456789\""
-      " indexRange=\"100-200\""
-      " indexRangeExact=\"true\"></SegmentTemplate></Period></MPD>";
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
+      "  <Period>"
+      "    <SegmentTemplate timescale=\"123456\""
+      "                     presentationTimeOffset=\"123456789\""
+      "                     indexRange=\"100-200\""
+      "                     indexRangeExact=\"true\">"
+      "    </SegmentTemplate></Period></MPD>";
 
   gboolean ret;
   GstMpdClient *mpdclient = gst_mpd_client_new ();
 
   ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
-
   assert_equals_int (ret, TRUE);
+
   periodNode = (GstPeriodNode *) mpdclient->mpd_node->Periods->data;
   segmentTemplate = periodNode->SegmentTemplate;
   multSegBaseType = segmentTemplate->MultSegBaseType;
@@ -887,16 +917,18 @@
   const gchar *xml =
       "<?xml version=\"1.0\"?>"
       "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
-      " profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
-      "<Period><SegmentTemplate><SegmentTimeline>"
-      "</SegmentTimeline></SegmentTemplate></Period></MPD>";
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
+      "  <Period>"
+      "    <SegmentTemplate>"
+      "      <SegmentTimeline>"
+      "      </SegmentTimeline></SegmentTemplate></Period></MPD>";
 
   gboolean ret;
   GstMpdClient *mpdclient = gst_mpd_client_new ();
 
   ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
-
   assert_equals_int (ret, TRUE);
+
   periodNode = (GstPeriodNode *) mpdclient->mpd_node->Periods->data;
   segmentTemplate = periodNode->SegmentTemplate;
   multSegBaseType = segmentTemplate->MultSegBaseType;
@@ -923,16 +955,19 @@
   const gchar *xml =
       "<?xml version=\"1.0\"?>"
       "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
-      " profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
-      "<Period><SegmentTemplate><SegmentTimeline><S t=\"1\" d=\"2\" r=\"3\">"
-      "</S></SegmentTimeline></SegmentTemplate></Period></MPD>";
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
+      "  <Period>"
+      "    <SegmentTemplate>"
+      "      <SegmentTimeline>"
+      "        <S t=\"1\" d=\"2\" r=\"3\">"
+      "        </S></SegmentTimeline></SegmentTemplate></Period></MPD>";
 
   gboolean ret;
   GstMpdClient *mpdclient = gst_mpd_client_new ();
 
   ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
-
   assert_equals_int (ret, TRUE);
+
   periodNode = (GstPeriodNode *) mpdclient->mpd_node->Periods->data;
   segmentTemplate = periodNode->SegmentTemplate;
   multSegBaseType = segmentTemplate->MultSegBaseType;
@@ -961,17 +996,19 @@
   const gchar *xml =
       "<?xml version=\"1.0\"?>"
       "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
-      " profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
-      "<Period><SegmentTemplate><BitstreamSwitching"
-      " sourceURL=\"TestSourceURL\" range=\"100-200\""
-      "></BitstreamSwitching></SegmentTemplate></Period></MPD>";
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
+      "  <Period>"
+      "    <SegmentTemplate>"
+      "      <BitstreamSwitching sourceURL=\"TestSourceURL\""
+      "                          range=\"100-200\">"
+      "      </BitstreamSwitching></SegmentTemplate></Period></MPD>";
 
   gboolean ret;
   GstMpdClient *mpdclient = gst_mpd_client_new ();
 
   ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
-
   assert_equals_int (ret, TRUE);
+
   periodNode = (GstPeriodNode *) mpdclient->mpd_node->Periods->data;
   segmentTemplate = periodNode->SegmentTemplate;
   multSegBaseType = segmentTemplate->MultSegBaseType;
@@ -996,23 +1033,33 @@
   const gchar *xml =
       "<?xml version=\"1.0\"?>"
       "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
-      " profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
-      "<Period><AdaptationSet id=\"7\" group=\"8\" lang=\"en\""
-      " contentType=\"TestContentType\" par=\"4:3\""
-      " minBandwidth=\"100\" maxBandwidth=\"200\""
-      " minWidth=\"1000\" maxWidth=\"2000\""
-      " minHeight=\"1100\" maxHeight=\"2100\""
-      " minFrameRate=\"25/123\" maxFrameRate=\"26\""
-      " segmentAlignment=\"2\" subsegmentAlignment=\"false\""
-      " subsegmentStartsWithSAP=\"6\""
-      " bitstreamSwitching=\"false\"></AdaptationSet></Period></MPD>";
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
+      "  <Period>"
+      "    <AdaptationSet id=\"7\""
+      "                   group=\"8\""
+      "                   lang=\"en\""
+      "                   contentType=\"TestContentType\""
+      "                   par=\"4:3\""
+      "                   minBandwidth=\"100\""
+      "                   maxBandwidth=\"200\""
+      "                   minWidth=\"1000\""
+      "                   maxWidth=\"2000\""
+      "                   minHeight=\"1100\""
+      "                   maxHeight=\"2100\""
+      "                   minFrameRate=\"25/123\""
+      "                   maxFrameRate=\"26\""
+      "                   segmentAlignment=\"2\""
+      "                   subsegmentAlignment=\"false\""
+      "                   subsegmentStartsWithSAP=\"6\""
+      "                   bitstreamSwitching=\"false\">"
+      "    </AdaptationSet></Period></MPD>";
 
   gboolean ret;
   GstMpdClient *mpdclient = gst_mpd_client_new ();
 
   ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
-
   assert_equals_int (ret, TRUE);
+
   periodNode = (GstPeriodNode *) mpdclient->mpd_node->Periods->data;
   adaptationSet = (GstAdaptationSetNode *) periodNode->AdaptationSets->data;
   assert_equals_uint64 (adaptationSet->id, 7);
@@ -1055,27 +1102,30 @@
   const gchar *xml =
       "<?xml version=\"1.0\"?>"
       "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
-      " profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
-      " <Period><AdaptationSet profiles=\"TestProfiles\""
-      " width=\"100\" height=\"200\""
-      " sar=\"10:20\""
-      " frameRate=\"30/40\""
-      " audioSamplingRate=\"TestAudioSamplingRate\""
-      " mimeType=\"TestMimeType\""
-      " segmentProfiles=\"TestSegmentProfiles\""
-      " codecs=\"TestCodecs\""
-      " maximumSAPPeriod=\"3.4\""
-      " startWithSAP=\"0\""
-      " maxPlayoutRate=\"1.2\""
-      " codingDependency=\"false\""
-      " scanType=\"progressive\"></AdaptationSet></Period></MPD>";
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
+      "  <Period>"
+      "    <AdaptationSet profiles=\"TestProfiles\""
+      "                   width=\"100\""
+      "                   height=\"200\""
+      "                   sar=\"10:20\""
+      "                   frameRate=\"30/40\""
+      "                   audioSamplingRate=\"TestAudioSamplingRate\""
+      "                   mimeType=\"TestMimeType\""
+      "                   segmentProfiles=\"TestSegmentProfiles\""
+      "                   codecs=\"TestCodecs\""
+      "                   maximumSAPPeriod=\"3.4\""
+      "                   startWithSAP=\"0\""
+      "                   maxPlayoutRate=\"1.2\""
+      "                   codingDependency=\"false\""
+      "                   scanType=\"progressive\">"
+      "    </AdaptationSet></Period></MPD>";
 
   gboolean ret;
   GstMpdClient *mpdclient = gst_mpd_client_new ();
 
   ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
-
   assert_equals_int (ret, TRUE);
+
   periodNode = (GstPeriodNode *) mpdclient->mpd_node->Periods->data;
   adaptationSet = (GstAdaptationSetNode *) periodNode->AdaptationSets->data;
   representationBase = adaptationSet->RepresentationBase;
@@ -1116,17 +1166,19 @@
   const gchar *xml =
       "<?xml version=\"1.0\"?>"
       "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
-      " profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
-      "<Period><AdaptationSet><FramePacking"
-      " schemeIdUri=\"TestSchemeIdUri\" value=\"TestValue\""
-      " ></FramePacking></AdaptationSet></Period></MPD>";
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
+      "  <Period>"
+      "    <AdaptationSet>"
+      "      <FramePacking schemeIdUri=\"TestSchemeIdUri\""
+      "                    value=\"TestValue\">"
+      "      </FramePacking></AdaptationSet></Period></MPD>";
 
   gboolean ret;
   GstMpdClient *mpdclient = gst_mpd_client_new ();
 
   ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
-
   assert_equals_int (ret, TRUE);
+
   periodNode = (GstPeriodNode *) mpdclient->mpd_node->Periods->data;
   adaptationSet = (GstAdaptationSetNode *) periodNode->AdaptationSets->data;
   representationBase = adaptationSet->RepresentationBase;
@@ -1153,17 +1205,19 @@
   const gchar *xml =
       "<?xml version=\"1.0\"?>"
       "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
-      " profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
-      "<Period><AdaptationSet><AudioChannelConfiguration"
-      " schemeIdUri=\"TestSchemeIdUri\" value=\"TestValue\""
-      " ></AudioChannelConfiguration></AdaptationSet></Period></MPD>";
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
+      "  <Period>"
+      "    <AdaptationSet>"
+      "      <AudioChannelConfiguration schemeIdUri=\"TestSchemeIdUri\""
+      "                                 value=\"TestValue\">"
+      "      </AudioChannelConfiguration></AdaptationSet></Period></MPD>";
 
   gboolean ret;
   GstMpdClient *mpdclient = gst_mpd_client_new ();
 
   ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
-
   assert_equals_int (ret, TRUE);
+
   periodNode = (GstPeriodNode *) mpdclient->mpd_node->Periods->data;
   adaptationSet = (GstAdaptationSetNode *) periodNode->AdaptationSets->data;
   representationBase = adaptationSet->RepresentationBase;
@@ -1191,17 +1245,19 @@
   const gchar *xml =
       "<?xml version=\"1.0\"?>"
       "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
-      " profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
-      "<Period><AdaptationSet><ContentProtection"
-      " schemeIdUri=\"TestSchemeIdUri\" value=\"TestValue\""
-      " ></ContentProtection></AdaptationSet></Period></MPD>";
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
+      "  <Period>"
+      "    <AdaptationSet>"
+      "      <ContentProtection schemeIdUri=\"TestSchemeIdUri\""
+      "                         value=\"TestValue\">"
+      "      </ContentProtection></AdaptationSet></Period></MPD>";
 
   gboolean ret;
   GstMpdClient *mpdclient = gst_mpd_client_new ();
 
   ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
-
   assert_equals_int (ret, TRUE);
+
   periodNode = (GstPeriodNode *) mpdclient->mpd_node->Periods->data;
   adaptationSet = (GstAdaptationSetNode *) periodNode->AdaptationSets->data;
   representationBase = adaptationSet->RepresentationBase;
@@ -1227,17 +1283,19 @@
   const gchar *xml =
       "<?xml version=\"1.0\"?>"
       "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
-      " profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
-      "<Period><AdaptationSet><Accessibility"
-      " schemeIdUri=\"TestSchemeIdUri\" value=\"TestValue\""
-      " ></Accessibility></AdaptationSet></Period></MPD>";
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
+      "  <Period>"
+      "    <AdaptationSet>"
+      "      <Accessibility schemeIdUri=\"TestSchemeIdUri\""
+      "                     value=\"TestValue\">"
+      "      </Accessibility></AdaptationSet></Period></MPD>";
 
   gboolean ret;
   GstMpdClient *mpdclient = gst_mpd_client_new ();
 
   ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
-
   assert_equals_int (ret, TRUE);
+
   periodNode = (GstPeriodNode *) mpdclient->mpd_node->Periods->data;
   adaptationSet = (GstAdaptationSetNode *) periodNode->AdaptationSets->data;
   accessibility = (GstDescriptorType *) adaptationSet->Accessibility->data;
@@ -1261,17 +1319,19 @@
   const gchar *xml =
       "<?xml version=\"1.0\"?>"
       "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
-      " profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
-      "<Period><AdaptationSet><Role"
-      " schemeIdUri=\"TestSchemeIdUri\" value=\"TestValue\""
-      " ></Role></AdaptationSet></Period></MPD>";
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
+      "  <Period>"
+      "    <AdaptationSet>"
+      "      <Role schemeIdUri=\"TestSchemeIdUri\""
+      "            value=\"TestValue\">"
+      "      </Role></AdaptationSet></Period></MPD>";
 
   gboolean ret;
   GstMpdClient *mpdclient = gst_mpd_client_new ();
 
   ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
-
   assert_equals_int (ret, TRUE);
+
   periodNode = (GstPeriodNode *) mpdclient->mpd_node->Periods->data;
   adaptationSet = (GstAdaptationSetNode *) periodNode->AdaptationSets->data;
   role = (GstDescriptorType *) adaptationSet->Role->data;
@@ -1295,17 +1355,19 @@
   const gchar *xml =
       "<?xml version=\"1.0\"?>"
       "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
-      " profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
-      "<Period><AdaptationSet><Rating"
-      " schemeIdUri=\"TestSchemeIdUri\" value=\"TestValue\""
-      " ></Rating></AdaptationSet></Period></MPD>";
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
+      "  <Period>"
+      "    <AdaptationSet>"
+      "      <Rating schemeIdUri=\"TestSchemeIdUri\""
+      "              value=\"TestValue\">"
+      "      </Rating></AdaptationSet></Period></MPD>";
 
   gboolean ret;
   GstMpdClient *mpdclient = gst_mpd_client_new ();
 
   ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
-
   assert_equals_int (ret, TRUE);
+
   periodNode = (GstPeriodNode *) mpdclient->mpd_node->Periods->data;
   adaptationSet = (GstAdaptationSetNode *) periodNode->AdaptationSets->data;
   rating = (GstDescriptorType *) adaptationSet->Rating->data;
@@ -1329,17 +1391,19 @@
   const gchar *xml =
       "<?xml version=\"1.0\"?>"
       "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
-      " profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
-      "<Period><AdaptationSet><Viewpoint"
-      " schemeIdUri=\"TestSchemeIdUri\" value=\"TestValue\""
-      " ></Viewpoint></AdaptationSet></Period></MPD>";
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
+      "  <Period>"
+      "    <AdaptationSet>"
+      "      <Viewpoint schemeIdUri=\"TestSchemeIdUri\""
+      "                 value=\"TestValue\">"
+      "      </Viewpoint></AdaptationSet></Period></MPD>";
 
   gboolean ret;
   GstMpdClient *mpdclient = gst_mpd_client_new ();
 
   ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
-
   assert_equals_int (ret, TRUE);
+
   periodNode = (GstPeriodNode *) mpdclient->mpd_node->Periods->data;
   adaptationSet = (GstAdaptationSetNode *) periodNode->AdaptationSets->data;
   viewpoint = (GstDescriptorType *) adaptationSet->Viewpoint->data;
@@ -1363,17 +1427,21 @@
   const gchar *xml =
       "<?xml version=\"1.0\"?>"
       "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
-      " profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
-      "<Period><AdaptationSet><ContentComponent"
-      " id=\"1\" lang=\"en\" contentType=\"TestContentType\" par=\"10:20\""
-      " ></ContentComponent></AdaptationSet></Period></MPD>";
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
+      "  <Period>"
+      "    <AdaptationSet>"
+      "      <ContentComponent id=\"1\""
+      "                        lang=\"en\""
+      "                        contentType=\"TestContentType\""
+      "                        par=\"10:20\">"
+      "      </ContentComponent></AdaptationSet></Period></MPD>";
 
   gboolean ret;
   GstMpdClient *mpdclient = gst_mpd_client_new ();
 
   ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
-
   assert_equals_int (ret, TRUE);
+
   periodNode = (GstPeriodNode *) mpdclient->mpd_node->Periods->data;
   adaptationSet = (GstAdaptationSetNode *) periodNode->AdaptationSets->data;
   contentComponent = (GstContentComponentNode *)
@@ -1402,17 +1470,21 @@
   const gchar *xml =
       "<?xml version=\"1.0\"?>"
       "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
-      " profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
-      "<Period><AdaptationSet><ContentComponent><Accessibility"
-      " schemeIdUri=\"TestSchemeIdUri\" value=\"TestValue\""
-      " ></Accessibility></ContentComponent></AdaptationSet></Period></MPD>";
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
+      "  <Period>"
+      "    <AdaptationSet>"
+      "      <ContentComponent>"
+      "        <Accessibility schemeIdUri=\"TestSchemeIdUri\""
+      "                       value=\"TestValue\">"
+      "        </Accessibility>"
+      "      </ContentComponent></AdaptationSet></Period></MPD>";
 
   gboolean ret;
   GstMpdClient *mpdclient = gst_mpd_client_new ();
 
   ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
-
   assert_equals_int (ret, TRUE);
+
   periodNode = (GstPeriodNode *) mpdclient->mpd_node->Periods->data;
   adaptationSet = (GstAdaptationSetNode *) periodNode->AdaptationSets->data;
   contentComponent = (GstContentComponentNode *)
@@ -1439,17 +1511,20 @@
   const gchar *xml =
       "<?xml version=\"1.0\"?>"
       "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
-      " profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
-      "<Period><AdaptationSet><ContentComponent><Role"
-      " schemeIdUri=\"TestSchemeIdUri\" value=\"TestValue\""
-      " ></Role></ContentComponent></AdaptationSet></Period></MPD>";
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
+      "  <Period>"
+      "    <AdaptationSet>"
+      "      <ContentComponent>"
+      "        <Role schemeIdUri=\"TestSchemeIdUri\""
+      "              value=\"TestValue\">"
+      "        </Role></ContentComponent></AdaptationSet></Period></MPD>";
 
   gboolean ret;
   GstMpdClient *mpdclient = gst_mpd_client_new ();
 
   ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
-
   assert_equals_int (ret, TRUE);
+
   periodNode = (GstPeriodNode *) mpdclient->mpd_node->Periods->data;
   adaptationSet = (GstAdaptationSetNode *) periodNode->AdaptationSets->data;
   contentComponent = (GstContentComponentNode *)
@@ -1476,17 +1551,21 @@
   const gchar *xml =
       "<?xml version=\"1.0\"?>"
       "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
-      " profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
-      "<Period><AdaptationSet><ContentComponent><Rating"
-      " schemeIdUri=\"TestSchemeIdUri\" value=\"TestValue\""
-      " ></Rating></ContentComponent></AdaptationSet></Period></MPD>";
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
+      "  <Period>"
+      "    <AdaptationSet>"
+      "      <ContentComponent>"
+      "        <Rating schemeIdUri=\"TestSchemeIdUri\""
+      "                value=\"TestValue\">"
+      "        </Rating>"
+      "      </ContentComponent></AdaptationSet></Period></MPD>";
 
   gboolean ret;
   GstMpdClient *mpdclient = gst_mpd_client_new ();
 
   ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
-
   assert_equals_int (ret, TRUE);
+
   periodNode = (GstPeriodNode *) mpdclient->mpd_node->Periods->data;
   adaptationSet = (GstAdaptationSetNode *) periodNode->AdaptationSets->data;
   contentComponent = (GstContentComponentNode *)
@@ -1513,17 +1592,21 @@
   const gchar *xml =
       "<?xml version=\"1.0\"?>"
       "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
-      " profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
-      "<Period><AdaptationSet><ContentComponent><Viewpoint"
-      " schemeIdUri=\"TestSchemeIdUri\" value=\"TestValue\""
-      " ></Viewpoint></ContentComponent></AdaptationSet></Period></MPD>";
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
+      "  <Period>"
+      "    <AdaptationSet>"
+      "      <ContentComponent>"
+      "        <Viewpoint schemeIdUri=\"TestSchemeIdUri\""
+      "                   value=\"TestValue\">"
+      "        </Viewpoint>"
+      "      </ContentComponent></AdaptationSet></Period></MPD>";
 
   gboolean ret;
   GstMpdClient *mpdclient = gst_mpd_client_new ();
 
   ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
-
   assert_equals_int (ret, TRUE);
+
   periodNode = (GstPeriodNode *) mpdclient->mpd_node->Periods->data;
   adaptationSet = (GstAdaptationSetNode *) periodNode->AdaptationSets->data;
   contentComponent = (GstContentComponentNode *)
@@ -1549,17 +1632,19 @@
   const gchar *xml =
       "<?xml version=\"1.0\"?>"
       "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
-      " profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
-      "<Period><AdaptationSet><BaseURL"
-      " serviceLocation=\"TestServiceLocation\" byteRange=\"TestByteRange\""
-      " >TestBaseURL</BaseURL></AdaptationSet></Period></MPD>";
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
+      "  <Period>"
+      "    <AdaptationSet>"
+      "      <BaseURL serviceLocation=\"TestServiceLocation\""
+      "               byteRange=\"TestByteRange\">TestBaseURL</BaseURL>"
+      "    </AdaptationSet></Period></MPD>";
 
   gboolean ret;
   GstMpdClient *mpdclient = gst_mpd_client_new ();
 
   ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
-
   assert_equals_int (ret, TRUE);
+
   periodNode = (GstPeriodNode *) mpdclient->mpd_node->Periods->data;
   adaptationSet = (GstAdaptationSetNode *) periodNode->AdaptationSets->data;
   baseURL = (GstBaseURL *) adaptationSet->BaseURLs->data;
@@ -1584,20 +1669,21 @@
   const gchar *xml =
       "<?xml version=\"1.0\"?>"
       "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
-      " profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
-      "<Period><AdaptationSet><SegmentBase"
-      " timescale=\"123456\""
-      " presentationTimeOffset=\"123456789\""
-      " indexRange=\"100-200\""
-      " indexRangeExact=\"true\""
-      " ></SegmentBase></AdaptationSet></Period></MPD>";
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
+      "  <Period>"
+      "    <AdaptationSet>"
+      "      <SegmentBase timescale=\"123456\""
+      "                   presentationTimeOffset=\"123456789\""
+      "                   indexRange=\"100-200\""
+      "                   indexRangeExact=\"true\">"
+      "      </SegmentBase></AdaptationSet></Period></MPD>";
 
   gboolean ret;
   GstMpdClient *mpdclient = gst_mpd_client_new ();
 
   ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
-
   assert_equals_int (ret, TRUE);
+
   periodNode = (GstPeriodNode *) mpdclient->mpd_node->Periods->data;
   adaptationSet = (GstAdaptationSetNode *) periodNode->AdaptationSets->data;
   segmentBase = adaptationSet->SegmentBase;
@@ -1625,17 +1711,20 @@
   const gchar *xml =
       "<?xml version=\"1.0\"?>"
       "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
-      " profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
-      "<Period><AdaptationSet><SegmentBase><Initialisation"
-      " sourceURL=\"TestSourceURL\" range=\"100-200\""
-      "></Initialisation></SegmentBase></AdaptationSet></Period></MPD>";
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
+      "  <Period>"
+      "    <AdaptationSet>"
+      "      <SegmentBase>"
+      "        <Initialisation sourceURL=\"TestSourceURL\""
+      "                        range=\"100-200\">"
+      "        </Initialisation></SegmentBase></AdaptationSet></Period></MPD>";
 
   gboolean ret;
   GstMpdClient *mpdclient = gst_mpd_client_new ();
 
   ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
-
   assert_equals_int (ret, TRUE);
+
   periodNode = (GstPeriodNode *) mpdclient->mpd_node->Periods->data;
   adaptationSet = (GstAdaptationSetNode *) periodNode->AdaptationSets->data;
   segmentBase = adaptationSet->SegmentBase;
@@ -1662,17 +1751,21 @@
   const gchar *xml =
       "<?xml version=\"1.0\"?>"
       "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
-      " profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
-      "<Period><AdaptationSet><SegmentBase><RepresentationIndex"
-      " sourceURL=\"TestSourceURL\" range=\"100-200\""
-      "></RepresentationIndex></SegmentBase></AdaptationSet></Period></MPD>";
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
+      "  <Period>"
+      "    <AdaptationSet>"
+      "      <SegmentBase>"
+      "        <RepresentationIndex sourceURL=\"TestSourceURL\""
+      "                             range=\"100-200\">"
+      "        </RepresentationIndex>"
+      "      </SegmentBase></AdaptationSet></Period></MPD>";
 
   gboolean ret;
   GstMpdClient *mpdclient = gst_mpd_client_new ();
 
   ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
-
   assert_equals_int (ret, TRUE);
+
   periodNode = (GstPeriodNode *) mpdclient->mpd_node->Periods->data;
   adaptationSet = (GstAdaptationSetNode *) periodNode->AdaptationSets->data;
   segmentBase = adaptationSet->SegmentBase;
@@ -1698,16 +1791,17 @@
   const gchar *xml =
       "<?xml version=\"1.0\"?>"
       "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
-      " profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
-      "<Period><AdaptationSet><SegmentList"
-      "></SegmentList></AdaptationSet></Period></MPD>";
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
+      "  <Period>"
+      "    <AdaptationSet>"
+      "      <SegmentList></SegmentList></AdaptationSet></Period></MPD>";
 
   gboolean ret;
   GstMpdClient *mpdclient = gst_mpd_client_new ();
 
   ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
-
   assert_equals_int (ret, TRUE);
+
   periodNode = (GstPeriodNode *) mpdclient->mpd_node->Periods->data;
   adaptationSet = (GstAdaptationSetNode *) periodNode->AdaptationSets->data;
   segmentList = adaptationSet->SegmentList;
@@ -1730,19 +1824,21 @@
   const gchar *xml =
       "<?xml version=\"1.0\"?>"
       "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
-      " profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
-      "<Period><AdaptationSet><SegmentTemplate"
-      " media=\"TestMedia\" index=\"TestIndex\""
-      " initialization=\"TestInitialization\""
-      " bitstreamSwitching=\"TestBitstreamSwitching\""
-      "></SegmentTemplate></AdaptationSet></Period></MPD>";
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
+      "  <Period>"
+      "    <AdaptationSet>"
+      "      <SegmentTemplate media=\"TestMedia\""
+      "                       index=\"TestIndex\""
+      "                       initialization=\"TestInitialization\""
+      "                       bitstreamSwitching=\"TestBitstreamSwitching\">"
+      "      </SegmentTemplate></AdaptationSet></Period></MPD>";
 
   gboolean ret;
   GstMpdClient *mpdclient = gst_mpd_client_new ();
 
   ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
-
   assert_equals_int (ret, TRUE);
+
   periodNode = (GstPeriodNode *) mpdclient->mpd_node->Periods->data;
   adaptationSet = (GstAdaptationSetNode *) periodNode->AdaptationSets->data;
   segmentTemplate = adaptationSet->SegmentTemplate;
@@ -1757,6 +1853,51 @@
 
 GST_END_TEST;
 
+
+/*
+ * Test parsing Period AdaptationSet SegmentTemplate attributes with
+ * inheritance
+ */
+GST_START_TEST (dash_mpdparser_period_adaptationSet_segmentTemplate_inherit)
+{
+  GstPeriodNode *periodNode;
+  GstAdaptationSetNode *adaptationSet;
+  GstSegmentTemplateNode *segmentTemplate;
+  const gchar *xml =
+      "<?xml version=\"1.0\"?>"
+      "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
+      "  <Period>"
+      "    <SegmentTemplate media=\"ParentMedia\" "
+      "                     initialization=\"ParentInitialization\">"
+      "    </SegmentTemplate>"
+      "    <AdaptationSet>"
+      "      <SegmentTemplate media=\"TestMedia\""
+      "                       index=\"TestIndex\""
+      "                       bitstreamSwitching=\"TestBitstreamSwitching\">"
+      "      </SegmentTemplate></AdaptationSet></Period></MPD>";
+
+  gboolean ret;
+  GstMpdClient *mpdclient = gst_mpd_client_new ();
+
+  ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
+  assert_equals_int (ret, TRUE);
+
+  periodNode = (GstPeriodNode *) mpdclient->mpd_node->Periods->data;
+  adaptationSet = (GstAdaptationSetNode *) periodNode->AdaptationSets->data;
+  segmentTemplate = adaptationSet->SegmentTemplate;
+  assert_equals_string (segmentTemplate->media, "TestMedia");
+  assert_equals_string (segmentTemplate->index, "TestIndex");
+  assert_equals_string (segmentTemplate->initialization,
+      "ParentInitialization");
+  assert_equals_string (segmentTemplate->bitstreamSwitching,
+      "TestBitstreamSwitching");
+
+  gst_mpd_client_free (mpdclient);
+}
+
+GST_END_TEST;
+
 /*
  * Test parsing Period AdaptationSet Representation attributes
  *
@@ -1769,21 +1910,22 @@
   const gchar *xml =
       "<?xml version=\"1.0\"?>"
       "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
-      " profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
-      "<Period><AdaptationSet><Representation"
-      " id=\"Test Id\""
-      " bandwidth=\"100\""
-      " qualityRanking=\"200\""
-      " dependencyId=\"one two three\""
-      " mediaStreamStructureId=\"\""
-      "></Representation></AdaptationSet></Period></MPD>";
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
+      "  <Period>"
+      "    <AdaptationSet>"
+      "      <Representation id=\"Test Id\""
+      "                      bandwidth=\"100\""
+      "                      qualityRanking=\"200\""
+      "                      dependencyId=\"one two three\""
+      "                      mediaStreamStructureId=\"\">"
+      "      </Representation></AdaptationSet></Period></MPD>";
 
   gboolean ret;
   GstMpdClient *mpdclient = gst_mpd_client_new ();
 
   ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
-
   assert_equals_int (ret, TRUE);
+
   periodNode = (GstPeriodNode *) mpdclient->mpd_node->Periods->data;
   adaptationSet = (GstAdaptationSetNode *) periodNode->AdaptationSets->data;
   representation = (GstRepresentationNode *)
@@ -1815,16 +1957,18 @@
   const gchar *xml =
       "<?xml version=\"1.0\"?>"
       "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
-      " profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
-      "<Period><AdaptationSet><Representation"
-      "></Representation></AdaptationSet></Period></MPD>";
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
+      "  <Period>"
+      "    <AdaptationSet>"
+      "      <Representation>"
+      "      </Representation></AdaptationSet></Period></MPD>";
 
   gboolean ret;
   GstMpdClient *mpdclient = gst_mpd_client_new ();
 
   ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
-
   assert_equals_int (ret, TRUE);
+
   periodNode = (GstPeriodNode *) mpdclient->mpd_node->Periods->data;
   adaptationSet = (GstAdaptationSetNode *) periodNode->AdaptationSets->data;
   representation = (GstRepresentationNode *)
@@ -1851,17 +1995,20 @@
   const gchar *xml =
       "<?xml version=\"1.0\"?>"
       "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
-      " profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
-      "<Period><AdaptationSet><Representation><BaseURL"
-      " serviceLocation=\"TestServiceLocation\" byteRange=\"TestByteRange\""
-      " >TestBaseURL</BaseURL></Representation></AdaptationSet></Period></MPD>";
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
+      "  <Period>"
+      "    <AdaptationSet>"
+      "      <Representation>"
+      "        <BaseURL serviceLocation=\"TestServiceLocation\""
+      "                 byteRange=\"TestByteRange\">TestBaseURL</BaseURL>"
+      "      </Representation></AdaptationSet></Period></MPD>";
 
   gboolean ret;
   GstMpdClient *mpdclient = gst_mpd_client_new ();
 
   ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
-
   assert_equals_int (ret, TRUE);
+
   periodNode = (GstPeriodNode *) mpdclient->mpd_node->Periods->data;
   adaptationSet = (GstAdaptationSetNode *) periodNode->AdaptationSets->data;
   representation = (GstRepresentationNode *)
@@ -1889,20 +2036,23 @@
   const gchar *xml =
       "<?xml version=\"1.0\"?>"
       "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
-      " profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
-      "<Period><AdaptationSet><Representation><SubRepresentation"
-      " level=\"100\""
-      " dependencyLevel=\"1 2 3\""
-      " bandwidth=\"200\""
-      " contentComponent=\"content1 content2\""
-      " ></SubRepresentation></Representation></AdaptationSet></Period></MPD>";
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
+      "  <Period>"
+      "    <AdaptationSet>"
+      "      <Representation>"
+      "        <SubRepresentation level=\"100\""
+      "                           dependencyLevel=\"1 2 3\""
+      "                           bandwidth=\"200\""
+      "                           contentComponent=\"content1 content2\">"
+      "        </SubRepresentation>"
+      "      </Representation></AdaptationSet></Period></MPD>";
 
   gboolean ret;
   GstMpdClient *mpdclient = gst_mpd_client_new ();
 
   ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
-
   assert_equals_int (ret, TRUE);
+
   periodNode = (GstPeriodNode *) mpdclient->mpd_node->Periods->data;
   adaptationSet = (GstAdaptationSetNode *) periodNode->AdaptationSets->data;
   representation = (GstRepresentationNode *)
@@ -1939,16 +2089,20 @@
   const gchar *xml =
       "<?xml version=\"1.0\"?>"
       "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
-      " profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
-      "<Period><AdaptationSet><Representation><SubRepresentation"
-      " ></SubRepresentation></Representation></AdaptationSet></Period></MPD>";
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
+      "  <Period>"
+      "    <AdaptationSet>"
+      "      <Representation>"
+      "        <SubRepresentation>"
+      "        </SubRepresentation>"
+      "      </Representation></AdaptationSet></Period></MPD>";
 
   gboolean ret;
   GstMpdClient *mpdclient = gst_mpd_client_new ();
 
   ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
-
   assert_equals_int (ret, TRUE);
+
   periodNode = (GstPeriodNode *) mpdclient->mpd_node->Periods->data;
   adaptationSet = (GstAdaptationSetNode *) periodNode->AdaptationSets->data;
   representation = (GstRepresentationNode *)
@@ -1977,16 +2131,20 @@
   const gchar *xml =
       "<?xml version=\"1.0\"?>"
       "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
-      " profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
-      "<Period><AdaptationSet><Representation><SegmentBase"
-      " ></SegmentBase></Representation></AdaptationSet></Period></MPD>";
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
+      "  <Period>"
+      "    <AdaptationSet>"
+      "      <Representation>"
+      "        <SegmentBase>"
+      "        </SegmentBase>"
+      "      </Representation></AdaptationSet></Period></MPD>";
 
   gboolean ret;
   GstMpdClient *mpdclient = gst_mpd_client_new ();
 
   ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
-
   assert_equals_int (ret, TRUE);
+
   periodNode = (GstPeriodNode *) mpdclient->mpd_node->Periods->data;
   adaptationSet = (GstAdaptationSetNode *) periodNode->AdaptationSets->data;
   representation = (GstRepresentationNode *)
@@ -2012,16 +2170,20 @@
   const gchar *xml =
       "<?xml version=\"1.0\"?>"
       "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
-      " profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
-      "<Period><AdaptationSet><Representation><SegmentList"
-      " ></SegmentList></Representation></AdaptationSet></Period></MPD>";
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
+      "  <Period>"
+      "    <AdaptationSet>"
+      "      <Representation>"
+      "        <SegmentList>"
+      "        </SegmentList>"
+      "      </Representation></AdaptationSet></Period></MPD>";
 
   gboolean ret;
   GstMpdClient *mpdclient = gst_mpd_client_new ();
 
   ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
-
   assert_equals_int (ret, TRUE);
+
   periodNode = (GstPeriodNode *) mpdclient->mpd_node->Periods->data;
   adaptationSet = (GstAdaptationSetNode *) periodNode->AdaptationSets->data;
   representation = (GstRepresentationNode *)
@@ -2047,16 +2209,20 @@
   const gchar *xml =
       "<?xml version=\"1.0\"?>"
       "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
-      " profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
-      "<Period><AdaptationSet><Representation><SegmentTemplate"
-      " ></SegmentTemplate></Representation></AdaptationSet></Period></MPD>";
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
+      "  <Period>"
+      "    <AdaptationSet>"
+      "      <Representation>"
+      "        <SegmentTemplate>"
+      "        </SegmentTemplate>"
+      "      </Representation></AdaptationSet></Period></MPD>";
 
   gboolean ret;
   GstMpdClient *mpdclient = gst_mpd_client_new ();
 
   ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
-
   assert_equals_int (ret, TRUE);
+
   periodNode = (GstPeriodNode *) mpdclient->mpd_node->Periods->data;
   adaptationSet = (GstAdaptationSetNode *) periodNode->AdaptationSets->data;
   representation = (GstRepresentationNode *)
@@ -2080,15 +2246,15 @@
   const gchar *xml =
       "<?xml version=\"1.0\"?>"
       "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
-      " profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
-      "<Period><Subset contains=\"1 2 3\"></Subset></Period></MPD>";
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
+      "  <Period><Subset contains=\"1 2 3\"></Subset></Period></MPD>";
 
   gboolean ret;
   GstMpdClient *mpdclient = gst_mpd_client_new ();
 
   ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
-
   assert_equals_int (ret, TRUE);
+
   periodNode = (GstPeriodNode *) mpdclient->mpd_node->Periods->data;
   subset = (GstSubsetNode *) periodNode->Subsets->data;
   assert_equals_uint64 (subset->size, 3);
@@ -2102,23 +2268,521 @@
 GST_END_TEST;
 
 /*
+ * Test parsing UTCTiming elements
+ *
+ */
+GST_START_TEST (dash_mpdparser_utctiming)
+{
+  const gchar *xml =
+      "<?xml version=\"1.0\"?>"
+      "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
+      " profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
+      "<UTCTiming schemeIdUri=\"urn:mpeg:dash:utc:http-xsdate:2014\" value=\"http://time.akamai.com/?iso http://example.time/xsdate\"/>"
+      "<UTCTiming schemeIdUri=\"urn:mpeg:dash:utc:direct:2014\" value=\"2002-05-30T09:30:10Z \"/>"
+      "<UTCTiming schemeIdUri=\"urn:mpeg:dash:utc:ntp:2014\" value=\"0.europe.pool.ntp.org 1.europe.pool.ntp.org 2.europe.pool.ntp.org 3.europe.pool.ntp.org\"/>"
+      "</MPD>";
+  gboolean ret;
+  GstMpdClient *mpdclient = gst_mpd_client_new ();
+  GstMPDUTCTimingType selected_method;
+  gchar **urls;
+
+  ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
+
+  assert_equals_int (ret, TRUE);
+  fail_if (mpdclient->mpd_node == NULL);
+  fail_if (mpdclient->mpd_node->UTCTiming == NULL);
+  assert_equals_int (g_list_length (mpdclient->mpd_node->UTCTiming), 3);
+  urls =
+      gst_mpd_client_get_utc_timing_sources (mpdclient,
+      GST_MPD_UTCTIMING_TYPE_HTTP_XSDATE, &selected_method);
+  fail_if (urls == NULL);
+  assert_equals_int (selected_method, GST_MPD_UTCTIMING_TYPE_HTTP_XSDATE);
+  assert_equals_int (g_strv_length (urls), 2);
+  assert_equals_string (urls[0], "http://time.akamai.com/?iso");
+  assert_equals_string (urls[1], "http://example.time/xsdate");
+  urls =
+      gst_mpd_client_get_utc_timing_sources (mpdclient,
+      GST_MPD_UTCTIMING_TYPE_HTTP_XSDATE | GST_MPD_UTCTIMING_TYPE_HTTP_ISO,
+      &selected_method);
+  fail_if (urls == NULL);
+  assert_equals_int (selected_method, GST_MPD_UTCTIMING_TYPE_HTTP_XSDATE);
+  urls =
+      gst_mpd_client_get_utc_timing_sources (mpdclient,
+      GST_MPD_UTCTIMING_TYPE_DIRECT, NULL);
+  fail_if (urls == NULL);
+  assert_equals_int (g_strv_length (urls), 1);
+  assert_equals_string (urls[0], "2002-05-30T09:30:10Z ");
+  urls =
+      gst_mpd_client_get_utc_timing_sources (mpdclient,
+      GST_MPD_UTCTIMING_TYPE_HTTP_XSDATE | GST_MPD_UTCTIMING_TYPE_DIRECT,
+      &selected_method);
+  fail_if (urls == NULL);
+  assert_equals_int (selected_method, GST_MPD_UTCTIMING_TYPE_HTTP_XSDATE);
+  gst_mpd_client_free (mpdclient);
+}
+
+GST_END_TEST;
+
+/*
  * Test parsing the type property: value "dynamic"
  *
  */
 GST_START_TEST (dash_mpdparser_type_dynamic)
 {
+  gboolean isLive;
+
   const gchar *xml =
       "<?xml version=\"1.0\"?>"
       "<MPD type=\"dynamic\" xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
-      " profiles=\"urn:mpeg:dash:profile:isoff-main:2011\"> </MPD>";
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\"> </MPD>";
 
   gboolean ret;
   GstMpdClient *mpdclient = gst_mpd_client_new ();
 
   ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
-
   assert_equals_int (ret, TRUE);
-  assert_equals_int (mpdclient->mpd_node->type, GST_MPD_FILE_TYPE_DYNAMIC);
+
+  isLive = gst_mpd_client_is_live (mpdclient);
+  assert_equals_int (isLive, 1);
+
+  gst_mpd_client_free (mpdclient);
+}
+
+GST_END_TEST;
+
+/*
+ * Validate gst_mpdparser_build_URL_from_template function
+ *
+ */
+GST_START_TEST (dash_mpdparser_template_parsing)
+{
+  const gchar *url_template;
+  const gchar *id = "TestId";
+  guint number = 7;
+  guint bandwidth = 2500;
+  guint64 time = 100;
+  gchar *result;
+
+  url_template = "TestMedia$Bandwidth$$$test";
+  result =
+      gst_mpdparser_build_URL_from_template (url_template, id, number,
+      bandwidth, time);
+  assert_equals_string (result, "TestMedia2500$test");
+  g_free (result);
+
+}
+
+GST_END_TEST;
+
+/*
+ * Test handling isoff ondemand profile
+ *
+ */
+GST_START_TEST (dash_mpdparser_isoff_ondemand_profile)
+{
+  gboolean hasOnDemandProfile;
+
+  const gchar *xml =
+      "<?xml version=\"1.0\"?>"
+      "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
+      "     profiles=\"urn:mpeg:dash:profile:isoff-on-demand:2011\"></MPD>";
+
+  gboolean ret;
+  GstMpdClient *mpdclient = gst_mpd_client_new ();
+
+  ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
+  assert_equals_int (ret, TRUE);
+
+  hasOnDemandProfile = gst_mpd_client_has_isoff_ondemand_profile (mpdclient);
+  assert_equals_int (hasOnDemandProfile, 1);
+
+  gst_mpd_client_free (mpdclient);
+}
+
+GST_END_TEST;
+
+/*
+ * Test handling GstDateTime
+ *
+ */
+GST_START_TEST (dash_mpdparser_GstDateTime)
+{
+  gint64 delta;
+  GstDateTime *time1;
+  GstDateTime *time2;
+  GstDateTime *time3;
+  GDateTime *g_time2;
+  GDateTime *g_time3;
+
+  time1 = gst_date_time_new_from_iso8601_string ("2012-06-23T23:30:59Z");
+  time2 = gst_date_time_new_from_iso8601_string ("2012-06-23T23:31:00Z");
+
+  delta = gst_mpd_client_calculate_time_difference (time1, time2);
+  assert_equals_int64 (delta, 1 * GST_SECOND);
+
+  time3 =
+      gst_mpd_client_add_time_difference (time1, GST_TIME_AS_USECONDS (delta));
+
+  /* convert to GDateTime in order to compare time2 and time 3 */
+  g_time2 = gst_date_time_to_g_date_time (time2);
+  g_time3 = gst_date_time_to_g_date_time (time3);
+  fail_if (g_date_time_compare (g_time2, g_time3) != 0);
+
+  gst_date_time_unref (time1);
+  gst_date_time_unref (time2);
+  gst_date_time_unref (time3);
+  g_date_time_unref (g_time2);
+  g_date_time_unref (g_time3);
+}
+
+GST_END_TEST;
+
+/*
+ * Test various duration formats
+ */
+GST_START_TEST (dash_mpdparser_various_duration_formats)
+{
+  GstPeriodNode *periodNode;
+  const gchar *xml =
+      "<?xml version=\"1.0\"?>"
+      "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\""
+      "     availabilityStartTime=\"2015-03-24T0:0:0\""
+      "     mediaPresentationDuration=\"P100Y\">"
+      "  <Period id=\"Period0\" start=\"PT1S\"></Period>"
+      "  <Period id=\"Period1\" start=\"PT1.5S\"></Period>"
+      "  <Period id=\"Period2\" start=\"PT1,7S\"></Period>"
+      "  <Period id=\"Period3\" start=\"PT1M\"></Period>"
+      "  <Period id=\"Period4\" start=\"PT1H\"></Period>"
+      "  <Period id=\"Period5\" start=\"P1D\"></Period>"
+      "  <Period id=\"Period6\" start=\"P1M\"></Period>"
+      "  <Period id=\"Period7\" start=\"P1Y\"></Period></MPD>";
+
+  gboolean ret;
+  GstMpdClient *mpdclient = gst_mpd_client_new ();
+
+  ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
+  assert_equals_int (ret, TRUE);
+
+  ret = gst_mpd_client_setup_media_presentation (mpdclient);
+  assert_equals_int (ret, TRUE);
+
+  periodNode =
+      (GstPeriodNode *) g_list_nth_data (mpdclient->mpd_node->Periods, 0);
+  assert_equals_string (periodNode->id, "Period0");
+  assert_equals_int64 (periodNode->start,
+      (gint64) duration_to_ms (0, 0, 0, 0, 0, 1, 0));
+
+  periodNode =
+      (GstPeriodNode *) g_list_nth_data (mpdclient->mpd_node->Periods, 1);
+  assert_equals_string (periodNode->id, "Period1");
+  assert_equals_int64 (periodNode->start,
+      (gint64) duration_to_ms (0, 0, 0, 0, 0, 1, 500));
+
+  periodNode =
+      (GstPeriodNode *) g_list_nth_data (mpdclient->mpd_node->Periods, 2);
+  assert_equals_string (periodNode->id, "Period2");
+  assert_equals_int64 (periodNode->start,
+      (gint64) duration_to_ms (0, 0, 0, 0, 0, 1, 700));
+
+  periodNode =
+      (GstPeriodNode *) g_list_nth_data (mpdclient->mpd_node->Periods, 3);
+  assert_equals_string (periodNode->id, "Period3");
+  assert_equals_int64 (periodNode->start,
+      (gint64) duration_to_ms (0, 0, 0, 0, 1, 0, 0));
+
+  periodNode =
+      (GstPeriodNode *) g_list_nth_data (mpdclient->mpd_node->Periods, 4);
+  assert_equals_string (periodNode->id, "Period4");
+  assert_equals_int64 (periodNode->start,
+      (gint64) duration_to_ms (0, 0, 0, 1, 0, 0, 0));
+
+  periodNode =
+      (GstPeriodNode *) g_list_nth_data (mpdclient->mpd_node->Periods, 5);
+  assert_equals_string (periodNode->id, "Period5");
+  assert_equals_int64 (periodNode->start,
+      (gint64) duration_to_ms (0, 0, 1, 0, 0, 0, 0));
+
+  periodNode =
+      (GstPeriodNode *) g_list_nth_data (mpdclient->mpd_node->Periods, 6);
+  assert_equals_string (periodNode->id, "Period6");
+  assert_equals_int64 (periodNode->start,
+      (gint64) duration_to_ms (0, 1, 0, 0, 0, 0, 0));
+
+  periodNode =
+      (GstPeriodNode *) g_list_nth_data (mpdclient->mpd_node->Periods, 7);
+  assert_equals_string (periodNode->id, "Period7");
+  assert_equals_int64 (periodNode->start,
+      (gint64) duration_to_ms (1, 0, 0, 0, 0, 0, 0));
+
+  gst_mpd_client_free (mpdclient);
+}
+
+GST_END_TEST;
+
+/*
+ * Test media presentation setup
+ *
+ */
+GST_START_TEST (dash_mpdparser_setup_media_presentation)
+{
+  const gchar *xml =
+      "<?xml version=\"1.0\"?>"
+      "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
+      "  <Period id=\"Period0\""
+      "          duration=\"P0Y0M1DT1H1M1S\"></Period></MPD>";
+
+  gboolean ret;
+  GstMpdClient *mpdclient = gst_mpd_client_new ();
+
+  ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
+  assert_equals_int (ret, TRUE);
+
+  /* process the xml data */
+  ret = gst_mpd_client_setup_media_presentation (mpdclient);
+  assert_equals_int (ret, TRUE);
+
+  gst_mpd_client_free (mpdclient);
+}
+
+GST_END_TEST;
+
+/*
+ * Test setting a stream
+ *
+ */
+GST_START_TEST (dash_mpdparser_setup_streaming)
+{
+  GList *adaptationSets;
+  GstAdaptationSetNode *adapt_set;
+
+  const gchar *xml =
+      "<?xml version=\"1.0\"?>"
+      "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
+      "  <Period id=\"Period0\""
+      "          duration=\"P0Y0M1DT1H1M1S\">"
+      "    <AdaptationSet id=\"1\""
+      "                   mimeType=\"video/mp4\">"
+      "      <Representation>"
+      "      </Representation></AdaptationSet></Period></MPD>";
+
+  gboolean ret;
+  GstMpdClient *mpdclient = gst_mpd_client_new ();
+
+  ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
+  assert_equals_int (ret, TRUE);
+
+  /* process the xml data */
+  ret = gst_mpd_client_setup_media_presentation (mpdclient);
+  assert_equals_int (ret, TRUE);
+
+  /* get the first adaptation set of the first period */
+  adaptationSets = gst_mpd_client_get_adaptation_sets (mpdclient);
+  fail_if (adaptationSets == NULL);
+  adapt_set = (GstAdaptationSetNode *) adaptationSets->data;
+  fail_if (adapt_set == NULL);
+
+  /* setup streaming from the adaptation set */
+  ret = gst_mpd_client_setup_streaming (mpdclient, adapt_set);
+  assert_equals_int (ret, TRUE);
+
+  gst_mpd_client_free (mpdclient);
+}
+
+GST_END_TEST;
+
+/*
+ * Test handling Period selection
+ *
+ */
+GST_START_TEST (dash_mpdparser_period_selection)
+{
+  const gchar *periodName;
+  guint periodIndex;
+
+  const gchar *xml =
+      "<?xml version=\"1.0\"?>"
+      "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\""
+      "     mediaPresentationDuration=\"P0Y0M1DT1H4M3S\">"
+      "  <Period id=\"Period0\" duration=\"P0Y0M1DT1H1M1S\"></Period>"
+      "  <Period id=\"Period1\"></Period>"
+      "  <Period id=\"Period2\" start=\"P0Y0M1DT1H3M3S\"></Period></MPD>";
+
+  gboolean ret;
+  GstMpdClient *mpdclient = gst_mpd_client_new ();
+
+  ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
+  assert_equals_int (ret, TRUE);
+
+  /* period_idx should be 0 and we should have no active periods */
+  assert_equals_uint64 (mpdclient->period_idx, 0);
+  fail_unless (mpdclient->periods == NULL);
+
+  /* process the xml data */
+  ret = gst_mpd_client_setup_media_presentation (mpdclient);
+  assert_equals_int (ret, TRUE);
+
+  /* check the periods */
+  fail_unless (mpdclient->periods != NULL);
+  periodName = gst_mpd_client_get_period_id (mpdclient);
+  assert_equals_string (periodName, "Period0");
+
+  ret = gst_mpd_client_set_period_index (mpdclient, 1);
+  assert_equals_int (ret, TRUE);
+  periodName = gst_mpd_client_get_period_id (mpdclient);
+  assert_equals_string (periodName, "Period1");
+
+  ret = gst_mpd_client_set_period_index (mpdclient, 2);
+  assert_equals_int (ret, TRUE);
+  periodName = gst_mpd_client_get_period_id (mpdclient);
+  assert_equals_string (periodName, "Period2");
+
+  ret = gst_mpd_client_has_next_period (mpdclient);
+  assert_equals_int (ret, FALSE);
+  ret = gst_mpd_client_has_previous_period (mpdclient);
+  assert_equals_int (ret, TRUE);
+
+  ret = gst_mpd_client_set_period_index (mpdclient, 0);
+  assert_equals_int (ret, TRUE);
+  ret = gst_mpd_client_has_next_period (mpdclient);
+  assert_equals_int (ret, TRUE);
+  ret = gst_mpd_client_has_previous_period (mpdclient);
+  assert_equals_int (ret, FALSE);
+
+  ret = gst_mpd_client_set_period_id (mpdclient, "Period1");
+  assert_equals_int (ret, TRUE);
+  periodIndex = gst_mpd_client_get_period_index (mpdclient);
+  assert_equals_uint64 (periodIndex, 1);
+
+  gst_mpd_client_free (mpdclient);
+}
+
+GST_END_TEST;
+
+/*
+ * Test handling Period selection based on time
+ *
+ */
+GST_START_TEST (dash_mpdparser_get_period_at_time)
+{
+  guint periodIndex;
+  GstDateTime *time;
+
+  const gchar *xml =
+      "<?xml version=\"1.0\"?>"
+      "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\""
+      "     availabilityStartTime=\"2015-03-24T0:0:0\""
+      "     mediaPresentationDuration=\"P0Y0M1DT1H4M3S\">"
+      "  <Period id=\"Period0\" duration=\"P0Y0M1DT1H1M1S\"></Period>"
+      "  <Period id=\"Period1\"></Period>"
+      "  <Period id=\"Period2\" start=\"P0Y0M1DT1H3M3S\"></Period></MPD>";
+
+  gboolean ret;
+  GstMpdClient *mpdclient = gst_mpd_client_new ();
+
+  ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
+  assert_equals_int (ret, TRUE);
+
+  /* process the xml data */
+  ret = gst_mpd_client_setup_media_presentation (mpdclient);
+  assert_equals_int (ret, TRUE);
+
+  /* request period for a time before availabilityStartTime, expect period index 0 */
+  time = gst_date_time_new_from_iso8601_string ("2015-03-23T23:30:59Z");
+  periodIndex = gst_mpd_client_get_period_index_at_time (mpdclient, time);
+  gst_date_time_unref (time);
+  assert_equals_int (periodIndex, 0);
+
+  /* request period for a time from period 0 */
+  time = gst_date_time_new_from_iso8601_string ("2015-03-24T23:30:59Z");
+  periodIndex = gst_mpd_client_get_period_index_at_time (mpdclient, time);
+  gst_date_time_unref (time);
+  assert_equals_int (periodIndex, 0);
+
+  /* request period for a time from period 1 */
+  time = gst_date_time_new_from_iso8601_string ("2015-03-25T1:1:1Z");
+  periodIndex = gst_mpd_client_get_period_index_at_time (mpdclient, time);
+  gst_date_time_unref (time);
+  assert_equals_int (periodIndex, 1);
+
+  /* request period for a time from period 2 */
+  time = gst_date_time_new_from_iso8601_string ("2015-03-25T1:3:3Z");
+  periodIndex = gst_mpd_client_get_period_index_at_time (mpdclient, time);
+  gst_date_time_unref (time);
+  assert_equals_int (periodIndex, 2);
+
+  /* request period for a time after mediaPresentationDuration, expect period index G_MAXUINT */
+  time = gst_date_time_new_from_iso8601_string ("2015-03-25T1:4:3Z");
+  periodIndex = gst_mpd_client_get_period_index_at_time (mpdclient, time);
+  gst_date_time_unref (time);
+  assert_equals_int (periodIndex, G_MAXUINT);
+
+  gst_mpd_client_free (mpdclient);
+}
+
+GST_END_TEST;
+
+/*
+ * Test handling Adaptation sets
+ *
+ */
+GST_START_TEST (dash_mpdparser_adaptationSet_handling)
+{
+  const gchar *periodName;
+  guint adaptation_sets_count;
+  GList *adaptationSets;
+  guint count = 0;
+
+  const gchar *xml =
+      "<?xml version=\"1.0\"?>"
+      "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
+      "  <Period id=\"Period0\" duration=\"P0Y0M1DT1H1M1S\">"
+      "    <AdaptationSet id=\"1\"></AdaptationSet>"
+      "  </Period>"
+      "  <Period id=\"Period1\" duration=\"P0Y0M1DT1H1M1S\">"
+      "    <AdaptationSet id=\"10\"></AdaptationSet>"
+      "    <AdaptationSet id=\"11\"></AdaptationSet></Period></MPD>";
+
+  gboolean ret;
+  GstMpdClient *mpdclient = gst_mpd_client_new ();
+
+  ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
+  assert_equals_int (ret, TRUE);
+
+  /* process the xml data */
+  ret = gst_mpd_client_setup_media_presentation (mpdclient);
+  assert_equals_int (ret, TRUE);
+
+  /* period0 has 1 adaptation set */
+  fail_unless (mpdclient->periods != NULL);
+  periodName = gst_mpd_client_get_period_id (mpdclient);
+  assert_equals_string (periodName, "Period0");
+  adaptation_sets_count = gst_mpdparser_get_nb_adaptationSet (mpdclient);
+  assert_equals_int (adaptation_sets_count, 1);
+
+  /* period1 has 2 adaptation set */
+  ret = gst_mpd_client_set_period_id (mpdclient, "Period1");
+  assert_equals_int (ret, TRUE);
+  adaptation_sets_count = gst_mpdparser_get_nb_adaptationSet (mpdclient);
+  assert_equals_int (adaptation_sets_count, 2);
+
+  /* check the id for the 2 adaptation sets from period 1 */
+  adaptationSets = gst_mpd_client_get_adaptation_sets (mpdclient);
+  fail_if (adaptationSets == NULL);
+
+  for (GList * it = adaptationSets; it; it = g_list_next (it)) {
+    GstAdaptationSetNode *adapt_set;
+    adapt_set = (GstAdaptationSetNode *) it->data;
+    fail_if (adapt_set == NULL);
+
+    assert_equals_int (adapt_set->id, 10 + count);
+    count++;
+  }
 
   gst_mpd_client_free (mpdclient);
 }
@@ -2139,12 +2803,12 @@
   const gchar *xml =
       "<?xml version=\"1.0\"?>"
       "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
-      " profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
-      "<Period id=\"Period0\" duration=\"P0Y0M1DT1H1M1S\">"
-      "<AdaptationSet id=\"1\" mimeType=\"video/mp4\">"
-      "<Representation id=\"v0\" bandwidth=\"500000\"></Representation>"
-      "<Representation id=\"v1\" bandwidth=\"250000\"></Representation>"
-      "</AdaptationSet></Period></MPD>";
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
+      "  <Period id=\"Period0\" duration=\"P0Y0M1DT1H1M1S\">"
+      "    <AdaptationSet id=\"1\" mimeType=\"video/mp4\">"
+      "      <Representation id=\"v0\" bandwidth=\"500000\"></Representation>"
+      "      <Representation id=\"v1\" bandwidth=\"250000\"></Representation>"
+      "    </AdaptationSet></Period></MPD>";
 
   gboolean ret;
   GstMpdClient *mpdclient = gst_mpd_client_new ();
@@ -2192,6 +2856,1270 @@
 GST_END_TEST;
 
 /*
+ * Test handling Active stream selection
+ *
+ */
+GST_START_TEST (dash_mpdparser_activeStream_selection)
+{
+  GList *adaptationSets;
+  GstAdaptationSetNode *adapt_set;
+  guint activeStreams;
+  GstActiveStream *activeStream;
+
+  const gchar *xml =
+      "<?xml version=\"1.0\"?>"
+      "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
+      "  <Period id=\"Period0\" duration=\"P0Y0M1DT1H1M1S\">"
+      "    <AdaptationSet id=\"1\" mimeType=\"video/mp4\">"
+      "      <Representation>"
+      "      </Representation>"
+      "    </AdaptationSet>"
+      "    <AdaptationSet id=\"2\" mimeType=\"audio\">"
+      "      <Representation>"
+      "      </Representation>"
+      "    </AdaptationSet>"
+      "    <AdaptationSet id=\"3\" mimeType=\"application\">"
+      "      <Representation>"
+      "      </Representation></AdaptationSet></Period></MPD>";
+
+  gboolean ret;
+  GstMpdClient *mpdclient = gst_mpd_client_new ();
+
+  ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
+  assert_equals_int (ret, TRUE);
+
+  /* process the xml data */
+  ret = gst_mpd_client_setup_media_presentation (mpdclient);
+  assert_equals_int (ret, TRUE);
+
+  /* get the list of adaptation sets of the first period */
+  adaptationSets = gst_mpd_client_get_adaptation_sets (mpdclient);
+  fail_if (adaptationSets == NULL);
+
+  /* no active streams yet */
+  activeStreams = gst_mpdparser_get_nb_active_stream (mpdclient);
+  assert_equals_int (activeStreams, 0);
+
+  /* setup streaming from the first adaptation set */
+  adapt_set = (GstAdaptationSetNode *) g_list_nth_data (adaptationSets, 0);
+  fail_if (adapt_set == NULL);
+  ret = gst_mpd_client_setup_streaming (mpdclient, adapt_set);
+  assert_equals_int (ret, TRUE);
+
+  /* 1 active streams */
+  activeStreams = gst_mpdparser_get_nb_active_stream (mpdclient);
+  assert_equals_int (activeStreams, 1);
+
+  /* setup streaming from the second adaptation set */
+  adapt_set = (GstAdaptationSetNode *) g_list_nth_data (adaptationSets, 1);
+  fail_if (adapt_set == NULL);
+  ret = gst_mpd_client_setup_streaming (mpdclient, adapt_set);
+  assert_equals_int (ret, TRUE);
+
+  /* 2 active streams */
+  activeStreams = gst_mpdparser_get_nb_active_stream (mpdclient);
+  assert_equals_int (activeStreams, 2);
+
+  /* setup streaming from the third adaptation set */
+  adapt_set = (GstAdaptationSetNode *) g_list_nth_data (adaptationSets, 2);
+  fail_if (adapt_set == NULL);
+  ret = gst_mpd_client_setup_streaming (mpdclient, adapt_set);
+  assert_equals_int (ret, TRUE);
+
+  /* 3 active streams */
+  activeStreams = gst_mpdparser_get_nb_active_stream (mpdclient);
+  assert_equals_int (activeStreams, 3);
+
+  /* get details of the first active stream */
+  activeStream = gst_mpdparser_get_active_stream_by_index (mpdclient, 0);
+  fail_if (activeStream == NULL);
+  assert_equals_int (activeStream->mimeType, GST_STREAM_VIDEO);
+
+  /* get details of the second active stream */
+  activeStream = gst_mpdparser_get_active_stream_by_index (mpdclient, 1);
+  fail_if (activeStream == NULL);
+  assert_equals_int (activeStream->mimeType, GST_STREAM_AUDIO);
+
+  /* get details of the third active stream */
+  activeStream = gst_mpdparser_get_active_stream_by_index (mpdclient, 2);
+  fail_if (activeStream == NULL);
+  assert_equals_int (activeStream->mimeType, GST_STREAM_APPLICATION);
+
+  gst_mpd_client_free (mpdclient);
+}
+
+GST_END_TEST;
+
+/*
+ * Test getting Active stream parameters
+ *
+ */
+GST_START_TEST (dash_mpdparser_activeStream_parameters)
+{
+  GList *adaptationSets;
+  GstAdaptationSetNode *adapt_set;
+  guint activeStreams;
+  GstActiveStream *activeStream;
+  const gchar *mimeType;
+  gboolean bitstreamSwitchingFlag;
+  guint videoStreamWidth;
+  guint videoStreamHeight;
+  guint audioStreamRate;
+  guint audioChannelsCount;
+
+  const gchar *xml =
+      "<?xml version=\"1.0\"?>"
+      "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
+      "  <Period id=\"Period0\""
+      "          duration=\"P0Y0M1DT1H1M1S\">"
+      "    <AdaptationSet id=\"1\""
+      "                   mimeType=\"video/mp4\""
+      "                   width=\"320\""
+      "                   height=\"240\""
+      "                   bitstreamSwitching=\"true\""
+      "                   audioSamplingRate=\"48000\">"
+      "      <Representation>"
+      "      </Representation></AdaptationSet></Period></MPD>";
+
+  gboolean ret;
+  GstMpdClient *mpdclient = gst_mpd_client_new ();
+
+  ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
+  assert_equals_int (ret, TRUE);
+
+  /* process the xml data */
+  ret = gst_mpd_client_setup_media_presentation (mpdclient);
+  assert_equals_int (ret, TRUE);
+
+  /* get the list of adaptation sets of the first period */
+  adaptationSets = gst_mpd_client_get_adaptation_sets (mpdclient);
+  fail_if (adaptationSets == NULL);
+
+  /* setup streaming from the first adaptation set */
+  adapt_set = (GstAdaptationSetNode *) g_list_nth_data (adaptationSets, 0);
+  fail_if (adapt_set == NULL);
+  ret = gst_mpd_client_setup_streaming (mpdclient, adapt_set);
+  assert_equals_int (ret, TRUE);
+
+  /* 1 active streams */
+  activeStreams = gst_mpdparser_get_nb_active_stream (mpdclient);
+  assert_equals_int (activeStreams, 1);
+
+  /* get details of the first active stream */
+  activeStream = gst_mpdparser_get_active_stream_by_index (mpdclient, 0);
+  fail_if (activeStream == NULL);
+
+  assert_equals_int (activeStream->mimeType, GST_STREAM_VIDEO);
+  mimeType = gst_mpd_client_get_stream_mimeType (activeStream);
+  assert_equals_string (mimeType, "video/quicktime");
+
+  bitstreamSwitchingFlag =
+      gst_mpd_client_get_bitstream_switching_flag (activeStream);
+  assert_equals_int (bitstreamSwitchingFlag, 1);
+
+  videoStreamWidth = gst_mpd_client_get_video_stream_width (activeStream);
+  assert_equals_int (videoStreamWidth, 320);
+
+  videoStreamHeight = gst_mpd_client_get_video_stream_height (activeStream);
+  assert_equals_int (videoStreamHeight, 240);
+
+  audioStreamRate = gst_mpd_client_get_audio_stream_rate (activeStream);
+  assert_equals_int (audioStreamRate, 48000);
+
+  audioChannelsCount =
+      gst_mpd_client_get_audio_stream_num_channels (activeStream);
+  assert_equals_int (audioChannelsCount, 0);
+
+  gst_mpd_client_free (mpdclient);
+}
+
+GST_END_TEST;
+
+/*
+ * Test getting number and list of audio languages
+ *
+ */
+GST_START_TEST (dash_mpdparser_get_audio_languages)
+{
+  GList *adaptationSets;
+  GstAdaptationSetNode *adapt_set;
+  guint activeStreams;
+  guint adaptationSetsCount;
+  GList *languages = NULL;
+  guint languagesCount;
+
+  const gchar *xml =
+      "<?xml version=\"1.0\"?>"
+      "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
+      "  <Period id=\"Period0\" duration=\"P0Y0M1DT1H1M1S\">"
+      "    <AdaptationSet id=\"1\" mimeType=\"audio\" lang=\"en\">"
+      "      <Representation>"
+      "      </Representation>"
+      "    </AdaptationSet>"
+      "    <AdaptationSet id=\"2\" mimeType=\"video/mp4\">"
+      "      <Representation>"
+      "      </Representation>"
+      "    </AdaptationSet>"
+      "    <AdaptationSet id=\"3\" mimeType=\"audio\" lang=\"fr\">"
+      "      <Representation>"
+      "      </Representation></AdaptationSet></Period></MPD>";
+
+  gboolean ret;
+  GstMpdClient *mpdclient = gst_mpd_client_new ();
+
+  ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
+  assert_equals_int (ret, TRUE);
+
+  /* process the xml data */
+  ret = gst_mpd_client_setup_media_presentation (mpdclient);
+  assert_equals_int (ret, TRUE);
+
+  /* get the list of adaptation sets of the first period */
+  adaptationSets = gst_mpd_client_get_adaptation_sets (mpdclient);
+  fail_if (adaptationSets == NULL);
+
+  /* setup streaming from all adaptation sets */
+  adaptationSetsCount = gst_mpdparser_get_nb_adaptationSet (mpdclient);
+  for (int i = 0; i < adaptationSetsCount; i++) {
+    adapt_set = (GstAdaptationSetNode *) g_list_nth_data (adaptationSets, i);
+    fail_if (adapt_set == NULL);
+    ret = gst_mpd_client_setup_streaming (mpdclient, adapt_set);
+    assert_equals_int (ret, TRUE);
+  }
+  activeStreams = gst_mpdparser_get_nb_active_stream (mpdclient);
+  assert_equals_int (activeStreams, adaptationSetsCount);
+
+  languagesCount =
+      gst_mpdparser_get_list_and_nb_of_audio_language (mpdclient, &languages);
+  assert_equals_int (languagesCount, 2);
+  assert_equals_string ((gchar *) g_list_nth_data (languages, 0), "en");
+  assert_equals_string ((gchar *) g_list_nth_data (languages, 1), "fr");
+
+  g_list_free (languages);
+
+  gst_mpd_client_free (mpdclient);
+}
+
+GST_END_TEST;
+
+/*
+ * Tests getting the base URL
+ *
+ */
+static GstMpdClient *
+setup_mpd_client (const gchar * xml)
+{
+  GList *adaptationSets;
+  GstAdaptationSetNode *adapt_set;
+  guint activeStreams;
+  guint adaptationSetsCount;
+  gboolean ret;
+  GstMpdClient *mpdclient = gst_mpd_client_new ();
+
+  ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
+  assert_equals_int (ret, TRUE);
+
+  /* process the xml data */
+  ret = gst_mpd_client_setup_media_presentation (mpdclient);
+  assert_equals_int (ret, TRUE);
+
+  /* get the list of adaptation sets of the first period */
+  adaptationSets = gst_mpd_client_get_adaptation_sets (mpdclient);
+  fail_if (adaptationSets == NULL);
+
+  /* setup streaming from all adaptation sets */
+  adaptationSetsCount = gst_mpdparser_get_nb_adaptationSet (mpdclient);
+  for (int i = 0; i < adaptationSetsCount; i++) {
+    adapt_set = (GstAdaptationSetNode *) g_list_nth_data (adaptationSets, i);
+    fail_if (adapt_set == NULL);
+    ret = gst_mpd_client_setup_streaming (mpdclient, adapt_set);
+    assert_equals_int (ret, TRUE);
+  }
+  activeStreams = gst_mpdparser_get_nb_active_stream (mpdclient);
+  assert_equals_int (activeStreams, adaptationSetsCount);
+
+  return mpdclient;
+}
+
+GST_START_TEST (dash_mpdparser_get_baseURL1)
+{
+  const gchar *baseURL;
+  const gchar *xml =
+      "<?xml version=\"1.0\"?>"
+      "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
+      "  <BaseURL>http://example.com/</BaseURL>"
+      "  <Period id=\"Period0\" duration=\"P0Y0M1DT1H1M1S\">"
+      "    <AdaptationSet id=\"1\" mimeType=\"audio\" lang=\"en\">"
+      "      <Representation>"
+      "      </Representation></AdaptationSet></Period></MPD>";
+
+  GstMpdClient *mpdclient = setup_mpd_client (xml);
+
+  baseURL = gst_mpdparser_get_baseURL (mpdclient, 0);
+  fail_if (baseURL == NULL);
+  assert_equals_string (baseURL, "http://example.com/");
+
+  gst_mpd_client_free (mpdclient);
+}
+
+GST_END_TEST;
+
+
+GST_START_TEST (dash_mpdparser_get_baseURL2)
+{
+  const gchar *baseURL;
+  const gchar *xml =
+      "<?xml version=\"1.0\"?>"
+      "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
+      "  <BaseURL>mpd_base_url/</BaseURL>"
+      "  <Period id=\"Period0\" duration=\"P0Y0M1DT1H1M1S\">"
+      "    <BaseURL> /period_base_url/</BaseURL>"
+      "    <AdaptationSet id=\"1\" mimeType=\"audio\" lang=\"en\">"
+      "      <BaseURL>adaptation_base_url</BaseURL>"
+      "      <Representation>"
+      "        <BaseURL>representation_base_url</BaseURL>"
+      "      </Representation></AdaptationSet></Period></MPD>";
+
+  GstMpdClient *mpdclient = setup_mpd_client (xml);
+
+  /* test baseURL. Its value should be computed like this:
+   *  - start with xml url (null)
+   *  - set it to the value from MPD's BaseURL element: "mpd_base_url/"
+   *  - update the value with BaseURL element from Period. Because Period's
+   * baseURL is absolute (starts with /) it will overwrite the current value
+   * for baseURL. So, baseURL becomes "/period_base_url/"
+   *  - update the value with BaseURL element from AdaptationSet. Because this
+   * is a relative url, it will update the current value. baseURL becomes
+   * "/period_base_url/adaptation_base_url"
+   *  - update the value with BaseURL element from Representation. Because this
+   * is a relative url, it will update the current value. Because the current
+   * value does not end in /, everything after the last / will be overwritten.
+   * baseURL becomes "/period_base_url/representation_base_url"
+   */
+  baseURL = gst_mpdparser_get_baseURL (mpdclient, 0);
+  fail_if (baseURL == NULL);
+  assert_equals_string (baseURL, "/period_base_url/representation_base_url");
+
+  gst_mpd_client_free (mpdclient);
+}
+
+GST_END_TEST;
+
+
+GST_START_TEST (dash_mpdparser_get_baseURL3)
+{
+  const gchar *baseURL;
+  const gchar *xml =
+      "<?xml version=\"1.0\"?>"
+      "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
+      "  <BaseURL>mpd_base_url/</BaseURL>"
+      "  <Period id=\"Period0\" duration=\"P0Y0M1DT1H1M1S\">"
+      "    <BaseURL> /period_base_url/</BaseURL>"
+      "    <AdaptationSet id=\"1\" mimeType=\"audio\" lang=\"en\">"
+      "      <BaseURL>adaptation_base_url</BaseURL>"
+      "      <Representation>"
+      "        <BaseURL>/representation_base_url</BaseURL>"
+      "      </Representation></AdaptationSet></Period></MPD>";
+
+  GstMpdClient *mpdclient = setup_mpd_client (xml);
+
+  /* test baseURL. Its value should be computed like this:
+   *  - start with xml url (null)
+   *  - set it to the value from MPD's BaseURL element: "mpd_base_url/"
+   *  - update the value with BaseURL element from Period. Because Period's
+   * baseURL is absolute (starts with /) it will overwrite the current value
+   * for baseURL. So, baseURL becomes "/period_base_url/"
+   *  - update the value with BaseURL element from AdaptationSet. Because this
+   * is a relative url, it will update the current value. baseURL becomes
+   * "/period_base_url/adaptation_base_url"
+   *  - update the value with BaseURL element from Representation. Because this
+   * is an absolute url, it will replace everything again"
+   */
+  baseURL = gst_mpdparser_get_baseURL (mpdclient, 0);
+  fail_if (baseURL == NULL);
+  assert_equals_string (baseURL, "/representation_base_url");
+
+  gst_mpd_client_free (mpdclient);
+}
+
+GST_END_TEST;
+
+
+GST_START_TEST (dash_mpdparser_get_baseURL4)
+{
+  const gchar *baseURL;
+  const gchar *xml =
+      "<?xml version=\"1.0\"?>"
+      "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
+      "  <BaseURL>mpd_base_url/</BaseURL>"
+      "  <Period id=\"Period0\" duration=\"P0Y0M1DT1H1M1S\">"
+      "    <BaseURL> /period_base_url/</BaseURL>"
+      "    <AdaptationSet id=\"1\" mimeType=\"audio\" lang=\"en\">"
+      "      <BaseURL>adaptation_base_url/</BaseURL>"
+      "      <Representation>"
+      "        <BaseURL>representation_base_url/</BaseURL>"
+      "      </Representation></AdaptationSet></Period></MPD>";
+
+  GstMpdClient *mpdclient = setup_mpd_client (xml);
+
+  /* test baseURL. Its value should be computed like this:
+   *  - start with xml url (null)
+   *  - set it to the value from MPD's BaseURL element: "mpd_base_url/"
+   *  - update the value with BaseURL element from Period. Because Period's
+   * baseURL is absolute (starts with /) it will overwrite the current value
+   * for baseURL. So, baseURL becomes "/period_base_url/"
+   *  - update the value with BaseURL element from AdaptationSet. Because this
+   * is a relative url, it will update the current value. baseURL becomes
+   * "/period_base_url/adaptation_base_url/"
+   *  - update the value with BaseURL element from Representation. Because this
+   * is an relative url, it will update the current value."
+   */
+  baseURL = gst_mpdparser_get_baseURL (mpdclient, 0);
+  fail_if (baseURL == NULL);
+  assert_equals_string (baseURL,
+      "/period_base_url/adaptation_base_url/representation_base_url/");
+
+  gst_mpd_client_free (mpdclient);
+}
+
+GST_END_TEST;
+
+/*
+ * Test getting mediaPresentationDuration
+ *
+ */
+GST_START_TEST (dash_mpdparser_get_mediaPresentationDuration)
+{
+  GstClockTime mediaPresentationDuration;
+
+  const gchar *xml =
+      "<?xml version=\"1.0\"?>"
+      "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\""
+      "     mediaPresentationDuration=\"P0Y0M0DT0H0M3S\"></MPD>";
+
+  gboolean ret;
+  GstMpdClient *mpdclient = gst_mpd_client_new ();
+
+  ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
+  assert_equals_int (ret, TRUE);
+
+  mediaPresentationDuration =
+      gst_mpd_client_get_media_presentation_duration (mpdclient);
+  assert_equals_uint64 (mediaPresentationDuration, 3000000000);
+
+  gst_mpd_client_free (mpdclient);
+}
+
+GST_END_TEST;
+
+/*
+ * Test getting streamPresentationOffset
+ *
+ */
+GST_START_TEST (dash_mpdparser_get_streamPresentationOffset)
+{
+  GList *adaptationSets;
+  GstAdaptationSetNode *adapt_set;
+  GstClockTime offset;
+  const gchar *xml =
+      "<?xml version=\"1.0\"?>"
+      "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\""
+      "     mediaPresentationDuration=\"P0Y0M0DT3H3M30S\">"
+      "  <Period>"
+      "    <AdaptationSet mimeType=\"video/mp4\">"
+      "      <SegmentBase timescale=\"1000\" presentationTimeOffset=\"3000\">"
+      "      </SegmentBase>"
+      "      <Representation>"
+      "      </Representation></AdaptationSet></Period></MPD>";
+
+  gboolean ret;
+  GstMpdClient *mpdclient = gst_mpd_client_new ();
+
+  ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
+  assert_equals_int (ret, TRUE);
+
+  /* process the xml data */
+  ret = gst_mpd_client_setup_media_presentation (mpdclient);
+  assert_equals_int (ret, TRUE);
+
+  /* get the list of adaptation sets of the first period */
+  adaptationSets = gst_mpd_client_get_adaptation_sets (mpdclient);
+  fail_if (adaptationSets == NULL);
+
+  /* setup streaming from the first adaptation set */
+  adapt_set = (GstAdaptationSetNode *) g_list_nth_data (adaptationSets, 0);
+  fail_if (adapt_set == NULL);
+  ret = gst_mpd_client_setup_streaming (mpdclient, adapt_set);
+  assert_equals_int (ret, TRUE);
+
+  /* test the stream presentation time offset */
+  offset = gst_mpd_parser_get_stream_presentation_offset (mpdclient, 0);
+  /* seems to be set only for template segments, so here it is 0 */
+  assert_equals_int (offset, 0);
+
+  gst_mpd_client_free (mpdclient);
+}
+
+GST_END_TEST;
+
+/*
+ * Test handling segments
+ *
+ */
+GST_START_TEST (dash_mpdparser_segments)
+{
+  GList *adaptationSets;
+  GstAdaptationSetNode *adapt_set;
+  gboolean hasNextSegment;
+  GstActiveStream *activeStream;
+  GstFlowReturn flow;
+  GstMediaSegment segment;
+  GstDateTime *segmentEndTime;
+  GstDateTime *gst_time;
+  GDateTime *g_time;
+  GstClockTime ts;
+  gint64 diff;
+
+  const gchar *xml =
+      "<?xml version=\"1.0\"?>"
+      "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
+      "     type=\"dynamic\""
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\""
+      "     availabilityStartTime=\"2015-03-24T0:0:0\""
+      "     mediaPresentationDuration=\"P0Y0M0DT3H3M30S\">"
+      "  <Period id=\"Period0\">"
+      "    <AdaptationSet mimeType=\"video/mp4\">"
+      "      <Representation>"
+      "        <SegmentList duration=\"45\">"
+      "          <SegmentURL media=\"TestMedia1\""
+      "                      mediaRange=\"10-20\""
+      "                      index=\"TestIndex1\""
+      "                      indexRange=\"30-40\">"
+      "          </SegmentURL>"
+      "          <SegmentURL media=\"TestMedia2\""
+      "                      mediaRange=\"20-30\""
+      "                      index=\"TestIndex2\""
+      "                      indexRange=\"40-50\">"
+      "          </SegmentURL>"
+      "        </SegmentList>"
+      "      </Representation></AdaptationSet></Period></MPD>";
+
+  gboolean ret;
+  GstMpdClient *mpdclient = gst_mpd_client_new ();
+
+  ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
+  assert_equals_int (ret, TRUE);
+
+  /* process the xml data */
+  ret = gst_mpd_client_setup_media_presentation (mpdclient);
+  assert_equals_int (ret, TRUE);
+
+  /* get the list of adaptation sets of the first period */
+  adaptationSets = gst_mpd_client_get_adaptation_sets (mpdclient);
+  fail_if (adaptationSets == NULL);
+
+  /* setup streaming from the first adaptation set */
+  adapt_set = (GstAdaptationSetNode *) g_list_nth_data (adaptationSets, 0);
+  fail_if (adapt_set == NULL);
+  ret = gst_mpd_client_setup_streaming (mpdclient, adapt_set);
+  assert_equals_int (ret, TRUE);
+
+  activeStream = gst_mpdparser_get_active_stream_by_index (mpdclient, 0);
+  fail_if (activeStream == NULL);
+
+  /* segment_index 0, segment_count 2.
+   * Has next segment and can advance to next segment
+   */
+  hasNextSegment =
+      gst_mpd_client_has_next_segment (mpdclient, activeStream, TRUE);
+  assert_equals_int (hasNextSegment, 1);
+  flow = gst_mpd_client_advance_segment (mpdclient, activeStream, TRUE);
+  assert_equals_int (flow, GST_FLOW_OK);
+
+  /* segment_index 1, segment_count 2.
+   * Does not have next segment and can not advance to next segment
+   */
+  hasNextSegment =
+      gst_mpd_client_has_next_segment (mpdclient, activeStream, TRUE);
+  assert_equals_int (hasNextSegment, 0);
+  flow = gst_mpd_client_advance_segment (mpdclient, activeStream, TRUE);
+  assert_equals_int (flow, GST_FLOW_EOS);
+
+  /* go to first segment */
+  gst_mpd_client_seek_to_first_segment (mpdclient);
+
+  /* segment_index 0, segment_count 2.
+   * Has next segment and can advance to next segment
+   */
+  hasNextSegment =
+      gst_mpd_client_has_next_segment (mpdclient, activeStream, TRUE);
+  assert_equals_int (hasNextSegment, 1);
+  flow = gst_mpd_client_advance_segment (mpdclient, activeStream, TRUE);
+  assert_equals_int (flow, GST_FLOW_OK);
+
+  /* segment_index 1, segment_count 2
+   * Does not have next segment
+   */
+  hasNextSegment =
+      gst_mpd_client_has_next_segment (mpdclient, activeStream, TRUE);
+  assert_equals_int (hasNextSegment, 0);
+
+  /* get chunk 0. segment_index will not change */
+  ret = gst_mpdparser_get_chunk_by_index (mpdclient, 0, 0, &segment);
+  assert_equals_int (ret, 1);
+  assert_equals_int (segment.number, 1);
+
+  /* segment index is still 1 */
+  hasNextSegment =
+      gst_mpd_client_has_next_segment (mpdclient, activeStream, TRUE);
+  assert_equals_int (hasNextSegment, 0);
+
+  /* each segment has a duration of 0 hours, 0 min 45 seconds
+   * segment index is 1.
+   * End time is at the end of segment 1, so 2 * segment_duration = 2 * 45s
+   */
+  segmentEndTime =
+      gst_mpd_client_get_next_segment_availability_end_time (mpdclient,
+      activeStream);
+  assert_equals_int (gst_date_time_get_year (segmentEndTime), 2015);
+  assert_equals_int (gst_date_time_get_month (segmentEndTime), 3);
+  assert_equals_int (gst_date_time_get_day (segmentEndTime), 24);
+  assert_equals_int (gst_date_time_get_hour (segmentEndTime), 0);
+  assert_equals_int (gst_date_time_get_minute (segmentEndTime), 1);
+  assert_equals_int (gst_date_time_get_second (segmentEndTime), 30);
+  gst_date_time_unref (segmentEndTime);
+
+  /* seek to time */
+  gst_time = gst_date_time_new_from_iso8601_string ("2015-03-24T0:0:20Z");
+  g_time = gst_date_time_to_g_date_time (gst_time);
+  ret = gst_mpd_client_seek_to_time (mpdclient, g_time);
+  assert_equals_int (ret, 1);
+  gst_date_time_unref (gst_time);
+  g_date_time_unref (g_time);
+
+  /* segment index is now 0 */
+  hasNextSegment =
+      gst_mpd_client_has_next_segment (mpdclient, activeStream, TRUE);
+  assert_equals_int (hasNextSegment, 1);
+
+  /* check if stream at moment ts is available.
+   * timeShiftBufferDepth was not set, so it is considered infinite.
+   * All segments from the past must be available
+   */
+  ts = 30 * GST_SECOND;
+  ret = gst_mpd_client_check_time_position (mpdclient, activeStream, ts, &diff);
+  assert_equals_int (ret, 0);
+  assert_equals_int64 (diff, 0);
+
+  gst_mpd_client_free (mpdclient);
+}
+
+GST_END_TEST;
+
+/*
+ * Test handling headers
+ *
+ */
+GST_START_TEST (dash_mpdparser_headers)
+{
+  GList *adaptationSets;
+  GstAdaptationSetNode *adapt_set;
+  gchar *uri;
+  gint64 range_start;
+  gint64 range_end;
+
+  const gchar *xml =
+      "<?xml version=\"1.0\"?>"
+      "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
+      "     type=\"dynamic\""
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\""
+      "     availabilityStartTime=\"2015-03-24T0:0:0\""
+      "     mediaPresentationDuration=\"P0Y0M0DT3H3M30S\">"
+      "  <Period id=\"Period0\">"
+      "    <AdaptationSet mimeType=\"video/mp4\">"
+      "      <Representation>"
+      "        <SegmentBase indexRange=\"10-20\">"
+      "          <Initialization sourceURL=\"TestSourceUrl\""
+      "                          range=\"100-200\">"
+      "          </Initialization>"
+      "        </SegmentBase>"
+      "      </Representation></AdaptationSet></Period></MPD>";
+
+  gboolean ret;
+  GstMpdClient *mpdclient = gst_mpd_client_new ();
+
+  ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
+  assert_equals_int (ret, TRUE);
+
+  /* process the xml data */
+  ret = gst_mpd_client_setup_media_presentation (mpdclient);
+  assert_equals_int (ret, TRUE);
+
+  /* get the list of adaptation sets of the first period */
+  adaptationSets = gst_mpd_client_get_adaptation_sets (mpdclient);
+  fail_if (adaptationSets == NULL);
+
+  /* setup streaming from the first adaptation set */
+  adapt_set = (GstAdaptationSetNode *) g_list_nth_data (adaptationSets, 0);
+  fail_if (adapt_set == NULL);
+  ret = gst_mpd_client_setup_streaming (mpdclient, adapt_set);
+  assert_equals_int (ret, TRUE);
+
+  /* get segment url and range from segment Initialization */
+  ret =
+      gst_mpd_client_get_next_header (mpdclient, &uri, 0, &range_start,
+      &range_end);
+  assert_equals_int (ret, TRUE);
+  assert_equals_string (uri, "TestSourceUrl");
+  assert_equals_int64 (range_start, 100);
+  assert_equals_int64 (range_end, 200);
+  g_free (uri);
+
+  /* get segment url and range from segment indexRange */
+  ret =
+      gst_mpd_client_get_next_header_index (mpdclient, &uri, 0, &range_start,
+      &range_end);
+  assert_equals_int (ret, TRUE);
+  assert_equals_string (uri, "TestSourceUrl");
+  assert_equals_int64 (range_start, 10);
+  assert_equals_int64 (range_end, 20);
+  g_free (uri);
+
+  gst_mpd_client_free (mpdclient);
+}
+
+GST_END_TEST;
+
+/*
+ * Test handling fragments
+ *
+ */
+GST_START_TEST (dash_mpdparser_fragments)
+{
+  GList *adaptationSets;
+  GstAdaptationSetNode *adapt_set;
+  GstMediaFragmentInfo fragment;
+  GstActiveStream *activeStream;
+  GstClockTime nextFragmentDuration;
+  GstClockTime nextFragmentTimestamp;
+  GstClockTime nextFragmentTimestampEnd;
+  GstClockTime expectedDuration;
+  GstClockTime expectedTimestamp;
+  GstClockTime expectedTimestampEnd;
+
+  const gchar *xml =
+      "<?xml version=\"1.0\"?>"
+      "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\""
+      "     availabilityStartTime=\"2015-03-24T0:0:0\""
+      "     mediaPresentationDuration=\"P0Y0M0DT3H3M30S\">"
+      "  <Period id=\"Period0\" start=\"P0Y0M0DT0H0M10S\">"
+      "    <AdaptationSet mimeType=\"video/mp4\">"
+      "      <Representation>"
+      "      </Representation></AdaptationSet></Period></MPD>";
+
+  gboolean ret;
+  GstMpdClient *mpdclient = gst_mpd_client_new ();
+
+  ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
+  assert_equals_int (ret, TRUE);
+
+  /* process the xml data */
+  ret = gst_mpd_client_setup_media_presentation (mpdclient);
+  assert_equals_int (ret, TRUE);
+
+  /* get the list of adaptation sets of the first period */
+  adaptationSets = gst_mpd_client_get_adaptation_sets (mpdclient);
+  fail_if (adaptationSets == NULL);
+
+  /* setup streaming from the first adaptation set */
+  adapt_set = (GstAdaptationSetNode *) g_list_nth_data (adaptationSets, 0);
+  fail_if (adapt_set == NULL);
+  ret = gst_mpd_client_setup_streaming (mpdclient, adapt_set);
+  assert_equals_int (ret, TRUE);
+  activeStream = gst_mpdparser_get_active_stream_by_index (mpdclient, 0);
+  fail_if (activeStream == NULL);
+
+  /* expected duration of the next fragment */
+  expectedDuration = duration_to_ms (0, 0, 0, 3, 3, 20, 0);
+  expectedTimestamp = duration_to_ms (0, 0, 0, 0, 0, 10, 0);
+  expectedTimestampEnd = duration_to_ms (0, 0, 0, 3, 3, 30, 0);
+
+  ret = gst_mpd_client_get_next_fragment (mpdclient, 0, &fragment);
+  assert_equals_int (ret, TRUE);
+  assert_equals_string (fragment.uri, "");
+  assert_equals_int64 (fragment.range_start, 0);
+  assert_equals_int64 (fragment.range_end, -1);
+  assert_equals_uint64 (fragment.duration, expectedDuration * GST_MSECOND);
+  assert_equals_uint64 (fragment.timestamp, expectedTimestamp * GST_MSECOND);
+  gst_media_fragment_info_clear (&fragment);
+
+  nextFragmentDuration =
+      gst_mpd_client_get_next_fragment_duration (mpdclient, activeStream);
+  assert_equals_uint64 (nextFragmentDuration, expectedDuration * GST_MSECOND);
+
+  ret =
+      gst_mpd_client_get_next_fragment_timestamp (mpdclient, 0,
+      &nextFragmentTimestamp);
+  assert_equals_int (ret, TRUE);
+  assert_equals_uint64 (nextFragmentTimestamp, expectedTimestamp * GST_MSECOND);
+
+  ret =
+      gst_mpd_client_get_last_fragment_timestamp_end (mpdclient, 0,
+      &nextFragmentTimestampEnd);
+  assert_equals_int (ret, TRUE);
+  assert_equals_uint64 (nextFragmentTimestampEnd,
+      expectedTimestampEnd * GST_MSECOND);
+
+  gst_mpd_client_free (mpdclient);
+}
+
+GST_END_TEST;
+
+/*
+ * Test inheriting segmentBase from parent
+ *
+ */
+GST_START_TEST (dash_mpdparser_inherited_segmentBase)
+{
+  GstPeriodNode *periodNode;
+  GstSegmentBaseType *segmentBase;
+  GstAdaptationSetNode *adaptationSet;
+  GstRepresentationNode *representation;
+  const gchar *xml =
+      "<?xml version=\"1.0\"?>"
+      "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\">"
+      "  <Period>"
+      "    <AdaptationSet>"
+      "      <SegmentBase timescale=\"100\">"
+      "      </SegmentBase>"
+      "      <Representation>"
+      "        <SegmentBase timescale=\"200\">"
+      "        </SegmentBase>"
+      "      </Representation></AdaptationSet></Period></MPD>";
+
+  gboolean ret;
+  GstMpdClient *mpdclient = gst_mpd_client_new ();
+
+  ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
+  assert_equals_int (ret, TRUE);
+
+  periodNode = (GstPeriodNode *) mpdclient->mpd_node->Periods->data;
+  adaptationSet = (GstAdaptationSetNode *) periodNode->AdaptationSets->data;
+  representation = (GstRepresentationNode *)
+      adaptationSet->Representations->data;
+
+  /* test segment base from adaptation set */
+  segmentBase = adaptationSet->SegmentBase;
+  assert_equals_uint64 (segmentBase->timescale, 100);
+
+  /* test segment base from representation */
+  segmentBase = representation->SegmentBase;
+  assert_equals_uint64 (segmentBase->timescale, 200);
+
+  gst_mpd_client_free (mpdclient);
+}
+
+GST_END_TEST;
+
+/*
+ * Test inheriting segmentURL from parent
+ *
+ */
+GST_START_TEST (dash_mpdparser_inherited_segmentURL)
+{
+  GList *adaptationSets;
+  GstAdaptationSetNode *adapt_set;
+  GstActiveStream *activeStream;
+  GstMediaFragmentInfo fragment;
+  GstClockTime expectedDuration;
+  GstClockTime expectedTimestamp;
+  GstFlowReturn flow;
+
+  const gchar *xml =
+      "<?xml version=\"1.0\"?>"
+      "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\""
+      "     availabilityStartTime=\"2015-03-24T0:0:0\""
+      "     mediaPresentationDuration=\"P0Y0M0DT3H3M30S\">"
+      "  <Period start=\"P0Y0M0DT0H0M10S\">"
+      "    <AdaptationSet mimeType=\"video/mp4\">"
+      "      <SegmentList duration=\"100\">"
+      "        <SegmentURL media=\"TestMediaAdaptation\""
+      "                    mediaRange=\"10-20\""
+      "                    index=\"TestIndexAdaptation\""
+      "                    indexRange=\"30-40\">"
+      "        </SegmentURL>"
+      "      </SegmentList>"
+      "      <Representation>"
+      "        <SegmentList duration=\"110\">"
+      "          <SegmentURL media=\"TestMediaRep\""
+      "                      mediaRange=\"100-200\""
+      "                      index=\"TestIndexRep\""
+      "                      indexRange=\"300-400\">"
+      "          </SegmentURL>"
+      "        </SegmentList>"
+      "      </Representation></AdaptationSet></Period></MPD>";
+
+  gboolean ret;
+  GstMpdClient *mpdclient = gst_mpd_client_new ();
+
+  ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
+  assert_equals_int (ret, TRUE);
+
+  /* process the xml data */
+  ret = gst_mpd_client_setup_media_presentation (mpdclient);
+  assert_equals_int (ret, TRUE);
+
+  /* get the list of adaptation sets of the first period */
+  adaptationSets = gst_mpd_client_get_adaptation_sets (mpdclient);
+  fail_if (adaptationSets == NULL);
+
+  /* setup streaming from the first adaptation set */
+  adapt_set = (GstAdaptationSetNode *) g_list_nth_data (adaptationSets, 0);
+  fail_if (adapt_set == NULL);
+  ret = gst_mpd_client_setup_streaming (mpdclient, adapt_set);
+  assert_equals_int (ret, TRUE);
+
+  activeStream = gst_mpdparser_get_active_stream_by_index (mpdclient, 0);
+  fail_if (activeStream == NULL);
+
+  /* expected duration of the next fragment
+   * Segment duration was set to 100 in AdaptationSet and to 110 in Representation
+   * We expect duration to be 110
+   */
+  expectedDuration = duration_to_ms (0, 0, 0, 0, 0, 110, 0);
+  expectedTimestamp = duration_to_ms (0, 0, 0, 0, 0, 10, 0);
+
+  /* the representation contains 2 segments
+   *  - one inherited from AdaptationSet (duration 100)
+   *  - the second defined in the Representation (duration 110)
+   *
+   * Both will have the duration specified in the Representation (110)
+   */
+
+  /* check first segment */
+  ret = gst_mpd_client_get_next_fragment (mpdclient, 0, &fragment);
+  assert_equals_int (ret, TRUE);
+  assert_equals_string (fragment.uri, "/TestMediaAdaptation");
+  assert_equals_int64 (fragment.range_start, 10);
+  assert_equals_int64 (fragment.range_end, 20);
+  assert_equals_string (fragment.index_uri, "/TestIndexAdaptation");
+  assert_equals_int64 (fragment.index_range_start, 30);
+  assert_equals_int64 (fragment.index_range_end, 40);
+  assert_equals_uint64 (fragment.duration, expectedDuration * GST_MSECOND);
+  assert_equals_uint64 (fragment.timestamp, expectedTimestamp * GST_MSECOND);
+  gst_media_fragment_info_clear (&fragment);
+
+  /* advance to next segment */
+  flow = gst_mpd_client_advance_segment (mpdclient, activeStream, TRUE);
+  assert_equals_int (flow, GST_FLOW_OK);
+
+  /* second segment starts after first ends */
+  expectedTimestamp = expectedTimestamp + expectedDuration;
+
+  /* check second segment */
+  ret = gst_mpd_client_get_next_fragment (mpdclient, 0, &fragment);
+  assert_equals_int (ret, TRUE);
+  assert_equals_string (fragment.uri, "/TestMediaRep");
+  assert_equals_int64 (fragment.range_start, 100);
+  assert_equals_int64 (fragment.range_end, 200);
+  assert_equals_string (fragment.index_uri, "/TestIndexRep");
+  assert_equals_int64 (fragment.index_range_start, 300);
+  assert_equals_int64 (fragment.index_range_end, 400);
+  assert_equals_uint64 (fragment.duration, expectedDuration * GST_MSECOND);
+  assert_equals_uint64 (fragment.timestamp, expectedTimestamp * GST_MSECOND);
+  gst_media_fragment_info_clear (&fragment);
+
+  gst_mpd_client_free (mpdclient);
+}
+
+GST_END_TEST;
+
+/*
+ * Test segment list
+ *
+ */
+GST_START_TEST (dash_mpdparser_segment_list)
+{
+  GList *adaptationSets;
+  GstAdaptationSetNode *adapt_set;
+  GstActiveStream *activeStream;
+  GstMediaFragmentInfo fragment;
+  GstClockTime expectedDuration;
+  GstClockTime expectedTimestamp;
+  const gchar *xml =
+      "<?xml version=\"1.0\"?>"
+      "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\""
+      "     availabilityStartTime=\"2015-03-24T0:0:0\""
+      "     mediaPresentationDuration=\"P0Y0M0DT3H3M30S\">"
+      "  <Period start=\"P0Y0M0DT0H0M10S\">"
+      "    <AdaptationSet mimeType=\"video/mp4\">"
+      "      <Representation>"
+      "        <SegmentList duration=\"12000\">"
+      "          <SegmentURL media=\"TestMedia\""
+      "                      mediaRange=\"100-200\""
+      "                      index=\"TestIndex\""
+      "                      indexRange=\"300-400\">"
+      "          </SegmentURL>"
+      "        </SegmentList>"
+      "      </Representation></AdaptationSet></Period></MPD>";
+
+  gboolean ret;
+  GstMpdClient *mpdclient = gst_mpd_client_new ();
+
+  ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
+  assert_equals_int (ret, TRUE);
+
+  /* process the xml data */
+  ret = gst_mpd_client_setup_media_presentation (mpdclient);
+  assert_equals_int (ret, TRUE);
+
+  /* get the list of adaptation sets of the first period */
+  adaptationSets = gst_mpd_client_get_adaptation_sets (mpdclient);
+  fail_if (adaptationSets == NULL);
+
+  /* setup streaming from the first adaptation set */
+  adapt_set = (GstAdaptationSetNode *) g_list_nth_data (adaptationSets, 0);
+  fail_if (adapt_set == NULL);
+  ret = gst_mpd_client_setup_streaming (mpdclient, adapt_set);
+  assert_equals_int (ret, TRUE);
+
+  activeStream = gst_mpdparser_get_active_stream_by_index (mpdclient, 0);
+  fail_if (activeStream == NULL);
+
+  /* expected duration of the next fragment
+   * Segment duration was set larger than period duration (12000 vs 11000).
+   * We expect it to be limited to period duration.
+   */
+  expectedDuration = duration_to_ms (0, 0, 0, 3, 3, 20, 0);
+  expectedTimestamp = duration_to_ms (0, 0, 0, 0, 0, 10, 0);
+
+  ret = gst_mpd_client_get_next_fragment (mpdclient, 0, &fragment);
+  assert_equals_int (ret, TRUE);
+  assert_equals_string (fragment.uri, "/TestMedia");
+  assert_equals_int64 (fragment.range_start, 100);
+  assert_equals_int64 (fragment.range_end, 200);
+  assert_equals_string (fragment.index_uri, "/TestIndex");
+  assert_equals_int64 (fragment.index_range_start, 300);
+  assert_equals_int64 (fragment.index_range_end, 400);
+  assert_equals_uint64 (fragment.duration, expectedDuration * GST_MSECOND);
+  assert_equals_uint64 (fragment.timestamp, expectedTimestamp * GST_MSECOND);
+
+  gst_media_fragment_info_clear (&fragment);
+
+  gst_mpd_client_free (mpdclient);
+}
+
+GST_END_TEST;
+
+/*
+ * Test segment template
+ *
+ */
+GST_START_TEST (dash_mpdparser_segment_template)
+{
+  GList *adaptationSets;
+  GstAdaptationSetNode *adapt_set;
+  GstActiveStream *activeStream;
+  GstMediaFragmentInfo fragment;
+  GstClockTime expectedDuration;
+  GstClockTime expectedTimestamp;
+  const gchar *xml =
+      "<?xml version=\"1.0\"?>"
+      "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\""
+      "     availabilityStartTime=\"2015-03-24T0:0:0\""
+      "     mediaPresentationDuration=\"P0Y0M0DT3H3M30S\">"
+      "  <Period start=\"P0Y0M0DT0H0M10S\">"
+      "    <AdaptationSet mimeType=\"video/mp4\">"
+      "      <Representation id=\"repId\" bandwidth=\"250000\">"
+      "        <SegmentTemplate duration=\"12000\""
+      "                         media=\"TestMedia_rep=$RepresentationID$number=$Number$bandwidth=$Bandwidth$time=$Time$\""
+      "                         index=\"TestIndex\">"
+      "        </SegmentTemplate>"
+      "      </Representation></AdaptationSet></Period></MPD>";
+
+  gboolean ret;
+  GstMpdClient *mpdclient = gst_mpd_client_new ();
+
+  ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
+  assert_equals_int (ret, TRUE);
+
+  /* process the xml data */
+  ret = gst_mpd_client_setup_media_presentation (mpdclient);
+  assert_equals_int (ret, TRUE);
+
+  /* get the list of adaptation sets of the first period */
+  adaptationSets = gst_mpd_client_get_adaptation_sets (mpdclient);
+  fail_if (adaptationSets == NULL);
+
+  /* setup streaming from the first adaptation set */
+  adapt_set = (GstAdaptationSetNode *) g_list_nth_data (adaptationSets, 0);
+  fail_if (adapt_set == NULL);
+  ret = gst_mpd_client_setup_streaming (mpdclient, adapt_set);
+  assert_equals_int (ret, TRUE);
+
+  activeStream = gst_mpdparser_get_active_stream_by_index (mpdclient, 0);
+  fail_if (activeStream == NULL);
+
+  /* expected duration of the next fragment
+   * Segment duration was set larger than period duration (12000 vs 11000).
+   * We expect it to not be limited to period duration.
+   */
+  expectedDuration = duration_to_ms (0, 0, 0, 0, 0, 12000, 0);
+  expectedTimestamp = duration_to_ms (0, 0, 0, 0, 0, 10, 0);
+
+  ret = gst_mpd_client_get_next_fragment (mpdclient, 0, &fragment);
+  assert_equals_int (ret, TRUE);
+  assert_equals_string (fragment.uri,
+      "/TestMedia_rep=repIdnumber=1bandwidth=250000time=0");
+  assert_equals_int64 (fragment.range_start, 0);
+  assert_equals_int64 (fragment.range_end, -1);
+  assert_equals_string (fragment.index_uri, "/TestIndex");
+  assert_equals_int64 (fragment.index_range_start, 0);
+  assert_equals_int64 (fragment.index_range_end, -1);
+  assert_equals_uint64 (fragment.duration, expectedDuration * GST_MSECOND);
+  assert_equals_uint64 (fragment.timestamp, expectedTimestamp * GST_MSECOND);
+
+  gst_media_fragment_info_clear (&fragment);
+
+  gst_mpd_client_free (mpdclient);
+}
+
+GST_END_TEST;
+
+/*
+ * Test segment timeline
+ *
+ */
+GST_START_TEST (dash_mpdparser_segment_timeline)
+{
+  GList *adaptationSets;
+  GstAdaptationSetNode *adapt_set;
+  GstActiveStream *activeStream;
+  GstMediaFragmentInfo fragment;
+  GstClockTime expectedDuration;
+  GstClockTime expectedTimestamp;
+  GstFlowReturn flow;
+
+  const gchar *xml =
+      "<?xml version=\"1.0\"?>"
+      "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\""
+      "     availabilityStartTime=\"2015-03-24T0:0:0\""
+      "     mediaPresentationDuration=\"P0Y0M0DT3H3M30S\">"
+      "  <Period start=\"P0Y0M0DT0H0M10S\">"
+      "    <AdaptationSet mimeType=\"video/mp4\">"
+      "      <SegmentList>"
+      "        <SegmentTimeline>"
+      "          <S t=\"10\"  d=\"20\" r=\"30\"></S>"
+      "        </SegmentTimeline>"
+      "      </SegmentList>"
+      "      <Representation>"
+      "        <SegmentList>"
+      "          <SegmentTimeline>"
+      "            <S t=\"3\"  d=\"2\" r=\"1\"></S>"
+      "            <S t=\"10\" d=\"3\" r=\"0\"></S>"
+      "          </SegmentTimeline>"
+      "          <SegmentURL media=\"TestMedia0\""
+      "                      index=\"TestIndex0\">"
+      "          </SegmentURL>"
+      "          <SegmentURL media=\"TestMedia1\""
+      "                      index=\"TestIndex1\">"
+      "          </SegmentURL>"
+      "        </SegmentList>"
+      "      </Representation></AdaptationSet></Period></MPD>";
+
+  gboolean ret;
+  GstMpdClient *mpdclient = gst_mpd_client_new ();
+
+  ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
+  assert_equals_int (ret, TRUE);
+
+  /* process the xml data */
+  ret = gst_mpd_client_setup_media_presentation (mpdclient);
+  assert_equals_int (ret, TRUE);
+
+  /* get the list of adaptation sets of the first period */
+  adaptationSets = gst_mpd_client_get_adaptation_sets (mpdclient);
+  fail_if (adaptationSets == NULL);
+
+  /* setup streaming from the first adaptation set */
+  adapt_set = (GstAdaptationSetNode *) g_list_nth_data (adaptationSets, 0);
+  fail_if (adapt_set == NULL);
+  ret = gst_mpd_client_setup_streaming (mpdclient, adapt_set);
+  assert_equals_int (ret, TRUE);
+
+  activeStream = gst_mpdparser_get_active_stream_by_index (mpdclient, 0);
+  fail_if (activeStream == NULL);
+
+  /* expected duration of the next fragment */
+  expectedDuration = duration_to_ms (0, 0, 0, 0, 0, 2, 0);
+  expectedTimestamp = duration_to_ms (0, 0, 0, 0, 0, 13, 0);
+
+  ret = gst_mpd_client_get_next_fragment (mpdclient, 0, &fragment);
+  assert_equals_int (ret, TRUE);
+  assert_equals_string (fragment.uri, "/TestMedia0");
+  assert_equals_string (fragment.index_uri, "/TestIndex0");
+  assert_equals_uint64 (fragment.duration, expectedDuration * GST_MSECOND);
+  assert_equals_uint64 (fragment.timestamp, expectedTimestamp * GST_MSECOND);
+  gst_media_fragment_info_clear (&fragment);
+
+  /* advance to next segment */
+  flow = gst_mpd_client_advance_segment (mpdclient, activeStream, TRUE);
+  assert_equals_int (flow, GST_FLOW_OK);
+
+  /* second segment starts after first ends */
+  expectedTimestamp = expectedTimestamp + expectedDuration;
+
+  /* check second segment.
+   * It is a repeat of first segmentURL, because "r" in SegmentTimeline is 1
+   */
+  ret = gst_mpd_client_get_next_fragment (mpdclient, 0, &fragment);
+  assert_equals_int (ret, TRUE);
+  assert_equals_string (fragment.uri, "/TestMedia0");
+  assert_equals_string (fragment.index_uri, "/TestIndex0");
+  assert_equals_uint64 (fragment.duration, expectedDuration * GST_MSECOND);
+  assert_equals_uint64 (fragment.timestamp, expectedTimestamp * GST_MSECOND);
+  gst_media_fragment_info_clear (&fragment);
+
+  /* advance to next segment */
+  flow = gst_mpd_client_advance_segment (mpdclient, activeStream, TRUE);
+  assert_equals_int (flow, GST_FLOW_OK);
+
+  /* third segment has a small gap after the second ends  (t=10)
+   * We also need to take into consideration period's start (10)
+   */
+  expectedDuration = duration_to_ms (0, 0, 0, 0, 0, 3, 0);
+  expectedTimestamp = duration_to_ms (0, 0, 0, 0, 0, 20, 0);
+
+  /* check third segment */
+  ret = gst_mpd_client_get_next_fragment (mpdclient, 0, &fragment);
+  assert_equals_int (ret, TRUE);
+  assert_equals_string (fragment.uri, "/TestMedia1");
+  assert_equals_string (fragment.index_uri, "/TestIndex1");
+  assert_equals_uint64 (fragment.duration, expectedDuration * GST_MSECOND);
+  assert_equals_uint64 (fragment.timestamp, expectedTimestamp * GST_MSECOND);
+  gst_media_fragment_info_clear (&fragment);
+
+  gst_mpd_client_free (mpdclient);
+}
+
+GST_END_TEST;
+
+/*
  * Test parsing empty xml string
  *
  */
@@ -2203,7 +4131,6 @@
   GstMpdClient *mpdclient = gst_mpd_client_new ();
 
   ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
-
   assert_equals_int (ret, FALSE);
 
   gst_mpd_client_free (mpdclient);
@@ -2223,7 +4150,6 @@
   GstMpdClient *mpdclient = gst_mpd_client_new ();
 
   ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
-
   assert_equals_int (ret, FALSE);
 
   gst_mpd_client_free (mpdclient);
@@ -2239,13 +4165,12 @@
   const gchar *xml =
       "<?xml version=\"1.0\"?>"
       "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
-      " profiles=\"urn:mpeg:dash:profile:isoff-main:2011\"> </NPD>";
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\"> </NPD>";
 
   gboolean ret;
   GstMpdClient *mpdclient = gst_mpd_client_new ();
 
   ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
-
   assert_equals_int (ret, FALSE);
 
   gst_mpd_client_free (mpdclient);
@@ -2266,7 +4191,6 @@
   GstMpdClient *mpdclient = gst_mpd_client_new ();
 
   ret = gst_mpd_parse (mpdclient, xml, strlen (xml));
-
   assert_equals_int (ret, TRUE);
 
   gst_mpd_client_free (mpdclient);
@@ -2285,18 +4209,17 @@
   const gchar *xml =
       "<?xml version=\"1.0\"?>"
       "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
-      " profiles=\"urn:mpeg:dash:profile:isoff-main:2011\""
-      " availabilityStartTime=\"2015-03-24T0:0:0\""
-      " mediaPresentationDuration=\"P0Y0M0DT3H3M30S\">"
-      "<Period id=\"Period0\" duration=\"P0Y0M0DT1H1M0S\"></Period>"
-      "<Period id=\"Period1\"></Period>"
-      "<Period id=\"Period2\" start=\"P0Y0M0DT0H0M10S\"></Period></MPD>";
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\""
+      "     availabilityStartTime=\"2015-03-24T0:0:0\""
+      "     mediaPresentationDuration=\"P0Y0M0DT3H3M30S\">"
+      "  <Period id=\"Period0\" duration=\"P0Y0M0DT1H1M0S\"></Period>"
+      "  <Period id=\"Period1\"></Period>"
+      "  <Period id=\"Period2\" start=\"P0Y0M0DT0H0M10S\"></Period></MPD>";
 
   gboolean ret;
   GstMpdClient *mpdclient = gst_mpd_client_new ();
 
   ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
-
   assert_equals_int (ret, TRUE);
 
   /* period_idx should be 0 and we should have no active periods */
@@ -2331,16 +4254,15 @@
   const gchar *xml =
       "<?xml version=\"1.0\"?>"
       "<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\""
-      " profiles=\"urn:mpeg:dash:profile:isoff-main:2011\""
-      " availabilityStartTime=\"2015-03-24T0:0:0\""
-      " mediaPresentationDuration=\"P0Y0M0DT3H3M30S\">"
-      "<Period id=\"Period0\" start=\"P0Y0M0DT4H0M0S\"></Period></MPD>";
+      "     profiles=\"urn:mpeg:dash:profile:isoff-main:2011\""
+      "     availabilityStartTime=\"2015-03-24T0:0:0\""
+      "     mediaPresentationDuration=\"P0Y0M0DT3H3M30S\">"
+      "  <Period id=\"Period0\" start=\"P0Y0M0DT4H0M0S\"></Period></MPD>";
 
   gboolean ret;
   GstMpdClient *mpdclient = gst_mpd_client_new ();
 
   ret = gst_mpd_parse (mpdclient, xml, (gint) strlen (xml));
-
   assert_equals_int (ret, TRUE);
 
   /* period_idx should be 0 and we should have no active periods */
@@ -2377,8 +4299,8 @@
 
   /* tests parsing attributes from each element type */
   tcase_add_test (tc_simpleMPD, dash_mpdparser_mpd);
-  tcase_add_test (tc_simpleMPD, dash_mpdparser_program_information);
-  tcase_add_test (tc_simpleMPD, dash_mpdparser_base_URL);
+  tcase_add_test (tc_simpleMPD, dash_mpdparser_programInformation);
+  tcase_add_test (tc_simpleMPD, dash_mpdparser_baseURL);
   tcase_add_test (tc_simpleMPD, dash_mpdparser_location);
   tcase_add_test (tc_simpleMPD, dash_mpdparser_metrics);
   tcase_add_test (tc_simpleMPD, dash_mpdparser_metrics_range);
@@ -2449,6 +4371,8 @@
   tcase_add_test (tc_simpleMPD,
       dash_mpdparser_period_adaptationSet_segmentTemplate);
   tcase_add_test (tc_simpleMPD,
+      dash_mpdparser_period_adaptationSet_segmentTemplate_inherit);
+  tcase_add_test (tc_simpleMPD,
       dash_mpdparser_period_adaptationSet_representation);
   tcase_add_test (tc_simpleMPD,
       dash_mpdparser_period_adaptationSet_representation_representationBase);
@@ -2465,11 +4389,42 @@
   tcase_add_test (tc_simpleMPD,
       dash_mpdparser_period_adaptationSet_representation_segmentTemplate);
   tcase_add_test (tc_simpleMPD, dash_mpdparser_period_subset);
+  tcase_add_test (tc_simpleMPD, dash_mpdparser_utctiming);
 
   /* tests checking other possible values for attributes */
   tcase_add_test (tc_simpleMPD, dash_mpdparser_type_dynamic);
+  tcase_add_test (tc_simpleMPD, dash_mpdparser_template_parsing);
+  tcase_add_test (tc_simpleMPD, dash_mpdparser_isoff_ondemand_profile);
+  tcase_add_test (tc_simpleMPD, dash_mpdparser_GstDateTime);
+  tcase_add_test (tc_simpleMPD, dash_mpdparser_various_duration_formats);
 
+  /* tests checking the MPD management
+   * (eg. setting active streams, obtaining attributes values)
+   */
+  tcase_add_test (tc_complexMPD, dash_mpdparser_setup_media_presentation);
+  tcase_add_test (tc_complexMPD, dash_mpdparser_setup_streaming);
+  tcase_add_test (tc_complexMPD, dash_mpdparser_period_selection);
+  tcase_add_test (tc_complexMPD, dash_mpdparser_get_period_at_time);
+  tcase_add_test (tc_complexMPD, dash_mpdparser_adaptationSet_handling);
   tcase_add_test (tc_complexMPD, dash_mpdparser_representation_selection);
+  tcase_add_test (tc_complexMPD, dash_mpdparser_activeStream_selection);
+  tcase_add_test (tc_complexMPD, dash_mpdparser_activeStream_parameters);
+  tcase_add_test (tc_complexMPD, dash_mpdparser_get_audio_languages);
+  tcase_add_test (tc_complexMPD, dash_mpdparser_get_baseURL1);
+  tcase_add_test (tc_complexMPD, dash_mpdparser_get_baseURL2);
+  tcase_add_test (tc_complexMPD, dash_mpdparser_get_baseURL3);
+  tcase_add_test (tc_complexMPD, dash_mpdparser_get_baseURL4);
+  tcase_add_test (tc_complexMPD, dash_mpdparser_get_mediaPresentationDuration);
+  tcase_add_test (tc_complexMPD, dash_mpdparser_get_streamPresentationOffset);
+  tcase_add_test (tc_complexMPD, dash_mpdparser_segments);
+  tcase_add_test (tc_complexMPD, dash_mpdparser_headers);
+  tcase_add_test (tc_complexMPD, dash_mpdparser_fragments);
+  tcase_add_test (tc_complexMPD, dash_mpdparser_inherited_segmentBase);
+  tcase_add_test (tc_complexMPD, dash_mpdparser_inherited_segmentURL);
+  tcase_add_test (tc_complexMPD, dash_mpdparser_segment_list);
+  tcase_add_test (tc_complexMPD, dash_mpdparser_segment_template);
+  tcase_add_test (tc_complexMPD, dash_mpdparser_segment_timeline);
+
   /* tests checking the parsing of missing/incomplete attributes of xml */
   tcase_add_test (tc_negativeTests, dash_mpdparser_missing_xml);
   tcase_add_test (tc_negativeTests, dash_mpdparser_missing_mpd);
diff --git a/tests/check/elements/glimagesink.c b/tests/check/elements/glimagesink.c
index 702cb0a..07f6899 100644
--- a/tests/check/elements/glimagesink.c
+++ b/tests/check/elements/glimagesink.c
@@ -233,4 +233,12 @@
   return s;
 }
 
-GST_CHECK_MAIN (glimagesink)
+int
+main (int argc, char **argv)
+{
+  Suite *s;
+  g_setenv ("GST_GL_XINITTHREADS", "1", TRUE);
+  gst_check_init (&argc, &argv);
+  s = glimagesink_suite ();
+  return gst_check_run_suite (s, "glimagesink", __FILE__);
+}
diff --git a/tests/check/elements/pcapparse.c b/tests/check/elements/pcapparse.c
new file mode 100644
index 0000000..8a2a054
--- /dev/null
+++ b/tests/check/elements/pcapparse.c
@@ -0,0 +1,93 @@
+#include "parser.h"
+#include <gst/check/gstcheck.h>
+
+static GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src",
+    GST_PAD_SRC,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS ("raw/x-pcap"));
+
+static GstStaticPadTemplate sinktemplate_rtp = GST_STATIC_PAD_TEMPLATE ("sink",
+    GST_PAD_SINK,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS ("application/x-rtp"));
+
+static guint8 pcap_header[] = {
+  0xd4, 0xc3, 0xb2, 0xa1, 0x02, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
+};
+
+static const guint pcap_frame_with_eth_padding_offset = 16 + 14 + 20 + 8;
+static guint8 pcap_frame_with_eth_padding[] = {
+  0x5f, 0x12, 0x4e, 0x54, 0x57, 0x70, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00,
+  0x3c, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x29, 0xa6, 0x13, 0x41, 0x00, 0x0c,
+  0x29, 0xb2, 0x93, 0x7d, 0x08, 0x00, 0x45, 0x00, 0x00, 0x2c, 0x00, 0x00,
+  0x40, 0x00, 0x32, 0x11, 0x25, 0xb9, 0x52, 0xc5, 0x4d, 0xd6, 0xb9, 0x23,
+  0xc9, 0x49, 0x44, 0x66, 0x9f, 0xf2, 0x00, 0x18, 0x75, 0xe8, 0x80, 0xe3,
+  0x7c, 0xca, 0x79, 0xba, 0x09, 0xc0, 0x70, 0x6e, 0x8b, 0x33, 0x05, 0x0a,
+  0x00, 0xa0, 0x00, 0x00
+};
+
+static gboolean
+verify_buffer (buffer_verify_data_s * vdata, GstBuffer * buffer)
+{
+  guint offset = 0;
+  guint size = 0;
+
+  if (vdata->data_to_verify == pcap_frame_with_eth_padding) {
+    offset = pcap_frame_with_eth_padding_offset;
+    size = sizeof (pcap_frame_with_eth_padding) -
+      pcap_frame_with_eth_padding_offset - 2;
+  }
+
+  fail_unless_equals_int (gst_buffer_get_size (buffer), size);
+  fail_unless (gst_buffer_memcmp (buffer, 0, vdata->data_to_verify + offset,
+          size) == 0);
+
+  return TRUE;
+}
+
+static GstElement *
+setup_element (const gchar * desc)
+{
+  GstElement *element;
+  GstCaps * caps;
+
+  (void) desc;
+
+  caps = gst_caps_from_string ("application/x-rtp");
+  element = gst_check_setup_element ("pcapparse");
+  g_object_set (G_OBJECT (element), "caps", caps, NULL);
+  gst_caps_unref (caps);
+
+  return element;
+}
+
+GST_START_TEST (test_parse_frames_with_eth_padding)
+{
+  gst_parser_test_split (pcap_frame_with_eth_padding,
+      sizeof (pcap_frame_with_eth_padding));
+}
+GST_END_TEST;
+
+static Suite *
+pcapparse_suite (void)
+{
+  Suite *s = suite_create ("pcapparse");
+  TCase *tc_chain = tcase_create ("general");
+
+  ctx_factory = "pcapparse";
+  ctx_setup = setup_element;
+  ctx_sink_template = &sinktemplate_rtp;
+  ctx_src_template = &srctemplate;
+  ctx_headers[0].data = pcap_header;
+  ctx_headers[0].size = sizeof (pcap_header);
+  ctx_no_metadata = TRUE;
+  ctx_verify_buffer = verify_buffer;
+
+  suite_add_tcase (s, tc_chain);
+  tcase_add_test (tc_chain, test_parse_frames_with_eth_padding);
+
+  return s;
+}
+
+GST_CHECK_MAIN (pcapparse);
diff --git a/tests/check/generic/states.c b/tests/check/generic/states.c
index 1c81b5c..5df3024 100644
--- a/tests/check/generic/states.c
+++ b/tests/check/generic/states.c
@@ -26,6 +26,9 @@
 
 #include <unistd.h>
 
+#include <glib.h>
+#include <glib/gprintf.h>
+#include <gmodule.h>
 #include <gst/check/gstcheck.h>
 
 static GList *elements = NULL;
@@ -216,7 +219,7 @@
 static Suite *
 states_suite (void)
 {
-  Suite *s = suite_create ("states");
+  Suite *s = suite_create ("states_bad");
   TCase *tc_chain = tcase_create ("general");
 
 #if defined(HAVE_LADSPA) || defined(HAVE_LV2)
@@ -235,4 +238,22 @@
   return s;
 }
 
-GST_CHECK_MAIN (states);
+int
+main (int argc, char **argv)
+{
+  Suite *s;
+  GModule *libx11;
+
+  libx11 =
+      g_module_open ("libX11.so.6", G_MODULE_BIND_LOCAL | G_MODULE_BIND_LAZY);
+  if (libx11) {
+    void (*xinitthreads) (void);
+    if (g_module_symbol (libx11, "XInitThreads", (gpointer *) & xinitthreads)) {
+      xinitthreads ();
+    }
+    g_module_close (libx11);
+  }
+  gst_check_init (&argc, &argv);
+  s = states_suite ();
+  return gst_check_run_suite (s, "states_bad", __FILE__);
+}
diff --git a/tests/check/libs/aggregator.c b/tests/check/libs/aggregator.c
index 52bdd7f..b21c7cd 100644
--- a/tests/check/libs/aggregator.c
+++ b/tests/check/libs/aggregator.c
@@ -169,7 +169,7 @@
 gst_test_aggregator_init (GstTestAggregator * self)
 {
   GstAggregator *agg = GST_AGGREGATOR (self);
-  gst_segment_init (&agg->segment, GST_FORMAT_BYTES);
+  gst_segment_init (&agg->segment, GST_FORMAT_TIME);
   self->timestamp = 0;
   self->gap_expected = FALSE;
 }
@@ -641,14 +641,14 @@
   pipeline = gst_pipeline_new ("pipeline");
   src = gst_element_factory_make ("fakesrc", NULL);
   g_object_set (src, "num-buffers", TIMEOUT_NUM_BUFFERS, "sizetype", 2,
-      "sizemax", 4, NULL);
+      "sizemax", 4, "is-live", TRUE, "datarate", 4000, NULL);
 
   src1 = gst_element_factory_make ("fakesrc", NULL);
   g_object_set (src1, "num-buffers", TIMEOUT_NUM_BUFFERS, "sizetype", 2,
-      "sizemax", 4, NULL);
+      "sizemax", 4, "is-live", TRUE, "datarate", 4000, NULL);
 
   agg = gst_check_setup_element ("testaggregator");
-  g_object_set (agg, "latency", G_GINT64_CONSTANT (1000) /* 1 us */ , NULL);
+  g_object_set (agg, "latency", GST_USECOND, NULL);
   sink = gst_check_setup_element ("fakesink");
   g_object_set (sink, "signal-handoffs", TRUE, NULL);
   g_signal_connect (sink, "handoff", (GCallback) handoff, &count);
@@ -793,7 +793,7 @@
 GST_END_TEST;
 
 static void
-infinite_seek (guint num_srcs, guint num_seeks)
+infinite_seek (guint num_srcs, guint num_seeks, gboolean is_live)
 {
   GstBus *bus;
   GstMessage *message;
@@ -809,13 +809,19 @@
   agg = gst_check_setup_element ("testaggregator");
   sink = gst_check_setup_element ("fakesink");
 
+  if (is_live)
+    g_object_set (agg, "latency", GST_MSECOND, NULL);
+
   fail_unless (gst_bin_add (GST_BIN (pipeline), agg));
   fail_unless (gst_bin_add (GST_BIN (pipeline), sink));
   fail_unless (gst_element_link (agg, sink));
 
   for (i = 0; i < num_srcs; i++) {
     src = gst_element_factory_make ("fakesrc", NULL);
-    g_object_set (src, "sizetype", 2, "sizemax", 4, NULL);
+    g_object_set (src, "sizetype", 2, "sizemax", 4,
+        "format", GST_FORMAT_TIME, "datarate", 1000, NULL);
+    if (is_live)
+      g_object_set (src, "is-live", TRUE, NULL);
     fail_unless (gst_bin_add (GST_BIN (pipeline), src));
     fail_unless (gst_element_link (src, agg));
   }
@@ -846,7 +852,7 @@
 
             GST_INFO ("Seeking (num: %i)", count);
             seek_res =
-                gst_element_seek_simple (sink, GST_FORMAT_BYTES,
+                gst_element_seek_simple (sink, GST_FORMAT_TIME,
                 GST_SEEK_FLAG_FLUSH | GST_SEEK_FLAG_ACCURATE, 0);
             GST_INFO ("seek result is : %d", seek_res);
             fail_unless (seek_res != 0);
@@ -874,14 +880,21 @@
 
 GST_START_TEST (test_infinite_seek)
 {
-  infinite_seek (2, 500);
+  infinite_seek (2, 500, FALSE);
 }
 
 GST_END_TEST;
 
 GST_START_TEST (test_infinite_seek_50_src)
 {
-  infinite_seek (50, 100);
+  infinite_seek (50, 100, FALSE);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_infinite_seek_50_src_live)
+{
+  infinite_seek (50, 100, TRUE);
 }
 
 GST_END_TEST;
@@ -948,7 +961,7 @@
 
     src = gst_element_factory_make ("fakesrc", NULL);
     g_object_set (src, "num-buffers", 100000, "sizetype", 2, "sizemax", 4,
-        NULL);
+        "format", GST_FORMAT_TIME, "datarate", 1000, NULL);
     gst_element_set_locked_state (src, TRUE);
     fail_unless (gst_bin_add (GST_BIN (pipeline), src));
     fail_unless (gst_element_link (src, agg));
@@ -1027,7 +1040,7 @@
     } while (carry_on);
 
     GST_INFO ("Seeking");
-    fail_unless (gst_element_seek_simple (pipeline, GST_FORMAT_BYTES,
+    fail_unless (gst_element_seek_simple (pipeline, GST_FORMAT_TIME,
             GST_SEEK_FLAG_FLUSH | GST_SEEK_FLAG_ACCURATE, 0));
 
     count++;
@@ -1168,6 +1181,7 @@
   tcase_add_test (general, test_flushing_seek);
   tcase_add_test (general, test_infinite_seek);
   tcase_add_test (general, test_infinite_seek_50_src);
+  tcase_add_test (general, test_infinite_seek_50_src_live);
   tcase_add_test (general, test_linear_pipeline);
   tcase_add_test (general, test_two_src_pipeline);
   tcase_add_test (general, test_timeout_pipeline);
diff --git a/tests/check/libs/gstglcolorconvert.c b/tests/check/libs/gstglcolorconvert.c
index 0a0b59b..3e30077 100644
--- a/tests/check/libs/gstglcolorconvert.c
+++ b/tests/check/libs/gstglcolorconvert.c
@@ -107,9 +107,17 @@
 }
 
 static void
+_frame_unref (gpointer user_data)
+{
+  gint *ref_count = user_data;
+  g_atomic_int_add (ref_count, -1);
+}
+
+static void
 check_conversion (TestFrame * frames, guint size)
 {
   gint i, j, k, l;
+  gint ref_count = 0;
 
   for (i = 0; i < size; i++) {
     GstBuffer *inbuf;
@@ -132,9 +140,10 @@
     }
 
     /* create GL buffer */
+    ref_count += GST_VIDEO_INFO_N_PLANES (&in_info);
     inbuf = gst_buffer_new ();
     fail_unless (gst_gl_memory_setup_wrapped (context, &in_info, NULL,
-            (gpointer *) in_data, in_mem));
+            (gpointer *) in_data, in_mem, &ref_count, _frame_unref));
 
     for (j = 0; j < GST_VIDEO_INFO_N_PLANES (&in_info); j++) {
       gst_buffer_append_memory (inbuf, (GstMemory *) in_mem[j]);
@@ -201,6 +210,8 @@
     gst_caps_unref (in_caps);
     gst_video_frame_unmap (&in_frame);
     gst_buffer_unref (inbuf);
+
+    fail_unless_equals_int (ref_count, 0);
   }
 }
 
diff --git a/tests/check/libs/gstglcontext.c b/tests/check/libs/gstglcontext.c
index 601e673..8bb5f99 100644
--- a/tests/check/libs/gstglcontext.c
+++ b/tests/check/libs/gstglcontext.c
@@ -173,7 +173,7 @@
     gl->MatrixMode (GL_PROJECTION);
     gl->LoadIdentity ();
 
-    gl->ActiveTexture (GL_TEXTURE_2D);
+    gl->ActiveTexture (GL_TEXTURE0);
     gl->BindTexture (GL_TEXTURE_2D, tex);
 
     gl->EnableClientState (GL_VERTEX_ARRAY);
@@ -401,7 +401,9 @@
 _fill_context_info (GstGLContext * context, struct context_info *info)
 {
   info->handle = gst_gl_context_get_current_gl_context (info->platform);
-  info->api = gst_gl_context_get_current_gl_api (&info->major, &info->minor);
+  info->api =
+      gst_gl_context_get_current_gl_api (info->platform, &info->major,
+      &info->minor);
 }
 
 GST_START_TEST (test_current_context)
@@ -442,6 +444,46 @@
 
 GST_END_TEST;
 
+GST_START_TEST (test_context_can_share)
+{
+  GstGLContext *c1, *c2, *c3;
+  GError *error = NULL;
+
+  c1 = gst_gl_context_new (display);
+  gst_gl_context_create (c1, NULL, &error);
+  fail_if (error != NULL, "Error creating context %s\n",
+      error ? error->message : "Unknown Error");
+
+  c2 = gst_gl_context_new (display);
+  gst_gl_context_create (c2, c1, &error);
+  fail_if (error != NULL, "Error creating context %s\n",
+      error ? error->message : "Unknown Error");
+
+  fail_unless (gst_gl_context_can_share (c1, c2));
+  fail_unless (gst_gl_context_can_share (c2, c1));
+
+  c3 = gst_gl_context_new (display);
+  gst_gl_context_create (c3, c2, &error);
+  fail_if (error != NULL, "Error creating context %s\n",
+      error ? error->message : "Unknown Error");
+
+  fail_unless (gst_gl_context_can_share (c1, c3));
+  fail_unless (gst_gl_context_can_share (c3, c1));
+  fail_unless (gst_gl_context_can_share (c2, c3));
+  fail_unless (gst_gl_context_can_share (c3, c2));
+
+  /* destroy the middle context */
+  gst_object_unref (c2);
+  c2 = NULL;
+
+  fail_unless (gst_gl_context_can_share (c1, c3));
+  fail_unless (gst_gl_context_can_share (c3, c1));
+
+  gst_object_unref (c1);
+  gst_object_unref (c3);
+}
+
+GST_END_TEST;
 
 static Suite *
 gst_gl_context_suite (void)
@@ -454,6 +496,7 @@
   tcase_add_test (tc_chain, test_share);
   tcase_add_test (tc_chain, test_wrapped_context);
   tcase_add_test (tc_chain, test_current_context);
+  tcase_add_test (tc_chain, test_context_can_share);
 
   return s;
 }
diff --git a/tests/examples/Makefile.in b/tests/examples/Makefile.in
index c059d8c..bd7e2bd 100644
--- a/tests/examples/Makefile.in
+++ b/tests/examples/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -20,7 +20,17 @@
 # (parallel) run has finished, so it should go right through the second time.
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -85,9 +95,6 @@
 host_triplet = @host@
 target_triplet = @target@
 noinst_PROGRAMS = playout$(EXEEXT)
-DIST_COMMON = $(top_srcdir)/common/parallel-subdirs.mak \
-	$(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp
 subdir = tests/examples
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
@@ -126,6 +133,7 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -218,6 +226,9 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in \
+	$(top_srcdir)/common/parallel-subdirs.mak \
+	$(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 am__relativize = \
   dir0=`pwd`; \
@@ -260,8 +271,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -290,8 +299,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -339,11 +346,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -527,6 +537,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -605,7 +616,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -645,6 +661,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -790,7 +807,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/examples/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu tests/examples/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -799,7 +815,7 @@
 	    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/parallel-subdirs.mak:
+$(top_srcdir)/common/parallel-subdirs.mak $(am__empty):
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -1152,6 +1168,8 @@
 	mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
 	uninstall-am
 
+.PRECIOUS: Makefile
+
 
 .PHONY: independent-subdirs $(SUBDIRS)
 
diff --git a/tests/examples/avsamplesink/Makefile.in b/tests/examples/avsamplesink/Makefile.in
index 9877db3..85da9da 100644
--- a/tests/examples/avsamplesink/Makefile.in
+++ b/tests/examples/avsamplesink/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -15,7 +15,17 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 target_triplet = @target@
 noinst_PROGRAMS = avsamplesink$(EXEEXT)
 subdir = tests/examples/avsamplesink
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -120,6 +128,7 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -198,6 +207,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -215,8 +225,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -245,8 +253,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -294,11 +300,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -482,6 +491,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -560,7 +570,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -600,6 +615,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -738,7 +754,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/examples/avsamplesink/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu tests/examples/avsamplesink/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1025,6 +1040,8 @@
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
 	tags tags-am uninstall uninstall-am
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/tests/examples/camerabin2/Makefile.in b/tests/examples/camerabin2/Makefile.in
index 4f02de1..9a8b2e8 100644
--- a/tests/examples/camerabin2/Makefile.in
+++ b/tests/examples/camerabin2/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -82,8 +92,6 @@
 target_triplet = @target@
 noinst_PROGRAMS = $(am__EXEEXT_1) $(am__EXEEXT_2)
 subdir = tests/examples/camerabin2
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -121,6 +129,7 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -216,6 +225,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -233,8 +243,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -263,8 +271,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -312,11 +318,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -500,6 +509,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -578,7 +588,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -618,6 +633,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -780,7 +796,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/examples/camerabin2/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu tests/examples/camerabin2/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1086,6 +1101,8 @@
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
 	tags tags-am uninstall uninstall-am
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/tests/examples/codecparsers/Makefile.in b/tests/examples/codecparsers/Makefile.in
index f737cae..8a77118 100644
--- a/tests/examples/codecparsers/Makefile.in
+++ b/tests/examples/codecparsers/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -15,7 +15,17 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 target_triplet = @target@
 noinst_PROGRAMS = parse-jpeg$(EXEEXT) parse-vp8$(EXEEXT)
 subdir = tests/examples/codecparsers
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -120,6 +128,7 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -201,6 +210,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -218,8 +228,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -248,8 +256,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -297,11 +303,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -485,6 +494,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -563,7 +573,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -603,6 +618,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -739,7 +755,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/examples/codecparsers/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu tests/examples/codecparsers/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1045,6 +1060,8 @@
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
 	tags tags-am uninstall uninstall-am
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/tests/examples/directfb/Makefile.in b/tests/examples/directfb/Makefile.in
index 96f41aa..fd363b9 100644
--- a/tests/examples/directfb/Makefile.in
+++ b/tests/examples/directfb/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -15,7 +15,17 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 target_triplet = @target@
 noinst_PROGRAMS = gstdfb$(EXEEXT)
 subdir = tests/examples/directfb
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -120,6 +128,7 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -195,6 +204,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -212,8 +222,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -242,8 +250,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -291,11 +297,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -479,6 +488,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -557,7 +567,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -597,6 +612,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -727,7 +743,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/examples/directfb/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu tests/examples/directfb/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1014,6 +1029,8 @@
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
 	tags tags-am uninstall uninstall-am
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/tests/examples/gl/Makefile.in b/tests/examples/gl/Makefile.in
index e90e52d..e56968b 100644
--- a/tests/examples/gl/Makefile.in
+++ b/tests/examples/gl/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -14,7 +14,17 @@
 
 @SET_MAKE@
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -84,7 +94,6 @@
 @HAVE_SDL_TRUE@@HAVE_WINDOW_COCOA_FALSE@@USE_OPENGL_TRUE@am__append_4 = sdl
 @HAVE_GTK3_TRUE@@HAVE_WINDOW_COCOA_FALSE@@USE_OPENGL_TRUE@am__append_5 = gtk
 subdir = tests/examples/gl
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
 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 \
@@ -122,6 +131,7 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -180,6 +190,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 am__relativize = \
   dir0=`pwd`; \
@@ -222,8 +233,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -252,8 +261,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -301,11 +308,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -489,6 +499,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -567,7 +578,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -607,6 +623,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -733,7 +750,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/examples/gl/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu tests/examples/gl/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1028,6 +1044,8 @@
 	mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
 	ps ps-am tags tags-am uninstall uninstall-am
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/tests/examples/gl/clutter/Makefile.in b/tests/examples/gl/clutter/Makefile.in
index 045b238..38aa12c 100644
--- a/tests/examples/gl/clutter/Makefile.in
+++ b/tests/examples/gl/clutter/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -15,7 +15,17 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -85,8 +95,6 @@
 @HAVE_CLUTTER_TRUE@am__append_1 = cluttershare
 @HAVE_CLUTTER_GLX_TRUE@@HAVE_CLUTTER_X11_TRUE@@HAVE_XCOMPOSITE_TRUE@am__append_2 = clutteractor clutteractortee
 subdir = tests/examples/gl/clutter
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -124,6 +132,7 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -238,6 +247,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -255,8 +265,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -285,8 +293,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -334,11 +340,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -522,6 +531,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -600,7 +610,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -640,6 +655,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -793,7 +809,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/examples/gl/clutter/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu tests/examples/gl/clutter/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1118,6 +1133,8 @@
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
 	tags tags-am uninstall uninstall-am
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/tests/examples/gl/cocoa/Makefile.in b/tests/examples/gl/cocoa/Makefile.in
index 6880b6e..0568119 100644
--- a/tests/examples/gl/cocoa/Makefile.in
+++ b/tests/examples/gl/cocoa/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -15,7 +15,17 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 target_triplet = @target@
 @HAVE_WINDOW_COCOA_TRUE@noinst_PROGRAMS = cocoa-videooverlay$(EXEEXT)
 subdir = tests/examples/gl/cocoa
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -120,6 +128,7 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -201,6 +210,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -218,8 +228,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -248,8 +256,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -297,11 +303,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -485,6 +494,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -563,7 +573,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -603,6 +618,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -736,7 +752,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/examples/gl/cocoa/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu tests/examples/gl/cocoa/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1023,6 +1038,8 @@
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
 	tags tags-am uninstall uninstall-am
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/tests/examples/gl/generic/Makefile.in b/tests/examples/gl/generic/Makefile.in
index d6671f8..4f1c0ba 100644
--- a/tests/examples/gl/generic/Makefile.in
+++ b/tests/examples/gl/generic/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -14,7 +14,17 @@
 
 @SET_MAKE@
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -79,7 +89,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = tests/examples/gl/generic
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am 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 \
@@ -117,6 +126,7 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -176,6 +186,7 @@
 ETAGS = etags
 CTAGS = ctags
 DIST_SUBDIRS = $(SUBDIRS)
+am__DIST_COMMON = $(srcdir)/Makefile.in README
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 am__relativize = \
   dir0=`pwd`; \
@@ -218,8 +229,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -248,8 +257,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -297,11 +304,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -485,6 +495,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -563,7 +574,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -603,6 +619,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -727,7 +744,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/examples/gl/generic/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu tests/examples/gl/generic/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1022,6 +1038,8 @@
 	mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
 	ps ps-am tags tags-am uninstall uninstall-am
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/tests/examples/gl/generic/cube/Makefile.in b/tests/examples/gl/generic/cube/Makefile.in
index aaff35c..e88b272 100644
--- a/tests/examples/gl/generic/cube/Makefile.in
+++ b/tests/examples/gl/generic/cube/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -15,7 +15,17 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 target_triplet = @target@
 noinst_PROGRAMS = cube$(EXEEXT)
 subdir = tests/examples/gl/generic/cube
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -120,6 +128,7 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -197,6 +206,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -214,8 +224,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -244,8 +252,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -293,11 +299,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -481,6 +490,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -559,7 +569,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -599,6 +614,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -728,7 +744,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/examples/gl/generic/cube/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu tests/examples/gl/generic/cube/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1015,6 +1030,8 @@
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
 	tags tags-am uninstall uninstall-am
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/tests/examples/gl/generic/cubeyuv/Makefile.in b/tests/examples/gl/generic/cubeyuv/Makefile.in
index e4828f3..da6cb9e 100644
--- a/tests/examples/gl/generic/cubeyuv/Makefile.in
+++ b/tests/examples/gl/generic/cubeyuv/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -15,7 +15,17 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 target_triplet = @target@
 noinst_PROGRAMS = cubeyuv$(EXEEXT)
 subdir = tests/examples/gl/generic/cubeyuv
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -120,6 +128,7 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -197,6 +206,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -214,8 +224,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -244,8 +252,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -293,11 +299,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -481,6 +490,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -559,7 +569,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -599,6 +614,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -728,7 +744,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/examples/gl/generic/cubeyuv/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu tests/examples/gl/generic/cubeyuv/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1015,6 +1030,8 @@
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
 	tags tags-am uninstall uninstall-am
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/tests/examples/gl/generic/doublecube/Makefile.in b/tests/examples/gl/generic/doublecube/Makefile.in
index 514849f..ed0a0c8 100644
--- a/tests/examples/gl/generic/doublecube/Makefile.in
+++ b/tests/examples/gl/generic/doublecube/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -15,7 +15,17 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 target_triplet = @target@
 noinst_PROGRAMS = doublecube$(EXEEXT)
 subdir = tests/examples/gl/generic/doublecube
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -120,6 +128,7 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -197,6 +206,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -214,8 +224,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -244,8 +252,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -293,11 +299,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -481,6 +490,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -559,7 +569,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -599,6 +614,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -728,7 +744,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/examples/gl/generic/doublecube/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu tests/examples/gl/generic/doublecube/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1015,6 +1030,8 @@
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
 	tags tags-am uninstall uninstall-am
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/tests/examples/gl/generic/recordgraphic/Makefile.in b/tests/examples/gl/generic/recordgraphic/Makefile.in
index cae8f82..6707265 100644
--- a/tests/examples/gl/generic/recordgraphic/Makefile.in
+++ b/tests/examples/gl/generic/recordgraphic/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -15,7 +15,17 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 target_triplet = @target@
 noinst_PROGRAMS = recordgraphic$(EXEEXT)
 subdir = tests/examples/gl/generic/recordgraphic
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -120,6 +128,7 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -198,6 +207,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -215,8 +225,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -245,8 +253,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -294,11 +300,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -482,6 +491,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -560,7 +570,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -600,6 +615,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -729,7 +745,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/examples/gl/generic/recordgraphic/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu tests/examples/gl/generic/recordgraphic/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1016,6 +1031,8 @@
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
 	tags tags-am uninstall uninstall-am
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/tests/examples/gl/gtk/3dvideo/Makefile.in b/tests/examples/gl/gtk/3dvideo/Makefile.in
index fdb7f83..06046fb 100644
--- a/tests/examples/gl/gtk/3dvideo/Makefile.in
+++ b/tests/examples/gl/gtk/3dvideo/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -82,8 +92,6 @@
 target_triplet = @target@
 noinst_PROGRAMS = 3dvideo$(EXEEXT)
 subdir = tests/examples/gl/gtk/3dvideo
-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 \
@@ -121,6 +129,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -220,6 +230,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -237,8 +248,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -267,8 +276,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -316,11 +323,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -504,6 +514,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -582,7 +593,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -622,6 +638,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -758,7 +775,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/examples/gl/gtk/3dvideo/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu tests/examples/gl/gtk/3dvideo/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1084,6 +1100,8 @@
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
 	tags tags-am uninstall uninstall-am
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/tests/examples/gl/gtk/Makefile.in b/tests/examples/gl/gtk/Makefile.in
index 57373c1..1712715 100644
--- a/tests/examples/gl/gtk/Makefile.in
+++ b/tests/examples/gl/gtk/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -15,7 +15,17 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 target_triplet = @target@
 @HAVE_WINDOW_COCOA_TRUE@am__append_1 = -x objective-c
 subdir = tests/examples/gl/gtk
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp 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 \
@@ -120,6 +128,7 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -213,6 +222,7 @@
 ETAGS = etags
 CTAGS = ctags
 DIST_SUBDIRS = $(SUBDIRS)
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp README
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 am__relativize = \
   dir0=`pwd`; \
@@ -255,8 +265,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -285,8 +293,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -334,11 +340,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -522,6 +531,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -600,7 +610,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -640,6 +655,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -771,7 +787,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/examples/gl/gtk/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu tests/examples/gl/gtk/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1126,6 +1141,8 @@
 	mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
 	uninstall-am
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/tests/examples/gl/gtk/filternovideooverlay/Makefile.in b/tests/examples/gl/gtk/filternovideooverlay/Makefile.in
index 2378cf4..c3473fa 100644
--- a/tests/examples/gl/gtk/filternovideooverlay/Makefile.in
+++ b/tests/examples/gl/gtk/filternovideooverlay/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -15,7 +15,17 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 target_triplet = @target@
 noinst_PROGRAMS = filternovideooverlay$(EXEEXT)
 subdir = tests/examples/gl/gtk/filternovideooverlay
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -120,6 +128,7 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -199,6 +208,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -216,8 +226,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -246,8 +254,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -295,11 +301,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -483,6 +492,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -561,7 +571,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -601,6 +616,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -740,7 +756,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/examples/gl/gtk/filternovideooverlay/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu tests/examples/gl/gtk/filternovideooverlay/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1027,6 +1042,8 @@
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
 	tags tags-am uninstall uninstall-am
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/tests/examples/gl/gtk/filtervideooverlay/Makefile.in b/tests/examples/gl/gtk/filtervideooverlay/Makefile.in
index 66f6ee1..eb97df1 100644
--- a/tests/examples/gl/gtk/filtervideooverlay/Makefile.in
+++ b/tests/examples/gl/gtk/filtervideooverlay/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -15,7 +15,17 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 target_triplet = @target@
 noinst_PROGRAMS = filtervideooverlay$(EXEEXT)
 subdir = tests/examples/gl/gtk/filtervideooverlay
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -120,6 +128,7 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -199,6 +208,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -216,8 +226,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -246,8 +254,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -295,11 +301,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -483,6 +492,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -561,7 +571,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -601,6 +616,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -734,7 +750,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/examples/gl/gtk/filtervideooverlay/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu tests/examples/gl/gtk/filtervideooverlay/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1021,6 +1036,8 @@
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
 	tags tags-am uninstall uninstall-am
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/tests/examples/gl/gtk/fxtest/Makefile.in b/tests/examples/gl/gtk/fxtest/Makefile.in
index b6b3612..4653f34 100644
--- a/tests/examples/gl/gtk/fxtest/Makefile.in
+++ b/tests/examples/gl/gtk/fxtest/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -15,7 +15,17 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 target_triplet = @target@
 noinst_PROGRAMS = fxtest$(EXEEXT) pixbufdrop$(EXEEXT)
 subdir = tests/examples/gl/gtk/fxtest
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -120,6 +128,7 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -206,6 +215,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -223,8 +233,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -253,8 +261,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -302,11 +308,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -490,6 +499,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -568,7 +578,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -608,6 +623,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -750,7 +766,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/examples/gl/gtk/fxtest/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu tests/examples/gl/gtk/fxtest/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1056,6 +1071,8 @@
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
 	tags tags-am uninstall uninstall-am
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/tests/examples/gl/gtk/gtkvideooverlay/Makefile.in b/tests/examples/gl/gtk/gtkvideooverlay/Makefile.in
index 2edd25f..84abce7 100644
--- a/tests/examples/gl/gtk/gtkvideooverlay/Makefile.in
+++ b/tests/examples/gl/gtk/gtkvideooverlay/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -15,7 +15,17 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 target_triplet = @target@
 noinst_PROGRAMS = gtkvideooverlay$(EXEEXT)
 subdir = tests/examples/gl/gtk/gtkvideooverlay
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -120,6 +128,7 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -199,6 +208,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -216,8 +226,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -246,8 +254,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -295,11 +301,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -483,6 +492,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -561,7 +571,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -601,6 +616,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -734,7 +750,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/examples/gl/gtk/gtkvideooverlay/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu tests/examples/gl/gtk/gtkvideooverlay/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1021,6 +1036,8 @@
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
 	tags tags-am uninstall uninstall-am
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/tests/examples/gl/gtk/switchvideooverlay/Makefile.in b/tests/examples/gl/gtk/switchvideooverlay/Makefile.in
index b2487fc..9ef9d50 100644
--- a/tests/examples/gl/gtk/switchvideooverlay/Makefile.in
+++ b/tests/examples/gl/gtk/switchvideooverlay/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -15,7 +15,17 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 target_triplet = @target@
 noinst_PROGRAMS = switchvideooverlay$(EXEEXT)
 subdir = tests/examples/gl/gtk/switchvideooverlay
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -120,6 +128,7 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -199,6 +208,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -216,8 +226,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -246,8 +254,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -295,11 +301,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -483,6 +492,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -561,7 +571,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -601,6 +616,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -734,7 +750,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/examples/gl/gtk/switchvideooverlay/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu tests/examples/gl/gtk/switchvideooverlay/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1021,6 +1036,8 @@
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
 	tags tags-am uninstall uninstall-am
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/tests/examples/gl/qt/Makefile.in b/tests/examples/gl/qt/Makefile.in
index 04ed582..e2032ef 100644
--- a/tests/examples/gl/qt/Makefile.in
+++ b/tests/examples/gl/qt/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -14,7 +14,17 @@
 
 @SET_MAKE@
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -79,7 +89,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = tests/examples/gl/qt
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am 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 \
@@ -117,6 +126,7 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -141,6 +151,7 @@
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+am__DIST_COMMON = $(srcdir)/Makefile.in README
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -158,8 +169,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -188,8 +197,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -237,11 +244,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -425,6 +435,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -503,7 +514,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -543,6 +559,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -666,7 +683,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/examples/gl/qt/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu tests/examples/gl/qt/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -841,6 +857,8 @@
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
 	tags-am uninstall uninstall-am
 
+.PRECIOUS: Makefile
+
 
 #SUBDIRS = videooverlay qglwidgetvideooverlay mousevideooverlay
 
diff --git a/tests/examples/gl/sdl/Makefile.in b/tests/examples/gl/sdl/Makefile.in
index 7fa1d27..bc1b961 100644
--- a/tests/examples/gl/sdl/Makefile.in
+++ b/tests/examples/gl/sdl/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -15,7 +15,17 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -84,8 +94,6 @@
 #works on win32 and X
 @HAVE_SDL_TRUE@am__append_1 = sdlshare sdlshare2
 subdir = tests/examples/gl/sdl
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -123,6 +131,7 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -213,6 +222,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -230,8 +240,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -260,8 +268,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -309,11 +315,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -497,6 +506,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -575,7 +585,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -615,6 +630,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -765,7 +781,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/examples/gl/sdl/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu tests/examples/gl/sdl/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1071,6 +1086,8 @@
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
 	tags tags-am uninstall uninstall-am
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/tests/examples/gtk/Makefile.in b/tests/examples/gtk/Makefile.in
index 6bd161e..4364f31 100644
--- a/tests/examples/gtk/Makefile.in
+++ b/tests/examples/gtk/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -15,7 +15,17 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -82,8 +92,6 @@
 noinst_PROGRAMS = gtksink$(EXEEXT) $(am__EXEEXT_1)
 @USE_GL_TRUE@@USE_GTK3_GL_TRUE@am__append_1 = gtkglsink
 subdir = tests/examples/gtk
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -121,6 +129,7 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -209,6 +218,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -226,8 +236,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -256,8 +264,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -305,11 +311,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -493,6 +502,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -571,7 +581,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -611,6 +626,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -753,7 +769,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/examples/gtk/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu tests/examples/gtk/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1059,6 +1074,8 @@
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
 	tags tags-am uninstall uninstall-am
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/tests/examples/mpegts/Makefile.in b/tests/examples/mpegts/Makefile.in
index 0d70029..f1223ab 100644
--- a/tests/examples/mpegts/Makefile.in
+++ b/tests/examples/mpegts/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -15,7 +15,17 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 target_triplet = @target@
 noinst_PROGRAMS = tsparser$(EXEEXT)
 subdir = tests/examples/mpegts
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -120,6 +128,7 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -195,6 +204,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -212,8 +222,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -242,8 +250,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -291,11 +297,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -479,6 +488,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -557,7 +567,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -597,6 +612,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -727,7 +743,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/examples/mpegts/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu tests/examples/mpegts/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1014,6 +1029,8 @@
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
 	tags tags-am uninstall uninstall-am
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/tests/examples/mxf/Makefile.in b/tests/examples/mxf/Makefile.in
index 071db62..bbb41a0 100644
--- a/tests/examples/mxf/Makefile.in
+++ b/tests/examples/mxf/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -82,8 +92,6 @@
 target_triplet = @target@
 noinst_PROGRAMS = mxfdemux-structure$(EXEEXT)
 subdir = tests/examples/mxf
-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 \
@@ -121,6 +129,8 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -199,6 +209,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -216,8 +227,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -246,8 +255,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -295,11 +302,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -483,6 +493,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -561,7 +572,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -601,6 +617,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -729,7 +746,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/examples/mxf/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu tests/examples/mxf/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1016,6 +1032,8 @@
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
 	tags tags-am uninstall uninstall-am
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/tests/examples/opencv/Makefile.am b/tests/examples/opencv/Makefile.am
index 27dbfb3..81e28d8 100644
--- a/tests/examples/opencv/Makefile.am
+++ b/tests/examples/opencv/Makefile.am
@@ -1,12 +1,16 @@
 noinst_PROGRAMS = gstmotioncells_dynamic_test \
-		  gsthanddetect_test
+		  gsthanddetect_test \
+		  gstfacedetect_test
 
 gstmotioncells_dynamic_test_SOURCES = gstmotioncells_dynamic_test.c
 gsthanddetect_test_SOURCES = gsthanddetect_test.c
+gstfacedetect_test_SOURCES = gstfacedetect_test.c
 
 gstmotioncells_dynamic_test_CFLAGS = $(GST_CFLAGS) $(GST_BASE_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS)
 gstmotioncells_dynamic_test_LDFLAGS = $(GST_LIBS) $(GST_BASE_LIBS) $(GST_PLUGINS_BASE_LIBS) $(GSTPB_BASE_LIBS)
 
 gsthanddetect_test_CFLAGS = $(GST_CFLAGS) $(GST_BASE_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS)
 gsthanddetect_test_LDFLAGS = $(GST_LIBS) $(GST_BASE_LIBS) $(GST_PLUGINS_BASE_LIBS) $(GSTPB_BASE_LIBS)
-	
+
+gstfacedetect_test_CFLAGS = $(GST_CFLAGS) $(GST_BASE_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS)
+gstfacedetect_test_LDFLAGS = $(GST_LIBS) $(GST_BASE_LIBS) $(GST_PLUGINS_BASE_LIBS) $(GSTPB_BASE_LIBS)
diff --git a/tests/examples/opencv/Makefile.in b/tests/examples/opencv/Makefile.in
index a6832f1..61c42b5 100644
--- a/tests/examples/opencv/Makefile.in
+++ b/tests/examples/opencv/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -15,7 +15,17 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -80,10 +90,8 @@
 host_triplet = @host@
 target_triplet = @target@
 noinst_PROGRAMS = gstmotioncells_dynamic_test$(EXEEXT) \
-	gsthanddetect_test$(EXEEXT)
+	gsthanddetect_test$(EXEEXT) gstfacedetect_test$(EXEEXT)
 subdir = tests/examples/opencv
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -121,19 +129,28 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
 PROGRAMS = $(noinst_PROGRAMS)
-am_gsthanddetect_test_OBJECTS =  \
-	gsthanddetect_test-gsthanddetect_test.$(OBJEXT)
-gsthanddetect_test_OBJECTS = $(am_gsthanddetect_test_OBJECTS)
-gsthanddetect_test_LDADD = $(LDADD)
+am_gstfacedetect_test_OBJECTS =  \
+	gstfacedetect_test-gstfacedetect_test.$(OBJEXT)
+gstfacedetect_test_OBJECTS = $(am_gstfacedetect_test_OBJECTS)
+gstfacedetect_test_LDADD = $(LDADD)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
 am__v_lt_1 = 
+gstfacedetect_test_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+	$(gstfacedetect_test_CFLAGS) $(CFLAGS) \
+	$(gstfacedetect_test_LDFLAGS) $(LDFLAGS) -o $@
+am_gsthanddetect_test_OBJECTS =  \
+	gsthanddetect_test-gsthanddetect_test.$(OBJEXT)
+gsthanddetect_test_OBJECTS = $(am_gsthanddetect_test_OBJECTS)
+gsthanddetect_test_LDADD = $(LDADD)
 gsthanddetect_test_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
 	$(gsthanddetect_test_CFLAGS) $(CFLAGS) \
@@ -180,9 +197,10 @@
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD    " $@;
 am__v_CCLD_1 = 
-SOURCES = $(gsthanddetect_test_SOURCES) \
+SOURCES = $(gstfacedetect_test_SOURCES) $(gsthanddetect_test_SOURCES) \
 	$(gstmotioncells_dynamic_test_SOURCES)
-DIST_SOURCES = $(gsthanddetect_test_SOURCES) \
+DIST_SOURCES = $(gstfacedetect_test_SOURCES) \
+	$(gsthanddetect_test_SOURCES) \
 	$(gstmotioncells_dynamic_test_SOURCES)
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
@@ -208,6 +226,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -225,8 +244,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -255,8 +272,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -304,11 +319,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -492,6 +510,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -570,7 +589,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -610,6 +634,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -720,10 +745,13 @@
 wayland_scanner = @wayland_scanner@
 gstmotioncells_dynamic_test_SOURCES = gstmotioncells_dynamic_test.c
 gsthanddetect_test_SOURCES = gsthanddetect_test.c
+gstfacedetect_test_SOURCES = gstfacedetect_test.c
 gstmotioncells_dynamic_test_CFLAGS = $(GST_CFLAGS) $(GST_BASE_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS)
 gstmotioncells_dynamic_test_LDFLAGS = $(GST_LIBS) $(GST_BASE_LIBS) $(GST_PLUGINS_BASE_LIBS) $(GSTPB_BASE_LIBS)
 gsthanddetect_test_CFLAGS = $(GST_CFLAGS) $(GST_BASE_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS)
 gsthanddetect_test_LDFLAGS = $(GST_LIBS) $(GST_BASE_LIBS) $(GST_PLUGINS_BASE_LIBS) $(GSTPB_BASE_LIBS)
+gstfacedetect_test_CFLAGS = $(GST_CFLAGS) $(GST_BASE_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS)
+gstfacedetect_test_LDFLAGS = $(GST_LIBS) $(GST_BASE_LIBS) $(GST_PLUGINS_BASE_LIBS) $(GSTPB_BASE_LIBS)
 all: all-am
 
 .SUFFIXES:
@@ -740,7 +768,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/examples/opencv/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu tests/examples/opencv/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -768,6 +795,10 @@
 	echo " rm -f" $$list; \
 	rm -f $$list
 
+gstfacedetect_test$(EXEEXT): $(gstfacedetect_test_OBJECTS) $(gstfacedetect_test_DEPENDENCIES) $(EXTRA_gstfacedetect_test_DEPENDENCIES) 
+	@rm -f gstfacedetect_test$(EXEEXT)
+	$(AM_V_CCLD)$(gstfacedetect_test_LINK) $(gstfacedetect_test_OBJECTS) $(gstfacedetect_test_LDADD) $(LIBS)
+
 gsthanddetect_test$(EXEEXT): $(gsthanddetect_test_OBJECTS) $(gsthanddetect_test_DEPENDENCIES) $(EXTRA_gsthanddetect_test_DEPENDENCIES) 
 	@rm -f gsthanddetect_test$(EXEEXT)
 	$(AM_V_CCLD)$(gsthanddetect_test_LINK) $(gsthanddetect_test_OBJECTS) $(gsthanddetect_test_LDADD) $(LIBS)
@@ -782,6 +813,7 @@
 distclean-compile:
 	-rm -f *.tab.c
 
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gstfacedetect_test-gstfacedetect_test.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gsthanddetect_test-gsthanddetect_test.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gstmotioncells_dynamic_test-gstmotioncells_dynamic_test.Po@am__quote@
 
@@ -809,6 +841,20 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
+gstfacedetect_test-gstfacedetect_test.o: gstfacedetect_test.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gstfacedetect_test_CFLAGS) $(CFLAGS) -MT gstfacedetect_test-gstfacedetect_test.o -MD -MP -MF $(DEPDIR)/gstfacedetect_test-gstfacedetect_test.Tpo -c -o gstfacedetect_test-gstfacedetect_test.o `test -f 'gstfacedetect_test.c' || echo '$(srcdir)/'`gstfacedetect_test.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstfacedetect_test-gstfacedetect_test.Tpo $(DEPDIR)/gstfacedetect_test-gstfacedetect_test.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstfacedetect_test.c' object='gstfacedetect_test-gstfacedetect_test.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gstfacedetect_test_CFLAGS) $(CFLAGS) -c -o gstfacedetect_test-gstfacedetect_test.o `test -f 'gstfacedetect_test.c' || echo '$(srcdir)/'`gstfacedetect_test.c
+
+gstfacedetect_test-gstfacedetect_test.obj: gstfacedetect_test.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gstfacedetect_test_CFLAGS) $(CFLAGS) -MT gstfacedetect_test-gstfacedetect_test.obj -MD -MP -MF $(DEPDIR)/gstfacedetect_test-gstfacedetect_test.Tpo -c -o gstfacedetect_test-gstfacedetect_test.obj `if test -f 'gstfacedetect_test.c'; then $(CYGPATH_W) 'gstfacedetect_test.c'; else $(CYGPATH_W) '$(srcdir)/gstfacedetect_test.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstfacedetect_test-gstfacedetect_test.Tpo $(DEPDIR)/gstfacedetect_test-gstfacedetect_test.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstfacedetect_test.c' object='gstfacedetect_test-gstfacedetect_test.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gstfacedetect_test_CFLAGS) $(CFLAGS) -c -o gstfacedetect_test-gstfacedetect_test.obj `if test -f 'gstfacedetect_test.c'; then $(CYGPATH_W) 'gstfacedetect_test.c'; else $(CYGPATH_W) '$(srcdir)/gstfacedetect_test.c'; fi`
+
 gsthanddetect_test-gsthanddetect_test.o: gsthanddetect_test.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gsthanddetect_test_CFLAGS) $(CFLAGS) -MT gsthanddetect_test-gsthanddetect_test.o -MD -MP -MF $(DEPDIR)/gsthanddetect_test-gsthanddetect_test.Tpo -c -o gsthanddetect_test-gsthanddetect_test.o `test -f 'gsthanddetect_test.c' || echo '$(srcdir)/'`gsthanddetect_test.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gsthanddetect_test-gsthanddetect_test.Tpo $(DEPDIR)/gsthanddetect_test-gsthanddetect_test.Po
@@ -1046,6 +1092,8 @@
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
 	tags tags-am uninstall uninstall-am
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/tests/examples/opencv/gstfacedetect_test.c b/tests/examples/opencv/gstfacedetect_test.c
new file mode 100644
index 0000000..8ccbda0
--- /dev/null
+++ b/tests/examples/opencv/gstfacedetect_test.c
@@ -0,0 +1,238 @@
+/* GStreamer
+ * Copyright (C) 2015 Vanessa Chipirrás <vchipirras6@gmail.com>
+ *
+ *  gstfacedetect_test: gsteramer facedetect plugin demo application,
+ *  part work of Outreachy 2015 project
+ *
+ * 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 <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gst/gst.h>
+
+GstElement *playbin, *pipeline;
+GstElement *v4l2src, *videoscale, *videoconvert_in, *facedetect,
+    *videoconvert_out, *autovideosink;
+static gboolean ctrlvol = FALSE;
+static gboolean silent = FALSE;
+
+static GstBusSyncReply
+bus_sync_handler (GstBus * bus, GstMessage * message, GstPipeline * pipeline)
+{
+  const GstStructure *structure;
+  const GValue *value;
+  gchar *contents;
+  gint i;
+  guint size = 0;
+
+  /* select msg */
+  if (GST_MESSAGE_TYPE (message) != GST_MESSAGE_ELEMENT ||
+      !gst_structure_has_name (gst_message_get_structure (message),
+          "facedetect"))
+    return GST_BUS_PASS;
+
+  /* parse msg structure */
+  structure = gst_message_get_structure (message);
+
+  /* if facedetect is into buffer */
+  if (structure &&
+      strcmp (gst_structure_get_name (structure), "facedetect") == 0) {
+    if (!silent) {
+      /* print message type and structure name */
+      g_print ("Type message, name message: %s{{%s}}\n",
+          gst_message_type_get_name (message->type),
+          gst_structure_get_name (structure));
+
+      /* print msg structure names and type */
+      for (i = 0; i < gst_structure_n_fields (structure); i++) {
+        const gchar *name = gst_structure_nth_field_name (structure, i);
+        GType type = gst_structure_get_field_type (structure, name);
+        g_print ("-Name field, type: %s[%s]\n", name, g_type_name (type));
+      }
+    }
+
+    /* get structure of faces */
+    value = gst_structure_get_value (structure, "faces");
+    /* obtain the contents into the structure */
+    contents = g_strdup_value_contents (value);
+    if (!silent)
+      g_print ("Detected objects: %s\n\n", *(&contents));
+
+    /* list size */
+    size = gst_value_list_get_size (value);
+
+    /* if face is detected, obtain the values X and Y of mouth and of nose. */
+    if (size != 0) {
+      GstState state;
+
+      /* if paused, set to playing */
+      gst_element_get_state (GST_ELEMENT (playbin), &state, NULL,
+          GST_CLOCK_TIME_NONE);
+      if (state != GST_STATE_PLAYING) {
+        gst_element_set_state (GST_ELEMENT (playbin), GST_STATE_PLAYING);
+      }
+
+      if (ctrlvol) {
+        gdouble volume;
+
+        const GValue *faces_value = gst_value_list_get_value (value, 0);
+        const GstStructure *faces_structure =
+            gst_value_get_structure (faces_value);
+        gboolean have_mouth_y =
+            gst_structure_has_field (faces_structure, "mouth->y");
+        gboolean have_mouth_x =
+            gst_structure_has_field (faces_structure, "mouth->x");
+        gboolean have_nose_y =
+            gst_structure_has_field (faces_structure, "nose->y");
+        gboolean have_nose_x =
+            gst_structure_has_field (faces_structure, "nose->x");
+
+        /* get the volume value */
+        g_object_get (G_OBJECT (playbin), "volume", &volume, NULL);
+
+        /* media operation - hide your mouth for down the volume of the video */
+        if (have_mouth_y == 0 && have_mouth_x == 0) {
+          volume = volume - 0.5;
+          if (volume <= 0.5)
+            volume = 0.0;
+          g_object_set (G_OBJECT (playbin), "volume", volume, NULL);
+        }
+        /* media operation - hide your nose for up the volume of the video */
+        if (have_nose_y == 0 && have_nose_x == 0) {
+          volume = volume + 0.5;
+          if (volume >= 9.5)
+            volume = 10.0;
+          g_object_set (G_OBJECT (playbin), "volume", volume, NULL);
+        }
+      }
+      /* if face is not detected */
+    } else {
+      /* media operation - hide your face to stop media play */
+      gst_element_set_state (playbin, GST_STATE_PAUSED);
+    }
+  }
+  gst_message_unref (message);
+  return GST_BUS_DROP;
+}
+
+int
+main (gint argc, gchar ** argv)
+{
+  static GMainLoop *loop;
+  GstCaps *caps;
+  GstBus *bus;
+  gchar *uri;
+
+  GOptionEntry options[] = {
+    {"control-volume", 'c', 0, G_OPTION_ARG_NONE, &ctrlvol,
+        "Control the volume by hiding the nose or mouth", NULL},
+    {"silent", 's', 0, G_OPTION_ARG_NONE, &silent,
+        "Don't output the messages and detected faces structure", NULL},
+    {NULL}
+  };
+  GOptionContext *ctx;
+  GError *err = NULL;
+
+  ctx = g_option_context_new ("<video file>\n\nfacedetect test application.");
+  g_option_context_add_main_entries (ctx, options, NULL);
+  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);
+    exit (1);
+  }
+  g_option_context_free (ctx);
+
+  if (argc < 2) {
+    fprintf (stderr, "oops, please give a file to play\n");
+    return -1;
+  }
+
+  uri = g_filename_to_uri (argv[1], NULL, NULL);
+  if (!uri) {
+    fprintf (stderr, "failed to create the uri\n");
+    return -1;
+  }
+
+  /* init gst */
+  gst_init (&argc, &argv);
+
+  loop = g_main_loop_new (NULL, FALSE);
+  /* init elements */
+  playbin = gst_element_factory_make ("playbin", "app_playbin");
+  pipeline = gst_pipeline_new ("app_pipeline");
+  v4l2src = gst_element_factory_make ("v4l2src", "app_v4l2src");
+  videoscale = gst_element_factory_make ("videoscale", "app_videoscale");
+  videoconvert_in =
+      gst_element_factory_make ("videoconvert", "app_videoconvert_in");
+  facedetect = gst_element_factory_make ("facedetect", "app_facedetect");
+  videoconvert_out =
+      gst_element_factory_make ("videoconvert", "app_videoconvert_out");
+  autovideosink =
+      gst_element_factory_make ("autovideosink", "app_autovideosink");
+
+  /* check init results */
+  if (!playbin || !pipeline || !v4l2src || !videoscale || !videoconvert_in
+      || !facedetect || !videoconvert_out || !autovideosink)
+    g_error ("ERROR: element init failed.\n");
+
+  /* set values */
+  g_object_set (G_OBJECT (playbin), "uri", uri, NULL);
+
+  /* set caps */
+  caps =
+      gst_caps_from_string
+      ("video/x-raw, format=(string)RGB, width=320, height=240, framerate=(fraction)30/1");
+
+  /* set bus */
+  bus = gst_pipeline_get_bus (GST_PIPELINE (pipeline));
+  gst_bus_set_sync_handler (bus, (GstBusSyncHandler) bus_sync_handler, pipeline,
+      NULL);
+  gst_object_unref (bus);
+
+  /* add elements to pipeline */
+  gst_bin_add_many (GST_BIN (pipeline),
+      v4l2src,
+      videoscale,
+      videoconvert_in, facedetect, videoconvert_out, autovideosink, NULL);
+
+  /* negotiate caps */
+  if (!gst_element_link_filtered (v4l2src, videoscale, caps)) {
+    g_printerr ("ERROR:v4l2src -> videoscale caps\n");
+    return 0;
+  }
+  gst_caps_unref (caps);
+
+  /* link elements */
+  gst_element_link_many (videoscale,
+      videoconvert_in, facedetect, videoconvert_out, autovideosink, NULL);
+
+  /* change states */
+  gst_element_set_state (pipeline, GST_STATE_PLAYING);
+
+  /* start main loop */
+  g_main_loop_run (loop);
+
+  /* clean all */
+  gst_element_set_state (pipeline, GST_STATE_NULL);
+  gst_object_unref (GST_OBJECT (pipeline));
+  gst_element_set_state (playbin, GST_STATE_NULL);
+  gst_object_unref (GST_OBJECT (playbin));
+
+  return 0;
+}
diff --git a/tests/examples/opencv/gsthanddetect_test.c b/tests/examples/opencv/gsthanddetect_test.c
index 32463b5..1cc9616 100644
--- a/tests/examples/opencv/gsthanddetect_test.c
+++ b/tests/examples/opencv/gsthanddetect_test.c
@@ -108,8 +108,6 @@
   GstBus *bus;
   gchar *uri;
 
-  const gchar *video_device = "/dev/video0";
-
   if (argc < 2) {
     fprintf (stderr, "oops, please give a file to play\n");
     return -1;
@@ -144,7 +142,6 @@
 
   /* set values */
   g_object_set (G_OBJECT (playbin), "uri", uri, NULL);
-  g_object_set (G_OBJECT (v4l2src), "device", video_device, NULL);
 
   /* set caps */
   caps =
diff --git a/tests/examples/uvch264/Makefile.in b/tests/examples/uvch264/Makefile.in
index 2b81f96..dfcdf7e 100644
--- a/tests/examples/uvch264/Makefile.in
+++ b/tests/examples/uvch264/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -82,8 +92,6 @@
 target_triplet = @target@
 noinst_PROGRAMS = $(am__EXEEXT_1)
 subdir = tests/examples/uvch264
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -121,6 +129,7 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -203,6 +212,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -220,8 +230,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -250,8 +258,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -299,11 +305,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -487,6 +496,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -565,7 +575,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -605,6 +620,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -755,7 +771,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/examples/uvch264/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu tests/examples/uvch264/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1042,6 +1057,8 @@
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
 	tags tags-am uninstall uninstall-am
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/tests/files/Makefile.in b/tests/files/Makefile.in
index 94bdec3..764b174 100644
--- a/tests/files/Makefile.in
+++ b/tests/files/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -14,7 +14,17 @@
 
 @SET_MAKE@
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -79,7 +89,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = tests/files
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
 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 \
@@ -117,6 +126,7 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -141,6 +151,7 @@
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+am__DIST_COMMON = $(srcdir)/Makefile.in
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -158,8 +169,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -188,8 +197,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -237,11 +244,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -425,6 +435,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -503,7 +514,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -543,6 +559,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -674,7 +691,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/files/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu tests/files/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -849,6 +865,8 @@
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
 	tags-am uninstall uninstall-am
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/tests/icles/Makefile.in b/tests/icles/Makefile.in
index 06e70a0..1da18f1 100644
--- a/tests/icles/Makefile.in
+++ b/tests/icles/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -15,7 +15,17 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@
 target_triplet = @target@
 noinst_PROGRAMS = $(am__EXEEXT_1) $(am__EXEEXT_2)
 subdir = tests/icles
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -120,6 +128,7 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -200,6 +209,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -217,8 +227,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -247,8 +255,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -296,11 +302,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -484,6 +493,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -562,7 +572,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -602,6 +617,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -745,7 +761,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/icles/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu tests/icles/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1032,6 +1047,8 @@
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
 	tags tags-am uninstall uninstall-am
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/tools/Makefile.in b/tools/Makefile.in
index 1f11c1e..53e7d4c 100644
--- a/tools/Makefile.in
+++ b/tools/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -14,7 +14,17 @@
 
 @SET_MAKE@
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -79,7 +89,6 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = tools
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
 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 \
@@ -117,6 +126,7 @@
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -141,6 +151,7 @@
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+am__DIST_COMMON = $(srcdir)/Makefile.in
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -158,8 +169,6 @@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BLUEZ4_CFLAGS = @BLUEZ4_CFLAGS@
-BLUEZ4_LIBS = @BLUEZ4_LIBS@
 BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
 BLUEZ5_LIBS = @BLUEZ5_LIBS@
 BS2B_CFLAGS = @BS2B_CFLAGS@
@@ -188,8 +197,6 @@
 CYGPATH_W = @CYGPATH_W@
 DAALA_CFLAGS = @DAALA_CFLAGS@
 DAALA_LIBS = @DAALA_LIBS@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
 DCCP_LIBS = @DCCP_LIBS@
 DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@
 DECKLINK_LIBS = @DECKLINK_LIBS@
@@ -237,11 +244,14 @@
 GCOV = @GCOV@
 GCOV_CFLAGS = @GCOV_CFLAGS@
 GCOV_LIBS = @GCOV_LIBS@
+GDBUS_CODEGEN = @GDBUS_CODEGEN@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GIO_CFLAGS = @GIO_CFLAGS@
 GIO_LDFLAGS = @GIO_LDFLAGS@
 GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
+GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
@@ -425,6 +435,7 @@
 MJPEG_CFLAGS = @MJPEG_CFLAGS@
 MJPEG_LIBS = @MJPEG_LIBS@
 MKDIR_P = @MKDIR_P@
+MOC = @MOC@
 MODPLUG_CFLAGS = @MODPLUG_CFLAGS@
 MODPLUG_LIBS = @MODPLUG_LIBS@
 MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@
@@ -503,7 +514,12 @@
 PYTHON_PLATFORM = @PYTHON_PLATFORM@
 PYTHON_PREFIX = @PYTHON_PREFIX@
 PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_X11_CFLAGS = @QT_X11_CFLAGS@
+QT_X11_LIBS = @QT_X11_LIBS@
 RANLIB = @RANLIB@
+RCC = @RCC@
 RSVG_2_36_2_CFLAGS = @RSVG_2_36_2_CFLAGS@
 RSVG_2_36_2_LIBS = @RSVG_2_36_2_LIBS@
 RSVG_CFLAGS = @RSVG_CFLAGS@
@@ -543,6 +559,7 @@
 TIGER_LIBS = @TIGER_LIBS@
 TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@
 TIMIDITY_LIBS = @TIMIDITY_LIBS@
+UIC = @UIC@
 USE_GLES2 = @USE_GLES2@
 USE_NLS = @USE_NLS@
 USE_OPENGL = @USE_OPENGL@
@@ -702,7 +719,6 @@
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tools/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu tools/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -877,6 +893,8 @@
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
 	tags-am uninstall uninstall-am
 
+.PRECIOUS: Makefile
+
 
 # Disabled since it doesn't work in an uninstalled setup:
 #
diff --git a/tools/element-templates/videoencoder b/tools/element-templates/videoencoder
index 62a4a43..6b6c00a 100644
--- a/tools/element-templates/videoencoder
+++ b/tools/element-templates/videoencoder
@@ -4,8 +4,8 @@
 % TYPE_CLASS_NAME
 GST_TYPE_VIDEO_ENCODER
 % pads
-srcpad-template-video
-sinkpad-simple
+srcpad-simple
+sinkpad-template-video
 % pkg-config
 gstreamer-video-1.0
 % includes
diff --git a/win32/common/config.h b/win32/common/config.h
index 4d698d3..95a9ad7 100644
--- a/win32/common/config.h
+++ b/win32/common/config.h
@@ -89,7 +89,7 @@
 #define GST_PACKAGE_ORIGIN "Unknown package origin"
 
 /* GStreamer package release date/time for plugins as YYYY-MM-DD */
-#define GST_PACKAGE_RELEASE_DATETIME "2015-06-24"
+#define GST_PACKAGE_RELEASE_DATETIME "2015-08-19"
 
 /* Define if static plugins should be built */
 #undef GST_PLUGIN_BUILD_STATIC
@@ -118,10 +118,7 @@
 /* Define to enable Bluez (used by bluez). */
 #undef HAVE_BLUEZ
 
-/* Old bluez detected */
-#undef HAVE_BLUEZ4
-
-/* Current bluez detected */
+/* Bluez5 detected */
 #undef HAVE_BLUEZ5
 
 /* Define to enable bs2b (used by bs2b). */
@@ -501,6 +498,12 @@
 /* Define to enable pvrvideosink (used by pvr). */
 #undef HAVE_PVR
 
+/* Define to enable Qt elements (used by qt). */
+#undef HAVE_QT
+
+/* Define if Qt X11 integration is installed */
+#undef HAVE_QT_X11
+
 /* Define if RDTSC is available */
 #undef HAVE_RDTSC
 
@@ -695,6 +698,9 @@
 /* Define if the old MusePack API is used */
 #undef MPC_IS_OLD_API
 
+/* OpenCV path name */
+#undef OPENCV_PATH_NAME
+
 /* opencv install prefix */
 #undef OPENCV_PREFIX
 
@@ -708,7 +714,7 @@
 #define PACKAGE_NAME "GStreamer Bad Plug-ins"
 
 /* Define to the full name and version of this package. */
-#define PACKAGE_STRING "GStreamer Bad Plug-ins 1.5.2"
+#define PACKAGE_STRING "GStreamer Bad Plug-ins 1.5.90"
 
 /* Define to the one symbol short name of this package. */
 #define PACKAGE_TARNAME "gst-plugins-bad"
@@ -717,7 +723,7 @@
 #undef PACKAGE_URL
 
 /* Define to the version of this package. */
-#define PACKAGE_VERSION "1.5.2"
+#define PACKAGE_VERSION "1.5.90"
 
 /* directory where plugins are located */
 #ifdef _DEBUG
@@ -761,7 +767,7 @@
 #undef USE_EGL_RPI
 
 /* Version number of package */
-#define VERSION "1.5.2"
+#define VERSION "1.5.90"
 
 /* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
    significant byte first (like Motorola and SPARC, unlike Intel). */