diff --git a/ChangeLog b/ChangeLog
index 7414bb4..7948c32 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,9 +1,882 @@
-=== release 1.4.3 ===
+=== release 1.4.4 ===
 
-2014-09-24  Sebastian Dröge <slomo@coaxion.net>
+2014-11-06  Sebastian Dröge <slomo@coaxion.net>
 
 	* configure.ac:
-	  releasing 1.4.3
+	  releasing 1.4.4
+
+2014-11-06 11:53:04 +0100  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/videoparsers/gsth265parse.c:
+	  h265parse: don't unnecesarily set src_caps
+	  https://bugzilla.gnome.org/show_bug.cgi?id=739374
+
+2014-10-29 22:55:47 +0100  Matej Knopp <matej.knopp@gmail.com>
+
+	* gst/videoparsers/gsth264parse.c:
+	  h264parse: don't unnecesarily set src_caps
+	  https://bugzilla.gnome.org/show_bug.cgi?id=739374
+
+2014-10-31 12:52:50 +1100  Matthew Waters <matthew@centricular.com>
+
+	* ext/gl/gstglimagesink.c:
+	* ext/gl/gstglimagesink.h:
+	  glimagesink: resize the viewport correctly on a caps change
+	  with force-aspect-ratio=true, if the width or height changed, the
+	  viewport wasn't being updated to respect the new video width and height
+	  until a resize occured.
+
+2014-11-04 09:52:11 +0100  Sebastian Dröge <sebastian@centricular.com>
+
+	* configure.ac:
+	  gl/cocoa: include gl3.h in configure too for consistency with gstglapi.h
+
+2014-11-03 23:24:33 +0000  Julien Isorce <julien.isorce@gmail.com>
+
+	* gst-libs/gst/gl/cocoa/gstglwindow_cocoa.m:
+	  gl/cocoa: use NSAutoreleasePool to free resize data
+	  Otherwise when resizing the window you will also get messages like:
+	  class NSConcreteMapTable autoreleased with no pool in place - just leaking
+	  class NSConcreteValue autoreleased with no pool in place - just leaking
+	  class NSConcreteValue autoreleased with no pool in place - just leaking
+	  class __NSCFDictionary autoreleased with no pool in place - just leaking
+
+2014-11-03 23:08:09 +0000  Julien Isorce <julien.isorce@gmail.com>
+
+	* gst-libs/gst/gl/gstglapi.h:
+	  gl/cocoa: include gl3.h to have GL_CONTEXT_PROFILE_MASK
+
+2014-11-03 23:07:34 +0000  Julien Isorce <julien.isorce@gmail.com>
+
+	* gst-libs/gst/gl/cocoa/gstglwindow_cocoa.m:
+	  gl/cocoa: make sure to turn on frame rectangle changes notifications
+	  Default value of property postsFrameChangedNotifications is YES
+	  but it is worth to explicitly enable it.
+
+2014-11-03 23:02:17 +0000  Julien Isorce <julien.isorce@gmail.com>
+
+	* gst-libs/gst/gl/cocoa/gstglwindow_cocoa.m:
+	  gl/cocoa: fix uncaught exception 'unrecognized selector sent to instance'
+	  Need to set the ':' as the reshape method now takes one parameter.
+	  For the story, the GstGLNSView was previously inheriting from
+	  NSOpenGLView which has a reshape function without any parameter.
+	  Now the GstGLNSView inherits from NSView and we re-use the reshape
+	  function manually.
+
+2014-11-03 22:59:41 +0000  Julien Isorce <julien.isorce@gmail.com>
+
+	* gst-libs/gst/gl/cocoa/gstglwindow_cocoa.m:
+	  gl/cocoa: fix compiler warning
+	  Use the reshape function after being defined. The other way
+	  would have been to declare the reshape function in the header.
+	  gstglwindow_cocoa.m: In function '-[GstGLNSView drawRect:]':
+	  gstglwindow_cocoa.m:555: warning: 'GstGLNSView' may not respond to '-reshape'
+	  gstglwindow_cocoa.m:555: warning: (Messages without a matching method signature
+	  gstglwindow_cocoa.m:555: warning: will be assumed to return 'id' and accept
+	  gstglwindow_cocoa.m:555: warning: '...' as arguments.)
+
+2014-10-21 16:21:08 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst-libs/gst/gl/cocoa/gstglwindow_cocoa.m:
+	  gl/cocoa: Fix compiler warning
+	  gstglwindow_cocoa.m: In function '-[GstGLNSView drawRect:]':
+	  gstglwindow_cocoa.m:555: warning: 'GstGLNSView' may not respond to '-reshape'
+	  gstglwindow_cocoa.m:555: warning: (Messages without a matching method signature
+	  gstglwindow_cocoa.m:555: warning: will be assumed to return 'id' and accept
+	  gstglwindow_cocoa.m:555: warning: '...' as arguments.)
+
+2014-10-29 18:18:07 +0000  Luis de Bethencourt <luis.bg@samsung.com>
+
+	* gst-libs/gst/gl/gstglshadervariables.c:
+	  glshader: Fix memory leak
+	  Memory is only freed in the TRUE clause of the if conditional. Free in the else
+	  clause as well.
+	  Also, consolidate g_malloc + sprintf into a g_strdup_printf().
+	  CID #1212171
+	  https://bugzilla.gnome.org/show_bug.cgi?id=739368
+
+2014-10-31 12:30:53 +1100  Matthew Waters <matthew@centricular.com>
+
+	* gst-libs/gst/gl/gstglcontext.c:
+	* gst-libs/gst/gl/gstgldisplay.c:
+	* gst-libs/gst/gl/gstglwindow.c:
+	  gl: sprinkle some Since markers
+
+2014-10-24 16:52:42 +0200  Matthieu Bouron <matthieu.bouron@collabora.com>
+
+	* gst/mpegtsdemux/mpegtsbase.c:
+	  mpegtsbase: do not remove programs on EOS
+	  As a consequence, tsdemux won't remove its pads anymore on EOS.
+	  Fixes the case when mpegtsbase is not able to process new packets
+	  after EOS as the corresponding pids aren't known anymore because
+	  the programs were removed and the pes/psi were kept, preventing the
+	  PAT to be parsed again.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=738695
+	  Conflicts:
+	  gst/mpegtsdemux/mpegtsbase.c
+
+2014-10-30 19:01:20 +1100  Matthew Waters <matthew@centricular.com>
+
+	* tests/examples/gl/sdl/sdlshare.c:
+	  gl/examples: use the current X Display from SDL
+	  allows GL context sharing to occur.
+
+2014-10-29 10:09:35 +0100  Vincent Abriou <vincent.abriou@st.com>
+
+	* configure.ac:
+	  configure.ac: auto decision to include GL library fails
+	  The part of the configure.ac that consist to check if we
+	  can include both GL and GLES2 at the same time is failing.
+	  Indeed, in the case NEED_GLES2=yes and NEED_OPENGL=auto,
+	  HAVE_OPENGL variable is updated whereas it should be HAVE_GL
+	  variable that has to be updated (HAVE_OPENGL variable is not
+	  used in the rest of the configure.ac).
+	  https://bugzilla.gnome.org/show_bug.cgi?id=739348
+	  Signed-off-by: Vincent Abriou <vincent.abriou@st.com>
+	  Reviewed-by: Benjamin GAIGNARD <benjamin.gaignard@linaro.org>
+
+2014-10-28 17:44:47 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+	* ext/faad/gstfaad.c:
+	  faad: fix wrong unrefs in set_format error code path
+
+2014-10-28 18:01:27 +1100  Matthew Waters <matthew@centricular.com>
+
+	* gst-libs/gst/gl/gstglfilter.c:
+	  glfilter: avoid uninitialized variable size when chaining multiple glfilters
+	  https://bugzilla.gnome.org/show_bug.cgi?id=739277
+
+2014-10-23 17:42:27 +0300  Vootele Vesterblom <vov@bang-olufsen.dk>
+
+	* gst/rawparse/gstrawparse.c:
+	  rawparse: fix handling of segment event in sink event handler
+
+2014-10-22 15:07:04 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/rawparse/gstrawparse.c:
+	  rawparse: Check for 0-size after adjusting the size for the frame size
+	  If we don't have a complete raw audio frame we would otherwise still
+	  ask for a 0 sized buffer from the adapter.
+
+2014-10-22 14:43:50 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/rawparse/gstrawparse.c:
+	  rawparse: Don't try to retrieve 0 byte buffers from the adapter in multi-frame mode
+
+2014-10-21 12:39:14 +0200  Matthieu Bouron <matthieu.bouron@collabora.com>
+
+	* ext/hls/gsthlsdemux.c:
+	  hlsdemux: reset end_of_playlist attribute when we receive a seek
+	  https://bugzilla.gnome.org/show_bug.cgi?id=738696
+
+2014-10-09 15:12:01 +0200  Aurélien Zanelli <aurelien.zanelli@parrot.com>
+
+	* tests/check/libs/vc1parser.c:
+	  vc1parser: fix expected level in sequence-layer parsing unit test
+	  Sequence-layer used for unit test have a level set to 2 which should
+	  match the medium level, not the high.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=738230
+
+2014-10-09 15:05:55 +0200  Aurélien Zanelli <aurelien.zanelli@parrot.com>
+
+	* gst-libs/gst/codecparsers/gstvc1parser.h:
+	  vc1parser: fix level values for simple/main profile
+	  In simple profile, level set to 0 or 2 indicate low and medium level
+	  respectively. In main profile, level set to 0, 2 or 4 indicate low,
+	  medium and high level respectively.
+	  Level values are defined in Annex J.1.2 of the SMPTE 421M.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=738230
+
+2014-10-01 16:17:46 +0200  Aurélien Zanelli <aurelien.zanelli@parrot.com>
+
+	* gst/videoparsers/gstvc1parse.c:
+	* gst/videoparsers/gstvc1parse.h:
+	  vc1parse: select caps according to wmv format at negotiation
+	  Some VC1 decoder can have different caps according to wmv format, ie
+	  WMV3 or WVC1.
+	  So instead of keeping the first available caps, we interserct with
+	  current WMV format.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=738532
+
+2014-10-20 09:47:27 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* ext/rtmp/gstrtmpsink.c:
+	  rtmpsink: Declare sink variable that was forgotten in last commit
+
+2014-10-19 20:35:41 +0200  Havard Graff <havard.graff@gmail.com>
+
+	* ext/rtmp/gstrtmpsink.c:
+	  rtmpsink: Free URI string in finalize()
+	  https://bugzilla.gnome.org/show_bug.cgi?id=738674
+
+2014-09-22 09:44:14 +0200  Aurélien Zanelli <aurelien.zanelli@parrot.com>
+
+	* gst/videoparsers/gstvc1parse.c:
+	  vc1parse: parse frame header when stream format is ASF/raw for simple/main profile
+	  When stream-format is ASF or sequence-layer-raw-frame, we basically have
+	  a raw frame so we can parse it to extract some information such the
+	  keyframe flag. The only requirement is to have a valid sequence-header.
+	  This commit parse the frame header and set the DELTA_UNIT buffer flag in
+	  case the frame is not a keyframe.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=738519
+
+2014-10-13 14:05:24 +0200  Aurélien Zanelli <aurelien.zanelli@parrot.com>
+
+	* gst/videoparsers/gstvc1parse.c:
+	  vc1parse: just assume none header-format when no codec_data is present
+	  https://bugzilla.gnome.org/show_bug.cgi?id=738449
+
+2014-10-09 18:18:02 +0200  Aurélien Zanelli <aurelien.zanelli@parrot.com>
+
+	* gst/videoparsers/gstvc1parse.c:
+	  vc1parse: fix framesize when input is frame-layer
+	  frame-layer header is represented as a sequence of 32 bit unsigned
+	  integer serialized in little-endian byte order, so framesize is on the
+	  first 3 bytes.
+	  SMPTE 421M Annex L.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=738243
+
+2014-10-10 13:05:49 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* ext/fluidsynth/gstfluiddec.c:
+	  fluiddec: don't leak incoming caps event
+	  https://bugzilla.gnome.org/show_bug.cgi?id=738291
+
+2014-10-09 11:51:16 +0200  Antonio Ospite <ao2@ao2.it>
+
+	* ext/fluidsynth/gstfluiddec.c:
+	  fluiddec: fix some memory leaks
+	  https://bugzilla.gnome.org/show_bug.cgi?id=738223
+
+2014-10-21 15:42:32 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* sys/applemedia/vtenc.c:
+	  vtenc: Fix locking
+	  The object lock only protects the session, as we modify
+	  the session from other threads when the bitrate property
+	  is changed. Don't hold it much longer than for session
+	  related things.
+	  And we need to release the video decoder stream lock before
+	  enqueueing a frames. It might wait for our callback to dequeue
+	  a frame from another thread, which will then take the stream
+	  lock too and deadlock.
+
+2014-10-19 14:57:43 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* sys/applemedia/vtenc.c:
+	  vtenc: Use kVTProfileLevel_H264_Baseline_AutoLevel only on iOS
+	  It is not required on OSX apparently and was only added in 10.9.6 there.
+	  Calculating the correct level from the configuration is not trivial, so let's
+	  just not set a level at all here.
+
+2014-10-19 14:51:40 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* configure.ac:
+	* sys/applemedia/vtenc.c:
+	  vtenc: VTCompressionSessionPrepareToEncodeFrames only exists since 10.9.6
+	  Check with configure for it instead of using one of the availability macros
+	  as those wouldn't work as expected with minor versions.
+
+2014-10-19 14:32:31 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* sys/applemedia/vtenc.c:
+	  vtenc: Remove unused #define
+
+2014-10-13 13:28:57 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* ext/gl/gstglimagesink.c:
+	  glimagesink: Only finalize the other context in finalize()
+	  Otherwise we change a value of a property when going to READY state,
+	  which is unexpected behaviour.
+
+2014-10-13 11:56:03 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* ext/gl/gstglimagesink.c:
+	  glimagesink: Don't leak other-context
+
+2014-10-13 13:27:55 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* ext/gl/gstglmixer.c:
+	  glmixer: Call the pad's parent class finalize method
+
+2014-10-09 10:54:35 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst-libs/gst/gl/cocoa/gstglwindow_cocoa.m:
+	  gl/cocoa: Add support for HiDPI displays
+	  Without this our GL surface would be upscaled after rendering
+	  by Cocoa, which would reduce image quality.
+
+2014-10-01 16:04:36 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst-libs/gst/gl/cocoa/gstglwindow_cocoa.m:
+	  gl/cocoa: Always update our viewport if Cocoa tells us something has changed
+	  The visible rect and bounds might be the same as before, but Cocoa
+	  might've changed our viewport without us nothing. This happens if
+	  you hide the view and show it again.
+
+2014-10-01 11:55:13 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst-libs/gst/gl/cocoa/gstglwindow_cocoa.m:
+	  gl/cocoa: Handle NSView::renewGState() properly
+	  Don't update the screen until we redraw, this prevents flickering during
+	  scrolling, clipping, resizing, etc
+
+2014-09-29 09:33:42 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst-libs/gst/gl/cocoa/gstglwindow_cocoa.m:
+	  gl/cocoa: Update viewport according to the current clipping
+	  We have to update the GL viewport if the NSView is only partially
+	  visible. Otherwise the content of the frame will be visibly offset.
+
+2014-09-29 10:49:46 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst-libs/gst/gl/cocoa/gstglcontext_cocoa.m:
+	  gl/cocoa: Improve the NSApplication initialization
+	  This is only for non-Cocoa apps but previously caused a 2 second
+	  waiting during startup for Cocoa apps. This is unacceptable.
+	  Instead we now check a bit more extensive if something actually
+	  runs on the GLib default main context, and if not don't even
+	  bother waiting for something to happen from there.
+
+2014-09-29 09:24:49 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst-libs/gst/gl/cocoa/gstglwindow_cocoa.m:
+	  gl/cocoa: NSView::drawRect() should call into reshape too
+	  We a) need to render again because part of the window was
+	  obscured and b) might need to reshape because of clipping
+	  changes.
+
+2014-09-26 14:21:46 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst-libs/gst/gl/cocoa/gstglcontext_cocoa.m:
+	* gst-libs/gst/gl/cocoa/gstglwindow_cocoa.m:
+	  gl/cocoa: Call UI related API from the application main thread
+
+2014-09-26 13:05:27 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst-libs/gst/gl/cocoa/gstgl_cocoa_private.h:
+	* gst-libs/gst/gl/cocoa/gstglcontext_cocoa.m:
+	* gst-libs/gst/gl/cocoa/gstglwindow_cocoa.m:
+	  gl/cocoa: Switch to a plain NSView subclass instead of NSOpenGLView
+	  We don't and can't use NSOpenGLView as it's supposed to be used and
+	  it gets into our way by being to clever in various situations.
+
+2014-09-25 16:13:19 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst-libs/gst/gl/cocoa/gstgl_cocoa_private.h:
+	* gst-libs/gst/gl/cocoa/gstglwindow_cocoa.m:
+	  gl/cocoa: Switch from our custom main loop to a GMainLoop
+	  Simplifies code a lot and makes it more similar to the other backends.
+
+2014-09-25 16:12:24 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst-libs/gst/gl/cocoa/gstglcontext_cocoa.m:
+	  gl/cocoa: Clear the current GL context when it should happen
+
+2014-10-14 09:58:47 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* configure.ac:
+	  applemedia: VideoToolbox works properly on iOS now
+
+2014-10-14 09:19:59 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* sys/applemedia/vtdec.c:
+	  vtdec: Set reorder length to 0 if we can't calculate it
+	  Instead of leaving it at whatever value it had before.
+
+2014-09-19 14:36:39 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* sys/applemedia/vtenc.c:
+	  vtenc: Fix encoder to work on iOS
+	  iOS has special stride requirements that we don't know yet, so copy
+	  input buffers into buffers allocated by iOS for now.
+	  Later we should check the stride and probably provide a buffer pool for these
+	  buffers so upstream can directly write in there.
+
+2014-09-19 14:32:46 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* sys/applemedia/coremediabuffer.c:
+	* sys/applemedia/corevideobuffer.c:
+	  applemedia: We need to map the coremedia buffers in non-readonly mode
+	  Our buffers claim to be writable so other elements expect to be able
+	  to write there without losing their changes.
+
+2014-09-18 17:49:46 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* sys/applemedia/vtenc.c:
+	  vtenc: Let the encoder automatically choose a h264 level
+	  We should negotiate these things via caps...
+
+2014-09-18 13:45:33 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* sys/applemedia/vtenc.c:
+	  vtenc: Use 0 instead of G_MAXDOUBLE as the max keyframe interval
+	  0 means no limit, which was meant here with G_MAXDOUBLE probably.
+
+2014-09-18 13:42:24 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* sys/applemedia/vtenc.c:
+	  vtenc: Expected duration is supposed to be the duration of the stream, not a frame
+	  Just don't set it for now, it isn't really needed.
+
+2014-09-18 13:11:05 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* sys/applemedia/vtenc.c:
+	* sys/applemedia/vtenc.h:
+	  vtenc: Properly handle keyframes
+	  Especially set the SYNC_POINT flag on keyframes.
+
+2014-09-18 10:30:04 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* sys/applemedia/vtdec.c:
+	  vtdec: Fix compilation
+
+2014-09-18 09:47:06 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* sys/applemedia/vtdec.c:
+	  vtdec: Handle 0/1 framerates correctly by not calculating their frame duration
+
+2014-09-17 17:37:12 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* sys/applemedia/atdec.c:
+	  atdec: Fix some compiler warnings with newer clang
+
+2014-09-17 17:10:58 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* sys/applemedia/vtenc.c:
+	  vtenc: Prepare encoder after setup
+	  This will allow encoding to happen faster on the first frame.
+
+2014-09-17 17:08:57 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* sys/applemedia/vtenc.c:
+	* sys/applemedia/vtenc.h:
+	  vtenc: Only drain the encoder in ::finish(), not on every frame
+	  Otherwise quality and bitrate will be bad.
+
+2014-09-17 15:39:26 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* sys/applemedia/vtenc.c:
+	  vtenc: Error out if encoding returned an error
+	  Otherwise we will just continue consuming frames until all memory is filled
+	  up and the app crashes.
+
+2014-09-17 14:56:05 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* sys/applemedia/vtenc.c:
+	  vtenc: Check for errors from VTCompressionSessionCompleteFrames()
+
+2014-09-17 14:55:24 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* sys/applemedia/vtenc.c:
+	  vtenc: Properly scale timestamps for the API and set invalid values
+
+2014-09-17 14:54:39 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* sys/applemedia/vtdec.c:
+	  vtdec: Properly scale timestamps for the API and set invalid values
+
+2014-09-17 13:19:04 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* sys/applemedia/Makefile.am:
+	* sys/applemedia/plugin.m:
+	* sys/applemedia/vth264decbin.c:
+	* sys/applemedia/vth264decbin.h:
+	* sys/applemedia/vth264encbin.c:
+	* sys/applemedia/vth264encbin.h:
+	  applemedia: Remove old code that is of no use anymore
+
+2014-09-17 10:38:20 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* sys/applemedia/Makefile.am:
+	* sys/applemedia/plugin.m:
+	  applemedia: Do weak linking with the VideoToolbox framework
+	  It does not exist on older OSX and iOS but we still want to
+	  be able to use it when it's available.
+
+2014-09-16 16:51:28 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* sys/applemedia/vtenc.c:
+	* sys/applemedia/vtenc.h:
+	  vtenc: Port to GstVideoEncoder base class
+
+2014-09-16 16:13:16 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* sys/applemedia/vtenc.c:
+	  vtenc: Use correct instance struct size
+
+2014-09-16 15:48:11 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* sys/applemedia/vtdec.c:
+	  vtdec: Fix compiler warnings
+	  values of type 'OSStatus' should not be used as format arguments; add an explicit cast to 'int' instead [-Wformat]
+
+2014-09-16 15:02:46 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* sys/applemedia/Makefile.am:
+	* sys/applemedia/coremediactx.c:
+	* sys/applemedia/coremediactx.h:
+	* sys/applemedia/dynapi-internal.h:
+	* sys/applemedia/dynapi.c:
+	* sys/applemedia/dynapi.h:
+	* sys/applemedia/mtapi.c:
+	* sys/applemedia/mtapi.h:
+	* sys/applemedia/vtapi.c:
+	* sys/applemedia/vtapi.h:
+	* sys/applemedia/vtenc.c:
+	* sys/applemedia/vtenc.h:
+	  vtenc: Port to the real VideoToolbox API instead of using our dlopen() wrapper
+	  It's a public framework since a long time.
+
+2014-10-09 01:18:16 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+	* gst/videoparsers/gsth264parse.c:
+	  h264parse: expose parsed profile and level to downstream
+	  Set parsed profile and level in src caps.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=732239
+
+2014-10-09 11:46:23 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/videoparsers/gsth265parse.c:
+	  h265parse: expose parsed profile, tier and level to downstream
+	  https://bugzilla.gnome.org/show_bug.cgi?id=732239
+
+2014-10-06 21:25:30 +0300  Vivia Nikolaidou <n.vivia@gmail.com>
+
+	* ext/curl/gstcurlsmtpsink.c:
+	  curlsmtpsink: Set CURLOPT_UPLOAD to 1 to not use VRFY and other unneeded commands
+	  Fixes the sink with SMTP servers that disable VRFY for spam protection.
+	  http://sourceforge.net/p/curl/bugs/1389/
+
+2014-10-06 10:11:47 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst-libs/gst/video/gstvideoaggregator.c:
+	  videoaggregator: Unmap and free GstVideoFrames as needed after conversion and errors
+
+2014-10-06 10:11:23 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst-libs/gst/base/gstaggregator.c:
+	  aggregator: Unref the taglist in GstAggregator::stop()
+
+2014-10-01 16:19:02 +0200  Aurélien Zanelli <aurelien.zanelli@parrot.com>
+
+	* gst/videoparsers/gstvc1parse.c:
+	  vc1parse: unref caps when it is empty in renegotiate()
+	  https://bugzilla.gnome.org/show_bug.cgi?id=737724
+
+2014-10-02 10:26:43 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* sys/androidmedia/gstamc.c:
+	  androidmedia: Fix calculation of the frame size for COLOR_FormatYUV420Planar
+	  https://bugzilla.gnome.org/show_bug.cgi?id=734156
+
+2014-10-01 00:53:59 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* ext/fluidsynth/gstfluiddec.c:
+	  fluiddec: don't crash on 0-sized input buffers
+	  https://bugzilla.gnome.org/show_bug.cgi?id=737658
+
+2014-09-30 14:58:06 +0200  Lubosz Sarnecki <lubosz@gmail.com>
+
+	* configure.ac:
+	  gltransformation: requires graphene 1.0.0
+
+2014-09-29 10:01:27 +0200  Jesper Larsen <knorr.jesper@gmail.com>
+
+	* gst/mpegtsdemux/tsdemux.c:
+	  tsdemux: do not discard on discont if PES start
+	  If a discontinuity in the stream is detected, data is discarded until
+	  a new PES starts. If the first packet after the discontinuity is also
+	  the start of a PES, there is no reason to discard the packets.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=737569
+
+2014-09-09 13:12:31 +0200  Matthieu Bouron <matthieu.bouron@collabora.com>
+
+	* ext/dash/gstdashdemux.c:
+	* ext/dash/gstdashdemux.h:
+	  dashdemux: mark first buffer as discont after restarting a download task
+	  Mark first buffer as discont after restarting a download task, so
+	  downstream can reset its state to properly handle the new fragment.
+	  Related issue: https://bugzilla.gnome.org/show_bug.cgi?id=736318
+	  https://bugzilla.gnome.org/show_bug.cgi?id=736319
+
+2014-09-19 22:32:39 -0300  Thiago Santos <thiagoss@osg.samsung.com>
+
+	* ext/dash/gstdashdemux.c:
+	  dashdemux: push a time segment when restarting streaming
+	  This should inform demuxers/decoders downstream that the stream is
+	  about to start from a new position and they should flush accordingly
+	  https://bugzilla.gnome.org/show_bug.cgi?id=736319
+
+2014-10-09 12:28:11 +1100  Matthew Waters <matthew@centricular.com>
+
+	* gst-libs/gst/gl/gstglcolorconvert.c:
+	  glcolorconvert: output why we cannot convert a buffer
+
+2014-10-09 12:25:55 +1100  Matthew Waters <matthew@centricular.com>
+
+	* gst-libs/gst/gl/gstglcolorconvert.c:
+	  glcolorconvert: fix planar YUV download
+	  - sample the u and v planes properly
+	  - output the correctly scaled u and v planes for different chroma block sizes
+
+2014-10-07 23:04:30 +1100  Matthew Waters <matthew@centricular.com>
+
+	* gst-libs/gst/gl/gstglcolorconvert.c:
+	  glcolorconvert: fix UYVY download green screen
+
+2014-10-07 22:50:22 +1100  Matthew Waters <matthew@centricular.com>
+
+	* gst-libs/gst/gl/gstglcolorconvert.c:
+	  glcolrconvert: fix YUY2 download
+	  - The shader was outputing the wrong values compared with raw
+	  videotestsrc.
+	  - deal with the texture edge properly.
+	  - properly sample the 2x1 rectangle for the u and v values
+	  - don't double sample the y value
+
+2014-09-25 17:01:31 +0200  Lubosz Sarnecki <lubosz@gmail.com>
+
+	* ext/gl/gstgltransformation.c:
+	  gltransformation: graphene multiplication order has changed
+	  https://bugzilla.gnome.org/show_bug.cgi?id=733510
+
+2014-09-22 10:08:17 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst-libs/gst/gl/gstglcontext.c:
+	  gl: Let gst_gl_context_get_thread() return a new reference to the GThread
+	  Otherwise it might go away in the meantime and the caller has some random pointer.
+	  Conflicts:
+	  gst-libs/gst/gl/gstglcontext.c
+
+2014-09-30 14:46:14 +1000  Matthew Waters <matthew@centricular.com>
+
+	* gst-libs/gst/gl/gstglcolorconvert.c:
+	  glcolorconvert: convert xRGB into ARGB properly
+	  The alpha channel might not be the last component so check which one
+	  it is in and clobber that one instead.
+
+2014-09-30 01:38:05 +1000  Matthew Waters <matthew@centricular.com>
+
+	* gst-libs/gst/gl/gstglmemory.c:
+	  glmemory: unset the opposite corresponding transfer flags when mapped with write
+	  fixes consistency with consecutive gst_memory_map()'s with
+	  flags & GST_MAP_WRITE
+
+2014-09-29 08:54:29 +0200  Edward Hervey <bilboed@bilboed.com>
+
+	* gst-libs/gst/gl/gstglcontext.c:
+	  glcontext: Initialize variable
+	  Avoids the following warning:
+	  gstglcontext.c:647:58: error: 'prev' may be used uninitialized in
+	  this function [-Werror=maybe-uninitialized]
+
+2014-09-29 00:32:05 +1000  Matthew Waters <matthew@centricular.com>
+
+	* gst-libs/gst/gl/gstglcontext.c:
+	  glcontext: fixup error in sharegroup comment
+
+2014-09-29 00:24:28 +1000  Matthew Waters <matthew@centricular.com>
+
+	* gst-libs/gst/gl/gstglcontext.c:
+	  glcontext: detect the sharegroup case where the context are in different chains
+	  In the end they will lead to the same root context in the tree so check that
+	  for equality.
+
+2014-09-23 12:02:18 +1000  Matthew Waters <ystreet00@gmail.com>
+
+	* gst-libs/gst/gl/gstglupload.c:
+	  glupload: fallback to upload if contexts cannot share GL resources
+	  Fixes pipelines of the form
+	  gleffects ! tee ! glimagesink
+	  as tee does not pass on the allocation query.
+
+2014-09-23 12:01:04 +1000  Matthew Waters <ystreet00@gmail.com>
+
+	* docs/libs/gst-plugins-bad-libs-sections.txt:
+	* gst-libs/gst/gl/gstglcontext.c:
+	* gst-libs/gst/gl/gstglcontext.h:
+	  glcontext: add gst_gl_context_can_share
+	  Which determines whether two GstGLContext's can share sharable
+	  OpenGL resources.
+	  Conflicts:
+	  gst-libs/gst/gl/gstglcontext.c
+
+2014-09-21 21:30:58 +1000  Matthew Waters <ystreet00@gmail.com>
+
+	* docs/libs/gst-plugins-bad-libs-sections.txt:
+	* gst-libs/gst/gl/gstglcontext.c:
+	* gst-libs/gst/gl/gstglcontext.h:
+	  glcontext: add API to retreive the thread that context is active in
+
+2014-09-24 14:29:37 +1000  Matthew Waters <matthew@centricular.com>
+
+	* ext/gl/gstglvideomixer.c:
+	  glvideomixer: skip input frames with an alpha of 0
+
+2014-09-24 13:13:19 +1000  Matthew Waters <matthew@centricular.com>
+
+	* ext/gl/gstglmixer.c:
+	* ext/gl/gstglmixer.h:
+	* ext/gl/gstgltestsrc.c:
+	* ext/gl/gstgltestsrc.h:
+	* gst-libs/gst/gl/gstglfilter.c:
+	* gst-libs/gst/gl/gstglfilter.h:
+	  gl: download whenever we have sysmem capsfeatures
+	  Otherwise we could pass on a RGBA formatted buffer and downstream would
+	  misinterpret that as some other video format.
+	  Fixes pipelines of the form
+	  gleffects ! tee ! xvimagesink
+
+2014-09-29 11:44:54 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* configure.ac:
+	  configure: Don't build VideoToolbox elements on iOS for now
+	  They're only ported properly in master.
+
+2014-09-26 01:34:54 +1000  Matthew Waters <matthew@centricular.com>
+
+	* ext/gl/gstglvideomixer.c:
+	  glvideomixer: fix blending with low-alpha sources
+	  We also need to apply the blend paramaters to the alpha channel otherwise
+	  the output of the blend will appear black at low alpha values (< 0.2).
+
+2014-07-29 16:12:26 +0200  Thibault Saunier <tsaunier@gnome.org>
+
+	* gst/videoparsers/gsth264parse.c:
+	  h264parse: Return flushing if we get chained while being set to READY
+	  Or not negotiated in the case we would be actually not negotiated
+	  Currently we are getting assertions from
+	  gst_pb_utils_add_codec_description_to_tag_list because of NULL
+	  caps.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=737186
+
+=== release 1.4.3 ===
+
+2014-09-24 12:43:28 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* ChangeLog:
+	* NEWS:
+	* RELEASE:
+	* configure.ac:
+	* docs/plugins/inspect/plugin-accurip.xml:
+	* docs/plugins/inspect/plugin-adpcmdec.xml:
+	* docs/plugins/inspect/plugin-adpcmenc.xml:
+	* docs/plugins/inspect/plugin-asfmux.xml:
+	* docs/plugins/inspect/plugin-assrender.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-faac.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-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-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.4.3
+
+2014-09-24 11:44:54 +0300  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
 
 2014-09-19 09:54:11 +0200  Aurélien Zanelli <aurelien.zanelli@parrot.com>
 
diff --git a/Makefile.in b/Makefile.in
index e89b803..7fb4b46 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -97,7 +97,7 @@
 	$(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
+	config.rpath config.sub install-sh missing ltmain.sh
 subdir = .
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
diff --git a/NEWS b/NEWS
index e5094d7..ee09ad6 100644
--- a/NEWS
+++ b/NEWS
@@ -1,2 +1,2 @@
-This is GStreamer Bad Plugins 1.4.3
+This is GStreamer Bad Plugins 1.4.4
 
diff --git a/RELEASE b/RELEASE
index 2d82389..a210988 100644
--- a/RELEASE
+++ b/RELEASE
@@ -1,5 +1,5 @@
 
-Release notes for GStreamer Bad Plugins 1.4.3
+Release notes for GStreamer Bad Plugins 1.4.4
 
 The GStreamer team is pleased to announce a bugfix release of the stable
 1.4 release series. The 1.4 release series is adding new features on top
@@ -24,6 +24,7 @@
 risky as a bugfix.
 
 
+
 "That an accusation?"
 
 
@@ -72,7 +73,29 @@
 
 Bugs fixed in this release
      
-      * 736951 : vc1parse: initialize sent_codec_tag before using it
+      * 732239 : h264parse: expose parsed profiles to downstream
+      * 733510 : gltransformation produced black screen
+      * 734156 : androidmedia: doesn't calculate framesize for COLOR_FormatYUV420Planar correctly
+      * 736319 : dashdemux: mark first buffer as discont after restarting a download task
+      * 737186 : h264parse: Return flushing if we get chained while being set to READY
+      * 737569 : tsdemux: valid data is discarded if PES start packet is the first packet after discontinuity
+      * 737658 : fluiddec: segmentation fault when used with fakesrc
+      * 737724 : vc1parse: unref caps when it is empty in renegotiate()
+      * 738067 : gl: Downloading YUY2 is broken and creates blocky artefacts
+      * 738223 : fluiddec: leaks memory in gst_fluid_dec_change_state()
+      * 738230 : vc1parser: fix level value for simple/main profile
+      * 738243 : vc1parse: fix framesize when input is frame-layer
+      * 738291 : fluiddec: leaks incoming caps event
+      * 738449 : vc1parse: just assume none header-format when no codec_data is present
+      * 738519 : vc1parse: parse frame header when stream format is ASF/raw for simple/main profile
+      * 738532 : vc1parse: select caps according to wmv format at negotiation
+      * 738674 : rtmpsink: leaking URI string
+      * 738695 : mpegtsbase: do not remove programs on EOS
+      * 738696 : hlsdemux: send missing stream start
+      * 739277 : GstGLFilter propose allocation pass uninitialized size to gst_query_add_allocation_pool
+      * 739348 : configure.ac: auto decision to include GL library fails
+      * 739368 : gl: small memory leak in gl shader
+      * 739374 : h264parse: sets srccaps too often
 
 ==== Download ====
 
@@ -109,5 +132,23 @@
         
 Contributors to this release
     
+      * Antonio Ospite
       * Aurélien Zanelli
+      * Edward Hervey
+      * Havard Graff
+      * Jesper Larsen
+      * Julien Isorce
+      * Lubosz Sarnecki
+      * Luis de Bethencourt
+      * Matej Knopp
+      * Matthew Waters
+      * Matthieu Bouron
+      * Sebastian Dröge
+      * Sreerenj Balachandran
+      * Thiago Santos
+      * Thibault Saunier
+      * Tim-Philipp Müller
+      * Vincent Abriou
+      * Vivia Nikolaidou
+      * Vootele Vesterblom
  
\ No newline at end of file
diff --git a/aclocal.m4 b/aclocal.m4
index c10e19b..cc915e4 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -103,10 +103,9 @@
 # configured tree to be moved without reconfiguration.
 
 AC_DEFUN([AM_AUX_DIR_EXPAND],
-[dnl Rely on autoconf to set up CDPATH properly.
-AC_PREREQ([2.50])dnl
-# expand $ac_aux_dir to an absolute path
-am_aux_dir=`cd $ac_aux_dir && pwd`
+[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
+# Expand $ac_aux_dir to an absolute path.
+am_aux_dir=`cd "$ac_aux_dir" && pwd`
 ])
 
 # AM_CONDITIONAL                                            -*- Autoconf -*-
diff --git a/config.h.in b/config.h.in
index 98e266b..47931d7 100644
--- a/config.h.in
+++ b/config.h.in
@@ -544,6 +544,9 @@
 /* Define if building with VideoToolbox */
 #undef HAVE_VIDEOTOOLBOX
 
+/* Define if building with VideoToolbox >= 10.9.6 */
+#undef HAVE_VIDEOTOOLBOX_10_9_6
+
 /* Define to enable vo-aacenc library (used by vo-aacenc). */
 #undef HAVE_VOAACENC
 
diff --git a/config.sub b/config.sub
index d654d03..bba4efb 100755
--- a/config.sub
+++ b/config.sub
@@ -2,7 +2,7 @@
 # Configuration validation subroutine script.
 #   Copyright 1992-2014 Free Software Foundation, Inc.
 
-timestamp='2014-05-01'
+timestamp='2014-09-11'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -302,6 +302,7 @@
 	| pdp10 | pdp11 | pj | pjl \
 	| powerpc | powerpc64 | powerpc64le | powerpcle \
 	| pyramid \
+	| riscv32 | riscv64 \
 	| rl78 | rx \
 	| score \
 	| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
@@ -828,6 +829,10 @@
 		basic_machine=powerpc-unknown
 		os=-morphos
 		;;
+	moxiebox)
+		basic_machine=moxie-unknown
+		os=-moxiebox
+		;;
 	msdos)
 		basic_machine=i386-pc
 		os=-msdos
@@ -1373,7 +1378,7 @@
 	      | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
 	      | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
 	      | -linux-newlib* | -linux-musl* | -linux-uclibc* \
-	      | -uxpv* | -beos* | -mpeix* | -udk* \
+	      | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \
 	      | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
 	      | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
 	      | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
diff --git a/configure b/configure
index d9225c5..422ae0f 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.4.3.
+# Generated by GNU Autoconf 2.69 for GStreamer Bad Plug-ins 1.4.4.
 #
 # 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.4.3'
-PACKAGE_STRING='GStreamer Bad Plug-ins 1.4.3'
+PACKAGE_VERSION='1.4.4'
+PACKAGE_STRING='GStreamer Bad Plug-ins 1.4.4'
 PACKAGE_BUGREPORT='http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer'
 PACKAGE_URL=''
 
@@ -2528,7 +2528,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.4.3 to adapt to many kinds of systems.
+\`configure' configures GStreamer Bad Plug-ins 1.4.4 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -2603,7 +2603,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of GStreamer Bad Plug-ins 1.4.3:";;
+     short | recursive ) echo "Configuration of GStreamer Bad Plug-ins 1.4.4:";;
    esac
   cat <<\_ACEOF
 
@@ -3217,7 +3217,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-GStreamer Bad Plug-ins configure 1.4.3
+GStreamer Bad Plug-ins configure 1.4.4
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -4190,7 +4190,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.4.3, which was
+It was created by GStreamer Bad Plug-ins $as_me 1.4.4, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -4858,8 +4858,8 @@
 ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
 program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
 
-# expand $ac_aux_dir to an absolute path
-am_aux_dir=`cd $ac_aux_dir && pwd`
+# Expand $ac_aux_dir to an absolute path.
+am_aux_dir=`cd "$ac_aux_dir" && pwd`
 
 if test x"${MISSING+set}" != xset; then
   case $am_aux_dir in
@@ -5172,7 +5172,7 @@
 
 # Define the identity of the package.
  PACKAGE='gst-plugins-bad'
- VERSION='1.4.3'
+ VERSION='1.4.4'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -5383,9 +5383,9 @@
 
 
 
-  PACKAGE_VERSION_MAJOR=$(echo 1.4.3 | cut -d'.' -f1)
-  PACKAGE_VERSION_MINOR=$(echo 1.4.3 | cut -d'.' -f2)
-  PACKAGE_VERSION_MICRO=$(echo 1.4.3 | cut -d'.' -f3)
+  PACKAGE_VERSION_MAJOR=$(echo 1.4.4 | cut -d'.' -f1)
+  PACKAGE_VERSION_MINOR=$(echo 1.4.4 | cut -d'.' -f2)
+  PACKAGE_VERSION_MICRO=$(echo 1.4.4 | cut -d'.' -f3)
 
 
 
@@ -5396,7 +5396,7 @@
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking nano version" >&5
 $as_echo_n "checking nano version... " >&6; }
 
-  NANO=$(echo 1.4.3 | cut -d'.' -f4)
+  NANO=$(echo 1.4.4 | cut -d'.' -f4)
 
   if test x"$NANO" = x || test "x$NANO" = "x0" ; then
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: 0 (release)" >&5
@@ -10053,10 +10053,10 @@
 done
 
 
-  GST_CURRENT=403
+  GST_CURRENT=404
   GST_REVISION=0
-  GST_AGE=403
-  GST_LIBVERSION=403:0:403
+  GST_AGE=404
+  GST_LIBVERSION=404:0:404
 
 
 
@@ -26670,12 +26670,12 @@
         pkg_cv_GRAPHENE_CFLAGS="$GRAPHENE_CFLAGS"
     else
         if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"graphene-1.0\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "graphene-1.0") 2>&5
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"graphene-1.0 >= 1.0.0\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "graphene-1.0 >= 1.0.0") 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
-  pkg_cv_GRAPHENE_CFLAGS=`$PKG_CONFIG --cflags "graphene-1.0" 2>/dev/null`
+  pkg_cv_GRAPHENE_CFLAGS=`$PKG_CONFIG --cflags "graphene-1.0 >= 1.0.0" 2>/dev/null`
 else
   pkg_failed=yes
 fi
@@ -26688,12 +26688,12 @@
         pkg_cv_GRAPHENE_LIBS="$GRAPHENE_LIBS"
     else
         if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"graphene-1.0\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "graphene-1.0") 2>&5
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"graphene-1.0 >= 1.0.0\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "graphene-1.0 >= 1.0.0") 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
-  pkg_cv_GRAPHENE_LIBS=`$PKG_CONFIG --libs "graphene-1.0" 2>/dev/null`
+  pkg_cv_GRAPHENE_LIBS=`$PKG_CONFIG --libs "graphene-1.0 >= 1.0.0" 2>/dev/null`
 else
   pkg_failed=yes
 fi
@@ -26712,9 +26712,9 @@
         _pkg_short_errors_supported=no
 fi
         if test $_pkg_short_errors_supported = yes; then
-	        GRAPHENE_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "graphene-1.0"`
+	        GRAPHENE_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "graphene-1.0 >= 1.0.0"`
         else
-	        GRAPHENE_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "graphene-1.0"`
+	        GRAPHENE_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "graphene-1.0 >= 1.0.0"`
         fi
 	# Put the nasty error message in config.log where it belongs
 	echo "$GRAPHENE_PKG_ERRORS" >&5
@@ -31986,6 +31986,21 @@
 
 
 
+if test "x$HAVE_VIDEOTOOLBOX" = "xyes"; then
+  old_LIBS=$LIBS
+  LIBS="$LIBS -framework VideoToolbox"
+  ac_fn_c_check_func "$LINENO" "VTCompressionSessionPrepareToEncodeFrames" "ac_cv_func_VTCompressionSessionPrepareToEncodeFrames"
+if test "x$ac_cv_func_VTCompressionSessionPrepareToEncodeFrames" = xyes; then :
+
+
+$as_echo "#define HAVE_VIDEOTOOLBOX_10_9_6 1" >>confdefs.h
+
+
+fi
+
+  LIBS=$old_LIBS
+fi
+
  if test "x$HAVE_AVFOUNDATION" = "xyes"; then
   HAVE_AVFOUNDATION_TRUE=
   HAVE_AVFOUNDATION_FALSE='#'
@@ -32014,39 +32029,6 @@
 
 fi
 
-if test "x$HAVE_IOS" = "xyes"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking Checking for __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_8_0" >&5
-$as_echo_n "checking Checking for __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_8_0... " >&6; }
-
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <AvailabilityMacros.h>
-int
-main ()
-{
-
-        #if !defined(__IPHONE_OS_VERSION_MIN_REQUIRED) || __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_8_0
-        #error "Need iOS >= 8.0 for VideoToolbox"
-        #endif
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-   { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-    HAVE_VIDEOTOOLBOX="yes"
-
-else
-   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-    HAVE_VIDEOTOOLBOX="no"
-
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-
  if test "x$HAVE_VIDEOTOOLBOX" = "xyes"; then
   HAVE_VIDEOTOOLBOX_TRUE=
   HAVE_VIDEOTOOLBOX_FALSE='#'
@@ -33931,6 +33913,10 @@
 # if __APPLE__
 #  include <OpenGL/OpenGL.h>
 #  include <OpenGL/gl.h>
+#  if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7
+#   define GL_DO_NOT_WARN_IF_MULTI_GL_VERSION_HEADERS_INCLUDED
+#   include <OpenGL/gl3.h>
+#  endif
 #  include <OpenGL/glu.h>
 # else
 #  include <GL/gl.h>
@@ -33972,7 +33958,7 @@
       fi
       { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Disabling Desktop GL support" >&5
 $as_echo "$as_me: WARNING: Disabling Desktop GL support" >&2;}
-      HAVE_OPENGL=no
+      HAVE_GL=no
     else
       { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Disabling GL|ES 2.0 support" >&5
 $as_echo "$as_me: WARNING: Disabling GL|ES 2.0 support" >&2;}
@@ -56339,7 +56325,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.4.3, which was
+This file was extended by GStreamer Bad Plug-ins $as_me 1.4.4, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -56405,7 +56391,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.4.3
+GStreamer Bad Plug-ins config.status 1.4.4
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff --git a/configure.ac b/configure.ac
index e5216b5..96d2f52 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, cvs and prerelease does Werror too
-AC_INIT([GStreamer Bad Plug-ins],[1.4.3],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gst-plugins-bad])
+AC_INIT([GStreamer Bad Plug-ins],[1.4.4],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gst-plugins-bad])
 
 AG_GST_INIT
 
@@ -48,7 +48,7 @@
 dnl - interfaces added -> increment AGE
 dnl - interfaces removed -> AGE = 0
 dnl sets GST_LT_LDFLAGS
-AS_LIBTOOL(GST, 403, 0, 403)
+AS_LIBTOOL(GST, 404, 0, 404)
 
 dnl *** required versions of GStreamer stuff ***
 GST_REQ=1.4.0
@@ -286,7 +286,7 @@
 
 dnl graphene-1.0 is optional and used in gltransformation
 HAVE_GRAPHENE=NO
-PKG_CHECK_MODULES(GRAPHENE, graphene-1.0, HAVE_GRAPHENE=yes, HAVE_GRAPHENE=no)
+PKG_CHECK_MODULES(GRAPHENE, graphene-1.0 >= 1.0.0, HAVE_GRAPHENE=yes, HAVE_GRAPHENE=no)
 if test "x$HAVE_GRAPHENE" = "xyes"; then
   AC_DEFINE(HAVE_GRAPHENE, [1] , [Use graphene])
 fi
@@ -503,6 +503,16 @@
 AC_CHECK_HEADER(MobileCoreServices/MobileCoreServices.h, HAVE_IOS="yes", HAVE_IOS="no", [-])
 AC_CHECK_HEADER(VideoToolbox/VideoToolbox.h, HAVE_VIDEOTOOLBOX="yes", HAVE_VIDEOTOOLBOX="no", [-])
 
+if test "x$HAVE_VIDEOTOOLBOX" = "xyes"; then
+  old_LIBS=$LIBS
+  LIBS="$LIBS -framework VideoToolbox"
+  AC_CHECK_FUNC(VTCompressionSessionPrepareToEncodeFrames, [
+    AC_DEFINE(HAVE_VIDEOTOOLBOX_10_9_6, 1, [Define if building with VideoToolbox >= 10.9.6])
+  ], [
+  ])
+  LIBS=$old_LIBS
+fi
+
 AM_CONDITIONAL(HAVE_AVFOUNDATION, test "x$HAVE_AVFOUNDATION" = "xyes")
 if test "x$HAVE_AVFOUNDATION" = "xyes"; then
   AC_DEFINE(HAVE_AVFOUNDATION, 1, [Define if building with AVFoundation])
@@ -513,20 +523,6 @@
   AC_DEFINE(HAVE_IOS, 1, [Define if building for Apple iOS])
 fi
 
-if test "x$HAVE_IOS" = "xyes"; then
-  AC_MSG_CHECKING([Checking for __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_8_0])
-
-  AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <AvailabilityMacros.h>]], [[
-        #if !defined(__IPHONE_OS_VERSION_MIN_REQUIRED) || __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_8_0
-        #error "Need iOS >= 8.0 for VideoToolbox"
-        #endif
-  ]])], [ AC_MSG_RESULT(yes)
-    HAVE_VIDEOTOOLBOX="yes"
-  ], [ AC_MSG_RESULT(no)
-    HAVE_VIDEOTOOLBOX="no"
-  ])
-fi
-
 AM_CONDITIONAL(HAVE_VIDEOTOOLBOX, test "x$HAVE_VIDEOTOOLBOX" = "xyes")
 if test "x$HAVE_VIDEOTOOLBOX" = "xyes"; then
   AC_DEFINE(HAVE_VIDEOTOOLBOX, 1, [Define if building with VideoToolbox])
@@ -861,6 +857,10 @@
 # if __APPLE__
 #  include <OpenGL/OpenGL.h>
 #  include <OpenGL/gl.h>
+#  if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7
+#   define GL_DO_NOT_WARN_IF_MULTI_GL_VERSION_HEADERS_INCLUDED
+#   include <OpenGL/gl3.h>
+#  endif
 #  include <OpenGL/glu.h>
 # else
 #  include <GL/gl.h>
@@ -884,7 +884,7 @@
         AC_MSG_ERROR([Cannot seem to include both GL and GLES2 headers. Try disabling one API])
       fi
       AC_MSG_WARN([Disabling Desktop GL support])
-      HAVE_OPENGL=no
+      HAVE_GL=no
     else
       AC_MSG_WARN([Disabling GL|ES 2.0 support])
       HAVE_GLES2=no
diff --git a/docs/libs/gst-plugins-bad-libs-sections.txt b/docs/libs/gst-plugins-bad-libs-sections.txt
index d07f6d6..632d9d6 100644
--- a/docs/libs/gst-plugins-bad-libs-sections.txt
+++ b/docs/libs/gst-plugins-bad-libs-sections.txt
@@ -831,6 +831,8 @@
 gst_gl_context_get_gl_api
 gst_gl_context_get_gl_context
 gst_gl_context_get_gl_platform
+gst_gl_context_get_thread
+gst_gl_context_can_share
 gst_gl_context_check_feature
 gst_gl_context_check_gl_version
 gst_gl_context_get_gl_version
diff --git a/docs/libs/html/GstGLColorConvert.html b/docs/libs/html/GstGLColorConvert.html
index 6c42b8d..7249954 100644
--- a/docs/libs/html/GstGLColorConvert.html
+++ b/docs/libs/html/GstGLColorConvert.html
@@ -116,6 +116,26 @@
 <a name="gst-gl-color-convert-new"></a><h3>gst_gl_color_convert_new ()</h3>
 <pre class="programlisting"><a class="link" href="GstGLColorConvert.html" title="GstGLColorConvert"><span class="returnvalue">GstGLColorConvert</span></a> *
 gst_gl_color_convert_new (<em class="parameter"><code><a class="link" href="GstGLContext.html" title="GstGLContext"><span class="type">GstGLContext</span></a> *context</code></em>);</pre>
+<div class="refsect3">
+<a name="id-1.2.9.4.7.2.4"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>context</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstGLContext.html" title="GstGLContext"><span class="type">GstGLContext</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.2.9.4.7.2.5"></a><h4>Returns</h4>
+<p> a new <a class="link" href="GstGLColorConvert.html" title="GstGLColorConvert"><span class="type">GstGLColorConvert</span></a> object</p>
+<p></p>
+</div>
 </div>
 <hr>
 <div class="refsect2">
diff --git a/docs/libs/html/GstGLContext.html b/docs/libs/html/GstGLContext.html
index 1d26f5c..ba85f88 100644
--- a/docs/libs/html/GstGLContext.html
+++ b/docs/libs/html/GstGLContext.html
@@ -166,6 +166,22 @@
 </tr>
 <tr>
 <td class="function_type">
+<a href="https://developer.gnome.org/glib/unstable/glib-Threads.html#GThread"><span class="returnvalue">GThread</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="GstGLContext.html#gst-gl-context-get-thread" title="gst_gl_context_get_thread ()">gst_gl_context_get_thread</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="GstGLContext.html#gst-gl-context-can-share" title="gst_gl_context_can_share ()">gst_gl_context_can_share</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
 <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 </td>
 <td class="function_name">
@@ -296,6 +312,7 @@
 <p> a new <a class="link" href="GstGLContext.html" title="GstGLContext"><span class="type">GstGLContext</span></a></p>
 <p></p>
 </div>
+<p class="since">Since 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -346,6 +363,7 @@
 </p>
 <p></p>
 </div>
+<p class="since">Since 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -394,6 +412,7 @@
 <p> whether the context could successfully be created</p>
 <p></p>
 </div>
+<p class="since">Since 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -432,6 +451,7 @@
 <p> Whether the activation succeeded</p>
 <p></p>
 </div>
+<p class="since">Since 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -479,6 +499,7 @@
 <p> a function pointer or NULL</p>
 <p></p>
 </div>
+<p class="since">Since 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -505,6 +526,7 @@
 <p> the currently set window</p>
 <p></p>
 </div>
+<p class="since">Since 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -545,6 +567,7 @@
 <p> Whether the window was successfully updated</p>
 <p></p>
 </div>
+<p class="since">Since 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -586,6 +609,7 @@
 </tbody>
 </table></div>
 </div>
+<p class="since">Since 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -613,6 +637,7 @@
 </p>
 <p></p>
 </div>
+<p class="since">Since 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -639,9 +664,10 @@
 </div>
 <div class="refsect3">
 <a name="id-1.2.9.5.7.15.7"></a><h4>Returns</h4>
-<p> the currently available OpenGL api</p>
+<p> the available OpenGL api</p>
 <p></p>
 </div>
+<p class="since">Since 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -670,6 +696,7 @@
 <p> The platform specific backing OpenGL context</p>
 <p></p>
 </div>
+<p class="since">Since 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -698,6 +725,73 @@
 <p> The platform specific backing OpenGL context</p>
 <p></p>
 </div>
+<p class="since">Since 1.4</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-gl-context-get-thread"></a><h3>gst_gl_context_get_thread ()</h3>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Threads.html#GThread"><span class="returnvalue">GThread</span></a> *
+gst_gl_context_get_thread (<em class="parameter"><code><a class="link" href="GstGLContext.html" title="GstGLContext"><span class="type">GstGLContext</span></a> *context</code></em>);</pre>
+<div class="refsect3">
+<a name="id-1.2.9.5.7.18.4"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>context</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstGLContext.html" title="GstGLContext"><span class="type">GstGLContext</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.2.9.5.7.18.5"></a><h4>Returns</h4>
+<p> The <a href="https://developer.gnome.org/glib/unstable/glib-Threads.html#GThread"><span class="type">GThread</span></a>, <em class="parameter"><code>context</code></em>
+is current in or NULL. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+</div>
+<p class="since">Since 1.4.5</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-gl-context-can-share"></a><h3>gst_gl_context_can_share ()</h3>
+<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>
+<div class="refsect3">
+<a name="id-1.2.9.5.7.19.4"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>context</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstGLContext.html" title="GstGLContext"><span class="type">GstGLContext</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>other_context</p></td>
+<td class="parameter_description"><p>another <a class="link" href="GstGLContext.html" title="GstGLContext"><span class="type">GstGLContext</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.2.9.5.7.19.5"></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
+resources.</p>
+<p></p>
+</div>
+<p class="since">Since 1.6</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -708,7 +802,7 @@
 <p>Some features require that the context be created before it is possible to
 determine their existence and so will fail if that is not the case.</p>
 <div class="refsect3">
-<a name="id-1.2.9.5.7.18.5"></a><h4>Parameters</h4>
+<a name="id-1.2.9.5.7.20.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -730,12 +824,13 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.5.7.18.6"></a><h4>Returns</h4>
+<a name="id-1.2.9.5.7.20.6"></a><h4>Returns</h4>
 <p> Whether <em class="parameter"><code>feature</code></em>
 is supported by <em class="parameter"><code>context</code></em>
 </p>
 <p></p>
 </div>
+<p class="since">Since 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -746,7 +841,7 @@
                                  <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> maj</code></em>,
                                  <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> min</code></em>);</pre>
 <div class="refsect3">
-<a name="id-1.2.9.5.7.19.4"></a><h4>Parameters</h4>
+<a name="id-1.2.9.5.7.21.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -778,11 +873,12 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.9.5.7.19.5"></a><h4>Returns</h4>
+<a name="id-1.2.9.5.7.21.5"></a><h4>Returns</h4>
 <p> whether OpenGL context implements the required api and specified
 version.</p>
 <p></p>
 </div>
+<p class="since">Since 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -797,7 +893,7 @@
 <em class="parameter"><code>context</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.9.5.7.20.5"></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">
@@ -823,6 +919,7 @@
 </tbody>
 </table></div>
 </div>
+<p class="since">Since 1.4</p>
 </div>
 </div>
 <div class="refsect1">
diff --git a/docs/libs/html/GstGLDisplay.html b/docs/libs/html/GstGLDisplay.html
index 31b85c6..2793f0d 100644
--- a/docs/libs/html/GstGLDisplay.html
+++ b/docs/libs/html/GstGLDisplay.html
@@ -140,6 +140,7 @@
 <p> a new <a class="link" href="GstGLDisplay.html" title="GstGLDisplay"><span class="type">GstGLDisplay</span></a>. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
+<p class="since">Since 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -167,6 +168,7 @@
 </p>
 <p></p>
 </div>
+<p class="since">Since 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -203,6 +205,7 @@
 </p>
 <p></p>
 </div>
+<p class="since">Since 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -235,6 +238,7 @@
 </tbody>
 </table></div>
 </div>
+<p class="since">Since 1.4</p>
 </div>
 </div>
 <div class="refsect1">
diff --git a/docs/libs/html/GstGLWindow.html b/docs/libs/html/GstGLWindow.html
index d127e82..f7d5fa0 100644
--- a/docs/libs/html/GstGLWindow.html
+++ b/docs/libs/html/GstGLWindow.html
@@ -304,6 +304,7 @@
 's connection. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
+<p class="since">Since 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -340,6 +341,7 @@
 </tbody>
 </table></div>
 </div>
+<p class="since">Since 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -376,6 +378,7 @@
 </tbody>
 </table></div>
 </div>
+<p class="since">Since 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -398,6 +401,7 @@
 </tr></tbody>
 </table></div>
 </div>
+<p class="since">Since 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -420,6 +424,7 @@
 </tr></tbody>
 </table></div>
 </div>
+<p class="since">Since 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -442,6 +447,7 @@
 </tr></tbody>
 </table></div>
 </div>
+<p class="since">Since 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -469,6 +475,7 @@
 . </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
+<p class="since">Since 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -496,6 +503,7 @@
 </p>
 <p></p>
 </div>
+<p class="since">Since 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -536,6 +544,7 @@
 </tbody>
 </table></div>
 </div>
+<p class="since">Since 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -583,6 +592,7 @@
 </tbody>
 </table></div>
 </div>
+<p class="since">Since 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -627,6 +637,7 @@
 </tbody>
 </table></div>
 </div>
+<p class="since">Since 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -671,6 +682,7 @@
 </tbody>
 </table></div>
 </div>
+<p class="since">Since 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -715,6 +727,7 @@
 </tbody>
 </table></div>
 </div>
+<p class="since">Since 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -747,6 +760,7 @@
 </tbody>
 </table></div>
 </div>
+<p class="since">Since 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -773,6 +787,7 @@
 <p> the window handle we are currently rendering into</p>
 <p></p>
 </div>
+<p class="since">Since 1.4</p>
 </div>
 </div>
 <div class="refsect1">
diff --git a/docs/libs/html/api-index-full.html b/docs/libs/html/api-index-full.html
index a612e56..cc30082 100644
--- a/docs/libs/html/api-index-full.html
+++ b/docs/libs/html/api-index-full.html
@@ -144,7 +144,7 @@
 <dd></dd>
 <a name="idxC"></a><h3 class="title">C</h3>
 <dt>
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-bad/html/gst-plugins-bad-plugins-camerabin.html#GstCameraBinMode">GstCameraBinMode</a>, enum in gstcamerabin-enum
+GstCameraBinMode, enum in gstcamerabin-enum
 </dt>
 <dd></dd>
 <dt>
@@ -571,6 +571,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="GstGLContext.html#gst-gl-context-can-share" title="gst_gl_context_can_share ()">gst_gl_context_can_share</a>, function in <a class="link" href="GstGLContext.html" title="GstGLContext">GstGLContext</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="GstGLContext.html#gst-gl-context-check-feature" title="gst_gl_context_check_feature ()">gst_gl_context_check_feature</a>, function in <a class="link" href="GstGLContext.html" title="GstGLContext">GstGLContext</a>
 </dt>
 <dd></dd>
@@ -663,6 +667,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="GstGLContext.html#gst-gl-context-get-thread" title="gst_gl_context_get_thread ()">gst_gl_context_get_thread</a>, function in <a class="link" href="GstGLContext.html" title="GstGLContext">GstGLContext</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="GstGLContext.html#gst-gl-context-get-window" title="gst_gl_context_get_window ()">gst_gl_context_get_window</a>, function in <a class="link" href="GstGLContext.html" title="GstGLContext">GstGLContext</a>
 </dt>
 <dd></dd>
@@ -2315,39 +2323,39 @@
 <dd></dd>
 <a name="idxP"></a><h3 class="title">P</h3>
 <dt>
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-bad/html/GstPhotography.html">GstPhotography</a>, struct in gstphotography
+GstPhotography, struct in gstphotography
 </dt>
 <dd></dd>
 <dt>
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-bad/html/GstPhotography.html#GstPhotographyNoiseReduction">GstPhotographyNoiseReduction</a>, enum in gstphotography
+GstPhotographyNoiseReduction, enum in gstphotography
 </dt>
 <dd></dd>
 <dt>
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-bad/html/GstPhotography.html#GST-PHOTOGRAPHY-AUTOFOCUS-DONE:CAPS">GST_PHOTOGRAPHY_AUTOFOCUS_DONE</a>, macro in gstphotography
+GST_PHOTOGRAPHY_AUTOFOCUS_DONE, macro in gstphotography
 </dt>
 <dd></dd>
 <dt>
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-bad/html/GstPhotography.html#gst-photography-get-aperture">gst_photography_get_aperture</a>, function in gstphotography
+gst_photography_get_aperture, function in gstphotography
 </dt>
 <dd></dd>
 <dt>
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-bad/html/GstPhotography.html#gst-photography-get-capabilities">gst_photography_get_capabilities</a>, function in gstphotography
+gst_photography_get_capabilities, function in gstphotography
 </dt>
 <dd></dd>
 <dt>
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-bad/html/GstPhotography.html#gst-photography-get-config">gst_photography_get_config</a>, function in gstphotography
+gst_photography_get_config, function in gstphotography
 </dt>
 <dd></dd>
 <dt>
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-bad/html/GstPhotography.html#gst-photography-get-ev-compensation">gst_photography_get_ev_compensation</a>, function in gstphotography
+gst_photography_get_ev_compensation, function in gstphotography
 </dt>
 <dd></dd>
 <dt>
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-bad/html/GstPhotography.html#gst-photography-get-exposure">gst_photography_get_exposure</a>, function in gstphotography
+gst_photography_get_exposure, function in gstphotography
 </dt>
 <dd></dd>
 <dt>
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-bad/html/GstPhotography.html#gst-photography-get-flash-mode">gst_photography_get_flash_mode</a>, function in gstphotography
+gst_photography_get_flash_mode, function in gstphotography
 </dt>
 <dd></dd>
 <dt>
@@ -2359,23 +2367,23 @@
 </dt>
 <dd></dd>
 <dt>
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-bad/html/GstPhotography.html#gst-photography-get-iso-speed">gst_photography_get_iso_speed</a>, function in gstphotography
+gst_photography_get_iso_speed, function in gstphotography
 </dt>
 <dd></dd>
 <dt>
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-bad/html/GstPhotography.html#gst-photography-get-noise-reduction">gst_photography_get_noise_reduction</a>, function in gstphotography
+gst_photography_get_noise_reduction, function in gstphotography
 </dt>
 <dd></dd>
 <dt>
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-bad/html/GstPhotography.html#gst-photography-get-scene-mode">gst_photography_get_scene_mode</a>, function in gstphotography
+gst_photography_get_scene_mode, function in gstphotography
 </dt>
 <dd></dd>
 <dt>
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-bad/html/GstPhotography.html#gst-photography-get-white-balance-mode">gst_photography_get_white_balance_mode</a>, function in gstphotography
+gst_photography_get_white_balance_mode, function in gstphotography
 </dt>
 <dd></dd>
 <dt>
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-bad/html/GstPhotography.html#gst-photography-get-zoom">gst_photography_get_zoom</a>, function in gstphotography
+gst_photography_get_zoom, function in gstphotography
 </dt>
 <dd></dd>
 <dt>
@@ -2383,7 +2391,7 @@
 </dt>
 <dd></dd>
 <dt>
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-bad/html/GstPhotography.html#gst-photography-prepare-for-capture">gst_photography_prepare_for_capture</a>, function in gstphotography
+gst_photography_prepare_for_capture, function in gstphotography
 </dt>
 <dd></dd>
 <dt>
@@ -2447,27 +2455,27 @@
 </dt>
 <dd></dd>
 <dt>
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-bad/html/GstPhotography.html#gst-photography-set-aperture">gst_photography_set_aperture</a>, function in gstphotography
+gst_photography_set_aperture, function in gstphotography
 </dt>
 <dd></dd>
 <dt>
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-bad/html/GstPhotography.html#gst-photography-set-autofocus">gst_photography_set_autofocus</a>, function in gstphotography
+gst_photography_set_autofocus, function in gstphotography
 </dt>
 <dd></dd>
 <dt>
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-bad/html/GstPhotography.html#gst-photography-set-config">gst_photography_set_config</a>, function in gstphotography
+gst_photography_set_config, function in gstphotography
 </dt>
 <dd></dd>
 <dt>
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-bad/html/GstPhotography.html#gst-photography-set-ev-compensation">gst_photography_set_ev_compensation</a>, function in gstphotography
+gst_photography_set_ev_compensation, function in gstphotography
 </dt>
 <dd></dd>
 <dt>
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-bad/html/GstPhotography.html#gst-photography-set-exposure">gst_photography_set_exposure</a>, function in gstphotography
+gst_photography_set_exposure, function in gstphotography
 </dt>
 <dd></dd>
 <dt>
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-bad/html/GstPhotography.html#gst-photography-set-flash-mode">gst_photography_set_flash_mode</a>, function in gstphotography
+gst_photography_set_flash_mode, function in gstphotography
 </dt>
 <dd></dd>
 <dt>
@@ -2479,27 +2487,27 @@
 </dt>
 <dd></dd>
 <dt>
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-bad/html/GstPhotography.html#gst-photography-set-iso-speed">gst_photography_set_iso_speed</a>, function in gstphotography
+gst_photography_set_iso_speed, function in gstphotography
 </dt>
 <dd></dd>
 <dt>
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-bad/html/GstPhotography.html#gst-photography-set-noise-reduction">gst_photography_set_noise_reduction</a>, function in gstphotography
+gst_photography_set_noise_reduction, function in gstphotography
 </dt>
 <dd></dd>
 <dt>
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-bad/html/GstPhotography.html#gst-photography-set-scene-mode">gst_photography_set_scene_mode</a>, function in gstphotography
+gst_photography_set_scene_mode, function in gstphotography
 </dt>
 <dd></dd>
 <dt>
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-bad/html/GstPhotography.html#gst-photography-set-white-balance-mode">gst_photography_set_white_balance_mode</a>, function in gstphotography
+gst_photography_set_white_balance_mode, function in gstphotography
 </dt>
 <dd></dd>
 <dt>
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-bad/html/GstPhotography.html#gst-photography-set-zoom">gst_photography_set_zoom</a>, function in gstphotography
+gst_photography_set_zoom, function in gstphotography
 </dt>
 <dd></dd>
 <dt>
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-bad/html/GstPhotography.html#GST-PHOTOGRAPHY-SHAKE-RISK:CAPS">GST_PHOTOGRAPHY_SHAKE_RISK</a>, macro in gstphotography
+GST_PHOTOGRAPHY_SHAKE_RISK, macro in gstphotography
 </dt>
 <dd></dd>
 <dt>
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 40f2bc8..628a54c 100644
--- a/docs/libs/html/gst-plugins-bad-libs-1.0.devhelp2
+++ b/docs/libs/html/gst-plugins-bad-libs-1.0.devhelp2
@@ -418,22 +418,24 @@
     <keyword type="macro" name="GST_GL_CONTEXT_ERROR" link="GstGLContext.html#GST-GL-CONTEXT-ERROR:CAPS"/>
     <keyword type="function" name="gst_gl_context_error_quark ()" link="GstGLContext.html#gst-gl-context-error-quark"/>
     <keyword type="function" name="GstGLContextThreadFunc ()" link="GstGLContext.html#GstGLContextThreadFunc"/>
-    <keyword type="function" name="gst_gl_context_new ()" link="GstGLContext.html#gst-gl-context-new"/>
-    <keyword type="function" name="gst_gl_context_new_wrapped ()" link="GstGLContext.html#gst-gl-context-new-wrapped"/>
-    <keyword type="function" name="gst_gl_context_create ()" link="GstGLContext.html#gst-gl-context-create"/>
-    <keyword type="function" name="gst_gl_context_activate ()" link="GstGLContext.html#gst-gl-context-activate"/>
+    <keyword type="function" name="gst_gl_context_new ()" link="GstGLContext.html#gst-gl-context-new" since="1.4"/>
+    <keyword type="function" name="gst_gl_context_new_wrapped ()" link="GstGLContext.html#gst-gl-context-new-wrapped" since="1.4"/>
+    <keyword type="function" name="gst_gl_context_create ()" link="GstGLContext.html#gst-gl-context-create" since="1.4"/>
+    <keyword type="function" name="gst_gl_context_activate ()" link="GstGLContext.html#gst-gl-context-activate" since="1.4"/>
     <keyword type="function" name="gst_gl_context_default_get_proc_address ()" link="GstGLContext.html#gst-gl-context-default-get-proc-address"/>
-    <keyword type="function" name="gst_gl_context_get_proc_address ()" link="GstGLContext.html#gst-gl-context-get-proc-address"/>
-    <keyword type="function" name="gst_gl_context_get_window ()" link="GstGLContext.html#gst-gl-context-get-window"/>
-    <keyword type="function" name="gst_gl_context_set_window ()" link="GstGLContext.html#gst-gl-context-set-window"/>
-    <keyword type="function" name="gst_gl_context_thread_add ()" link="GstGLContext.html#gst-gl-context-thread-add"/>
-    <keyword type="function" name="gst_gl_context_get_display ()" link="GstGLContext.html#gst-gl-context-get-display"/>
-    <keyword type="function" name="gst_gl_context_get_gl_api ()" link="GstGLContext.html#gst-gl-context-get-gl-api"/>
-    <keyword type="function" name="gst_gl_context_get_gl_context ()" link="GstGLContext.html#gst-gl-context-get-gl-context"/>
-    <keyword type="function" name="gst_gl_context_get_gl_platform ()" link="GstGLContext.html#gst-gl-context-get-gl-platform"/>
-    <keyword type="function" name="gst_gl_context_check_feature ()" link="GstGLContext.html#gst-gl-context-check-feature"/>
-    <keyword type="function" name="gst_gl_context_check_gl_version ()" link="GstGLContext.html#gst-gl-context-check-gl-version"/>
-    <keyword type="function" name="gst_gl_context_get_gl_version ()" link="GstGLContext.html#gst-gl-context-get-gl-version"/>
+    <keyword type="function" name="gst_gl_context_get_proc_address ()" link="GstGLContext.html#gst-gl-context-get-proc-address" since="1.4"/>
+    <keyword type="function" name="gst_gl_context_get_window ()" link="GstGLContext.html#gst-gl-context-get-window" since="1.4"/>
+    <keyword type="function" name="gst_gl_context_set_window ()" link="GstGLContext.html#gst-gl-context-set-window" since="1.4"/>
+    <keyword type="function" name="gst_gl_context_thread_add ()" link="GstGLContext.html#gst-gl-context-thread-add" since="1.4"/>
+    <keyword type="function" name="gst_gl_context_get_display ()" link="GstGLContext.html#gst-gl-context-get-display" since="1.4"/>
+    <keyword type="function" name="gst_gl_context_get_gl_api ()" link="GstGLContext.html#gst-gl-context-get-gl-api" since="1.4"/>
+    <keyword type="function" name="gst_gl_context_get_gl_context ()" link="GstGLContext.html#gst-gl-context-get-gl-context" since="1.4"/>
+    <keyword type="function" name="gst_gl_context_get_gl_platform ()" link="GstGLContext.html#gst-gl-context-get-gl-platform" since="1.4"/>
+    <keyword type="function" name="gst_gl_context_get_thread ()" link="GstGLContext.html#gst-gl-context-get-thread" since="1.4.5"/>
+    <keyword type="function" name="gst_gl_context_can_share ()" link="GstGLContext.html#gst-gl-context-can-share" since="1.6"/>
+    <keyword type="function" name="gst_gl_context_check_feature ()" link="GstGLContext.html#gst-gl-context-check-feature" since="1.4"/>
+    <keyword type="function" name="gst_gl_context_check_gl_version ()" link="GstGLContext.html#gst-gl-context-check-gl-version" since="1.4"/>
+    <keyword type="function" name="gst_gl_context_get_gl_version ()" link="GstGLContext.html#gst-gl-context-get-gl-version" since="1.4"/>
     <keyword type="enum" name="enum GstGLContextError" link="GstGLContext.html#GstGLContextError"/>
     <keyword type="struct" name="GstGLContext" link="GstGLContext.html#GstGLContext-struct"/>
     <keyword type="function" name="gst_gl_context_cocoa_new ()" link="gst-plugins-bad-libs-GstGLContextCocoa.html#gst-gl-context-cocoa-new"/>
@@ -444,10 +446,10 @@
     <keyword type="struct" name="struct GstGLContextGLX" link="gst-plugins-bad-libs-GstGLContextGLX.html#GstGLContextGLX"/>
     <keyword type="function" name="gst_gl_context_wgl_new ()" link="gst-plugins-bad-libs-GstGLContextWGL.html#gst-gl-context-wgl-new"/>
     <keyword type="struct" name="struct GstGLContextWGL" link="gst-plugins-bad-libs-GstGLContextWGL.html#GstGLContextWGL"/>
-    <keyword type="function" name="gst_gl_display_new ()" link="GstGLDisplay.html#gst-gl-display-new"/>
-    <keyword type="function" name="gst_gl_display_get_handle_type ()" link="GstGLDisplay.html#gst-gl-display-get-handle-type"/>
-    <keyword type="function" name="gst_context_get_gl_display ()" link="GstGLDisplay.html#gst-context-get-gl-display"/>
-    <keyword type="function" name="gst_context_set_gl_display ()" link="GstGLDisplay.html#gst-context-set-gl-display"/>
+    <keyword type="function" name="gst_gl_display_new ()" link="GstGLDisplay.html#gst-gl-display-new" since="1.4"/>
+    <keyword type="function" name="gst_gl_display_get_handle_type ()" link="GstGLDisplay.html#gst-gl-display-get-handle-type" since="1.4"/>
+    <keyword type="function" name="gst_context_get_gl_display ()" link="GstGLDisplay.html#gst-context-get-gl-display" since="1.4"/>
+    <keyword type="function" name="gst_context_set_gl_display ()" link="GstGLDisplay.html#gst-context-set-gl-display" since="1.4"/>
     <keyword type="macro" name="GST_GL_DISPLAY_CONTEXT_TYPE" link="GstGLDisplay.html#GST-GL-DISPLAY-CONTEXT-TYPE:CAPS"/>
     <keyword type="enum" name="enum GstGLDisplayType" link="GstGLDisplay.html#GstGLDisplayType"/>
     <keyword type="struct" name="GstGLDisplay" link="GstGLDisplay.html#GstGLDisplay-struct"/>
@@ -590,21 +592,21 @@
     <keyword type="macro" name="GST_GL_WINDOW_RESIZE_CB()" link="GstGLWindow.html#GST-GL-WINDOW-RESIZE-CB:CAPS"/>
     <keyword type="function" name="GstGLWindowCB ()" link="GstGLWindow.html#GstGLWindowCB"/>
     <keyword type="macro" name="GST_GL_WINDOW_CB()" link="GstGLWindow.html#GST-GL-WINDOW-CB:CAPS"/>
-    <keyword type="function" name="gst_gl_window_new ()" link="GstGLWindow.html#gst-gl-window-new"/>
-    <keyword type="function" name="gst_gl_window_draw ()" link="GstGLWindow.html#gst-gl-window-draw"/>
-    <keyword type="function" name="gst_gl_window_draw_unlocked ()" link="GstGLWindow.html#gst-gl-window-draw-unlocked"/>
-    <keyword type="function" name="gst_gl_window_is_running ()" link="GstGLWindow.html#gst-gl-window-is-running"/>
-    <keyword type="function" name="gst_gl_window_quit ()" link="GstGLWindow.html#gst-gl-window-quit"/>
-    <keyword type="function" name="gst_gl_window_run ()" link="GstGLWindow.html#gst-gl-window-run"/>
-    <keyword type="function" name="gst_gl_window_get_context ()" link="GstGLWindow.html#gst-gl-window-get-context"/>
-    <keyword type="function" name="gst_gl_window_get_display ()" link="GstGLWindow.html#gst-gl-window-get-display"/>
-    <keyword type="function" name="gst_gl_window_send_message ()" link="GstGLWindow.html#gst-gl-window-send-message"/>
-    <keyword type="function" name="gst_gl_window_send_message_async ()" link="GstGLWindow.html#gst-gl-window-send-message-async"/>
-    <keyword type="function" name="gst_gl_window_set_close_callback ()" link="GstGLWindow.html#gst-gl-window-set-close-callback"/>
-    <keyword type="function" name="gst_gl_window_set_draw_callback ()" link="GstGLWindow.html#gst-gl-window-set-draw-callback"/>
-    <keyword type="function" name="gst_gl_window_set_resize_callback ()" link="GstGLWindow.html#gst-gl-window-set-resize-callback"/>
-    <keyword type="function" name="gst_gl_window_set_window_handle ()" link="GstGLWindow.html#gst-gl-window-set-window-handle"/>
-    <keyword type="function" name="gst_gl_window_get_window_handle ()" link="GstGLWindow.html#gst-gl-window-get-window-handle"/>
+    <keyword type="function" name="gst_gl_window_new ()" link="GstGLWindow.html#gst-gl-window-new" since="1.4"/>
+    <keyword type="function" name="gst_gl_window_draw ()" link="GstGLWindow.html#gst-gl-window-draw" since="1.4"/>
+    <keyword type="function" name="gst_gl_window_draw_unlocked ()" link="GstGLWindow.html#gst-gl-window-draw-unlocked" since="1.4"/>
+    <keyword type="function" name="gst_gl_window_is_running ()" link="GstGLWindow.html#gst-gl-window-is-running" since="1.4"/>
+    <keyword type="function" name="gst_gl_window_quit ()" link="GstGLWindow.html#gst-gl-window-quit" since="1.4"/>
+    <keyword type="function" name="gst_gl_window_run ()" link="GstGLWindow.html#gst-gl-window-run" since="1.4"/>
+    <keyword type="function" name="gst_gl_window_get_context ()" link="GstGLWindow.html#gst-gl-window-get-context" since="1.4"/>
+    <keyword type="function" name="gst_gl_window_get_display ()" link="GstGLWindow.html#gst-gl-window-get-display" since="1.4"/>
+    <keyword type="function" name="gst_gl_window_send_message ()" link="GstGLWindow.html#gst-gl-window-send-message" since="1.4"/>
+    <keyword type="function" name="gst_gl_window_send_message_async ()" link="GstGLWindow.html#gst-gl-window-send-message-async" since="1.4"/>
+    <keyword type="function" name="gst_gl_window_set_close_callback ()" link="GstGLWindow.html#gst-gl-window-set-close-callback" since="1.4"/>
+    <keyword type="function" name="gst_gl_window_set_draw_callback ()" link="GstGLWindow.html#gst-gl-window-set-draw-callback" since="1.4"/>
+    <keyword type="function" name="gst_gl_window_set_resize_callback ()" link="GstGLWindow.html#gst-gl-window-set-resize-callback" since="1.4"/>
+    <keyword type="function" name="gst_gl_window_set_window_handle ()" link="GstGLWindow.html#gst-gl-window-set-window-handle" since="1.4"/>
+    <keyword type="function" name="gst_gl_window_get_window_handle ()" link="GstGLWindow.html#gst-gl-window-get-window-handle" since="1.4"/>
     <keyword type="enum" name="enum GstGLWindowError" link="GstGLWindow.html#GstGLWindowError"/>
     <keyword type="struct" name="GstGLWindow" link="GstGLWindow.html#GstGLWindow-struct"/>
     <keyword type="struct" name="GstGLWindowClass" link="GstGLWindow.html#GstGLWindowClass"/>
diff --git a/docs/libs/html/gst-plugins-bad-libs-Base-MPEG-TS-sections.html b/docs/libs/html/gst-plugins-bad-libs-Base-MPEG-TS-sections.html
index 1589564..e1b61e6 100644
--- a/docs/libs/html/gst-plugins-bad-libs-Base-MPEG-TS-sections.html
+++ b/docs/libs/html/gst-plugins-bad-libs-Base-MPEG-TS-sections.html
@@ -549,7 +549,7 @@
 gst_mpegts_section_from_pat (<em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Pointer-Arrays.html#GPtrArray"><span class="type">GPtrArray</span></a> *programs</code></em>,
                              <em class="parameter"><code><span class="type">guint16</span> ts_id</code></em>);</pre>
 <p>Creates a PAT <a class="link" href="gst-plugins-bad-libs-Base-MPEG-TS-sections.html#GstMpegtsSection"><span class="type">GstMpegtsSection</span></a> from the <em class="parameter"><code>programs</code></em>
- array of <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-bad-libs/html/gst-plugins-bad-libs-Base-MPEG-TS-sections.html#GstMpegtsPatProgram"><span class="type">GstMpegtsPatPrograms</span></a></p>
+ array of <a href="../gst-plugins-bad-libs-1.0/gst-plugins-bad-libs-Base-MPEG-TS-sections.html#GstMpegtsPatProgram"><span class="type">GstMpegtsPatPrograms</span></a></p>
 <div class="refsect3">
 <a name="id-1.2.5.4.9.14.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
diff --git a/docs/libs/html/gst-plugins-bad-libs-GstAggregator.html b/docs/libs/html/gst-plugins-bad-libs-GstAggregator.html
index 81ff32e..9df5eb6 100644
--- a/docs/libs/html/gst-plugins-bad-libs-GstAggregator.html
+++ b/docs/libs/html/gst-plugins-bad-libs-GstAggregator.html
@@ -390,7 +390,7 @@
 <td class="struct_member_description"><p>Mandatory.
 Called when buffers are queued on all sinkpads. Classes
 should iterate the GstElement-&gt;sinkpads and peek or steal
-buffers from the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-bad-libs/html/gst-plugins-bad-libs-GstAggregatorPad.html#GstAggregatorPad"><span class="type">GstAggregatorPads</span></a>. If the subclass returns
+buffers from the <a href="../gst-plugins-bad-libs-1.0/gst-plugins-bad-libs-GstAggregatorPad.html#GstAggregatorPad"><span class="type">GstAggregatorPads</span></a>. If the subclass returns
 GST_FLOW_EOS, sending of the eos event will be taken care
 of. Once / if a buffer has been constructed from the
 aggregated buffers, the subclass should call _finish_buffer.</p></td>
diff --git a/docs/libs/html/gst-plugins-bad-libs-GstGLWindowCocoa.html b/docs/libs/html/gst-plugins-bad-libs-GstGLWindowCocoa.html
index 62ff5ef..dea1162 100644
--- a/docs/libs/html/gst-plugins-bad-libs-GstGLWindowCocoa.html
+++ b/docs/libs/html/gst-plugins-bad-libs-GstGLWindowCocoa.html
@@ -91,7 +91,8 @@
 <div class="refsect2">
 <a name="gst-gl-window-cocoa-create-window"></a><h3>gst_gl_window_cocoa_create_window ()</h3>
 <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
-gst_gl_window_cocoa_create_window (<em class="parameter"><code><a class="link" href="gst-plugins-bad-libs-GstGLWindowCocoa.html#GstGLWindowCocoa" title="struct GstGLWindowCocoa"><span class="type">GstGLWindowCocoa</span></a> *window_cocoa</code></em>);</pre>
+gst_gl_window_cocoa_create_window (<em class="parameter"><code><a class="link" href="gst-plugins-bad-libs-GstGLWindowCocoa.html#GstGLWindowCocoa" title="struct GstGLWindowCocoa"><span class="type">GstGLWindowCocoa</span></a> *window_cocoa</code></em>,
+                                   <em class="parameter"><code><span class="type">NSRect</span> rect</code></em>);</pre>
 </div>
 </div>
 <div class="refsect1">
diff --git a/docs/libs/html/index.html b/docs/libs/html/index.html
index 40de875..f529fca 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.4.3)
+      for GStreamer Bad Library 1.0 (1.4.4)
       <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 4121f08..5378adc 100644
--- a/docs/libs/html/index.sgml
+++ b/docs/libs/html/index.sgml
@@ -520,6 +520,8 @@
 <ANCHOR id="gst-gl-context-get-gl-api" href="gst-plugins-bad-libs-1.0/GstGLContext.html#gst-gl-context-get-gl-api">
 <ANCHOR id="gst-gl-context-get-gl-context" href="gst-plugins-bad-libs-1.0/GstGLContext.html#gst-gl-context-get-gl-context">
 <ANCHOR id="gst-gl-context-get-gl-platform" href="gst-plugins-bad-libs-1.0/GstGLContext.html#gst-gl-context-get-gl-platform">
+<ANCHOR id="gst-gl-context-get-thread" href="gst-plugins-bad-libs-1.0/GstGLContext.html#gst-gl-context-get-thread">
+<ANCHOR id="gst-gl-context-can-share" href="gst-plugins-bad-libs-1.0/GstGLContext.html#gst-gl-context-can-share">
 <ANCHOR id="gst-gl-context-check-feature" href="gst-plugins-bad-libs-1.0/GstGLContext.html#gst-gl-context-check-feature">
 <ANCHOR id="gst-gl-context-check-gl-version" href="gst-plugins-bad-libs-1.0/GstGLContext.html#gst-gl-context-check-gl-version">
 <ANCHOR id="gst-gl-context-get-gl-version" href="gst-plugins-bad-libs-1.0/GstGLContext.html#gst-gl-context-get-gl-version">
diff --git a/docs/plugins/gst-plugins-bad-plugins.hierarchy b/docs/plugins/gst-plugins-bad-plugins.hierarchy
index 6ae2f26..2df71bd 100644
--- a/docs/plugins/gst-plugins-bad-plugins.hierarchy
+++ b/docs/plugins/gst-plugins-bad-plugins.hierarchy
@@ -3,7 +3,6 @@
     GstObject
       GstAllocator
         GstAllocatorSysmem
-        GstVdpVideoAllocator
       GstAudioRingBuffer
         GstAudioSinkRingBuffer
         GstAudioSrcRingBuffer
@@ -35,7 +34,6 @@
           GstSirenDec
         GstAudioEncoder
           ADPCMEnc
-          GstFaac
           GstGSMEnc
           GstOpusEnc
           GstSbcEnc
@@ -75,6 +73,7 @@
           GstInterAudioSink
           GstInterSubSink
           GstInterVideoSink
+          GstRTMPSink
           GstShmSink
           GstVideoSink
             GstDfbVideoSink
@@ -97,6 +96,7 @@
             GstDvbSrc
             GstGLTestSrc
             GstMMS
+            GstRTMPSrc
             GstRfbSrc
             GstShmSrc
         GstBaseTransform
@@ -277,8 +277,6 @@
           GstRsvgDec
           GstSchroDec
           GstVMncDec
-          GstVdpDecoder
-            GstVdpMpegDec
           GstWebPDec
         GstVideoEncoder
           GstOpenJPEGEnc
@@ -309,7 +307,6 @@
       GstTaskPool
   GstColorBalanceChannel
   GstEncodingProfile
-  GstVdpDevice
   MXFMetadataBase
     MXFDescriptiveMetadata
       MXFDMS1
diff --git a/docs/plugins/html/GstPhotography.html b/docs/plugins/html/GstPhotography.html
index 9d6e47a..d023224 100644
--- a/docs/plugins/html/GstPhotography.html
+++ b/docs/plugins/html/GstPhotography.html
@@ -272,7 +272,7 @@
 <td class="property_flags">Read</td>
 </tr>
 <tr>
-<td class="property_type"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-bad/html/GstPhotography.html#GstColourToneMode"><span class="type">GstColourToneMode</span></a></td>
+<td class="property_type"><span class="type">GstColourToneMode</span></td>
 <td class="property_name"><a class="link" href="GstPhotography.html#GstPhotography--colour-tone-mode" title="The “colour-tone-mode” property">colour-tone-mode</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
@@ -455,7 +455,7 @@
 <a name="GstPhotography.prerequisites"></a><h2>Prerequisites</h2>
 <p>
 GstPhotography requires
- <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstImplementsInterface.html">GstImplementsInterface</a> and  <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>.</p>
+ GstImplementsInterface and  <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>.</p>
 </div>
 <div class="refsect1">
 <a name="GstPhotography.description"></a><h2>Description</h2>
@@ -1467,7 +1467,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstPhotography--colour-tone-mode"></a><h3>The <code class="literal">“colour-tone-mode”</code> property</h3>
-<pre class="programlisting">  “colour-tone-mode”         <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-bad/html/GstPhotography.html#GstColourToneMode"><span class="type">GstColourToneMode</span></a></pre>
+<pre class="programlisting">  “colour-tone-mode”         <span class="type">GstColourToneMode</span></pre>
 <p>Colour tone setting changes colour shading in the photo.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: GST_PHOTOGRAPHY_COLOUR_TONE_MODE_NORMAL</p>
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 9eb48b5..60c2f58 100644
--- a/docs/plugins/html/gst-plugins-bad-plugins-1.0.devhelp2
+++ b/docs/plugins/html/gst-plugins-bad-plugins-1.0.devhelp2
@@ -286,9 +286,9 @@
     <keyword type="" name="Element Pads" link="gst-plugins-bad-plugins-edgedetect.html#id-1.2.27.3.2.2"/>
     <keyword type="" name="Element Information" link="gst-plugins-bad-plugins-eglglessink.html#id-1.2.28.3.2.1"/>
     <keyword type="" name="Element Pads" link="gst-plugins-bad-plugins-eglglessink.html#id-1.2.28.3.2.2"/>
-    <keyword type="" name="Element Information" link="gst-plugins-bad-plugins-faac.html#id-1.2.29.8.2.1"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-bad-plugins-faac.html#id-1.2.29.8.2.2"/>
-    <keyword type="struct" name="struct GstFaac" link="gst-plugins-bad-plugins-faac.html#GstFaac-struct"/>
+    <keyword type="" name="Element Information" link="gst-plugins-bad-plugins-faac.html#id-1.2.29.6.2.1"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-bad-plugins-faac.html#id-1.2.29.6.2.2"/>
+    <keyword type="struct" name="struct GstFaac" link="gst-plugins-bad-plugins-faac.html#GstFaac"/>
     <keyword type="property" name="The “bitrate” property" link="gst-plugins-bad-plugins-faac.html#GstFaac--bitrate"/>
     <keyword type="property" name="The “midside” property" link="gst-plugins-bad-plugins-faac.html#GstFaac--midside"/>
     <keyword type="property" name="The “outputformat” property" link="gst-plugins-bad-plugins-faac.html#GstFaac--outputformat"/>
@@ -493,13 +493,13 @@
     <keyword type="property" name="The “use-copyrect” property" link="gst-plugins-bad-plugins-rfbsrc.html#GstRfbSrc--use-copyrect"/>
     <keyword type="property" name="The “shared” property" link="gst-plugins-bad-plugins-rfbsrc.html#GstRfbSrc--shared"/>
     <keyword type="property" name="The “view-only” property" link="gst-plugins-bad-plugins-rfbsrc.html#GstRfbSrc--view-only"/>
-    <keyword type="" name="Element Information" link="gst-plugins-bad-plugins-rtmpsink.html#id-1.2.56.6.2.1"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-bad-plugins-rtmpsink.html#id-1.2.56.6.2.2"/>
-    <keyword type="struct" name="struct GstRTMPSink" link="gst-plugins-bad-plugins-rtmpsink.html#GstRTMPSink"/>
+    <keyword type="" name="Element Information" link="gst-plugins-bad-plugins-rtmpsink.html#id-1.2.56.8.2.1"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-bad-plugins-rtmpsink.html#id-1.2.56.8.2.2"/>
+    <keyword type="struct" name="struct GstRTMPSink" link="gst-plugins-bad-plugins-rtmpsink.html#GstRTMPSink-struct"/>
     <keyword type="property" name="The “location” property" link="gst-plugins-bad-plugins-rtmpsink.html#GstRTMPSink--location"/>
-    <keyword type="" name="Element Information" link="gst-plugins-bad-plugins-rtmpsrc.html#id-1.2.57.6.2.1"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-bad-plugins-rtmpsrc.html#id-1.2.57.6.2.2"/>
-    <keyword type="struct" name="struct GstRTMPSrc" link="gst-plugins-bad-plugins-rtmpsrc.html#GstRTMPSrc"/>
+    <keyword type="" name="Element Information" link="gst-plugins-bad-plugins-rtmpsrc.html#id-1.2.57.8.2.1"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-bad-plugins-rtmpsrc.html#id-1.2.57.8.2.2"/>
+    <keyword type="struct" name="struct GstRTMPSrc" link="gst-plugins-bad-plugins-rtmpsrc.html#GstRTMPSrc-struct"/>
     <keyword type="property" name="The “location” property" link="gst-plugins-bad-plugins-rtmpsrc.html#GstRTMPSrc--location"/>
     <keyword type="" name="Element Information" link="gst-plugins-bad-plugins-shmsink.html#id-1.2.58.8.2.1"/>
     <keyword type="" name="Element Pads" link="gst-plugins-bad-plugins-shmsink.html#id-1.2.58.8.2.2"/>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-compositor.html b/docs/plugins/html/gst-plugins-bad-plugins-compositor.html
index 46d76aa..59cae03 100644
--- a/docs/plugins/html/gst-plugins-bad-plugins-compositor.html
+++ b/docs/plugins/html/gst-plugins-bad-plugins-compositor.html
@@ -54,12 +54,12 @@
     <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>   <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-bad-libs/html/gst-plugins-bad-libs-GstAggregator.html#GstAggregator">GstAggregator</a>
-            <span class="lineart">│</span>       <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-bad-libs/html/gst-plugins-bad-libs-GstVideoAggregator.html#GstVideoAggregator">GstVideoAggregator</a>
+            <span class="lineart">│</span>   <span class="lineart">╰──</span> GstAggregator
+            <span class="lineart">│</span>       <span class="lineart">╰──</span> GstVideoAggregator
             <span class="lineart">│</span>           <span class="lineart">╰──</span> GstCompositor
             <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html">GstPad</a>
-                <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-bad-libs/html/gst-plugins-bad-libs-GstAggregatorPad.html#GstAggregatorPad">GstAggregatorPad</a>
-                    <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-bad-libs/html/gst-plugins-bad-libs-GstVideoAggregatorPad.html#GstVideoAggregatorPad">GstVideoAggregatorPad</a>
+                <span class="lineart">╰──</span> GstAggregatorPad
+                    <span class="lineart">╰──</span> GstVideoAggregatorPad
                         <span class="lineart">╰──</span> GstCompositorPad
 </pre>
 </div>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-faac.html b/docs/plugins/html/gst-plugins-bad-plugins-faac.html
index 7106a4c..4d0098e 100644
--- a/docs/plugins/html/gst-plugins-bad-plugins-faac.html
+++ b/docs/plugins/html/gst-plugins-bad-plugins-faac.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-faac.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
-                  <a href="#gst-plugins-bad-plugins-faac.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-bad-plugins-faac.description" class="shortcut">Description</a></span><span id="nav_interfaces">  <span class="dim">|</span> 
                   <a href="#gst-plugins-bad-plugins-faac.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties">  <span class="dim">|</span> 
                   <a href="#gst-plugins-bad-plugins-faac.properties" class="shortcut">Properties</a></span>
 </td>
@@ -86,7 +85,7 @@
 </tbody>
 </table></div>
 </div>
-<a name="GstFaac"></a><div class="refsect1">
+<div class="refsect1">
 <a name="gst-plugins-bad-plugins-faac.other"></a><h2>Types and Values</h2>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
@@ -95,21 +94,11 @@
 </colgroup>
 <tbody><tr>
 <td class="datatype_keyword">struct</td>
-<td class="function_name"><a class="link" href="gst-plugins-bad-plugins-faac.html#GstFaac-struct" title="struct GstFaac">GstFaac</a></td>
+<td class="function_name"><a class="link" href="gst-plugins-bad-plugins-faac.html#GstFaac" title="struct GstFaac">GstFaac</a></td>
 </tr></tbody>
 </table></div>
 </div>
 <div class="refsect1">
-<a name="gst-plugins-bad-plugins-faac.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/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder">GstAudioEncoder</a>
-                    <span class="lineart">╰──</span> GstFaac
-</pre>
-</div>
-<div class="refsect1">
 <a name="gst-plugins-bad-plugins-faac.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
 <p>
 GstFaac implements
@@ -120,7 +109,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.29.8.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.29.6.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -146,7 +135,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.29.8.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.29.6.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -210,8 +199,33 @@
 <div class="refsect1">
 <a name="gst-plugins-bad-plugins-faac.other_details"></a><h2>Types and Values</h2>
 <div class="refsect2">
-<a name="GstFaac-struct"></a><h3>struct GstFaac</h3>
-<pre class="programlisting">struct GstFaac;</pre>
+<a name="GstFaac"></a><h3>struct GstFaac</h3>
+<pre class="programlisting">struct GstFaac {
+  GstAudioEncoder element;
+
+  /* input format */
+  gint format;
+  /* input frame size */
+  gint samples;
+  /* required output buffer size */
+  gint bytes;
+
+  /* negotiated */
+  gint mpegversion, outputformat;
+
+  /* properties */
+  gint bitrate,
+       profile,
+       quality,
+       brtype,
+       shortctl;
+  gboolean tns,
+           midside;
+
+  /* FAAC object */
+  faacEncHandle handle;
+};
+</pre>
 <p>
 </p>
 </div>
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 400f8f5..b8104a1 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.4.3</td>
+<td>1.4.4</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 f9c6ed5..b04ed1c 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.4.3</td>
+<td>1.4.4</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 9fdccd3..e5510f8 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.4.3</td>
+<td>1.4.4</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 590bcb3..64cc3f5 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.4.3</td>
+<td>1.4.4</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 95549d9..c03c708 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.4.3</td>
+<td>1.4.4</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 b12c68e..df09548 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.4.3</td>
+<td>1.4.4</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 e3e378f..d122ce9 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.4.3</td>
+<td>1.4.4</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 b7136e3..47deac1 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.4.3</td>
+<td>1.4.4</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 4e3e2af..fde4049 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.4.3</td>
+<td>1.4.4</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 ec722c7..f331d7c 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.4.3</td>
+<td>1.4.4</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 d8103eb..320b451 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.4.3</td>
+<td>1.4.4</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 d965e97..3e1efad 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.4.3</td>
+<td>1.4.4</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 1089385..ad75ea8 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.4.3</td>
+<td>1.4.4</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 98e43b1..b45f112 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.4.3</td>
+<td>1.4.4</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 79f7191..59a4ede 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.4.3</td>
+<td>1.4.4</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 3a8cd32..36f2ddd 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.4.3</td>
+<td>1.4.4</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 e782fb0..5cedd12 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.4.3</td>
+<td>1.4.4</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 4cbd345..addb246 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.4.3</td>
+<td>1.4.4</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 0995e5c..ea9c452 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.4.3</td>
+<td>1.4.4</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 943a4e7..8df95a3 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.4.3</td>
+<td>1.4.4</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 c14aab8..42e2af5 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.4.3</td>
+<td>1.4.4</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 891bf64..fdd0829 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.4.3</td>
+<td>1.4.4</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 90dc2b8..d58b06c 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.4.3</td>
+<td>1.4.4</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 33cbaf5..5469d5c 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.4.3</td>
+<td>1.4.4</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 82cc540..0f1de15 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.4.3</td>
+<td>1.4.4</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 595c4ae..a58c1e7 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.4.3</td>
+<td>1.4.4</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 315a1a7..64e067b 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.4.3</td>
+<td>1.4.4</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 4f5419c..968f4a0 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.4.3</td>
+<td>1.4.4</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-opencv.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-opencv.html
index 7b6f14e..ac0bffd 100644
--- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-opencv.html
+++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-opencv.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.4.3</td>
+<td>1.4.4</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 aa25338..5208f55 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.4.3</td>
+<td>1.4.4</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 ae99144..78b06b9 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.4.3</td>
+<td>1.4.4</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 bb1545b..c45802b 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.4.3</td>
+<td>1.4.4</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 75708dd..385894d 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.3.0.1</td>
+<td>1.4.4</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -50,7 +50,7 @@
 </tr>
 <tr>
 <td><p><span class="term">package</span></p></td>
-<td>GStreamer Bad Plug-ins git</td>
+<td>GStreamer Bad Plug-ins source release</td>
 </tr>
 <tr>
 <td><p><span class="term">origin</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 6989ecc..03d7bce 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.4.3</td>
+<td>1.4.4</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 60faa3e..f21d274 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.4.3</td>
+<td>1.4.4</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 fdcfb95..0edc409 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.4.3</td>
+<td>1.4.4</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 59dbe48..8066768 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.4.3</td>
+<td>1.4.4</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 38261a2..e479793 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.4.3</td>
+<td>1.4.4</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 e0cde11..dce5593 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.4.3</td>
+<td>1.4.4</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 c37f3a7..12ea014 100644
--- a/docs/plugins/html/gst-plugins-bad-plugins-plugin-zbar.html
+++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-zbar.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.4.3</td>
+<td>1.4.4</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-rtmpsink.html b/docs/plugins/html/gst-plugins-bad-plugins-rtmpsink.html
index 1b19795..664db8a 100644
--- a/docs/plugins/html/gst-plugins-bad-plugins-rtmpsink.html
+++ b/docs/plugins/html/gst-plugins-bad-plugins-rtmpsink.html
@@ -15,7 +15,8 @@
 <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-rtmpsink.description" class="shortcut">Description</a></span><span id="nav_interfaces">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-bad-plugins-rtmpsink.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-bad-plugins-rtmpsink.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces">  <span class="dim">|</span> 
                   <a href="#gst-plugins-bad-plugins-rtmpsink.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties">  <span class="dim">|</span> 
                   <a href="#gst-plugins-bad-plugins-rtmpsink.properties" class="shortcut">Properties</a></span>
 </td>
@@ -49,7 +50,7 @@
 </tr></tbody>
 </table></div>
 </div>
-<div class="refsect1">
+<a name="GstRTMPSink"></a><div class="refsect1">
 <a name="gst-plugins-bad-plugins-rtmpsink.other"></a><h2>Types and Values</h2>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
@@ -58,11 +59,21 @@
 </colgroup>
 <tbody><tr>
 <td class="datatype_keyword">struct</td>
-<td class="function_name"><a class="link" href="gst-plugins-bad-plugins-rtmpsink.html#GstRTMPSink" title="struct GstRTMPSink">GstRTMPSink</a></td>
+<td class="function_name"><a class="link" href="gst-plugins-bad-plugins-rtmpsink.html#GstRTMPSink-struct" title="struct GstRTMPSink">GstRTMPSink</a></td>
 </tr></tbody>
 </table></div>
 </div>
 <div class="refsect1">
+<a name="gst-plugins-bad-plugins-rtmpsink.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/GstBaseSink.html">GstBaseSink</a>
+                    <span class="lineart">╰──</span> GstRTMPSink
+</pre>
+</div>
+<div class="refsect1">
 <a name="gst-plugins-bad-plugins-rtmpsink.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
 <p>
 GstRTMPSink implements
@@ -73,7 +84,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.56.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.56.8.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -99,7 +110,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.56.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.56.8.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -135,11 +146,8 @@
 <div class="refsect1">
 <a name="gst-plugins-bad-plugins-rtmpsink.other_details"></a><h2>Types and Values</h2>
 <div class="refsect2">
-<a name="GstRTMPSink"></a><h3>struct GstRTMPSink</h3>
-<pre class="programlisting">struct GstRTMPSink {
-  GstBaseSink parent;
-};
-</pre>
+<a name="GstRTMPSink-struct"></a><h3>struct GstRTMPSink</h3>
+<pre class="programlisting">struct GstRTMPSink;</pre>
 <p>
 </p>
 </div>
diff --git a/docs/plugins/html/gst-plugins-bad-plugins-rtmpsrc.html b/docs/plugins/html/gst-plugins-bad-plugins-rtmpsrc.html
index 251433a..51a37a7 100644
--- a/docs/plugins/html/gst-plugins-bad-plugins-rtmpsrc.html
+++ b/docs/plugins/html/gst-plugins-bad-plugins-rtmpsrc.html
@@ -15,7 +15,8 @@
 <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-rtmpsrc.description" class="shortcut">Description</a></span><span id="nav_interfaces">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-bad-plugins-rtmpsrc.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-bad-plugins-rtmpsrc.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces">  <span class="dim">|</span> 
                   <a href="#gst-plugins-bad-plugins-rtmpsrc.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties">  <span class="dim">|</span> 
                   <a href="#gst-plugins-bad-plugins-rtmpsrc.properties" class="shortcut">Properties</a></span>
 </td>
@@ -49,7 +50,7 @@
 </tr></tbody>
 </table></div>
 </div>
-<div class="refsect1">
+<a name="GstRTMPSrc"></a><div class="refsect1">
 <a name="gst-plugins-bad-plugins-rtmpsrc.other"></a><h2>Types and Values</h2>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
@@ -58,11 +59,22 @@
 </colgroup>
 <tbody><tr>
 <td class="datatype_keyword">struct</td>
-<td class="function_name"><a class="link" href="gst-plugins-bad-plugins-rtmpsrc.html#GstRTMPSrc" title="struct GstRTMPSrc">GstRTMPSrc</a></td>
+<td class="function_name"><a class="link" href="gst-plugins-bad-plugins-rtmpsrc.html#GstRTMPSrc-struct" title="struct GstRTMPSrc">GstRTMPSrc</a></td>
 </tr></tbody>
 </table></div>
 </div>
 <div class="refsect1">
+<a name="gst-plugins-bad-plugins-rtmpsrc.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/GstBaseSrc.html">GstBaseSrc</a>
+                    <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstPushSrc.html">GstPushSrc</a>
+                        <span class="lineart">╰──</span> GstRTMPSrc
+</pre>
+</div>
+<div class="refsect1">
 <a name="gst-plugins-bad-plugins-rtmpsrc.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
 <p>
 GstRTMPSrc implements
@@ -73,7 +85,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.57.6.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">
@@ -99,7 +111,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.57.6.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">
@@ -135,11 +147,8 @@
 <div class="refsect1">
 <a name="gst-plugins-bad-plugins-rtmpsrc.other_details"></a><h2>Types and Values</h2>
 <div class="refsect2">
-<a name="GstRTMPSrc"></a><h3>struct GstRTMPSrc</h3>
-<pre class="programlisting">struct GstRTMPSrc {
-  GstPushSrc parent;
-};
-</pre>
+<a name="GstRTMPSrc-struct"></a><h3>struct GstRTMPSrc</h3>
+<pre class="programlisting">struct GstRTMPSrc;</pre>
 <p>
 </p>
 </div>
diff --git a/docs/plugins/html/index.html b/docs/plugins/html/index.html
index 704b2d2..236f396 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.4.3)
+      for GStreamer Bad Plugins 1.0 (1.4.4)
       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 b16f487..97c5d29 100644
--- a/docs/plugins/html/index.sgml
+++ b/docs/plugins/html/index.sgml
@@ -314,14 +314,12 @@
 <ANCHOR id="gst-plugins-bad-plugins-eglglessink.other_details" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-eglglessink.html#gst-plugins-bad-plugins-eglglessink.other_details">
 <ANCHOR id="gst-plugins-bad-plugins-faac" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-faac.html">
 <ANCHOR id="gst-plugins-bad-plugins-faac.properties" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-faac.html#gst-plugins-bad-plugins-faac.properties">
-<ANCHOR id="GstFaac" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-faac.html#GstFaac">
 <ANCHOR id="gst-plugins-bad-plugins-faac.other" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-faac.html#gst-plugins-bad-plugins-faac.other">
-<ANCHOR id="gst-plugins-bad-plugins-faac.object-hierarchy" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-faac.html#gst-plugins-bad-plugins-faac.object-hierarchy">
 <ANCHOR id="gst-plugins-bad-plugins-faac.implemented-interfaces" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-faac.html#gst-plugins-bad-plugins-faac.implemented-interfaces">
 <ANCHOR id="gst-plugins-bad-plugins-faac.description" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-faac.html#gst-plugins-bad-plugins-faac.description">
 <ANCHOR id="gst-plugins-bad-plugins-faac.functions_details" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-faac.html#gst-plugins-bad-plugins-faac.functions_details">
 <ANCHOR id="gst-plugins-bad-plugins-faac.other_details" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-faac.html#gst-plugins-bad-plugins-faac.other_details">
-<ANCHOR id="GstFaac-struct" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-faac.html#GstFaac-struct">
+<ANCHOR id="GstFaac" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-faac.html#GstFaac">
 <ANCHOR id="gst-plugins-bad-plugins-faac.property-details" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-faac.html#gst-plugins-bad-plugins-faac.property-details">
 <ANCHOR id="GstFaac--bitrate" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-faac.html#GstFaac--bitrate">
 <ANCHOR id="GstFaac--midside" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-faac.html#GstFaac--midside">
@@ -675,22 +673,26 @@
 <ANCHOR id="GstRfbSrc--view-only" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-rfbsrc.html#GstRfbSrc--view-only">
 <ANCHOR id="gst-plugins-bad-plugins-rtmpsink" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-rtmpsink.html">
 <ANCHOR id="gst-plugins-bad-plugins-rtmpsink.properties" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-rtmpsink.html#gst-plugins-bad-plugins-rtmpsink.properties">
+<ANCHOR id="GstRTMPSink" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-rtmpsink.html#GstRTMPSink">
 <ANCHOR id="gst-plugins-bad-plugins-rtmpsink.other" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-rtmpsink.html#gst-plugins-bad-plugins-rtmpsink.other">
+<ANCHOR id="gst-plugins-bad-plugins-rtmpsink.object-hierarchy" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-rtmpsink.html#gst-plugins-bad-plugins-rtmpsink.object-hierarchy">
 <ANCHOR id="gst-plugins-bad-plugins-rtmpsink.implemented-interfaces" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-rtmpsink.html#gst-plugins-bad-plugins-rtmpsink.implemented-interfaces">
 <ANCHOR id="gst-plugins-bad-plugins-rtmpsink.description" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-rtmpsink.html#gst-plugins-bad-plugins-rtmpsink.description">
 <ANCHOR id="gst-plugins-bad-plugins-rtmpsink.functions_details" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-rtmpsink.html#gst-plugins-bad-plugins-rtmpsink.functions_details">
 <ANCHOR id="gst-plugins-bad-plugins-rtmpsink.other_details" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-rtmpsink.html#gst-plugins-bad-plugins-rtmpsink.other_details">
-<ANCHOR id="GstRTMPSink" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-rtmpsink.html#GstRTMPSink">
+<ANCHOR id="GstRTMPSink-struct" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-rtmpsink.html#GstRTMPSink-struct">
 <ANCHOR id="gst-plugins-bad-plugins-rtmpsink.property-details" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-rtmpsink.html#gst-plugins-bad-plugins-rtmpsink.property-details">
 <ANCHOR id="GstRTMPSink--location" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-rtmpsink.html#GstRTMPSink--location">
 <ANCHOR id="gst-plugins-bad-plugins-rtmpsrc" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-rtmpsrc.html">
 <ANCHOR id="gst-plugins-bad-plugins-rtmpsrc.properties" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-rtmpsrc.html#gst-plugins-bad-plugins-rtmpsrc.properties">
+<ANCHOR id="GstRTMPSrc" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-rtmpsrc.html#GstRTMPSrc">
 <ANCHOR id="gst-plugins-bad-plugins-rtmpsrc.other" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-rtmpsrc.html#gst-plugins-bad-plugins-rtmpsrc.other">
+<ANCHOR id="gst-plugins-bad-plugins-rtmpsrc.object-hierarchy" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-rtmpsrc.html#gst-plugins-bad-plugins-rtmpsrc.object-hierarchy">
 <ANCHOR id="gst-plugins-bad-plugins-rtmpsrc.implemented-interfaces" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-rtmpsrc.html#gst-plugins-bad-plugins-rtmpsrc.implemented-interfaces">
 <ANCHOR id="gst-plugins-bad-plugins-rtmpsrc.description" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-rtmpsrc.html#gst-plugins-bad-plugins-rtmpsrc.description">
 <ANCHOR id="gst-plugins-bad-plugins-rtmpsrc.functions_details" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-rtmpsrc.html#gst-plugins-bad-plugins-rtmpsrc.functions_details">
 <ANCHOR id="gst-plugins-bad-plugins-rtmpsrc.other_details" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-rtmpsrc.html#gst-plugins-bad-plugins-rtmpsrc.other_details">
-<ANCHOR id="GstRTMPSrc" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-rtmpsrc.html#GstRTMPSrc">
+<ANCHOR id="GstRTMPSrc-struct" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-rtmpsrc.html#GstRTMPSrc-struct">
 <ANCHOR id="gst-plugins-bad-plugins-rtmpsrc.property-details" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-rtmpsrc.html#gst-plugins-bad-plugins-rtmpsrc.property-details">
 <ANCHOR id="GstRTMPSrc--location" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-rtmpsrc.html#GstRTMPSrc--location">
 <ANCHOR id="gst-plugins-bad-plugins-shmsink" href="gst-plugins-bad-plugins-1.0/gst-plugins-bad-plugins-shmsink.html">
diff --git a/docs/plugins/inspect/plugin-accurip.xml b/docs/plugins/inspect/plugin-accurip.xml
index 3e29c55..79edfbb 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.4.3</version>
+  <version>1.4.4</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 6a8b578..ae261b6 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.4.3</version>
+  <version>1.4.4</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 ea441de..bcb236f 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.4.3</version>
+  <version>1.4.4</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 3c9f035..671d8d2 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.4.3</version>
+  <version>1.4.4</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 004952f..382ed63 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.4.3</version>
+  <version>1.4.4</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 7e65bfe..c08edd7 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.4.3</version>
+  <version>1.4.4</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 784441d..08ef55c 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.4.3</version>
+  <version>1.4.4</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 76c4509..dff8800 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.4.3</version>
+  <version>1.4.4</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 715ed75..7cf47ef 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.4.3</version>
+  <version>1.4.4</version>
   <license>GPL</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 3ce0293..91a61a0 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.4.3</version>
+  <version>1.4.4</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 dae5d90..fb2539d 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.4.3</version>
+  <version>1.4.4</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 8208752..ed123fd 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.4.3</version>
+  <version>1.4.4</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 7aab0d8..86c1452 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.4.3</version>
+  <version>1.4.4</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 5f078c5..4dd2268 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.4.3</version>
+  <version>1.4.4</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 d43eb5a..6ca39af 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.4.3</version>
+  <version>1.4.4</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 0401f6f..88ceb68 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.4.3</version>
+  <version>1.4.4</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 673d61f..ca5bde4 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.4.3</version>
+  <version>1.4.4</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 c376d19..2958ba8 100644
--- a/docs/plugins/inspect/plugin-dashdemux.xml
+++ b/docs/plugins/inspect/plugin-dashdemux.xml
@@ -3,7 +3,7 @@
   <description>DASH demuxer plugin</description>
   <filename>../../ext/dash/.libs/libgstdashdemux.so</filename>
   <basename>libgstdashdemux.so</basename>
-  <version>1.4.3</version>
+  <version>1.4.4</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins</package>
diff --git a/docs/plugins/inspect/plugin-dataurisrc.xml b/docs/plugins/inspect/plugin-dataurisrc.xml
index 1577526..4087190 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.4.3</version>
+  <version>1.4.4</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 31d9a5d..ead33c2 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.4.3</version>
+  <version>1.4.4</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 b419d46..c09852e 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.4.3</version>
+  <version>1.4.4</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 e3892ee..d19b743 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.4.3</version>
+  <version>1.4.4</version>
   <license>LGPL</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 4279a0c..4896e05 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.4.3</version>
+  <version>1.4.4</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 43fd022..ce2433b 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.4.3</version>
+  <version>1.4.4</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 79d8faf..fb8c5dd 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.4.3</version>
+  <version>1.4.4</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 f5f04dc..e2a32de 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.4.3</version>
+  <version>1.4.4</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 8925ec0..5886ea4 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.4.3</version>
+  <version>1.4.4</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 ae2075e..cc7f383 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.4.3</version>
+  <version>1.4.4</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 c4082cc..511bec5 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.4.3</version>
+  <version>1.4.4</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 3b9b88a..5b3574c 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.4.3</version>
+  <version>1.4.4</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 6f16224..4acb079 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.4.3</version>
+  <version>1.4.4</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 0e674c1..567e630 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.4.3</version>
+  <version>1.4.4</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 336c83b..a312ae1 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.4.3</version>
+  <version>1.4.4</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 6377b8f..97e820b 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.4.3</version>
+  <version>1.4.4</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 33b58b4..b512d90 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.4.3</version>
+  <version>1.4.4</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 5cb194b..f908189 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.4.3</version>
+  <version>1.4.4</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 40162fe..e044522 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.4.3</version>
+  <version>1.4.4</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 b174613..843c8f4 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.4.3</version>
+  <version>1.4.4</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 f235c6f..de69473 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.4.3</version>
+  <version>1.4.4</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 4e14f43..e84b041 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.4.3</version>
+  <version>1.4.4</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 c6026bd..46d3127 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.4.3</version>
+  <version>1.4.4</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 bdc7284..58df0e7 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.4.3</version>
+  <version>1.4.4</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 34c2279..2ac96a6 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.4.3</version>
+  <version>1.4.4</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 4fd0c4e..215e559 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.4.3</version>
+  <version>1.4.4</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 3957353..3f35569 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.4.3</version>
+  <version>1.4.4</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 eaf514f..9dfc344 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.4.3</version>
+  <version>1.4.4</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 bf0b16a..b3fd766 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.4.3</version>
+  <version>1.4.4</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 a0d574a..5b61a47 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.4.3</version>
+  <version>1.4.4</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 16ecc3b..adf5659 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.4.3</version>
+  <version>1.4.4</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 f7e4fb5..2d923d9 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.4.3</version>
+  <version>1.4.4</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-liveadder.xml b/docs/plugins/inspect/plugin-liveadder.xml
index 1cd4924..64a5da9 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.4.3</version>
+  <version>1.4.4</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 05ce93c..6b5123f 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.4.3</version>
+  <version>1.4.4</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 a07b40f..6cb03bb 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.4.3</version>
+  <version>1.4.4</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 7fb2445..dafdd10 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.4.3</version>
+  <version>1.4.4</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 2015c03..0b84bfa 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.4.3</version>
+  <version>1.4.4</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 edac8ce..51fd071 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.4.3</version>
+  <version>1.4.4</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 fca3243..e88c13a 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.4.3</version>
+  <version>1.4.4</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 c050c95..d28b270 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.4.3</version>
+  <version>1.4.4</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 0392520..82d3f89 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.4.3</version>
+  <version>1.4.4</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 e98c0d1..9904444 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.4.3</version>
+  <version>1.4.4</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-mpg123.xml b/docs/plugins/inspect/plugin-mpg123.xml
index 24b3b2d..04515ce 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.4.3</version>
+  <version>1.4.4</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 733e810..9634309 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.4.3</version>
+  <version>1.4.4</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 db07bbc..3c5790e 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.4.3</version>
+  <version>1.4.4</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 c47557f..ff985d6 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.4.3</version>
+  <version>1.4.4</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 e857596..233a22a 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.4.3</version>
+  <version>1.4.4</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-opencv.xml b/docs/plugins/inspect/plugin-opencv.xml
index f0e7f86..927fe9a 100644
--- a/docs/plugins/inspect/plugin-opencv.xml
+++ b/docs/plugins/inspect/plugin-opencv.xml
@@ -3,7 +3,7 @@
   <description>GStreamer OpenCV Plugins</description>
   <filename>../../ext/opencv/.libs/libgstopencv.so</filename>
   <basename>libgstopencv.so</basename>
-  <version>1.4.3</version>
+  <version>1.4.4</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 bb8c4b4..4874992 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.4.3</version>
+  <version>1.4.4</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 c1bc8bb..08696cb 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.4.3</version>
+  <version>1.4.4</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-openjpeg.xml b/docs/plugins/inspect/plugin-openjpeg.xml
index c5eca6b..78ba51f 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.4.3</version>
+  <version>1.4.4</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 4abd8d9..3902399 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.4.3</version>
+  <version>1.4.4</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 bf851aa..3dda8d0 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.4.3</version>
+  <version>1.4.4</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 fbe46d8..8205c01 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.4.3</version>
+  <version>1.4.4</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-rawparse.xml b/docs/plugins/inspect/plugin-rawparse.xml
index 3eb81b2..79a7d45 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.4.3</version>
+  <version>1.4.4</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 c507ede..6407308 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.4.3</version>
+  <version>1.4.4</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 f615998..1f5be42 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.4.3</version>
+  <version>1.4.4</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 e78c515..03df258 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.4.3</version>
+  <version>1.4.4</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 457a8ec..3d0c40e 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.4.3</version>
+  <version>1.4.4</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 092474f..e4b15b8 100644
--- a/docs/plugins/inspect/plugin-rtmp.xml
+++ b/docs/plugins/inspect/plugin-rtmp.xml
@@ -3,10 +3,10 @@
   <description>RTMP source and sink</description>
   <filename>../../ext/rtmp/.libs/libgstrtmp.so</filename>
   <basename>libgstrtmp.so</basename>
-  <version>1.3.0.1</version>
+  <version>1.4.4</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
-  <package>GStreamer Bad Plug-ins git</package>
+  <package>GStreamer Bad Plug-ins source release</package>
   <origin>Unknown package origin</origin>
   <elements>
     <element>
diff --git a/docs/plugins/inspect/plugin-sbc.xml b/docs/plugins/inspect/plugin-sbc.xml
index 5e76839..8430ad8 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.4.3</version>
+  <version>1.4.4</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 e58ed9c..090bc8d 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.4.3</version>
+  <version>1.4.4</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 038d730..93f0a46 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.4.3</version>
+  <version>1.4.4</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 df81603..122464c 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.4.3</version>
+  <version>1.4.4</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 5f49608..db4cd79 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.4.3</version>
+  <version>1.4.4</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 1c0b5d2..847ac2a 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.4.3</version>
+  <version>1.4.4</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 473009f..c00e1f1 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.4.3</version>
+  <version>1.4.4</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 f6c3961..7ec539b 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.4.3</version>
+  <version>1.4.4</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 aa8b169..65bff8d 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.4.3</version>
+  <version>1.4.4</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 e5cb0f2..adf1292 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.4.3</version>
+  <version>1.4.4</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 4a7af61..9e5a482 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.4.3</version>
+  <version>1.4.4</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 7a4a911..7676502 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.4.3</version>
+  <version>1.4.4</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 b563cae..804ea57 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.4.3</version>
+  <version>1.4.4</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 4a200fe..b2511bd 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.4.3</version>
+  <version>1.4.4</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 4f489db..7122033 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.4.3</version>
+  <version>1.4.4</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-vdpau.xml b/docs/plugins/inspect/plugin-vdpau.xml
deleted file mode 100644
index cc2b450..0000000
--- a/docs/plugins/inspect/plugin-vdpau.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<plugin>
-  <name>vdpau</name>
-  <description>Various elements utilizing VDPAU</description>
-  <filename>../../sys/vdpau/.libs/libgstvdpau.so</filename>
-  <basename>libgstvdpau.so</basename>
-  <version>1.4.3</version>
-  <license>LGPL</license>
-  <source>gst-plugins-bad</source>
-  <package>GStreamer</package>
-  <origin>http://gstreamer.net/</origin>
-  <elements>
-    <element>
-      <name>vdpaumpegdec</name>
-      <longname>VDPAU Mpeg Decoder</longname>
-      <class>Decoder</class>
-      <description>Decode mpeg stream with vdpau</description>
-      <author>Carl-Anton Ingmarsson &lt;ca.ingmarsson@gmail.com&gt;</author>
-      <pads>
-        <caps>
-          <name>sink</name>
-          <direction>sink</direction>
-          <presence>always</presence>
-          <details>video/mpeg, mpegversion=(int)[ 1, 2 ], systemstream=(boolean)false</details>
-        </caps>
-        <caps>
-          <name>src</name>
-          <direction>source</direction>
-          <presence>always</presence>
-          <details>video/x-raw(memory:VdpVideoSurface), format=(string){ YV12 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw, format=(string){ YV12 }, 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-videofiltersbad.xml b/docs/plugins/inspect/plugin-videofiltersbad.xml
index b4cf697..f12cde2 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.4.3</version>
+  <version>1.4.4</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 10af021..4fa94d0 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.4.3</version>
+  <version>1.4.4</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 f83966b..7911025 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.4.3</version>
+  <version>1.4.4</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 e886adb..debed84 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.4.3</version>
+  <version>1.4.4</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 f946466..db0f33e 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.4.3</version>
+  <version>1.4.4</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-voamrwbenc.xml b/docs/plugins/inspect/plugin-voamrwbenc.xml
index ab53de3..24953e3 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.4.3</version>
+  <version>1.4.4</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 13291ca..96ed4f7 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.4.3</version>
+  <version>1.4.4</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 c49490d..970ddda 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.4.3</version>
+  <version>1.4.4</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 cde3a2f..c99a3da 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.4.3</version>
+  <version>1.4.4</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 d411e93..f5a9f0c 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.4.3</version>
+  <version>1.4.4</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 50437c6..b179b57 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.4.3</version>
+  <version>1.4.4</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 96e37fd..d376d7c 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.4.3</version>
+  <version>1.4.4</version>
   <license>LGPL</license>
   <source>gst-plugins-bad</source>
   <package>GStreamer Bad Plug-ins source release</package>
diff --git a/ext/curl/gstcurlsmtpsink.c b/ext/curl/gstcurlsmtpsink.c
index 4409ceb..c28213b 100644
--- a/ext/curl/gstcurlsmtpsink.c
+++ b/ext/curl/gstcurlsmtpsink.c
@@ -725,6 +725,13 @@
     return FALSE;
   }
 
+  res = curl_easy_setopt (bcsink->curl, CURLOPT_UPLOAD, 1L);
+  if (res != CURLE_OK) {
+    bcsink->error = g_strdup_printf ("failed to prepare for upload: %s",
+        curl_easy_strerror (res));
+    return FALSE;
+  }
+
   parent_class = GST_CURL_TLS_SINK_GET_CLASS (sink);
 
   if (sink->use_ssl) {
diff --git a/ext/dash/gstdashdemux.c b/ext/dash/gstdashdemux.c
index cb63c67..3f5c17c 100644
--- a/ext/dash/gstdashdemux.c
+++ b/ext/dash/gstdashdemux.c
@@ -605,6 +605,7 @@
             stream->last_ret = GST_FLOW_OK;
             stream->restart_download = TRUE;
             stream->need_header = TRUE;
+            stream->discont = TRUE;
             GST_DEBUG_OBJECT (stream->pad, "Restarting download loop");
             gst_task_start (stream->download_task);
           }
@@ -704,6 +705,7 @@
     stream = g_new0 (GstDashDemuxStream, 1);
     stream->demux = demux;
     stream->active_stream = active_stream;
+    stream->discont = FALSE;
     caps = gst_dash_demux_get_input_caps (demux, active_stream);
 
     g_rec_mutex_init (&stream->download_task_lock);
@@ -1942,6 +1944,11 @@
     GST_BUFFER_PTS (buffer) = GST_CLOCK_TIME_NONE;
   }
 
+  if (stream->discont) {
+    discont = TRUE;
+    stream->discont = FALSE;
+  }
+
   if (discont) {
     GST_DEBUG_OBJECT (stream->pad, "Marking fragment as discontinuous");
     GST_BUFFER_FLAG_SET (buffer, GST_BUFFER_FLAG_DISCONT);
@@ -2184,9 +2191,10 @@
   GstMediaFragmentInfo *fragment = &stream->current_fragment;
 
   if (G_UNLIKELY (stream->restart_download)) {
+    GstSegment segment;
     GstClockTime cur, ts;
     gint64 pos;
-    GstEvent *gap;
+    GstEvent *seg_event;
 
     GST_DEBUG_OBJECT (stream->pad,
         "Reactivating stream after to reconfigure event");
@@ -2206,14 +2214,18 @@
     GST_DEBUG_OBJECT (stream->pad, "Restarting stream at "
         "position %" GST_TIME_FORMAT, GST_TIME_ARGS (ts));
 
+    gst_segment_copy_into (&demux->segment, &segment);
     if (GST_CLOCK_TIME_IS_VALID (ts)) {
       gst_mpd_client_stream_seek (demux->client, stream->active_stream, ts);
 
       if (cur < ts) {
-        gap = gst_event_new_gap (cur, ts - cur);
-        gst_pad_push_event (stream->pad, gap);
+        segment.position = ts;
       }
     }
+    seg_event = gst_event_new_segment (&segment);
+    GST_DEBUG_OBJECT (stream->pad, "Sending restart segment: %"
+        GST_PTR_FORMAT, seg_event);
+    gst_pad_push_event (stream->pad, seg_event);
 
     stream->restart_download = FALSE;
   }
diff --git a/ext/dash/gstdashdemux.h b/ext/dash/gstdashdemux.h
index 4e3a3ed..0c0f799 100644
--- a/ext/dash/gstdashdemux.h
+++ b/ext/dash/gstdashdemux.h
@@ -73,6 +73,7 @@
 
   gboolean stream_eos;
   gboolean need_header;
+  gboolean discont;
 
   /* Download task */
   GMutex download_mutex;
diff --git a/ext/faad/gstfaad.c b/ext/faad/gstfaad.c
index e106da9..d9313d5 100644
--- a/ext/faad/gstfaad.c
+++ b/ext/faad/gstfaad.c
@@ -360,21 +360,18 @@
 wrong_length:
   {
     GST_DEBUG_OBJECT (faad, "codec_data less than 2 bytes long");
-    gst_object_unref (faad);
     gst_buffer_unmap (buf, &map);
     return FALSE;
   }
 open_failed:
   {
     GST_DEBUG_OBJECT (faad, "failed to create decoder");
-    gst_object_unref (faad);
     gst_buffer_unmap (buf, &map);
     return FALSE;
   }
 init_failed:
   {
     GST_DEBUG_OBJECT (faad, "faacDecInit2() failed");
-    gst_object_unref (faad);
     gst_buffer_unmap (buf, &map);
     return FALSE;
   }
diff --git a/ext/fluidsynth/gstfluiddec.c b/ext/fluidsynth/gstfluiddec.c
index 6b404af..124825b 100644
--- a/ext/fluidsynth/gstfluiddec.c
+++ b/ext/fluidsynth/gstfluiddec.c
@@ -322,6 +322,7 @@
 
       res = gst_pad_push_event (fluiddec->srcpad, gst_event_new_caps (caps));
       gst_caps_unref (caps);
+      gst_event_unref (event);
       break;
     }
     case GST_EVENT_SEGMENT:
@@ -396,6 +397,9 @@
 
   gst_buffer_map (buffer, &info, GST_MAP_READ);
 
+  if (info.size == 0)
+    goto done;
+
   event = info.data[0];
 
   switch (event & 0xf0) {
@@ -461,6 +465,9 @@
       break;
     }
   }
+
+done:
+
   gst_buffer_unmap (buffer, &info);
 }
 
@@ -557,10 +564,14 @@
           fluiddec->sf = fluid_synth_sfload (fluiddec->synth, filename, 1);
           if (fluiddec->sf != -1) {
             GST_DEBUG_OBJECT (fluiddec, "loaded soundfont file %s", filename);
+            g_free (filename);
+            g_dir_close (dir);
+            g_free (soundfont_path);
             goto done;
           }
           GST_DEBUG_OBJECT (fluiddec, "could not load soundfont file %s",
               filename);
+          g_free (filename);
         }
         g_dir_close (dir);
         g_free (soundfont_path);
diff --git a/ext/gl/gstglimagesink.c b/ext/gl/gstglimagesink.c
index e79d3b6..c7e9a7b 100644
--- a/ext/gl/gstglimagesink.c
+++ b/ext/gl/gstglimagesink.c
@@ -358,6 +358,11 @@
 
   g_mutex_clear (&glimage_sink->drawing_lock);
 
+  if (glimage_sink->other_context) {
+    gst_object_unref (glimage_sink->other_context);
+    glimage_sink->other_context = NULL;
+  }
+
   g_free (glimage_sink->display_name);
 
   GST_DEBUG ("finalized");
@@ -729,6 +734,7 @@
   glimage_sink->upload = gst_gl_upload_new (glimage_sink->context);
 
   gst_gl_upload_set_format (glimage_sink->upload, &vinfo);
+  glimage_sink->caps_change = TRUE;
 
   return TRUE;
 }
@@ -1020,6 +1026,9 @@
   g_signal_emit (gl_sink, gst_glimage_sink_signals[CLIENT_RESHAPE_SIGNAL], 0,
       width, height, &do_reshape);
 
+  gl_sink->window_width = width;
+  gl_sink->window_height = height;
+
   /* default reshape */
   if (!do_reshape) {
     if (gl_sink->keep_aspect_ratio) {
@@ -1083,6 +1092,14 @@
   /* opengl scene */
   GST_TRACE ("redrawing texture:%u", gl_sink->redisplay_texture);
 
+  if (gl_sink->caps_change) {
+    GST_GLIMAGE_SINK_UNLOCK (gl_sink);
+    gst_glimage_sink_on_resize (gl_sink, gl_sink->window_width,
+        gl_sink->window_height);
+    GST_GLIMAGE_SINK_LOCK (gl_sink);
+    gl_sink->caps_change = FALSE;
+  }
+
   /* make sure that the environnement is clean */
   gst_gl_context_clear_shader (gl_sink->context);
 
diff --git a/ext/gl/gstglimagesink.h b/ext/gl/gstglimagesink.h
index efa557b..25e6a13 100644
--- a/ext/gl/gstglimagesink.h
+++ b/ext/gl/gstglimagesink.h
@@ -78,6 +78,10 @@
     GstBuffer *stored_buffer;
     GLuint redisplay_texture;
 
+    gboolean caps_change;
+    guint window_width;
+    guint window_height;
+
 #if GST_GL_HAVE_GLES2
   GstGLShader *redisplay_shader;
   GLint redisplay_attr_position_loc;
diff --git a/ext/gl/gstglmixer.c b/ext/gl/gstglmixer.c
index 5aa1bea..6a2d9a4 100644
--- a/ext/gl/gstglmixer.c
+++ b/ext/gl/gstglmixer.c
@@ -99,6 +99,8 @@
     gst_object_unref (pad->upload);
     pad->upload = NULL;
   }
+
+  G_OBJECT_CLASS (gst_gl_mixer_pad_parent_class)->finalize (object);
 }
 
 static void
@@ -131,6 +133,8 @@
 
   mix->priv->negotiated = ret;
 
+  gst_caps_replace (&mix->out_caps, caps);
+
   return ret;
 }
 
@@ -827,32 +831,37 @@
   gboolean res = TRUE;
   guint array_index = 0;
   GstVideoFrame out_frame;
-  gboolean out_gl_wrapped = FALSE;
   GstElement *element = GST_ELEMENT (mix);
   GstVideoAggregator *vagg = GST_VIDEO_AGGREGATOR (mix);
   GstGLMixerClass *mix_class = GST_GL_MIXER_GET_CLASS (mix);
   GstGLMixerPrivate *priv = mix->priv;
+  gboolean to_download =
+      gst_caps_features_is_equal (GST_CAPS_FEATURES_MEMORY_SYSTEM_MEMORY,
+      gst_caps_get_features (mix->out_caps, 0));
+  GstMapFlags out_map_flags = GST_MAP_WRITE;
 
   GST_TRACE ("Processing buffers");
 
-  if (!gst_video_frame_map (&out_frame, &vagg->info, outbuf,
-          GST_MAP_WRITE | GST_MAP_GL)) {
+  to_download |= !gst_is_gl_memory (gst_buffer_peek_memory (outbuf, 0));
+
+  if (!to_download)
+    out_map_flags |= GST_MAP_GL;
+
+  if (!gst_video_frame_map (&out_frame, &vagg->info, outbuf, out_map_flags)) {
     return FALSE;
   }
 
-  if (gst_is_gl_memory (out_frame.map[0].memory)) {
+  if (!to_download) {
     out_tex = *(guint *) out_frame.data[0];
   } else {
     GST_INFO ("Output Buffer does not contain correct memory, "
         "attempting to wrap for download");
 
-    out_tex = mix->out_tex_id;;
-
     if (!mix->download)
       mix->download = gst_gl_download_new (mix->context);
 
     gst_gl_download_set_format (mix->download, &out_frame.info);
-    out_gl_wrapped = TRUE;
+    out_tex = mix->out_tex_id;
   }
 
   GST_OBJECT_LOCK (mix);
@@ -911,7 +920,7 @@
 
   g_mutex_unlock (&priv->gl_resource_lock);
 
-  if (out_gl_wrapped) {
+  if (to_download) {
     if (!gst_gl_download_perform_with_data (mix->download, out_tex,
             out_frame.data)) {
       GST_ELEMENT_ERROR (mix, RESOURCE, NOT_FOUND, ("%s",
diff --git a/ext/gl/gstglmixer.h b/ext/gl/gstglmixer.h
index a9e3a3c..d66ef30 100644
--- a/ext/gl/gstglmixer.h
+++ b/ext/gl/gstglmixer.h
@@ -69,6 +69,8 @@
   GstGLContext *context;
   GLuint fbo;
   GLuint depthbuffer;
+
+  GstCaps *out_caps;
 };
 
 struct _GstGLMixerClass
diff --git a/ext/gl/gstgltestsrc.c b/ext/gl/gstgltestsrc.c
index b64ebe1..e443df0 100644
--- a/ext/gl/gstgltestsrc.c
+++ b/ext/gl/gstgltestsrc.c
@@ -334,6 +334,8 @@
 
   gltestsrc->negotiated = TRUE;
 
+  gst_caps_replace (&gltestsrc->out_caps, caps);
+
   return TRUE;
 
 /* ERRORS */
@@ -449,14 +451,20 @@
 static GstFlowReturn
 gst_gl_test_src_fill (GstPushSrc * psrc, GstBuffer * buffer)
 {
-  GstGLTestSrc *src;
+  GstGLTestSrc *src = GST_GL_TEST_SRC (psrc);
   GstClockTime next_time;
   gint width, height;
   GstVideoFrame out_frame;
-  gboolean out_gl_wrapped = FALSE;
   guint out_tex;
+  gboolean to_download =
+      gst_caps_features_is_equal (GST_CAPS_FEATURES_MEMORY_SYSTEM_MEMORY,
+      gst_caps_get_features (src->out_caps, 0));
+  GstMapFlags out_map_flags = GST_MAP_WRITE;
 
-  src = GST_GL_TEST_SRC (psrc);
+  to_download |= !gst_is_gl_memory (gst_buffer_peek_memory (buffer, 0));
+
+  if (!to_download)
+    out_map_flags |= GST_MAP_GL;
 
   if (G_UNLIKELY (!src->negotiated || !src->context))
     goto not_negotiated;
@@ -476,29 +484,27 @@
       src->make_image = gst_gl_test_src_black;
   }
 
-  if (!gst_video_frame_map (&out_frame, &src->out_info, buffer,
-          GST_MAP_WRITE | GST_MAP_GL)) {
+  if (!gst_video_frame_map (&out_frame, &src->out_info, buffer, out_map_flags)) {
     return GST_FLOW_NOT_NEGOTIATED;
   }
 
-  if (gst_is_gl_memory (out_frame.map[0].memory)) {
+  if (!to_download) {
     out_tex = *(guint *) out_frame.data[0];
   } else {
     GST_INFO ("Output Buffer does not contain correct meta, "
         "attempting to wrap for download");
 
+    if (!src->download)
+      src->download = gst_gl_download_new (src->context);
+
+    gst_gl_download_set_format (src->download, &out_frame.info);
+
     if (!src->out_tex_id) {
       gst_gl_context_gen_texture (src->context, &src->out_tex_id,
           GST_VIDEO_FORMAT_RGBA, GST_VIDEO_FRAME_WIDTH (&out_frame),
           GST_VIDEO_FRAME_HEIGHT (&out_frame));
     }
     out_tex = src->out_tex_id;
-
-    if (!src->download)
-      src->download = gst_gl_download_new (src->context);
-
-    gst_gl_download_set_format (src->download, &out_frame.info);
-    out_gl_wrapped = TRUE;
   }
 
   gst_buffer_replace (&src->buffer, buffer);
@@ -510,7 +516,7 @@
     goto not_negotiated;
   }
 
-  if (out_gl_wrapped) {
+  if (to_download) {
     if (!gst_gl_download_perform_with_data (src->download, out_tex,
             out_frame.data)) {
       GST_ELEMENT_ERROR (src, RESOURCE, NOT_FOUND, ("%s",
@@ -571,6 +577,8 @@
 {
   GstGLTestSrc *src = GST_GL_TEST_SRC (basesrc);
 
+  gst_caps_replace (&src->out_caps, NULL);
+
   if (src->context) {
     if (src->out_tex_id) {
       gst_gl_context_del_texture (src->context, &src->out_tex_id);
diff --git a/ext/gl/gstgltestsrc.h b/ext/gl/gstgltestsrc.h
index 48e4d86..73f9f34 100644
--- a/ext/gl/gstgltestsrc.h
+++ b/ext/gl/gstgltestsrc.h
@@ -112,6 +112,8 @@
     gboolean negotiated;
 
     void (*make_image) (GstGLTestSrc* v, GstBuffer* buffer, gint w, gint h);
+
+    GstCaps *out_caps;
 };
 
 struct _GstGLTestSrcClass {
diff --git a/ext/gl/gstgltransformation.c b/ext/gl/gstgltransformation.c
index 7d761fc..0da8860 100644
--- a/ext/gl/gstgltransformation.c
+++ b/ext/gl/gstgltransformation.c
@@ -253,8 +253,8 @@
 
   graphene_matrix_init_look_at (&view_matrix, &eye, &center, &up);
 
-  graphene_matrix_multiply (&projection_matrix, &view_matrix, &vp_matrix);
-  graphene_matrix_multiply (&vp_matrix, &model_matrix,
+  graphene_matrix_multiply (&view_matrix, &projection_matrix, &vp_matrix);
+  graphene_matrix_multiply (&model_matrix, &vp_matrix,
       &transformation->mvp_matrix);
 }
 
diff --git a/ext/gl/gstglvideomixer.c b/ext/gl/gstglvideomixer.c
index b9a1d68..22e9b7f 100644
--- a/ext/gl/gstglvideomixer.c
+++ b/ext/gl/gstglvideomixer.c
@@ -459,12 +459,14 @@
     in_width = GST_VIDEO_INFO_WIDTH (&GST_VIDEO_AGGREGATOR_PAD (pad)->info);
     in_height = GST_VIDEO_INFO_HEIGHT (&GST_VIDEO_AGGREGATOR_PAD (pad)->info);
 
-    if (!frame->texture || in_width <= 0 || in_height <= 0) {
-      GST_DEBUG ("skipping texture:%u frame:%p width:%u height %u",
-          frame->texture, frame, in_width, in_height);
+    if (!frame->texture || in_width <= 0 || in_height <= 0
+        || pad->alpha == 0.0f) {
+      GST_DEBUG ("skipping texture:%u frame:%p width:%u height:%u alpha:%f",
+          frame->texture, frame, in_width, in_height, pad->alpha);
       count++;
       continue;
     }
+
     in_tex = frame->texture;
     pad_width = pad->width <= 0 ? in_width : pad->width;
     pad_height = pad->height <= 0 ? in_height : pad->height;
@@ -495,9 +497,8 @@
     gl->EnableVertexAttribArray (attr_position_loc);
     gl->EnableVertexAttribArray (attr_texture_loc);
 
-    gl->BlendFuncSeparate (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_ONE,
-        GL_ZERO);
-    gl->BlendEquationSeparate (GL_FUNC_ADD, GL_FUNC_ADD);
+    gl->BlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+    gl->BlendEquation (GL_FUNC_ADD);
 
     gl->ActiveTexture (GL_TEXTURE0);
     gl->BindTexture (GL_TEXTURE_2D, in_tex);
diff --git a/ext/hls/gsthlsdemux.c b/ext/hls/gsthlsdemux.c
index e890b5f..b11d07e 100644
--- a/ext/hls/gsthlsdemux.c
+++ b/ext/hls/gsthlsdemux.c
@@ -486,6 +486,7 @@
         demux->discont = TRUE;
         demux->new_playlist = TRUE;
         demux->do_typefind = TRUE;
+        demux->end_of_playlist = FALSE;
 
         gst_hls_demux_change_playlist (demux,
             demux->current_download_rate * demux->bitrate_limit / ABS (rate));
@@ -513,6 +514,7 @@
         demux->discont = TRUE;
         demux->new_playlist = TRUE;
         demux->do_typefind = TRUE;
+        demux->end_of_playlist = FALSE;
 
         gst_hls_demux_change_playlist (demux,
             demux->current_download_rate * demux->bitrate_limit);
diff --git a/ext/rtmp/gstrtmpsink.c b/ext/rtmp/gstrtmpsink.c
index 58ee057..0e2e850 100644
--- a/ext/rtmp/gstrtmpsink.c
+++ b/ext/rtmp/gstrtmpsink.c
@@ -136,9 +136,12 @@
 static void
 gst_rtmp_sink_finalize (GObject * object)
 {
+  GstRTMPSink *sink = GST_RTMP_SINK (object);
+
 #ifdef G_OS_WIN32
   WSACleanup ();
 #endif
+  g_free (sink->uri);
 
   G_OBJECT_CLASS (parent_class)->finalize (object);
 }
diff --git a/gst-libs/gst/base/gstaggregator.c b/gst-libs/gst/base/gstaggregator.c
index 9274600..e12ed93 100644
--- a/gst-libs/gst/base/gstaggregator.c
+++ b/gst-libs/gst/base/gstaggregator.c
@@ -706,6 +706,10 @@
   gst_aggregator_iterate_sinkpads (agg,
       (GstAggregatorPadForeachFunc) _flush_pad, NULL);
 
+  if (agg->priv->tags)
+    gst_tag_list_unref (agg->priv->tags);
+  agg->priv->tags = NULL;
+
   return TRUE;
 }
 
diff --git a/gst-libs/gst/codecparsers/gstvc1parser.h b/gst-libs/gst/codecparsers/gstvc1parser.h
index e2720d7..a73ff9d 100644
--- a/gst-libs/gst/codecparsers/gstvc1parser.h
+++ b/gst-libs/gst/codecparsers/gstvc1parser.h
@@ -84,8 +84,8 @@
 typedef enum
 {
     GST_VC1_LEVEL_LOW    = 0,    /* Simple/Main profile low level */
-    GST_VC1_LEVEL_MEDIUM = 1,    /* Simple/Main profile medium level */
-    GST_VC1_LEVEL_HIGH   = 2,   /* Main profile high level */
+    GST_VC1_LEVEL_MEDIUM = 2,    /* Simple/Main profile medium level */
+    GST_VC1_LEVEL_HIGH   = 4,   /* Main profile high level */
 
     GST_VC1_LEVEL_L0    = 0,    /* Advanced profile level 0 */
     GST_VC1_LEVEL_L1    = 1,    /* Advanced profile level 1 */
diff --git a/gst-libs/gst/gl/cocoa/gstgl_cocoa_private.h b/gst-libs/gst/gl/cocoa/gstgl_cocoa_private.h
index 4510cb2..fa7178b 100644
--- a/gst-libs/gst/gl/cocoa/gstgl_cocoa_private.h
+++ b/gst-libs/gst/gl/cocoa/gstgl_cocoa_private.h
@@ -30,48 +30,27 @@
 
 G_BEGIN_DECLS
 
-@interface AppThreadPerformer : NSObject {
-  GstGLWindowCocoa *m_cocoa;
-  GstGLWindowCB m_callback;
-  GstGLWindowResizeCB m_callback2;
-  gpointer m_data;
-  gint m_width;
-  gint m_height;
-}
-- (id) init: (GstGLWindowCocoa *)window;
-- (id) initWithCallback:(GstGLWindowCocoa *)window callback:(GstGLWindowCB)callback userData:(gpointer) data;
-- (id) initWithSize: (GstGLWindowCocoa *)window callback:(GstGLWindowResizeCB)callback userData:(gpointer)data toSize:(NSSize)size;
-- (id) initWithAll: (GstGLWindowCocoa *)window callback:(GstGLWindowCB)callback userData:(gpointer) data;
-- (void) updateWindow;
-- (void) sendToApp;
-- (void) setWindow;
-- (void) stopApp;
-- (void) closeWindow;
-@end
-
 struct _GstGLContextCocoaPrivate
 {
   NSOpenGLContext *gl_context;
   NSOpenGLContext *external_gl_context;
-  NSRect rect;
   gint source_id;
 };
 
 
 /* =============================================================*/
 /*                                                              */
-/*                  GstGLNSOpenGLView declaration               */
+/*                  GstGLNSView declaration               */
 /*                                                              */
 /* =============================================================*/
 
-@interface GstGLNSOpenGLView: NSOpenGLView {
-  GstGLWindowCocoa *m_cocoa;
+@interface GstGLNSView: NSView {
+  GstGLWindowCocoa *window_cocoa;
 }
-- (id) initWithFrame:(GstGLWindowCocoa *)window rect:(NSRect)contentRect
-    pixelFormat:(NSOpenGLPixelFormat *)fmt;
+- (id) initWithFrame:(GstGLWindowCocoa *)window rect:(NSRect)contentRect;
 @end
 
-gboolean gst_gl_window_cocoa_create_window (GstGLWindowCocoa *window_cocoa);
+gboolean gst_gl_window_cocoa_create_window (GstGLWindowCocoa *window_cocoa, NSRect rect);
 
 G_END_DECLS
 
diff --git a/gst-libs/gst/gl/cocoa/gstglcontext_cocoa.m b/gst-libs/gst/gl/cocoa/gstglcontext_cocoa.m
index cd45857..7a12650 100644
--- a/gst-libs/gst/gl/cocoa/gstglcontext_cocoa.m
+++ b/gst-libs/gst/gl/cocoa/gstglcontext_cocoa.m
@@ -85,7 +85,7 @@
   if ([NSThread isMainThread]) {
 
     while ((event = ([NSApp nextEventMatchingMask:NSAnyEventMask
-      untilDate:[NSDate dateWithTimeIntervalSinceNow:0.5]
+      untilDate:[NSDate dateWithTimeIntervalSinceNow:0.05]
       inMode:NSDefaultRunLoopMode dequeue:YES])) != nil) {
 
       [NSApp sendEvent:event];
@@ -135,7 +135,7 @@
 
   if ([NSThread isMainThread]) {
     /* In the main thread so just do the call now */
-    
+
     /* The sharedApplication class method initializes
      * the display environment and connects your program
      * to the window server and the display server
@@ -154,24 +154,40 @@
      * glib main loop running this is for debugging
      * purposes so that's ok to let us a chance
      */
+    GMainContext *context;
     gboolean is_loop_running = FALSE;
     gint64 end_time = 0;
 
-    g_mutex_init (&nsapp_lock);
-    g_cond_init (&nsapp_cond);
+    context = g_main_context_default ();
 
-    g_mutex_lock (&nsapp_lock);
-    g_idle_add_full (G_PRIORITY_HIGH, gst_gl_window_cocoa_init_nsapp, NULL, NULL);
-    end_time = g_get_monotonic_time () + 2 * 1000 * 1000;
-    is_loop_running = g_cond_wait_until (&nsapp_cond, &nsapp_lock, end_time);
-    g_mutex_unlock (&nsapp_lock);
+    if (g_main_context_is_owner (context)) {
+      /* At the thread running the default GLib main context but
+       * not the Cocoa main thread
+       * We can't do anything here
+       */
+    } else if (g_main_context_acquire (context)) {
+      /* No main loop running on the default main context,
+       * we can't do anything here */
+      g_main_context_release (context);
+    } else {
+      /* Main loop running on the default main context but it
+       * is not running in this thread */
+      g_mutex_init (&nsapp_lock);
+      g_cond_init (&nsapp_cond);
 
-    if (!is_loop_running) {
-      GST_WARNING ("no mainloop running");
+      g_mutex_lock (&nsapp_lock);
+      g_idle_add_full (G_PRIORITY_HIGH, gst_gl_window_cocoa_init_nsapp, NULL, NULL);
+      end_time = g_get_monotonic_time () + 500 * 1000;
+      is_loop_running = g_cond_wait_until (&nsapp_cond, &nsapp_lock, end_time);
+      g_mutex_unlock (&nsapp_lock);
+
+      if (!is_loop_running) {
+        GST_WARNING ("no mainloop running");
+      }
+
+      g_cond_clear (&nsapp_cond);
+      g_mutex_clear (&nsapp_lock);
     }
-
-    g_cond_clear (&nsapp_cond);
-    g_mutex_clear (&nsapp_lock);
   }
 
   [pool release];
@@ -201,17 +217,11 @@
   GstGLContextCocoaPrivate *priv = context_cocoa->priv;
   GstGLWindow *window = gst_gl_context_get_window (context);
   GstGLWindowCocoa *window_cocoa = GST_GL_WINDOW_COCOA (window);
-  GstGLNSOpenGLView *glView = nil;
-  NSWindow *window_handle;
-  NSRect rect;
-  NSAutoreleasePool *pool;
-  NSOpenGLPixelFormat *fmt = nil;
-  NSOpenGLContext *glContext = nil;
-  NSOpenGLPixelFormatAttribute attribs[] = {
-    NSOpenGLPFADoubleBuffer,
-    NSOpenGLPFAAccumSize, 32,
-    0
-  };
+  __block NSOpenGLContext *glContext = nil;
+
+#ifndef GNUSTEP
+  priv->source_id = g_timeout_add (200, gst_gl_window_cocoa_nsapp_iteration, NULL);
+#endif
 
   priv->gl_context = nil;
   if (other_context)
@@ -219,56 +229,64 @@
   else
     priv->external_gl_context = NULL;
 
-#ifdef GNUSTEP
-  GSRegisterCurrentThread();
-#endif
+  dispatch_sync (dispatch_get_main_queue (), ^{
+    NSAutoreleasePool *pool;
+    NSOpenGLPixelFormat *fmt = nil;
+    GstGLNSView *glView = nil;
+    NSOpenGLPixelFormatAttribute attribs[] = {
+      NSOpenGLPFADoubleBuffer,
+      NSOpenGLPFAAccumSize, 32,
+      0
+    };
+    NSRect rect;
+    NSWindow *window_handle;
 
-  pool = [[NSAutoreleasePool alloc] init];
+    pool = [[NSAutoreleasePool alloc] init];
 
 #ifdef GNUSTEP
-  [NSApplication sharedApplication];
+    [NSApplication sharedApplication];
 #endif
+    rect.origin.x = 0;
+    rect.origin.y = 0;
+    rect.size.width = 320;
+    rect.size.height = 240;
 
-  rect.origin.x = 0;
-  rect.origin.y = 0;
-  rect.size.width = 320;
-  rect.size.height = 240;
+    gst_gl_window_cocoa_create_window (window_cocoa, rect);
+    window_handle = (NSWindow *) gst_gl_window_get_window_handle (window);
 
-  priv->rect = rect;
+    fmt = [[NSOpenGLPixelFormat alloc] initWithAttributes:attribs];
+    if (!fmt) {
+      gst_object_unref (window);
+      GST_WARNING ("cannot create NSOpenGLPixelFormat");
+      return;
+    }
 
-  gst_gl_window_cocoa_create_window (window_cocoa);
-  window_handle = (NSWindow *) gst_gl_window_get_window_handle (window);
+    glView = [[GstGLNSView alloc] initWithFrame:window_cocoa rect:rect];
 
-  glView = [GstGLNSOpenGLView alloc];
-
-  fmt = [[NSOpenGLPixelFormat alloc] initWithAttributes:attribs];
-
-  if (!fmt) {
-    gst_object_unref (window);
-    GST_WARNING ("cannot create NSOpenGLPixelFormat");
-    return FALSE;
-  }
-
-  glView = [glView initWithFrame:window_cocoa rect:rect pixelFormat:fmt];
-
-  [window_handle setContentView:glView];
+    [window_handle setContentView:glView];
 
 #ifndef GNUSTEP
-  glContext = [[NSOpenGLContext alloc] initWithFormat:fmt 
-    shareContext:context_cocoa->priv->external_gl_context];
+    glContext = [[NSOpenGLContext alloc] initWithFormat:fmt
+      shareContext:context_cocoa->priv->external_gl_context];
 
-  GST_DEBUG ("NSOpenGL context created: %"G_GUINTPTR_FORMAT, (guintptr) glContext);
+    GST_DEBUG ("NSOpenGL context created: %"G_GUINTPTR_FORMAT, (guintptr) glContext);
 
-  context_cocoa->priv->gl_context = glContext;
+    context_cocoa->priv->gl_context = glContext;
 
-  [glContext setView:glView];
-
-  [glView setOpenGLContext:glContext];
+    [glContext setView:glView];
 
 #else
-  /* FIXME try to make context sharing work in GNUstep */
-  context_cocoa->priv->gl_context = [glView openGLContext];
+    /* FIXME try to make context sharing work in GNUstep */
+    context_cocoa->priv->gl_context = glContext;
 #endif
+    [pool release];
+  });
+
+  if (!glContext) {
+    g_source_remove (priv->source_id);
+    priv->source_id = 0;
+    return FALSE;
+  }
 
   /* OpenGL context is made current only one time threre.
    * Indeed, all OpenGL calls are made in only one thread,
@@ -287,21 +305,14 @@
 #else
       const GLint swapInterval = 1;
 #endif
-      [[glView openGLContext] setValues:&swapInterval forParameter:NSOpenGLCPSwapInterval];
+      [glContext setValues:&swapInterval forParameter:NSOpenGLCPSwapInterval];
     }
   } NS_HANDLER {
      GST_DEBUG ("your back-end does not implement NSOpenglContext::setValues\n");
   }
   NS_ENDHANDLER
 
-  GST_DEBUG ("opengl GstGLNSWindow initialized: %d x %d\n",
-    (gint) rect.size.width, (gint) rect.size.height);
-
-  [pool release];
-
-#ifndef GNUSTEP
-  priv->source_id = g_timeout_add_seconds (1, gst_gl_window_cocoa_nsapp_iteration, NULL);
-#endif
+  GST_DEBUG ("opengl GstGLNSWindow initialized");
 
   gst_object_unref (window);
 
@@ -311,6 +322,14 @@
 static void
 gst_gl_context_cocoa_destroy_context (GstGLContext *context)
 {
+  GstGLContextCocoa *context_cocoa = GST_GL_CONTEXT_COCOA (context);
+  GstGLContextCocoaPrivate *priv = context_cocoa->priv;
+
+  /* FIXME: Need to release context and other things? */
+  if (priv->source_id) {
+    g_source_remove (priv->source_id);
+    priv->source_id = 0;
+  }
 }
 
 static guintptr
@@ -328,11 +347,8 @@
 
   if (activate)
     [context_cocoa->priv->gl_context makeCurrentContext];
-#if 0
   else
-    /* FIXME */
-    [context_cocoa->priv->gl_context clearCurrentContext];
-#endif
+    [NSOpenGLContext clearCurrentContext];
   return TRUE;
 }
 
diff --git a/gst-libs/gst/gl/cocoa/gstglwindow_cocoa.m b/gst-libs/gst/gl/cocoa/gstglwindow_cocoa.m
index 2de31d7..3f7cba7 100644
--- a/gst-libs/gst/gl/cocoa/gstglwindow_cocoa.m
+++ b/gst-libs/gst/gl/cocoa/gstglwindow_cocoa.m
@@ -1,6 +1,7 @@
 /*
  * GStreamer
  * Copyright (C) 2008 Julien Isorce <julien.isorce@gmail.com>
+ * Copyright (C) 2014 Sebastian Dröge <sebastian@centricular.com>
  *
  * This library is free software; you can redistribute it and/or
  * modify it un der the terms of the GNU Library General Public
@@ -34,7 +35,7 @@
 
 @interface GstGLNSWindow: NSWindow {
   BOOL m_isClosed;
-  GstGLWindowCocoa *m_cocoa;
+  GstGLWindowCocoa *window_cocoa;
 }
 - (id)initWithContentRect:(NSRect)contentRect
     styleMask: (unsigned int) styleMask
@@ -53,11 +54,6 @@
 /*                                                              */
 /* =============================================================*/
 
-#ifndef GNUSTEP
-static BOOL GSRegisterCurrentThread(void) { return TRUE; };
-static void GSUnregisterCurrentThread(void) {};
-#endif
-
 #define GST_GL_WINDOW_COCOA_GET_PRIVATE(o)  \
   (G_TYPE_INSTANCE_GET_PRIVATE((o), GST_GL_TYPE_WINDOW_COCOA, GstGLWindowCocoaPrivate))
 
@@ -69,6 +65,8 @@
 #define gst_gl_window_cocoa_parent_class parent_class
 G_DEFINE_TYPE_WITH_CODE (GstGLWindowCocoa, gst_gl_window_cocoa, GST_GL_TYPE_WINDOW, DEBUG_INIT);
 
+static gboolean gst_gl_window_cocoa_open (GstGLWindow *window, GError **err);
+static void gst_gl_window_cocoa_close (GstGLWindow *window);
 static guintptr gst_gl_window_cocoa_get_window_handle (GstGLWindow * window);
 static void gst_gl_window_cocoa_set_window_handle (GstGLWindow * window,
     guintptr handle);
@@ -83,8 +81,10 @@
   GstGLNSWindow *internal_win_id;
   NSView *external_view;
   gboolean visible;
-  NSThread *thread;
-  gboolean running;
+  GMainContext *main_context;
+  GMainLoop *loop;
+
+  GLint viewport_dim[4];
 };
 
 static void
@@ -96,6 +96,8 @@
 
   g_type_class_add_private (klass, sizeof (GstGLWindowCocoaPrivate));
 
+  window_class->open = GST_DEBUG_FUNCPTR (gst_gl_window_cocoa_open);
+  window_class->close = GST_DEBUG_FUNCPTR (gst_gl_window_cocoa_close);
   window_class->get_window_handle =
       GST_DEBUG_FUNCPTR (gst_gl_window_cocoa_get_window_handle);
   window_class->set_window_handle =
@@ -123,31 +125,52 @@
   return window;
 }
 
+/* Must be called from the main thread */
 gboolean
-gst_gl_window_cocoa_create_window (GstGLWindowCocoa *window_cocoa)
+gst_gl_window_cocoa_create_window (GstGLWindowCocoa *window_cocoa, NSRect rect)
 {
-  GstGLWindow *window = GST_GL_WINDOW (window_cocoa);
-  GstGLContext *context = gst_gl_window_get_context (window);
-  GstGLContextCocoa *context_cocoa = GST_GL_CONTEXT_COCOA (context);
   GstGLWindowCocoaPrivate *priv = window_cocoa->priv;
-  NSRect rect = context_cocoa->priv->rect;
 
-  priv->internal_win_id =[[GstGLNSWindow alloc] initWithContentRect:rect styleMask: 
-    (NSTitledWindowMask | NSClosableWindowMask |
-    NSResizableWindowMask | NSMiniaturizableWindowMask)
-    backing: NSBackingStoreBuffered defer: NO screen: nil gstWin: window_cocoa];
+  priv->internal_win_id = [[GstGLNSWindow alloc] initWithContentRect:rect styleMask: 
+      (NSTitledWindowMask | NSClosableWindowMask |
+      NSResizableWindowMask | NSMiniaturizableWindowMask)
+      backing: NSBackingStoreBuffered defer: NO screen: nil gstWin: window_cocoa];
 
-  GST_DEBUG ("NSWindow id: %"G_GUINTPTR_FORMAT, (guintptr) priv->internal_win_id);
+      GST_DEBUG ("NSWindow id: %"G_GUINTPTR_FORMAT, (guintptr) priv->internal_win_id);
 
-  priv->thread = [NSThread currentThread];
-
-  [NSApp setDelegate: priv->internal_win_id];
-
-  gst_object_unref (context);
+      [NSApp setDelegate: priv->internal_win_id];
 
   return TRUE;
 }
 
+static gboolean
+gst_gl_window_cocoa_open (GstGLWindow *window, GError **err)
+{
+  GstGLWindowCocoa *window_cocoa;
+
+  window_cocoa = GST_GL_WINDOW_COCOA (window);
+
+  window_cocoa->priv->main_context = g_main_context_new ();
+  window_cocoa->priv->loop =
+      g_main_loop_new (window_cocoa->priv->main_context, FALSE);
+
+  return TRUE;
+}
+
+static void
+gst_gl_window_cocoa_close (GstGLWindow *window)
+{
+  GstGLWindowCocoa *window_cocoa;
+
+  window_cocoa = GST_GL_WINDOW_COCOA (window);
+
+  g_main_loop_unref (window_cocoa->priv->loop);
+  g_main_context_unref (window_cocoa->priv->main_context);
+
+  [window_cocoa->priv->internal_win_id release];
+  window_cocoa->priv->internal_win_id = nil;
+}
+
 static guintptr
 gst_gl_window_cocoa_get_window_handle (GstGLWindow *window)
 {
@@ -162,22 +185,8 @@
 
   window_cocoa = GST_GL_WINDOW_COCOA (window);
   priv = window_cocoa->priv;
-  
+
   if (priv->internal_win_id) {
-    GstGLContextCocoa *context = (GstGLContextCocoa *) gst_gl_window_get_context (window);
-    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
-    AppThreadPerformer* app_thread_performer = [[AppThreadPerformer alloc] init:window_cocoa];
-
-    GSRegisterCurrentThread();
-
-    if (context) {
-      if (context->priv->source_id) {
-        g_source_remove (context->priv->source_id);
-        context->priv->source_id = 0;
-      }
-      gst_object_unref (context);
-    }
-
     if (handle) {
       priv->external_view = (NSView *) handle;
       priv->visible = TRUE;
@@ -186,109 +195,119 @@
       priv->external_view = 0;
       priv->visible = FALSE;
     }
-   
-    [app_thread_performer performSelectorOnMainThread:@selector(setWindow) 
-        withObject:0 waitUntilDone:YES];
 
-    [pool release];
+
+    dispatch_async (dispatch_get_main_queue (), ^{
+      NSView *view = [window_cocoa->priv->internal_win_id contentView];
+      [window_cocoa->priv->internal_win_id orderOut:window_cocoa->priv->internal_win_id];
+
+      [window_cocoa->priv->external_view addSubview: view];
+
+      [view setFrame: [window_cocoa->priv->external_view bounds]];
+      [view setAutoresizingMask: NSViewWidthSizable|NSViewHeightSizable];
+    });
   } else {
-    /* not internal window yet so delay it to the next drawing */
+    /* no internal window yet so delay it to the next drawing */
     priv->external_view = (NSView*) handle;
     priv->visible = FALSE;
   }
 }
 
 /* Thread safe */
-static void
-gst_gl_window_cocoa_draw (GstGLWindow * window, guint width, guint height)
+struct draw
 {
-  GstGLWindowCocoa *window_cocoa;
-  GstGLWindowCocoaPrivate *priv;
-  NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
-  AppThreadPerformer* app_thread_performer;
+  GstGLWindowCocoa *window;
+  guint width, height;
+};
 
-  window_cocoa = GST_GL_WINDOW_COCOA (window);
-  priv = window_cocoa->priv;
-
-  GSRegisterCurrentThread();
-
-  app_thread_performer = [[AppThreadPerformer alloc] init:window_cocoa];
+static void
+draw_cb (gpointer data)
+{
+  struct draw *draw_data = data;
+  GstGLWindowCocoa *window_cocoa = draw_data->window;
+  GstGLWindowCocoaPrivate *priv = window_cocoa->priv;
 
   /* useful when set_window_handle is called before
    * the internal NSWindow */
   if (priv->external_view && !priv->visible) {
-    gst_gl_window_cocoa_set_window_handle (window, (guintptr) priv->external_view);
+    gst_gl_window_cocoa_set_window_handle (GST_GL_WINDOW (window_cocoa), (guintptr) priv->external_view);
     priv->visible = TRUE;
   }
 
   if (!priv->external_view && !priv->visible) {
-    static gint x = 0;
-    static gint y = 0;
+    dispatch_sync (dispatch_get_main_queue (), ^{
+      NSRect mainRect = [[NSScreen mainScreen] visibleFrame];
+      NSRect windowRect = [priv->internal_win_id frame];
+      gint x = 0;
+      gint y = 0;
 
-    NSRect mainRect = [[NSScreen mainScreen] visibleFrame];
-    NSRect windowRect = [priv->internal_win_id frame];
+      GST_DEBUG ("main screen rect: %d %d %d %d\n", (int) mainRect.origin.x,
+          (int) mainRect.origin.y, (int) mainRect.size.width,
+          (int) mainRect.size.height);
 
-    GST_DEBUG ("main screen rect: %d %d %d %d\n", (int) mainRect.origin.x,
-        (int) mainRect.origin.y, (int) mainRect.size.width,
-        (int) mainRect.size.height);
+      windowRect.origin.x += x;
+      windowRect.origin.y += mainRect.size.height > y ? (mainRect.size.height - y) * 0.5 : y;
+      windowRect.size.width = draw_data->width;
+      windowRect.size.height = draw_data->height;
 
-    windowRect.origin.x += x;
-    windowRect.origin.y += mainRect.size.height > y ? (mainRect.size.height - y) * 0.5 : y;
-    windowRect.size.width = width;
-    windowRect.size.height = height;
+      GST_DEBUG ("window rect: %d %d %d %d\n", (int) windowRect.origin.x,
+          (int) windowRect.origin.y, (int) windowRect.size.width,
+          (int) windowRect.size.height);
 
-    GST_DEBUG ("window rect: %d %d %d %d\n", (int) windowRect.origin.x,
-        (int) windowRect.origin.y, (int) windowRect.size.width,
-        (int) windowRect.size.height);
-
-    x += 20;
-    y += 20;
+      x += 20;
+      y += 20;
 
 #ifndef GNUSTEP
-    [priv->internal_win_id setFrame:windowRect display:NO];
-    GST_DEBUG ("make the window available\n");
-    [priv->internal_win_id makeMainWindow];
+      [priv->internal_win_id setFrame:windowRect display:NO];
+      GST_DEBUG ("make the window available\n");
+      [priv->internal_win_id makeMainWindow];
 #endif
-    [app_thread_performer performSelector:@selector(orderFront)
-        onThread:priv->thread withObject:nil waitUntilDone:YES];
 
-    /*[priv->internal_win_id setViewsNeedDisplay:YES]; */
+      [priv->internal_win_id orderFrontRegardless];
+
+      [priv->internal_win_id setViewsNeedDisplay:YES];
+    });
     priv->visible = TRUE;
   }
 
-  [app_thread_performer performSelector:@selector(updateWindow)
-      onThread:priv->thread withObject:nil waitUntilDone:YES];
+  if (g_main_loop_is_running (priv->loop)) {
+    if (![priv->internal_win_id isClosed]) {
+      GstGLContext *context = gst_gl_window_get_context (GST_GL_WINDOW (window_cocoa));
+      NSOpenGLContext * glContext = (NSOpenGLContext *) gst_gl_context_get_gl_context (context);
 
-  [pool release];
+      /* draw opengl scene in the back buffer */
+      GST_GL_WINDOW (window_cocoa)->draw (GST_GL_WINDOW (window_cocoa)->draw_data);
+
+      /* Copy the back buffer to the front buffer */
+      [glContext flushBuffer];
+
+      gst_object_unref (context);
+    }
+  }
+}
+
+static void
+gst_gl_window_cocoa_draw (GstGLWindow * window, guint width, guint height)
+{
+  struct draw draw_data;
+
+  draw_data.window = GST_GL_WINDOW_COCOA (window);
+  draw_data.width = width;
+  draw_data.height = height;
+
+  gst_gl_window_send_message (window, (GstGLWindowCB) draw_cb, &draw_data);
 }
 
 static void
 gst_gl_window_cocoa_run (GstGLWindow * window)
 {
   GstGLWindowCocoa *window_cocoa;
-  GstGLWindowCocoaPrivate *priv;
-  NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
-  NSRunLoop *run_loop = [NSRunLoop currentRunLoop];
 
   window_cocoa = GST_GL_WINDOW_COCOA (window);
-  priv = window_cocoa->priv;
 
-  [run_loop addPort:[NSPort port] forMode:NSDefaultRunLoopMode];
-
-  GST_DEBUG ("begin loop\n");
-
-  if (priv->internal_win_id != nil) {
-    priv->running = TRUE;
-    while (priv->running)
-      [run_loop runMode:NSDefaultRunLoopMode beforeDate:[NSDate distantFuture]];
-
-    [priv->internal_win_id release];
-    priv->internal_win_id = nil;
-  }
-
-  [pool release];
-
-  GST_DEBUG ("end loop\n");
+  GST_LOG ("starting main loop");
+  g_main_loop_run (window_cocoa->priv->loop);
+  GST_LOG ("exiting main loop");
 }
 
 /* Thread safe */
@@ -296,60 +315,50 @@
 gst_gl_window_cocoa_quit (GstGLWindow * window)
 {
   GstGLWindowCocoa *window_cocoa;
-  GstGLWindowCocoaPrivate *priv;
 
   window_cocoa = GST_GL_WINDOW_COCOA (window);
-  priv = window_cocoa->priv;
 
-  if (window) {
-    if (GSRegisterCurrentThread() || 1) {
-      NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
-      
-      AppThreadPerformer* app_thread_performer = [[AppThreadPerformer alloc]
-          initWithAll:window_cocoa callback:NULL userData:NULL];
-      [app_thread_performer performSelector:@selector(stopApp)
-          onThread:priv->thread withObject:nil waitUntilDone:YES];
-
-      [pool release];
-
-      GSUnregisterCurrentThread();
-    }
-    else
-      GST_DEBUG ("failed to register current thread, application thread is lost\n");
-  }
+  g_main_loop_quit (window_cocoa->priv->loop);
 }
 
 /* Thread safe */
+typedef struct _GstGLMessage
+{
+  GstGLWindowCB callback;
+  gpointer data;
+  GDestroyNotify destroy;
+} GstGLMessage;
+
+static gboolean
+_run_message (GstGLMessage * message)
+{
+  if (message->callback)
+    message->callback (message->data);
+
+  if (message->destroy)
+    message->destroy (message->data);
+
+  g_slice_free (GstGLMessage, message);
+
+  return FALSE;
+}
+
 static void
 gst_gl_window_cocoa_send_message_async (GstGLWindow * window,
     GstGLWindowCB callback, gpointer data, GDestroyNotify destroy)
 {
   GstGLWindowCocoa *window_cocoa;
-  GstGLWindowCocoaPrivate *priv;
+  GstGLMessage *message;
 
   window_cocoa = GST_GL_WINDOW_COCOA (window);
-  priv = window_cocoa->priv;
+  message = g_slice_new (GstGLMessage);
 
-  GSRegisterCurrentThread ();
+  message->callback = callback;
+  message->data = data;
+  message->destroy = destroy;
 
-  if (window) {
-    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
-
-    /* performSelector is not re-entrant so do it manually */
-    if (G_UNLIKELY ([NSThread currentThread] == priv->thread)) {
-      if (callback)
-        callback (data);
-    } else {
-      AppThreadPerformer* app_thread_performer =
-          [[AppThreadPerformer alloc] initWithAll:window_cocoa
-              callback:callback userData:data];
-
-      [app_thread_performer performSelector:@selector(sendToApp)
-          onThread:priv->thread withObject:nil waitUntilDone:NO];
-      
-      [pool release];
-    }
-  }
+  g_main_context_invoke (window_cocoa->priv->main_context,
+      (GSourceFunc) _run_message, message);
 }
 
 /* =============================================================*/
@@ -358,6 +367,7 @@
 /*                                                              */
 /* =============================================================*/
 
+/* Must be called from the main thread */
 @implementation GstGLNSWindow
 
 - (id) initWithContentRect: (NSRect) contentRect
@@ -367,7 +377,7 @@
     gstWin: (GstGLWindowCocoa *) cocoa {
 
   m_isClosed = NO;
-  m_cocoa = cocoa;
+  window_cocoa = cocoa;
 
   self = [super initWithContentRect: contentRect
         styleMask: styleMask backing: bufferingType
@@ -381,14 +391,14 @@
 
   [self setBackgroundColor:[NSColor clearColor]];
 
-  [self orderOut:m_cocoa->priv->internal_win_id];
+  [self orderOut:window_cocoa->priv->internal_win_id];
 
-  if (m_cocoa->priv->external_view) {
+  if (window_cocoa->priv->external_view) {
     NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
-    NSView *view = [m_cocoa->priv->internal_win_id contentView];
+    NSView *view = [window_cocoa->priv->internal_win_id contentView];
 
-    [m_cocoa->priv->external_view addSubview: view];
-    [view setFrame: [m_cocoa->priv->external_view bounds]];
+    [window_cocoa->priv->external_view addSubview: view];
+    [view setFrame: [window_cocoa->priv->external_view bounds]];
     [view setAutoresizingMask: NSViewWidthSizable|NSViewHeightSizable];
 
     [pool release];
@@ -413,20 +423,25 @@
   return YES;
 }
 
+static void
+close_window_cb (gpointer data)
+{
+  GstGLWindowCocoa *window_cocoa = data;
+  GstGLWindow *window;
+
+  window = GST_GL_WINDOW (window_cocoa);
+
+  if (window->close) {
+    window->close (window->close_data);
+  }
+}
+
 /* Called in the main thread which is never the gl thread */
 - (BOOL) windowShouldClose:(id)sender {
-    
-  NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
-  AppThreadPerformer* app_thread_performer = [[AppThreadPerformer alloc] 
-    init:m_cocoa];
-    
+
   GST_DEBUG ("user clicked the close button\n");
-  
-  [app_thread_performer performSelector:@selector(closeWindow) onThread:m_cocoa->priv->thread
-    withObject:nil waitUntilDone:YES];
-  
-  [pool release];
-  
+  [window_cocoa->priv->internal_win_id setClosed];
+  gst_gl_window_send_message_async (GST_GL_WINDOW (window_cocoa), (GstGLWindowCB) close_window_cb, gst_object_ref (window_cocoa), (GDestroyNotify) gst_object_unref);
   return YES;
 }
 
@@ -460,175 +475,124 @@
 
 /* =============================================================*/
 /*                                                              */
-/*                GstGLNSOpenGLView implementation              */
+/*                GstGLNSView implementation              */
 /*                                                              */
 /* =============================================================*/
 
-@implementation GstGLNSOpenGLView
+@implementation GstGLNSView
 
-- (id)initWithFrame:(GstGLWindowCocoa *)window rect:(NSRect)contentRect pixelFormat:(NSOpenGLPixelFormat *)fmt {
+/* Must be called from the application main thread */
+- (id)initWithFrame:(GstGLWindowCocoa *)window rect:(NSRect)contentRect {
 
-  self = [super initWithFrame: contentRect pixelFormat: fmt];
+  self = [super initWithFrame: contentRect];
 
-  m_cocoa = window;
+  window_cocoa = window;
 
 #ifndef GNUSTEP
   [self setWantsLayer:NO];
 #endif
 
+  /* Get notified about changes */
+  [self setPostsFrameChangedNotifications:YES];
+  [[NSNotificationCenter defaultCenter] addObserver: self selector:@selector(reshape:) name: NSViewFrameDidChangeNotification object: self];
+  [self setWantsBestResolutionOpenGLSurface:YES];
+
   return self;
 }
 
-- (void)reshape {
+- (void) dealloc {
+  [[NSNotificationCenter defaultCenter] removeObserver: self];
+  [super dealloc];
+}
+
+struct resize
+{
+  GstGLWindowCocoa * window;
+  NSRect bounds, visibleRect;
+};
+
+static void
+resize_cb (gpointer data)
+{
+  NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
+  struct resize *resize_data = data;
+  GstGLWindowCocoa *window_cocoa = resize_data->window;
+  GstGLWindow *window = GST_GL_WINDOW (window_cocoa);
+  GstGLContext *context = gst_gl_window_get_context (window);
+  NSOpenGLContext * glContext = (NSOpenGLContext *) gst_gl_context_get_gl_context (context);
+
+  if (g_main_loop_is_running (window_cocoa->priv->loop) && ![window_cocoa->priv->internal_win_id isClosed]) {
+    const GstGLFuncs *gl;
+
+    [glContext update];
+
+    gl = context->gl_vtable;
+
+    if (window->resize) {
+      window->resize (window->resize_data, resize_data->bounds.size.width, resize_data->bounds.size.height);
+      gl->GetIntegerv (GL_VIEWPORT, window_cocoa->priv->viewport_dim);
+    }
+
+    gl->Viewport (window_cocoa->priv->viewport_dim[0] - resize_data->visibleRect.origin.x,
+                  window_cocoa->priv->viewport_dim[1] - resize_data->visibleRect.origin.y,
+                  window_cocoa->priv->viewport_dim[2], window_cocoa->priv->viewport_dim[3]);
+
+    GST_GL_WINDOW (window_cocoa)->draw (GST_GL_WINDOW (window_cocoa)->draw_data);
+    [glContext flushBuffer];
+  }
+  gst_object_unref (context);
+  [pool release];
+}
+
+- (void)renewGState {
+  /* Don't update the screen until we redraw, this
+   * prevents flickering during scrolling, clipping,
+   * resizing, etc
+   */
+  [[self window] disableScreenUpdatesUntilFlush];
+
+  [super renewGState];
+}
+
+- (void)reshape: (NSNotification*)notification {
   GstGLWindow *window;
 
-  window = GST_GL_WINDOW (m_cocoa);
+  window = GST_GL_WINDOW (window_cocoa);
 
   if (window->resize) {
-
-    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
     NSRect bounds = [self bounds];
-    AppThreadPerformer* app_thread_performer = [[AppThreadPerformer alloc]
-      initWithSize:m_cocoa callback:window->resize userData:window->resize_data
-      toSize:bounds.size];
+    NSRect visibleRect = [self visibleRect];
+    struct resize *resize_data = g_new (struct resize, 1);
 
-    [app_thread_performer performSelector:@selector(resizeWindow) onThread:m_cocoa->priv->thread
-      withObject:nil waitUntilDone:YES];
+    bounds = [self convertRectToBacking:bounds];
+    visibleRect = [self convertRectToBacking:visibleRect];
 
-    [pool release];
+    GST_DEBUG_OBJECT (window, "Window resized: bounds %lf %lf %lf %lf "
+                      "visibleRect %lf %lf %lf %lf",
+                      bounds.origin.x, bounds.origin.y,
+                      bounds.size.width, bounds.size.height,
+                      visibleRect.origin.x, visibleRect.origin.y,
+                      visibleRect.size.width, visibleRect.size.height);
+
+    resize_data->window = window_cocoa;
+    resize_data->bounds = bounds;
+    resize_data->visibleRect = visibleRect;
+
+    gst_gl_window_send_message_async (GST_GL_WINDOW (window_cocoa), (GstGLWindowCB) resize_cb, resize_data, (GDestroyNotify) g_free);
   }
 }
 
-- (void) update {
+- (void)drawRect: (NSRect)dirtyRect {
+  [self reshape:nil];
+}
+
+- (BOOL) isOpaque {
+    return YES;
+}
+
+- (BOOL) isFlipped {
+    return NO;
 }
 
 @end
 
-/* =============================================================*/
-/*                                                              */
-/*               AppThreadPerformer implementation              */
-/*                                                              */
-/* =============================================================*/
-
-@implementation AppThreadPerformer
-
-- (id) init: (GstGLWindowCocoa *) window {
-  m_cocoa = window;
-  m_callback = NULL;
-  m_callback2 = NULL;
-  m_data = NULL;
-  m_width = 0;
-  m_height = 0;
-  return self;
-}
-
-- (id) initWithCallback:(GstGLWindowCocoa *)window callback:(GstGLWindowCB)callback userData:(gpointer)data {
-  m_cocoa = window;
-  m_callback = callback;
-  m_callback2 = NULL;
-  m_data = data;
-  m_width = 0;
-  m_height = 0;
-  return self;
-}
-
-- (id) initWithSize: (GstGLWindowCocoa *) window
-    callback:(GstGLWindowResizeCB)callback userData:(gpointer)data
-  toSize:(NSSize)size {
-  m_cocoa = window;
-  m_callback = NULL;
-  m_callback2 = callback;
-  m_data = data;
-  m_width = size.width;
-  m_height = size.height;
-  return self;
-}
-
-- (id) initWithAll: (GstGLWindowCocoa *) window
-    callback:(GstGLWindowCB) callback userData: (gpointer) data {
-  m_cocoa = window;
-  m_callback = callback;
-  m_callback2 = NULL;
-  m_data = data;
-  m_width = 0;
-  m_height = 0;
-  return self;
-}
-
-- (void) updateWindow {
-  if (m_cocoa->priv->running) {
-
-    if (![m_cocoa->priv->internal_win_id isClosed]) {
-      NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
-
-      /* draw opengl scene in the back buffer */
-      GST_GL_WINDOW (m_cocoa)->draw (GST_GL_WINDOW (m_cocoa)->draw_data);
-      /* Copy the back buffer to the front buffer */
-      [[[m_cocoa->priv->internal_win_id contentView] openGLContext] flushBuffer];
-
-      [pool release];
-    }
-  }
-}
-
-- (void) resizeWindow {
-  if (m_cocoa->priv->running && ![m_cocoa->priv->internal_win_id isClosed]) {
-    m_callback2 (m_data, m_width, m_height);
-    [[[m_cocoa->priv->internal_win_id contentView] openGLContext] update];
-      GST_GL_WINDOW (m_cocoa)->draw (GST_GL_WINDOW (m_cocoa)->draw_data);
-    [[[m_cocoa->priv->internal_win_id contentView] openGLContext] flushBuffer];
-  }
-}
-
-- (void) sendToApp {
-  if (m_callback)
-    m_callback (m_data);
-}
-
-- (void) setWindow {
-  NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
-  NSView *view = [m_cocoa->priv->internal_win_id contentView];
-
-  [m_cocoa->priv->internal_win_id orderOut:m_cocoa->priv->internal_win_id];
-
-  [m_cocoa->priv->external_view addSubview: view];
-
-  [view setFrame: [m_cocoa->priv->external_view bounds]];
-  [view setAutoresizingMask: NSViewWidthSizable|NSViewHeightSizable];
-
-  [pool release];
-}
-
-- (void) stopApp {
-#ifdef GNUSTEP
-  NSAutoreleasePool *pool = nil;
-#endif
-
-  m_cocoa->priv->running = FALSE;
-  if (m_callback)
-    m_callback (m_data);
-
-#ifdef GNUSTEP
-  pool = [[NSAutoreleasePool alloc] init];
-  if ([NSApp isRunning])
-    [NSApp stop:self];
-  [pool release];
-#endif
-}
-
-- (void) closeWindow {
-  GstGLWindow *window;
-
-  window = GST_GL_WINDOW (m_cocoa);
-
-  [m_cocoa->priv->internal_win_id setClosed];
-  if (window->close) {
-    window->close (window->close_data);
-  }
-}
-
-- (void) orderFront {
-  [m_cocoa->priv->internal_win_id orderFrontRegardless];
-}
-
-@end
diff --git a/gst-libs/gst/gl/gstglapi.h b/gst-libs/gst/gl/gstglapi.h
index b136662..798eeba 100644
--- a/gst-libs/gst/gl/gstglapi.h
+++ b/gst-libs/gst/gl/gstglapi.h
@@ -71,6 +71,10 @@
 # ifdef __APPLE__
 #  include <OpenGL/OpenGL.h>
 #  include <OpenGL/gl.h>
+#  if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7
+#   define GL_DO_NOT_WARN_IF_MULTI_GL_VERSION_HEADERS_INCLUDED
+#   include <OpenGL/gl3.h>
+#  endif
 #  include <OpenGL/glu.h>
 # else
 #  include <GL/gl.h>
diff --git a/gst-libs/gst/gl/gstglcolorconvert.c b/gst-libs/gst/gl/gstglcolorconvert.c
index 87e04aa..2c76694 100644
--- a/gst-libs/gst/gl/gstglcolorconvert.c
+++ b/gst-libs/gst/gl/gstglcolorconvert.c
@@ -237,15 +237,39 @@
     "#endif\n"
     "varying vec2 v_texcoord;\n"
     "uniform sampler2D tex;\n"
-    "uniform float w, h;\n"
+    "uniform float width;\n"
+    "uniform float height;\n"
+    "uniform vec2 chroma_sampling;\n"
     RGB_TO_YUV_COEFFICIENTS
     "void main(void) {\n"
     "  float y, u, v;\n"
+    "  vec4 uv_texel;\n"
     "  vec4 texel = texture2D(tex, v_texcoord).%c%c%c%c;\n"
-    "  vec4 texel2 = texture2D(tex, v_texcoord * 2.0).%c%c%c%c;\n"
+    /* One u and v sample can be generated by a nxm sized block given by
+     * @chroma_sampling.  The result is the average of all the values in the
+     * block computed with a rolling average.
+     */
+    "  vec2 size = vec2(width, height);\n"
+    "  vec2 pos = v_texcoord * size;\n"
+       /* scale for chroma size */
+    "  vec2 chroma_pos = v_texcoord * chroma_sampling * size;\n"
+       /* offset chroma to the center of the first texel in the block */
+    "  chroma_pos -= clamp(chroma_sampling * 0.5 - 0.5, vec2(0.0), chroma_sampling);\n"
+    "  if (chroma_pos.x < width && chroma_pos.y < height) {\n"
+    "    for (int i = 0; i < int(chroma_sampling.x); i++) {\n"
+    "      vec2 delta = vec2 (float(i), 0.0);\n"
+    "      for (int j = 0; j < int(chroma_sampling.y); j++) {\n"
+    "        int n = (i+1)*(j+1);\n"
+    "        delta.y = float(j);\n"
+    "        vec4 sample = texture2D(tex, (chroma_pos + delta) / size).%c%c%c%c;\n"
+             /* rolling average */
+    "        uv_texel = (float(n-1) * uv_texel + sample) / float(n);\n"
+    "      }\n"
+    "    }\n"
+    "  }\n"
     "  y = dot(texel.rgb, coeff1);\n"
-    "  u = dot(texel2.rgb, coeff2);\n"
-    "  v = dot(texel2.rgb, coeff3);\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"
@@ -326,25 +350,33 @@
     "void main(void) {\n"
     "  vec4 texel1, texel2;\n"
     "  vec2 texel3;\n"
-    "  float fx, fy, y1, y2, u, v;\n"
-    "  fx = v_texcoord.x;\n"
-    "  fy = v_texcoord.y;\n"
+    "  float fx, dx, fy, y, u, u1, u2, v, v1, v2;\n"
     "  float inorder = mod (v_texcoord.x * width, 2.0);\n"
-    "  texel1 = texture2D(tex, vec2(fx,     fy)).%c%c%c%c;\n"
-    "  texel2 = texture2D(tex, vec2(fx+1.0 / width, fy)).%c%c%c%c;\n"
-    "  y1 = dot(texel1.rgb, coeff1);\n"
-    "  y2 = dot(texel2.rgb, coeff1);\n"
-    "  u = dot(texel1.rgb, coeff2);\n"
-    "  v = dot(texel1.rgb, coeff3);\n"
-    "  y1 += offset.x;\n"
-    "  y2 += offset.x;\n"
-    "  u += offset.y;\n"
-    "  v += offset.z;\n"
+    "  fx = v_texcoord.x;\n"
+    "  dx = 1.0 / width;\n"
+    "  if (v_texcoord.x >= (1.0 - 0.5 * dx) || (v_texcoord.x > 0.5 * dx && inorder < 1.0)) {\n"
+    "    dx = -dx;\n"
+    "  }\n"
+    "  fy = v_texcoord.y;\n"
+    "  texel1 = texture2D(tex, vec2(fx, fy)).%c%c%c%c;\n"
+    "  texel2 = texture2D(tex, vec2(fx + dx, fy)).%c%c%c%c;\n"
+    "  y = dot(texel1.rgb, coeff1);\n"
+    "  u1 = dot(texel1.rgb, coeff2);\n"
+    "  u2 = dot(texel2.rgb, coeff2);\n"
+    "  v1 = dot(texel1.rgb, coeff3);\n"
+    "  v2 = dot(texel2.rgb, coeff3);\n"
+    "  y += offset.x;\n"
+    "  u1 += offset.y;\n"
+    "  u2 += offset.y;\n"
+    "  v1 += offset.z;\n"
+    "  v2 += offset.z;\n"
+    "  u = (u1 + u2) / 2.0;\n"
+    "  v = (v1 + v2) / 2.0;\n"
     "  if (inorder < 1.0) {\n"
-    "    texel3.r = %s;\n"
+    "    texel3.r =%s;\n"
     "    texel3.g = %s;\n"
     "  } else {\n"
-    "    texel3.r = %s;\n"
+    "    texel3.r =%s;\n"
     "    texel3.g = %s;\n"
     "  }\n"
     "  gl_FragColor = vec4(texel3.r, texel3.g, 0.0, 0.0);\n"
@@ -372,6 +404,7 @@
   gfloat *cms_coeff1;           /* r,y */
   gfloat *cms_coeff2;           /* g,u */
   gfloat *cms_coeff3;           /* b,v */
+  gfloat chroma_sampling[2];
 };
 
 struct _GstGLColorConvertPrivate
@@ -410,6 +443,8 @@
 gst_gl_color_convert_init (GstGLColorConvert * convert)
 {
   convert->priv = GST_GL_COLOR_CONVERT_GET_PRIVATE (convert);
+
+  gst_gl_color_convert_reset (convert);
 }
 
 /**
@@ -469,6 +504,9 @@
     convert->priv->out_tex[i] = NULL;
   }
 
+  convert->priv->convert_info.chroma_sampling[0] = 1.0f;
+  convert->priv->convert_info.chroma_sampling[1] = 1.0f;
+
   if (convert->shader) {
     gst_object_unref (convert->shader);
     convert->shader = NULL;
@@ -673,8 +711,17 @@
 
   info->in_n_textures = 1;
   info->out_n_textures = 1;
-  if (_is_RGBx (in_format))
-    alpha = g_strdup_printf ("t.%c = 1.0;", pixel_order[3]);
+  if (_is_RGBx (in_format)) {
+    int i;
+    char input_alpha_channel = 'a';
+    for (i = 0; i < GST_VIDEO_MAX_PLANES; i++) {
+      if (in_format_str[i] == 'X' || in_format_str[i] == 'x') {
+        input_alpha_channel = _index_to_shader_swizzle (i);
+        break;
+      }
+    }
+    alpha = g_strdup_printf ("t.%c = 1.0;", input_alpha_channel);
+  }
   info->frag_prog = g_strdup_printf (frag_REORDER, alpha ? alpha : "",
       pixel_order[0], pixel_order[1], pixel_order[2], pixel_order[3]);
   info->shader_tex_names[0] = "tex";
@@ -793,6 +840,7 @@
   struct ConvertInfo *info = &convert->priv->convert_info;
   GstVideoFormat in_format = GST_VIDEO_INFO_FORMAT (&convert->in_info);
   const gchar *in_format_str = gst_video_format_to_string (in_format);
+  GstVideoFormat out_format = GST_VIDEO_INFO_FORMAT (&convert->out_info);
   gchar *pixel_order = _RGB_pixel_order (in_format_str, "rgba");
   const gchar *alpha;
 
@@ -801,7 +849,7 @@
 
   info->shader_tex_names[0] = "tex";
 
-  switch (GST_VIDEO_INFO_FORMAT (&convert->out_info)) {
+  switch (out_format) {
     case GST_VIDEO_FORMAT_AYUV:
       alpha = _is_RGBx (in_format) ? "1.0" : "texel.a";
       info->frag_prog = g_strdup_printf (frag_RGB_to_AYUV, pixel_order[0],
@@ -817,19 +865,30 @@
           pixel_order[0], pixel_order[1], pixel_order[2], pixel_order[3],
           pixel_order[0], pixel_order[1], pixel_order[2], pixel_order[3]);
       info->out_n_textures = 3;
+      if (out_format == GST_VIDEO_FORMAT_Y444) {
+        info->chroma_sampling[0] = info->chroma_sampling[1] = 1.0f;
+      } else if (out_format == GST_VIDEO_FORMAT_Y42B) {
+        info->chroma_sampling[0] = 2.0f;
+        info->chroma_sampling[1] = 1.0f;
+      } else if (out_format == GST_VIDEO_FORMAT_Y41B) {
+        info->chroma_sampling[0] = 4.0f;
+        info->chroma_sampling[1] = 1.0f;
+      } else {
+        info->chroma_sampling[0] = info->chroma_sampling[1] = 2.0f;
+      }
       break;
     case GST_VIDEO_FORMAT_YUY2:
       info->frag_prog = g_strdup_printf (frag_RGB_to_YUY2_UYVY,
           pixel_order[0], pixel_order[1], pixel_order[2], pixel_order[3],
           pixel_order[0], pixel_order[1], pixel_order[2], pixel_order[3],
-          "y1", "u", "y2", "v");
+          "y", "u", "y", "v");
       info->out_n_textures = 1;
       break;
     case GST_VIDEO_FORMAT_UYVY:
       info->frag_prog = g_strdup_printf (frag_RGB_to_YUY2_UYVY,
           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", "y1", "v", "y2");
+          "u", "y", "v", "y");
       info->out_n_textures = 1;
       break;
     default:
@@ -1036,6 +1095,13 @@
 
   gst_gl_shader_set_uniform_1f (convert->shader, "width",
       GST_VIDEO_INFO_WIDTH (&convert->in_info));
+  gst_gl_shader_set_uniform_1f (convert->shader, "height",
+      GST_VIDEO_INFO_HEIGHT (&convert->in_info));
+
+  if (info->chroma_sampling[0] > 0.0f && info->chroma_sampling[1] > 0.0f) {
+    gst_gl_shader_set_uniform_2fv (convert->shader, "chroma_sampling", 1,
+        info->chroma_sampling);
+  }
 
   gst_gl_context_clear_shader (convert->context);
 
@@ -1191,11 +1257,14 @@
     convert->priv->in_tex[i] =
         (GstGLMemory *) gst_buffer_peek_memory (convert->inbuf, i);
     if (!gst_is_gl_memory ((GstMemory *) convert->priv->in_tex[i])) {
+      GST_ERROR_OBJECT (convert, "input must be GstGLMemory");
       res = FALSE;
       goto out;
     }
     if (!gst_memory_map ((GstMemory *) convert->priv->in_tex[i], &in_info[i],
             GST_MAP_READ | GST_MAP_GL)) {
+      GST_ERROR_OBJECT (convert, "failed to map input memory %p",
+          convert->priv->in_tex[i]);
       res = FALSE;
       goto out;
     }
@@ -1205,6 +1274,7 @@
     GstGLMemory *out_tex =
         (GstGLMemory *) gst_buffer_peek_memory (convert->outbuf, j);
     if (!gst_is_gl_memory ((GstMemory *) out_tex)) {
+      GST_ERROR_OBJECT (convert, "output must be GstGLMemory");
       res = FALSE;
       goto out;
     }
@@ -1225,6 +1295,8 @@
 
     if (!gst_memory_map ((GstMemory *) convert->priv->out_tex[j], &out_info[j],
             GST_MAP_WRITE | GST_MAP_GL)) {
+      GST_ERROR_OBJECT (convert, "failed to map output memory %p",
+          convert->priv->out_tex[i]);
       res = FALSE;
       goto out;
     }
diff --git a/gst-libs/gst/gl/gstglcontext.c b/gst-libs/gst/gl/gstglcontext.c
index 82d468b..a197bf1 100644
--- a/gst-libs/gst/gl/gstglcontext.c
+++ b/gst-libs/gst/gl/gstglcontext.c
@@ -138,6 +138,7 @@
   GstGLDisplay *display;
 
   GThread *gl_thread;
+  GThread *active_thread;
 
   /* conditions */
   GMutex render_lock;
@@ -147,7 +148,7 @@
   gboolean created;
   gboolean alive;
 
-  GstGLContext *other_context;
+  GWeakRef other_context_ref;
   GError **error;
 
   gint gl_major;
@@ -215,6 +216,8 @@
   g_cond_init (&context->priv->create_cond);
   g_cond_init (&context->priv->destroy_cond);
   context->priv->created = FALSE;
+
+  g_weak_ref_init (&context->priv->other_context_ref, NULL);
 }
 
 static void
@@ -249,6 +252,8 @@
  * Create a new #GstGLContext with the specified @display
  *
  * Returns: a new #GstGLContext
+ *
+ * Since: 1.4
  */
 GstGLContext *
 gst_gl_context_new (GstGLDisplay * display)
@@ -305,6 +310,8 @@
  * Wraps an existing OpenGL context into a #GstGLContext.  
  *
  * Returns: a #GstGLContext wrapping @handle
+ *
+ * Since: 1.4
  */
 GstGLContext *
 gst_gl_context_new_wrapped (GstGLDisplay * display, guintptr handle,
@@ -379,6 +386,7 @@
   g_cond_clear (&context->priv->create_cond);
 
   g_free (context->priv->gl_exts);
+  g_weak_ref_clear (&context->priv->other_context_ref);
 
   G_OBJECT_CLASS (gst_gl_context_parent_class)->finalize (object);
 }
@@ -394,6 +402,8 @@
  * currently set window.  See gst_gl_context_set_window() for details.
  *
  * Returns: Whether the activation succeeded
+ *
+ * Since: 1.4
  */
 gboolean
 gst_gl_context_activate (GstGLContext * context, gboolean activate)
@@ -405,12 +415,39 @@
   context_class = GST_GL_CONTEXT_GET_CLASS (context);
   g_return_val_if_fail (context_class->activate != NULL, FALSE);
 
+  GST_OBJECT_LOCK (context);
   result = context_class->activate (context, activate);
 
+  context->priv->active_thread = result
+      && activate ? context->priv->gl_thread : NULL;
+  GST_OBJECT_UNLOCK (context);
+
   return result;
 }
 
 /**
+ * gst_gl_context_get_thread:
+ * @context: a #GstGLContext
+ *
+ * Returns: (transfer full): The #GThread, @context is current in or NULL
+ *
+ * Since: 1.4.5
+ */
+GThread *
+gst_gl_context_get_thread (GstGLContext * context)
+{
+  GThread *ret;
+
+  GST_OBJECT_LOCK (context);
+  ret = context->priv->active_thread;
+  if (ret)
+    g_thread_ref (ret);
+  GST_OBJECT_UNLOCK (context);
+
+  return ret;
+}
+
+/**
  * gst_gl_context_get_gl_api:
  * @context: a #GstGLContext
  *
@@ -419,7 +456,9 @@
  * The currently available API may be limited by the #GstGLDisplay in use and/or
  * the #GstGLWindow chosen.
  *
- * Returns: the currently available OpenGL api
+ * Returns: the available OpenGL api
+ *
+ * Since: 1.4
  */
 GstGLAPI
 gst_gl_context_get_gl_api (GstGLContext * context)
@@ -445,6 +484,8 @@
  * be retreived using this method.
  *
  * Returns: a function pointer or NULL
+ *
+ * Since: 1.4
  */
 gpointer
 gst_gl_context_get_proc_address (GstGLContext * context, const gchar * name)
@@ -503,6 +544,8 @@
  * already running.
  *
  * Returns: Whether the window was successfully updated
+ *
+ * Since: 1.4
  */
 gboolean
 gst_gl_context_set_window (GstGLContext * context, GstGLWindow * window)
@@ -533,6 +576,8 @@
  * @context: a #GstGLContext
  *
  * Returns: the currently set window
+ *
+ * Since: 1.4
  */
 GstGLWindow *
 gst_gl_context_get_window (GstGLContext * context)
@@ -547,6 +592,73 @@
   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
+ *
+ * Returns: whether @context and @other_context are able to share OpenGL
+ *      resources.
+ *
+ * Since: 1.6
+ */
+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);
+}
+
 /**
  * gst_gl_context_create:
  * @context: a #GstGLContext:
@@ -563,6 +675,8 @@
  * Should only be called once.
  *
  * Returns: whether the context could successfully be created
+ *
+ * Since: 1.4
  */
 gboolean
 gst_gl_context_create (GstGLContext * context,
@@ -577,7 +691,7 @@
   g_mutex_lock (&context->priv->render_lock);
 
   if (!context->priv->created) {
-    context->priv->other_context = other_context;
+    g_weak_ref_set (&context->priv->other_context_ref, other_context);
     context->priv->error = error;
 
     context->priv->gl_thread = g_thread_new ("gstglcontext",
@@ -711,7 +825,7 @@
   g_mutex_lock (&context->priv->render_lock);
 
   error = context->priv->error;
-  other_context = context->priv->other_context;
+  other_context = g_weak_ref_get (&context->priv->other_context_ref);
 
   context_class = GST_GL_CONTEXT_GET_CLASS (context);
   window_class = GST_GL_WINDOW_GET_CLASS (context->window);
@@ -871,6 +985,9 @@
 
 failure:
   {
+    if (other_context)
+      gst_object_unref (other_context);
+
     g_cond_signal (&context->priv->create_cond);
     g_mutex_unlock (&context->priv->render_lock);
     return NULL;
@@ -884,6 +1001,8 @@
  * Gets the backing OpenGL context used by @context.
  *
  * Returns: The platform specific backing OpenGL context
+ *
+ * Since: 1.4
  */
 guintptr
 gst_gl_context_get_gl_context (GstGLContext * context)
@@ -907,6 +1026,8 @@
  * Gets the OpenGL platform that used by @context.
  *
  * Returns: The platform specific backing OpenGL context
+ *
+ * Since: 1.4
  */
 GstGLPlatform
 gst_gl_context_get_gl_platform (GstGLContext * context)
@@ -925,6 +1046,8 @@
  * @context: a #GstGLContext:
  *
  * Returns: the #GstGLDisplay associated with this @context
+ *
+ * Since: 1.4
  */
 GstGLDisplay *
 gst_gl_context_get_display (GstGLContext * context)
@@ -958,6 +1081,8 @@
  * Execute @func in the OpenGL thread of @context with @data
  *
  * MT-safe
+ *
+ * Since: 1.4
  */
 void
 gst_gl_context_thread_add (GstGLContext * context,
@@ -991,6 +1116,8 @@
  * Returns the OpenGL version implemented by @context.  See
  * gst_gl_context_get_gl_api() for retreiving the OpenGL api implemented by
  * @context.
+ *
+ * Since: 1.4
  */
 void
 gst_gl_context_get_gl_version (GstGLContext * context, gint * maj, gint * min)
@@ -1014,6 +1141,8 @@
  *
  * Returns: whether OpenGL context implements the required api and specified
  * version.
+ *
+ * Since: 1.4
  */
 gboolean
 gst_gl_context_check_gl_version (GstGLContext * context, GstGLAPI api,
@@ -1045,6 +1174,8 @@
  * determine their existence and so will fail if that is not the case.
  *
  * Returns: Whether @feature is supported by @context
+ *
+ * Since: 1.4
  */
 gboolean
 gst_gl_context_check_feature (GstGLContext * context, const gchar * feature)
diff --git a/gst-libs/gst/gl/gstglcontext.h b/gst-libs/gst/gl/gstglcontext.h
index 999b86a..7d6a842 100644
--- a/gst-libs/gst/gl/gstglcontext.h
+++ b/gst-libs/gst/gl/gstglcontext.h
@@ -120,12 +120,14 @@
                                            GstGLAPI available_apis);
 
 gboolean      gst_gl_context_activate         (GstGLContext *context, gboolean activate);
+GThread *     gst_gl_context_get_thread       (GstGLContext *context);
 
 GstGLDisplay * gst_gl_context_get_display (GstGLContext *context);
 gpointer      gst_gl_context_get_proc_address (GstGLContext *context, const gchar *name);
 GstGLPlatform gst_gl_context_get_gl_platform  (GstGLContext *context);
 GstGLAPI      gst_gl_context_get_gl_api       (GstGLContext *context);
 guintptr      gst_gl_context_get_gl_context   (GstGLContext *context);
+gboolean      gst_gl_context_can_share        (GstGLContext * context, GstGLContext *other_context);
 
 gboolean      gst_gl_context_create           (GstGLContext *context, GstGLContext *other_context, GError ** error);
 
diff --git a/gst-libs/gst/gl/gstgldisplay.c b/gst-libs/gst/gl/gstgldisplay.c
index c57e924..6b7b835 100644
--- a/gst-libs/gst/gl/gstgldisplay.c
+++ b/gst-libs/gst/gl/gstgldisplay.c
@@ -124,6 +124,8 @@
  * gst_gl_display_new:
  *
  * Returns: (transfer full): a new #GstGLDisplay
+ *
+ * Since: 1.4
  */
 GstGLDisplay *
 gst_gl_display_new (void)
@@ -195,6 +197,8 @@
  * @display: a #GstGLDisplay
  *
  * Returns: the #GstGLDisplayType of @display
+ *
+ * Since: 1.4
  */
 GstGLDisplayType
 gst_gl_display_get_handle_type (GstGLDisplay * display)
@@ -210,6 +214,8 @@
  * @display: resulting #GstGLDisplay
  *
  * Sets @display on @context
+ *
+ * Since: 1.4
  */
 void
 gst_context_set_gl_display (GstContext * context, GstGLDisplay * display)
@@ -232,6 +238,8 @@
  * @display: resulting #GstGLDisplay
  *
  * Returns: Whether @display was in @context
+ *
+ * Since: 1.4
  */
 gboolean
 gst_context_get_gl_display (GstContext * context, GstGLDisplay ** display)
diff --git a/gst-libs/gst/gl/gstglfilter.c b/gst-libs/gst/gl/gstglfilter.c
index e8c8710..26bf3f9 100644
--- a/gst-libs/gst/gl/gstglfilter.c
+++ b/gst-libs/gst/gl/gstglfilter.c
@@ -245,6 +245,8 @@
 {
   GstGLFilterClass *filter_class = GST_GL_FILTER_GET_CLASS (filter);
 
+  gst_caps_replace (&filter->out_caps, NULL);
+
   if (filter->upload) {
     gst_object_unref (filter->upload);
     filter->upload = NULL;
@@ -823,6 +825,8 @@
       goto error;
   }
 
+  gst_caps_replace (&filter->out_caps, outcaps);
+
   GST_DEBUG ("set_caps %dx%d", GST_VIDEO_INFO_WIDTH (&filter->out_info),
       GST_VIDEO_INFO_HEIGHT (&filter->out_info));
 
@@ -905,6 +909,10 @@
 
     if (decide_pool && GST_IS_GL_BUFFER_POOL (decide_pool)
         && gst_caps_is_equal_fixed (decide_caps, caps)) {
+      config = gst_buffer_pool_get_config (pool);
+      gst_buffer_pool_config_get_params (config, NULL, &size, NULL, NULL);
+      gst_structure_free (config);
+
       pool = decide_pool;
     } else {
       GST_DEBUG_OBJECT (filter, "create new pool");
@@ -1170,24 +1178,29 @@
   GstGLFilterClass *filter_class;
   guint in_tex, out_tex;
   GstVideoFrame out_frame;
-  gboolean ret, out_gl_mem;
-  GstVideoGLTextureUploadMeta *out_tex_upload_meta;
+  gboolean ret;
+  gboolean to_download =
+      gst_caps_features_is_equal (GST_CAPS_FEATURES_MEMORY_SYSTEM_MEMORY,
+      gst_caps_get_features (filter->out_caps, 0));
+  GstMapFlags out_map_flags = GST_MAP_WRITE;
 
   filter_class = GST_GL_FILTER_GET_CLASS (filter);
 
   if (!gst_gl_upload_perform_with_buffer (filter->upload, inbuf, &in_tex))
     return FALSE;
 
+  to_download |= !gst_is_gl_memory (gst_buffer_peek_memory (outbuf, 0));
+
+  if (!to_download)
+    out_map_flags |= GST_MAP_GL;
+
   if (!gst_video_frame_map (&out_frame, &filter->out_info, outbuf,
-          GST_MAP_WRITE | GST_MAP_GL)) {
+          out_map_flags)) {
     ret = FALSE;
     goto inbuf_error;
   }
 
-  out_gl_mem = gst_is_gl_memory (out_frame.map[0].memory);
-  out_tex_upload_meta = gst_buffer_get_video_gl_texture_upload_meta (outbuf);
-
-  if (out_gl_mem) {
+  if (!to_download) {
     out_tex = *(guint *) out_frame.data[0];
   } else {
     GST_LOG ("Output Buffer does not contain correct memory, "
@@ -1197,6 +1210,7 @@
       filter->download = gst_gl_download_new (filter->context);
 
     gst_gl_download_set_format (filter->download, &out_frame.info);
+
     out_tex = filter->out_tex_id;
   }
 
@@ -1206,7 +1220,7 @@
   g_assert (filter_class->filter_texture);
   ret = filter_class->filter_texture (filter, in_tex, out_tex);
 
-  if (!out_gl_mem && !out_tex_upload_meta) {
+  if (to_download) {
     if (!gst_gl_download_perform_with_data (filter->download, out_tex,
             out_frame.data)) {
       GST_ELEMENT_ERROR (filter, RESOURCE, NOT_FOUND,
diff --git a/gst-libs/gst/gl/gstglfilter.h b/gst-libs/gst/gl/gstglfilter.h
index 6e77022..c786493 100644
--- a/gst-libs/gst/gl/gstglfilter.h
+++ b/gst-libs/gst/gl/gstglfilter.h
@@ -68,6 +68,9 @@
 
   GstVideoInfo       in_info;
   GstVideoInfo       out_info;
+
+  GstCaps           *out_caps;
+
   GLuint             fbo;
   GLuint             depthbuffer;
 
diff --git a/gst-libs/gst/gl/gstglmemory.c b/gst-libs/gst/gl/gstglmemory.c
index 64314e6..87d57cb 100644
--- a/gst-libs/gst/gl/gstglmemory.c
+++ b/gst-libs/gst/gl/gstglmemory.c
@@ -661,8 +661,10 @@
   if ((gl_mem->map_flags & GST_MAP_WRITE) == GST_MAP_WRITE) {
     if ((gl_mem->map_flags & GST_MAP_GL) == GST_MAP_GL) {
       GST_GL_MEMORY_FLAG_SET (gl_mem, GST_GL_MEMORY_FLAG_NEED_DOWNLOAD);
+      GST_GL_MEMORY_FLAG_UNSET (gl_mem, GST_GL_MEMORY_FLAG_NEED_UPLOAD);
     } else {
       GST_GL_MEMORY_FLAG_SET (gl_mem, GST_GL_MEMORY_FLAG_NEED_UPLOAD);
+      GST_GL_MEMORY_FLAG_UNSET (gl_mem, GST_GL_MEMORY_FLAG_NEED_DOWNLOAD);
     }
   }
 
diff --git a/gst-libs/gst/gl/gstglshadervariables.c b/gst-libs/gst/gl/gstglshadervariables.c
index 325a71f..4ca2efe 100644
--- a/gst-libs/gst/gl/gstglshadervariables.c
+++ b/gst-libs/gst/gl/gstglshadervariables.c
@@ -254,12 +254,12 @@
       trimright (t, " \t");
 
       if (arraysize) {
-        char *s = g_malloc (strlen (vartype) + 32);
-        sprintf (s, "%s[%d]", vartype, arraysize);
+        gchar *s = g_strdup_printf ("%s[%d]", vartype, arraysize);
         if (strcmp (t, s)) {
           g_free (s);
           goto parse_error;
         }
+        g_free (s);
       } else {
         if (strcmp (t, vartype))
           goto parse_error;
diff --git a/gst-libs/gst/gl/gstglupload.c b/gst-libs/gst/gl/gstglupload.c
index 133fdd5..ecf6ebb 100644
--- a/gst-libs/gst/gl/gstglupload.c
+++ b/gst-libs/gst/gl/gstglupload.c
@@ -250,6 +250,11 @@
   mem = gst_buffer_peek_memory (buffer, 0);
 
   if (gst_is_gl_memory (mem)) {
+    GstGLMemory *gl_mem = (GstGLMemory *) gst_buffer_peek_memory (buffer, 0);
+
+    if (!gst_gl_context_can_share (upload->context, gl_mem->context))
+      goto raw_data_upload;
+
     if (GST_VIDEO_INFO_FORMAT (&upload->in_info) == GST_VIDEO_FORMAT_RGBA) {
       GstMapInfo map_info;
 
@@ -302,6 +307,7 @@
     }
   }
 
+raw_data_upload:
   GST_LOG_OBJECT (upload, "Attempting upload with raw data");
   /* GstVideoMeta map */
   if (!gst_video_frame_map (&upload->priv->frame, &upload->in_info, buffer,
diff --git a/gst-libs/gst/gl/gstglwindow.c b/gst-libs/gst/gl/gstglwindow.c
index 117cfa6..a35ca05 100644
--- a/gst-libs/gst/gl/gstglwindow.c
+++ b/gst-libs/gst/gl/gstglwindow.c
@@ -138,6 +138,8 @@
  * @display: a #GstGLDisplay
  *
  * Returns: (transfer full): a new #GstGLWindow using @display's connection
+ *
+ * Since: 1.4
  */
 GstGLWindow *
 gst_gl_window_new (GstGLDisplay * display)
@@ -218,6 +220,8 @@
  *
  * Sets the window that this @window should render into.  Some implementations
  * require this to be called with a valid handle before drawing can commence.
+ *
+ * Since: 1.4
  */
 void
 gst_gl_window_set_window_handle (GstGLWindow * window, guintptr handle)
@@ -239,6 +243,8 @@
  * @height: requested height of the window
  *
  * Redraw the window contents.  Implementations should invoke the draw callback.
+ *
+ * Since: 1.4
  */
 void
 gst_gl_window_draw_unlocked (GstGLWindow * window, guint width, guint height)
@@ -259,6 +265,8 @@
  * @height: requested height of the window
  *
  * Redraw the window contents.  Implementations should invoke the draw callback.
+ *
+ * Since: 1.4
  */
 void
 gst_gl_window_draw (GstGLWindow * window, guint width, guint height)
@@ -282,6 +290,8 @@
  * @window: a #GstGLWindow
  *
  * Start the execution of the runloop.
+ *
+ * Since: 1.4
  */
 void
 gst_gl_window_run (GstGLWindow * window)
@@ -301,6 +311,8 @@
  * @window: a #GstGLWindow
  *
  * Quit the runloop's execution.
+ *
+ * Since: 1.4
  */
 void
 gst_gl_window_quit (GstGLWindow * window)
@@ -379,6 +391,8 @@
  *
  * Invoke @callback with data on the window thread.  @callback is guarenteed to
  * have executed when this function returns.
+ *
+ * Since: 1.4
  */
 void
 gst_gl_window_send_message (GstGLWindow * window, GstGLWindowCB callback,
@@ -403,6 +417,8 @@
  *
  * Invoke @callback with @data on the window thread.  The callback may not
  * have been executed when this function returns.
+ *
+ * Since: 1.4
  */
 void
 gst_gl_window_send_message_async (GstGLWindow * window, GstGLWindowCB callback,
@@ -426,6 +442,8 @@
  * @destroy_notify: (destroy): called when @data is not needed any more
  *
  * Sets the draw callback called everytime gst_gl_window_draw() is called
+ *
+ * Since: 1.4
  */
 void
 gst_gl_window_set_draw_callback (GstGLWindow * window, GstGLWindowCB callback,
@@ -453,6 +471,8 @@
  * @destroy_notify: (destroy): called when @data is not needed any more
  *
  * Sets the resize callback called everytime a resize of the window occurs.
+ *
+ * Since: 1.4
  */
 void
 gst_gl_window_set_resize_callback (GstGLWindow * window,
@@ -480,6 +500,8 @@
  * @destroy_notify: (destroy): called when @data is not needed any more
  *
  * Sets the callback called when the window is about to close.
+ *
+ * Since: 1.4
  */
 void
 gst_gl_window_set_close_callback (GstGLWindow * window, GstGLWindowCB callback,
@@ -504,6 +526,8 @@
  * @window: a #GstGLWindow
  *
  * Whether the runloop is running
+ *
+ * Since: 1.4
  */
 gboolean
 gst_gl_window_is_running (GstGLWindow * window)
@@ -516,6 +540,8 @@
  * @window: a #GstGLWindow
  *
  * Returns: the windowing system display handle for this @window
+ *
+ * Since: 1.4
  */
 guintptr
 gst_gl_window_get_display (GstGLWindow * window)
@@ -534,6 +560,8 @@
  * @window: a #GstGLWindow
  *
  * Returns: the window handle we are currently rendering into
+ *
+ * Since: 1.4
  */
 guintptr
 gst_gl_window_get_window_handle (GstGLWindow * window)
@@ -552,6 +580,8 @@
  * @window: a #GstGLWindow
  *
  * Returns: (transfer full): the #GstGLContext associated with this @window
+ *
+ * Since: 1.4
  */
 GstGLContext *
 gst_gl_window_get_context (GstGLWindow * window)
diff --git a/gst-libs/gst/video/bad-video-orc-dist.c b/gst-libs/gst/video/bad-video-orc-dist.c
index d60b72e..168359f 100644
--- a/gst-libs/gst/video/bad-video-orc-dist.c
+++ b/gst-libs/gst/video/bad-video-orc-dist.c
@@ -336,7 +336,7 @@
       static const orc_uint8 bc[] = {
         1, 7, 9, 31, 98, 97, 100, 95, 118, 105, 100, 101, 111, 95, 99, 111,
         110, 118, 101, 114, 116, 95, 111, 114, 99, 95, 109, 101, 109, 99, 112,
-        121,
+            121,
         95, 50, 100, 11, 1, 1, 12, 1, 1, 42, 0, 4, 2, 0,
       };
       p = orc_program_new_from_static_bytecode (bc);
@@ -557,7 +557,7 @@
       static const orc_uint8 bc[] = {
         1, 9, 39, 98, 97, 100, 95, 118, 105, 100, 101, 111, 95, 99, 111, 110,
         118, 101, 114, 116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114,
-        116,
+            116,
         95, 73, 52, 50, 48, 95, 85, 89, 86, 89, 11, 4, 4, 11, 4, 4,
         12, 2, 2, 12, 2, 2, 12, 1, 1, 12, 1, 1, 20, 2, 196, 32,
         6, 7, 21, 1, 196, 0, 32, 4, 21, 1, 196, 1, 32, 5, 2, 0,
@@ -790,7 +790,7 @@
       static const orc_uint8 bc[] = {
         1, 9, 39, 98, 97, 100, 95, 118, 105, 100, 101, 111, 95, 99, 111, 110,
         118, 101, 114, 116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114,
-        116,
+            116,
         95, 73, 52, 50, 48, 95, 89, 85, 89, 50, 11, 4, 4, 11, 4, 4,
         12, 2, 2, 12, 2, 2, 12, 1, 1, 12, 1, 1, 20, 2, 196, 32,
         6, 7, 21, 1, 196, 0, 4, 32, 21, 1, 196, 1, 5, 32, 2, 0,
@@ -1059,7 +1059,7 @@
       static const orc_uint8 bc[] = {
         1, 9, 39, 98, 97, 100, 95, 118, 105, 100, 101, 111, 95, 99, 111, 110,
         118, 101, 114, 116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114,
-        116,
+            116,
         95, 73, 52, 50, 48, 95, 65, 89, 85, 86, 11, 4, 4, 11, 4, 4,
         12, 1, 1, 12, 1, 1, 12, 1, 1, 12, 1, 1, 14, 1, 255, 0,
         0, 0, 20, 2, 20, 2, 20, 1, 20, 1, 45, 34, 6, 45, 35, 7,
@@ -1315,7 +1315,7 @@
       static const orc_uint8 bc[] = {
         1, 9, 39, 98, 97, 100, 95, 118, 105, 100, 101, 111, 95, 99, 111, 110,
         118, 101, 114, 116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114,
-        116,
+            116,
         95, 89, 85, 89, 50, 95, 73, 52, 50, 48, 11, 2, 2, 11, 2, 2,
         11, 1, 1, 11, 1, 1, 12, 4, 4, 12, 4, 4, 20, 2, 20, 2,
         20, 2, 21, 1, 199, 32, 34, 4, 97, 0, 34, 21, 1, 199, 33, 34,
@@ -1458,7 +1458,7 @@
       static const orc_uint8 bc[] = {
         1, 7, 9, 39, 98, 97, 100, 95, 118, 105, 100, 101, 111, 95, 99, 111,
         110, 118, 101, 114, 116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101,
-        114,
+            114,
         116, 95, 85, 89, 86, 89, 95, 89, 85, 89, 50, 11, 4, 4, 12, 4,
         4, 21, 1, 183, 0, 4, 2, 0,
       };
@@ -1602,7 +1602,7 @@
       static const orc_uint8 bc[] = {
         1, 7, 9, 43, 98, 97, 100, 95, 118, 105, 100, 101, 111, 95, 99, 111,
         110, 118, 101, 114, 116, 95, 111, 114, 99, 95, 112, 108, 97, 110, 97,
-        114,
+            114,
         95, 99, 104, 114, 111, 109, 97, 95, 52, 50, 48, 95, 52, 50, 50, 11,
         1, 1, 11, 1, 1, 12, 1, 1, 42, 0, 4, 42, 1, 4, 2, 0,
 
@@ -1740,7 +1740,7 @@
       static const orc_uint8 bc[] = {
         1, 7, 9, 43, 98, 97, 100, 95, 118, 105, 100, 101, 111, 95, 99, 111,
         110, 118, 101, 114, 116, 95, 111, 114, 99, 95, 112, 108, 97, 110, 97,
-        114,
+            114,
         95, 99, 104, 114, 111, 109, 97, 95, 52, 50, 48, 95, 52, 52, 52, 11,
         2, 2, 11, 2, 2, 12, 1, 1, 20, 2, 151, 32, 4, 97, 0, 32,
         97, 1, 32, 2, 0,
@@ -1871,7 +1871,7 @@
       static const orc_uint8 bc[] = {
         1, 7, 9, 43, 98, 97, 100, 95, 118, 105, 100, 101, 111, 95, 99, 111,
         110, 118, 101, 114, 116, 95, 111, 114, 99, 95, 112, 108, 97, 110, 97,
-        114,
+            114,
         95, 99, 104, 114, 111, 109, 97, 95, 52, 50, 50, 95, 52, 52, 52, 11,
         2, 2, 12, 1, 1, 20, 2, 151, 32, 4, 97, 0, 32, 2, 0,
       };
@@ -2014,7 +2014,7 @@
       static const orc_uint8 bc[] = {
         1, 7, 9, 43, 98, 97, 100, 95, 118, 105, 100, 101, 111, 95, 99, 111,
         110, 118, 101, 114, 116, 95, 111, 114, 99, 95, 112, 108, 97, 110, 97,
-        114,
+            114,
         95, 99, 104, 114, 111, 109, 97, 95, 52, 52, 52, 95, 52, 50, 50, 11,
         1, 1, 12, 2, 2, 20, 1, 20, 1, 199, 32, 33, 4, 39, 0, 32,
         33, 2, 0,
@@ -2183,7 +2183,7 @@
       static const orc_uint8 bc[] = {
         1, 7, 9, 43, 98, 97, 100, 95, 118, 105, 100, 101, 111, 95, 99, 111,
         110, 118, 101, 114, 116, 95, 111, 114, 99, 95, 112, 108, 97, 110, 97,
-        114,
+            114,
         95, 99, 104, 114, 111, 109, 97, 95, 52, 52, 52, 95, 52, 50, 48, 11,
         1, 1, 12, 2, 2, 12, 2, 2, 20, 2, 20, 1, 20, 1, 21, 1,
         39, 32, 4, 5, 199, 33, 34, 32, 39, 0, 33, 34, 2, 0,
@@ -2328,7 +2328,7 @@
       static const orc_uint8 bc[] = {
         1, 7, 9, 43, 98, 97, 100, 95, 118, 105, 100, 101, 111, 95, 99, 111,
         110, 118, 101, 114, 116, 95, 111, 114, 99, 95, 112, 108, 97, 110, 97,
-        114,
+            114,
         95, 99, 104, 114, 111, 109, 97, 95, 52, 50, 50, 95, 52, 50, 48, 11,
         1, 1, 12, 1, 1, 12, 1, 1, 39, 0, 4, 5, 2, 0,
       };
@@ -2564,7 +2564,7 @@
       static const orc_uint8 bc[] = {
         1, 7, 9, 39, 98, 97, 100, 95, 118, 105, 100, 101, 111, 95, 99, 111,
         110, 118, 101, 114, 116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101,
-        114,
+            114,
         116, 95, 89, 85, 89, 50, 95, 65, 89, 85, 86, 11, 8, 8, 12, 4,
         4, 14, 2, 255, 0, 0, 0, 20, 2, 20, 2, 20, 4, 20, 4, 21,
         1, 199, 33, 32, 4, 21, 1, 196, 34, 16, 32, 195, 35, 33, 33, 21,
@@ -2810,7 +2810,7 @@
       static const orc_uint8 bc[] = {
         1, 7, 9, 39, 98, 97, 100, 95, 118, 105, 100, 101, 111, 95, 99, 111,
         110, 118, 101, 114, 116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101,
-        114,
+            114,
         116, 95, 85, 89, 86, 89, 95, 65, 89, 85, 86, 11, 8, 8, 12, 4,
         4, 14, 2, 255, 0, 0, 0, 20, 2, 20, 2, 20, 4, 20, 4, 21,
         1, 199, 32, 33, 4, 21, 1, 196, 34, 16, 32, 195, 35, 33, 33, 21,
@@ -3006,7 +3006,7 @@
       static const orc_uint8 bc[] = {
         1, 7, 9, 39, 98, 97, 100, 95, 118, 105, 100, 101, 111, 95, 99, 111,
         110, 118, 101, 114, 116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101,
-        114,
+            114,
         116, 95, 89, 85, 89, 50, 95, 89, 52, 50, 66, 11, 2, 2, 11, 1,
         1, 11, 1, 1, 12, 4, 4, 20, 2, 21, 1, 199, 32, 0, 4, 199,
         2, 1, 32, 2, 0,
@@ -3199,7 +3199,7 @@
       static const orc_uint8 bc[] = {
         1, 7, 9, 39, 98, 97, 100, 95, 118, 105, 100, 101, 111, 95, 99, 111,
         110, 118, 101, 114, 116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101,
-        114,
+            114,
         116, 95, 85, 89, 86, 89, 95, 89, 52, 50, 66, 11, 2, 2, 11, 1,
         1, 11, 1, 1, 12, 4, 4, 20, 2, 21, 1, 199, 0, 32, 4, 199,
         2, 1, 32, 2, 0,
@@ -3404,7 +3404,7 @@
       static const orc_uint8 bc[] = {
         1, 7, 9, 39, 98, 97, 100, 95, 118, 105, 100, 101, 111, 95, 99, 111,
         110, 118, 101, 114, 116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101,
-        114,
+            114,
         116, 95, 89, 85, 89, 50, 95, 89, 52, 52, 52, 11, 2, 2, 11, 2,
         2, 11, 2, 2, 12, 4, 4, 20, 2, 20, 1, 20, 1, 21, 1, 199,
         32, 0, 4, 199, 34, 33, 32, 151, 1, 33, 151, 2, 34, 2, 0,
@@ -3615,7 +3615,7 @@
       static const orc_uint8 bc[] = {
         1, 7, 9, 39, 98, 97, 100, 95, 118, 105, 100, 101, 111, 95, 99, 111,
         110, 118, 101, 114, 116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101,
-        114,
+            114,
         116, 95, 85, 89, 86, 89, 95, 89, 52, 52, 52, 11, 2, 2, 11, 2,
         2, 11, 2, 2, 12, 4, 4, 20, 2, 20, 1, 20, 1, 21, 1, 199,
         0, 32, 4, 199, 34, 33, 32, 151, 1, 33, 151, 2, 34, 2, 0,
@@ -3863,7 +3863,7 @@
       static const orc_uint8 bc[] = {
         1, 9, 39, 98, 97, 100, 95, 118, 105, 100, 101, 111, 95, 99, 111, 110,
         118, 101, 114, 116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114,
-        116,
+            116,
         95, 85, 89, 86, 89, 95, 73, 52, 50, 48, 11, 2, 2, 11, 2, 2,
         11, 1, 1, 11, 1, 1, 12, 4, 4, 12, 4, 4, 20, 2, 20, 2,
         20, 2, 21, 1, 199, 34, 32, 4, 97, 0, 34, 21, 1, 199, 34, 33,
@@ -4244,7 +4244,7 @@
       static const orc_uint8 bc[] = {
         1, 7, 9, 39, 98, 97, 100, 95, 118, 105, 100, 101, 111, 95, 99, 111,
         110, 118, 101, 114, 116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101,
-        114,
+            114,
         116, 95, 65, 89, 85, 86, 95, 73, 52, 50, 48, 11, 2, 2, 11, 2,
         2, 11, 1, 1, 11, 1, 1, 12, 8, 8, 12, 8, 8, 20, 4, 20,
         4, 20, 4, 20, 4, 20, 2, 20, 2, 20, 1, 20, 1, 21, 1, 198,
@@ -4514,7 +4514,7 @@
       static const orc_uint8 bc[] = {
         1, 7, 9, 39, 98, 97, 100, 95, 118, 105, 100, 101, 111, 95, 99, 111,
         110, 118, 101, 114, 116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101,
-        114,
+            114,
         116, 95, 65, 89, 85, 86, 95, 89, 85, 89, 50, 11, 4, 4, 12, 8,
         8, 20, 2, 20, 2, 20, 2, 20, 4, 20, 4, 21, 1, 198, 36, 35,
         4, 198, 33, 34, 36, 21, 1, 39, 33, 33, 34, 21, 1, 189, 32, 35,
@@ -4756,7 +4756,7 @@
       static const orc_uint8 bc[] = {
         1, 7, 9, 39, 98, 97, 100, 95, 118, 105, 100, 101, 111, 95, 99, 111,
         110, 118, 101, 114, 116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101,
-        114,
+            114,
         116, 95, 65, 89, 85, 86, 95, 85, 89, 86, 89, 11, 4, 4, 12, 8,
         8, 20, 2, 20, 2, 20, 2, 20, 4, 20, 4, 21, 1, 198, 36, 35,
         4, 198, 33, 34, 36, 21, 1, 39, 33, 33, 34, 21, 1, 189, 32, 35,
@@ -5008,7 +5008,7 @@
       static const orc_uint8 bc[] = {
         1, 7, 9, 39, 98, 97, 100, 95, 118, 105, 100, 101, 111, 95, 99, 111,
         110, 118, 101, 114, 116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101,
-        114,
+            114,
         116, 95, 65, 89, 85, 86, 95, 89, 52, 50, 66, 11, 2, 2, 11, 1,
         1, 11, 1, 1, 12, 8, 8, 20, 4, 20, 4, 20, 2, 20, 2, 21,
         1, 198, 33, 32, 4, 198, 34, 35, 33, 21, 1, 39, 34, 34, 35, 199,
@@ -5213,7 +5213,7 @@
       static const orc_uint8 bc[] = {
         1, 7, 9, 39, 98, 97, 100, 95, 118, 105, 100, 101, 111, 95, 99, 111,
         110, 118, 101, 114, 116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101,
-        114,
+            114,
         116, 95, 65, 89, 85, 86, 95, 89, 52, 52, 52, 11, 1, 1, 11, 1,
         1, 11, 1, 1, 12, 4, 4, 20, 2, 20, 2, 198, 33, 32, 4, 199,
         2, 1, 33, 189, 0, 32, 2, 0,
@@ -5409,7 +5409,7 @@
       static const orc_uint8 bc[] = {
         1, 7, 9, 39, 98, 97, 100, 95, 118, 105, 100, 101, 111, 95, 99, 111,
         110, 118, 101, 114, 116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101,
-        114,
+            114,
         116, 95, 89, 52, 50, 66, 95, 89, 85, 89, 50, 11, 4, 4, 12, 2,
         2, 12, 1, 1, 12, 1, 1, 20, 2, 196, 32, 5, 6, 21, 1, 196,
         0, 4, 32, 2, 0,
@@ -5602,7 +5602,7 @@
       static const orc_uint8 bc[] = {
         1, 7, 9, 39, 98, 97, 100, 95, 118, 105, 100, 101, 111, 95, 99, 111,
         110, 118, 101, 114, 116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101,
-        114,
+            114,
         116, 95, 89, 52, 50, 66, 95, 85, 89, 86, 89, 11, 4, 4, 12, 2,
         2, 12, 1, 1, 12, 1, 1, 20, 2, 196, 32, 5, 6, 21, 1, 196,
         0, 32, 4, 2, 0,
@@ -5855,7 +5855,7 @@
       static const orc_uint8 bc[] = {
         1, 7, 9, 39, 98, 97, 100, 95, 118, 105, 100, 101, 111, 95, 99, 111,
         110, 118, 101, 114, 116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101,
-        114,
+            114,
         116, 95, 89, 52, 50, 66, 95, 65, 89, 85, 86, 11, 8, 8, 12, 2,
         2, 12, 1, 1, 12, 1, 1, 14, 1, 255, 0, 0, 0, 20, 2, 20,
         2, 20, 4, 20, 4, 196, 32, 5, 6, 21, 1, 196, 35, 16, 4, 195,
@@ -6099,7 +6099,7 @@
       static const orc_uint8 bc[] = {
         1, 7, 9, 39, 98, 97, 100, 95, 118, 105, 100, 101, 111, 95, 99, 111,
         110, 118, 101, 114, 116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101,
-        114,
+            114,
         116, 95, 89, 52, 52, 52, 95, 89, 85, 89, 50, 11, 4, 4, 12, 2,
         2, 12, 2, 2, 12, 2, 2, 20, 2, 20, 4, 20, 2, 20, 2, 21,
         1, 196, 33, 5, 6, 198, 34, 35, 33, 21, 1, 39, 32, 34, 35, 21,
@@ -6342,7 +6342,7 @@
       static const orc_uint8 bc[] = {
         1, 7, 9, 39, 98, 97, 100, 95, 118, 105, 100, 101, 111, 95, 99, 111,
         110, 118, 101, 114, 116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101,
-        114,
+            114,
         116, 95, 89, 52, 52, 52, 95, 85, 89, 86, 89, 11, 4, 4, 12, 2,
         2, 12, 2, 2, 12, 2, 2, 20, 2, 20, 4, 20, 2, 20, 2, 21,
         1, 196, 33, 5, 6, 198, 34, 35, 33, 21, 1, 39, 32, 34, 35, 21,
@@ -6561,7 +6561,7 @@
       static const orc_uint8 bc[] = {
         1, 7, 9, 39, 98, 97, 100, 95, 118, 105, 100, 101, 111, 95, 99, 111,
         110, 118, 101, 114, 116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101,
-        114,
+            114,
         116, 95, 89, 52, 52, 52, 95, 65, 89, 85, 86, 11, 4, 4, 12, 1,
         1, 12, 1, 1, 12, 1, 1, 14, 1, 255, 0, 0, 0, 20, 2, 20,
         2, 196, 32, 5, 6, 196, 33, 16, 4, 195, 0, 33, 32, 2, 0,
@@ -6978,7 +6978,7 @@
       static const orc_uint8 bc[] = {
         1, 7, 9, 39, 98, 97, 100, 95, 118, 105, 100, 101, 111, 95, 99, 111,
         110, 118, 101, 114, 116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101,
-        114,
+            114,
         116, 95, 65, 89, 85, 86, 95, 65, 82, 71, 66, 11, 4, 4, 12, 4,
         4, 14, 1, 128, 0, 0, 0, 16, 2, 16, 2, 16, 2, 16, 2, 16,
         2, 20, 1, 20, 1, 20, 1, 20, 1, 20, 2, 20, 2, 20, 2, 20,
@@ -7458,7 +7458,7 @@
       static const orc_uint8 bc[] = {
         1, 7, 9, 39, 98, 97, 100, 95, 118, 105, 100, 101, 111, 95, 99, 111,
         110, 118, 101, 114, 116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101,
-        114,
+            114,
         116, 95, 65, 89, 85, 86, 95, 66, 71, 82, 65, 11, 4, 4, 12, 4,
         4, 14, 1, 128, 0, 0, 0, 16, 2, 16, 2, 16, 2, 16, 2, 16,
         2, 20, 1, 20, 1, 20, 1, 20, 1, 20, 2, 20, 2, 20, 2, 20,
@@ -7938,7 +7938,7 @@
       static const orc_uint8 bc[] = {
         1, 7, 9, 39, 98, 97, 100, 95, 118, 105, 100, 101, 111, 95, 99, 111,
         110, 118, 101, 114, 116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101,
-        114,
+            114,
         116, 95, 65, 89, 85, 86, 95, 65, 66, 71, 82, 11, 4, 4, 12, 4,
         4, 14, 1, 128, 0, 0, 0, 16, 2, 16, 2, 16, 2, 16, 2, 16,
         2, 20, 1, 20, 1, 20, 1, 20, 1, 20, 2, 20, 2, 20, 2, 20,
@@ -8418,7 +8418,7 @@
       static const orc_uint8 bc[] = {
         1, 7, 9, 39, 98, 97, 100, 95, 118, 105, 100, 101, 111, 95, 99, 111,
         110, 118, 101, 114, 116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101,
-        114,
+            114,
         116, 95, 65, 89, 85, 86, 95, 82, 71, 66, 65, 11, 4, 4, 12, 4,
         4, 14, 1, 128, 0, 0, 0, 16, 2, 16, 2, 16, 2, 16, 2, 16,
         2, 20, 1, 20, 1, 20, 1, 20, 1, 20, 2, 20, 2, 20, 2, 20,
@@ -8901,7 +8901,7 @@
       static const orc_uint8 bc[] = {
         1, 9, 39, 98, 97, 100, 95, 118, 105, 100, 101, 111, 95, 99, 111, 110,
         118, 101, 114, 116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114,
-        116,
+            116,
         95, 73, 52, 50, 48, 95, 66, 71, 82, 65, 11, 4, 4, 12, 1, 1,
         12, 1, 1, 12, 1, 1, 14, 1, 128, 0, 0, 0, 14, 4, 127, 0,
         0, 0, 16, 2, 16, 2, 16, 2, 16, 2, 16, 2, 20, 2, 20, 2,
diff --git a/gst-libs/gst/video/gstvideoaggregator.c b/gst-libs/gst/video/gstvideoaggregator.c
index 02e485c..5d2e3f0 100644
--- a/gst-libs/gst/video/gstvideoaggregator.c
+++ b/gst-libs/gst/video/gstvideoaggregator.c
@@ -1056,6 +1056,9 @@
               converted_buf, GST_MAP_READWRITE)) {
         GST_WARNING_OBJECT (vagg, "Could not map converted frame");
 
+        g_slice_free (GstVideoFrame, converted_frame);
+        gst_video_frame_unmap (frame);
+        g_slice_free (GstVideoFrame, frame);
         return FALSE;
       }
 
@@ -1063,6 +1066,7 @@
           frame);
       pad->converted_buffer = converted_buf;
       gst_video_frame_unmap (frame);
+      g_slice_free (GstVideoFrame, frame);
     } else {
       converted_frame = frame;
       converted_buf = pad->buffer;
diff --git a/gst-plugins-bad.doap b/gst-plugins-bad.doap
index 90a3db5..f7ec8a6 100644
--- a/gst-plugins-bad.doap
+++ b/gst-plugins-bad.doap
@@ -35,6 +35,16 @@
 
  <release>
   <Version>
+   <revision>1.4.4</revision>
+   <branch>1.4</branch>
+   <name></name>
+   <created>2014-11-06</created>
+   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-1.4.4.tar.xz" />
+  </Version>
+ </release>
+
+ <release>
+  <Version>
    <revision>1.4.3</revision>
    <branch>1.4</branch>
    <name></name>
diff --git a/gst-plugins-bad.spec b/gst-plugins-bad.spec
index a42d9ec..8179ece 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.4.3
+Version: 1.4.4
 Release: 1.gst
 # The freeze and nfs plugins are LGPLv2 (only)
 License: LGPLv2+ and LGPLv2
diff --git a/gst/bayer/gstbayerorc-dist.c b/gst/bayer/gstbayerorc-dist.c
index 1dc708d..2165615 100644
--- a/gst/bayer/gstbayerorc-dist.c
+++ b/gst/bayer/gstbayerorc-dist.c
@@ -336,7 +336,7 @@
       static const orc_uint8 bc[] = {
         1, 9, 34, 98, 97, 121, 101, 114, 95, 111, 114, 99, 95, 104, 111, 114,
         105, 122, 95, 117, 112, 115, 97, 109, 112, 108, 101, 95, 117, 110, 97,
-        108,
+            108,
         105, 103, 110, 101, 100, 11, 2, 2, 11, 2, 2, 12, 2, 2, 14, 4,
         1, 0, 0, 0, 20, 2, 20, 1, 20, 1, 20, 1, 20, 1, 199, 34,
         33, 4, 83, 32, 4, 16, 199, 36, 35, 32, 39, 36, 34, 36, 196, 0,
diff --git a/gst/fieldanalysis/gstfieldanalysisorc-dist.c b/gst/fieldanalysis/gstfieldanalysisorc-dist.c
index 06951b7..f50df64 100644
--- a/gst/fieldanalysis/gstfieldanalysisorc-dist.c
+++ b/gst/fieldanalysis/gstfieldanalysisorc-dist.c
@@ -283,7 +283,7 @@
       static const orc_uint8 bc[] = {
         1, 9, 44, 102, 105, 101, 108, 100, 97, 110, 97, 108, 121, 115, 105, 115,
         95, 111, 114, 99, 95, 115, 97, 109, 101, 95, 112, 97, 114, 105, 116,
-        121,
+            121,
         95, 115, 97, 100, 95, 112, 108, 97, 110, 97, 114, 95, 121, 117, 118, 12,
         1, 1, 12, 1, 1, 13, 4, 16, 4, 20, 2, 20, 2, 20, 4, 20,
         4, 150, 32, 4, 150, 33, 5, 98, 32, 32, 33, 69, 32, 32, 154, 34,
@@ -466,9 +466,9 @@
       static const orc_uint8 bc[] = {
         1, 9, 44, 102, 105, 101, 108, 100, 97, 110, 97, 108, 121, 115, 105, 115,
         95, 111, 114, 99, 95, 115, 97, 109, 101, 95, 112, 97, 114, 105, 116,
-        121,
+            121,
         95, 115, 115, 100, 95, 112, 108, 97, 110, 97, 114, 95, 121, 117, 118,
-        12,
+            12,
         1, 1, 12, 1, 1, 13, 4, 16, 4, 20, 2, 20, 2, 20, 4, 20,
         4, 150, 32, 4, 150, 33, 5, 98, 32, 32, 33, 176, 34, 32, 32, 111,
         35, 34, 24, 106, 34, 34, 35, 181, 12, 34, 2, 0,
@@ -758,7 +758,7 @@
       static const orc_uint8 bc[] = {
         1, 9, 46, 102, 105, 101, 108, 100, 97, 110, 97, 108, 121, 115, 105, 115,
         95, 111, 114, 99, 95, 115, 97, 109, 101, 95, 112, 97, 114, 105, 116,
-        121,
+            121,
         95, 51, 95, 116, 97, 112, 95, 112, 108, 97, 110, 97, 114, 95, 121, 117,
         118, 12, 1, 1, 12, 1, 1, 12, 1, 1, 12, 1, 1, 12, 1, 1,
         12, 1, 1, 13, 4, 14, 4, 2, 0, 0, 0, 16, 4, 20, 2, 20,
@@ -1099,7 +1099,7 @@
       static const orc_uint8 bc[] = {
         1, 9, 50, 102, 105, 101, 108, 100, 97, 110, 97, 108, 121, 115, 105, 115,
         95, 111, 114, 99, 95, 111, 112, 112, 111, 115, 105, 116, 101, 95, 112,
-        97,
+            97,
         114, 105, 116, 121, 95, 53, 95, 116, 97, 112, 95, 112, 108, 97, 110, 97,
         114, 95, 121, 117, 118, 12, 1, 1, 12, 1, 1, 12, 1, 1, 12, 1,
         1, 12, 1, 1, 13, 4, 14, 4, 2, 0, 0, 0, 14, 4, 3, 0,
diff --git a/gst/mpegtsdemux/mpegtsbase.c b/gst/mpegtsdemux/mpegtsbase.c
index 0ca7253..9ec977a 100644
--- a/gst/mpegtsdemux/mpegtsbase.c
+++ b/gst/mpegtsdemux/mpegtsbase.c
@@ -1016,15 +1016,6 @@
   return TRUE;
 }
 
-static gboolean
-gst_mpegts_base_handle_eos (MpegTSBase * base)
-{
-  g_hash_table_foreach_remove (base->programs, (GHRFunc) remove_each_program,
-      base);
-  /* finally remove  */
-  return TRUE;
-}
-
 static inline GstFlowReturn
 mpegts_base_drain (MpegTSBase * base)
 {
@@ -1075,10 +1066,6 @@
     case GST_EVENT_STREAM_START:
       gst_event_unref (event);
       break;
-    case GST_EVENT_EOS:
-      res = GST_MPEGTS_BASE_GET_CLASS (base)->push_event (base, event);
-      res = gst_mpegts_base_handle_eos (base);
-      break;
     case GST_EVENT_CAPS:
       /* FIXME, do something */
       gst_event_unref (event);
diff --git a/gst/mpegtsdemux/tsdemux.c b/gst/mpegtsdemux/tsdemux.c
index 297f375..9b2debb 100644
--- a/gst/mpegtsdemux/tsdemux.c
+++ b/gst/mpegtsdemux/tsdemux.c
@@ -1850,7 +1850,8 @@
   } else {
     GST_WARNING ("CONTINUITY: Mismatch packet %d, stream %d",
         cc, stream->continuity_counter);
-    stream->state = PENDING_PACKET_DISCONT;
+    if (stream->state != PENDING_PACKET_EMPTY)
+      stream->state = PENDING_PACKET_DISCONT;
   }
   stream->continuity_counter = cc;
 
diff --git a/gst/rawparse/gstrawparse.c b/gst/rawparse/gstrawparse.c
index f807d9e..eff74dc 100644
--- a/gst/rawparse/gstrawparse.c
+++ b/gst/rawparse/gstrawparse.c
@@ -291,7 +291,7 @@
   GstRawParse *rp = GST_RAW_PARSE (parent);
   GstFlowReturn ret = GST_FLOW_OK;
   GstRawParseClass *rp_class = GST_RAW_PARSE_GET_CLASS (rp);
-  guint buffersize;
+  guint buffersize, available;
 
   if (G_UNLIKELY (GST_BUFFER_FLAG_IS_SET (buffer, GST_BUFFER_FLAG_DISCONT))) {
     GST_DEBUG_OBJECT (rp, "received DISCONT buffer");
@@ -310,14 +310,15 @@
 
   gst_adapter_push (rp->adapter, buffer);
 
+  available = gst_adapter_available (rp->adapter);
   if (rp_class->multiple_frames_per_buffer) {
-    buffersize = gst_adapter_available (rp->adapter);
+    buffersize = available;
     buffersize -= buffersize % rp->framesize;
   } else {
     buffersize = rp->framesize;
   }
 
-  while (gst_adapter_available (rp->adapter) >= buffersize) {
+  while (buffersize > 0 && gst_adapter_available (rp->adapter) >= buffersize) {
     buffer = gst_adapter_take_buffer (rp->adapter, buffersize);
 
     ret = gst_raw_parse_push_buffer (rp, buffer);
@@ -697,8 +698,6 @@
       if (segment.format != GST_FORMAT_TIME) {
         gst_event_unref (event);
 
-        segment.format = GST_FORMAT_TIME;
-
         ret =
             gst_raw_parse_convert (rp, segment.format, segment.start,
             GST_FORMAT_TIME, (gint64 *) & segment.start);
@@ -713,6 +712,8 @@
           break;
         }
 
+        segment.format = GST_FORMAT_TIME;
+
         event = gst_event_new_segment (&segment);
       }
 
diff --git a/gst/videoparsers/gsth264parse.c b/gst/videoparsers/gsth264parse.c
index 697ff87..506cd61 100644
--- a/gst/videoparsers/gsth264parse.c
+++ b/gst/videoparsers/gsth264parse.c
@@ -1337,6 +1337,19 @@
           par_n, par_d, NULL);
     }
 
+    /* set profile and level in caps */
+    if (sps) {
+      GstMapInfo map;
+      GstBuffer *sps_buf = h264parse->sps_nals[sps->id];
+
+      if (sps_buf) {
+        gst_buffer_map (sps_buf, &map, GST_MAP_READ);
+        gst_codec_utils_h264_caps_set_level_and_profile (caps,
+            map.data + 1, map.size - 1);
+        gst_buffer_unmap (sps_buf, &map);
+      }
+    }
+
     src_caps = gst_pad_get_current_caps (GST_BASE_PARSE_SRC_PAD (h264parse));
 
     if (src_caps
@@ -1680,6 +1693,15 @@
 
     /* codec tag */
     caps = gst_pad_get_current_caps (GST_BASE_PARSE_SRC_PAD (parse));
+    if (caps == NULL) {
+      if (GST_PAD_IS_FLUSHING (GST_BASE_PARSE_SRC_PAD (h264parse))) {
+        GST_INFO_OBJECT (h264parse, "Src pad is flushing");
+        return GST_FLOW_FLUSHING;
+      } else {
+        GST_INFO_OBJECT (h264parse, "Src pad is not negotiated!");
+        return GST_FLOW_NOT_NEGOTIATED;
+      }
+    }
     gst_pb_utils_add_codec_description_to_tag_list (taglist,
         GST_TAG_VIDEO_CODEC, caps);
     gst_caps_unref (caps);
diff --git a/gst/videoparsers/gsth265parse.c b/gst/videoparsers/gsth265parse.c
index caf4616..9a98dcc 100644
--- a/gst/videoparsers/gsth265parse.c
+++ b/gst/videoparsers/gsth265parse.c
@@ -1335,6 +1335,19 @@
           par_n, par_d, NULL);
     }
 
+    /* set profile and level in caps */
+    if (sps) {
+      GstMapInfo map;
+      GstBuffer *sps_buf = h265parse->sps_nals[sps->id];
+
+      if (sps_buf) {
+        gst_buffer_map (sps_buf, &map, GST_MAP_READ);
+        gst_codec_utils_h265_caps_set_level_tier_and_profile (caps,
+            map.data + 1, map.size - 1);
+        gst_buffer_unmap (sps_buf, &map);
+      }
+    }
+
     src_caps = gst_pad_get_current_caps (GST_BASE_PARSE_SRC_PAD (h265parse));
 
     if (src_caps
diff --git a/gst/videoparsers/gstvc1parse.c b/gst/videoparsers/gstvc1parse.c
index 54695ec..02e2d0f 100644
--- a/gst/videoparsers/gstvc1parse.c
+++ b/gst/videoparsers/gstvc1parse.c
@@ -115,6 +115,16 @@
   "frame-layer", VC1_STREAM_FORMAT_FRAME_LAYER}
 };
 
+static const struct
+{
+  gchar str[5];
+  GstVC1ParseFormat en;
+} parse_formats[] = {
+  {
+  "WMV3", GST_VC1_PARSE_FORMAT_WMV3}, {
+  "WVC1", GST_VC1_PARSE_FORMAT_WVC1}
+};
+
 static const gchar *
 stream_format_to_string (VC1StreamFormat stream_format)
 {
@@ -151,6 +161,12 @@
   return -1;
 }
 
+static const gchar *
+parse_format_to_string (GstVC1ParseFormat format)
+{
+  return parse_formats[format].str;
+}
+
 static GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink",
     GST_PAD_SINK,
     GST_PAD_ALWAYS,
@@ -300,7 +316,9 @@
 static gboolean
 gst_vc1_parse_renegotiate (GstVC1Parse * vc1parse)
 {
+  GstCaps *in_caps;
   GstCaps *allowed_caps;
+  GstCaps *tmp;
 
   /* Negotiate with downstream here */
   GST_DEBUG_OBJECT (vc1parse, "Renegotiating");
@@ -314,9 +332,25 @@
     GST_DEBUG_OBJECT (vc1parse, "Downstream allowed caps: %" GST_PTR_FORMAT,
         allowed_caps);
 
-    allowed_caps = gst_caps_make_writable (allowed_caps);
-    allowed_caps = gst_caps_truncate (allowed_caps);
-    s = gst_caps_get_structure (allowed_caps, 0);
+    /* Downstream element can have differents caps according to wmv format
+     * so intersect to select the good caps */
+    in_caps = gst_caps_new_simple ("video/x-wmv",
+        "format", G_TYPE_STRING, parse_format_to_string (vc1parse->format),
+        NULL);
+
+    tmp = gst_caps_intersect_full (allowed_caps, in_caps,
+        GST_CAPS_INTERSECT_FIRST);
+    gst_caps_unref (in_caps);
+
+    if (gst_caps_is_empty (tmp)) {
+      GST_ERROR_OBJECT (vc1parse, "Empty caps, downstream doesn't support %s",
+          parse_format_to_string (vc1parse->format));
+      gst_caps_unref (tmp);
+      return FALSE;
+    }
+
+    tmp = gst_caps_make_writable (tmp);
+    s = gst_caps_get_structure (tmp, 0);
 
     /* If already fixed this does nothing */
     gst_structure_fixate_field_string (s, "header-format", "asf");
@@ -343,8 +377,10 @@
       vc1parse->output_stream_format =
           stream_format_from_string (stream_format);
     }
+    gst_caps_unref (tmp);
   } else if (gst_caps_is_empty (allowed_caps)) {
     GST_ERROR_OBJECT (vc1parse, "Empty caps");
+    gst_caps_unref (allowed_caps);
     return FALSE;
   } else {
     GST_DEBUG_OBJECT (vc1parse, "Using input header/stream format");
@@ -862,6 +898,14 @@
   return TRUE;
 }
 
+static inline void
+calculate_mb_size (GstVC1SeqHdr * seqhdr, guint width, guint height)
+{
+  seqhdr->mb_width = (width + 15) >> 4;
+  seqhdr->mb_height = (height + 15) >> 4;
+  seqhdr->mb_stride = seqhdr->mb_width + 1;
+}
+
 static gboolean
 gst_vc1_parse_handle_bdu (GstVC1Parse * vc1parse, GstVC1StartCode startcode,
     GstBuffer * buffer, guint offset, guint size)
@@ -1051,7 +1095,7 @@
     /* frame-layer or sequence-layer-frame-layer */
     g_assert (size >= 8);
     /* Parse frame layer size */
-    framesize = GST_READ_UINT24_LE (data + 1) + 8;
+    framesize = GST_READ_UINT24_LE (data) + 8;
   }
 
 
@@ -1172,6 +1216,34 @@
         /* Must be a frame or a frame + field */
         /* TODO: Check if keyframe */
       }
+    } else {
+      /* In simple/main, we basically have a raw frame, so parse it */
+      GstVC1ParserResult pres;
+      GstVC1FrameHdr frame_hdr;
+      GstVC1SeqHdr seq_hdr;
+
+      if (!vc1parse->seq_hdr_buffer) {
+        /* Build seq_hdr from sequence-layer to be able to parse frame */
+        seq_hdr.profile = vc1parse->profile;
+        seq_hdr.struct_c = vc1parse->seq_layer.struct_c;
+        calculate_mb_size (&seq_hdr, vc1parse->seq_layer.struct_a.horiz_size,
+            vc1parse->seq_layer.struct_a.vert_size);
+      } else {
+        seq_hdr = vc1parse->seq_hdr;
+      }
+
+      pres = gst_vc1_parse_frame_header (data, size, &frame_hdr,
+          &seq_hdr, NULL);
+      if (pres != GST_VC1_PARSER_OK) {
+        GST_ERROR_OBJECT (vc1parse, "Invalid VC1 frame header");
+        ret = GST_FLOW_ERROR;
+        goto done;
+      }
+
+      if (frame_hdr.ptype == GST_VC1_PICTURE_TYPE_I)
+        GST_BUFFER_FLAG_UNSET (buffer, GST_BUFFER_FLAG_DELTA_UNIT);
+      else
+        GST_BUFFER_FLAG_SET (buffer, GST_BUFFER_FLAG_DELTA_UNIT);
     }
     ret = GST_FLOW_OK;
   } else {
@@ -1772,9 +1844,7 @@
     gst_buffer_unmap (codec_data, &minfo);
   } else {
     vc1parse->input_header_format = VC1_HEADER_FORMAT_NONE;
-    if (header_format && strcmp (header_format, "sequence-layer") != 0)
-      vc1parse->input_header_format = VC1_HEADER_FORMAT_SEQUENCE_LAYER;
-    else if (header_format && strcmp (header_format, "none") != 0)
+    if (header_format && strcmp (header_format, "none") != 0)
       GST_WARNING_OBJECT (vc1parse,
           "Upstream claimed '%s' header format but 'none' detected",
           header_format);
diff --git a/gst/videoparsers/gstvc1parse.h b/gst/videoparsers/gstvc1parse.h
index 6d97ec8..28c3c4f 100644
--- a/gst/videoparsers/gstvc1parse.h
+++ b/gst/videoparsers/gstvc1parse.h
@@ -56,7 +56,7 @@
 } VC1StreamFormat;
 
 typedef enum {
-  GST_VC1_PARSE_FORMAT_WMV3,
+  GST_VC1_PARSE_FORMAT_WMV3 = 0,
   GST_VC1_PARSE_FORMAT_WVC1
 } GstVC1ParseFormat;
 
diff --git a/ltmain.sh b/ltmain.sh
index 3fd54df..bffda54 100644
--- a/ltmain.sh
+++ b/ltmain.sh
@@ -70,7 +70,7 @@
 #         compiler:		$LTCC
 #         compiler flags:		$LTCFLAGS
 #         linker:		$LD (gnu? $with_gnu_ld)
-#         $progname:	(GNU libtool) 2.4.2 Debian-2.4.2-1.10
+#         $progname:	(GNU libtool) 2.4.2 Debian-2.4.2-1.11
 #         automake:	$automake_version
 #         autoconf:	$autoconf_version
 #
@@ -80,7 +80,7 @@
 
 PROGRAM=libtool
 PACKAGE=libtool
-VERSION="2.4.2 Debian-2.4.2-1.10"
+VERSION="2.4.2 Debian-2.4.2-1.11"
 TIMESTAMP=""
 package_revision=1.3337
 
diff --git a/po/af.gmo b/po/af.gmo
index b6017fd..1bfc47b 100644
--- a/po/af.gmo
+++ b/po/af.gmo
Binary files differ
diff --git a/po/af.po b/po/af.po
index 2cf9fe0..9cc411e 100644
--- a/po/af.po
+++ b/po/af.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins 0.7.6\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-09-24 11:38+0300\n"
+"POT-Creation-Date: 2014-11-06 12:31+0100\n"
 "PO-Revision-Date: 2004-03-18 14:16+0200\n"
 "Last-Translator: Petri Jooste <rkwjpj@puk.ac.za>\n"
 "Language-Team: Afrikaans <i18n@af.org.za>\n"
diff --git a/po/az.gmo b/po/az.gmo
index 0010e78..9240759 100644
--- a/po/az.gmo
+++ b/po/az.gmo
Binary files differ
diff --git a/po/az.po b/po/az.po
index 12ad2ba..5b66436 100644
--- a/po/az.po
+++ b/po/az.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-0.8.0\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-09-24 11:38+0300\n"
+"POT-Creation-Date: 2014-11-06 12:31+0100\n"
 "PO-Revision-Date: 2004-03-19 18:29+0200\n"
 "Last-Translator: Metin Amiroff <metin@karegen.com>\n"
 "Language-Team: Azerbaijani <translation-team-az@lists.sourceforge.net>\n"
diff --git a/po/bg.gmo b/po/bg.gmo
index 3c6e96e..b2e52ee 100644
--- a/po/bg.gmo
+++ b/po/bg.gmo
Binary files differ
diff --git a/po/bg.po b/po/bg.po
index 9376de6..ee0e06b 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: 2014-09-24 11:38+0300\n"
+"POT-Creation-Date: 2014-11-06 12:31+0100\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"
diff --git a/po/ca.gmo b/po/ca.gmo
index 04c3eb3..517a43b 100644
--- a/po/ca.gmo
+++ b/po/ca.gmo
Binary files differ
diff --git a/po/ca.po b/po/ca.po
index 1f1c09e..0058ff7 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: 2014-09-24 11:38+0300\n"
+"POT-Creation-Date: 2014-11-06 12:31+0100\n"
 "PO-Revision-Date: 2012-01-01 14:19+0100\n"
 "Last-Translator: Gil Forcada <gforcada@gnome.org>\n"
 "Language-Team: Catalan <ca@dodds.net>\n"
diff --git a/po/cs.gmo b/po/cs.gmo
index de42511..931614d 100644
--- a/po/cs.gmo
+++ b/po/cs.gmo
Binary files differ
diff --git a/po/cs.po b/po/cs.po
index df3f8ec..666bf3a 100644
--- a/po/cs.po
+++ b/po/cs.po
@@ -11,7 +11,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-bad 1.1.4\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-09-24 11:38+0300\n"
+"POT-Creation-Date: 2014-11-06 12:31+0100\n"
 "PO-Revision-Date: 2013-09-18 10:05+0200\n"
 "Last-Translator: Marek Černocký <marek@manet.cz>\n"
 "Language-Team: Czech <translation-team-cs@lists.sourceforge.net>\n"
diff --git a/po/da.gmo b/po/da.gmo
index f10ec66..e2ca4c7 100644
--- a/po/da.gmo
+++ b/po/da.gmo
Binary files differ
diff --git a/po/da.po b/po/da.po
index e8ae233..45b8f23 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: 2014-09-24 11:38+0300\n"
+"POT-Creation-Date: 2014-11-06 12:31+0100\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"
diff --git a/po/de.gmo b/po/de.gmo
index c302244..817691b 100644
--- a/po/de.gmo
+++ b/po/de.gmo
Binary files differ
diff --git a/po/de.po b/po/de.po
index 5d7edea..d8887ea 100644
--- a/po/de.po
+++ b/po/de.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: 2014-09-24 11:38+0300\n"
+"POT-Creation-Date: 2014-11-06 12:31+0100\n"
 "PO-Revision-Date: 2014-08-31 19:37+0100\n"
 "Last-Translator: Christian Kirbach <christian.kirbach@gmail.com>\n"
 "Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
diff --git a/po/el.gmo b/po/el.gmo
index a4c4c34..beb34b0 100644
--- a/po/el.gmo
+++ b/po/el.gmo
Binary files differ
diff --git a/po/el.po b/po/el.po
index e2ec8db..42403bc 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: 2014-09-24 11:38+0300\n"
+"POT-Creation-Date: 2014-11-06 12:31+0100\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"
diff --git a/po/en_GB.gmo b/po/en_GB.gmo
index 4af6014..edff2d1 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 654164a..e01e275 100644
--- a/po/en_GB.po
+++ b/po/en_GB.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins 0.8.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-09-24 11:38+0300\n"
+"POT-Creation-Date: 2014-11-06 12:31+0100\n"
 "PO-Revision-Date: 2004-04-26 10:41-0400\n"
 "Last-Translator: Gareth Owen <gowen72@yahoo.com>\n"
 "Language-Team: English (British) <en_gb@li.org>\n"
diff --git a/po/eo.gmo b/po/eo.gmo
index ff07254..d134187 100644
--- a/po/eo.gmo
+++ b/po/eo.gmo
Binary files differ
diff --git a/po/eo.po b/po/eo.po
index b75bb4f..d9200f8 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: 2014-09-24 11:38+0300\n"
+"POT-Creation-Date: 2014-11-06 12:31+0100\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"
diff --git a/po/es.gmo b/po/es.gmo
index b03fa82..e49a4ce 100644
--- a/po/es.gmo
+++ b/po/es.gmo
Binary files differ
diff --git a/po/es.po b/po/es.po
index 3142104..3f3a9de 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: 2014-09-24 11:38+0300\n"
+"POT-Creation-Date: 2014-11-06 12:31+0100\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"
diff --git a/po/eu.gmo b/po/eu.gmo
index eefe9e4..9d20682 100644
--- a/po/eu.gmo
+++ b/po/eu.gmo
Binary files differ
diff --git a/po/eu.po b/po/eu.po
index cdeb1d3..0c5f900 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: 2014-09-24 11:38+0300\n"
+"POT-Creation-Date: 2014-11-06 12:31+0100\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"
diff --git a/po/fi.gmo b/po/fi.gmo
index 7120582..2e6c8af 100644
--- a/po/fi.gmo
+++ b/po/fi.gmo
Binary files differ
diff --git a/po/fi.po b/po/fi.po
index 1f355a8..6e7fb4a 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: 2014-09-24 11:38+0300\n"
+"POT-Creation-Date: 2014-11-06 12:31+0100\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"
diff --git a/po/fr.gmo b/po/fr.gmo
index 03fad60..1dfa01f 100644
--- a/po/fr.gmo
+++ b/po/fr.gmo
Binary files differ
diff --git a/po/fr.po b/po/fr.po
index 57e06fa..5328638 100644
--- a/po/fr.po
+++ b/po/fr.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: 2014-09-24 11:38+0300\n"
+"POT-Creation-Date: 2014-11-06 12:31+0100\n"
 "PO-Revision-Date: 2011-04-28 09:13+0200\n"
 "Last-Translator: Claude Paroz <claude@2xlibre.net>\n"
 "Language-Team: French <traduc@traduc.org>\n"
diff --git a/po/gl.gmo b/po/gl.gmo
index 347ec2a..cb03802 100644
--- a/po/gl.gmo
+++ b/po/gl.gmo
Binary files differ
diff --git a/po/gl.po b/po/gl.po
index 2ceb839..f8e2056 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: 2014-09-24 11:38+0300\n"
+"POT-Creation-Date: 2014-11-06 12:31+0100\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"
diff --git a/po/gst-plugins-bad-1.0.pot b/po/gst-plugins-bad-1.0.pot
index f4df703..f6dd115 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.4.3\n"
+"Project-Id-Version: gst-plugins-bad 1.4.4\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-09-24 11:38+0300\n"
+"POT-Creation-Date: 2014-11-06 12:31+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -16,13 +16,13 @@
 "Content-Type: text/plain; charset=CHARSET\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: ext/dash/gstdashdemux.c:1511 ext/smoothstreaming/gstmssdemux.c:1532
-#: gst/mpegtsdemux/mpegtsbase.c:1366 gst/mpegtsdemux/mpegtsbase.c:1370
+#: ext/dash/gstdashdemux.c:1513 ext/smoothstreaming/gstmssdemux.c:1532
+#: gst/mpegtsdemux/mpegtsbase.c:1353 gst/mpegtsdemux/mpegtsbase.c:1357
 #: gst/nuvdemux/gstnuvdemux.c:737
 msgid "Internal data stream error."
 msgstr ""
 
-#: ext/gl/gstgltestsrc.c:544
+#: ext/gl/gstgltestsrc.c:550
 msgid "format wasn't negotiated before get function"
 msgstr ""
 
diff --git a/po/hr.gmo b/po/hr.gmo
index 5208e20..f1f9809 100644
--- a/po/hr.gmo
+++ b/po/hr.gmo
Binary files differ
diff --git a/po/hr.po b/po/hr.po
index a32b373..e9bdad9 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: 2014-09-24 11:38+0300\n"
+"POT-Creation-Date: 2014-11-06 12:31+0100\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"
diff --git a/po/hu.gmo b/po/hu.gmo
index f4c7e1b..4039286 100644
--- a/po/hu.gmo
+++ b/po/hu.gmo
Binary files differ
diff --git a/po/hu.po b/po/hu.po
index 9d16fd3..513e0fe 100644
--- a/po/hu.po
+++ b/po/hu.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: 2014-09-24 11:38+0300\n"
+"POT-Creation-Date: 2014-11-06 12:31+0100\n"
 "PO-Revision-Date: 2014-08-31 11:18+0200\n"
 "Last-Translator: Balázs Úr <urbalazs@gmail.com>\n"
 "Language-Team: Hungarian <translation-team-hu@lists.sourceforge.net>\n"
diff --git a/po/id.gmo b/po/id.gmo
index f176d0c..497838e 100644
--- a/po/id.gmo
+++ b/po/id.gmo
Binary files differ
diff --git a/po/id.po b/po/id.po
index 4aeb9c9..2a9786c 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: 2014-09-24 11:38+0300\n"
+"POT-Creation-Date: 2014-11-06 12:31+0100\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"
diff --git a/po/it.gmo b/po/it.gmo
index db43319..deb96d7 100644
--- a/po/it.gmo
+++ b/po/it.gmo
Binary files differ
diff --git a/po/it.po b/po/it.po
index 32da109..1adebeb 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: 2014-09-24 11:38+0300\n"
+"POT-Creation-Date: 2014-11-06 12:31+0100\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"
diff --git a/po/ja.gmo b/po/ja.gmo
index a51ed47..3d7a0ce 100644
--- a/po/ja.gmo
+++ b/po/ja.gmo
Binary files differ
diff --git a/po/ja.po b/po/ja.po
index 74b2408..5d490cc 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: 2014-09-24 11:38+0300\n"
+"POT-Creation-Date: 2014-11-06 12:31+0100\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"
diff --git a/po/ky.gmo b/po/ky.gmo
index bb46988..1dae19e 100644
--- a/po/ky.gmo
+++ b/po/ky.gmo
Binary files differ
diff --git a/po/ky.po b/po/ky.po
index 21bea54..a4cb064 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: 2014-09-24 11:38+0300\n"
+"POT-Creation-Date: 2014-11-06 12:31+0100\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"
diff --git a/po/lt.gmo b/po/lt.gmo
index 1593e60..a2cb0a3 100644
--- a/po/lt.gmo
+++ b/po/lt.gmo
Binary files differ
diff --git a/po/lt.po b/po/lt.po
index 15d53bf..be68323 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: 2014-09-24 11:38+0300\n"
+"POT-Creation-Date: 2014-11-06 12:31+0100\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"
diff --git a/po/lv.gmo b/po/lv.gmo
index e0f2ff8..e0b59c6 100644
--- a/po/lv.gmo
+++ b/po/lv.gmo
Binary files differ
diff --git a/po/lv.po b/po/lv.po
index cb10779..0c05667 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: 2014-09-24 11:38+0300\n"
+"POT-Creation-Date: 2014-11-06 12:31+0100\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"
diff --git a/po/mt.gmo b/po/mt.gmo
index c2bfc81..07ecbaa 100644
--- a/po/mt.gmo
+++ b/po/mt.gmo
Binary files differ
diff --git a/po/mt.po b/po/mt.po
index 0be3019..fffcc17 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: 2014-09-24 11:38+0300\n"
+"POT-Creation-Date: 2014-11-06 12:31+0100\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"
diff --git a/po/nb.gmo b/po/nb.gmo
index 872043c..4f3080c 100644
--- a/po/nb.gmo
+++ b/po/nb.gmo
Binary files differ
diff --git a/po/nb.po b/po/nb.po
index a7784bf..2cee322 100644
--- a/po/nb.po
+++ b/po/nb.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: 2014-09-24 11:38+0300\n"
+"POT-Creation-Date: 2014-11-06 12:31+0100\n"
 "PO-Revision-Date: 2014-07-22 12:38+0100\n"
 "Last-Translator: Johnny A. Solbu <johnny@solbu.net>\n"
 "Language-Team: Norwegian Bokmaal <i18n-nb@lister.ping.uio.no>\n"
diff --git a/po/nl.gmo b/po/nl.gmo
index db37e07..5c75ff8 100644
--- a/po/nl.gmo
+++ b/po/nl.gmo
Binary files differ
diff --git a/po/nl.po b/po/nl.po
index 533ba26..ef5f9b3 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: 2014-09-24 11:38+0300\n"
+"POT-Creation-Date: 2014-11-06 12:31+0100\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"
diff --git a/po/or.gmo b/po/or.gmo
index 6ae7f1b..5657e06 100644
--- a/po/or.gmo
+++ b/po/or.gmo
Binary files differ
diff --git a/po/or.po b/po/or.po
index 9e96616..d177e5f 100644
--- a/po/or.po
+++ b/po/or.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-0.8.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-09-24 11:38+0300\n"
+"POT-Creation-Date: 2014-11-06 12:31+0100\n"
 "PO-Revision-Date: 2004-09-27 13:32+0530\n"
 "Last-Translator: Gora Mohanty <gora_mohanty@yahoo.co.in>\n"
 "Language-Team: Oriya <gora_mohanty@yahoo.co.in>\n"
diff --git a/po/pl.gmo b/po/pl.gmo
index fff6ce0..fa65a83 100644
--- a/po/pl.gmo
+++ b/po/pl.gmo
Binary files differ
diff --git a/po/pl.po b/po/pl.po
index 9523354..fd7984d 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-bad 1.4.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-09-24 11:38+0300\n"
+"POT-Creation-Date: 2014-11-06 12:31+0100\n"
 "PO-Revision-Date: 2014-08-29 15:47+0200\n"
 "Last-Translator: Jakub Bogusz <qboosh@pld-linux.org>\n"
 "Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
diff --git a/po/pt_BR.gmo b/po/pt_BR.gmo
index 874ecc4..7c2d1ed 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 aeebddc..f56988e 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.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: 2014-09-24 11:38+0300\n"
+"POT-Creation-Date: 2014-11-06 12:31+0100\n"
 "PO-Revision-Date: 2013-12-17 01:09-0200\n"
 "Last-Translator: Fabrício Godoy <skarllot@gmail.com>\n"
 "Language-Team: Brazilian Portuguese <ldpbr-translation@lists.sourceforge."
diff --git a/po/ro.gmo b/po/ro.gmo
index 1e458c9..a79c815 100644
--- a/po/ro.gmo
+++ b/po/ro.gmo
Binary files differ
diff --git a/po/ro.po b/po/ro.po
index 3edc44b..d112fed 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: 2014-09-24 11:38+0300\n"
+"POT-Creation-Date: 2014-11-06 12:31+0100\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"
diff --git a/po/ru.gmo b/po/ru.gmo
index 297b977..2e7b9ae 100644
--- a/po/ru.gmo
+++ b/po/ru.gmo
Binary files differ
diff --git a/po/ru.po b/po/ru.po
index 3f5c1c6..9f55b52 100644
--- a/po/ru.po
+++ b/po/ru.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: 2014-09-24 11:38+0300\n"
+"POT-Creation-Date: 2014-11-06 12:31+0100\n"
 "PO-Revision-Date: 2014-09-06 10:56+0400\n"
 "Last-Translator: Yuri Kozlov <yuray@komyakino.ru>\n"
 "Language-Team: Russian <gnu@mx.ru>\n"
diff --git a/po/sk.gmo b/po/sk.gmo
index 83ca5a8..d15454d 100644
--- a/po/sk.gmo
+++ b/po/sk.gmo
Binary files differ
diff --git a/po/sk.po b/po/sk.po
index 0b40cf4..5567ba3 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: 2014-09-24 11:38+0300\n"
+"POT-Creation-Date: 2014-11-06 12:31+0100\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"
diff --git a/po/sl.gmo b/po/sl.gmo
index 19cf78d..aff9890 100644
--- a/po/sl.gmo
+++ b/po/sl.gmo
Binary files differ
diff --git a/po/sl.po b/po/sl.po
index 705ef3c..79261d5 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: 2014-09-24 11:38+0300\n"
+"POT-Creation-Date: 2014-11-06 12:31+0100\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"
diff --git a/po/sq.gmo b/po/sq.gmo
index 66965bc..c2ff96a 100644
--- a/po/sq.gmo
+++ b/po/sq.gmo
Binary files differ
diff --git a/po/sq.po b/po/sq.po
index a633d48..3dc1251 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: 2014-09-24 11:38+0300\n"
+"POT-Creation-Date: 2014-11-06 12:31+0100\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"
diff --git a/po/sr.gmo b/po/sr.gmo
index f8dedbe..d963e15 100644
--- a/po/sr.gmo
+++ b/po/sr.gmo
Binary files differ
diff --git a/po/sr.po b/po/sr.po
index 882530d..3f51c44 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: 2014-09-24 11:38+0300\n"
+"POT-Creation-Date: 2014-11-06 12:31+0100\n"
 "PO-Revision-Date: 2014-09-13 10:39+0200\n"
 "Last-Translator: Мирослав Николић <miroslavnikolic@rocketmail.com>\n"
 "Language-Team: Serbian <(nothing)>\n"
diff --git a/po/sv.gmo b/po/sv.gmo
index 439dc47..e4734b3 100644
--- a/po/sv.gmo
+++ b/po/sv.gmo
Binary files differ
diff --git a/po/sv.po b/po/sv.po
index 9923f43..af540ad 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: 2014-09-24 11:38+0300\n"
+"POT-Creation-Date: 2014-11-06 12:31+0100\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"
diff --git a/po/tr.gmo b/po/tr.gmo
index 54c175e..02f9f5a 100644
--- a/po/tr.gmo
+++ b/po/tr.gmo
Binary files differ
diff --git a/po/tr.po b/po/tr.po
index ef1040b..ec3599a 100644
--- a/po/tr.po
+++ b/po/tr.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: 2014-09-24 11:38+0300\n"
+"POT-Creation-Date: 2014-11-06 12:31+0100\n"
 "PO-Revision-Date: 2011-04-26 19:21+0200\n"
 "Last-Translator: Server Acim <serveracim@gmail.com>\n"
 "Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n"
diff --git a/po/uk.gmo b/po/uk.gmo
index 14ff630..e71ce3a 100644
--- a/po/uk.gmo
+++ b/po/uk.gmo
Binary files differ
diff --git a/po/uk.po b/po/uk.po
index e47f3e9..ae430cd 100644
--- a/po/uk.po
+++ b/po/uk.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: 2014-09-24 11:38+0300\n"
+"POT-Creation-Date: 2014-11-06 12:31+0100\n"
 "PO-Revision-Date: 2014-08-29 08:35+0300\n"
 "Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
 "Language-Team: Ukrainian <translation-team-uk@lists.sourceforge.net>\n"
diff --git a/po/vi.gmo b/po/vi.gmo
index bfde2ee..9356cd4 100644
--- a/po/vi.gmo
+++ b/po/vi.gmo
Binary files differ
diff --git a/po/vi.po b/po/vi.po
index 5d441a0..d5bdec8 100644
--- a/po/vi.po
+++ b/po/vi.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: 2014-09-24 11:38+0300\n"
+"POT-Creation-Date: 2014-11-06 12:31+0100\n"
 "PO-Revision-Date: 2014-08-29 15:09+0700\n"
 "Last-Translator: Trần Ngọc Quân <vnwildman@gmail.com>\n"
 "Language-Team: Vietnamese <translation-team-vi@lists.sourceforge.net>\n"
diff --git a/po/zh_CN.gmo b/po/zh_CN.gmo
index 1fe9bad..06ac43a 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 d21e3e8..c425075 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: 2014-09-24 11:38+0300\n"
+"POT-Creation-Date: 2014-11-06 12:31+0100\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"
diff --git a/sys/androidmedia/gstamc.c b/sys/androidmedia/gstamc.c
index c2a5b6c..36e4372 100644
--- a/sys/androidmedia/gstamc.c
+++ b/sys/androidmedia/gstamc.c
@@ -2753,7 +2753,7 @@
       }
 
       frame_size =
-          stride * slice_height + 2 * (((stride + 1) / 2) * (slice_height +
+          stride * slice_height + 2 * ((stride + 1) / 2) * ((slice_height +
               1) / 2);
       break;
     }
diff --git a/sys/applemedia/Makefile.am b/sys/applemedia/Makefile.am
index ecbaf08..01c340c 100644
--- a/sys/applemedia/Makefile.am
+++ b/sys/applemedia/Makefile.am
@@ -5,22 +5,14 @@
 	vtutil.c				\
 	corevideobuffer.c			\
 	coremediabuffer.c			\
-	coremediactx.c				\
-	vtapi.c					\
-	atdec.c 				\
-	dynapi.c
+	atdec.c
 
 libgstapplemedia_la_CPPFLAGS =			\
-	-Dgst_dyn_api_get_type=gst_dyn_api_priv_get_type			\
-	-Dgst_dyn_api_debug=gst_dyn_api_priv_debug				\
-	-D_gst_dyn_api_new=_gst_dyn_api_priv_new				\
 	-Dgst_core_media_buffer_new=gst_core_media_buffer_priv_new		\
 	-Dgst_core_media_buffer_get_type=gst_core_media_buffer_priv_get_type	\
 	-Dgst_core_media_buffer_get_pixel_buffer=gst_core_media_buffer_priv_get_pixel_buffer\
 	-Dgst_core_video_buffer_new=gst_core_video_buffer_priv_new		\
-	-Dgst_core_video_buffer_get_type=gst_core_video_buffer_priv_get_type	\
-	-Dgst_core_media_ctx_new=gst_core_media_ctx_priv_new			\
-	-Dgst_core_media_ctx_get_type=gst_core_media_ctx_priv_get_type
+	-Dgst_core_video_buffer_get_type=gst_core_video_buffer_priv_get_type
 
 libgstapplemedia_la_CFLAGS =			\
 	$(GST_CFLAGS)				\
@@ -57,18 +49,12 @@
 noinst_HEADERS =				\
 	qtkitvideosrc.h				\
 	avfvideosrc.h				\
-	vth264decbin.h				\
-	vth264encbin.h				\
 	vtenc.h					\
 	vtdec.h					\
 	vtutil.h				\
 	corevideobuffer.h			\
 	coremediabuffer.h			\
-	coremediactx.h				\
-	vtapi.h					\
 	atdec.h 				\
-	dynapi.h				\
-	dynapi-internal.h                       \
 	iosassetsrc.h				\
 	avfassetsrc.h
 
@@ -108,5 +94,5 @@
 	vtenc.c 				\
 	vtdec.c
 
-libgstapplemedia_la_LDFLAGS += -Wl,-framework -Wl,VideoToolbox
+libgstapplemedia_la_LDFLAGS += -Wl,-weak_framework -Wl,VideoToolbox
 endif
diff --git a/sys/applemedia/Makefile.in b/sys/applemedia/Makefile.in
index ec0f3f5..24e2fc4 100644
--- a/sys/applemedia/Makefile.in
+++ b/sys/applemedia/Makefile.in
@@ -106,7 +106,7 @@
 @HAVE_VIDEOTOOLBOX_TRUE@	vtenc.c 				\
 @HAVE_VIDEOTOOLBOX_TRUE@	vtdec.c
 
-@HAVE_VIDEOTOOLBOX_TRUE@am__append_9 = -Wl,-framework -Wl,VideoToolbox
+@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)
@@ -184,9 +184,8 @@
 libgstapplemedia_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
 am__libgstapplemedia_la_SOURCES_DIST = plugin.m vtutil.c \
-	corevideobuffer.c coremediabuffer.c coremediactx.c vtapi.c \
-	atdec.c dynapi.c iosassetsrc.m qtkitvideosrc.m avfvideosrc.m \
-	avfassetsrc.m vtenc.c vtdec.c
+	corevideobuffer.c coremediabuffer.c atdec.c iosassetsrc.m \
+	qtkitvideosrc.m avfvideosrc.m avfassetsrc.m vtenc.c vtdec.c
 @HAVE_IOS_TRUE@am__objects_1 = libgstapplemedia_la-iosassetsrc.lo
 @HAVE_IOS_FALSE@am__objects_2 = libgstapplemedia_la-qtkitvideosrc.lo
 @HAVE_AVFOUNDATION_TRUE@am__objects_3 =  \
@@ -198,10 +197,8 @@
 	libgstapplemedia_la-vtutil.lo \
 	libgstapplemedia_la-corevideobuffer.lo \
 	libgstapplemedia_la-coremediabuffer.lo \
-	libgstapplemedia_la-coremediactx.lo \
-	libgstapplemedia_la-vtapi.lo libgstapplemedia_la-atdec.lo \
-	libgstapplemedia_la-dynapi.lo $(am__objects_1) \
-	$(am__objects_2) $(am__objects_3) $(am__objects_4)
+	libgstapplemedia_la-atdec.lo $(am__objects_1) $(am__objects_2) \
+	$(am__objects_3) $(am__objects_4)
 libgstapplemedia_la_OBJECTS = $(am_libgstapplemedia_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
@@ -790,20 +787,14 @@
 wayland_scanner = @wayland_scanner@
 plugin_LTLIBRARIES = libgstapplemedia.la
 libgstapplemedia_la_SOURCES = plugin.m vtutil.c corevideobuffer.c \
-	coremediabuffer.c coremediactx.c vtapi.c atdec.c dynapi.c \
-	$(am__append_2) $(am__append_4) $(am__append_6) \
-	$(am__append_8)
+	coremediabuffer.c atdec.c $(am__append_2) $(am__append_4) \
+	$(am__append_6) $(am__append_8)
 libgstapplemedia_la_CPPFLAGS = \
-	-Dgst_dyn_api_get_type=gst_dyn_api_priv_get_type			\
-	-Dgst_dyn_api_debug=gst_dyn_api_priv_debug				\
-	-D_gst_dyn_api_new=_gst_dyn_api_priv_new				\
 	-Dgst_core_media_buffer_new=gst_core_media_buffer_priv_new		\
 	-Dgst_core_media_buffer_get_type=gst_core_media_buffer_priv_get_type	\
 	-Dgst_core_media_buffer_get_pixel_buffer=gst_core_media_buffer_priv_get_pixel_buffer\
 	-Dgst_core_video_buffer_new=gst_core_video_buffer_priv_new		\
-	-Dgst_core_video_buffer_get_type=gst_core_video_buffer_priv_get_type	\
-	-Dgst_core_media_ctx_new=gst_core_media_ctx_priv_new			\
-	-Dgst_core_media_ctx_get_type=gst_core_media_ctx_priv_get_type
+	-Dgst_core_video_buffer_get_type=gst_core_video_buffer_priv_get_type
 
 libgstapplemedia_la_CFLAGS = \
 	$(GST_CFLAGS)				\
@@ -828,18 +819,12 @@
 noinst_HEADERS = \
 	qtkitvideosrc.h				\
 	avfvideosrc.h				\
-	vth264decbin.h				\
-	vth264encbin.h				\
 	vtenc.h					\
 	vtdec.h					\
 	vtutil.h				\
 	corevideobuffer.h			\
 	coremediabuffer.h			\
-	coremediactx.h				\
-	vtapi.h					\
 	atdec.h 				\
-	dynapi.h				\
-	dynapi-internal.h                       \
 	iosassetsrc.h				\
 	avfassetsrc.h
 
@@ -926,13 +911,10 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstapplemedia_la-avfassetsrc.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstapplemedia_la-avfvideosrc.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstapplemedia_la-coremediabuffer.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstapplemedia_la-coremediactx.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstapplemedia_la-corevideobuffer.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstapplemedia_la-dynapi.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstapplemedia_la-iosassetsrc.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstapplemedia_la-plugin.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstapplemedia_la-qtkitvideosrc.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstapplemedia_la-vtapi.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstapplemedia_la-vtdec.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstapplemedia_la-vtenc.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstapplemedia_la-vtutil.Plo@am__quote@
@@ -982,20 +964,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 $(libgstapplemedia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgstapplemedia_la_CPPFLAGS) $(CPPFLAGS) $(libgstapplemedia_la_CFLAGS) $(CFLAGS) -c -o libgstapplemedia_la-coremediabuffer.lo `test -f 'coremediabuffer.c' || echo '$(srcdir)/'`coremediabuffer.c
 
-libgstapplemedia_la-coremediactx.lo: coremediactx.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapplemedia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgstapplemedia_la_CPPFLAGS) $(CPPFLAGS) $(libgstapplemedia_la_CFLAGS) $(CFLAGS) -MT libgstapplemedia_la-coremediactx.lo -MD -MP -MF $(DEPDIR)/libgstapplemedia_la-coremediactx.Tpo -c -o libgstapplemedia_la-coremediactx.lo `test -f 'coremediactx.c' || echo '$(srcdir)/'`coremediactx.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstapplemedia_la-coremediactx.Tpo $(DEPDIR)/libgstapplemedia_la-coremediactx.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='coremediactx.c' object='libgstapplemedia_la-coremediactx.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 $(libgstapplemedia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgstapplemedia_la_CPPFLAGS) $(CPPFLAGS) $(libgstapplemedia_la_CFLAGS) $(CFLAGS) -c -o libgstapplemedia_la-coremediactx.lo `test -f 'coremediactx.c' || echo '$(srcdir)/'`coremediactx.c
-
-libgstapplemedia_la-vtapi.lo: vtapi.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapplemedia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgstapplemedia_la_CPPFLAGS) $(CPPFLAGS) $(libgstapplemedia_la_CFLAGS) $(CFLAGS) -MT libgstapplemedia_la-vtapi.lo -MD -MP -MF $(DEPDIR)/libgstapplemedia_la-vtapi.Tpo -c -o libgstapplemedia_la-vtapi.lo `test -f 'vtapi.c' || echo '$(srcdir)/'`vtapi.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstapplemedia_la-vtapi.Tpo $(DEPDIR)/libgstapplemedia_la-vtapi.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='vtapi.c' object='libgstapplemedia_la-vtapi.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 $(libgstapplemedia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgstapplemedia_la_CPPFLAGS) $(CPPFLAGS) $(libgstapplemedia_la_CFLAGS) $(CFLAGS) -c -o libgstapplemedia_la-vtapi.lo `test -f 'vtapi.c' || echo '$(srcdir)/'`vtapi.c
-
 libgstapplemedia_la-atdec.lo: atdec.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapplemedia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgstapplemedia_la_CPPFLAGS) $(CPPFLAGS) $(libgstapplemedia_la_CFLAGS) $(CFLAGS) -MT libgstapplemedia_la-atdec.lo -MD -MP -MF $(DEPDIR)/libgstapplemedia_la-atdec.Tpo -c -o libgstapplemedia_la-atdec.lo `test -f 'atdec.c' || echo '$(srcdir)/'`atdec.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstapplemedia_la-atdec.Tpo $(DEPDIR)/libgstapplemedia_la-atdec.Plo
@@ -1003,13 +971,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 $(libgstapplemedia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgstapplemedia_la_CPPFLAGS) $(CPPFLAGS) $(libgstapplemedia_la_CFLAGS) $(CFLAGS) -c -o libgstapplemedia_la-atdec.lo `test -f 'atdec.c' || echo '$(srcdir)/'`atdec.c
 
-libgstapplemedia_la-dynapi.lo: dynapi.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapplemedia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgstapplemedia_la_CPPFLAGS) $(CPPFLAGS) $(libgstapplemedia_la_CFLAGS) $(CFLAGS) -MT libgstapplemedia_la-dynapi.lo -MD -MP -MF $(DEPDIR)/libgstapplemedia_la-dynapi.Tpo -c -o libgstapplemedia_la-dynapi.lo `test -f 'dynapi.c' || echo '$(srcdir)/'`dynapi.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstapplemedia_la-dynapi.Tpo $(DEPDIR)/libgstapplemedia_la-dynapi.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='dynapi.c' object='libgstapplemedia_la-dynapi.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 $(libgstapplemedia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgstapplemedia_la_CPPFLAGS) $(CPPFLAGS) $(libgstapplemedia_la_CFLAGS) $(CFLAGS) -c -o libgstapplemedia_la-dynapi.lo `test -f 'dynapi.c' || echo '$(srcdir)/'`dynapi.c
-
 libgstapplemedia_la-vtenc.lo: vtenc.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapplemedia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgstapplemedia_la_CPPFLAGS) $(CPPFLAGS) $(libgstapplemedia_la_CFLAGS) $(CFLAGS) -MT libgstapplemedia_la-vtenc.lo -MD -MP -MF $(DEPDIR)/libgstapplemedia_la-vtenc.Tpo -c -o libgstapplemedia_la-vtenc.lo `test -f 'vtenc.c' || echo '$(srcdir)/'`vtenc.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstapplemedia_la-vtenc.Tpo $(DEPDIR)/libgstapplemedia_la-vtenc.Plo
diff --git a/sys/applemedia/atdec.c b/sys/applemedia/atdec.c
index 933f3f8..d581fb8 100644
--- a/sys/applemedia/atdec.c
+++ b/sys/applemedia/atdec.c
@@ -441,7 +441,7 @@
 
     GST_DEBUG_OBJECT (atdec,
         "Got output buffer of size %u at position %" G_GUINT64_FORMAT,
-        output_buffer->mAudioDataByteSize, atdec->output_position);
+        (guint) output_buffer->mAudioDataByteSize, atdec->output_position);
     atdec->output_position +=
         output_buffer->mAudioDataByteSize / audio_info->bpf;
 
@@ -487,7 +487,8 @@
   {
     GST_AUDIO_DECODER_ERROR (atdec, 1, STREAM, DECODE, (NULL),
         ("AudioQueueOfflineRender returned invalid buffer size: %u (bpf %d)",
-            output_buffer->mAudioDataByteSize, audio_info->bpf), flow_ret);
+            (guint) output_buffer->mAudioDataByteSize, audio_info->bpf),
+        flow_ret);
 
     AudioQueueFreeBuffer (atdec->queue, output_buffer);
 
diff --git a/sys/applemedia/coremediabuffer.c b/sys/applemedia/coremediabuffer.c
index 73995f0..548f858 100644
--- a/sys/applemedia/coremediabuffer.c
+++ b/sys/applemedia/coremediabuffer.c
@@ -25,8 +25,7 @@
 gst_core_media_meta_free (GstCoreMediaMeta * meta, GstBuffer * buf)
 {
   if (meta->image_buf != NULL) {
-    CVPixelBufferUnlockBaseAddress (meta->image_buf,
-        kCVPixelBufferLock_ReadOnly);
+    CVPixelBufferUnlockBaseAddress (meta->image_buf, 0);
     CVBufferRelease (meta->image_buf);
   }
   if (meta->block_buf != NULL) {
@@ -93,8 +92,7 @@
   GstVideoMeta *video_meta;
   UInt32 size;
 
-  if (CVPixelBufferLockBaseAddress (pixel_buf,
-          kCVPixelBufferLock_ReadOnly) != kCVReturnSuccess) {
+  if (CVPixelBufferLockBaseAddress (pixel_buf, 0) != kCVReturnSuccess) {
     GST_ERROR ("Could not lock pixel buffer base address");
     return FALSE;
   }
diff --git a/sys/applemedia/coremediactx.c b/sys/applemedia/coremediactx.c
deleted file mode 100644
index ac37425..0000000
--- a/sys/applemedia/coremediactx.c
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
- * Copyright (C) 2010 Ole André Vadla Ravnås <oleavr@soundrop.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 "coremediactx.h"
-
-#include <gst/gst.h>
-
-typedef struct _GstApiProvider GstApiProvider;
-
-typedef gpointer (*GstApiProviderObtainFunc) (GError ** error);
-
-struct _GstApiProvider
-{
-  GstCoreMediaApi api;
-  GstApiProviderObtainFunc obtain;
-  guint offset;
-};
-
-#define API_PROVIDER(AN, a_n) \
-  { GST_API_##AN, (GstApiProviderObtainFunc) gst_##a_n##_api_obtain, \
-    G_STRUCT_OFFSET (GstCoreMediaCtx, a_n) }
-
-static const GstApiProvider api_provider[] = {
-  API_PROVIDER (VIDEO_TOOLBOX, vt),
-};
-
-G_DEFINE_TYPE (GstCoreMediaCtx, gst_core_media_ctx, G_TYPE_OBJECT);
-
-static void
-gst_core_media_ctx_init (GstCoreMediaCtx * self)
-{
-}
-
-static void
-gst_core_media_ctx_dispose (GObject * object)
-{
-  GstCoreMediaCtx *self = GST_CORE_MEDIA_CTX_CAST (object);
-  guint i;
-
-  for (i = 0; i != G_N_ELEMENTS (api_provider); i++) {
-    const GstApiProvider *ap = &api_provider[i];
-    gpointer *api_ptr = (gpointer *) ((guint8 *) self + ap->offset);
-
-    if (*api_ptr != NULL) {
-      g_object_unref (*api_ptr);
-      *api_ptr = NULL;
-    }
-  }
-
-  G_OBJECT_CLASS (gst_core_media_ctx_parent_class)->dispose (object);
-}
-
-static void
-gst_core_media_ctx_class_init (GstCoreMediaCtxClass * klass)
-{
-  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
-
-  gobject_class->dispose = gst_core_media_ctx_dispose;
-}
-
-GstCoreMediaCtx *
-gst_core_media_ctx_new (GstCoreMediaApi required_apis, GError ** error)
-{
-  GstCoreMediaCtx *ctx;
-  GArray *error_messages;
-  guint i;
-
-  ctx = g_object_new (GST_TYPE_CORE_MEDIA_CTX, NULL);
-
-  error_messages = g_array_new (TRUE, FALSE, sizeof (gchar *));
-
-  for (i = 0; i != G_N_ELEMENTS (api_provider); i++) {
-    const GstApiProvider *ap = &api_provider[i];
-
-    if ((required_apis & ap->api) != 0) {
-      gpointer *api_ptr = (gpointer *) ((guint8 *) ctx + ap->offset);
-      GError *tmp_error = NULL;
-
-      *api_ptr = ap->obtain (&tmp_error);
-      if (tmp_error != NULL) {
-        gchar *message_copy = g_strdup (tmp_error->message);
-        g_array_append_val (error_messages, message_copy);
-        g_clear_error (&tmp_error);
-      }
-    }
-  }
-
-  if (error_messages->len != 0) {
-    gchar *errors_joined;
-
-    errors_joined = g_strjoinv ("\n\t* ", (gchar **) error_messages->data);
-    g_set_error (error, GST_RESOURCE_ERROR, GST_RESOURCE_ERROR_FAILED,
-        "Could not obtain required API%s:%s%s",
-        (error_messages->len == 1) ? "" : "s",
-        (error_messages->len == 1) ? " " : "\n\t* ", errors_joined);
-    g_free (errors_joined);
-
-    g_object_unref (ctx);
-    ctx = NULL;
-  }
-
-  for (i = 0; i != error_messages->len; i++)
-    g_free (g_array_index (error_messages, gchar *, i));
-  g_array_free (error_messages, TRUE);
-
-  return ctx;
-}
diff --git a/sys/applemedia/coremediactx.h b/sys/applemedia/coremediactx.h
deleted file mode 100644
index 54421a3..0000000
--- a/sys/applemedia/coremediactx.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Copyright (C) 2010 Ole André Vadla Ravnås <oleavr@soundrop.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_CORE_MEDIA_CTX_H__
-#define __GST_CORE_MEDIA_CTX_H__
-
-#include "vtapi.h"
-
-#include <glib.h>
-
-G_BEGIN_DECLS
-
-#define GST_TYPE_CORE_MEDIA_CTX \
-  (gst_core_media_ctx_get_type ())
-#define GST_CORE_MEDIA_CTX(obj) \
-  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_CORE_MEDIA_CTX, GstCoreMediaCtx))
-#define GST_CORE_MEDIA_CTX_CAST(obj) \
-  ((GstCoreMediaCtx *) (obj))
-#define GST_CORE_MEDIA_CTX_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_CORE_MEDIA_CTX, GstCoreMediaCtxClass))
-#define GST_IS_CORE_MEDIA_CTX(obj) \
-  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_CORE_MEDIA_CTX))
-#define GST_IS_CORE_MEDIA_CTX_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_CORE_MEDIA_CTX))
-
-typedef struct _GstCoreMediaCtx GstCoreMediaCtx;
-typedef struct _GstCoreMediaCtxClass GstCoreMediaCtxClass;
-
-typedef enum _GstCoreMediaApi GstCoreMediaApi;
-
-struct _GstCoreMediaCtx
-{
-  GObject parent;
-
-  /* Common */
-  GstVTApi *vt;
-};
-
-struct _GstCoreMediaCtxClass
-{
-  GObjectClass parent_class;
-};
-
-enum _GstCoreMediaApi
-{
-  GST_API_VIDEO_TOOLBOX = (1 << 0),
-};
-
-GType gst_core_media_ctx_get_type (void);
-
-GstCoreMediaCtx * gst_core_media_ctx_new (GstCoreMediaApi required_apis,
-    GError ** error);
-
-G_END_DECLS
-
-#endif
diff --git a/sys/applemedia/corevideobuffer.c b/sys/applemedia/corevideobuffer.c
index 0e08398..b1da334 100644
--- a/sys/applemedia/corevideobuffer.c
+++ b/sys/applemedia/corevideobuffer.c
@@ -23,7 +23,7 @@
 gst_core_video_meta_free (GstCoreVideoMeta * meta, GstBuffer * buf)
 {
   if (meta->pixbuf != NULL) {
-    CVPixelBufferUnlockBaseAddress (meta->pixbuf, kCVPixelBufferLock_ReadOnly);
+    CVPixelBufferUnlockBaseAddress (meta->pixbuf, 0);
   }
 
   CVBufferRelease (meta->cvbuf);
@@ -74,8 +74,7 @@
 
   pixbuf = (CVPixelBufferRef) cvbuf;
 
-  if (CVPixelBufferLockBaseAddress (pixbuf,
-          kCVPixelBufferLock_ReadOnly) != kCVReturnSuccess) {
+  if (CVPixelBufferLockBaseAddress (pixbuf, 0) != kCVReturnSuccess) {
     goto error;
   }
 
diff --git a/sys/applemedia/dynapi-internal.h b/sys/applemedia/dynapi-internal.h
deleted file mode 100644
index adcd4f1..0000000
--- a/sys/applemedia/dynapi-internal.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright (C) 2010 Ole André Vadla Ravnås <oleavr@soundrop.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_DYN_API_INTERNAL_H__
-#define __GST_DYN_API_INTERNAL_H__
-
-#include <glib-object.h>
-
-G_BEGIN_DECLS
-
-typedef struct _GstDynSymSpec       GstDynSymSpec;
-
-struct _GstDynSymSpec
-{
-  const gchar * name;
-  guint offset;
-  gboolean is_required;
-};
-
-gpointer _gst_dyn_api_new (GType derived_type, const gchar * filename,
-    const GstDynSymSpec * symbols, GError ** error);
-
-G_END_DECLS
-
-#endif
-
diff --git a/sys/applemedia/dynapi.c b/sys/applemedia/dynapi.c
deleted file mode 100644
index 2317f80..0000000
--- a/sys/applemedia/dynapi.c
+++ /dev/null
@@ -1,193 +0,0 @@
-/*
- * Copyright (C) 2010 Ole André Vadla Ravnås <oleavr@soundrop.com>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#include "dynapi.h"
-
-#include "dynapi-internal.h"
-
-#include <gmodule.h>
-#include <gst/gst.h>
-
-GST_DEBUG_CATEGORY (gst_dyn_api_debug);
-#define GST_CAT_DEFAULT gst_dyn_api_debug
-
-enum
-{
-  PROP_0,
-  PROP_FILENAME
-};
-
-struct _GstDynApiPrivate
-{
-  gchar *filename;
-  GModule *module;
-};
-
-G_DEFINE_TYPE (GstDynApi, gst_dyn_api, G_TYPE_OBJECT);
-
-static void
-gst_dyn_api_init (GstDynApi * self)
-{
-  self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, GST_TYPE_DYN_API,
-      GstDynApiPrivate);
-}
-
-static void
-gst_dyn_api_dispose (GObject * object)
-{
-  GstDynApi *self = GST_DYN_API_CAST (object);
-  GstDynApiPrivate *priv = self->priv;
-
-  if (priv->module != NULL) {
-    g_module_close (priv->module);
-    priv->module = NULL;
-  }
-
-  G_OBJECT_CLASS (gst_dyn_api_parent_class)->dispose (object);
-}
-
-static void
-gst_dyn_api_finalize (GObject * object)
-{
-  GstDynApi *self = GST_DYN_API_CAST (object);
-  GstDynApiPrivate *priv = self->priv;
-
-  g_free (priv->filename);
-
-  G_OBJECT_CLASS (gst_dyn_api_parent_class)->finalize (object);
-}
-
-static void
-gst_dyn_api_get_property (GObject * object, guint prop_id,
-    GValue * value, GParamSpec * pspec)
-{
-  GstDynApi *self = GST_DYN_API (object);
-
-  switch (prop_id) {
-    case PROP_FILENAME:
-      g_value_set_string (value, self->priv->filename);
-      break;
-    default:
-      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
-      break;
-  }
-}
-
-static void
-gst_dyn_api_set_property (GObject * object, guint prop_id,
-    const GValue * value, GParamSpec * pspec)
-{
-  GstDynApi *self = GST_DYN_API (object);
-
-  switch (prop_id) {
-    case PROP_FILENAME:
-      g_free (self->priv->filename);
-      self->priv->filename = g_value_dup_string (value);
-      break;
-    default:
-      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
-      break;
-  }
-}
-
-static void
-gst_dyn_api_class_init (GstDynApiClass * klass)
-{
-  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
-
-  gobject_class->dispose = gst_dyn_api_dispose;
-  gobject_class->finalize = gst_dyn_api_finalize;
-  gobject_class->get_property = gst_dyn_api_get_property;
-  gobject_class->set_property = gst_dyn_api_set_property;
-
-  g_type_class_add_private (klass, sizeof (GstDynApiPrivate));
-
-  g_object_class_install_property (gobject_class, PROP_FILENAME,
-      g_param_spec_string ("filename", "Filename", "Filename", NULL,
-          G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS));
-}
-
-gpointer
-_gst_dyn_api_new (GType derived_type, const gchar * filename,
-    const GstDynSymSpec * symbols, GError ** error)
-{
-  GstDynApi *api;
-  GstDynApiPrivate *priv;
-  guint i;
-  GArray *names_not_found;
-
-  api = g_object_new (derived_type, "filename", filename, NULL);
-  priv = api->priv;
-
-  priv->module = g_module_open (priv->filename, 0);
-  if (priv->module == NULL)
-    goto open_failed;
-
-  names_not_found = g_array_new (TRUE, FALSE, sizeof (gchar *));
-
-  for (i = 0; symbols[i].name != NULL; i++) {
-    const GstDynSymSpec *s = &symbols[i];
-    if (!g_module_symbol (priv->module, s->name,
-            (gpointer *) (((guint8 *) api) + s->offset)) && s->is_required) {
-      g_array_append_val (names_not_found, s->name);
-    }
-  }
-
-  if (names_not_found->len > 0)
-    goto one_or_more_name_not_found;
-
-  g_array_free (names_not_found, TRUE);
-
-  return api;
-
-  /* ERRORS */
-open_failed:
-  {
-    gchar *basename;
-
-    basename = g_path_get_basename (filename);
-    g_set_error (error, GST_RESOURCE_ERROR, GST_RESOURCE_ERROR_FAILED,
-        "failed to open %s", basename);
-    g_free (basename);
-
-    goto any_error;
-  }
-one_or_more_name_not_found:
-  {
-    gchar *basename, *names_joined;
-
-    basename = g_path_get_basename (filename);
-    names_joined = g_strjoinv (", ", (gchar **) names_not_found->data);
-    g_set_error (error, GST_RESOURCE_ERROR, GST_RESOURCE_ERROR_FAILED,
-        "missing %u symbol%s in %s: %s",
-        names_not_found->len, (names_not_found->len == 1) ? "" : "s",
-        basename, names_joined);
-    g_free (names_joined);
-    g_free (basename);
-    g_array_free (names_not_found, TRUE);
-
-    goto any_error;
-  }
-any_error:
-  {
-    g_object_unref (api);
-
-    return NULL;
-  }
-}
diff --git a/sys/applemedia/dynapi.h b/sys/applemedia/dynapi.h
deleted file mode 100644
index b8eda85..0000000
--- a/sys/applemedia/dynapi.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Copyright (C) 2010 Ole André Vadla Ravnås <oleavr@soundrop.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_DYN_API_H__
-#define __GST_DYN_API_H__
-
-#include <glib-object.h>
-
-G_BEGIN_DECLS
-
-#define GST_TYPE_DYN_API \
-  (gst_dyn_api_get_type ())
-#define GST_DYN_API(obj) \
-  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_DYN_API, GstDynApi))
-#define GST_DYN_API_CAST(obj) \
-  ((GstDynApi *) (obj))
-#define GST_DYN_API_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_DYN_API, GstDynApiClass))
-#define GST_IS_DYN_API(obj) \
-  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_DYN_API))
-#define GST_IS_DYN_API_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_DYN_API))
-
-#define GST_DYN_SYM_SPEC(type, name) \
-  { G_STRINGIFY (name), G_STRUCT_OFFSET (type, name), TRUE }
-#define GST_DYN_SYM_SPEC_OPTIONAL(type, name) \
-  { G_STRINGIFY (name), G_STRUCT_OFFSET (type, name), FALSE }
-
-typedef struct _GstDynApi GstDynApi;
-typedef struct _GstDynApiClass GstDynApiClass;
-typedef struct _GstDynApiPrivate GstDynApiPrivate;
-
-struct _GstDynApi
-{
-  GObject parent;
-
-  GstDynApiPrivate * priv;
-};
-
-struct _GstDynApiClass
-{
-  GObjectClass parent_class;
-};
-
-GType gst_dyn_api_get_type (void);
-
-G_END_DECLS
-
-#endif
diff --git a/sys/applemedia/plugin.m b/sys/applemedia/plugin.m
index e85f67a..44ff3e4 100644
--- a/sys/applemedia/plugin.m
+++ b/sys/applemedia/plugin.m
@@ -36,8 +36,6 @@
 #endif
 #ifndef HAVE_IOS
 #define AV_RANK GST_RANK_SECONDARY
-#include "vth264decbin.h"
-#include "vth264encbin.h"
 #else
 #define AV_RANK GST_RANK_PRIMARY
 #endif
@@ -81,17 +79,14 @@
       GST_TYPE_AVF_ASSET_SRC);
 #endif
 
-#if 0
-  res &= gst_element_register (plugin, "vth264decbin", GST_RANK_NONE,
-      GST_TYPE_VT_H264_DEC_BIN);
-  res &= gst_element_register (plugin, "vth264encbin", GST_RANK_NONE,
-      GST_TYPE_VT_H264_ENC_BIN);
-#endif
   res &= gst_element_register (plugin, "atdec", GST_RANK_MARGINAL, GST_TYPE_ATDEC);
 
 #ifdef HAVE_VIDEOTOOLBOX
-  res &= gst_element_register (plugin, "vtdec", GST_RANK_PRIMARY, GST_TYPE_VTDEC);
-  gst_vtenc_register_elements (plugin);
+  /* Check if the framework actually exists at runtime */
+  if (VTCompressionSessionCreate != NULL) {
+    res &= gst_element_register (plugin, "vtdec", GST_RANK_PRIMARY, GST_TYPE_VTDEC);
+    gst_vtenc_register_elements (plugin);
+  }
 #endif
 
   return res;
diff --git a/sys/applemedia/vtapi.c b/sys/applemedia/vtapi.c
deleted file mode 100644
index 2def2c5..0000000
--- a/sys/applemedia/vtapi.c
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * Copyright (C) 2010, 2013 Ole André Vadla Ravnås <oleavr@soundrop.com>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#include "vtapi.h"
-
-#include "dynapi-internal.h"
-
-#include <gmodule.h>
-
-#define VT_FRAMEWORK_PATH "/System/Library/Frameworks/" \
-    "VideoToolbox.framework/VideoToolbox"
-#define VT_FRAMEWORK_PATH_OLD "/System/Library/PrivateFrameworks/" \
-    "VideoToolbox.framework/VideoToolbox"
-
-G_DEFINE_TYPE (GstVTApi, gst_vt_api, GST_TYPE_DYN_API);
-
-static void
-gst_vt_api_init (GstVTApi * self)
-{
-}
-
-static void
-gst_vt_api_class_init (GstVTApiClass * klass)
-{
-}
-
-#define SYM_SPEC(name) GST_DYN_SYM_SPEC (GstVTApi, name)
-
-GstVTApi *
-gst_vt_api_obtain (GError ** error)
-{
-  static const GstDynSymSpec symbols[] = {
-    SYM_SPEC (VTCompressionSessionCompleteFrames),
-    SYM_SPEC (VTCompressionSessionCopyProperty),
-    SYM_SPEC (VTCompressionSessionCopySupportedPropertyDictionary),
-    SYM_SPEC (VTCompressionSessionCreate),
-    SYM_SPEC (VTCompressionSessionEncodeFrame),
-    SYM_SPEC (VTCompressionSessionInvalidate),
-    SYM_SPEC (VTCompressionSessionSetProperty),
-
-    SYM_SPEC (VTDecompressionSessionCreate),
-    SYM_SPEC (VTDecompressionSessionDecodeFrame),
-    SYM_SPEC (VTDecompressionSessionInvalidate),
-    SYM_SPEC (VTDecompressionSessionWaitForAsynchronousFrames),
-    SYM_SPEC (VTDecompressionSessionFinishDelayedFrames),
-
-    SYM_SPEC (kVTCompressionPropertyKey_AllowTemporalCompression),
-    SYM_SPEC (kVTCompressionPropertyKey_AverageDataRate),
-    SYM_SPEC (kVTCompressionPropertyKey_ExpectedFrameRate),
-    SYM_SPEC (kVTCompressionPropertyKey_ExpectedDuration),
-    SYM_SPEC (kVTCompressionPropertyKey_MaxKeyFrameInterval),
-    SYM_SPEC (kVTCompressionPropertyKey_MaxKeyFrameIntervalDuration),
-    SYM_SPEC (kVTCompressionPropertyKey_ProfileLevel),
-    SYM_SPEC (kVTCompressionPropertyKey_Usage),
-
-    SYM_SPEC (kVTEncodeFrameOptionKey_ForceKeyFrame),
-
-    SYM_SPEC (kVTProfileLevel_H264_Baseline_1_3),
-    SYM_SPEC (kVTProfileLevel_H264_Baseline_3_0),
-    SYM_SPEC (kVTProfileLevel_H264_Extended_5_0),
-    SYM_SPEC (kVTProfileLevel_H264_High_5_0),
-    SYM_SPEC (kVTProfileLevel_H264_Main_3_0),
-    SYM_SPEC (kVTProfileLevel_H264_Main_3_1),
-    SYM_SPEC (kVTProfileLevel_H264_Main_4_0),
-    SYM_SPEC (kVTProfileLevel_H264_Main_4_1),
-    SYM_SPEC (kVTProfileLevel_H264_Main_5_0),
-
-    {NULL, 0},
-  };
-  GstVTApi *result;
-  GModule *module;
-
-  module = g_module_open (VT_FRAMEWORK_PATH, 0);
-  if (module != NULL) {
-    result = _gst_dyn_api_new (gst_vt_api_get_type (), VT_FRAMEWORK_PATH,
-        symbols, error);
-    g_module_close (module);
-  } else {
-    result = _gst_dyn_api_new (gst_vt_api_get_type (), VT_FRAMEWORK_PATH_OLD,
-        symbols, error);
-  }
-
-  return result;
-}
diff --git a/sys/applemedia/vtapi.h b/sys/applemedia/vtapi.h
deleted file mode 100644
index 9943717..0000000
--- a/sys/applemedia/vtapi.h
+++ /dev/null
@@ -1,165 +0,0 @@
-/*
- * Copyright (C) 2010 Ole André Vadla Ravnås <oleavr@soundrop.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_VT_API_H__
-#define __GST_VT_API_H__
-
-#include "dynapi.h"
-#include "CoreMedia/CoreMedia.h"
-
-G_BEGIN_DECLS
-
-typedef struct _GstVTApi GstVTApi;
-typedef struct _GstVTApiClass GstVTApiClass;
-
-typedef enum _VTStatus VTStatus;
-typedef enum _VTDecodeFrameFlags VTDecodeFrameFlags;
-typedef enum _VTDecodeInfoFlags VTDecodeInfoFlags;
-
-typedef guint32 VTFormatId;
-
-typedef CFTypeRef VTCompressionSessionRef;
-typedef CFTypeRef VTDecompressionSessionRef;
-typedef struct _VTCompressionOutputCallback VTCompressionOutputCallback;
-typedef struct _VTDecompressionOutputCallback VTDecompressionOutputCallback;
-
-typedef VTStatus (* VTCompressionOutputCallbackFunc) (void * data, int a2,
-    int a3, int a4, CMSampleBufferRef sbuf, int a6, int a7);
-typedef void (* VTDecompressionOutputCallbackFunc) (void *data1, void *data2,
-    VTStatus result, VTDecodeInfoFlags info, CVBufferRef cvbuf,
-    CMTime pts, CMTime dts);
-
-enum _VTStatus
-{
-  kVTSuccess = 0
-};
-
-enum _VTFormat
-{
-  kVTFormatH264 = 'avc1',
-  kVTFormatMPEG2 = 'mp2v',
-  kVTFormatJPEG = 'jpeg'
-};
-
-enum _VTDecodeFrameFlags
-{
-  kVTDecodeFrame_EnableAsynchronousDecompression = 1<<0,
-  kVTDecodeFrame_DoNotOutputFrame = 1<<1,
-  /* low-power mode that can not decode faster than 1x realtime. */
-  kVTDecodeFrame_1xRealTimePlayback = 1<<2,
-  /* Output frame in PTS order.
-   * Needs to call VTDecompressionSessionFinishDelayedFrames to dequeue */
-  kVTDecodeFrame_EnableTemporalProcessing = 1<<3,
-};
-
-enum _VTDecodeInfoFlags
-{
-  kVTDecodeInfo_Asynchronous = 1UL << 0,
-  kVTDecodeInfo_FrameDropped = 1UL << 1,
-};
-
-struct _VTCompressionOutputCallback
-{
-  VTCompressionOutputCallbackFunc func;
-  void * data;
-};
-
-struct _VTDecompressionOutputCallback
-{
-  VTDecompressionOutputCallbackFunc func;
-  void * data;
-};
-
-struct _GstVTApi
-{
-  GstDynApi parent;
-
-  VTStatus (* VTCompressionSessionCompleteFrames)
-      (VTCompressionSessionRef session, CMTime completeUntilDisplayTimestamp);
-  VTStatus (* VTCompressionSessionCopyProperty)
-      (VTCompressionSessionRef session, CFTypeRef key, void* unk,
-      CFTypeRef * value);
-  VTStatus (* VTCompressionSessionCopySupportedPropertyDictionary)
-      (VTCompressionSessionRef session, CFDictionaryRef * dict);
-  VTStatus (* VTCompressionSessionCreate)
-      (CFAllocatorRef allocator, gint width, gint height, VTFormatId formatId,
-      gsize unk1, CFDictionaryRef sourcePixelBufferAttributes, gsize unk2,
-      VTCompressionOutputCallback outputCallback,
-      VTCompressionSessionRef * session);
-  VTStatus (* VTCompressionSessionEncodeFrame)
-      (VTCompressionSessionRef session, CVPixelBufferRef pixelBuffer,
-      CMTime displayTimestamp, CMTime displayDuration,
-      CFDictionaryRef frameOptions, void * sourceTrackingCallback,
-      void * sourceFrameRefCon);
-  void (* VTCompressionSessionInvalidate)
-      (VTCompressionSessionRef session);
-  VTStatus (* VTCompressionSessionSetProperty)
-      (VTCompressionSessionRef session, CFStringRef propName,
-      CFTypeRef propValue);
-
-  VTStatus (* VTDecompressionSessionCreate)
-      (CFAllocatorRef allocator,
-      CMFormatDescriptionRef videoFormatDescription,
-      CFTypeRef sessionOptions,
-      CFDictionaryRef destinationPixelBufferAttributes,
-      VTDecompressionOutputCallback * outputCallback,
-      VTDecompressionSessionRef * session);
-  VTStatus (* VTDecompressionSessionDecodeFrame)
-      (VTDecompressionSessionRef session, CMSampleBufferRef sbuf,
-       VTDecodeFrameFlags decode_flags, void *src_buf,
-       VTDecodeInfoFlags *info_flags);
-  void (* VTDecompressionSessionInvalidate)
-      (VTDecompressionSessionRef session);
-  VTStatus (* VTDecompressionSessionWaitForAsynchronousFrames)
-      (VTDecompressionSessionRef session);
-  VTStatus (* VTDecompressionSessionFinishDelayedFrames)
-      (VTDecompressionSessionRef session);
-
-  CFStringRef * kVTCompressionPropertyKey_AllowTemporalCompression;
-  CFStringRef * kVTCompressionPropertyKey_AverageDataRate;
-  CFStringRef * kVTCompressionPropertyKey_ExpectedFrameRate;
-  CFStringRef * kVTCompressionPropertyKey_ExpectedDuration;
-  CFStringRef * kVTCompressionPropertyKey_MaxKeyFrameInterval;
-  CFStringRef * kVTCompressionPropertyKey_MaxKeyFrameIntervalDuration;
-  CFStringRef * kVTCompressionPropertyKey_ProfileLevel;
-  CFStringRef * kVTCompressionPropertyKey_Usage;
-  CFStringRef * kVTEncodeFrameOptionKey_ForceKeyFrame;
-  CFStringRef * kVTProfileLevel_H264_Baseline_1_3;
-  CFStringRef * kVTProfileLevel_H264_Baseline_3_0;
-  CFStringRef * kVTProfileLevel_H264_Extended_5_0;
-  CFStringRef * kVTProfileLevel_H264_High_5_0;
-  CFStringRef * kVTProfileLevel_H264_Main_3_0;
-  CFStringRef * kVTProfileLevel_H264_Main_3_1;
-  CFStringRef * kVTProfileLevel_H264_Main_4_0;
-  CFStringRef * kVTProfileLevel_H264_Main_4_1;
-  CFStringRef * kVTProfileLevel_H264_Main_5_0;
-};
-
-struct _GstVTApiClass
-{
-  GstDynApiClass parent_class;
-};
-
-GType gst_vt_api_get_type (void);
-
-GstVTApi * gst_vt_api_obtain (GError ** error);
-
-G_END_DECLS
-
-#endif
diff --git a/sys/applemedia/vtdec.c b/sys/applemedia/vtdec.c
index 2c92b0f..4aa26cf 100644
--- a/sys/applemedia/vtdec.c
+++ b/sys/applemedia/vtdec.c
@@ -306,7 +306,7 @@
 
 error:
   GST_ELEMENT_ERROR (vtdec, STREAM, DECODE, (NULL),
-      ("VTDecompressionSessionDecodeFrame returned %d", status));
+      ("VTDecompressionSessionDecodeFrame returned %d", (int) status));
   ret = GST_FLOW_ERROR;
   goto out;
 }
@@ -350,7 +350,7 @@
 
   if (status != noErr) {
     GST_ELEMENT_ERROR (vtdec, RESOURCE, FAILED, (NULL),
-        ("VTDecompressionSessionCreate returned %d", status));
+        ("VTDecompressionSessionCreate returned %d", (int) status));
     return FALSE;
   }
 
@@ -455,9 +455,23 @@
     goto block_error;
 
   /* create a sample buffer, the CoreMedia equivalent of GstBuffer */
-  sample_timing.duration = CMTimeMake (GST_BUFFER_DURATION (buf), 1);
-  sample_timing.presentationTimeStamp = CMTimeMake (GST_BUFFER_PTS (buf), 1);
-  sample_timing.decodeTimeStamp = CMTimeMake (GST_BUFFER_DTS (buf), 1);
+  if (GST_BUFFER_DURATION_IS_VALID (buf))
+    sample_timing.duration = CMTimeMake (GST_BUFFER_DURATION (buf), GST_SECOND);
+  else
+    sample_timing.duration = kCMTimeInvalid;
+
+  if (GST_BUFFER_PTS_IS_VALID (buf))
+    sample_timing.presentationTimeStamp =
+        CMTimeMake (GST_BUFFER_PTS (buf), GST_SECOND);
+  else
+    sample_timing.presentationTimeStamp = kCMTimeInvalid;
+
+  if (GST_BUFFER_DTS_IS_VALID (buf))
+    sample_timing.decodeTimeStamp =
+        CMTimeMake (GST_BUFFER_DTS (buf), GST_SECOND);
+  else
+    sample_timing.decodeTimeStamp = kCMTimeInvalid;
+
   time_array[0] = sample_timing;
 
   status =
@@ -471,12 +485,12 @@
 
 block_error:
   GST_ELEMENT_ERROR (vtdec, RESOURCE, FAILED, (NULL),
-      ("CMBlockBufferCreateWithMemoryBlock returned %d", status));
+      ("CMBlockBufferCreateWithMemoryBlock returned %d", (int) status));
   goto out;
 
 sample_error:
   GST_ELEMENT_ERROR (vtdec, RESOURCE, FAILED, (NULL),
-      ("CMSampleBufferCreate returned %d", status));
+      ("CMSampleBufferCreate returned %d", (int) status));
 
   if (bbuf)
     CFRelease (bbuf);
@@ -520,7 +534,7 @@
       frame->decode_frame_number, image_buffer);
 
   if (status != noErr) {
-    GST_ERROR_OBJECT (vtdec, "Error decoding frame %d", status);
+    GST_ERROR_OBJECT (vtdec, "Error decoding frame %d", (int) status);
     goto drop;
   }
 
@@ -715,6 +729,8 @@
   int width_in_mb_s = vtdec->video_info.width / dpb_mb_size;
   int height_in_mb_s = vtdec->video_info.height / dpb_mb_size;
 
+  *length = 0;
+
   if (!parse_h264_profile_and_level_from_codec_data (vtdec, codec_data,
           &profile, &level))
     return FALSE;
@@ -736,9 +752,17 @@
 static void
 gst_vtdec_set_latency (GstVtdec * vtdec)
 {
-  GstClockTime frame_duration = gst_util_uint64_scale (GST_SECOND,
+  GstClockTime frame_duration;
+  GstClockTime latency;
+
+  if (vtdec->video_info.fps_n == 0) {
+    GST_INFO_OBJECT (vtdec, "Framerate not known, can't set latency");
+    return;
+  }
+
+  frame_duration = gst_util_uint64_scale (GST_SECOND,
       vtdec->video_info.fps_d, vtdec->video_info.fps_n);
-  GstClockTime latency = frame_duration * vtdec->reorder_queue_length;
+  latency = frame_duration * vtdec->reorder_queue_length;
 
   GST_INFO_OBJECT (vtdec, "setting latency frames:%d time:%" GST_TIME_FORMAT,
       vtdec->reorder_queue_length, GST_TIME_ARGS (latency));
diff --git a/sys/applemedia/vtenc.c b/sys/applemedia/vtenc.c
index 59e57bb..e9b841f 100644
--- a/sys/applemedia/vtenc.c
+++ b/sys/applemedia/vtenc.c
@@ -17,17 +17,19 @@
  * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
  * Boston, MA 02110-1301, USA.
  */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
 
 #include "vtenc.h"
 
 #include "coremediabuffer.h"
+#include "corevideobuffer.h"
 #include "vtutil.h"
 
 #define VTENC_DEFAULT_USAGE       6     /* Profile: Baseline  Level: 2.1 */
 #define VTENC_DEFAULT_BITRATE     768
 
-#define VTENC_MIN_RESET_INTERVAL  (GST_SECOND / 2)
-
 GST_DEBUG_CATEGORY (gst_vtenc_debug);
 #define GST_CAT_DEFAULT (gst_vtenc_debug)
 
@@ -56,45 +58,43 @@
 static void gst_vtenc_set_property (GObject * obj, guint prop_id,
     const GValue * value, GParamSpec * pspec);
 
-static GstStateChangeReturn gst_vtenc_change_state (GstElement * element,
-    GstStateChange transition);
-static gboolean gst_vtenc_sink_event (GstPad * pad, GstObject * parent,
-    GstEvent * event);
-static gboolean gst_vtenc_sink_setcaps (GstVTEnc * self, GstCaps * caps);
+static gboolean gst_vtenc_start (GstVideoEncoder * enc);
+static gboolean gst_vtenc_stop (GstVideoEncoder * enc);
+static gboolean gst_vtenc_set_format (GstVideoEncoder * enc,
+    GstVideoCodecState * input_state);
+static GstFlowReturn gst_vtenc_handle_frame (GstVideoEncoder * enc,
+    GstVideoCodecFrame * frame);
+static GstFlowReturn gst_vtenc_finish (GstVideoEncoder * enc);
+
 static void gst_vtenc_clear_cached_caps_downstream (GstVTEnc * self);
-static GstFlowReturn gst_vtenc_chain (GstPad * pad, GstObject * parent,
-    GstBuffer * buf);
-static gboolean gst_vtenc_src_event (GstPad * pad, GstObject * parent,
-    GstEvent * event);
 
 static VTCompressionSessionRef gst_vtenc_create_session (GstVTEnc * self);
 static void gst_vtenc_destroy_session (GstVTEnc * self,
     VTCompressionSessionRef * session);
 static void gst_vtenc_session_dump_properties (GstVTEnc * self,
     VTCompressionSessionRef session);
-static void gst_vtenc_session_configure_usage (GstVTEnc * self,
-    VTCompressionSessionRef session, gint usage);
 static void gst_vtenc_session_configure_expected_framerate (GstVTEnc * self,
     VTCompressionSessionRef session, gdouble framerate);
-static void gst_vtenc_session_configure_expected_duration (GstVTEnc * self,
-    VTCompressionSessionRef session, gdouble duration);
 static void gst_vtenc_session_configure_max_keyframe_interval (GstVTEnc * self,
     VTCompressionSessionRef session, gint interval);
 static void gst_vtenc_session_configure_max_keyframe_interval_duration
     (GstVTEnc * self, VTCompressionSessionRef session, gdouble duration);
 static void gst_vtenc_session_configure_bitrate (GstVTEnc * self,
     VTCompressionSessionRef session, guint bitrate);
-static VTStatus gst_vtenc_session_configure_property_int (GstVTEnc * self,
+static OSStatus gst_vtenc_session_configure_property_int (GstVTEnc * self,
     VTCompressionSessionRef session, CFStringRef name, gint value);
-static VTStatus gst_vtenc_session_configure_property_double (GstVTEnc * self,
+static OSStatus gst_vtenc_session_configure_property_double (GstVTEnc * self,
     VTCompressionSessionRef session, CFStringRef name, gdouble value);
 
-static GstFlowReturn gst_vtenc_encode_frame (GstVTEnc * self, GstBuffer * buf);
-static VTStatus gst_vtenc_enqueue_buffer (void *data, int a2, int a3, int a4,
-    CMSampleBufferRef sbuf, int a6, int a7);
+static GstFlowReturn gst_vtenc_encode_frame (GstVTEnc * self,
+    GstVideoCodecFrame * frame);
+static void gst_vtenc_enqueue_buffer (void *outputCallbackRefCon,
+    void *sourceFrameRefCon, OSStatus status, VTEncodeInfoFlags infoFlags,
+    CMSampleBufferRef sampleBuffer);
 static gboolean gst_vtenc_buffer_is_keyframe (GstVTEnc * self,
     CMSampleBufferRef sbuf);
 
+#ifndef HAVE_IOS
 static GstVTEncFrame *gst_vtenc_frame_new (GstBuffer * buf,
     GstVideoInfo * videoinfo);
 static void gst_vtenc_frame_free (GstVTEncFrame * frame);
@@ -102,6 +102,7 @@
 static void gst_pixel_buffer_release_cb (void *releaseRefCon,
     const void *dataPtr, size_t dataSize, size_t numberOfPlanes,
     const void *planeAddresses[]);
+#endif
 
 static GstStaticCaps sink_caps =
 GST_STATIC_CAPS (GST_VIDEO_CAPS_MAKE ("{ NV12, I420 }"));
@@ -139,7 +140,7 @@
       "height", GST_TYPE_INT_RANGE, min_height, max_height,
       "framerate", GST_TYPE_FRACTION_RANGE,
       min_fps_n, min_fps_d, max_fps_n, max_fps_d, NULL);
-  if (codec_details->format_id == kVTFormatH264) {
+  if (codec_details->format_id == kCMVideoCodecType_H264) {
     gst_structure_set (gst_caps_get_structure (src_caps, 0),
         "stream-format", G_TYPE_STRING, "avc", NULL);
   }
@@ -152,23 +153,22 @@
 gst_vtenc_class_init (GstVTEncClass * klass)
 {
   GObjectClass *gobject_class;
-  GstElementClass *gstelement_class;
+  GstVideoEncoderClass *gstvideoencoder_class;
 
   gobject_class = (GObjectClass *) klass;
-  gstelement_class = (GstElementClass *) klass;
+  gstvideoencoder_class = (GstVideoEncoderClass *) klass;
 
   parent_class = g_type_class_peek_parent (klass);
 
   gobject_class->get_property = gst_vtenc_get_property;
   gobject_class->set_property = gst_vtenc_set_property;
 
-  gstelement_class->change_state = gst_vtenc_change_state;
+  gstvideoencoder_class->start = gst_vtenc_start;
+  gstvideoencoder_class->stop = gst_vtenc_stop;
+  gstvideoencoder_class->set_format = gst_vtenc_set_format;
+  gstvideoencoder_class->handle_frame = gst_vtenc_handle_frame;
+  gstvideoencoder_class->finish = gst_vtenc_finish;
 
-  g_object_class_install_property (gobject_class, PROP_USAGE,
-      g_param_spec_int ("usage", "Usage",
-          "Usage enumeration value",
-          G_MININT, G_MAXINT, VTENC_DEFAULT_USAGE,
-          G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS));
   g_object_class_install_property (gobject_class, PROP_BITRATE,
       g_param_spec_uint ("bitrate", "Bitrate",
           "Target video bitrate in kbps",
@@ -180,22 +180,9 @@
 gst_vtenc_init (GstVTEnc * self)
 {
   GstVTEncClass *klass = (GstVTEncClass *) G_OBJECT_GET_CLASS (self);
-  GstElementClass *element_klass = GST_ELEMENT_CLASS (klass);
-  GstElement *element = GST_ELEMENT (self);
 
   self->details = GST_VTENC_CLASS_GET_CODEC_DETAILS (klass);
 
-  self->sinkpad = gst_pad_new_from_template
-      (gst_element_class_get_pad_template (element_klass, "sink"), "sink");
-  gst_element_add_pad (element, self->sinkpad);
-  gst_pad_set_event_function (self->sinkpad, gst_vtenc_sink_event);
-  gst_pad_set_chain_function (self->sinkpad, gst_vtenc_chain);
-
-  self->srcpad = gst_pad_new_from_template
-      (gst_element_class_get_pad_template (element_klass, "src"), "src");
-  gst_pad_set_event_function (self->srcpad, gst_vtenc_src_event);
-  gst_element_add_pad (element, self->srcpad);
-
   /* These could be controlled by properties later */
   self->dump_properties = FALSE;
   self->dump_attributes = FALSE;
@@ -203,31 +190,6 @@
   self->session = NULL;
 }
 
-static gint
-gst_vtenc_get_usage (GstVTEnc * self)
-{
-  gint result;
-
-  GST_OBJECT_LOCK (self);
-  result = self->usage;
-  GST_OBJECT_UNLOCK (self);
-
-  return result;
-}
-
-static void
-gst_vtenc_set_usage (GstVTEnc * self, gint usage)
-{
-  GST_OBJECT_LOCK (self);
-
-  self->usage = usage;
-
-  if (self->session != NULL)
-    gst_vtenc_session_configure_usage (self, self->session, usage);
-
-  GST_OBJECT_UNLOCK (self);
-}
-
 static guint
 gst_vtenc_get_bitrate (GstVTEnc * self)
 {
@@ -260,9 +222,6 @@
   GstVTEnc *self = GST_VTENC_CAST (obj);
 
   switch (prop_id) {
-    case PROP_USAGE:
-      g_value_set_int (value, gst_vtenc_get_usage (self));
-      break;
     case PROP_BITRATE:
       g_value_set_uint (value, gst_vtenc_get_bitrate (self) * 8 / 1000);
       break;
@@ -279,9 +238,6 @@
   GstVTEnc *self = GST_VTENC_CAST (obj);
 
   switch (prop_id) {
-    case PROP_USAGE:
-      gst_vtenc_set_usage (self, g_value_get_int (value));
-      break;
     case PROP_BITRATE:
       gst_vtenc_set_bitrate (self, g_value_get_uint (value) * 1000 / 8);
       break;
@@ -291,117 +247,75 @@
   }
 }
 
-static GstStateChangeReturn
-gst_vtenc_change_state (GstElement * element, GstStateChange transition)
+static gboolean
+gst_vtenc_start (GstVideoEncoder * enc)
 {
-  GstVTEnc *self = GST_VTENC_CAST (element);
-  GError *error = NULL;
-  GstStateChangeReturn ret;
+  GstVTEnc *self = GST_VTENC_CAST (enc);
 
-  if (transition == GST_STATE_CHANGE_NULL_TO_READY) {
-    self->ctx = gst_core_media_ctx_new (GST_API_VIDEO_TOOLBOX, &error);
-    if (error != NULL)
-      goto api_error;
+  self->cur_outframes = g_async_queue_new ();
 
-    self->cur_outbufs = g_ptr_array_new ();
-  }
-
-  ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition);
-
-  if (transition == GST_STATE_CHANGE_READY_TO_NULL) {
-    GST_OBJECT_LOCK (self);
-
-    gst_vtenc_destroy_session (self, &self->session);
-
-    if (self->options != NULL) {
-      CFRelease (self->options);
-      self->options = NULL;
-    }
-
-    self->negotiated_width = self->negotiated_height = 0;
-    self->negotiated_fps_n = self->negotiated_fps_d = 0;
-
-    gst_vtenc_clear_cached_caps_downstream (self);
-
-    GST_OBJECT_UNLOCK (self);
-
-    g_ptr_array_free (self->cur_outbufs, TRUE);
-    self->cur_outbufs = NULL;
-
-    g_object_unref (self->ctx);
-    self->ctx = NULL;
-  }
-
-  return ret;
-
-api_error:
-  {
-    GST_ELEMENT_ERROR (self, RESOURCE, FAILED, ("API error"),
-        ("%s", error->message));
-    g_clear_error (&error);
-    return GST_STATE_CHANGE_FAILURE;
-  }
+  return TRUE;
 }
 
 static gboolean
-gst_vtenc_sink_event (GstPad * pad, GstObject * parent, GstEvent * event)
+gst_vtenc_stop (GstVideoEncoder * enc)
 {
-  GstVTEnc *self = GST_VTENC_CAST (parent);
-  gboolean forward = TRUE;
-  gboolean res = TRUE;
+  GstVTEnc *self = GST_VTENC_CAST (enc);
 
-  switch (GST_EVENT_TYPE (event)) {
-    case GST_EVENT_CAPS:
-    {
-      GstCaps *caps;
+  GST_OBJECT_LOCK (self);
+  gst_vtenc_destroy_session (self, &self->session);
+  GST_OBJECT_UNLOCK (self);
 
-      gst_event_parse_caps (event, &caps);
-      res = gst_vtenc_sink_setcaps (self, caps);
-    }
-    default:
-      break;
+  if (self->options != NULL) {
+    CFRelease (self->options);
+    self->options = NULL;
   }
 
-  if (forward)
-    res = gst_pad_event_default (pad, parent, event);
-  return res;
+  if (self->input_state)
+    gst_video_codec_state_unref (self->input_state);
+  self->input_state = NULL;
+
+  self->negotiated_width = self->negotiated_height = 0;
+  self->negotiated_fps_n = self->negotiated_fps_d = 0;
+
+  gst_vtenc_clear_cached_caps_downstream (self);
+
+  g_async_queue_unref (self->cur_outframes);
+  self->cur_outframes = NULL;
+
+  return TRUE;
 }
 
 static gboolean
-gst_vtenc_sink_setcaps (GstVTEnc * self, GstCaps * caps)
+gst_vtenc_set_format (GstVideoEncoder * enc, GstVideoCodecState * state)
 {
-  GstStructure *structure;
+  GstVTEnc *self = GST_VTENC_CAST (enc);
   VTCompressionSessionRef session;
 
+  if (self->input_state)
+    gst_video_codec_state_unref (self->input_state);
+  self->input_state = gst_video_codec_state_ref (state);
+
+  self->negotiated_width = state->info.width;
+  self->negotiated_height = state->info.height;
+  self->negotiated_fps_n = state->info.fps_n;
+  self->negotiated_fps_d = state->info.fps_d;
+  self->video_info = state->info;
+
   GST_OBJECT_LOCK (self);
-
-  structure = gst_caps_get_structure (caps, 0);
-  gst_structure_get_int (structure, "width", &self->negotiated_width);
-  gst_structure_get_int (structure, "height", &self->negotiated_height);
-  gst_structure_get_fraction (structure, "framerate",
-      &self->negotiated_fps_n, &self->negotiated_fps_d);
-
-  if (!gst_video_info_from_caps (&self->video_info, caps))
-    return FALSE;
-
   gst_vtenc_destroy_session (self, &self->session);
-
   GST_OBJECT_UNLOCK (self);
+
   session = gst_vtenc_create_session (self);
   GST_OBJECT_LOCK (self);
-
   self->session = session;
+  GST_OBJECT_UNLOCK (self);
 
   if (self->options != NULL)
     CFRelease (self->options);
   self->options = CFDictionaryCreateMutable (NULL, 0,
       &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks);
 
-  /* renegotiate when upstream caps change */
-  gst_pad_mark_reconfigure (self->srcpad);
-
-  GST_OBJECT_UNLOCK (self);
-
   return TRUE;
 }
 
@@ -417,6 +331,7 @@
   gboolean result;
   GstCaps *caps;
   GstStructure *s;
+  GstVideoCodecState *state;
 
   if (self->caps_width == self->negotiated_width &&
       self->caps_height == self->negotiated_height &&
@@ -425,7 +340,7 @@
     return TRUE;
   }
 
-  caps = gst_pad_get_pad_template_caps (self->srcpad);
+  caps = gst_pad_get_pad_template_caps (GST_VIDEO_ENCODER_SRC_PAD (self));
   caps = gst_caps_make_writable (caps);
   s = gst_caps_get_structure (caps, 0);
   gst_structure_set (s,
@@ -434,7 +349,7 @@
       "framerate", GST_TYPE_FRACTION,
       self->negotiated_fps_n, self->negotiated_fps_d, NULL);
 
-  if (self->details->format_id == kVTFormatH264) {
+  if (self->details->format_id == kCMVideoCodecType_H264) {
     CMFormatDescriptionRef fmt;
     CFDictionaryRef atoms;
     CFStringRef avccKey;
@@ -459,8 +374,11 @@
     gst_buffer_unref (codec_data_buf);
   }
 
-  result = gst_pad_push_event (self->srcpad, gst_event_new_caps (caps));
-  gst_caps_unref (caps);
+  state =
+      gst_video_encoder_set_output_state (GST_VIDEO_ENCODER_CAST (self), caps,
+      self->input_state);
+  gst_video_codec_state_unref (state);
+  result = gst_video_encoder_negotiate (GST_VIDEO_ENCODER_CAST (self));
 
   self->caps_width = self->negotiated_width;
   self->caps_height = self->negotiated_height;
@@ -478,52 +396,42 @@
 }
 
 static GstFlowReturn
-gst_vtenc_chain (GstPad * pad, GstObject * parent, GstBuffer * buf)
+gst_vtenc_handle_frame (GstVideoEncoder * enc, GstVideoCodecFrame * frame)
 {
-  GstVTEnc *self = GST_VTENC_CAST (parent);
+  GstVTEnc *self = GST_VTENC_CAST (enc);
 
   if (!gst_vtenc_is_negotiated (self))
     goto not_negotiated;
 
-  return gst_vtenc_encode_frame (self, buf);
+  return gst_vtenc_encode_frame (self, frame);
 
 not_negotiated:
-  gst_buffer_unref (buf);
+  gst_video_codec_frame_unref (frame);
   return GST_FLOW_NOT_NEGOTIATED;
 }
 
-static gboolean
-gst_vtenc_src_event (GstPad * pad, GstObject * parent, GstEvent * event)
+static GstFlowReturn
+gst_vtenc_finish (GstVideoEncoder * enc)
 {
-  GstVTEnc *self = GST_VTENC_CAST (parent);
-  gboolean ret = TRUE;
-  gboolean handled = FALSE;
+  GstVTEnc *self = GST_VTENC_CAST (enc);
+  GstFlowReturn ret = GST_FLOW_OK;
+  OSStatus vt_status;
 
-  switch (GST_EVENT_TYPE (event)) {
-    case GST_EVENT_CUSTOM_UPSTREAM:
-      if (gst_event_has_name (event, "rtcp-pli")) {
-        GST_OBJECT_LOCK (self);
-        if (self->options != NULL) {
-          GST_INFO_OBJECT (self, "received PLI, will force intra");
-          CFDictionaryAddValue (self->options,
-              *(self->ctx->vt->kVTEncodeFrameOptionKey_ForceKeyFrame),
-              kCFBooleanTrue);
-        } else {
-          GST_INFO_OBJECT (self,
-              "received PLI but encode not yet started, ignoring");
-        }
-        GST_OBJECT_UNLOCK (self);
-        handled = TRUE;
-      }
-      break;
-    default:
-      break;
+  vt_status =
+      VTCompressionSessionCompleteFrames (self->session,
+      kCMTimePositiveInfinity);
+  if (vt_status != noErr) {
+    GST_WARNING_OBJECT (self, "VTCompressionSessionCompleteFrames returned %d",
+        (int) vt_status);
   }
 
-  if (handled)
-    gst_event_unref (event);
-  else
-    ret = gst_pad_push_event (self->sinkpad, event);
+  while (g_async_queue_length (self->cur_outframes) > 0) {
+    GstVideoCodecFrame *outframe = g_async_queue_try_pop (self->cur_outframes);
+
+    ret =
+        gst_video_encoder_finish_frame (GST_VIDEO_ENCODER_CAST (self),
+        outframe);
+  }
 
   return ret;
 }
@@ -532,10 +440,8 @@
 gst_vtenc_create_session (GstVTEnc * self)
 {
   VTCompressionSessionRef session = NULL;
-  GstVTApi *vt = self->ctx->vt;
   CFMutableDictionaryRef pb_attrs;
-  VTCompressionOutputCallback callback;
-  VTStatus status;
+  OSStatus status;
 
   pb_attrs = CFDictionaryCreateMutable (NULL, 0, &kCFTypeDictionaryKeyCallBacks,
       &kCFTypeDictionaryValueCallBacks);
@@ -544,16 +450,17 @@
   gst_vtutil_dict_set_i32 (pb_attrs, kCVPixelBufferHeightKey,
       self->negotiated_height);
 
-  callback.func = gst_vtenc_enqueue_buffer;
-  callback.data = self;
-
-  status = vt->VTCompressionSessionCreate (NULL,
+  status = VTCompressionSessionCreate (NULL,
       self->negotiated_width, self->negotiated_height,
-      self->details->format_id, 0, pb_attrs, 0, callback, &session);
+      self->details->format_id, NULL, pb_attrs, NULL, gst_vtenc_enqueue_buffer,
+      self, &session);
   GST_INFO_OBJECT (self, "VTCompressionSessionCreate for %d x %d => %d",
-      self->negotiated_width, self->negotiated_height, status);
-  if (status != kVTSuccess)
+      self->negotiated_width, self->negotiated_height, (int) status);
+  if (status != noErr) {
+    GST_ERROR_OBJECT (self, "VTCompressionSessionCreate() returned: %d",
+        (int) status);
     goto beach;
+  }
 
   if (self->dump_properties) {
     gst_vtenc_session_dump_properties (self, session);
@@ -561,32 +468,40 @@
     self->dump_properties = FALSE;
   }
 
-  gst_vtenc_session_configure_usage (self, session, gst_vtenc_get_usage (self));
-
   gst_vtenc_session_configure_expected_framerate (self, session,
       (gdouble) self->negotiated_fps_n / (gdouble) self->negotiated_fps_d);
-  gst_vtenc_session_configure_expected_duration (self, session,
-      (gdouble) self->negotiated_fps_d / (gdouble) self->negotiated_fps_n);
 
-  status = vt->VTCompressionSessionSetProperty (session,
-      *(vt->kVTCompressionPropertyKey_ProfileLevel),
-      *(vt->kVTProfileLevel_H264_Baseline_3_0));
+  /* FIXME: This is only available since OS X 10.9.6 */
+#if HAVE_IOS
+  status = VTSessionSetProperty (session,
+      kVTCompressionPropertyKey_ProfileLevel,
+      kVTProfileLevel_H264_Baseline_AutoLevel);
   GST_DEBUG_OBJECT (self, "kVTCompressionPropertyKey_ProfileLevel => %d",
-      status);
+      (int) status);
+#endif
 
-  status = vt->VTCompressionSessionSetProperty (session,
-      *(vt->kVTCompressionPropertyKey_AllowTemporalCompression),
-      kCFBooleanTrue);
+  status = VTSessionSetProperty (session,
+      kVTCompressionPropertyKey_AllowTemporalCompression, kCFBooleanTrue);
   GST_DEBUG_OBJECT (self,
-      "kVTCompressionPropertyKey_AllowTemporalCompression => %d", status);
+      "kVTCompressionPropertyKey_AllowTemporalCompression => %d", (int) status);
 
   gst_vtenc_session_configure_max_keyframe_interval (self, session, 0);
-  gst_vtenc_session_configure_max_keyframe_interval_duration (self, session,
-      G_MAXDOUBLE);
+  gst_vtenc_session_configure_max_keyframe_interval_duration (self, session, 0);
 
   gst_vtenc_session_configure_bitrate (self, session,
       gst_vtenc_get_bitrate (self));
 
+#ifdef HAVE_VIDEOTOOLBOX_10_9_6
+  if (VTCompressionSessionPrepareToEncodeFrames) {
+    status = VTCompressionSessionPrepareToEncodeFrames (session);
+    if (status != noErr) {
+      GST_ERROR_OBJECT (self,
+          "VTCompressionSessionPrepareToEncodeFrames() returned: %d",
+          (int) status);
+    }
+  }
+#endif
+
 beach:
   CFRelease (pb_attrs);
 
@@ -596,7 +511,7 @@
 static void
 gst_vtenc_destroy_session (GstVTEnc * self, VTCompressionSessionRef * session)
 {
-  self->ctx->vt->VTCompressionSessionInvalidate (*session);
+  VTCompressionSessionInvalidate (*session);
   if (*session != NULL) {
     CFRelease (*session);
     *session = NULL;
@@ -606,7 +521,6 @@
 typedef struct
 {
   GstVTEnc *self;
-  GstVTApi *vt;
   VTCompressionSessionRef session;
 } GstVTDumpPropCtx;
 
@@ -616,7 +530,7 @@
 {
   gchar *name_str;
   CFTypeRef prop_value;
-  VTStatus status;
+  OSStatus status;
 
   name_str = gst_vtutil_string_to_utf8 (prop_name);
   if (dpc->self->dump_attributes) {
@@ -627,9 +541,8 @@
     g_free (attrs_str);
   }
 
-  status = dpc->vt->VTCompressionSessionCopyProperty (dpc->session, prop_name,
-      NULL, &prop_value);
-  if (status == kVTSuccess) {
+  status = VTSessionCopyProperty (dpc->session, prop_name, NULL, &prop_value);
+  if (status == noErr) {
     gchar *value_str;
 
     value_str = gst_vtutil_object_to_string (prop_value);
@@ -640,7 +553,7 @@
       CFRelease (prop_value);
   } else {
     GST_DEBUG_OBJECT (dpc->self, "%s = <failed to query: %d>",
-        name_str, status);
+        name_str, (int) status);
   }
 
   g_free (name_str);
@@ -650,13 +563,12 @@
 gst_vtenc_session_dump_properties (GstVTEnc * self,
     VTCompressionSessionRef session)
 {
-  GstVTDumpPropCtx dpc = { self, self->ctx->vt, session };
+  GstVTDumpPropCtx dpc = { self, session };
   CFDictionaryRef dict;
-  VTStatus status;
+  OSStatus status;
 
-  status = self->ctx->vt->VTCompressionSessionCopySupportedPropertyDictionary
-      (session, &dict);
-  if (status != kVTSuccess)
+  status = VTSessionCopySupportedPropertyDictionary (session, &dict);
+  if (status != noErr)
     goto error;
   CFDictionaryApplyFunction (dict,
       (CFDictionaryApplierFunction) gst_vtenc_session_dump_property, &dpc);
@@ -669,27 +581,11 @@
 }
 
 static void
-gst_vtenc_session_configure_usage (GstVTEnc * self,
-    VTCompressionSessionRef session, gint usage)
-{
-  gst_vtenc_session_configure_property_int (self, session,
-      *(self->ctx->vt->kVTCompressionPropertyKey_Usage), usage);
-}
-
-static void
 gst_vtenc_session_configure_expected_framerate (GstVTEnc * self,
     VTCompressionSessionRef session, gdouble framerate)
 {
   gst_vtenc_session_configure_property_double (self, session,
-      *(self->ctx->vt->kVTCompressionPropertyKey_ExpectedFrameRate), framerate);
-}
-
-static void
-gst_vtenc_session_configure_expected_duration (GstVTEnc * self,
-    VTCompressionSessionRef session, gdouble duration)
-{
-  gst_vtenc_session_configure_property_double (self, session,
-      *(self->ctx->vt->kVTCompressionPropertyKey_ExpectedDuration), duration);
+      kVTCompressionPropertyKey_ExpectedFrameRate, framerate);
 }
 
 static void
@@ -697,8 +593,7 @@
     VTCompressionSessionRef session, gint interval)
 {
   gst_vtenc_session_configure_property_int (self, session,
-      *(self->ctx->vt->kVTCompressionPropertyKey_MaxKeyFrameInterval),
-      interval);
+      kVTCompressionPropertyKey_MaxKeyFrameInterval, interval);
 }
 
 static void
@@ -706,8 +601,7 @@
     VTCompressionSessionRef session, gdouble duration)
 {
   gst_vtenc_session_configure_property_double (self, session,
-      *(self->ctx->vt->kVTCompressionPropertyKey_MaxKeyFrameIntervalDuration),
-      duration);
+      kVTCompressionPropertyKey_MaxKeyFrameIntervalDuration, duration);
 }
 
 static void
@@ -715,77 +609,145 @@
     VTCompressionSessionRef session, guint bitrate)
 {
   gst_vtenc_session_configure_property_int (self, session,
-      *(self->ctx->vt->kVTCompressionPropertyKey_AverageDataRate), bitrate);
+      kVTCompressionPropertyKey_AverageBitRate, bitrate);
 }
 
-static VTStatus
+static OSStatus
 gst_vtenc_session_configure_property_int (GstVTEnc * self,
     VTCompressionSessionRef session, CFStringRef name, gint value)
 {
   CFNumberRef num;
-  VTStatus status;
+  OSStatus status;
   gchar name_str[128];
 
   num = CFNumberCreate (NULL, kCFNumberIntType, &value);
-  status = self->ctx->vt->VTCompressionSessionSetProperty (session, name, num);
+  status = VTSessionSetProperty (session, name, num);
   CFRelease (num);
 
   CFStringGetCString (name, name_str, sizeof (name_str), kCFStringEncodingUTF8);
-  GST_DEBUG_OBJECT (self, "%s(%d) => %d", name_str, value, status);
+  GST_DEBUG_OBJECT (self, "%s(%d) => %d", name_str, value, (int) status);
 
   return status;
 }
 
-static VTStatus
+static OSStatus
 gst_vtenc_session_configure_property_double (GstVTEnc * self,
     VTCompressionSessionRef session, CFStringRef name, gdouble value)
 {
   CFNumberRef num;
-  VTStatus status;
+  OSStatus status;
   gchar name_str[128];
 
   num = CFNumberCreate (NULL, kCFNumberDoubleType, &value);
-  status = self->ctx->vt->VTCompressionSessionSetProperty (session, name, num);
+  status = VTSessionSetProperty (session, name, num);
   CFRelease (num);
 
   CFStringGetCString (name, name_str, sizeof (name_str), kCFStringEncodingUTF8);
-  GST_DEBUG_OBJECT (self, "%s(%f) => %d", name_str, value, status);
+  GST_DEBUG_OBJECT (self, "%s(%f) => %d", name_str, value, (int) status);
 
   return status;
 }
 
 static GstFlowReturn
-gst_vtenc_encode_frame (GstVTEnc * self, GstBuffer * buf)
+gst_vtenc_encode_frame (GstVTEnc * self, GstVideoCodecFrame * frame)
 {
-  GstVTApi *vt = self->ctx->vt;
   CMTime ts, duration;
   GstCoreMediaMeta *meta;
   CVPixelBufferRef pbuf = NULL;
-  VTStatus vt_status;
+  OSStatus vt_status;
   GstFlowReturn ret = GST_FLOW_OK;
   guint i;
+  gboolean forced_keyframe = FALSE;
 
-  self->cur_inbuf = buf;
-
-  ts = CMTimeMake (GST_TIME_AS_MSECONDS (GST_BUFFER_TIMESTAMP (buf)), 1000);
-  duration = CMTimeMake
-      (GST_TIME_AS_MSECONDS (GST_BUFFER_DURATION (buf)), 1000);
-
-  meta = gst_buffer_get_core_media_meta (buf);
-  if (meta != NULL) {
-    pbuf = gst_core_media_buffer_get_pixel_buffer (buf);
+  if (GST_VIDEO_CODEC_FRAME_IS_FORCE_KEYFRAME (frame)) {
+    if (self->options != NULL) {
+      GST_INFO_OBJECT (self, "received force-keyframe-event, will force intra");
+      CFDictionaryAddValue (self->options,
+          kVTEncodeFrameOptionKey_ForceKeyFrame, kCFBooleanTrue);
+      forced_keyframe = TRUE;
+    } else {
+      GST_INFO_OBJECT (self,
+          "received force-keyframe-event but encode not yet started, ignoring");
+    }
   }
 
+  ts = CMTimeMake (frame->pts, GST_SECOND);
+  if (frame->duration != GST_CLOCK_TIME_NONE)
+    duration = CMTimeMake (frame->duration, GST_SECOND);
+  else
+    duration = kCMTimeInvalid;
+
+  meta = gst_buffer_get_core_media_meta (frame->input_buffer);
+  if (meta != NULL) {
+    pbuf = gst_core_media_buffer_get_pixel_buffer (frame->input_buffer);
+  }
+#ifdef HAVE_IOS
   if (pbuf == NULL) {
-    GstVTEncFrame *frame;
+    GstVideoFrame inframe, outframe;
+    GstBuffer *outbuf;
+    OSType pixel_format_type;
     CVReturn cv_ret;
 
-    frame = gst_vtenc_frame_new (buf, &self->video_info);
-    if (!frame)
+    /* FIXME: iOS has special stride requirements that we don't know yet.
+     * Copy into a newly allocated pixelbuffer for now. Probably makes
+     * sense to create a buffer pool around these at some point.
+     */
+
+    switch (GST_VIDEO_INFO_FORMAT (&self->video_info)) {
+      case GST_VIDEO_FORMAT_I420:
+        pixel_format_type = kCVPixelFormatType_420YpCbCr8Planar;
+        break;
+      case GST_VIDEO_FORMAT_NV12:
+        pixel_format_type = kCVPixelFormatType_420YpCbCr8BiPlanarVideoRange;
+        break;
+      default:
+        goto cv_error;
+    }
+
+    if (!gst_video_frame_map (&inframe, &self->video_info, frame->input_buffer,
+            GST_MAP_READ))
+      goto cv_error;
+
+    cv_ret =
+        CVPixelBufferCreate (NULL, self->negotiated_width,
+        self->negotiated_height, pixel_format_type, NULL, &pbuf);
+
+    if (cv_ret != kCVReturnSuccess) {
+      gst_video_frame_unmap (&inframe);
+      goto cv_error;
+    }
+
+    outbuf = gst_core_video_buffer_new ((CVBufferRef) pbuf, &self->video_info);
+    if (!gst_video_frame_map (&outframe, &self->video_info, outbuf,
+            GST_MAP_WRITE)) {
+      gst_video_frame_unmap (&inframe);
+      gst_buffer_unref (outbuf);
+      CVPixelBufferRelease (pbuf);
+      goto cv_error;
+    }
+
+    if (!gst_video_frame_copy (&outframe, &inframe)) {
+      gst_video_frame_unmap (&inframe);
+      gst_buffer_unref (outbuf);
+      CVPixelBufferRelease (pbuf);
+      goto cv_error;
+    }
+
+    gst_buffer_unref (outbuf);
+    gst_video_frame_unmap (&inframe);
+    gst_video_frame_unmap (&outframe);
+  }
+#else
+  if (pbuf == NULL) {
+    GstVTEncFrame *vframe;
+    CVReturn cv_ret;
+
+    vframe = gst_vtenc_frame_new (frame->input_buffer, &self->video_info);
+    if (!vframe)
       goto cv_error;
 
     {
-      const size_t num_planes = GST_VIDEO_FRAME_N_PLANES (&frame->videoframe);
+      const size_t num_planes = GST_VIDEO_FRAME_N_PLANES (&vframe->videoframe);
       void *plane_base_addresses[GST_VIDEO_MAX_PLANES];
       size_t plane_widths[GST_VIDEO_MAX_PLANES];
       size_t plane_heights[GST_VIDEO_MAX_PLANES];
@@ -795,13 +757,13 @@
 
       for (i = 0; i < num_planes; i++) {
         plane_base_addresses[i] =
-            GST_VIDEO_FRAME_PLANE_DATA (&frame->videoframe, i);
-        plane_widths[i] = GST_VIDEO_FRAME_COMP_WIDTH (&frame->videoframe, i);
-        plane_heights[i] = GST_VIDEO_FRAME_COMP_HEIGHT (&frame->videoframe, i);
+            GST_VIDEO_FRAME_PLANE_DATA (&vframe->videoframe, i);
+        plane_widths[i] = GST_VIDEO_FRAME_COMP_WIDTH (&vframe->videoframe, i);
+        plane_heights[i] = GST_VIDEO_FRAME_COMP_HEIGHT (&vframe->videoframe, i);
         plane_bytes_per_row[i] =
-            GST_VIDEO_FRAME_COMP_STRIDE (&frame->videoframe, i);
+            GST_VIDEO_FRAME_COMP_STRIDE (&vframe->videoframe, i);
         plane_bytes_per_row[i] =
-            GST_VIDEO_FRAME_COMP_STRIDE (&frame->videoframe, i);
+            GST_VIDEO_FRAME_COMP_STRIDE (&vframe->videoframe, i);
       }
 
       switch (GST_VIDEO_INFO_FORMAT (&self->video_info)) {
@@ -819,110 +781,114 @@
           self->negotiated_width, self->negotiated_height,
           pixel_format_type,
           frame,
-          GST_VIDEO_FRAME_SIZE (&frame->videoframe),
+          GST_VIDEO_FRAME_SIZE (&vframe->videoframe),
           num_planes,
           plane_base_addresses,
           plane_widths,
           plane_heights,
-          plane_bytes_per_row, gst_pixel_buffer_release_cb, frame, NULL, &pbuf);
+          plane_bytes_per_row, gst_pixel_buffer_release_cb, vframe, NULL,
+          &pbuf);
       if (cv_ret != kCVReturnSuccess) {
-        gst_vtenc_frame_free (frame);
+        gst_vtenc_frame_free (vframe);
         goto cv_error;
       }
     }
   }
+#endif
 
-  GST_OBJECT_LOCK (self);
+  /* We need to unlock the stream lock here because
+   * it can wait for gst_vtenc_enqueue_buffer() to
+   * handle a buffer... which will take the stream
+   * lock from another thread and then deadlock */
+  GST_VIDEO_ENCODER_STREAM_UNLOCK (self);
+  vt_status = VTCompressionSessionEncodeFrame (self->session,
+      pbuf, ts, duration, self->options,
+      GINT_TO_POINTER (frame->system_frame_number), NULL);
+  GST_VIDEO_ENCODER_STREAM_LOCK (self);
 
-  self->expect_keyframe = CFDictionaryContainsKey (self->options,
-      *(vt->kVTEncodeFrameOptionKey_ForceKeyFrame));
-  if (self->expect_keyframe)
-    gst_vtenc_clear_cached_caps_downstream (self);
-
-  vt_status = self->ctx->vt->VTCompressionSessionEncodeFrame (self->session,
-      pbuf, ts, duration, self->options, NULL, NULL);
-
-  if (vt_status != 0) {
-    GST_WARNING_OBJECT (self, "VTCompressionSessionEncodeFrame returned %d",
-        vt_status);
+  /* Only force one keyframe */
+  if (forced_keyframe) {
+    CFDictionaryRemoveValue (self->options,
+        kVTEncodeFrameOptionKey_ForceKeyFrame);
   }
 
-  self->ctx->vt->VTCompressionSessionCompleteFrames (self->session,
-      kCMTimeInvalid);
+  if (vt_status != noErr) {
+    GST_WARNING_OBJECT (self, "VTCompressionSessionEncodeFrame returned %d",
+        (int) vt_status);
+  }
 
-  GST_OBJECT_UNLOCK (self);
+  gst_video_codec_frame_unref (frame);
 
   CVPixelBufferRelease (pbuf);
-  self->cur_inbuf = NULL;
-  gst_buffer_unref (buf);
 
-  if (self->cur_outbufs->len > 0) {
-    meta =
-        gst_buffer_get_core_media_meta (g_ptr_array_index (self->cur_outbufs,
-            0));
-    if (!gst_vtenc_negotiate_downstream (self, meta->sample_buf))
-      ret = GST_FLOW_NOT_NEGOTIATED;
-  }
+  i = 0;
+  while (g_async_queue_length (self->cur_outframes) > 0) {
+    GstVideoCodecFrame *outframe = g_async_queue_try_pop (self->cur_outframes);
 
-  for (i = 0; i != self->cur_outbufs->len; i++) {
-    GstBuffer *buf = g_ptr_array_index (self->cur_outbufs, i);
-
-    if (ret == GST_FLOW_OK) {
-      ret = gst_pad_push (self->srcpad, buf);
-    } else {
-      gst_buffer_unref (buf);
+    /* Try to renegotiate once */
+    if (i == 0) {
+      meta = gst_buffer_get_core_media_meta (outframe->output_buffer);
+      if (!gst_vtenc_negotiate_downstream (self, meta->sample_buf)) {
+        ret = GST_FLOW_NOT_NEGOTIATED;
+        gst_video_codec_frame_unref (outframe);
+        break;
+      }
     }
+
+    ret =
+        gst_video_encoder_finish_frame (GST_VIDEO_ENCODER_CAST (self),
+        outframe);
+    i++;
   }
-  g_ptr_array_set_size (self->cur_outbufs, 0);
 
   return ret;
 
 cv_error:
   {
-    self->cur_inbuf = NULL;
-    gst_buffer_unref (buf);
-
+    gst_video_codec_frame_unref (frame);
     return GST_FLOW_ERROR;
   }
 }
 
-static VTStatus
-gst_vtenc_enqueue_buffer (void *data, int a2, int a3, int a4,
-    CMSampleBufferRef sbuf, int a6, int a7)
+static void
+gst_vtenc_enqueue_buffer (void *outputCallbackRefCon,
+    void *sourceFrameRefCon,
+    OSStatus status,
+    VTEncodeInfoFlags infoFlags, CMSampleBufferRef sampleBuffer)
 {
-  GstVTEnc *self = data;
+  GstVTEnc *self = outputCallbackRefCon;
   gboolean is_keyframe;
-  GstBuffer *buf;
+  GstVideoCodecFrame *frame;
+
+  if (status != noErr) {
+    GST_ELEMENT_ERROR (self, LIBRARY, ENCODE, (NULL), ("Failed to encode: %d",
+            (int) status));
+    goto beach;
+  }
 
   /* This may happen if we don't have enough bitrate */
-  if (sbuf == NULL)
+  if (sampleBuffer == NULL)
     goto beach;
 
-  is_keyframe = gst_vtenc_buffer_is_keyframe (self, sbuf);
-  if (self->expect_keyframe) {
-    if (!is_keyframe)
-      goto beach;
-    CFDictionaryRemoveValue (self->options,
-        *(self->ctx->vt->kVTEncodeFrameOptionKey_ForceKeyFrame));
+  is_keyframe = gst_vtenc_buffer_is_keyframe (self, sampleBuffer);
+
+  frame =
+      gst_video_encoder_get_frame (GST_VIDEO_ENCODER_CAST (self),
+      GPOINTER_TO_INT (sourceFrameRefCon));
+
+  if (is_keyframe) {
+    GST_VIDEO_CODEC_FRAME_SET_SYNC_POINT (frame);
+    gst_vtenc_clear_cached_caps_downstream (self);
   }
-  self->expect_keyframe = FALSE;
 
   /* We are dealing with block buffers here, so we don't need
    * to enable the use of the video meta API on the core media buffer */
-  buf = gst_core_media_buffer_new (sbuf, FALSE);
-  gst_buffer_copy_into (buf, self->cur_inbuf, GST_BUFFER_COPY_TIMESTAMPS,
-      0, -1);
-  if (is_keyframe) {
-    GST_BUFFER_FLAG_SET (buf, GST_BUFFER_FLAG_DISCONT);
-  } else {
-    GST_BUFFER_FLAG_UNSET (buf, GST_BUFFER_FLAG_DISCONT);
-    GST_BUFFER_FLAG_SET (buf, GST_BUFFER_FLAG_DELTA_UNIT);
-  }
+  frame->output_buffer = gst_core_media_buffer_new (sampleBuffer, FALSE);
 
-  g_ptr_array_add (self->cur_outbufs, buf);
+  g_async_queue_push (self->cur_outframes, frame);
 
 beach:
-  return kVTSuccess;
+  return;
 }
 
 static gboolean
@@ -945,6 +911,7 @@
   return result;
 }
 
+#ifndef HAVE_IOS
 static GstVTEncFrame *
 gst_vtenc_frame_new (GstBuffer * buf, GstVideoInfo * video_info)
 {
@@ -974,9 +941,9 @@
     size_t dataSize, size_t numberOfPlanes, const void *planeAddresses[])
 {
   GstVTEncFrame *frame = (GstVTEncFrame *) releaseRefCon;
-
   gst_vtenc_frame_free (frame);
 }
+#endif
 
 static void
 gst_vtenc_register (GstPlugin * plugin,
@@ -989,7 +956,7 @@
     (GClassInitFunc) gst_vtenc_class_init,
     NULL,
     NULL,
-    sizeof (GstVTEncClass),
+    sizeof (GstVTEnc),
     0,
     (GInstanceInitFunc) gst_vtenc_init,
   };
@@ -999,7 +966,8 @@
 
   type_name = g_strdup_printf ("vtenc_%s", codec_details->element_name);
 
-  type = g_type_register_static (GST_TYPE_ELEMENT, type_name, &type_info, 0);
+  type =
+      g_type_register_static (GST_TYPE_VIDEO_ENCODER, type_name, &type_info, 0);
 
   g_type_set_qdata (type, GST_VTENC_CODEC_DETAILS_QDATA,
       (gpointer) codec_details);
@@ -1013,7 +981,7 @@
 }
 
 static const GstVTEncoderDetails gst_vtenc_codecs[] = {
-  {"H.264", "h264", "video/x-h264", kVTFormatH264},
+  {"H.264", "h264", "video/x-h264", kCMVideoCodecType_H264},
 };
 
 void
diff --git a/sys/applemedia/vtenc.h b/sys/applemedia/vtenc.h
index 776e04b..6ba70df 100644
--- a/sys/applemedia/vtenc.h
+++ b/sys/applemedia/vtenc.h
@@ -22,8 +22,7 @@
 
 #include <gst/gst.h>
 #include <gst/video/video.h>
-
-#include "coremediactx.h"
+#include <VideoToolbox/VideoToolbox.h>
 
 G_BEGIN_DECLS
 
@@ -44,28 +43,22 @@
   const gchar * name;
   const gchar * element_name;
   const gchar * mimetype;
-  VTFormatId format_id;
+  CMVideoCodecType format_id;
 };
 
 struct _GstVTEncClass
 {
-  GstElementClass parent_class;
+  GstVideoEncoderClass parent_class;
 };
 
 struct _GstVTEnc
 {
-  GstElement parent;
+  GstVideoEncoder parent;
 
   const GstVTEncoderDetails * details;
 
-  GstPad * sinkpad;
-  GstPad * srcpad;
-
-  gint usage;
   guint bitrate;
 
-  GstCoreMediaCtx * ctx;
-
   gboolean dump_properties;
   gboolean dump_attributes;
 
@@ -73,13 +66,12 @@
   gint negotiated_fps_n, negotiated_fps_d;
   gint caps_width, caps_height;
   gint caps_fps_n, caps_fps_d;
+  GstVideoCodecState *input_state;
   GstVideoInfo video_info;
   VTCompressionSessionRef session;
   CFMutableDictionaryRef options;
 
-  GstBuffer * cur_inbuf;
-  GPtrArray * cur_outbufs;
-  gboolean expect_keyframe;
+  GAsyncQueue * cur_outframes;
 };
 
 void gst_vtenc_register_elements (GstPlugin * plugin);
diff --git a/sys/applemedia/vth264decbin.h b/sys/applemedia/vth264decbin.h
deleted file mode 100644
index 1c039f0..0000000
--- a/sys/applemedia/vth264decbin.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright (C) 2010 Ole André Vadla Ravnås <oleavr@soundrop.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_VTH264DECBIN_H__
-#define __GST_VTH264DECBIN_H__
-
-#include <gst/gst.h>
-
-G_BEGIN_DECLS
-
-#define GST_TYPE_VT_H264_DEC_BIN (gst_vt_h264_dec_bin_get_type())
-#define GST_VT_H264_DEC_BIN(obj) \
-  (G_TYPE_CHECK_INSTANCE_CAST((obj), GST_TYPE_VT_H264_DEC_BIN, \
-  GstVTH264DecBin))
-#define GST_VT_H264_DEC_BIN_CAST(obj) \
-  ((GstVTH264DecBin *) (obj))
-#define GST_VT_H264_DEC_BIN_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_CAST((klass), GST_TYPE_VT_H264_DEC_BIN, \
-  GstVTH264DecBinClass))
-#define GST_IS_VT_H264_DEC_BIN(obj) \
-  (G_TYPE_CHECK_INSTANCE_TYPE((obj), GST_TYPE_VT_H264_DEC_BIN))
-#define GST_IS_VT_H264_DEC_BIN_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_TYPE((klass), GST_TYPE_VT_H264_DEC_BIN))
-
-typedef struct _GstVTH264DecBin        GstVTH264DecBin;
-typedef struct _GstVTH264DecBinPrivate GstVTH264DecBinPrivate;
-typedef struct _GstVTH264DecBinClass   GstVTH264DecBinClass;
-
-struct _GstVTH264DecBin
-{
-  GstBin parent;
-
-  GstVTH264DecBinPrivate * priv;
-};
-
-struct _GstVTH264DecBinClass
-{
-  GstBinClass parent_class;
-};
-
-GType gst_vt_h264_dec_bin_get_type (void);
-
-G_END_DECLS
-
-#endif /* __GST_VTH264DECBIN_H__ */
diff --git a/sys/applemedia/vth264encbin.h b/sys/applemedia/vth264encbin.h
deleted file mode 100644
index 6bfb54a..0000000
--- a/sys/applemedia/vth264encbin.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright (C) 2010 Ole André Vadla Ravnås <oleavr@soundrop.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_VTH264ENCBIN_H__
-#define __GST_VTH264ENCBIN_H__
-
-#include <gst/gst.h>
-
-G_BEGIN_DECLS
-
-#define GST_TYPE_VT_H264_ENC_BIN (gst_vt_h264_enc_bin_get_type())
-#define GST_VT_H264_ENC_BIN(obj) \
-  (G_TYPE_CHECK_INSTANCE_CAST((obj), GST_TYPE_VT_H264_ENC_BIN, \
-  GstVTH264EncBin))
-#define GST_VT_H264_ENC_BIN_CAST(obj) \
-  ((GstVTH264EncBin *) (obj))
-#define GST_VT_H264_ENC_BIN_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_CAST((klass), GST_TYPE_VT_H264_ENC_BIN, \
-  GstVTH264EncBinClass))
-#define GST_IS_VT_H264_ENC_BIN(obj) \
-  (G_TYPE_CHECK_INSTANCE_TYPE((obj), GST_TYPE_VT_H264_ENC_BIN))
-#define GST_IS_VT_H264_ENC_BIN_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_TYPE((klass), GST_TYPE_VT_H264_ENC_BIN))
-
-typedef struct _GstVTH264EncBin        GstVTH264EncBin;
-typedef struct _GstVTH264EncBinPrivate GstVTH264EncBinPrivate;
-typedef struct _GstVTH264EncBinClass   GstVTH264EncBinClass;
-
-struct _GstVTH264EncBin
-{
-  GstBin parent;
-
-  GstVTH264EncBinPrivate * priv;
-};
-
-struct _GstVTH264EncBinClass
-{
-  GstBinClass parent_class;
-};
-
-GType gst_vt_h264_enc_bin_get_type (void);
-
-G_END_DECLS
-
-#endif /* __GST_VTH264ENCBIN_H__ */
diff --git a/tests/check/libs/vc1parser.c b/tests/check/libs/vc1parser.c
index 1d00e19..cb0bce7 100644
--- a/tests/check/libs/vc1parser.c
+++ b/tests/check/libs/vc1parser.c
@@ -1227,7 +1227,7 @@
   assert_equals_int (seq_layer.struct_a.vert_size, 48);
   assert_equals_int (seq_layer.struct_a.horiz_size, 48);
 
-  assert_equals_int (seq_layer.struct_b.level, GST_VC1_LEVEL_HIGH);
+  assert_equals_int (seq_layer.struct_b.level, GST_VC1_LEVEL_MEDIUM);
   assert_equals_int (seq_layer.struct_b.cbr, 1);
   assert_equals_int (seq_layer.struct_b.framerate, 29);
   assert_equals_int (seq_layer.struct_b.hrd_buffer, 0);
diff --git a/tests/examples/gl/sdl/sdlshare.c b/tests/examples/gl/sdl/sdlshare.c
index 9d8906d..bc54eae 100644
--- a/tests/examples/gl/sdl/sdlshare.c
+++ b/tests/examples/gl/sdl/sdlshare.c
@@ -288,10 +288,7 @@
 #else
   SDL_VERSION (&info.version);
   SDL_GetWMInfo (&info);
-  /* FIXME: This display is different to the one that SDL uses to create the
-   * GL context inside SDL_SetVideoMode() above which fails on Intel hardware
-   */
-  sdl_display = info.info.x11.display;
+  sdl_display = info.info.x11.gfxdisplay;
   sdl_win = info.info.x11.window;
   sdl_gl_context = glXGetCurrentContext ();
   glXMakeCurrent (sdl_display, None, 0);
diff --git a/win32/common/config.h b/win32/common/config.h
index 7f33f20..4c5db01 100644
--- a/win32/common/config.h
+++ b/win32/common/config.h
@@ -86,7 +86,7 @@
 #define GST_PACKAGE_ORIGIN "Unknown package origin"
 
 /* GStreamer package release date/time for plugins as YYYY-MM-DD */
-#define GST_PACKAGE_RELEASE_DATETIME "2014-09-24"
+#define GST_PACKAGE_RELEASE_DATETIME "2014-11-06"
 
 /* Define if static plugins should be built */
 #undef GST_PLUGIN_BUILD_STATIC
@@ -547,6 +547,9 @@
 /* Define if building with VideoToolbox */
 #undef HAVE_VIDEOTOOLBOX
 
+/* Define if building with VideoToolbox >= 10.9.6 */
+#undef HAVE_VIDEOTOOLBOX_10_9_6
+
 /* Define to enable vo-aacenc library (used by vo-aacenc). */
 #undef HAVE_VOAACENC
 
@@ -637,7 +640,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.4.3"
+#define PACKAGE_STRING "GStreamer Bad Plug-ins 1.4.4"
 
 /* Define to the one symbol short name of this package. */
 #define PACKAGE_TARNAME "gst-plugins-bad"
@@ -646,7 +649,7 @@
 #undef PACKAGE_URL
 
 /* Define to the version of this package. */
-#define PACKAGE_VERSION "1.4.3"
+#define PACKAGE_VERSION "1.4.4"
 
 /* directory where plugins are located */
 #ifdef _DEBUG
@@ -686,7 +689,7 @@
 #undef USE_EGL_RPI
 
 /* Version number of package */
-#define VERSION "1.4.3"
+#define VERSION "1.4.4"
 
 /* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
    significant byte first (like Motorola and SPARC, unlike Intel). */
