Merge tag 'upstream/1.8.1'

Upstream version 1.8.1
diff --git a/ChangeLog b/ChangeLog
index 9e1410d..fb0e6d8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,9 +1,166 @@
-=== release 1.8.0 ===
+=== release 1.8.1 ===
 
-2016-03-24  Sebastian Dröge <slomo@coaxion.net>
+2016-04-20  Sebastian Dröge <slomo@coaxion.net>
 
 	* configure.ac:
-	  releasing 1.8.0
+	  releasing 1.8.1
+
+2016-04-20 15:29:15 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* po/da.po:
+	  po: Update translations
+
+2016-04-20 11:46:19 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* libs/gst/base/gstbaseparse.c:
+	  baseparse: Remember if we interpolated DTS from PTS and refresh it whenever we update the PTS
+	  Otherwise PTS and DTS will come out of sync if upstream continues to provide
+	  PTS and not DTS, and we have to skip some data from the stream or PTS are not
+	  exactly increasing with the duration of each packet.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=765260
+
+2016-04-14 11:54:32 +0200  Carlos Rafael Giani <dv@pseudoterminal.org>
+
+	* plugins/elements/gstmultiqueue.c:
+	* tests/check/elements/multiqueue.c:
+	  multiqueue: Recheck buffering status after changing low threshold
+	  https://bugzilla.gnome.org/show_bug.cgi?id=763757
+
+2016-04-14 00:09:44 +0200  Carlos Rafael Giani <dv@pseudoterminal.org>
+
+	* plugins/elements/gstmultiqueue.c:
+	* tests/check/elements/multiqueue.c:
+	  multiqueue: Recalculate fill level after changing high-threshold
+	  This ensures the following special case is handled properly:
+	  1. Queue is empty
+	  2. Data is pushed, fill level is below the current high-threshold
+	  3. high-threshold is set to a level that is below the current fill level
+	  Since mq->percent wasn't being recalculated in step #3 properly, this
+	  caused the multiqueue to switch off its buffering state when new data is
+	  pushed in, and never post a 100% buffering message. The application will
+	  have received a <100% buffering message from step #2, but will never see
+	  100%.
+	  Fix this by recalculating the current fill level percentage during
+	  high-threshold property changes in the same manner as it is done when
+	  use-buffering is modified.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=763757
+
+2016-04-15 13:50:30 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* libs/gst/base/gstbaseparse.c:
+	  baseparse: When initializing DTS from PTS, remember that we did so
+	  If we don't store the value in prev_dts, we would over and over again
+	  initialize the DTS from the last known upstream PTS. If upstream only provides
+	  PTS every now and then, then this causes DTS to be rather static.
+	  For example in adaptive streaming scenarios this means that all buffers in a
+	  fragment will have exactly the same DTS while the PTS is properly updated. As
+	  our queues are now preferring to do buffer fill level calculations on DTS,
+	  this is causing huge problems there.
+	  See https://bugzilla.gnome.org/show_bug.cgi?id=691481#c27 where this part of
+	  the code was introduced.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=765096
+
+2016-03-02 17:47:33 +0100  Edward Hervey <edward@centricular.com>
+
+	* plugins/elements/gstqueue.c:
+	* plugins/elements/gstqueue.h:
+	  queue: Use full running time for level calculation
+	  Ensures we have proper time level estimation for the cases where
+	  the incoming buffers have PTS/DTS outside of the segment start/stop
+	  values.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=762995
+
+2016-01-27 11:46:06 +0100  Stian Selnes <stian@pexip.com>
+
+	* gst/gstpad.c:
+	  pad: Fix race between gst_element_remove_pad and state change
+	  When going from READY to NULL all element pads are deactivated. If
+	  simultaneously the pad is being removed from the element with
+	  gst_element_remove_pad() and the pad is unparented, there is a race
+	  where the deactivation will assert (g_critical) if the parent is lost at
+	  the wrong time.
+	  The proposed fix will check parent only once and retain it to avoid the
+	  race.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=761912
+
+2016-03-25 12:05:41 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* tests/check/elements/valve.c:
+	  valve: Fix unit test by sending caps before buffers
+	  Unexpected critical/warning: gstpad.c:4400:gst_pad_push_data:<'':src> Got data flow before segment event
+	  https://bugzilla.gnome.org/show_bug.cgi?id=763753
+
+2016-03-16 15:13:39 +0100  Havard Graff <havard.graff@gmail.com>
+
+	* plugins/elements/gstvalve.c:
+	* tests/check/elements/valve.c:
+	  valve: don't send sticky events as a direct response to upstream events
+	  Also refactor the existing valve test to actually test the valve,
+	  and not just test the EOS mechanism of a pad.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=763753
+
+2016-03-24 11:49:44 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* plugins/elements/gsttypefindelement.c:
+	  typefind: Remove redundant assignment
+	  CID 1357158
+
+=== release 1.8.0 ===
+
+2016-03-24 11:49:08 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* ChangeLog:
+	* NEWS:
+	* RELEASE:
+	* configure.ac:
+	* docs/plugins/inspect/plugin-coreelements.xml:
+	* gstreamer.doap:
+	* win32/common/config.h:
+	* win32/common/gstversion.h:
+	  Release 1.8.0
+
+2016-03-24 11:35:26 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* po/af.po:
+	* po/az.po:
+	* po/be.po:
+	* po/bg.po:
+	* po/ca.po:
+	* po/cs.po:
+	* po/da.po:
+	* po/de.po:
+	* po/el.po:
+	* po/en_GB.po:
+	* po/eo.po:
+	* po/es.po:
+	* po/eu.po:
+	* po/fi.po:
+	* po/fr.po:
+	* po/gl.po:
+	* po/hr.po:
+	* po/hu.po:
+	* po/id.po:
+	* po/it.po:
+	* po/ja.po:
+	* po/lt.po:
+	* po/nb.po:
+	* po/nl.po:
+	* po/pl.po:
+	* po/pt_BR.po:
+	* po/ro.po:
+	* po/ru.po:
+	* po/rw.po:
+	* po/sk.po:
+	* po/sl.po:
+	* po/sq.po:
+	* po/sr.po:
+	* po/sv.po:
+	* po/tr.po:
+	* po/uk.po:
+	* po/vi.po:
+	* po/zh_CN.po:
+	* po/zh_TW.po:
+	  Update .po files
 
 2016-03-13 11:05:29 -0400  Anthony G. Basile <blueness@gentoo.org>
 
diff --git a/NEWS b/NEWS
index ee7f213..4d4ffd0 100644
--- a/NEWS
+++ b/NEWS
@@ -1,786 +1,25 @@
-# GStreamer 1.8 Release Notes
-
-**GStreamer 1.8.0 was released on 24 March 2016.**
-
-The GStreamer team is proud to announce a new major feature release in the
-stable 1.x API series of your favourite cross-platform multimedia framework!
-
-As always, this release is again packed with new features, bug fixes and other
-improvements.
-
-See [https://gstreamer.freedesktop.org/releases/1.8/][latest] for the latest
-version of this document.
-
-*Last updated: Thursday 24 March 2016, 10:00 UTC [(log)][gitlog]*
-
-[latest]: https://gstreamer.freedesktop.org/releases/1.8/
-[gitlog]: https://cgit.freedesktop.org/gstreamer/www/log/src/htdocs/releases/1.8/release-notes-1.8.md
-
-## Highlights
-
-- **Hardware-accelerated zero-copy video decoding on Android**
-
-- **New video capture source for Android using the android.hardware.Camera API**
-
-- **Windows Media reverse playback** support (ASF/WMV/WMA)
-
-- **New tracing system** provides support for more sophisticated debugging tools
-
-- **New high-level GstPlayer playback convenience API**
-
-- **Initial support for the new [Vulkan][vulkan] API**, see
-  [Matthew Waters' blog post][vulkan-in-gstreamer] for more details
-
-- **Improved Opus audio codec support**: Support for more than two channels; MPEG-TS demuxer/muxer can now handle Opus;
-  [sample-accurate][opus-sample-accurate] encoding/decoding/transmuxing with
-  Ogg, Matroska, ISOBMFF (Quicktime/MP4), and MPEG-TS as container;
-  [new codec utility functions for Opus header and caps handling][opus-codec-utils]
-  in pbutils library. The Opus encoder/decoder elements were also moved to
-  gst-plugins-base (from -bad), and the opus RTP depayloader/payloader to -good.
-
-  [opus-sample-accurate]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudiometa.html#GstAudioClippingMeta
-  [opus-codec-utils]:     https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstpbutilscodecutils.html
-
-- **GStreamer VAAPI module now released and maintained as part of the GStreamer project**
-
-  [vulkan]:              https://www.khronos.org/vulkan
-  [vulkan-in-gstreamer]: http://ystreet00.blogspot.co.uk/2016/02/vulkan-in-gstreamer.html
-
-## Major new features and changes
-
-### Noteworthy new API, features and other changes
-
-- New GstVideoAffineTransformationMeta meta for adding a simple 4x4 affine
-  transformation matrix to video buffers
-
-- [g\_autoptr()](https://developer.gnome.org/glib/stable/glib-Miscellaneous-Macros.html#g-autoptr)
-  support for all types is exposed in GStreamer headers now, in combination
-  with a sufficiently-new GLib version (i.e. 2.44 or later). This is primarily
-  for the benefit of application developers who would like to make use of
-  this, the GStreamer codebase itself will not be using g_autoptr() for
-  the time being due to portability issues.
-
-- GstContexts are now automatically propagated to elements added to a bin
-  or pipeline, and elements now maintain a list of contexts set on them.
-  The list of contexts set on an element can now be queried using the new functions
-  [gst\_element\_get\_context()](https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#gst-element-get-context)
-  and [gst\_element\_get\_contexts()](https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#gst-element-get-contexts). GstContexts are used to share context-specific configuration objects
-  between elements and can also be used by applications to set context-specific
-  configuration objects on elements, e.g. for OpenGL or Hardware-accelerated
-  video decoding.
-
-- New [GST\_BUFFER\_DTS\_OR\_PTS()](https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html#GST-BUFFER-DTS-OR-PTS:CAPS)
-  convenience macro that returns the decode timestamp if one is set and
-  otherwise returns the presentation timestamp
-
-- New GstPadEventFullFunc that returns a GstFlowReturn instead of a gboolean.
-  This new API is mostly for internal use and was added to fix a race condition
-  where occasionally internal flow error messages were posted on the bus when
-  sticky events were propagated at just the wrong moment whilst the pipeline
-  was shutting down. This happened primarily when the pipeline was shut down
-  immediately after starting it up. GStreamer would not know that the reason
-  the events could not be propagated was because the pipeline was shutting down
-  and not some other problem, and now the flow error allows GStreamer to know
-  the reason for the failure (and that there's no reason to post an error
-  message). This is particularly useful for queue-like elements which may need
-  to asynchronously propagate a previous flow return from downstream.
-
-- Pipeline dumps in form of "dot files" now also show pad properties that
-  differ from their default value, the same as it does for elements. This is
-  useful for elements with pad subclasses that provide additional properties,
-  e.g. videomixer or compositor.
-
-- Pad probes are now guaranteed to be called in the order they were added
-  (before they were called in reverse order, but no particular order was
-  documented or guaranteed)
-
-- Plugins can now have dependencies on device nodes (not just regular files)
-  and also have a prefix filter. This is useful for plugins that expose
-  features (elements) based on available devices, such as the video4linux
-  plugin does with video decoders on certain embedded systems.
-
-- gst\_segment\_to\_position() has been deprecated and been replaced by the
-  better-named gst\_segment\_position\_from\_running\_time(). At the same time
-  gst\_segment\_position\_from\_stream\_time() was added, as well as \_full()
-  variants of both to deal with negative stream time.
-
-- GstController: the interpolation control source gained a new monotonic cubic
-  interpolation mode that, unlike the existing cubic mode, will never overshoot
-  the min/max y values set.
-
-- GstNetAddressMeta: can now be read from buffers in language bindings as well,
-  via the new gst\_buffer\_get\_net\_address\_meta() function
-
-- ID3 tag PRIV frames are now extraced into a new GST\_TAG\_PRIVATE\_DATA tag
-
-- gst-launch-1.0 and gst\_parse\_launch() now warn in the most common case if
-  a dynamic pad link could not be resolved, instead of just silently
-  waiting to see if a suitable pad appears later, which is often perceived
-  by users as hanging -- they are now notified when this happens and can check
-  their pipeline.
-
-- GstRTSPConnection now also parses custom RTSP message headers and retains
-  them for the application instead of just ignoring them
-
-- rtspsrc handling of  authentication over tunneled connections (e.g. RTSP over HTTP)
-  was fixed
-
-- gst\_video\_convert\_sample() now crops if there is a crop meta on the input buffer
-
-- The debugging system printf functions are now exposed for general use, which
-  supports special printf format specifiers such as GST\_PTR\_FORMAT and
-  GST\_SEGMENT\_FORMAT to print GStreamer-related objects. This is handy for
-  systems that want to prepare some debug log information to be output at a
-  later point in time. The GStreamer-OpenGL subsystem is making use of these
-  new functions, which are [gst\_info\_vasprintf()][gst_info_vasprintf],
-    [gst\_info\_strdup\_vprintf()][gst_info_strdup_vprintf] and
-    [gst\_info\_strdup\_printf()][gst_info_strdup_printf].
-
-- videoparse: "strides", "offsets" and "framesize" properties have been added to
-  allow parsing raw data with strides and padding that do not match GStreamer
-  defaults.
-
-- GstPreset reads presets from the directories given in GST\_PRESET\_PATH now.
-  Presets are read from there after presets in the system path, but before
-  application and user paths.
-
-[gst_info_vasprintf]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstInfo.html#gst-info-vasprintf
-[gst_info_strdup_vprintf]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstInfo.html#gst-info-strdup-vprintf
-[gst_info_strdup_printf]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstInfo.html#gst-info-strdup-printf
-
-### New Elements
-
-- [netsim](): a new (resurrected) element to simulate network jitter and
-  packet dropping / duplication.
-
-- New VP9 RTP payloader/depayloader elements: rtpvp9pay/rtpvp9depay
-
-- New [videoframe_audiolevel]() element, a video frame synchronized audio level element
-
-- New spandsp-based tone generator source
-
-- New NVIDIA NVENC-based H.264 encoder for GPU-accelerated video encoding on
-  suitable NVIDIA hardware
-
-- [rtspclientsink](), a new RTSP RECORD sink element, was added to gst-rtsp-server
-
-- [alsamidisrc](), a new ALSA MIDI sequencer source element
-
-### Noteworthy element features and additions
-
-- *identity*: new ["drop-buffer-flags"](https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-plugins/html/gstreamer-plugins-identity.html#GstIdentity--drop-buffer-flags)
-  property to drop buffers based on buffer flags. This can be used to drop all
-  non-keyframe buffers, for example.
-
-- *multiqueue*: various fixes and improvements, in particular special handling
-  for sparse streams such as substitle streams, to make sure we don't overread
-  them any more. For sparse streams it can be normal that there's no buffer for
-  a long period of time, so having no buffer queued is perfectly normal. Before
-  we would often unnecessarily try to fill the subtitle stream queue, which
-  could lead to much more data being queued in multiqueue than necessary.
-
-- *multiqueue*/*queue*: When dealing with time limits, these elements now use the
-  new ["GST_BUFFER_DTS_OR_PTS"](https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html#GST-BUFFER-DTS-OR-PTS:CAPS)
-  and ["gst_segment_to_running_time_full()"](https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstSegment.html#gst-segment-to-running-time-full)
-  API, resulting in more accurate levels, especially when dealing with non-raw
-  streams (where reordering happens, and we want to use the increasing DTS as
-  opposed to the non-continuously increasing PTS) and out-of-segment input/output.
-  Previously all encoded buffers before the segment start, which can happen when
-  doing ACCURATE seeks, were not taken into account in the queue level calculation.
-
-- *multiqueue*: New ["use-interleave"](https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-plugins/html/gstreamer-plugins-multiqueue.html#GstMultiQueue--use-interleave)
-  property which allows the size of the queues to be optimized based on the input
-  streams interleave. This should only be used with input streams which are properly
-  timestamped. It will be used in the future decodebin3 element.
-
-- *queue2*: new ["avg-in-rate"](https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-plugins/html/gstreamer-plugins-queue2.html#GstQueue2--avg-in-rate)
-  property that returns the average input rate in bytes per second
-
-- audiotestsrc now supports all audio formats and is no longer artificially
-  limited with regard to the number of channels or sample rate
-
-- gst-libav (ffmpeg codec wrapper): map and enable JPEG2000 decoder
-
-- multisocketsink can, on request, send a custom GstNetworkMessage event
-  upstream whenever data is received from a client on a socket. Similarly,
-  socketsrc will, on request, pick up GstNetworkMessage events from downstream
-  and send any data contained within them via the socket. This allows for
-  simple bidirectional communication.
-
-- matroska muxer and demuxer now support the ProRes video format
-
-- Improved VP8/VP9 decoding performance on multi-core systems by enabling
-  multi-threaded decoding in the libvpx-based decoders on such systems
-
-- appsink has a new ["wait-on-eos"](https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-plugins/html/gst-plugins-base-plugins-appsink.html#GstAppSink--wait-on-eos)
-  property, so in cases where it is uncertain if an appsink will have a consumer for
-  its buffers when it receives an EOS this can be set to FALSE to ensure that the
-  appsink will not hang.
-
-- rtph264pay and rtph265pay have a new "config-interval" mode -1 that will
-  re-send the setup data (SPS/PPS/VPS) before every keyframe to ensure
-  optimal coverage and the shortest possibly start-up time for a new client
-
-- mpegtsmux can now mux H.265/HEVC video as well
-
-- The MXF muxer was ported to 1.x and produces more standard conformant files now
-  that can be handled by more other software; The MXF demuxer got improved
-  support for seek tables (IndexTableSegments).
-
-### Plugin moves
-
-- The rtph265pay/depay RTP payloader/depayloader elements for H.265/HEVC video
-  from the rtph265 plugin in -bad have been moved into the existing rtp plugin
-  in gst-plugins-good.
-
-- The mpg123 plugin containing a libmpg123 based audio decoder element has
-  been moved from -bad to -ugly.
-
-- The Opus encoder/decoder elements have been moved to gst-plugins-base and
-  the RTP payloader to gst-plugins-good, both coming from gst-plugins-bad.
-
-### New tracing tools for developers
-
-A new tracing subsystem API has been added to GStreamer, which provides
-external tracers with the possibility to strategically hook into GStreamer
-internals and collect data that can be evaluated later. These tracers are a
-new type of plugin features, and GStreamer core ships with a few example
-tracers (latency, stats, rusage, log) to start with. Tracers can be loaded
-and configured at start-up via an environment variable (GST\_TRACER\_PLUGINS).
-
-Background: While GStreamer provides plenty of data on what's going on in a
-pipeline via its debug log, that data is not necessarily structured enough to
-be generally useful, and the overhead to enable logging output for all data
-required might be too high in many cases. The new tracing system allows tracers
-to just obtain the data needed at the right spot with as little overhead as
-possible, which will be particularly useful on embedded systems.
-
-Of course it has always been possible to do performance benchmarks and debug
-memory leaks, memory consumption and invalid memory access using standard
-operating system tools, but there are some things that are difficult to track
-with the standard tools, and the new tracing system helps with that. Examples
-are things such as latency handling, buffer flow, ownership transfer of
-events and buffers from element to element, caps negotiation, etc.
-
-For some background on the new tracing system, watch Stefan Sauer's
-GStreamer Conference talk ["A new tracing subsystem for GStreamer"][tracer-0]
-and for a more specific example how it can be useful have a look at
-Thiago Santos's lightning talk ["Analyzing caps negotiation using GstTracer"][tracer-1]
-and his ["GstTracer experiments"][tracer-2] blog post. There was also a Google
-Summer of Code project in 2015 that used tracing system for a graphical
-GStreamer debugging tool ["gst-debugger"][tracer-3].
-
-This is all still very much work in progress, but we hope this will provide the
-foundation for a whole suite of new debugging tools for GStreamer pipelines.
-
-[tracer-0]: https://gstconf.ubicast.tv/videos/a-new-tracing-subsystem-for-gstreamer/
-[tracer-1]: https://gstconf.ubicast.tv/videos/analyzing-caps-negotiation-using-gsttracer/
-[tracer-2]: http://blog.thiagoss.com/2015/07/23/gsttracer-experiments/
-[tracer-3]: https://git.gnome.org/browse/gst-debugger
-
-### GstPlayer: a new high-level API for cross-platform multimedia playback
-
-GStreamer has had reasonably high-level API for multimedia playback
-in the form of the playbin element for a long time. This allowed application
-developers to just configure a URI to play, and playbin would take care of
-everything else. This works well, but there is still way too much to do on
-the application-side to implement a fully-featured playback application, and
-too much general GStreamer pipeline API exposed, making it less accessible
-to application developers.
-
-Enter GstPlayer. GstPlayer's aim is to provide an even higher-level abstraction
-of a fully-featured playback API but specialised for its specific use case. It
-also provides easy integration with and examples for Gtk+, Qt, Android, OS/X,
-iOS and Windows. Watch Sebastian's [GstPlayer talk at the GStreamer Conference][gstplayer-talk]
-for more information, or check out the [GstPlayer API reference][gstplayer-api]
-and [GstPlayer examples][gstplayer-examples].
-
-[gstplayer-api]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-bad-libs/html/player.html
-[gstplayer-talk]: https://gstconf.ubicast.tv/videos/gstplayer-a-simple-cross-platform-api-for-all-your-media-playback-needs-part-1/
-[gstplayer-examples]: https://github.com/sdroege/gst-player/
-
-### Adaptive streaming: DASH, HLS and MSS improvements
-
-- dashdemux now supports loading external xml nodes pointed from its MPD.
-
-- Content protection nodes parsing support for PlayReady WRM in mssdemux.
-
-- Reverse playback was improved to respect seek start and stop positions.
-
-- Adaptive demuxers (hlsdemux, dashdemux, mssdemux) now support the SNAP_AFTER
-  and SNAP_BEFORE seek flags which will jump to the nearest fragment boundary
-  when executing a seek, which means playback resumes more quickly after a seek.
-
-### Audio library improvements
-
-- audio conversion, quantization and channel up/downmixing functionality
-  has been moved from the audioconvert element into the audio library and
-  is now available as public API in form of [GstAudioConverter][audio-0],
-  [GstAudioQuantize][audio-1] and [GstAudioChannelMixer][audio-2].
-  Audio resampling will follow in future releases.
-
-- [gst\_audio\_channel\_get\_fallback\_mask()][audio-3] can be used
-  to retrieve a default channel mask for a given number of channels as last
-  resort if the layout is unknown
-
-- A new [GstAudioClippingMeta][audio-4] meta was added for specifying clipping
-  on encoded audio buffers
-
-- A new GstAudioVisualizer base class for audio visualisation elements;
-  most of the existing visualisers have been ported over to the new base class.
-  This new base class lives in the pbutils library rather than the audio library,
-  since we'd have had to make libgstaudio depend on libgstvideo otherwise,
-  which was deemed undesirable.
-
-[audio-0]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-GstAudioConverter.html
-[audio-1]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-GstAudioQuantize.html
-[audio-2]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudiochannels.html#gst-audio-channel-mix-new
-[audio-3]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudiochannels.html#gst-audio-channel-get-fallback-mask
-[audio-4]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudiometa.html#GstAudioClippingMeta
-
-### GStreamer OpenGL support improvements
-
-#### Better OpenGL Shader support
-
-[GstGLShader][shader] has been revamped to allow more OpenGL shader types
-by utilizing a new GstGLSLStage object.  Each stage holds an OpenGL pipeline
-stage such as a vertex, fragment or a geometry shader that are all compiled
-separately into a program that is executed.
-
-The glshader element has also received a revamp as a result of the changes in
-the library.  It does not take file locations for the vertex and fragment
-shaders anymore.  Instead it takes the strings directly leaving the file
-management to the application.
-
-A new [example][liveshader-example] was added utilizing the new shader
-infrastructure showcasing live shader edits.
-
-[shader]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-bad-libs/html/gst-plugins-bad-libs-gstglshader.html
-[liveshader-example]: https://cgit.freedesktop.org/gstreamer/gst-plugins-bad/tree/tests/examples/gtk/glliveshader.c
-
-#### OpenGL GLMemory rework
-
-[GstGLMemory] was extensively reworked to support the addition of multiple
-texture targets required for zero-copy integration with the Android
-MediaCodec elements.  This work was also used to provide IOSurface based
-GLMemory on OS X for zero-copy with OS X's VideoToolbox decoder (vtdec) and
-AV Foundation video source (avfvideosrc).  There are also patches in bugzilla
-for GstGLMemoryEGL specifically aimed at improving the decoding performance on
-the Raspberry Pi.
-
-[GstGLMemory]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-bad-libs/html/gst-plugins-bad-libs-gstglmemory.html
-
-A texture-target field was added to video/x-raw(memory:GLMemory) caps to signal
-the texture target contained in the GLMemory.  Its values can be 2D, rectangle
-or external-oes.  glcolorconvert can convert between the different formats as
-required and different elements will accept or produce different targets.  e.g.
-glimagesink can take and render external-oes textures directly as required for
-effecient zero-copy on android.
-
-A generic GL allocation framework was also implemented to support the generic
-allocation of OpenGL buffers and textures which is used extensively by
-GstGLBufferPool.
-
-#### OpenGL DMABuf import uploader
-
-There is now a DMABuf uploader available for automatic selection that will
-attempt to import the upstream provided DMABuf.  The uploader will import into
-2D textures with the necesarry format.  YUV to RGB conversion is still provided
-by glcolorconvert to avoid the laxer restrictions with external-oes textures.
-
-#### OpenGL queries
-
-Queries of various aspects of the OpenGL runtime such as timers, number of
-samples or the current timestamp are not possible.  The GstGLQuery object uses a
-delayed debug system to delay the debug output to later to avoid expensive calls
-to the glGet\* family of functions directly after finishing a query.  It is
-currently used to output the time taken to perform various operations of texture
-uploads and downloads in GstGLMemory.
-
-#### New OpenGL elements
-
-glcolorbalance has been created mirroring the videobalance elements.
-glcolorbalance provides the exact same interface as videobalance so can be used
-as a GPU accelerated replacement.  glcolorbalance has been added to glsinkbin so
-usage with playsink/playbin will use it automatically instead of videobalance
-where possible.
-
-glvideoflip, which is the OpenGL equiavalant of videoflip, implements the exact
-same interface and functionality as videoflip.
-
-#### EGL implementation now selects OpenGL 3.x
-
-The EGL implementation can now select OpenGL 3.x contexts.
-
-#### OpenGL API removal
-
-The GstGLDownload library object was removed as it was not used by anything.
-Everything is performed by GstGLMemory or in the gldownloadelement.
-
-The GstGLUploadMeta library object was removed as it was not being used and we
-don't want to promote the use of GstVideoGLTextureUploadMeta.
-
-#### OpenGL: Other miscellaneous changes
-
-- The EGL implementation can now select OpenGL 3.x contexts.  This brings
-  OpenGL 3.x to e.g. wayland and other EGL systems.
-
-- glstereomix/glstereosplit are now built and are usable on OpenGL ES systems
-
-- The UYVY/YUY2 to RGBA and RGBA to UYVY/YUY2 shaders were fixed removing the
-  sawtooth pattern and luma bleeding.
-
-- We now utilize the GL\_APPLE\_sync extension on iOS devices which improves
-  performance of OpenGL applications, especially with multiple OpenGL
-  contexts.
-
-- glcolorconvert now uses a bufferpool to avoid costly
-  glGenTextures/glDeleteTextures for every frame.
-
-- glvideomixer now has full glBlendFunc and glBlendEquation support per input.
-
-- gltransformation now support navigation events so your weird transformations
-  also work with DVD menus.
-
-- qmlglsink can now run on iOS, OS X and Android in addition to the already
-  supported Linux platform.
-
-- glimagesink now posts unhandled keyboard and mouse events (on backends that
-  support user input, current only X11) on the bus for the application.
-
-### Initial GStreamer Vulkan support
-
-Some new elements, vulkansink and vulkanupload have been implemented utilizing
-the new Vulkan API.  The implementation is currently limited to X11 platforms
-(via xcb) and does not perform any scaling of the stream's contents to the size
-of the available output.
-
-A lot of infrasctructure work has been undertaken to support using Vulkan in
-GStreamer in the future.  A number of GstMemory subclasses have been created for
-integrating Vulkan's GPU memory handling along with VkBuffer's and VkImage's
-that can be passed between elements.  Some GStreamer refcounted wrappers for
-global objects such as VkInstance, VkDevice, VkQueue, etc have also been
-implemented along with GstContext integration for sharing these objects with the
-application.
-
-### GStreamer VAAPI support for hardware-accelerated video decoding and encoding on Intel (and other) platforms
-
-#### GStreamer VAAPI is now part of upstream GStreamer
-
-The GStreamer-VAAPI module which provides support for hardware-accelerated
-video decoding, encoding and post-processing on Intel graphics hardware
-on Linux has moved from its previous home at the [Intel Open Source Technology Center][iostc]
-to the upstream GStreamer repositories, where it will in future be maintained
-as part of the upstream GStreamer project and released in lockstep with the
-other GStreamer modules. The current maintainers will continue to spearhead
-the development at the new location:
-
-[http://cgit.freedesktop.org/gstreamer/gstreamer-vaapi/][gst-vaapi-git]
-
-[gst-vaapi-git]: http://cgit.freedesktop.org/gstreamer/gstreamer-vaapi/
-
-GStreamer-VAAPI relies heavily on certain GStreamer infrastructure API that
-is still in flux such as the OpenGL integration API or the codec parser
-libraries, and one of the goals of the move was to be able to leverage
-new developments early and provide tighter integration with the latest
-developments of those APIs and other graphics-related APIs provided by
-GStreamer, which should hopefully improve performance even further and in
-some cases might also provide better stability.
-
-Thanks to everyone involved in making this move happen!
-
-#### GStreamer VAAPI: Bug tracking
-
-Bugs had already been tracked on [GNOME bugzilla](bgo) but will be moved
-from the gstreamer-vaapi product into a new gstreamer-vaapi component of
-the GStreamer product in bugzilla. Please file new bugs against the new
-component in the GStreamer product from now on.
-
-#### GStreamer VAAPI: Pending patches
-
-The code base has been re-indented to the GStreamer code style, which
-affected some files more than others. This means that some of the patches
-in bugzilla might not apply any longer, so if you have any unmerged patches
-sitting in bugzilla please consider checking if they still apply cleany and
-refresh them if not. Sorry for any inconvenience this may cause.
-
-#### GStreamer VAAPI: New versioning scheme and supported GStreamer versions
-
-The version numbering has been changed to match the GStreamer version
-numbering to avoid confusion: there is a new gstreamer-vaapi 1.6.0 release
-and a 1.6 branch that is roughly equivalent to the previous 0.7.0 version.
-Future releases 1.7.x and 1.8.x will be made alongside GStreamer releases.
-
-While it was possible and supported by previous releases to build against
-a whole range of different GStreamer versions (such as 1.2, 1.4, 1.6 or 1.7/1.8),
-in the future there will only be one target branch, so that git master will
-track GStreamer git master, 1.8.x will target GStreamer 1.8, and
-1.6.x will target the 1.6 series.
-
-[iostc]: http://01.org
-[bgo]:   http://bugzilla.gnome.og
-
-#### GStreamer VAAPI: Miscellaneous changes
-
-All GStreamer-VAAPI functionality is now provided solely by its GStreamer
-elements. There is no more public library exposing GstVaapi API, this API
-was only ever meant for private use by the elements. Parts of it may be
-resurrected again in future if needed, but for now it has all been made
-private.
-
-GStreamer-VAAPI now unconditionally uses the codecparser library in
-gst-plugins-bad instead of shipping its own internal copy. Similarly,
-it no longer ships its own codec parsers but relies on the upstream
-codec parser elements.
-
-The GStreamer-VAAPI encoder elements have been renamed from vaapiencode_foo
-to vaapifooenc, so encoders are now called vaapih264enc, vaapih265enc,
-vaapimpeg2enc, vaapijpegenc, and vaapivp8enc. With this change we now follow
-the standard names in GStreamer, and the plugin documentation is generated
-correctly.
-
-In the case of the decoders, only the jpeg decoder has been split from the
-general decoding element vaapidecode: vaapijpegdec. This is the first step to
-split per codec each decoding element. The vaapijpegdec has also been given
-marginal rank for the time being.
-
-#### GStreamer VAAPI: New features in 1.8: 10-bit H.265/HEVC decoding support
-
-Support for decoding 10-bit H.265/HEVC has been added. For the time being
-this only works in combination with vaapisink though, until support for the
-P010 video format used internally is added to GStreamer and to the
-vaGetImage()/vaPutimage() API in the vaapi-intel-driver.
-
-Several fixes for memory leaks, build errors, and in the internal
-video parsing.
-
-Finally, vaapisink now posts the unhandled keyboard and mouse events to the
-application.
-
-### GStreamer Video 4 Linux Support
-
-Colorimetry support has been enhanced even more. It will now properly select
-default values when not specified by the driver. The range of color formats
-supported by GStreamer has been greatly improved. Notably, support for
-multi-planar I420 has been added along with all the new and non-ambiguous RGB
-formats that got added in recent kernels.
-
-The device provider now exposes a variety of properties as found in the udev
-database.
-
-The video decoder is now able to negotiate the downstream format.
-
-Elements that are dynamically created from /dev/video\* now track changes on
-these devices to ensure the registry stay up to date.
-
-All this and various bug fixes that improve both stability and correctness.
-
-### GStreamer Editing Services
-
-Added APIs to handle asset proxying support. Proxy creation is not the
-responsibility of GES itself, but GES provides all the needed features
-for it to be cleanly handled at a higher level.
-
-Added support for changing playback rate.  This means that now, whenever a
-user adds a 'pitch' element (as it is the only known element to change playback
-rate through properties), GES will handle everything internally. This change
-introduced a new media-duration-factor property in NleObject which will
-lead to tweaking of seek events so they have the proper playback range to be
-requested upstream.
-
-Construction of NLE objects has been reworked making copy/pasting fully
-functional and allowing users to set properties on effects right after
-creating them.
-
-Rework of the title source to add more flexibility in text positioning,
-and letting the user get feedback about rendered text positioning.
-
-Report nlecomposition structural issues (coming from user programing mistakes)
-into ERROR messages on the bus.
-
-Add GI/pythyon testsuite in GES itself, making sure the API is working as expected
-in python, and allowing writing tests faster.
-
-### GstValidate
-
-Added support to run tests inside gdb.
-
-Added a 'smart' reporting mode where we give as much information as possible about
-critical errors.
-
-Uses GstTracer now instead of a LD\_PRELOAD library.
-
-## Miscellaneous
-
-- encodebin now works with "encoder-muxers" such as wavenc
-
-- gst-play-1.0 acquired a new keyboard shortcut: '0' seeks back to the start
-
-- gst-play-1.0 supports two new command line switches: -v for verbose output
-  and --flags to configure the playbin flags to use.
-
-## Build and Dependencies
-
-- The GLib dependency requirement was bumped to 2.40
-
-- The -Bsymbolic configure check now works with clang as well
-
-- ffmpeg is now required as libav provider, incompatible changes were
-  introduced that make it no longer viable to support both FFmpeg and Libav
-  as libav providers. Most major distros have switched to FFmpeg or are in
-  the process of switching to it anyway, so we don't expect this to be a
-  problem, and there is still an internal copy of ffmpeg that can be used
-  as fallback if needed.
-
-- The internal ffmpeg snapshot is now FFMpeg 3.0, but it should be possible
-  to build against 2.8 as well for the time being.
-
-## Platform-specific improvements
-
-### Android
-
-- Zero-copy video decoding on Android using the hardware-accelerated decoders
-  has been implemented, and is fully integrated with the GStreamer OpenGL stack
-
-- ahcsrc, a new camera source element, has been merged and can be used to
-  capture video on android devices. It uses the android.hardware.Camera Java
-  API to capture from the system's cameras.
-
-- The OpenGL-based QML video sink can now also be used on Android
-
-- New tinyalsasink element, which is mainly useful for Android but can also
-  be used on other platforms.
-
-### OS/X and iOS
-
-- The system clock now uses mach\_absolute\_time() on OSX/iOS, which is
-  the preferred high-resolution monotonic clock to be used on Apple platforms
-
-- The OpenGL-based QML video sink can now also be used on OS X and iOS (with
-  some Qt build system massaging)
-
-- New IOSurface based memory implementation in avfvideosrc and vtdec on OS X
-  for zerocopy with OpenGL.  The previously used OpenGL extension
-  GL_APPLE_ycbcr_422 is not compatible with GL 3.x core contexts.
-
-- New GstAppleCoreVideoMemory wrapping CVPixelBuffer's
-
-- avfvideosrc now supports renegotiation.
-
-### Windows
-
-- Various bugs with UDP and multicast were fixed on Windows, mostly related to
-  gst-rtsp-server.
-
-- A few bugs in directsoundsrc and directsoundsink were fixed that could cause
-  the element to lock up. Also the "mute" property on the sink was fixed, and
-  a new "device" property for device selection was added to the source.
-
-## Known Issues
-
-- Building GStreamer applications with the Android NDK r11 is currently not
-  supported due to incompatible changes in the NDK. This is expected to be
-  fixed for 1.8.1.
-  [Bugzilla #763999](https://bugzilla.gnome.org/show_bug.cgi?id=763999)
-
-- vp8enc crashes on 32 bit Windows, but was working fine in 1.6. 64 bit
-  Windows is unaffected.
-  [Bugzilla #763663](https://bugzilla.gnome.org/show_bug.cgi?id=763663)
-
-## Contributors
-
-Adam Miartus, Alban Bedel, Aleix Conchillo Flaqué, Aleksander Wabik,
-Alessandro Decina, Alex Ashley, Alex Dizengof, Alex Henrie, Alistair Buxton,
-Andreas Cadhalpun, Andreas Frisch, André Draszik, Anthony G. Basile,
-Antoine Jacoutot, Anton Bondarenko, Antonio Ospite, Arjen Veenhuizen,
-Arnaud Vrac, Arun Raghavan, Athanasios Oikonomou, Aurélien Zanelli, Ben Iofel,
-Bob Holcomb, Branko Subasic, Carlos Rafael Giani, Chris Bass, Csaba Toth,
-Daniel Kamil Kozar, Danilo Cesar Lemes de Paula, Dave Craig, David Fernandez,
-David Schleef, David Svensson Fors, David Waring, David Wu, Duncan Palmer,
-Edward Hervey, Egor Zaharov, Etienne Peron, Eunhae Choi, Evan Callaway,
-Evan Nemerson, Fabian Orccon, Florent Thiéry, Florin Apostol, Frédéric Wang,
-George Kiagiadakis, George Yunaev, Göran Jönsson, Graham Leggett,
-Guillaume Desmottes, Guillaume Marquebielle, Haihua Hu, Havard Graff,
-Heinrich Fink, Holger Kaelberer, HoonHee Lee, Hugues Fruchet, Hyunil Park,
-Hyunjun Ko, Ilya Konstantinov, James Stevenson, Jan Alexander Steffens (heftig),
-Jan Schmidt, Jason Litzinger, Jens Georg, Jimmy Ohn, Joan Pau Beltran,
-Joe Gorse, John Chang, John Slade, Jose Antonio Santos Cadenas, Josep Torra,
-Julian Bouzas, Julien Isorce, Julien Moutte, Justin Kim, Kazunori Kobayashi,
-Koop Mast, Lim Siew Hoon, Linus Svensson, Lubosz Sarnecki, Luis de Bethencourt,
-Lukasz Forynski, Manasa Athreya, Marcel Holtmann, Marcin Kolny, Marcus Prebble,
-Mark Nauwelaerts, Maroš Ondrášek, Martin Kelly, Matej Knopp, Mathias Hasselmann,
-Mathieu Duponchelle, Matt Crane, Matthew Marsh, Matthew Waters, Matthieu Bouron,
-Mersad Jelacic, Michael Olbrich, Miguel París Díaz, Mikhail Fludkov,
-Mischa Spiegelmock, Nicola Murino, Nicolas Dufresne, Nicolas Huet,
-Nirbheek Chauhan, Ognyan Tonchev, Olivier Crête, Pablo Anton, Pankaj Darak,
-Paolo Pettinato, Patricia Muscalu, Paul Arzelier, Pavel Bludov, Perry Hung,
-Peter Korsgaard, Peter Seiderer, Petr Viktorin, Philippe Normand,
-Philippe Renon, Philipp Zabel, Philip Van Hoof, Philip Withnall, Piotr Drąg,
-plamot, Polochon\_street, Prashant Gotarne, Rajat Verma, Ramiro Polla,
-Ravi Kiran K N, Reynaldo H. Verdejo Pinochet, Robert Swain, Romain Picard,
-Roman Nowicki, Ross Burton, Ryan Hendrickson, Santiago Carot-Nemesio,
-Scott D Phillips, Sebastian Dröge, Sebastian Rasmussen, Sergey Borovkov,
-Seungha Yang, Sjors Gielen, Song Bing, Sreerenj Balachandran, Srimanta Panda,
-Stavros Vagionitis, Stefan Sauer, Steven Hoving, Stian Selnes, Suhwang Kim,
-Thiago Santos, Thibault Saunier, Thijs Vermeir, Thomas Bluemel, Thomas Roos,
-Thomas Vander Stichele, Tim-Philipp Müller, Tim Sheridan, Ting-Wei Lan,
-Tom Deseyn, Vanessa Chipirrás Navalón, Víctor Manuel Jáquez Leal,
-Vincent Dehors, Vincent Penquerc'h, Vineeth T M, Vivia Nikolaidou,
-Wang Xin-yu (王昕宇), William Manley, Wim Taymans, Wonchul Lee, Xavi Artigas,
-Xavier Claessens, Youness Alaoui,
-
-... and many others who have contributed bug reports, translations, sent
-suggestions or helped testing.
-
-## Bugs fixed in 1.8
-
-More than [~700 bugs][bugs-fixed-in-1.8] have been fixed during
-the development of 1.8.
-
-This list does not include issues that have been cherry-picked into the
-stable 1.6 branch and fixed there as well, all fixes that ended up in the
-1.6 branch are also included in 1.8.
-
-This list also does not include issues that have been fixed without a bug
-report in bugzilla, so the actual number of fixes is much higher.
-
-[bugs-fixed-in-1.8]: https://bugzilla.gnome.org/buglist.cgi?bug_status=RESOLVED&bug_status=VERIFIED&classification=Platform&limit=0&list_id=107311&order=bug_id&product=GStreamer&query_format=advanced&resolution=FIXED&target_milestone=1.6.1&target_milestone=1.6.2&target_milestone=1.6.3&target_milestone=1.7.0&target_milestone=1.7.1&target_milestone=1.7.2&target_milestone=1.7.3&target_milestone=1.7.4&target_milestone=1.7.90&target_milestone=1.7.91&target_milestone=1.7.92&target_milestone=1.7.x&target_milestone=1.8.0
-
-## Stable 1.8 branch
-
-After the 1.8.0 release there will be several 1.8.x bug-fix releases which
-will contain bug fixes which have been deemed suitable for a stable branch,
-but no new features or intrusive changes will be added to a bug-fix release
-usually. The 1.8.x bug-fix releases will be made from the git 1.8 branch, which
-is a stable branch.
-
-### 1.8.0
-
-1.8.0 was released on 24 March 2016.
-
 ### 1.8.1
 
-The first 1.8 bug-fix release (1.8.1) is planned for April 2016.
+The first 1.8 bug-fix release (1.8.1) was released on 20 April 2016.
+This release only contains bugfixes and it should be safe to update from 1.8.0.
 
-## Schedule for 1.10
+#### Major bugfixes in 1.8.1
 
-Our next major feature release will be 1.10, and 1.9 will be the unstable
-development version leading up to the stable 1.10 release. The development
-of 1.9/1.10 will happen in the git master branch.
+ - Fix app compilation with Android NDK r11 and newer
+ - Fix compilation of nvenc plugin against latest NVIDIA SDK 6.0
+ - Fix regression in avdeinterlace
+ - Fix memory corruption in scaletempo element with S16 input
+ - Fix regression in qtdemux with MSE streams
+ - Fix glitches at the start with all audio sinks except for pulsesink
+ - Fix regression with encrypted HLS streams
+ - Fix automatic multithreaded decoding of VP8/9 video
+ - Fix deadlock in HTTP adaptive streams when scrub-seeking
+ - Fix regression in RTSP source with SRTP
+ - Add support for SRTP rollover counters in the RTSP source
+ - Add support for HiDPI ("Retina") screens in caopengllayersink
+ - ... and many more!
 
-The plan for the 1.10 development cycle is yet to be confirmed, but it is
-expected that feature freeze will be around late July or early August,
-followed by several 1.9 pre-releases and the new 1.10 stable release
-in September.
+For a full list of bugfixes see [Bugzilla][buglist-1.8.1].
 
-1.10 will be backwards-compatible to the stable 1.8, 1.6, 1.4, 1.2 and 1.0
-release series.
+[buglist-1.8.1]: https://bugzilla.gnome.org/buglist.cgi?bug_status=RESOLVED&bug_status=VERIFIED&classification=Platform&limit=0&list_id=117422&order=bug_id&product=GStreamer&query_format=advanced&resolution=FIXED&target_milestone=1.8.1
 
-- - -
-
-*These release notes have been prepared by Tim-Philipp Müller with
-contributions from Sebastian Dröge, Nicolas Dufresne, Edward Hervey, Víctor
-Manuel Jáquez Leal, Arun Raghavan, Thiago Santos, Thibault Saunier, Jan
-Schmidt and Matthew Waters.*
-
-*License: [CC BY-SA 4.0](http://creativecommons.org/licenses/by-sa/4.0/)*
diff --git a/RELEASE b/RELEASE
index b82f4b9..36c7586 100644
--- a/RELEASE
+++ b/RELEASE
@@ -1,15 +1,16 @@
 
-Release notes for GStreamer 1.8.0
+Release notes for GStreamer 1.8.1
 
-The GStreamer team is pleased to announce the first release of the new stable
-1.8 release series. The 1.8 release series is adding new features on top of
-the 1.0, 1.2, 1.4 and 1.6 series and is part of the API and ABI-stable 1.x
-release series of the GStreamer multimedia framework.
+The GStreamer team is proud to announce the first bugfix release in the stable
+1.8 release series of your favourite cross-platform multimedia framework!
 
 
-Binaries for Android, iOS, Mac OS X and Windows will be provided shortly after
-the source release by the GStreamer project during the stable 1.8 release
-series.
+This release only contains bugfixes and it is safe to update from 1.8.0. For a
+full list of bugfixes see Bugzilla.
+
+
+See /releases/1.8/
+for the full release notes.
 
 
 This module, gstreamer, only contains core functionality.
@@ -35,10 +36,14 @@
 
 Bugs fixed in this release
      
-      * 763491 : typefind: behavior has changed on have-type signal, sets pad caps after signal handlers
-      * 763895 : Incorrect gir annotation on gst_element_query_convert
-      * 764034 : preset: Use GST_PRESET_PATH as an extension of the system path, not a replacement of the user path
-      * 763770 : multiqueue: not-linked pads might not drain out at EOS
+      * 727105 : doc: Drop reference to osssink / esdsink / etc, from gst-launch-1.0 man page
+      * 741001 : GST_DEBUG categories are missing when using --gst-debug-help
+      * 761912 : gstpad: Fix race between gst_element_remove_pad and state change
+      * 762995 : queue: Use full running time for level calculation
+      * 763753 : valve: don't send sticky events as a direct response to upstream events
+      * 763757 : multiqueue: Make sure mq- > percent remains valid after modifying high-percent value
+      * 765096 : baseparse: When initializing DTS from PTS, remember that we did so
+      * 765260 : baseparse: regression with aac streams
 
 ==== Download ====
 
@@ -75,10 +80,9 @@
         
 Contributors to this release
     
-      * Anthony G. Basile
-      * Aurélien Zanelli
-      * Ben Iofel
-      * Jan Schmidt
-      * Romain Picard
+      * Carlos Rafael Giani
+      * Edward Hervey
+      * Havard Graff
       * Sebastian Dröge
+      * Stian Selnes
  
\ No newline at end of file
diff --git a/configure b/configure
index 2d84c0f..80c6dab 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 1.8.0.
+# Generated by GNU Autoconf 2.69 for GStreamer 1.8.1.
 #
 # Report bugs to <http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer>.
 #
@@ -591,8 +591,8 @@
 # Identity of this package.
 PACKAGE_NAME='GStreamer'
 PACKAGE_TARNAME='gstreamer'
-PACKAGE_VERSION='1.8.0'
-PACKAGE_STRING='GStreamer 1.8.0'
+PACKAGE_VERSION='1.8.1'
+PACKAGE_STRING='GStreamer 1.8.1'
 PACKAGE_BUGREPORT='http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer'
 PACKAGE_URL=''
 
@@ -1702,7 +1702,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 1.8.0 to adapt to many kinds of systems.
+\`configure' configures GStreamer 1.8.1 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1774,7 +1774,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of GStreamer 1.8.0:";;
+     short | recursive ) echo "Configuration of GStreamer 1.8.1:";;
    esac
   cat <<\_ACEOF
 
@@ -1982,7 +1982,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-GStreamer configure 1.8.0
+GStreamer configure 1.8.1
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2841,7 +2841,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by GStreamer $as_me 1.8.0, which was
+It was created by GStreamer $as_me 1.8.1, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -3822,7 +3822,7 @@
 
 # Define the identity of the package.
  PACKAGE='gstreamer'
- VERSION='1.8.0'
+ VERSION='1.8.1'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -4033,9 +4033,9 @@
 
 
 
-  PACKAGE_VERSION_MAJOR=$(echo 1.8.0 | cut -d'.' -f1)
-  PACKAGE_VERSION_MINOR=$(echo 1.8.0 | cut -d'.' -f2)
-  PACKAGE_VERSION_MICRO=$(echo 1.8.0 | cut -d'.' -f3)
+  PACKAGE_VERSION_MAJOR=$(echo 1.8.1 | cut -d'.' -f1)
+  PACKAGE_VERSION_MINOR=$(echo 1.8.1 | cut -d'.' -f2)
+  PACKAGE_VERSION_MICRO=$(echo 1.8.1 | cut -d'.' -f3)
 
 
 
@@ -4046,7 +4046,7 @@
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking nano version" >&5
 $as_echo_n "checking nano version... " >&6; }
 
-  NANO=$(echo 1.8.0 | cut -d'.' -f4)
+  NANO=$(echo 1.8.1 | cut -d'.' -f4)
 
   if test x"$NANO" = x || test "x$NANO" = "x0" ; then
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: 0 (release)" >&5
@@ -8889,10 +8889,10 @@
 done
 
 
-  GST_CURRENT=800
+  GST_CURRENT=801
   GST_REVISION=0
-  GST_AGE=800
-  GST_LIBVERSION=800:0:800
+  GST_AGE=801
+  GST_LIBVERSION=801:0:801
 
 
 
@@ -29500,7 +29500,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by GStreamer $as_me 1.8.0, which was
+This file was extended by GStreamer $as_me 1.8.1, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -29566,7 +29566,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-GStreamer config.status 1.8.0
+GStreamer config.status 1.8.1
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff --git a/configure.ac b/configure.ac
index 5d5553a..2a5afa5 100644
--- a/configure.ac
+++ b/configure.ac
@@ -4,7 +4,7 @@
 dnl when going to/from release please set the nano (fourth number) right !
 dnl releases only do Wall, git and prerelease does Werror too
 dnl
-AC_INIT([GStreamer],[1.8.0],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gstreamer])
+AC_INIT([GStreamer],[1.8.1],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gstreamer])
 AG_GST_INIT
 
 dnl initialize automake (we require GNU make)
@@ -62,7 +62,7 @@
 dnl      1.10.9 (who knows) => 1009
 dnl
 dnl sets GST_LT_LDFLAGS
-AS_LIBTOOL(GST, 800, 0, 800)
+AS_LIBTOOL(GST, 801, 0, 801)
 
 dnl *** autotools stuff ****
 
diff --git a/docs/gst/html/gstreamer-GstVersion.html b/docs/gst/html/gstreamer-GstVersion.html
index ce58068..2729248 100644
--- a/docs/gst/html/gstreamer-GstVersion.html
+++ b/docs/gst/html/gstreamer-GstVersion.html
@@ -143,7 +143,7 @@
 <hr>
 <div class="refsect2">
 <a name="GST-VERSION-MICRO:CAPS"></a><h3>GST_VERSION_MICRO</h3>
-<pre class="programlisting">#define GST_VERSION_MICRO (0)
+<pre class="programlisting">#define GST_VERSION_MICRO (1)
 </pre>
 <p>The micro version of GStreamer at compile time:</p>
 </div>
diff --git a/docs/gst/html/index.html b/docs/gst/html/index.html
index 143a6ce..76e5da3 100644
--- a/docs/gst/html/index.html
+++ b/docs/gst/html/index.html
@@ -15,7 +15,7 @@
 <div>
 <div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">GStreamer 1.0 Core Reference Manual</p></th></tr></table></div>
 <div><p class="releaseinfo">
-      for GStreamer Core 1.0 (1.8.0)
+      for GStreamer Core 1.0 (1.8.1)
       The latest version of this documentation can be found on-line at
       <a class="ulink" href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/" target="_top">http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/</a>.
     </p></div>
diff --git a/docs/libs/html/index.html b/docs/libs/html/index.html
index da0b1a4..323e693 100644
--- a/docs/libs/html/index.html
+++ b/docs/libs/html/index.html
@@ -15,7 +15,7 @@
 <div>
 <div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">GStreamer 1.0 Library Reference Manual</p></th></tr></table></div>
 <div><p class="releaseinfo">
-      for GStreamer Library 1.0 (1.8.0)
+      for GStreamer Library 1.0 (1.8.1)
       The latest version of this documentation can be found on-line at
       <a class="ulink" href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/" target="_top">http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/</a>.
     </p></div>
diff --git a/docs/plugins/html/gstreamer-plugins-plugin-coreelements.html b/docs/plugins/html/gstreamer-plugins-plugin-coreelements.html
index a832e55..c0ba566 100644
--- a/docs/plugins/html/gstreamer-plugins-plugin-coreelements.html
+++ b/docs/plugins/html/gstreamer-plugins-plugin-coreelements.html
@@ -41,7 +41,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.0</td>
+<td>1.8.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/index.html b/docs/plugins/html/index.html
index 88e66ed..f367763 100644
--- a/docs/plugins/html/index.html
+++ b/docs/plugins/html/index.html
@@ -15,7 +15,7 @@
 <div>
 <div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">GStreamer Core Plugins 1.0 Plugins Reference Manual</p></th></tr></table></div>
 <div><p class="releaseinfo">
-      for GStreamer Core Plugins 1.0 (1.8.0)
+      for GStreamer Core Plugins 1.0 (1.8.1)
       The latest version of this documentation can be found on-line at
       <a class="ulink" href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-plugins/html/" target="_top">http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-plugins/html/</a>.
     </p></div>
diff --git a/docs/plugins/inspect/plugin-coreelements.xml b/docs/plugins/inspect/plugin-coreelements.xml
index 1bcd1c7..14e8bcb 100644
--- a/docs/plugins/inspect/plugin-coreelements.xml
+++ b/docs/plugins/inspect/plugin-coreelements.xml
@@ -3,7 +3,7 @@
   <description>GStreamer core elements</description>
   <filename>../../plugins/elements/.libs/libgstcoreelements.so</filename>
   <basename>libgstcoreelements.so</basename>
-  <version>1.8.0</version>
+  <version>1.8.1</version>
   <license>LGPL</license>
   <source>gstreamer</source>
   <package>GStreamer source release</package>
diff --git a/docs/plugins/inspect/plugin-coretracers.xml b/docs/plugins/inspect/plugin-coretracers.xml
index 8163d7f..f84687f 100644
--- a/docs/plugins/inspect/plugin-coretracers.xml
+++ b/docs/plugins/inspect/plugin-coretracers.xml
@@ -3,7 +3,7 @@
   <description>GStreamer core tracers</description>
   <filename>../../plugins/tracers/.libs/libgstcoretracers.so</filename>
   <basename>libgstcoretracers.so</basename>
-  <version>1.8.0</version>
+  <version>1.8.1</version>
   <license>LGPL</license>
   <source>gstreamer</source>
   <package>GStreamer source release</package>
diff --git a/gst/gstpad.c b/gst/gstpad.c
index 7c02120..9bccd8d 100644
--- a/gst/gstpad.c
+++ b/gst/gstpad.c
@@ -186,6 +186,9 @@
 static GstFlowReturn gst_pad_push_event_unchecked (GstPad * pad,
     GstEvent * event, GstPadProbeType type);
 
+static gboolean activate_mode_internal (GstPad * pad, GstObject * parent,
+    GstPadMode mode, gboolean active);
+
 static guint gst_pad_signals[LAST_SIGNAL] = { 0 };
 
 static GParamSpec *pspec_caps = NULL;
@@ -924,7 +927,9 @@
 static gboolean
 gst_pad_activate_default (GstPad * pad, GstObject * parent)
 {
-  return gst_pad_activate_mode (pad, GST_PAD_MODE_PUSH, TRUE);
+  g_return_val_if_fail (GST_IS_PAD (pad), FALSE);
+
+  return activate_mode_internal (pad, parent, GST_PAD_MODE_PUSH, TRUE);
 }
 
 /**
@@ -1069,7 +1074,7 @@
     } else {
       GST_DEBUG_OBJECT (pad, "deactivating pad from %s mode",
           gst_pad_mode_get_name (old));
-      ret = gst_pad_activate_mode (pad, old, FALSE);
+      ret = activate_mode_internal (pad, parent, old, FALSE);
       if (ret)
         pad->ABI.abi.last_flowret = GST_FLOW_FLUSHING;
     }
@@ -1103,36 +1108,18 @@
   }
 }
 
-/**
- * gst_pad_activate_mode:
- * @pad: the #GstPad to activate or deactivate.
- * @mode: the requested activation mode
- * @active: whether or not the pad should be active.
- *
- * Activates or deactivates the given pad in @mode via dispatching to the
- * pad's activatemodefunc. For use from within pad activation functions only.
- *
- * If you don't know what this is, you probably don't want to call it.
- *
- * Returns: %TRUE if the operation was successful.
- *
- * MT safe.
- */
-gboolean
-gst_pad_activate_mode (GstPad * pad, GstPadMode mode, gboolean active)
+static gboolean
+activate_mode_internal (GstPad * pad, GstObject * parent, GstPadMode mode,
+    gboolean active)
 {
   gboolean res = FALSE;
-  GstObject *parent;
   GstPadMode old, new;
   GstPadDirection dir;
   GstPad *peer;
 
-  g_return_val_if_fail (GST_IS_PAD (pad), FALSE);
-
   GST_OBJECT_LOCK (pad);
   old = GST_PAD_MODE (pad);
   dir = GST_PAD_DIRECTION (pad);
-  ACQUIRE_PARENT (pad, parent, no_parent);
   GST_OBJECT_UNLOCK (pad);
 
   new = active ? mode : GST_PAD_MODE_NONE;
@@ -1146,7 +1133,7 @@
     GST_DEBUG_OBJECT (pad, "deactivating pad from %s mode",
         gst_pad_mode_get_name (old));
 
-    if (G_UNLIKELY (!gst_pad_activate_mode (pad, old, FALSE)))
+    if (G_UNLIKELY (!activate_mode_internal (pad, parent, old, FALSE)))
       goto deactivate_failed;
   }
 
@@ -1209,16 +1196,8 @@
   }
 
 exit:
-  RELEASE_PARENT (parent);
-
   return res;
 
-no_parent:
-  {
-    GST_DEBUG_OBJECT (pad, "no parent");
-    GST_OBJECT_UNLOCK (pad);
-    return FALSE;
-  }
 was_ok:
   {
     GST_CAT_DEBUG_OBJECT (GST_CAT_PADS, pad, "already %s in %s mode",
@@ -1261,6 +1240,47 @@
 }
 
 /**
+ * gst_pad_activate_mode:
+ * @pad: the #GstPad to activate or deactivate.
+ * @mode: the requested activation mode
+ * @active: whether or not the pad should be active.
+ *
+ * Activates or deactivates the given pad in @mode via dispatching to the
+ * pad's activatemodefunc. For use from within pad activation functions only.
+ *
+ * If you don't know what this is, you probably don't want to call it.
+ *
+ * Returns: %TRUE if the operation was successful.
+ *
+ * MT safe.
+ */
+gboolean
+gst_pad_activate_mode (GstPad * pad, GstPadMode mode, gboolean active)
+{
+  GstObject *parent;
+  gboolean res;
+
+  g_return_val_if_fail (GST_IS_PAD (pad), FALSE);
+
+  GST_OBJECT_LOCK (pad);
+  ACQUIRE_PARENT (pad, parent, no_parent);
+  GST_OBJECT_UNLOCK (pad);
+
+  res = activate_mode_internal (pad, parent, mode, active);
+
+  RELEASE_PARENT (parent);
+
+  return res;
+
+no_parent:
+  {
+    GST_WARNING_OBJECT (pad, "no parent");
+    GST_OBJECT_UNLOCK (pad);
+    return FALSE;
+  }
+}
+
+/**
  * gst_pad_is_active:
  * @pad: the #GstPad to query
  *
diff --git a/gstreamer.doap b/gstreamer.doap
index 9a20828..46d009f 100644
--- a/gstreamer.doap
+++ b/gstreamer.doap
@@ -40,6 +40,16 @@
 
  <release>
   <Version>
+   <revision>1.8.1</revision>
+   <branch>1.8</branch>
+   <name></name>
+   <created>2016-04-20</created>
+   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-1.8.1.tar.xz" />
+  </Version>
+ </release>
+
+ <release>
+  <Version>
    <revision>1.8.0</revision>
    <branch>master</branch>
    <name></name>
diff --git a/gstreamer.spec b/gstreamer.spec
index 75e691b..0f65ede 100644
--- a/gstreamer.spec
+++ b/gstreamer.spec
@@ -4,7 +4,7 @@
 %define 	_glib2		2.40.0
 
 Name: 		%{gstreamer}
-Version: 	1.8.0
+Version: 	1.8.1
 Release: 	1
 Summary: 	GStreamer streaming media framework runtime
 
diff --git a/libs/gst/base/gstbaseparse.c b/libs/gst/base/gstbaseparse.c
index 2defab9..50499a4 100644
--- a/libs/gst/base/gstbaseparse.c
+++ b/libs/gst/base/gstbaseparse.c
@@ -273,6 +273,7 @@
   GstClockTime next_dts;
   GstClockTime prev_pts;
   GstClockTime prev_dts;
+  gboolean prev_dts_from_pts;
   GstClockTime frame_duration;
   gboolean seen_keyframe;
   gboolean is_video;
@@ -1308,6 +1309,7 @@
       parse->priv->last_dts = GST_CLOCK_TIME_NONE;
       parse->priv->prev_pts = GST_CLOCK_TIME_NONE;
       parse->priv->prev_dts = GST_CLOCK_TIME_NONE;
+      parse->priv->prev_dts_from_pts = FALSE;
       parse->priv->discont = TRUE;
       parse->priv->seen_keyframe = FALSE;
       parse->priv->skip = 0;
@@ -2772,6 +2774,7 @@
   parse->priv->prev_pts = GST_CLOCK_TIME_NONE;
   parse->priv->next_dts = GST_CLOCK_TIME_NONE;
   parse->priv->prev_dts = GST_CLOCK_TIME_NONE;
+  parse->priv->prev_dts_from_pts = FALSE;
   /* prevent it hanging around stop all the time */
   parse->segment.position = GST_CLOCK_TIME_NONE;
   /* mark next run */
@@ -3142,6 +3145,7 @@
   /* Stop either when adapter is empty or we are flushing */
   while (!parse->priv->flushing) {
     gint flush = 0;
+    gboolean updated_prev_pts = FALSE;
 
     /* note: if subclass indicates MAX fsize,
      * this will not likely be available anyway ... */
@@ -3166,11 +3170,15 @@
      * but interpolate in between */
     pts = gst_adapter_prev_pts (parse->priv->adapter, NULL);
     dts = gst_adapter_prev_dts (parse->priv->adapter, NULL);
-    if (GST_CLOCK_TIME_IS_VALID (pts) && (parse->priv->prev_pts != pts))
+    if (GST_CLOCK_TIME_IS_VALID (pts) && (parse->priv->prev_pts != pts)) {
       parse->priv->prev_pts = parse->priv->next_pts = pts;
+      updated_prev_pts = TRUE;
+    }
 
-    if (GST_CLOCK_TIME_IS_VALID (dts) && (parse->priv->prev_dts != dts))
+    if (GST_CLOCK_TIME_IS_VALID (dts) && (parse->priv->prev_dts != dts)) {
       parse->priv->prev_dts = parse->priv->next_dts = dts;
+      parse->priv->prev_dts_from_pts = FALSE;
+    }
 
     /* we can mess with, erm interpolate, timestamps,
      * and incoming stuff has PTS but no DTS seen so far,
@@ -3178,9 +3186,12 @@
     if (parse->priv->infer_ts &&
         parse->priv->pts_interpolate &&
         !GST_CLOCK_TIME_IS_VALID (dts) &&
-        !GST_CLOCK_TIME_IS_VALID (parse->priv->prev_dts) &&
-        GST_CLOCK_TIME_IS_VALID (pts))
-      parse->priv->next_dts = pts;
+        (!GST_CLOCK_TIME_IS_VALID (parse->priv->prev_dts)
+            || (parse->priv->prev_dts_from_pts && updated_prev_pts))
+        && GST_CLOCK_TIME_IS_VALID (pts)) {
+      parse->priv->prev_dts = parse->priv->next_dts = pts;
+      parse->priv->prev_dts_from_pts = TRUE;
+    }
 
     /* always pass all available data */
     tmpbuf = gst_adapter_get_buffer (parse->priv->adapter, av);
@@ -4847,8 +4858,10 @@
   if (GST_CLOCK_TIME_IS_VALID (pts) && (parse->priv->prev_pts != pts))
     parse->priv->prev_pts = parse->priv->next_pts = pts;
 
-  if (GST_CLOCK_TIME_IS_VALID (dts) && (parse->priv->prev_dts != dts))
+  if (GST_CLOCK_TIME_IS_VALID (dts) && (parse->priv->prev_dts != dts)) {
     parse->priv->prev_dts = parse->priv->next_dts = dts;
+    parse->priv->prev_dts_from_pts = FALSE;
+  }
 }
 
 /**
diff --git a/plugins/elements/gstmultiqueue.c b/plugins/elements/gstmultiqueue.c
index fa50883..9a1ab18 100644
--- a/plugins/elements/gstmultiqueue.c
+++ b/plugins/elements/gstmultiqueue.c
@@ -209,6 +209,7 @@
 
 static void update_buffering (GstMultiQueue * mq, GstSingleQueue * sq);
 static void gst_multi_queue_post_buffering (GstMultiQueue * mq);
+static void recheck_buffering_status (GstMultiQueue * mq);
 
 static void gst_single_queue_flush_queue (GstSingleQueue * sq, gboolean full);
 
@@ -613,36 +614,19 @@
       break;
     case PROP_USE_BUFFERING:
       mq->use_buffering = g_value_get_boolean (value);
-      if (!mq->use_buffering && mq->buffering) {
-        GST_MULTI_QUEUE_MUTEX_LOCK (mq);
-        mq->buffering = FALSE;
-        GST_DEBUG_OBJECT (mq, "buffering 100 percent");
-        SET_PERCENT (mq, 100);
-        GST_MULTI_QUEUE_MUTEX_UNLOCK (mq);
-      }
-
-      if (mq->use_buffering) {
-        GList *tmp;
-
-        GST_MULTI_QUEUE_MUTEX_LOCK (mq);
-
-        tmp = mq->queues;
-        while (tmp) {
-          GstSingleQueue *q = (GstSingleQueue *) tmp->data;
-          update_buffering (mq, q);
-          gst_data_queue_limits_changed (q->queue);
-          tmp = g_list_next (tmp);
-        }
-
-        GST_MULTI_QUEUE_MUTEX_UNLOCK (mq);
-      }
-      gst_multi_queue_post_buffering (mq);
+      recheck_buffering_status (mq);
       break;
     case PROP_LOW_PERCENT:
       mq->low_percent = g_value_get_int (value);
+      /* Recheck buffering status - the new low-percent value might
+       * be above the current fill level. If the old low-percent one
+       * was below the current level, this means that mq->buffering is
+       * disabled and needs to be re-enabled. */
+      recheck_buffering_status (mq);
       break;
     case PROP_HIGH_PERCENT:
       mq->high_percent = g_value_get_int (value);
+      recheck_buffering_status (mq);
       break;
     case PROP_SYNC_BY_RUNNING_TIME:
       mq->sync_by_running_time = g_value_get_boolean (value);
@@ -1044,6 +1028,45 @@
 }
 
 static void
+recheck_buffering_status (GstMultiQueue * mq)
+{
+  if (!mq->use_buffering && mq->buffering) {
+    GST_MULTI_QUEUE_MUTEX_LOCK (mq);
+    mq->buffering = FALSE;
+    GST_DEBUG_OBJECT (mq,
+        "Buffering property disabled, but queue was still buffering; setting percentage to 100%%");
+    SET_PERCENT (mq, 100);
+    GST_MULTI_QUEUE_MUTEX_UNLOCK (mq);
+  }
+
+  if (mq->use_buffering) {
+    GList *tmp;
+    gint old_perc;
+
+    GST_MULTI_QUEUE_MUTEX_LOCK (mq);
+
+    /* force fill level percentage to be recalculated */
+    old_perc = mq->percent;
+    mq->percent = 0;
+
+    tmp = mq->queues;
+    while (tmp) {
+      GstSingleQueue *q = (GstSingleQueue *) tmp->data;
+      update_buffering (mq, q);
+      gst_data_queue_limits_changed (q->queue);
+      tmp = g_list_next (tmp);
+    }
+
+    GST_DEBUG_OBJECT (mq, "Recalculated fill level: old: %d%% new: %d%%",
+        old_perc, mq->percent);
+
+    GST_MULTI_QUEUE_MUTEX_UNLOCK (mq);
+  }
+
+  gst_multi_queue_post_buffering (mq);
+}
+
+static void
 calculate_interleave (GstMultiQueue * mq)
 {
   GstClockTimeDiff low, high;
diff --git a/plugins/elements/gstqueue.c b/plugins/elements/gstqueue.c
index 38f58d2..d7bc129 100644
--- a/plugins/elements/gstqueue.c
+++ b/plugins/elements/gstqueue.c
@@ -465,8 +465,8 @@
       gst_queue_array_new_for_struct (sizeof (GstQueueItem),
       DEFAULT_MAX_SIZE_BUFFERS * 3 / 2);
 
-  queue->sinktime = GST_CLOCK_TIME_NONE;
-  queue->srctime = GST_CLOCK_TIME_NONE;
+  queue->sinktime = GST_CLOCK_STIME_NONE;
+  queue->srctime = GST_CLOCK_STIME_NONE;
 
   queue->sink_tainted = TRUE;
   queue->src_tainted = TRUE;
@@ -501,6 +501,23 @@
   G_OBJECT_CLASS (parent_class)->finalize (object);
 }
 
+/* Convenience function */
+static inline GstClockTimeDiff
+my_segment_to_running_time (GstSegment * segment, GstClockTime val)
+{
+  GstClockTimeDiff res = GST_CLOCK_STIME_NONE;
+
+  if (GST_CLOCK_TIME_IS_VALID (val)) {
+    gboolean sign =
+        gst_segment_to_running_time_full (segment, GST_FORMAT_TIME, val, &val);
+    if (sign > 0)
+      res = val;
+    else if (sign < 0)
+      res = -val;
+  }
+  return res;
+}
+
 /* calculate the diff between running time on the sink and src of the queue.
  * This is the total amount of time in the queue. */
 static void
@@ -511,7 +528,7 @@
   if (queue->sink_tainted) {
     GST_LOG_OBJECT (queue, "update sink time");
     queue->sinktime =
-        gst_segment_to_running_time (&queue->sink_segment, GST_FORMAT_TIME,
+        my_segment_to_running_time (&queue->sink_segment,
         queue->sink_segment.position);
     queue->sink_tainted = FALSE;
   }
@@ -520,14 +537,14 @@
   if (queue->src_tainted) {
     GST_LOG_OBJECT (queue, "update src time");
     queue->srctime =
-        gst_segment_to_running_time (&queue->src_segment, GST_FORMAT_TIME,
+        my_segment_to_running_time (&queue->src_segment,
         queue->src_segment.position);
     queue->src_tainted = FALSE;
   }
   src_time = queue->srctime;
 
-  GST_LOG_OBJECT (queue, "sink %" GST_TIME_FORMAT ", src %" GST_TIME_FORMAT,
-      GST_TIME_ARGS (sink_time), GST_TIME_ARGS (src_time));
+  GST_LOG_OBJECT (queue, "sink %" GST_STIME_FORMAT ", src %" GST_STIME_FORMAT,
+      GST_STIME_ARGS (sink_time), GST_STIME_ARGS (src_time));
 
   if (sink_time >= src_time)
     queue->cur_level.time = sink_time - src_time;
@@ -611,7 +628,8 @@
   if (duration != GST_CLOCK_TIME_NONE)
     timestamp += duration;
 
-  GST_LOG_OBJECT (queue, "position updated to %" GST_TIME_FORMAT,
+  GST_LOG_OBJECT (queue, "%s position updated to %" GST_TIME_FORMAT,
+      segment == &queue->sink_segment ? "sink" : "src",
       GST_TIME_ARGS (timestamp));
 
   segment->position = timestamp;
@@ -702,7 +720,7 @@
   gst_segment_init (&queue->src_segment, GST_FORMAT_TIME);
   queue->head_needs_discont = queue->tail_needs_discont = FALSE;
 
-  queue->sinktime = queue->srctime = GST_CLOCK_TIME_NONE;
+  queue->sinktime = queue->srctime = GST_CLOCK_STIME_NONE;
   queue->sink_tainted = queue->src_tainted = TRUE;
 
   /* we deleted a lot of something */
diff --git a/plugins/elements/gstqueue.h b/plugins/elements/gstqueue.h
index 5134578..4c7491c 100644
--- a/plugins/elements/gstqueue.h
+++ b/plugins/elements/gstqueue.h
@@ -98,7 +98,7 @@
   GstSegment src_segment;
 
   /* position of src/sink */
-  GstClockTime sinktime, srctime;
+  GstClockTimeDiff sinktime, srctime;
   /* TRUE if either position needs to be recalculated */
   gboolean sink_tainted, src_tainted;
 
diff --git a/plugins/elements/gsttypefindelement.c b/plugins/elements/gsttypefindelement.c
index ba82716..c686412 100644
--- a/plugins/elements/gsttypefindelement.c
+++ b/plugins/elements/gsttypefindelement.c
@@ -193,9 +193,7 @@
     GstCaps *event_caps;
 
     gst_event_parse_caps (event, &event_caps);
-    if (caps == event_caps) {
-      event = event;
-    } else {
+    if (caps != event_caps) {
       gst_event_unref (event);
       event = gst_event_new_caps (caps);
     }
diff --git a/plugins/elements/gstvalve.c b/plugins/elements/gstvalve.c
index 82bdb94..04cc965 100644
--- a/plugins/elements/gstvalve.c
+++ b/plugins/elements/gstvalve.c
@@ -67,7 +67,7 @@
 
 static GstFlowReturn gst_valve_chain (GstPad * pad, GstObject * parent,
     GstBuffer * buffer);
-static gboolean gst_valve_event (GstPad * pad, GstObject * parent,
+static gboolean gst_valve_sink_event (GstPad * pad, GstObject * parent,
     GstEvent * event);
 static gboolean gst_valve_query (GstPad * pad, GstObject * parent,
     GstQuery * query);
@@ -110,8 +110,6 @@
   valve->discont = FALSE;
 
   valve->srcpad = gst_pad_new_from_static_template (&srctemplate, "src");
-  gst_pad_set_event_function (valve->srcpad,
-      GST_DEBUG_FUNCPTR (gst_valve_event));
   gst_pad_set_query_function (valve->srcpad,
       GST_DEBUG_FUNCPTR (gst_valve_query));
   GST_PAD_SET_PROXY_CAPS (valve->srcpad);
@@ -121,7 +119,7 @@
   gst_pad_set_chain_function (valve->sinkpad,
       GST_DEBUG_FUNCPTR (gst_valve_chain));
   gst_pad_set_event_function (valve->sinkpad,
-      GST_DEBUG_FUNCPTR (gst_valve_event));
+      GST_DEBUG_FUNCPTR (gst_valve_sink_event));
   gst_pad_set_query_function (valve->sinkpad,
       GST_DEBUG_FUNCPTR (gst_valve_query));
   GST_PAD_SET_PROXY_CAPS (valve->sinkpad);
@@ -216,7 +214,7 @@
 
 
 static gboolean
-gst_valve_event (GstPad * pad, GstObject * parent, GstEvent * event)
+gst_valve_sink_event (GstPad * pad, GstObject * parent, GstEvent * event)
 {
   GstValve *valve;
   gboolean is_sticky = GST_EVENT_IS_STICKY (event);
diff --git a/po/af.gmo b/po/af.gmo
index ae608fc..8393d38 100644
--- a/po/af.gmo
+++ b/po/af.gmo
Binary files differ
diff --git a/po/af.po b/po/af.po
index 37c3026..7b5bd73 100644
--- a/po/af.po
+++ b/po/af.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.9.7\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-03-24 11:24+0200\n"
+"POT-Creation-Date: 2016-04-20 15:26+0300\n"
 "PO-Revision-Date: 2005-12-05 11:45+0200\n"
 "Last-Translator: Petri Jooste <rkwjpj@puk.ac.za>\n"
 "Language-Team: Afrikaans <i18n@af.org.za>\n"
diff --git a/po/az.gmo b/po/az.gmo
index e7d8838..5cf17ff 100644
--- a/po/az.gmo
+++ b/po/az.gmo
Binary files differ
diff --git a/po/az.po b/po/az.po
index ca38f7c..bbd8376 100644
--- a/po/az.po
+++ b/po/az.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer-0.8.0\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-03-24 11:24+0200\n"
+"POT-Creation-Date: 2016-04-20 15:26+0300\n"
 "PO-Revision-Date: 2004-03-19 18:40+0200\n"
 "Last-Translator: Metin Amiroff <metin@karegen.com>\n"
 "Language-Team: Azerbaijani <translation-team-az@lists.sourceforge.net>\n"
diff --git a/po/be.gmo b/po/be.gmo
index 4ee4cdb..8c60c53 100644
--- a/po/be.gmo
+++ b/po/be.gmo
Binary files differ
diff --git a/po/be.po b/po/be.po
index fb90a85..d0b2351 100644
--- a/po/be.po
+++ b/po/be.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.9.7\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-03-24 11:24+0200\n"
+"POT-Creation-Date: 2016-04-20 15:26+0300\n"
 "PO-Revision-Date: 2006-01-18 22:26+0200\n"
 "Last-Translator: Ales Nyakhaychyk <nab@mail.by>\n"
 "Language-Team: Belarusian <i18n@mova.org>\n"
diff --git a/po/bg.gmo b/po/bg.gmo
index d1f5ec3..215c1f8 100644
--- a/po/bg.gmo
+++ b/po/bg.gmo
Binary files differ
diff --git a/po/bg.po b/po/bg.po
index 377bad8..368d05a 100644
--- a/po/bg.po
+++ b/po/bg.po
@@ -10,7 +10,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 1.7.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-03-24 11:24+0200\n"
+"POT-Creation-Date: 2016-04-20 15:26+0300\n"
 "PO-Revision-Date: 2016-02-21 21:02+0200\n"
 "Last-Translator: Alexander Shopov <ash@kambanaria.org>\n"
 "Language-Team: Bulgarian <dict@ludost.net>\n"
diff --git a/po/ca.gmo b/po/ca.gmo
index dc8a0b2..023a135 100644
--- a/po/ca.gmo
+++ b/po/ca.gmo
Binary files differ
diff --git a/po/ca.po b/po/ca.po
index 7161b3e..5b50722 100644
--- a/po/ca.po
+++ b/po/ca.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.30.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-03-24 11:24+0200\n"
+"POT-Creation-Date: 2016-04-20 15:26+0300\n"
 "PO-Revision-Date: 2010-11-04 19:41+0100\n"
 "Last-Translator: Jordi Mallach <jordi@sindominio.net>\n"
 "Language-Team: Catalan <ca@dodds.net>\n"
diff --git a/po/cs.gmo b/po/cs.gmo
index 1033229..a05aca0 100644
--- a/po/cs.gmo
+++ b/po/cs.gmo
Binary files differ
diff --git a/po/cs.po b/po/cs.po
index 7f7d32c..9b5c248 100644
--- a/po/cs.po
+++ b/po/cs.po
@@ -9,7 +9,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 1.7.90\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-03-24 11:24+0200\n"
+"POT-Creation-Date: 2016-04-20 15:26+0300\n"
 "PO-Revision-Date: 2016-03-03 15:31+0100\n"
 "Last-Translator: Marek Černocký <marek@manet.cz>\n"
 "Language-Team: Czech <translation-team-cs@lists.sourceforge.net>\n"
diff --git a/po/da.gmo b/po/da.gmo
index e90a379..310185e 100644
--- a/po/da.gmo
+++ b/po/da.gmo
Binary files differ
diff --git a/po/da.po b/po/da.po
index 514f162..8729661 100644
--- a/po/da.po
+++ b/po/da.po
@@ -2,14 +2,14 @@
 # Copyright (C) 2015 Free Software Foundation, Inc.
 # This file is distributed under the same license as the gstreamer package.
 # Mogens Jaeger <mogensjaeger@gmail.com>, 2007, 2010, 2013, 2014.
-# Joe Hansen <joedalton2@yahoo.dk>, 2015.
+# Joe Hansen <joedalton2@yahoo.dk>, 2015, 2016.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: gstreamer 1.7.1\n"
+"Project-Id-Version: gstreamer 1.7.90\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-03-24 11:24+0200\n"
-"PO-Revision-Date: 2015-12-28 13:26+0200\n"
+"POT-Creation-Date: 2016-04-20 15:26+0300\n"
+"PO-Revision-Date: 2016-03-27 13:26+0200\n"
 "Last-Translator: Joe Hansen <joedalton2@yahoo.dk>\n"
 "Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
 "Language: da\n"
@@ -49,20 +49,20 @@
 msgstr "LISTE"
 
 msgid "Disable colored debugging output"
-msgstr "Déaktiver brug af farver ved fejlsøgnings uddata"
+msgstr "Deaktiver brug af farver ved fejlsøgnings uddata"
 
 msgid ""
 "Changes coloring mode of the debug log. Possible modes: off, on, disable, "
 "auto, unix"
 msgstr ""
 "Ændrer farvelægningstilstand  af debug-log. Mulige tilstande: til fra, "
-"déaktiveret, auto, unix"
+"deaktiveret, auto, unix"
 
 msgid "Disable debugging"
-msgstr "Déaktiver fejlsøgning"
+msgstr "Deaktiver fejlsøgning"
 
 msgid "Enable verbose plugin loading diagnostics"
-msgstr "Aktivér udførlig diagnostik ved indlæsning af moduler"
+msgstr "Aktiver udførlig diagnostik ved indlæsning af moduler"
 
 msgid "Colon-separated paths containing plugins"
 msgstr "Kolon-separerede stier der indeholder moduler"
@@ -81,13 +81,13 @@
 msgstr "MODULER"
 
 msgid "Disable trapping of segmentation faults during plugin loading"
-msgstr "Déaktiver indfangning af segmentfejl under indlæsning af moduler"
+msgstr "Deaktiver indfangning af segmentfejl under indlæsning af moduler"
 
 msgid "Disable updating the registry"
-msgstr "Déaktiver opdatering af registratur"
+msgstr "Deaktiver opdatering af registratur"
 
 msgid "Disable spawning a helper process while scanning the registry"
-msgstr "Déaktiver forgrening af hjælpeproces under skanning af registratur"
+msgstr "Deaktiver forgrening af hjælpeproces under skanning af registratur"
 
 msgid "GStreamer Options"
 msgstr "GStreamer indstillinger"
@@ -455,10 +455,10 @@
 msgstr "person(er) der komponerede optagelsen"
 
 msgid "conductor"
-msgstr ""
+msgstr "konduktør"
 
 msgid "conductor/performer refinement"
-msgstr ""
+msgstr "konduktør/optrædende-raffinement"
 
 msgid "duration"
 msgstr "varighed"
@@ -857,7 +857,7 @@
 
 #, c-format
 msgid "link has no sink [source=%s@%p]"
-msgstr "Linket har ingen sink [kilde=%s@%p]"
+msgstr "Henvisningen har ingen datakanal [kilde=%s@%p]"
 
 #, c-format
 msgid "no property \"%s\" in element \"%s\""
@@ -868,7 +868,7 @@
 msgstr "kunne ikke sætte egenskab \"%s\" for element \"%s\" til \"%s\""
 
 msgid "Delayed linking failed."
-msgstr ""
+msgstr "Forsinket oprettelse af forbindelse mislykkedes."
 
 #, c-format
 msgid "could not link %s to %s"
@@ -931,7 +931,7 @@
 msgstr "Fejl i internt ur."
 
 msgid "Failed to map buffer."
-msgstr "Fejlede ved mapning af buffer"
+msgstr "Fejlede ved oversættelse af buffer."
 
 msgid "Filter caps"
 msgstr "Filterkapabilitet"
@@ -1016,12 +1016,11 @@
 msgid "force caps without doing a typefind"
 msgstr "gennemtving kapabiliteter uden at gennemføre en typefind"
 
-#, fuzzy
 msgid "Stream doesn't contain enough data."
-msgstr "Mediestrøm indeholder ikke nok data."
+msgstr "Strøm indeholder ikke nok data."
 
 msgid "Stream contains no data."
-msgstr "Mediestrøm indeholder ingen data"
+msgstr "Mediestrøm indeholder ingen data."
 
 msgid "Implemented Interfaces:\n"
 msgstr "Implementerede grænseflader:\n"
@@ -1105,7 +1104,7 @@
 "When checking if an element or plugin exists, also check that its version is "
 "at least the version specified"
 msgstr ""
-"Ved kontrol af om et element eller et plugin eksisterer, kontrollér da også "
+"Ved kontrol af om et element eller et plugin eksisterer, kontroller da også "
 "om versionen i det mindste er den specificerede version"
 
 msgid "Print supported URI schemes, with the elements that implement them"
@@ -1247,7 +1246,7 @@
 msgstr "EGENSKABSNAVN"
 
 msgid "Do not install a fault handler"
-msgstr "Installér ikke en fejlhåndterer"
+msgstr "Installer ikke en fejlhåndterer"
 
 msgid "Force EOS on sources before shutting the pipeline down"
 msgstr "Gennemtving medieslut på kilder før nedlukning af rørledning"
diff --git a/po/de.gmo b/po/de.gmo
index d085218..8383ffb 100644
--- a/po/de.gmo
+++ b/po/de.gmo
Binary files differ
diff --git a/po/de.po b/po/de.po
index e27999c..b03e9c6 100644
--- a/po/de.po
+++ b/po/de.po
@@ -9,7 +9,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 1.7.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-03-24 11:24+0200\n"
+"POT-Creation-Date: 2016-04-20 15:26+0300\n"
 "PO-Revision-Date: 2016-02-22 23:41+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 dfdb0e4..b5c86d3 100644
--- a/po/el.gmo
+++ b/po/el.gmo
Binary files differ
diff --git a/po/el.po b/po/el.po
index 9124580..d4209e1 100644
--- a/po/el.po
+++ b/po/el.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer-0.10.30.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-03-24 11:24+0200\n"
+"POT-Creation-Date: 2016-04-20 15:26+0300\n"
 "PO-Revision-Date: 2010-11-29 11:14+0200\n"
 "Last-Translator: Michael Kotsarinis <mk73628@gmail.com>\n"
 "Language-Team: Greek <team@lists.gnome.gr>\n"
diff --git a/po/en_GB.gmo b/po/en_GB.gmo
index 5cff0a8..2effcb9 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 4760d4a..26651e0 100644
--- a/po/en_GB.po
+++ b/po/en_GB.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.8.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-03-24 11:24+0200\n"
+"POT-Creation-Date: 2016-04-20 15:26+0300\n"
 "PO-Revision-Date: 2004-04-26 10:36-0400\n"
 "Last-Translator: Gareth Owen <gowen72@yahoo.com>\n"
 "Language-Team: English (British) <en_gb@li.org>\n"
diff --git a/po/eo.gmo b/po/eo.gmo
index d66ca9a..08ad519 100644
--- a/po/eo.gmo
+++ b/po/eo.gmo
Binary files differ
diff --git a/po/eo.po b/po/eo.po
index 7a0477b..08799ad 100644
--- a/po/eo.po
+++ b/po/eo.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-03-24 11:24+0200\n"
+"POT-Creation-Date: 2016-04-20 15:26+0300\n"
 "PO-Revision-Date: 2011-06-04 21:11+0100\n"
 "Last-Translator: Kristjan SCHMIDT <kristjan.schmidt@googlemail.com>\n"
 "Language-Team: Esperanto <translation-team-eo@lists.sourceforge.net>\n"
diff --git a/po/es.gmo b/po/es.gmo
index edd69a2..2753975 100644
--- a/po/es.gmo
+++ b/po/es.gmo
Binary files differ
diff --git a/po/es.po b/po/es.po
index dff7763..0b1b8ea 100644
--- a/po/es.po
+++ b/po/es.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-03-24 11:24+0200\n"
+"POT-Creation-Date: 2016-04-20 15:26+0300\n"
 "PO-Revision-Date: 2011-10-02 15:45+0200\n"
 "Last-Translator: Jorge González González <aloriel@gmail.com>\n"
 "Language-Team: Spanish <es@li.org>\n"
diff --git a/po/eu.gmo b/po/eu.gmo
index 7bdb943..9363dc6 100644
--- a/po/eu.gmo
+++ b/po/eu.gmo
Binary files differ
diff --git a/po/eu.po b/po/eu.po
index 8383be6..6cacadc 100644
--- a/po/eu.po
+++ b/po/eu.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer-0.10.26.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-03-24 11:24+0200\n"
+"POT-Creation-Date: 2016-04-20 15:26+0300\n"
 "PO-Revision-Date: 2010-03-25 13:10+0100\n"
 "Last-Translator: Mikel Olasagasti Uranga <hey_neken@mundurat.net>\n"
 "Language-Team: Basque <translation-team-eu@lists.sourceforge.net>\n"
diff --git a/po/fi.gmo b/po/fi.gmo
index ef24c8c..5b9f0e7 100644
--- a/po/fi.gmo
+++ b/po/fi.gmo
Binary files differ
diff --git a/po/fi.po b/po/fi.po
index 8e147b6..ec5ed9a 100644
--- a/po/fi.po
+++ b/po/fi.po
@@ -12,7 +12,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.30.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-03-24 11:24+0200\n"
+"POT-Creation-Date: 2016-04-20 15:26+0300\n"
 "PO-Revision-Date: 2010-11-17 23:10+0200\n"
 "Last-Translator: Tommi Vainikainen <Tommi.Vainikainen@iki.fi>\n"
 "Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>\n"
diff --git a/po/fr.gmo b/po/fr.gmo
index 4a8b586..b4109ea 100644
--- a/po/fr.gmo
+++ b/po/fr.gmo
Binary files differ
diff --git a/po/fr.po b/po/fr.po
index 612750e..bfeabd6 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -10,7 +10,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 1.7.90\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-03-24 11:24+0200\n"
+"POT-Creation-Date: 2016-04-20 15:26+0300\n"
 "PO-Revision-Date: 2016-03-04 13:08+0100\n"
 "Last-Translator: Stéphane Aulery <lkppo@free.fr>\n"
 "Language-Team: French <traduc@traduc.org>\n"
diff --git a/po/gl.gmo b/po/gl.gmo
index aa97b9b..2df3a19 100644
--- a/po/gl.gmo
+++ b/po/gl.gmo
Binary files differ
diff --git a/po/gl.po b/po/gl.po
index 062ebee..814705c 100644
--- a/po/gl.po
+++ b/po/gl.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 1.0.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-03-24 11:24+0200\n"
+"POT-Creation-Date: 2016-04-20 15:26+0300\n"
 "PO-Revision-Date: 2012-12-15 03:29+0200\n"
 "Last-Translator: Fran Dieguez <frandieguez@ubuntu.com>\n"
 "Language-Team: Galician <proxecto@trasno.net>\n"
diff --git a/po/gstreamer-1.0.pot b/po/gstreamer-1.0.pot
index 6417c99..7240906 100644
--- a/po/gstreamer-1.0.pot
+++ b/po/gstreamer-1.0.pot
@@ -6,9 +6,9 @@
 #, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: gstreamer 1.8.0\n"
+"Project-Id-Version: gstreamer 1.8.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-03-24 11:24+0200\n"
+"POT-Creation-Date: 2016-04-20 15:26+0300\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -1141,7 +1141,7 @@
 
 #: libs/gst/base/gstbasesink.c:4104 libs/gst/base/gstbasesrc.c:2947
 #: libs/gst/base/gstbasesrc.c:2956 plugins/elements/gstdownloadbuffer.c:1349
-#: plugins/elements/gstqueue.c:966 plugins/elements/gstqueue.c:1515
+#: plugins/elements/gstqueue.c:984 plugins/elements/gstqueue.c:1533
 #: plugins/elements/gstqueue2.c:2486 plugins/elements/gstqueue2.c:2978
 msgid "Internal data flow error."
 msgstr ""
@@ -1239,32 +1239,32 @@
 msgid "Failed after iterations as requested."
 msgstr ""
 
-#: plugins/elements/gsttypefindelement.c:250
+#: plugins/elements/gsttypefindelement.c:248
 msgid "caps"
 msgstr ""
 
-#: plugins/elements/gsttypefindelement.c:251
+#: plugins/elements/gsttypefindelement.c:249
 msgid "detected capabilities in stream"
 msgstr ""
 
-#: plugins/elements/gsttypefindelement.c:254
+#: plugins/elements/gsttypefindelement.c:252
 msgid "minimum"
 msgstr ""
 
-#: plugins/elements/gsttypefindelement.c:259
+#: plugins/elements/gsttypefindelement.c:257
 msgid "force caps"
 msgstr ""
 
-#: plugins/elements/gsttypefindelement.c:260
+#: plugins/elements/gsttypefindelement.c:258
 msgid "force caps without doing a typefind"
 msgstr ""
 
-#: plugins/elements/gsttypefindelement.c:980
-#: plugins/elements/gsttypefindelement.c:1002
+#: plugins/elements/gsttypefindelement.c:978
+#: plugins/elements/gsttypefindelement.c:1000
 msgid "Stream doesn't contain enough data."
 msgstr ""
 
-#: plugins/elements/gsttypefindelement.c:1122
+#: plugins/elements/gsttypefindelement.c:1120
 msgid "Stream contains no data."
 msgstr ""
 
diff --git a/po/hr.gmo b/po/hr.gmo
index 67d1ca9..d1195a3 100644
--- a/po/hr.gmo
+++ b/po/hr.gmo
Binary files differ
diff --git a/po/hr.po b/po/hr.po
index c92b5c1..aaf7125 100644
--- a/po/hr.po
+++ b/po/hr.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-03-24 11:24+0200\n"
+"POT-Creation-Date: 2016-04-20 15:26+0300\n"
 "PO-Revision-Date: 2012-05-25 16:47+0200\n"
 "Last-Translator: Tomislav Krznar <tomislav.krznar@gmail.com>\n"
 "Language-Team: Croatian <lokalizacija@linux.hr>\n"
diff --git a/po/hu.gmo b/po/hu.gmo
index ea88e67..31e2862 100644
--- a/po/hu.gmo
+++ b/po/hu.gmo
Binary files differ
diff --git a/po/hu.po b/po/hu.po
index 43325e7..c5bbb4d 100644
--- a/po/hu.po
+++ b/po/hu.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 1.7.90\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-03-24 11:24+0200\n"
+"POT-Creation-Date: 2016-04-20 15:26+0300\n"
 "PO-Revision-Date: 2016-03-14 16:10+0100\n"
 "Last-Translator: Gabor Kelemen <kelemeng@gnome.hu>\n"
 "Language-Team: Hungarian <translation-team-hu@lists.sourceforge.net>\n"
diff --git a/po/id.gmo b/po/id.gmo
index 5582c2a..354b62d 100644
--- a/po/id.gmo
+++ b/po/id.gmo
Binary files differ
diff --git a/po/id.po b/po/id.po
index 52ebffe..e0765f7 100644
--- a/po/id.po
+++ b/po/id.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 1.3.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-03-24 11:24+0200\n"
+"POT-Creation-Date: 2016-04-20 15:26+0300\n"
 "PO-Revision-Date: 2014-05-31 22:06+0700\n"
 "Last-Translator: Andhika Padmawan <andhika.padmawan@gmail.com>\n"
 "Language-Team: Indonesian <translation-team-id@lists.sourceforge.net>\n"
diff --git a/po/it.gmo b/po/it.gmo
index 388518b..0a9fde8 100644
--- a/po/it.gmo
+++ b/po/it.gmo
Binary files differ
diff --git a/po/it.po b/po/it.po
index eade3d7..1658328 100644
--- a/po/it.po
+++ b/po/it.po
@@ -106,7 +106,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.30.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-03-24 11:24+0200\n"
+"POT-Creation-Date: 2016-04-20 15:26+0300\n"
 "PO-Revision-Date: 2010-10-25 10:03+0200\n"
 "Last-Translator: Luca Ferretti <elle.uca@infinito.it>\n"
 "Language-Team: Italian <tp@lists.linux.it>\n"
diff --git a/po/ja.gmo b/po/ja.gmo
index 96ffec5..fd0c8ad 100644
--- a/po/ja.gmo
+++ b/po/ja.gmo
Binary files differ
diff --git a/po/ja.po b/po/ja.po
index f4ce125..664c409 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 1.0.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-03-24 11:24+0200\n"
+"POT-Creation-Date: 2016-04-20 15:26+0300\n"
 "PO-Revision-Date: 2013-08-20 14:56+0900\n"
 "Last-Translator: Makoto Kato <makoto.kt@gmail.com>\n"
 "Language-Team: Japanese <translation-team-ja@lists.sourceforge.net>\n"
diff --git a/po/lt.gmo b/po/lt.gmo
index 7fc40a3..6f26d97 100644
--- a/po/lt.gmo
+++ b/po/lt.gmo
Binary files differ
diff --git a/po/lt.po b/po/lt.po
index cd1225e..40c7875 100644
--- a/po/lt.po
+++ b/po/lt.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.29.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-03-24 11:24+0200\n"
+"POT-Creation-Date: 2016-04-20 15:26+0300\n"
 "PO-Revision-Date: 2010-07-16 00:50+0300\n"
 "Last-Translator: Žygimantas Beručka <uid0@akl.lt>\n"
 "Language-Team: Lithuanian <komp_lt@konferencijos.lt>\n"
diff --git a/po/nb.gmo b/po/nb.gmo
index f68b000..5475d2d 100644
--- a/po/nb.gmo
+++ b/po/nb.gmo
Binary files differ
diff --git a/po/nb.po b/po/nb.po
index 9a91765..abd1c6a 100644
--- a/po/nb.po
+++ b/po/nb.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 1.6.0\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-03-24 11:24+0200\n"
+"POT-Creation-Date: 2016-04-20 15:26+0300\n"
 "PO-Revision-Date: 2015-12-23 02:02+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 d1abf4f..72d041e 100644
--- a/po/nl.gmo
+++ b/po/nl.gmo
Binary files differ
diff --git a/po/nl.po b/po/nl.po
index 10602ac..c9348d3 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -10,7 +10,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 1.7.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-03-24 11:24+0200\n"
+"POT-Creation-Date: 2016-04-20 15:26+0300\n"
 "PO-Revision-Date: 2016-02-20 16:42+0100\n"
 "Last-Translator: Freek de Kruijf <f.de.kruijf@gmail.com>\n"
 "Language-Team: Dutch <vertaling@vrijschrift.org>\n"
diff --git a/po/pl.gmo b/po/pl.gmo
index 4f8c524..8e36555 100644
--- a/po/pl.gmo
+++ b/po/pl.gmo
Binary files differ
diff --git a/po/pl.po b/po/pl.po
index 520dae9..85a6adc 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 1.7.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-03-24 11:24+0200\n"
+"POT-Creation-Date: 2016-04-20 15:26+0300\n"
 "PO-Revision-Date: 2016-02-20 21:41+0100\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 ef9a8a0..ae5412b 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 7caecb9..81752c3 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -17,7 +17,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer-1.7.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-03-24 11:24+0200\n"
+"POT-Creation-Date: 2016-04-20 15:26+0300\n"
 "PO-Revision-Date: 2015-12-28 20:54-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 61e1783..798fcdf 100644
--- a/po/ro.gmo
+++ b/po/ro.gmo
Binary files differ
diff --git a/po/ro.po b/po/ro.po
index e5f89be..2fb59c9 100644
--- a/po/ro.po
+++ b/po/ro.po
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.29.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-03-24 11:24+0200\n"
+"POT-Creation-Date: 2016-04-20 15:26+0300\n"
 "PO-Revision-Date: 2010-08-16 01:10+0300\n"
 "Last-Translator: Lucian Adrian Grijincu <lucian.grijincu@gmail.com>\n"
 "Language-Team: Romanian <translation-team-ro@lists.sourceforge.net>\n"
diff --git a/po/ru.gmo b/po/ru.gmo
index d35505f..50272f7 100644
--- a/po/ru.gmo
+++ b/po/ru.gmo
Binary files differ
diff --git a/po/ru.po b/po/ru.po
index a134800..143fca6 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -9,7 +9,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 1.7.90\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-03-24 11:24+0200\n"
+"POT-Creation-Date: 2016-04-20 15:26+0300\n"
 "PO-Revision-Date: 2016-03-05 08:41+0300\n"
 "Last-Translator: Yuri Kozlov <yuray@komyakino.ru>\n"
 "Language-Team: Russian <gnu@d07.ru>\n"
diff --git a/po/rw.gmo b/po/rw.gmo
index 2fb70f5..c23f836 100644
--- a/po/rw.gmo
+++ b/po/rw.gmo
Binary files differ
diff --git a/po/rw.po b/po/rw.po
index ad49ff9..a60b624 100644
--- a/po/rw.po
+++ b/po/rw.po
@@ -15,7 +15,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.8.8\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-03-24 11:24+0200\n"
+"POT-Creation-Date: 2016-04-20 15:26+0300\n"
 "PO-Revision-Date: 2005-04-04 10:55-0700\n"
 "Last-Translator: Steven Michael Murphy <murf@e-tools.com>\n"
 "Language-Team: Kinyarwanda <translation-team-rw@lists.sourceforge.net>\n"
diff --git a/po/sk.gmo b/po/sk.gmo
index 796cf9c..52db6d5 100644
--- a/po/sk.gmo
+++ b/po/sk.gmo
Binary files differ
diff --git a/po/sk.po b/po/sk.po
index f2b3560..c10aa65 100644
--- a/po/sk.po
+++ b/po/sk.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 1.2.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-03-24 11:24+0200\n"
+"POT-Creation-Date: 2016-04-20 15:26+0300\n"
 "PO-Revision-Date: 2014-01-30 10:24+0100\n"
 "Last-Translator: Peter Tuhársky <tuharsky@misbb.sk>\n"
 "Language-Team: Slovak <sk-i18n@lists.linux.sk>\n"
diff --git a/po/sl.gmo b/po/sl.gmo
index f973d34..afb0f38 100644
--- a/po/sl.gmo
+++ b/po/sl.gmo
Binary files differ
diff --git a/po/sl.po b/po/sl.po
index c214968..dfed918 100644
--- a/po/sl.po
+++ b/po/sl.po
@@ -10,7 +10,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer-1.2.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-03-24 11:24+0200\n"
+"POT-Creation-Date: 2016-04-20 15:26+0300\n"
 "PO-Revision-Date: 2014-04-09 22:38+0100\n"
 "Last-Translator: Klemen Košir <klemen913@gmail.com>\n"
 "Language-Team: Slovenian <translation-team-sl@lists.sourceforge.net>\n"
diff --git a/po/sq.gmo b/po/sq.gmo
index 1db948f..ab583ee 100644
--- a/po/sq.gmo
+++ b/po/sq.gmo
Binary files differ
diff --git a/po/sq.po b/po/sq.po
index 7516510..8f7a177 100644
--- a/po/sq.po
+++ b/po/sq.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.8.4\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-03-24 11:24+0200\n"
+"POT-Creation-Date: 2016-04-20 15:26+0300\n"
 "PO-Revision-Date: 2004-08-07 23:46+0200\n"
 "Last-Translator: Laurent Dhima <laurenti@alblinux.net>\n"
 "Language-Team: Albanian <begraj@hotmail.com>\n"
diff --git a/po/sr.gmo b/po/sr.gmo
index ebbf68b..4a12c68 100644
--- a/po/sr.gmo
+++ b/po/sr.gmo
Binary files differ
diff --git a/po/sr.po b/po/sr.po
index 7550bad..5c2180a 100644
--- a/po/sr.po
+++ b/po/sr.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer-1.7.90\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-03-24 11:24+0200\n"
+"POT-Creation-Date: 2016-04-20 15:26+0300\n"
 "PO-Revision-Date: 2016-03-05 10:03+0200\n"
 "Last-Translator: Мирослав Николић <miroslavnikolic@rocketmail.com>\n"
 "Language-Team: Serbian <(nothing)>\n"
diff --git a/po/sv.gmo b/po/sv.gmo
index 4b8cbb1..11fe4d0 100644
--- a/po/sv.gmo
+++ b/po/sv.gmo
Binary files differ
diff --git a/po/sv.po b/po/sv.po
index 9d062f4..55c6baf 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -9,7 +9,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 1.7.90\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-03-24 11:24+0200\n"
+"POT-Creation-Date: 2016-04-20 15:26+0300\n"
 "PO-Revision-Date: 2016-03-02 22:19+0100\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 89dfcfb..89b9a52 100644
--- a/po/tr.gmo
+++ b/po/tr.gmo
Binary files differ
diff --git a/po/tr.po b/po/tr.po
index 181c511..ca70404 100644
--- a/po/tr.po
+++ b/po/tr.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 1.4.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-03-24 11:24+0200\n"
+"POT-Creation-Date: 2016-04-20 15:26+0300\n"
 "PO-Revision-Date: 2015-01-10 21:06+0100\n"
 "Last-Translator: Volkan Gezer <volkangezer@gmail.com>\n"
 "Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n"
diff --git a/po/uk.gmo b/po/uk.gmo
index a57069a..ed6ff09 100644
--- a/po/uk.gmo
+++ b/po/uk.gmo
Binary files differ
diff --git a/po/uk.po b/po/uk.po
index bb61bad..fc90312 100644
--- a/po/uk.po
+++ b/po/uk.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 1.7.90\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-03-24 11:24+0200\n"
+"POT-Creation-Date: 2016-04-20 15:26+0300\n"
 "PO-Revision-Date: 2016-03-02 22:00+0200\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 49e9360..ee7381e 100644
--- a/po/vi.gmo
+++ b/po/vi.gmo
Binary files differ
diff --git a/po/vi.po b/po/vi.po
index 3c306ad..eb9d422 100644
--- a/po/vi.po
+++ b/po/vi.po
@@ -9,7 +9,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 1.7.90\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-03-24 11:24+0200\n"
+"POT-Creation-Date: 2016-04-20 15:26+0300\n"
 "PO-Revision-Date: 2016-03-03 07:44+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 b99aaf3..258ea0a 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 45c0835..ef4816e 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 1.7.90\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-03-24 11:24+0200\n"
+"POT-Creation-Date: 2016-04-20 15:26+0300\n"
 "PO-Revision-Date: 2016-03-03 12:49+0800\n"
 "Last-Translator: Tianze Wang <zwpwjwtz@126.com>\n"
 "Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
diff --git a/po/zh_TW.gmo b/po/zh_TW.gmo
index 87b0964..d9f34a2 100644
--- a/po/zh_TW.gmo
+++ b/po/zh_TW.gmo
Binary files differ
diff --git a/po/zh_TW.po b/po/zh_TW.po
index b55dbed..a77587e 100644
--- a/po/zh_TW.po
+++ b/po/zh_TW.po
@@ -27,7 +27,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 1.3.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-03-24 11:24+0200\n"
+"POT-Creation-Date: 2016-04-20 15:26+0300\n"
 "PO-Revision-Date: 2014-06-08 00:22+0800\n"
 "Last-Translator: Wen Liao <wen.cf83@gmail.com>\n"
 "Language-Team: Chinese (traditional) <zh-l10n@linux.org.tw>\n"
diff --git a/tests/check/elements/multiqueue.c b/tests/check/elements/multiqueue.c
index 736ebad..0cd54d2 100644
--- a/tests/check/elements/multiqueue.c
+++ b/tests/check/elements/multiqueue.c
@@ -863,6 +863,303 @@
 GST_END_TEST;
 
 static gpointer
+pad_push_datablock_thread (gpointer data)
+{
+  GstPad *pad = data;
+  GstBuffer *buf;
+
+  buf = gst_buffer_new_allocate (NULL, 80 * 1000, NULL);
+  gst_pad_push (pad, buf);
+
+  return NULL;
+}
+
+static GstPadProbeReturn
+block_probe (GstPad * pad, GstPadProbeInfo * info, gpointer user_data)
+{
+  return GST_PAD_PROBE_OK;
+}
+
+#define CHECK_FOR_BUFFERING_MSG(PIPELINE, EXPECTED_PERC) \
+  G_STMT_START { \
+    gint buf_perc; \
+    GstMessage *msg; \
+    GST_LOG ("waiting for %d%% buffering message", (EXPECTED_PERC)); \
+    msg = gst_bus_poll (GST_ELEMENT_BUS (PIPELINE), \
+        GST_MESSAGE_BUFFERING | GST_MESSAGE_ERROR, -1); \
+    fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_ERROR, \
+        "Expected BUFFERING message, got ERROR message"); \
+    gst_message_parse_buffering (msg, &buf_perc); \
+    gst_message_unref (msg); \
+    fail_unless (buf_perc == (EXPECTED_PERC), \
+        "Got incorrect percentage: %d%% expected: %d%%", buf_perc, \
+        (EXPECTED_PERC)); \
+  } G_STMT_END
+
+GST_START_TEST (test_initial_fill_above_high_threshold)
+{
+  /* This test checks what happens if the first buffer that enters
+   * the queue immediately fills it above the high-threshold. */
+  GstElement *pipe;
+  GstElement *mq, *fakesink;
+  GstPad *inputpad;
+  GstPad *mq_sinkpad;
+  GstPad *sinkpad;
+  GstSegment segment;
+  GThread *thread;
+
+
+  /* Setup test pipeline with one multiqueue and one fakesink */
+
+  pipe = gst_pipeline_new ("testbin");
+  mq = gst_element_factory_make ("multiqueue", NULL);
+  fail_unless (mq != NULL);
+  gst_bin_add (GST_BIN (pipe), mq);
+
+  fakesink = gst_element_factory_make ("fakesink", NULL);
+  fail_unless (fakesink != NULL);
+  gst_bin_add (GST_BIN (pipe), fakesink);
+
+  /* Block fakesink sinkpad flow to ensure the queue isn't emptied
+   * by the prerolling sink */
+  sinkpad = gst_element_get_static_pad (fakesink, "sink");
+  gst_pad_add_probe (sinkpad, GST_PAD_PROBE_TYPE_BLOCK, block_probe, NULL,
+      NULL);
+  gst_object_unref (sinkpad);
+
+  /* Set size limit to 1000000 byte, low threshold to 1%, high
+   * threshold to 5%, to make sure that even just one data push
+   * will exceed both thresholds.*/
+  g_object_set (mq,
+      "use-buffering", (gboolean) TRUE,
+      "max-size-bytes", (guint) 1000 * 1000,
+      "max-size-buffers", (guint) 0,
+      "max-size-time", (guint64) 0,
+      "extra-size-bytes", (guint) 0,
+      "extra-size-buffers", (guint) 0,
+      "extra-size-time", (guint64) 0,
+      "low-percent", (gint) 1, "high-percent", (gint) 5, NULL);
+
+  gst_segment_init (&segment, GST_FORMAT_TIME);
+
+  inputpad = gst_pad_new ("dummysrc", GST_PAD_SRC);
+  gst_pad_set_query_function (inputpad, mq_dummypad_query);
+
+  mq_sinkpad = gst_element_get_request_pad (mq, "sink_%u");
+  fail_unless (mq_sinkpad != NULL);
+  fail_unless (gst_pad_link (inputpad, mq_sinkpad) == GST_PAD_LINK_OK);
+
+  gst_pad_set_active (inputpad, TRUE);
+
+  gst_pad_push_event (inputpad, gst_event_new_stream_start ("test"));
+  gst_pad_push_event (inputpad, gst_event_new_segment (&segment));
+
+  gst_object_unref (mq_sinkpad);
+
+  fail_unless (gst_element_link (mq, fakesink));
+
+  /* Start pipeline in paused state to ensure the sink remains
+   * in preroll mode and blocks */
+  gst_element_set_state (pipe, GST_STATE_PAUSED);
+
+  /* Feed data. queue will be filled to 8% (because it pushes 80000 bytes),
+   * which is above both the low- and the high-threshold. This should
+   * produce a 100% buffering message. */
+  thread = g_thread_new ("push1", pad_push_datablock_thread, inputpad);
+  g_thread_join (thread);
+  CHECK_FOR_BUFFERING_MSG (pipe, 100);
+
+  gst_element_set_state (pipe, GST_STATE_NULL);
+  gst_object_unref (inputpad);
+  gst_object_unref (pipe);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_high_threshold_change)
+{
+  /* This test checks what happens if the high threshold is changed to a
+   * value below the current buffer fill level. Expected behavior is for
+   * multiqueue to emit a 100% buffering message in that case. */
+  GstElement *pipe;
+  GstElement *mq, *fakesink;
+  GstPad *inputpad;
+  GstPad *mq_sinkpad;
+  GstPad *sinkpad;
+  GstSegment segment;
+  GThread *thread;
+
+
+  /* Setup test pipeline with one multiqueue and one fakesink */
+
+  pipe = gst_pipeline_new ("testbin");
+  mq = gst_element_factory_make ("multiqueue", NULL);
+  fail_unless (mq != NULL);
+  gst_bin_add (GST_BIN (pipe), mq);
+
+  fakesink = gst_element_factory_make ("fakesink", NULL);
+  fail_unless (fakesink != NULL);
+  gst_bin_add (GST_BIN (pipe), fakesink);
+
+  /* Block fakesink sinkpad flow to ensure the queue isn't emptied
+   * by the prerolling sink */
+  sinkpad = gst_element_get_static_pad (fakesink, "sink");
+  gst_pad_add_probe (sinkpad, GST_PAD_PROBE_TYPE_BLOCK, block_probe, NULL,
+      NULL);
+  gst_object_unref (sinkpad);
+
+  g_object_set (mq,
+      "use-buffering", (gboolean) TRUE,
+      "max-size-bytes", (guint) 1000 * 1000,
+      "max-size-buffers", (guint) 0,
+      "max-size-time", (guint64) 0,
+      "extra-size-bytes", (guint) 0,
+      "extra-size-buffers", (guint) 0,
+      "extra-size-time", (guint64) 0,
+      "low-percent", (gint) 1, "high-percent", (gint) 99, NULL);
+
+  gst_segment_init (&segment, GST_FORMAT_TIME);
+
+  inputpad = gst_pad_new ("dummysrc", GST_PAD_SRC);
+  gst_pad_set_query_function (inputpad, mq_dummypad_query);
+
+  mq_sinkpad = gst_element_get_request_pad (mq, "sink_%u");
+  fail_unless (mq_sinkpad != NULL);
+  fail_unless (gst_pad_link (inputpad, mq_sinkpad) == GST_PAD_LINK_OK);
+
+  gst_pad_set_active (inputpad, TRUE);
+
+  gst_pad_push_event (inputpad, gst_event_new_stream_start ("test"));
+  gst_pad_push_event (inputpad, gst_event_new_segment (&segment));
+
+  gst_object_unref (mq_sinkpad);
+
+  fail_unless (gst_element_link (mq, fakesink));
+
+  /* Start pipeline in paused state to ensure the sink remains
+   * in preroll mode and blocks */
+  gst_element_set_state (pipe, GST_STATE_PAUSED);
+
+  /* Feed data. queue will be filled to 8% (because it pushes 80000 bytes),
+   * which is below the high-threshold, provoking a buffering message. */
+  thread = g_thread_new ("push1", pad_push_datablock_thread, inputpad);
+  g_thread_join (thread);
+
+  /* Check for the buffering message; it should indicate 8% fill level
+   * (Note that the percentage from the message is normalized, but since
+   * the high threshold is at 99%, it should still apply) */
+  CHECK_FOR_BUFFERING_MSG (pipe, 8);
+
+  /* Set high threshold to half of what it was before. This means that the
+   * relative fill level doubles. As a result, this should trigger a buffering
+   * message with a percentage of 16%. */
+  g_object_set (mq, "high-percent", (gint) 50, NULL);
+  CHECK_FOR_BUFFERING_MSG (pipe, 16);
+
+  /* Set high threshold to a value that lies below the current fill level.
+   * This should trigger a 100% buffering message immediately, even without
+   * pushing in extra data. */
+  g_object_set (mq, "high-percent", (gint) 5, NULL);
+  CHECK_FOR_BUFFERING_MSG (pipe, 100);
+
+  gst_element_set_state (pipe, GST_STATE_NULL);
+  gst_object_unref (inputpad);
+  gst_object_unref (pipe);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_low_threshold_change)
+{
+  /* This tests what happens if the queue isn't currently buffering and the
+   * low-threshold is raised above the current fill level. */
+  GstElement *pipe;
+  GstElement *mq, *fakesink;
+  GstPad *inputpad;
+  GstPad *mq_sinkpad;
+  GstPad *sinkpad;
+  GstSegment segment;
+  GThread *thread;
+
+
+  /* Setup test pipeline with one multiqueue and one fakesink */
+
+  pipe = gst_pipeline_new ("testbin");
+  mq = gst_element_factory_make ("multiqueue", NULL);
+  fail_unless (mq != NULL);
+  gst_bin_add (GST_BIN (pipe), mq);
+
+  fakesink = gst_element_factory_make ("fakesink", NULL);
+  fail_unless (fakesink != NULL);
+  gst_bin_add (GST_BIN (pipe), fakesink);
+
+  /* Block fakesink sinkpad flow to ensure the queue isn't emptied
+   * by the prerolling sink */
+  sinkpad = gst_element_get_static_pad (fakesink, "sink");
+  gst_pad_add_probe (sinkpad, GST_PAD_PROBE_TYPE_BLOCK, block_probe, NULL,
+      NULL);
+  gst_object_unref (sinkpad);
+
+  /* Enable buffering and set the low/high thresholds to 1%/5%. This ensures
+   * that after pushing one data block, the high threshold is reached, and
+   * buffering ceases. */
+  g_object_set (mq,
+      "use-buffering", (gboolean) TRUE,
+      "max-size-bytes", (guint) 1000 * 1000,
+      "max-size-buffers", (guint) 0,
+      "max-size-time", (guint64) 0,
+      "extra-size-bytes", (guint) 0,
+      "extra-size-buffers", (guint) 0,
+      "extra-size-time", (guint64) 0,
+      "low-percent", (gint) 1, "high-percent", (gint) 5, NULL);
+
+  gst_segment_init (&segment, GST_FORMAT_TIME);
+
+  inputpad = gst_pad_new ("dummysrc", GST_PAD_SRC);
+  gst_pad_set_query_function (inputpad, mq_dummypad_query);
+
+  mq_sinkpad = gst_element_get_request_pad (mq, "sink_%u");
+  fail_unless (mq_sinkpad != NULL);
+  fail_unless (gst_pad_link (inputpad, mq_sinkpad) == GST_PAD_LINK_OK);
+
+  gst_pad_set_active (inputpad, TRUE);
+
+  gst_pad_push_event (inputpad, gst_event_new_stream_start ("test"));
+  gst_pad_push_event (inputpad, gst_event_new_segment (&segment));
+
+  gst_object_unref (mq_sinkpad);
+
+  fail_unless (gst_element_link (mq, fakesink));
+
+  /* Start pipeline in paused state to ensure the sink remains
+   * in preroll mode and blocks */
+  gst_element_set_state (pipe, GST_STATE_PAUSED);
+
+  /* Feed data. queue will be filled to 8% (because it pushes 80000 bytes),
+   * which is above the high-threshold, ensuring that the queue disables
+   * its buffering mode internally. */
+  thread = g_thread_new ("push1", pad_push_datablock_thread, inputpad);
+  g_thread_join (thread);
+
+  /* Check for the buffering message; it should indicate 100% relative fill
+   * level (Note that the percentage from the message is normalized) */
+  CHECK_FOR_BUFFERING_MSG (pipe, 100);
+
+  /* Set low threshold to a 10%, which is above the current fill level of 8%.
+   * As a result, the queue must re-enable its buffering mode, and post the
+   * current relative fill level of 40% (since high-percent is also set to 20%
+   * and 8%/20% = 40%). */
+  g_object_set (mq, "high-percent", (gint) 20, "low-percent", (gint) 10, NULL);
+  CHECK_FOR_BUFFERING_MSG (pipe, 40);
+
+  gst_element_set_state (pipe, GST_STATE_NULL);
+  gst_object_unref (inputpad);
+  gst_object_unref (pipe);
+}
+
+GST_END_TEST;
+
+static gpointer
 pad_push_thread (gpointer data)
 {
   GstPad *pad = data;
@@ -1210,6 +1507,9 @@
   tcase_add_test (tc_chain, test_not_linked_eos);
 
   tcase_add_test (tc_chain, test_sparse_stream);
+  tcase_add_test (tc_chain, test_initial_fill_above_high_threshold);
+  tcase_add_test (tc_chain, test_high_threshold_change);
+  tcase_add_test (tc_chain, test_low_threshold_change);
   tcase_add_test (tc_chain, test_limit_changes);
 
   tcase_add_test (tc_chain, test_buffering_with_none_pts);
diff --git a/tests/check/elements/valve.c b/tests/check/elements/valve.c
index 4c6e9ca..d031481 100644
--- a/tests/check/elements/valve.c
+++ b/tests/check/elements/valve.c
@@ -23,82 +23,59 @@
  */
 
 #include <gst/check/gstcheck.h>
+#include <gst/check/gstharness.h>
 #include <gst/gst.h>
 
-
-static GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink",
-    GST_PAD_SINK,
-    GST_PAD_ALWAYS,
-    GST_STATIC_CAPS ("audio/x-raw"));
-
-static GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src",
-    GST_PAD_SRC,
-    GST_PAD_ALWAYS,
-    GST_STATIC_CAPS ("audio/x-raw"));
-
-gboolean event_received = FALSE;
-gboolean buffer_allocated = FALSE;
-
-static gboolean
-event_func (GstPad * pad, GstObject * parent, GstEvent * event)
-{
-  event_received = TRUE;
-  gst_event_unref (event);
-  return TRUE;
-}
-
 GST_START_TEST (test_valve_basic)
 {
-  GstElement *valve;
-  GstPad *sink;
-  GstPad *src;
-  GstCaps *caps, *templ_caps;
+  GstHarness *h = gst_harness_new ("valve");
 
-  valve = gst_check_setup_element ("valve");
+  gst_harness_set_src_caps_str (h, "mycaps");
 
-  sink = gst_check_setup_sink_pad_by_name (valve, &sinktemplate, "src");
-  src = gst_check_setup_src_pad_by_name (valve, &srctemplate, "sink");
-  gst_pad_set_event_function (sink, event_func);
-  gst_pad_set_active (src, TRUE);
-  gst_pad_set_active (sink, TRUE);
-  gst_element_set_state (valve, GST_STATE_PLAYING);
+  /* when not dropping, we don't drop buffers.... */
+  g_object_set (h->element, "drop", FALSE, NULL);
+  fail_unless_equals_int (GST_FLOW_OK, gst_harness_push (h, gst_buffer_new ()));
+  fail_unless_equals_int (GST_FLOW_OK, gst_harness_push (h, gst_buffer_new ()));
+  fail_unless_equals_int (2, gst_harness_buffers_received (h));
 
-  g_object_set (valve, "drop", FALSE, NULL);
+  /* when dropping, the buffers don't make it through */
+  g_object_set (h->element, "drop", TRUE, NULL);
+  fail_unless_equals_int (3, gst_harness_events_received (h));
+  fail_unless_equals_int (GST_FLOW_OK, gst_harness_push (h, gst_buffer_new ()));
+  fail_unless_equals_int (GST_FLOW_OK, gst_harness_push (h, gst_buffer_new ()));
+  fail_unless_equals_int (2, gst_harness_buffers_received (h));
 
-  fail_unless (gst_pad_push_event (src, gst_event_new_eos ()) == TRUE);
-  fail_unless (event_received == TRUE);
-  fail_unless (gst_pad_push (src, gst_buffer_new ()) == GST_FLOW_EOS);
-  fail_unless (gst_pad_push (src, gst_buffer_new ()) == GST_FLOW_EOS);
-  fail_unless (buffers == NULL);
-  caps = gst_pad_query_caps (src, NULL);
-  templ_caps = gst_pad_get_pad_template_caps (src);
-  fail_unless (caps && gst_caps_is_equal (caps, templ_caps));
-  gst_caps_unref (templ_caps);
-  gst_caps_unref (caps);
+  gst_harness_teardown (h);
+}
 
-  gst_check_drop_buffers ();
-  fail_unless (gst_pad_push_event (src, gst_event_new_flush_start ()) == TRUE);
-  fail_unless (gst_pad_push_event (src,
-          gst_event_new_flush_stop (TRUE)) == TRUE);
-  event_received = buffer_allocated = FALSE;
+GST_END_TEST;
 
-  g_object_set (valve, "drop", TRUE, NULL);
-  fail_unless (gst_pad_push_event (src, gst_event_new_eos ()) == TRUE);
-  fail_unless (event_received == FALSE);
-  fail_unless (gst_pad_push (src, gst_buffer_new ()) == GST_FLOW_EOS);
-  fail_unless (gst_pad_push (src, gst_buffer_new ()) == GST_FLOW_EOS);
-  fail_unless (buffers == NULL);
-  caps = gst_pad_query_caps (src, NULL);
-  templ_caps = gst_pad_get_pad_template_caps (src);
-  fail_unless (caps && gst_caps_is_equal (caps, templ_caps));
-  gst_caps_unref (templ_caps);
-  gst_caps_unref (caps);
+GST_START_TEST (test_valve_upstream_events_dont_send_sticky)
+{
+  GstHarness *h = gst_harness_new ("valve");
 
-  gst_pad_set_active (src, FALSE);
-  gst_pad_set_active (sink, FALSE);
-  gst_check_teardown_src_pad (valve);
-  gst_check_teardown_sink_pad (valve);
-  gst_check_teardown_element (valve);
+  /* set to drop */
+  g_object_set (h->element, "drop", TRUE, NULL);
+
+  /* set caps to trigger sticky-events being pushed to valve */
+  gst_harness_set_src_caps_str (h, "mycaps");
+
+  /* verify no events have made it through yet */
+  fail_unless_equals_int (0, gst_harness_events_received (h));
+
+  /* stop dropping */
+  g_object_set (h->element, "drop", FALSE, NULL);
+
+  /* send an upstream event and verify that no
+     downstream events was pushed as a result of this */
+  gst_harness_push_upstream_event (h, gst_event_new_reconfigure ());
+  fail_unless_equals_int (0, gst_harness_events_received (h));
+
+  /* push a buffer, and verify this pushes the sticky events */
+  fail_unless_equals_int (GST_FLOW_OK, gst_harness_push (h, gst_buffer_new ()));
+  fail_unless_equals_int (3, gst_harness_events_received (h));
+
+  gst_harness_teardown (h);
 }
 
 GST_END_TEST;
@@ -111,6 +88,8 @@
 
   tc_chain = tcase_create ("valve_basic");
   tcase_add_test (tc_chain, test_valve_basic);
+  tcase_add_test (tc_chain, test_valve_upstream_events_dont_send_sticky);
+
   suite_add_tcase (s, tc_chain);
 
   return s;
diff --git a/win32/common/config.h b/win32/common/config.h
index 3571ec8..2f55703 100644
--- a/win32/common/config.h
+++ b/win32/common/config.h
@@ -68,7 +68,7 @@
 #define GST_PACKAGE_ORIGIN "Unknown package origin"
 
 /* GStreamer package release date/time for plugins as YYYY-MM-DD */
-#define GST_PACKAGE_RELEASE_DATETIME "2016-03-24"
+#define GST_PACKAGE_RELEASE_DATETIME "2016-04-20"
 
 /* Define if static plugins should be built */
 #undef GST_PLUGIN_BUILD_STATIC
@@ -462,7 +462,7 @@
 #define PACKAGE_NAME "GStreamer"
 
 /* Define to the full name and version of this package. */
-#define PACKAGE_STRING "GStreamer 1.8.0"
+#define PACKAGE_STRING "GStreamer 1.8.1"
 
 /* Define to the one symbol short name of this package. */
 #define PACKAGE_TARNAME "gstreamer"
@@ -471,7 +471,7 @@
 #undef PACKAGE_URL
 
 /* Define to the version of this package. */
-#define PACKAGE_VERSION "1.8.0"
+#define PACKAGE_VERSION "1.8.1"
 
 /* directory where plugins are located */
 #ifdef _DEBUG
@@ -515,7 +515,7 @@
 #undef USE_POISONING
 
 /* Version number of package */
-#define VERSION "1.8.0"
+#define VERSION "1.8.1"
 
 /* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
    significant byte first (like Motorola and SPARC, unlike Intel). */
diff --git a/win32/common/gstversion.h b/win32/common/gstversion.h
index 7844e71..3b4da93 100644
--- a/win32/common/gstversion.h
+++ b/win32/common/gstversion.h
@@ -60,7 +60,7 @@
  *
  * The micro version of GStreamer at compile time:
  */
-#define GST_VERSION_MICRO (0)
+#define GST_VERSION_MICRO (1)
 /**
  * GST_VERSION_NANO:
  *